diff --git a/core.cpp b/core.cpp index 84265dd10..154087d60 100644 --- a/core.cpp +++ b/core.cpp @@ -15,9 +15,9 @@ */ #include "core.h" -#include "cdata.h" -#include "cstring.h" -#include "settings.h" +#include "misc/cdata.h" +#include "misc/cstring.h" +#include "misc/settings.h" #include "widget/widget.h" #include @@ -331,7 +331,7 @@ void Core::onUserStatusChanged(Tox*/* tox*/, int friendId, uint8_t userstatus, v } if (status == Status::Online || status == Status::Away) - tox_request_avatar_data(static_cast(core)->tox, friendId); + tox_request_avatar_info(static_cast(core)->tox, friendId); emit static_cast(core)->friendStatusChanged(friendId, status); } @@ -342,6 +342,33 @@ void Core::onConnectionStatusChanged(Tox*/* tox*/, int friendId, uint8_t status, emit static_cast(core)->friendStatusChanged(friendId, friendStatus); if (friendStatus == Status::Offline) { static_cast(core)->checkLastOnline(friendId); + + for (ToxFile& f : fileSendQueue) + { + if (f.friendId == friendId && f.status == ToxFile::TRANSMITTING) + { + f.status = ToxFile::BROKEN; + emit static_cast(core)->fileTransferBrokenUnbroken(f, true); + } + } + for (ToxFile& f : fileRecvQueue) + { + if (f.friendId == friendId && f.status == ToxFile::TRANSMITTING) + { + f.status = ToxFile::BROKEN; + emit static_cast(core)->fileTransferBrokenUnbroken(f, true); + } + } + } else { + for (ToxFile& f : fileRecvQueue) + { + if (f.friendId == friendId && f.status == ToxFile::BROKEN) + { + qDebug() << QString("Core::onConnectionStatusChanged: %1: resuming broken filetransfer from position: %2").arg(f.file->fileName()).arg(f.bytesSent); + tox_file_send_control(static_cast(core)->tox, friendId, 1, f.fileNum, TOX_FILECONTROL_RESUME_BROKEN, reinterpret_cast(&f.bytesSent), sizeof(uint64_t)); + emit static_cast(core)->fileTransferBrokenUnbroken(f, false); + } + } } } @@ -379,7 +406,7 @@ void Core::onFileSendRequestCallback(Tox*, int32_t friendnumber, uint8_t filenum emit static_cast(core)->fileReceiveRequested(fileRecvQueue.last()); } void Core::onFileControlCallback(Tox* tox, int32_t friendnumber, uint8_t receive_send, uint8_t filenumber, - uint8_t control_type, const uint8_t*, uint16_t, void *core) + uint8_t control_type, const uint8_t* data, uint16_t length, void *core) { ToxFile* file{nullptr}; if (receive_send == 1) @@ -466,12 +493,39 @@ void Core::onFileControlCallback(Tox* tox, int32_t friendnumber, uint8_t receive } else if (receive_send == 0 && control_type == TOX_FILECONTROL_ACCEPT) { + if (file->status == ToxFile::BROKEN) + { + emit static_cast(core)->fileTransferBrokenUnbroken(*file, false); + file->status = ToxFile::TRANSMITTING; + } emit static_cast(core)->fileTransferRemotePausedUnpaused(*file, false); } else if ((receive_send == 0 || receive_send == 1) && control_type == TOX_FILECONTROL_PAUSE) { emit static_cast(core)->fileTransferRemotePausedUnpaused(*file, true); } + else if (receive_send == 1 && control_type == TOX_FILECONTROL_RESUME_BROKEN) + { + if (length != sizeof(uint64_t)) + return; + + qDebug() << "Core::onFileControlCallback: TOX_FILECONTROL_RESUME_BROKEN"; + + uint64_t resumePos = *reinterpret_cast(data); + + if (resumePos >= file->filesize) + { + qWarning() << "Core::onFileControlCallback: invalid resume position"; + tox_file_send_control(tox, file->friendId, 0, file->fileNum, TOX_FILECONTROL_KILL, nullptr, 0); // don't sure about it + return; + } + + file->status = ToxFile::TRANSMITTING; + emit static_cast(core)->fileTransferBrokenUnbroken(*file, false); + + file->bytesSent = resumePos; + tox_file_send_control(tox, file->friendId, 0, file->fileNum, TOX_FILECONTROL_ACCEPT, nullptr, 0); + } else { qDebug() << QString("Core: File control callback, receive_send=%1, control_type=%2") @@ -504,28 +558,40 @@ void Core::onFileDataCallback(Tox*, int32_t friendnumber, uint8_t filenumber, co } void Core::onAvatarInfoCallback(Tox*, int32_t friendnumber, uint8_t format, - uint8_t *, void* core) + uint8_t* hash, void* _core) { - qDebug() << "Core: Got avatar info from "<(_core); if (format == TOX_AVATAR_FORMAT_NONE) - emit static_cast(core)->friendAvatarRemoved(friendnumber); + { + qDebug() << "Core: Got null avatar info from" << friendnumber; + emit core->friendAvatarRemoved(friendnumber); + } else - tox_request_avatar_data(static_cast(core)->tox, friendnumber); + { + QByteArray oldHash = Settings::getInstance().getAvatarHash(core->getFriendAddress(friendnumber)); + if (QByteArray((char*)hash, TOX_HASH_LENGTH) != oldHash) // comparison failed miserably if I didn't convert hash to QByteArray + { + qDebug() << "Core: got different avatar hash from" << friendnumber; + tox_request_avatar_data(core->tox, friendnumber); + } + else + qDebug() << "Core: Got old avatar info from" << friendnumber; + } } void Core::onAvatarDataCallback(Tox*, int32_t friendnumber, uint8_t, - uint8_t *, uint8_t *data, uint32_t datalen, void *core) + uint8_t *hash, uint8_t *data, uint32_t datalen, void *core) { QPixmap pic; pic.loadFromData((uchar*)data, datalen); if (pic.isNull()) - qDebug() << "Core: Got invalid avatar data from "<(core)->getFriendAddress(friendnumber)); + Settings::getInstance().saveAvatarHash(QByteArray((char*)hash, TOX_HASH_LENGTH), static_cast(core)->getFriendAddress(friendnumber)); emit static_cast(core)->friendAvatarChanged(friendnumber, pic); } } @@ -691,7 +757,7 @@ void Core::pauseResumeFileRecv(int friendId, int fileNum) tox_file_send_control(tox, file->friendId, 1, file->fileNum, TOX_FILECONTROL_ACCEPT, nullptr, 0); } else - qWarning() << "Core::pauseResumeFileRecv: File is stopped"; + qWarning() << "Core::pauseResumeFileRecv: File is stopped or broken"; } void Core::cancelFileSend(int friendId, int fileNum) diff --git a/core.h b/core.h index c7227831e..4b5aa7a86 100644 --- a/core.h +++ b/core.h @@ -150,6 +150,7 @@ signals: void fileTransferPaused(int FriendId, int FileNum, ToxFile::FileDirection direction); void fileTransferInfo(int FriendId, int FileNum, int64_t Filesize, int64_t BytesSent, ToxFile::FileDirection direction); void fileTransferRemotePausedUnpaused(ToxFile file, bool paused); + void fileTransferBrokenUnbroken(ToxFile file, bool broken); void fileSendFailed(int FriendId, const QString& fname); diff --git a/corestructs.h b/corestructs.h index a2bb6f31f..00da8a6a5 100644 --- a/corestructs.h +++ b/corestructs.h @@ -50,7 +50,8 @@ struct ToxFile { STOPPED, PAUSED, - TRANSMITTING + TRANSMITTING, + BROKEN }; enum FileDirection : bool diff --git a/filetransferinstance.cpp b/filetransferinstance.cpp index f8b10ecc8..0561454b4 100644 --- a/filetransferinstance.cpp +++ b/filetransferinstance.cpp @@ -24,11 +24,12 @@ #include #define CONTENT_WIDTH 250 +#define MAX_PREVIEW_SIZE 25*1024*1024 uint FileTransferInstance::Idconter = 0; FileTransferInstance::FileTransferInstance(ToxFile File) - : lastUpdate{QDateTime::currentDateTime()}, lastBytesSent{0}, + : lastBytesSent{0}, fileNum{File.fileNum}, friendId{File.friendId}, direction{File.direction} { id = Idconter++; @@ -44,13 +45,17 @@ FileTransferInstance::FileTransferInstance(ToxFile File) size = getHumanReadableSize(File.filesize); speed = "0B/s"; eta = "00:00"; + if (File.direction == ToxFile::SENDING) { - QImage preview; - File.file->seek(0); - if (preview.loadFromData(File.file->readAll())) + if (File.file->size() <= MAX_PREVIEW_SIZE) { - pic = preview.scaledToHeight(50); + QImage preview; + File.file->seek(0); + if (preview.loadFromData(File.file->readAll())) + { + pic = preview.scaledToHeight(50); + } } File.file->seek(0); } @@ -72,16 +77,16 @@ void FileTransferInstance::onFileTransferInfo(int FriendId, int FileNum, int64_t // state = tsProcessing; QDateTime newtime = QDateTime::currentDateTime(); - int timediff = lastUpdate.secsTo(newtime); + int timediff = started.secsTo(newtime); if (timediff <= 0) return; - qint64 diff = BytesSent - lastBytesSent; - if (diff < 0) + qint64 totalbytes = BytesSent + lastBytesSent; // bytes sent so far + if (totalbytes < 0) { qWarning() << "FileTransferInstance::onFileTransferInfo: Negative transfer speed !"; - diff = 0; + totalbytes = 0; } - long rawspeed = diff / timediff; + long rawspeed = totalbytes / timediff; speed = getHumanReadableSize(rawspeed)+"/s"; size = getHumanReadableSize(Filesize); totalBytes = Filesize; @@ -91,8 +96,7 @@ void FileTransferInstance::onFileTransferInfo(int FriendId, int FileNum, int64_t QTime etaTime(0,0); etaTime = etaTime.addSecs(etaSecs); eta = etaTime.toString("mm:ss"); - lastUpdate = newtime; - lastBytesSent = BytesSent; + lastBytesSent = totalbytes; emit stateUpdated(); } @@ -116,7 +120,7 @@ void FileTransferInstance::onFileTransferFinished(ToxFile File) { QImage preview; QFile previewFile(File.filePath); - if (previewFile.open(QIODevice::ReadOnly) && previewFile.size() <= 1024*1024*25) // Don't preview big (>25MiB) images + if (previewFile.open(QIODevice::ReadOnly) && previewFile.size() <= MAX_PREVIEW_SIZE) // Don't preview big (>25MiB) images { if (preview.loadFromData(previewFile.readAll())) { @@ -197,7 +201,7 @@ void FileTransferInstance::acceptRecvRequest() QString path; while (true) { - path = QFileDialog::getSaveFileName(0, tr("Save a file","Title of the file saving dialog"), QDir::current().filePath(filename)); + path = QFileDialog::getSaveFileName(0, tr("Save a file","Title of the file saving dialog"), QDir::home().filePath(filename)); if (path.isEmpty()) return; else @@ -217,6 +221,8 @@ void FileTransferInstance::acceptRecvRequest() Core::getInstance()->acceptFileRecvRequest(friendId, fileNum, path); state = tsProcessing; + started = QDateTime::currentDateTime(); + emit stateUpdated(); } @@ -286,6 +292,12 @@ QString FileTransferInstance::getHtmlImage() rightBtnImg = QImage(":/ui/fileTransferInstance/pauseGreyFileButton.png"); res = draw2ButtonsForm("silver", leftBtnImg, rightBtnImg); + } else if (state == tsBroken) + { + QImage leftBtnImg(":/ui/fileTransferInstance/stopFileButton.png"); + QImage rightBtnImg(":/ui/fileTransferInstance/pauseGreyFileButton.png"); + + res = draw2ButtonsForm("red", leftBtnImg, rightBtnImg); } else if (state == tsCanceled) { res = drawButtonlessForm("red"); @@ -411,3 +423,16 @@ QImage FileTransferInstance::drawProgressBarImg(const double &part, int w, int h return progressBar; } + +void FileTransferInstance::onFileTransferBrokenUnbroken(ToxFile File, bool broken) +{ + if (File.fileNum != fileNum || File.friendId != friendId || File.direction != direction) + return; + + if (broken) + state = tsBroken; + else + state = tsProcessing; + + emit stateUpdated(); +} diff --git a/filetransferinstance.h b/filetransferinstance.h index fb54fd8f6..0168f3c61 100644 --- a/filetransferinstance.h +++ b/filetransferinstance.h @@ -28,7 +28,7 @@ class FileTransferInstance : public QObject { Q_OBJECT public: - enum TransfState {tsPending, tsProcessing, tsPaused, tsFinished, tsCanceled}; + enum TransfState {tsPending, tsProcessing, tsPaused, tsFinished, tsCanceled, tsBroken}; public: explicit FileTransferInstance(ToxFile File); @@ -43,6 +43,7 @@ public slots: void onFileTransferAccepted(ToxFile File); void onFileTransferPaused(int FriendId, int FileNum, ToxFile::FileDirection Direction); void onFileTransferRemotePausedUnpaused(ToxFile File, bool paused); + void onFileTransferBrokenUnbroken(ToxFile File, bool broken); void pressFromHtml(QString); signals: @@ -73,7 +74,7 @@ private: QImage pic; QString filename, size, speed, eta; QString filenameElided; - QDateTime lastUpdate; + QDateTime started; long long lastBytesSent, totalBytes; int fileNum; int friendId; diff --git a/main.cpp b/main.cpp index 1cdac827e..8e981baa5 100644 --- a/main.cpp +++ b/main.cpp @@ -15,7 +15,7 @@ */ #include "widget/widget.h" -#include "settings.h" +#include "misc/settings.h" #include #include #include diff --git a/cdata.cpp b/misc/cdata.cpp similarity index 100% rename from cdata.cpp rename to misc/cdata.cpp diff --git a/cdata.h b/misc/cdata.h similarity index 100% rename from cdata.h rename to misc/cdata.h diff --git a/cstring.cpp b/misc/cstring.cpp similarity index 100% rename from cstring.cpp rename to misc/cstring.cpp diff --git a/cstring.h b/misc/cstring.h similarity index 100% rename from cstring.h rename to misc/cstring.h diff --git a/settings.cpp b/misc/settings.cpp similarity index 95% rename from settings.cpp rename to misc/settings.cpp index 3e9f33426..31cbd158e 100644 --- a/settings.cpp +++ b/misc/settings.cpp @@ -280,12 +280,35 @@ QPixmap Settings::getSavedAvatar(const QString &ownerId) void Settings::saveAvatar(QPixmap& pic, const QString& ownerId) { QDir dir(getSettingsDirPath()); - dir.mkdir("avatars/"); // remove this in a week or two hopefully + dir.mkdir("avatars/"); // ignore nospam (good idea, and also the addFriend funcs which call getAvatar don't have it) QString filePath = dir.filePath("avatars/"+ownerId.left(64)+".png"); pic.save(filePath, "png"); } +void Settings::saveAvatarHash(const QByteArray& hash, const QString& ownerId) +{ + QDir dir(getSettingsDirPath()); + dir.mkdir("avatars/"); + QFile file(dir.filePath("avatars/"+ownerId.left(64)+".hash")); + if (!file.open(QIODevice::WriteOnly)) + return; + file.write(hash); + file.close(); +} + +QByteArray Settings::getAvatarHash(const QString& ownerId) +{ + QDir dir(getSettingsDirPath()); + dir.mkdir("avatars/"); + QFile file(dir.filePath("avatars/"+ownerId.left(64)+".hash")); + if (!file.open(QIODevice::ReadOnly)) + return QByteArray(); + QByteArray out = file.readAll(); + file.close(); + return out; +} + const QList& Settings::getDhtServerList() const { return dhtServerList; diff --git a/settings.h b/misc/settings.h similarity index 97% rename from settings.h rename to misc/settings.h index b796211cb..9f379e886 100644 --- a/settings.h +++ b/misc/settings.h @@ -61,6 +61,9 @@ public: QPixmap getSavedAvatar(const QString& ownerId); void saveAvatar(QPixmap& pic, const QString& ownerId); + QByteArray getAvatarHash(const QString& ownerId); + void saveAvatarHash(const QByteArray& hash, const QString& ownerId); + // Assume all widgets have unique names // Don't use it to save every single thing you want to save, use it // for some general purpose widgets, such as MainWindows or Splitters, diff --git a/smileypack.cpp b/misc/smileypack.cpp similarity index 100% rename from smileypack.cpp rename to misc/smileypack.cpp diff --git a/smileypack.h b/misc/smileypack.h similarity index 100% rename from smileypack.h rename to misc/smileypack.h diff --git a/style.cpp b/misc/style.cpp similarity index 100% rename from style.cpp rename to misc/style.cpp diff --git a/style.h b/misc/style.h similarity index 100% rename from style.h rename to misc/style.h diff --git a/qtox.pro b/qtox.pro index c5bf81c1b..aa45650fd 100644 --- a/qtox.pro +++ b/qtox.pro @@ -35,7 +35,8 @@ TRANSLATIONS = translations/de.ts \ translations/ru.ts \ translations/pl.ts \ translations/fi.ts \ - translations/mannol.ts + translations/mannol.ts \ + translations/uk.ts RESOURCES += res.qrc @@ -91,17 +92,17 @@ HEADERS += widget/form/addfriendform.h \ friend.h \ group.h \ grouplist.h \ - settings.h \ + misc/settings.h \ core.h \ friendlist.h \ - cdata.h \ - cstring.h \ + misc/cdata.h \ + misc/cstring.h \ widget/selfcamview.h \ widget/camera.h \ widget/netcamview.h \ - smileypack.h \ + misc/smileypack.h \ widget/emoticonswidget.h \ - style.h \ + misc/style.h \ widget/adjustingscrollarea.h \ widget/croppinglabel.h \ widget/friendlistwidget.h \ @@ -135,15 +136,15 @@ SOURCES += \ group.cpp \ grouplist.cpp \ main.cpp \ - settings.cpp \ - cdata.cpp \ - cstring.cpp \ + misc/settings.cpp \ + misc/cdata.cpp \ + misc/cstring.cpp \ widget/selfcamview.cpp \ widget/camera.cpp \ widget/netcamview.cpp \ - smileypack.cpp \ + misc/smileypack.cpp \ widget/emoticonswidget.cpp \ - style.cpp \ + misc/style.cpp \ widget/adjustingscrollarea.cpp \ widget/croppinglabel.cpp \ widget/friendlistwidget.cpp \ diff --git a/res.qrc b/res.qrc index d085ca820..c4719df01 100644 --- a/res.qrc +++ b/res.qrc @@ -142,6 +142,7 @@ translations/pl.qm translations/fi.qm translations/mannol.qm + translations/uk.qm img/avatar_mask.png img/group_2x.png diff --git a/translations/uk.qm b/translations/uk.qm new file mode 100644 index 000000000..53c004e9b Binary files /dev/null and b/translations/uk.qm differ diff --git a/translations/uk.ts b/translations/uk.ts new file mode 100644 index 000000000..70d143cdc --- /dev/null +++ b/translations/uk.ts @@ -0,0 +1,485 @@ + + + + + AVPage + + + Video Settings + Параметри відео + + + + + Show video preview + On a button + Показати вікно попереднього перегляду + + + + Hide video preview + On a button + Приховати вікно попереднього перегляду + + + + AddFriendForm + + + Add Friends + Додати друзів + + + + Tox ID + Tox ID of the person you're sending a friend request to + Tox ID + + + + Message + The message you send in friend requests + Повідомлення + + + + Send friend request + Надіслати запит на дружбу + + + + Tox me maybe? + Default message in friend requests if the field is left blank. Write something appropriate! + Може поспілкуємось? + + + + Please fill in a valid Tox ID + Tox ID of the friend you're sending a friend request to + Заповніть коректним Tox ID + + + + You can't add yourself as a friend! + When trying to add your own Tox ID as friend + Ви не можете додати самого себе до друзів! + + + + This address does not exist + The DNS gives the Tox ID associated to toxme.se addresses + Цієї адреси не існує + + + + Error while looking up DNS + The DNS gives the Tox ID associated to toxme.se addresses + Помилка під час перегляду DNS + + + + Unexpected number of text records + Error with the DNS + Неочікуване число текстових записів + + + + Unexpected number of values in text record + Error with the DNS + Неочікуване число значень в текстових записах + + + + The DNS lookup does not contain any Tox ID + Error with the DNS + Відповідь DNS не містить жодного Tox ID + + + + + The DNS lookup does not contain a valid Tox ID + Error with the DNS + Відповідь DNS не містить жодного коректного Tox ID + + + + ChatForm + + + Send a file + Надіслати файл + + + + FileTransferInstance + + + Save a file + Title of the file saving dialog + Зберегти файл + + + + Location not writable + Title of permissions popup + Немає прав на запис + + + + You do not have permission to write that location. Choose another, or cancel the save dialog. + text of permissions popup + Ви не маєте прав на запис за цим розташуванням. Оберіть інше місце призначення, або скасуйте передачу. + + + + FilesForm + + + Transfered Files + "Headline" of the window + Передані файли + + + + Downloads + Завантажені + + + + Uploads + Вивантажені + + + + FriendRequestDialog + + + Friend request + Title of the window to aceept/deny a friend request + Запит на дружбу + + + + Someone wants to make friends with you + Дехто хоче долучитися до переліку друзів з вами + + + + User ID: + ID користувача: + + + + Friend request message: + Повідомлення запиту: + + + + Accept + Accept a friend request + Прийняти + + + + Reject + Reject a friend request + Відхилити + + + + FriendWidget + + + Copy friend ID + Menu to copy the Tox ID of that friend + Копіювати дружній ID + + + + Invite in group + Menu to invite a friend in a groupchat + Запросити до групи + + + + Remove friend + Menu to remove the friend from our friendlist + Вилучити з друзів + + + + GeneralPage + + + General Settings + Основні параметри + + + + Enable IPv6 (recommended) + Text on a checkbox to enable IPv6 + Дозволити IPv6 (рекомендовано) + + + + Use translations + Text on a checkbox to enable translations + Використовувати мову системи + + + + Make Tox portable + Text on a checkbox to make qTox a portable application + Портативний запуск + + + + Save settings to the working directory instead of the usual conf dir + describes makeToxPortable checkbox + Зберігати налаштування в робочий теці + + + + Theme + Графічна тема + + + + Smiley Pack + Графічний пакунок емоційних картинок + + + + GenericChatForm + + + + Save chat log + Зберегти чат + + + + GroupChatForm + + + %1 users in chat + Number of users in chat + Користувачів у чаті: %1 + + + + <Unknown> + <Невідомо> + + + + %1 users in chat + Користувачів у чаті: %1 + + + + GroupWidget + + + + %1 users in chat + Користувачів у чаті: %1 + + + + + 0 users in chat + Немає користувачів + + + + Quit group + Menu to quit a groupchat + Вийти з групи + + + + IdentityPage + + + Public Information + Публічна інформація + + + + Name + Username/nick + Ім'я + + + + Status + Status message + Статус + + + + Tox ID + Tox ID + + + + Your Tox ID + Ваш Tox ID + + + + MainWindow + + + qTox + qTox + + + + Your name + Ваше ім'я + + + + Your status + Ваш статус + + + + Add friends + Додати друзів + + + + Create a group chat + Створити груповий чат + + + + View completed file transfers + Переглянути завершені передачі файлів + + + + Change your settings + Змінити параметри + + + + Close + Закрити + + + + Ctrl+Q + Ctrl+Q + + + + SelfCamView + + + Tox video test + Title of the window to test the video/webcam + Перевірка відео tox + + + + SettingsDialog + + + qTox – Settings + qTox - Параметри + + + + General + Основні + + + + Identity + Ідентифікація + + + + Privacy + Приватність + + + + Audio/Video + Аудіо/Відео + + + + Ok + Гаразд + + + + Cancel + Скасувати + + + + Apply + Застосувати + + + + Widget + + + Online + Button to set your status to 'Online' + В мережі + + + + Away + Button to set your status to 'Away' + Відійшов + + + + Busy + Button to set your status to 'Busy' + Зайнятий + + + + Choose a profile picture + Оберіть зображення для профілю + + + + + + Error + Помилка + + + + Unable to open this file + Неможливо відкрити цей файл + + + + Unable to read this image + Неможливо прочитати це зображення + + + + This image is too big + Зображення завелике + + + + <Unknown> + Placeholder when we don't know someone's name in a group chat + <Невідомо> + + + diff --git a/widget/emoticonswidget.cpp b/widget/emoticonswidget.cpp index f471e8729..1e3d0ea4e 100644 --- a/widget/emoticonswidget.cpp +++ b/widget/emoticonswidget.cpp @@ -15,8 +15,8 @@ */ #include "emoticonswidget.h" -#include "smileypack.h" -#include "style.h" +#include "misc/smileypack.h" +#include "misc/style.h" #include #include diff --git a/widget/form/chatform.cpp b/widget/form/chatform.cpp index 9c57f0d88..ed307bc89 100644 --- a/widget/form/chatform.cpp +++ b/widget/form/chatform.cpp @@ -119,6 +119,7 @@ void ChatForm::startFileSend(ToxFile file) connect(Core::getInstance(), SIGNAL(fileTransferAccepted(ToxFile)), fileTrans, SLOT(onFileTransferAccepted(ToxFile))); connect(Core::getInstance(), SIGNAL(fileTransferPaused(int,int,ToxFile::FileDirection)), fileTrans, SLOT(onFileTransferPaused(int,int,ToxFile::FileDirection))); connect(Core::getInstance(), SIGNAL(fileTransferRemotePausedUnpaused(ToxFile,bool)), fileTrans, SLOT(onFileTransferRemotePausedUnpaused(ToxFile,bool))); + connect(Core::getInstance(), SIGNAL(fileTransferBrokenUnbroken(ToxFile, bool)), fileTrans, SLOT(onFileTransferBrokenUnbroken(ToxFile, bool))); QString name = Widget::getInstance()->getUsername(); if (name == previousName) @@ -142,6 +143,7 @@ void ChatForm::onFileRecvRequest(ToxFile file) connect(Core::getInstance(), SIGNAL(fileTransferAccepted(ToxFile)), fileTrans, SLOT(onFileTransferAccepted(ToxFile))); connect(Core::getInstance(), SIGNAL(fileTransferPaused(int,int,ToxFile::FileDirection)), fileTrans, SLOT(onFileTransferPaused(int,int,ToxFile::FileDirection))); connect(Core::getInstance(), SIGNAL(fileTransferRemotePausedUnpaused(ToxFile,bool)), fileTrans, SLOT(onFileTransferRemotePausedUnpaused(ToxFile,bool))); + connect(Core::getInstance(), SIGNAL(fileTransferBrokenUnbroken(ToxFile, bool)), fileTrans, SLOT(onFileTransferBrokenUnbroken(ToxFile, bool))); Widget* w = Widget::getInstance(); if (!w->isFriendWidgetCurActiveWidget(f)|| w->getIsWindowMinimized() || !w->isActiveWindow()) diff --git a/widget/form/genericchatform.cpp b/widget/form/genericchatform.cpp index c992ba563..26bd958ba 100644 --- a/widget/form/genericchatform.cpp +++ b/widget/form/genericchatform.cpp @@ -17,11 +17,11 @@ #include "genericchatform.h" #include "ui_mainwindow.h" #include -#include "smileypack.h" +#include "misc/smileypack.h" #include "widget/emoticonswidget.h" -#include "style.h" +#include "misc/style.h" #include "widget/widget.h" -#include "settings.h" +#include "misc/settings.h" #include "widget/tool/chatactions/messageaction.h" #include "widget/tool/chatactions/systemmessageaction.h" #include "widget/chatareawidget.h" diff --git a/widget/friendwidget.cpp b/widget/friendwidget.cpp index 5bce871f7..ad16ac75c 100644 --- a/widget/friendwidget.cpp +++ b/widget/friendwidget.cpp @@ -210,7 +210,7 @@ void FriendWidget::onAvatarRemoved(int FriendId) return; isDefaultAvatar = true; - avatar->setPixmap(QPixmap(":img/contact.png")); + avatar->setPixmap(QPixmap(":img/contact_dark.png")); } void FriendWidget::mousePressEvent(QMouseEvent *ev) diff --git a/widget/groupwidget.cpp b/widget/groupwidget.cpp index 7bd1683c9..d803063ce 100644 --- a/widget/groupwidget.cpp +++ b/widget/groupwidget.cpp @@ -17,7 +17,7 @@ #include "groupwidget.h" #include "grouplist.h" #include "group.h" -#include "settings.h" +#include "misc/settings.h" #include "widget/form/groupchatform.h" #include "widget/maskablepixmapwidget.h" #include diff --git a/widget/settingsdialog.cpp b/widget/settingsdialog.cpp index d81973286..947395350 100644 --- a/widget/settingsdialog.cpp +++ b/widget/settingsdialog.cpp @@ -1,10 +1,10 @@ #include "settingsdialog.h" -#include "settings.h" +#include "misc/settings.h" #include "widget.h" #include "camera.h" #include "selfcamview.h" #include "core.h" -#include "smileypack.h" +#include "misc/smileypack.h" #include #include diff --git a/widget/tool/chatactions/messageaction.cpp b/widget/tool/chatactions/messageaction.cpp index 84ce86194..9904be470 100644 --- a/widget/tool/chatactions/messageaction.cpp +++ b/widget/tool/chatactions/messageaction.cpp @@ -15,7 +15,7 @@ */ #include "messageaction.h" -#include "smileypack.h" +#include "misc/smileypack.h" MessageAction::MessageAction(const QString &author, const QString &message, const QString &date, const bool &me) : ChatAction(me, author, date), diff --git a/widget/widget.cpp b/widget/widget.cpp index 2b322eecd..a70fac605 100644 --- a/widget/widget.cpp +++ b/widget/widget.cpp @@ -17,7 +17,7 @@ #include "widget.h" #include "ui_mainwindow.h" #include "core.h" -#include "settings.h" +#include "misc/settings.h" #include "friend.h" #include "friendlist.h" #include "widget/tool/friendrequestdialog.h" @@ -26,7 +26,7 @@ #include "group.h" #include "widget/groupwidget.h" #include "widget/form/groupchatform.h" -#include "style.h" +#include "misc/style.h" #include "selfcamview.h" #include "widget/friendlistwidget.h" #include "camera.h"