1
0
mirror of https://github.com/qTox/qTox.git synced 2024-03-22 14:00:36 +08:00
This commit is contained in:
Bill Winslow 2014-07-22 02:54:18 -05:00
commit e14b7d66d4
7 changed files with 45 additions and 26 deletions

View File

@ -664,9 +664,9 @@ void Core::setStatus(Status status)
void Core::onFileTransferFinished(ToxFile file) void Core::onFileTransferFinished(ToxFile file)
{ {
if (file.direction == file.SENDING) if (file.direction == file.SENDING)
emit fileUploadFinished(QString(file.fileName)); emit fileUploadFinished(file.filePath);
else else
emit fileDownloadFinished(QString(file.fileName)); emit fileDownloadFinished(file.filePath);
} }
void Core::bootstrapDht() void Core::bootstrapDht()
@ -952,6 +952,7 @@ void Core::sendAllFileData(Core *core, ToxFile* file)
removeFileFromQueue(true, file->friendId, file->fileNum); removeFileFromQueue(true, file->friendId, file->fileNum);
return; return;
} }
qDebug() << "chunkSize: " << chunkSize;
chunkSize = std::min(chunkSize, file->filesize); chunkSize = std::min(chunkSize, file->filesize);
uint8_t* data = new uint8_t[chunkSize]; uint8_t* data = new uint8_t[chunkSize];
file->file->seek(file->bytesSent); file->file->seek(file->bytesSent);

View File

@ -36,12 +36,14 @@ Friend::~Friend()
void Friend::setName(QString name) void Friend::setName(QString name)
{ {
widget->name.setText(name); widget->name.setText(name);
widget->name.setToolTip(name); // for overlength names
chatForm->setName(name); chatForm->setName(name);
} }
void Friend::setStatusMessage(QString message) void Friend::setStatusMessage(QString message)
{ {
widget->statusMessage.setText(message); widget->statusMessage.setText(message);
widget->statusMessage.setToolTip(message); // for overlength messsages
chatForm->setStatusMessage(message); chatForm->setStatusMessage(message);
} }

View File

@ -23,7 +23,7 @@
QT += core gui network multimedia multimediawidgets QT += core gui network multimedia multimediawidgets
greaterThan(QT_MAJOR_VERSION, 4): QT += widgets greaterThan(QT_MAJOR_VERSION, 4): QT += widgets
TARGET = toxgui TARGET = qtox
TEMPLATE = app TEMPLATE = app
FORMS += widget.ui FORMS += widget.ui
CONFIG += c++11 CONFIG += c++11

View File

@ -207,11 +207,13 @@ void ChatForm::show(Ui::Widget &ui)
void ChatForm::setName(QString newName) void ChatForm::setName(QString newName)
{ {
name->setText(newName); name->setText(newName);
name->setToolTip(newName); // for overlength names
} }
void ChatForm::setStatusMessage(QString newMessage) void ChatForm::setStatusMessage(QString newMessage)
{ {
statusMessage->setText(newMessage); statusMessage->setText(newMessage);
statusMessage->setToolTip(newMessage); // for overlength messsages
} }
void ChatForm::onSendTriggered() void ChatForm::onSendTriggered()

View File

@ -27,18 +27,25 @@ FilesForm::FilesForm()
head->setLayout(&headLayout); head->setLayout(&headLayout);
headLayout.addWidget(&headLabel); headLayout.addWidget(&headLabel);
main.addTab(&recvd, tr("Downloads")); recvd = new QListWidget;
main.addTab(&sent, tr("Uploads")); sent = new QListWidget;
connect(&sent, SIGNAL(itemActivated(QListWidgetItem*)), this, SLOT(onUploadFileActivated(QListWidgetItem*))); main.addTab(recvd, tr("Downloads"));
connect(&recvd, SIGNAL(itemActivated(QListWidgetItem*)), this, SLOT(onDownloadFileActivated(QListWidgetItem*))); 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() FilesForm::~FilesForm()
{ {
//delete head; #if 0
// having this line caused a SIGABRT because free() received an invalid pointer 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, // but since this is only called on program shutdown anyways,
// I'm not too bummed about removing it // I'm not too bummed about removing it
} }
@ -53,14 +60,16 @@ void FilesForm::show(Ui::Widget& ui)
void FilesForm::onFileDownloadComplete(const QString& path) void FilesForm::onFileDownloadComplete(const QString& path)
{ {
QListWidgetItem* tmp = new QListWidgetItem(QIcon(":/ui/acceptFileButton/default.png"), path); ListWidgetItem* tmp = new ListWidgetItem(QIcon(":/ui/acceptFileButton/default.png"), QFileInfo(path).fileName());
recvd.addItem(tmp); tmp->path = path;
recvd->addItem(tmp);
} }
void FilesForm::onFileUploadComplete(const QString& path) void FilesForm::onFileUploadComplete(const QString& path)
{ {
QListWidgetItem* tmp = new QListWidgetItem(QIcon(":/ui/acceptFileButton/default.png"), path); ListWidgetItem* tmp = new ListWidgetItem(QIcon(":/ui/acceptFileButton/default.png"), QFileInfo(path).fileName());
sent.addItem(tmp); tmp->path = path;
sent->addItem(tmp);
} }
// sadly, the ToxFile struct in core only has the file name, not the file path... // 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) // 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 // I could do some digging around, but for now I'm tired and others already
// might know it without me needing to dig, so... // 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()); ListWidgetItem* tmp = dynamic_cast<ListWidgetItem*> (item);
qDebug() << "Opening '" << url << "'"; QUrl url = QUrl::fromLocalFile(tmp->path);
QDesktopServices::openUrl(url);
}
void FilesForm::onUploadFileActivated(QListWidgetItem* item)
{
QUrl url = QUrl::fromLocalFile(item->text());
qDebug() << "Opening '" << url << "'"; qDebug() << "Opening '" << url << "'";
QDesktopServices::openUrl(url); QDesktopServices::openUrl(url);
} }

View File

@ -27,6 +27,7 @@
#include <QVBoxLayout> #include <QVBoxLayout>
#include <QUrl> #include <QUrl>
#include <QDebug> #include <QDebug>
#include <QFileInfo>
class FilesForm : public QObject class FilesForm : public QObject
{ {
@ -43,8 +44,7 @@ public slots:
void onFileUploadComplete(const QString& path); void onFileUploadComplete(const QString& path);
private slots: private slots:
void onDownloadFileActivated(QListWidgetItem* item); void onFileActivated(QListWidgetItem* item);
void onUploadFileActivated(QListWidgetItem* item);
private: private:
QWidget* head; QWidget* head;
@ -55,10 +55,15 @@ private:
I should really look into the new fangled list thingy, to deactivate I should really look into the new fangled list thingy, to deactivate
specific items in the list */ specific items in the list */
QTabWidget main; 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 #endif // FILESFORM_H

View File

@ -424,6 +424,7 @@ void Widget::onUsernameChanged()
{ {
const QString newUsername = settingsForm.name.text(); const QString newUsername = settingsForm.name.text();
ui->nameLabel->setText(newUsername); ui->nameLabel->setText(newUsername);
ui->nameLabel->setToolTip(newUsername); // for overlength names
settingsForm.name.setText(newUsername); settingsForm.name.setText(newUsername);
core->setUsername(newUsername); core->setUsername(newUsername);
} }
@ -431,6 +432,7 @@ void Widget::onUsernameChanged()
void Widget::onUsernameChanged(const QString& newUsername, const QString& oldUsername) 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->setText(oldUsername); // restore old username until Core tells us to set it
ui->nameLabel->setToolTip(oldUsername); // for overlength names
settingsForm.name.setText(oldUsername); settingsForm.name.setText(oldUsername);
core->setUsername(newUsername); core->setUsername(newUsername);
} }
@ -438,6 +440,7 @@ void Widget::onUsernameChanged(const QString& newUsername, const QString& oldUse
void Widget::setUsername(const QString& username) void Widget::setUsername(const QString& username)
{ {
ui->nameLabel->setText(username); ui->nameLabel->setText(username);
ui->nameLabel->setToolTip(username); // for overlength names
settingsForm.name.setText(username); settingsForm.name.setText(username);
} }
@ -445,6 +448,7 @@ void Widget::onStatusMessageChanged()
{ {
const QString newStatusMessage = settingsForm.statusText.text(); const QString newStatusMessage = settingsForm.statusText.text();
ui->statusLabel->setText(newStatusMessage); ui->statusLabel->setText(newStatusMessage);
ui->statusLabel->setToolTip(newStatusMessage); // for overlength messsages
settingsForm.statusText.setText(newStatusMessage); settingsForm.statusText.setText(newStatusMessage);
core->setStatusMessage(newStatusMessage); core->setStatusMessage(newStatusMessage);
} }
@ -452,6 +456,7 @@ void Widget::onStatusMessageChanged()
void Widget::onStatusMessageChanged(const QString& newStatusMessage, const QString& oldStatusMessage) 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->setText(oldStatusMessage); // restore old status message until Core tells us to set it
ui->statusLabel->setToolTip(oldStatusMessage); // for overlength messsages
settingsForm.statusText.setText(oldStatusMessage); settingsForm.statusText.setText(oldStatusMessage);
core->setStatusMessage(newStatusMessage); core->setStatusMessage(newStatusMessage);
} }
@ -459,6 +464,7 @@ void Widget::onStatusMessageChanged(const QString& newStatusMessage, const QStri
void Widget::setStatusMessage(const QString &statusMessage) void Widget::setStatusMessage(const QString &statusMessage)
{ {
ui->statusLabel->setText(statusMessage); ui->statusLabel->setText(statusMessage);
ui->statusLabel->setToolTip(statusMessage); // for overlength messsages
settingsForm.statusText.setText(statusMessage); settingsForm.statusText.setText(statusMessage);
} }