void ChatForm::onFileRecvRequest(ToxFile file) { if (file.friendId != f->getFriendID()) return; Widget::getInstance()->newFriendMessageAlert(file.friendId); QString name; ToxId friendId = f->getToxId(); if (friendId != previousId) { name = f->getDisplayedName(); previousId = friendId; } ChatMessage::Ptr msg = ChatMessage::createFileTransferMessage(name, file, false, QDateTime::currentDateTime()); insertChatMessage(msg); ChatLineContentProxy* proxy = static_cast<ChatLineContentProxy*>(msg->getContent(1)); assert(proxy->getWidgetType() == ChatLineContentProxy::FileTransferWidgetType); FileTransferWidget* tfWidget = static_cast<FileTransferWidget*>(proxy->getWidget()); // there is auto-accept for that conact if (!Settings::getInstance().getAutoAcceptDir(f->getToxId()).isEmpty()) { tfWidget->autoAcceptTransfer(Settings::getInstance().getAutoAcceptDir(f->getToxId())); } else if (Settings::getInstance().getAutoSaveEnabled()) { //global autosave to global directory tfWidget->autoAcceptTransfer(Settings::getInstance().getGlobalAutoAcceptDir()); } Widget::getInstance()->updateFriendActivity(f); }
void ChatForm::onFileRecvRequest(ToxFile file) { if (file.friendId != f->getFriendID()) return; Widget* w = Widget::getInstance(); if (!w->isFriendWidgetCurActiveWidget(f)|| w->isMinimized() || !w->isActiveWindow()) { w->newMessageAlert(f->getFriendWidget()); f->setEventFlag(true); f->getFriendWidget()->updateStatusLight(); } QString name; ToxId friendId = f->getToxId(); if (friendId != previousId) { name = f->getDisplayedName(); previousId = friendId; } ChatMessage::Ptr msg = ChatMessage::createFileTransferMessage(name, file, false, QDateTime::currentDateTime()); insertChatMessage(msg); if (!Settings::getInstance().getAutoAcceptDir(f->getToxId()).isEmpty() || Settings::getInstance().getAutoSaveEnabled()) { ChatLineContentProxy* proxy = static_cast<ChatLineContentProxy*>(msg->getContent(1)); assert(proxy->getWidgetType() == ChatLineContentProxy::FileTransferWidgetType); FileTransferWidget* tfWidget = static_cast<FileTransferWidget*>(proxy->getWidget()); tfWidget->autoAcceptTransfer(Settings::getInstance().getAutoAcceptDir(f->getToxId())); } }
void FileTransferRequestWidget::on_acceptButton_clicked() { QString location = QFileDialog::getExistingDirectory(this,tr("Choose location to save file(s)"),QDesktopServices::storageLocation(QDesktopServices::HomeLocation),QFileDialog::ShowDirsOnly); if ( !location.isEmpty() ) { qDebug()<<"Will recieve files to: "<<location; FileTransferWidget* trWidget = new FileTransferWidget(m_client,m_req,location); trWidget->show(); close(); } }
void FileTransferItemDelegate::paint(QPainter * p, const QStyleOptionViewItem & option, const QModelIndex & index) const { //FIXME not exactly model/view coding style.. but we need to access data on the item by now FileTransferWidget * tableWidget = (FileTransferWidget *)parent(); FileTransferItem * item = (FileTransferItem *)tableWidget->itemFromIndex(index); if(!item) return; KviFileTransfer * transfer = ((FileTransferItem *)tableWidget->item(item->row(), 0))->transfer(); p->setFont(option.font); p->setPen(option.state & QStyle::State_Selected ? option.palette.highlight().color() : option.palette.base().color()); p->drawRect(option.rect); p->setPen(transfer->active() ? QColor(180, 180, 180) : QColor(200, 200, 200)); p->drawRect(option.rect.left() + 1, option.rect.top() + 1, option.rect.width() - 2, option.rect.height() - 2); p->fillRect(option.rect.left() + 2, option.rect.top() + 2, option.rect.width() - 4, option.rect.height() - 4, transfer->active() ? QColor(240, 240, 240) : QColor(225, 225, 225)); transfer->displayPaint(p, index.column(), option.rect); }