From 4bb2ec33561c288be6095363df37533f9e3fee10 Mon Sep 17 00:00:00 2001 From: dubslow Date: Tue, 15 Jul 2014 12:04:26 -0400 Subject: [PATCH 1/2] Add tooltips to user-provided text (helps to accomodate too-long names and msgs) Ideally this would be done only if the widget is too small for the message, but that can be quite difficult --- friend.cpp | 2 ++ toxgui.pro => qtox.pro | 2 +- widget/form/chatform.cpp | 2 ++ widget/widget.cpp | 6 ++++++ 4 files changed, 11 insertions(+), 1 deletion(-) rename toxgui.pro => qtox.pro (99%) diff --git a/friend.cpp b/friend.cpp index 3283a1971..b024d2dda 100644 --- a/friend.cpp +++ b/friend.cpp @@ -36,12 +36,14 @@ Friend::~Friend() void Friend::setName(QString name) { widget->name.setText(name); + widget->name.setToolTip(name); // for overlength names chatForm->setName(name); } void Friend::setStatusMessage(QString message) { widget->statusMessage.setText(message); + widget->statusMessage.setToolTip(message); // for overlength messsages chatForm->setStatusMessage(message); } diff --git a/toxgui.pro b/qtox.pro similarity index 99% rename from toxgui.pro rename to qtox.pro index 49d6deb27..e12cc4cd1 100644 --- a/toxgui.pro +++ b/qtox.pro @@ -23,7 +23,7 @@ QT += core gui network multimedia multimediawidgets greaterThan(QT_MAJOR_VERSION, 4): QT += widgets -TARGET = toxgui +TARGET = qtox TEMPLATE = app FORMS += widget.ui CONFIG += c++11 diff --git a/widget/form/chatform.cpp b/widget/form/chatform.cpp index 25bc7fff8..13d4b5271 100644 --- a/widget/form/chatform.cpp +++ b/widget/form/chatform.cpp @@ -207,11 +207,13 @@ void ChatForm::show(Ui::Widget &ui) void ChatForm::setName(QString newName) { name->setText(newName); + name->setToolTip(newName); // for overlength names } void ChatForm::setStatusMessage(QString newMessage) { statusMessage->setText(newMessage); + statusMessage->setToolTip(newMessage); // for overlength messsages } void ChatForm::onSendTriggered() diff --git a/widget/widget.cpp b/widget/widget.cpp index ea63ee89a..f7b7bc1b3 100644 --- a/widget/widget.cpp +++ b/widget/widget.cpp @@ -422,6 +422,7 @@ void Widget::onUsernameChanged() { const QString newUsername = settingsForm.name.text(); ui->nameLabel->setText(newUsername); + ui->nameLabel->setToolTip(newUsername); // for overlength names settingsForm.name.setText(newUsername); core->setUsername(newUsername); } @@ -429,6 +430,7 @@ void Widget::onUsernameChanged() void Widget::onUsernameChanged(const QString& newUsername, const QString& oldUsername) { ui->nameLabel->setText(oldUsername); // restore old username until Core tells us to set it + ui->nameLabel->setToolTip(oldUsername); // for overlength names settingsForm.name.setText(oldUsername); core->setUsername(newUsername); } @@ -436,6 +438,7 @@ void Widget::onUsernameChanged(const QString& newUsername, const QString& oldUse void Widget::setUsername(const QString& username) { ui->nameLabel->setText(username); + ui->nameLabel->setToolTip(username); // for overlength names settingsForm.name.setText(username); } @@ -443,6 +446,7 @@ void Widget::onStatusMessageChanged() { const QString newStatusMessage = settingsForm.statusText.text(); ui->statusLabel->setText(newStatusMessage); + ui->statusLabel->setToolTip(newStatusMessage); // for overlength messsages settingsForm.statusText.setText(newStatusMessage); core->setStatusMessage(newStatusMessage); } @@ -450,6 +454,7 @@ void Widget::onStatusMessageChanged() void Widget::onStatusMessageChanged(const QString& newStatusMessage, const QString& oldStatusMessage) { ui->statusLabel->setText(oldStatusMessage); // restore old status message until Core tells us to set it + ui->statusLabel->setToolTip(oldStatusMessage); // for overlength messsages settingsForm.statusText.setText(oldStatusMessage); core->setStatusMessage(newStatusMessage); } @@ -457,6 +462,7 @@ void Widget::onStatusMessageChanged(const QString& newStatusMessage, const QStri void Widget::setStatusMessage(const QString &statusMessage) { ui->statusLabel->setText(statusMessage); + ui->statusLabel->setToolTip(statusMessage); // for overlength messsages settingsForm.statusText.setText(statusMessage); } From 1644f8c139b2bdb701e09b6dda65a2d4b6383e5d Mon Sep 17 00:00:00 2001 From: dubslow Date: Tue, 15 Jul 2014 21:37:08 -0400 Subject: [PATCH 2/2] Updated the completed transfers widget to work as advertised --- core.cpp | 5 +++-- widget.ui | 2 +- widget/form/filesform.cpp | 41 +++++++++++++++++++++------------------ widget/form/filesform.h | 13 +++++++++---- 4 files changed, 35 insertions(+), 26 deletions(-) diff --git a/core.cpp b/core.cpp index fa78d96e5..2038131c0 100644 --- a/core.cpp +++ b/core.cpp @@ -664,9 +664,9 @@ void Core::setStatus(Status status) void Core::onFileTransferFinished(ToxFile file) { if (file.direction == file.SENDING) - emit fileUploadFinished(QString(file.fileName)); + emit fileUploadFinished(file.filePath); else - emit fileDownloadFinished(QString(file.fileName)); + emit fileDownloadFinished(file.filePath); } void Core::bootstrapDht() @@ -952,6 +952,7 @@ void Core::sendAllFileData(Core *core, ToxFile* file) removeFileFromQueue(true, file->friendId, file->fileNum); return; } + qDebug() << "chunkSize: " << chunkSize; chunkSize = std::min(chunkSize, file->filesize); uint8_t* data = new uint8_t[chunkSize]; file->file->seek(file->bytesSent); diff --git a/widget.ui b/widget.ui index 9ca3ffe4a..0364da3d8 100644 --- a/widget.ui +++ b/widget.ui @@ -2697,7 +2697,7 @@ QSplitter:handle{ Qt::NoFocus - (button inactive currently) + View completed file transfers diff --git a/widget/form/filesform.cpp b/widget/form/filesform.cpp index 458af4f1c..14ffe5fe0 100644 --- a/widget/form/filesform.cpp +++ b/widget/form/filesform.cpp @@ -27,18 +27,25 @@ FilesForm::FilesForm() head->setLayout(&headLayout); headLayout.addWidget(&headLabel); - main.addTab(&recvd, tr("Downloads")); - main.addTab(&sent, tr("Uploads")); + recvd = new QListWidget; + sent = new QListWidget; - connect(&sent, SIGNAL(itemActivated(QListWidgetItem*)), this, SLOT(onUploadFileActivated(QListWidgetItem*))); - connect(&recvd, SIGNAL(itemActivated(QListWidgetItem*)), this, SLOT(onDownloadFileActivated(QListWidgetItem*))); + main.addTab(recvd, tr("Downloads")); + main.addTab(sent, tr("Uploads")); + + connect(sent, SIGNAL(itemActivated(QListWidgetItem*)), this, SLOT(onFileActivated(QListWidgetItem*))); + connect(recvd, SIGNAL(itemActivated(QListWidgetItem*)), this, SLOT(onFileActivated(QListWidgetItem*))); } FilesForm::~FilesForm() { - //delete head; - // having this line caused a SIGABRT because free() received an invalid pointer +#if 0 + delete recvd; // docs claim this will clean up children + delete sent; + delete head; +#endif + // having these lines caused a SIGABRT because free() received an invalid pointer // but since this is only called on program shutdown anyways, // I'm not too bummed about removing it } @@ -53,14 +60,16 @@ void FilesForm::show(Ui::Widget& ui) void FilesForm::onFileDownloadComplete(const QString& path) { - QListWidgetItem* tmp = new QListWidgetItem(QIcon(":/ui/acceptFileButton/default.png"), path); - recvd.addItem(tmp); + ListWidgetItem* tmp = new ListWidgetItem(QIcon(":/ui/acceptFileButton/default.png"), QFileInfo(path).fileName()); + tmp->path = path; + recvd->addItem(tmp); } void FilesForm::onFileUploadComplete(const QString& path) { - QListWidgetItem* tmp = new QListWidgetItem(QIcon(":/ui/acceptFileButton/default.png"), path); - sent.addItem(tmp); + ListWidgetItem* tmp = new ListWidgetItem(QIcon(":/ui/acceptFileButton/default.png"), QFileInfo(path).fileName()); + tmp->path = path; + sent->addItem(tmp); } // sadly, the ToxFile struct in core only has the file name, not the file path... @@ -68,16 +77,10 @@ void FilesForm::onFileUploadComplete(const QString& path) // whenever they're not saved anywhere custom, thanks to the hack) // I could do some digging around, but for now I'm tired and others already // might know it without me needing to dig, so... -void FilesForm::onDownloadFileActivated(QListWidgetItem* item) +void FilesForm::onFileActivated(QListWidgetItem* item) { - QUrl url = QUrl::fromLocalFile("./" + item->text()); - qDebug() << "Opening '" << url << "'"; - QDesktopServices::openUrl(url); -} - -void FilesForm::onUploadFileActivated(QListWidgetItem* item) -{ - QUrl url = QUrl::fromLocalFile(item->text()); + ListWidgetItem* tmp = dynamic_cast (item); + QUrl url = QUrl::fromLocalFile(tmp->path); qDebug() << "Opening '" << url << "'"; QDesktopServices::openUrl(url); } diff --git a/widget/form/filesform.h b/widget/form/filesform.h index e7f7fa2ec..f8fb51105 100644 --- a/widget/form/filesform.h +++ b/widget/form/filesform.h @@ -27,6 +27,7 @@ #include #include #include +#include class FilesForm : public QObject { @@ -43,8 +44,7 @@ public slots: void onFileUploadComplete(const QString& path); private slots: - void onDownloadFileActivated(QListWidgetItem* item); - void onUploadFileActivated(QListWidgetItem* item); + void onFileActivated(QListWidgetItem* item); private: QWidget* head; @@ -55,10 +55,15 @@ private: I should really look into the new fangled list thingy, to deactivate specific items in the list */ QTabWidget main; - QListWidget sent, recvd; + QListWidget* sent, * recvd; }; -#include "ui_widget.h" +class ListWidgetItem : public QListWidgetItem +{ + using QListWidgetItem::QListWidgetItem; + public: + QString path; +}; #endif // FILESFORM_H