From c13ede85df80faa67aee12b0c096dee52d94c464 Mon Sep 17 00:00:00 2001 From: TriKriSta Date: Sun, 29 Mar 2020 00:36:51 -0700 Subject: [PATCH 01/11] fix(ui): add vertical spacer to profileform --- src/widget/form/profileform.ui | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/src/widget/form/profileform.ui b/src/widget/form/profileform.ui index bd5533f51..8c4fadaa3 100644 --- a/src/widget/form/profileform.ui +++ b/src/widget/form/profileform.ui @@ -441,6 +441,19 @@ Profile does not contain your history. + + + + Qt::Vertical + + + + 20 + 40 + + + + From 40989e54d88fab705c0afb131b9e5826744ee621 Mon Sep 17 00:00:00 2001 From: Anthony Bilinski Date: Mon, 13 Apr 2020 00:51:48 -0700 Subject: [PATCH 02/11] chore(ci): don't use git --no-merges for git commit message checking When doing a short clone, like travis does, git can't tell if the oldest commit is a merge of not. Just allow either commit message format for all commits, and rely on reviewers and common sense to not name normal commits "Merge.*" Fix #6051 --- verify-commit-messages.sh | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-) diff --git a/verify-commit-messages.sh b/verify-commit-messages.sh index ad3122219..755802e6f 100755 --- a/verify-commit-messages.sh +++ b/verify-commit-messages.sh @@ -36,11 +36,10 @@ ARG="$1" echo "" # ← formatting grep_for_invalid() { - # differentiate what is allowed for commit messages and merge messages - git log --no-merges --format=format:'%s' "$ARG" \ - | grep -v -E '^(feat|fix|docs|style|refactor|perf|revert|test|chore)(\(.{,12}\))?:.{1,68}$' \ - || git log --merges --format=format:'%s' "$ARG" \ - | grep -v -E '^Merge .{1,70}$' + # we can't rely on differentiating merge and normal commits since short clones that travis does may not be able + # to tell if the oldest commit is a merge commit or not + git log --format=format:'%s' "$ARG" \ + | grep -v -E '^((feat|fix|docs|style|refactor|perf|revert|test|chore)(\(.{,12}\))?:.{1,68})|(Merge .{1,70})$' } # Conform, /OR ELSE/. From deb7fbb67cb5e7f799b01a37791e613471fff95a Mon Sep 17 00:00:00 2001 From: Anthony Bilinski Date: Sun, 12 Apr 2020 17:41:10 -0700 Subject: [PATCH 03/11] fix(db): Add half-upgraded cipher params Our previous SQLCiper upgrade code attempted to set SQLCipher 4.0 default params. If SQLCipher 3.x was used at that time, it would result in only half upgrading the params, since SQLCipher 3.x doesn't support PRAGMA cipher_hmac_algorithm or PRAGMA cipher_kdf_algorithm. This means that our databases could be saved with any of three sets of SQLCipher params. --- src/persistence/db/rawdatabase.cpp | 40 ++++++++++++++++++------------ src/persistence/db/rawdatabase.h | 32 ++++++++++++++++++++++-- 2 files changed, 54 insertions(+), 18 deletions(-) diff --git a/src/persistence/db/rawdatabase.cpp b/src/persistence/db/rawdatabase.cpp index f0471824d..027d64b25 100644 --- a/src/persistence/db/rawdatabase.cpp +++ b/src/persistence/db/rawdatabase.cpp @@ -192,7 +192,7 @@ bool RawDatabase::openEncryptedDatabaseAtLatestVersion(const QString& hexKey) return false; } - if (setCipherParameters(4)) { + if (setCipherParameters(SqlCipherParams::p4_0)) { if (testUsable()) { qInfo() << "Opened database with SQLCipher 4.x parameters"; return true; @@ -201,7 +201,7 @@ bool RawDatabase::openEncryptedDatabaseAtLatestVersion(const QString& hexKey) } } else { // setKey again to clear old bad cipher settings - if (setKey(hexKey) && setCipherParameters(3) && testUsable()) { + if (setKey(hexKey) && setCipherParameters(SqlCipherParams::p3_0) && testUsable()) { qInfo() << "Opened database with SQLCipher 3.x parameters"; return true; } else { @@ -223,7 +223,7 @@ bool RawDatabase::testUsable() bool RawDatabase::updateSavedCipherParameters(const QString& hexKey) { setKey(hexKey); // setKey again because a SELECT has already been run, causing crypto settings to take effect - if (!setCipherParameters(3)) { + if (!setCipherParameters(SqlCipherParams::p3_0)) { return false; } @@ -234,7 +234,7 @@ bool RawDatabase::updateSavedCipherParameters(const QString& hexKey) if (!execNow("ATTACH DATABASE '" + path + ".tmp' AS sqlcipher4 KEY \"x'" + hexKey + "'\";")) { return false; } - if (!setCipherParameters(4, "sqlcipher4")) { + if (!setCipherParameters(SqlCipherParams::p4_0, "sqlcipher4")) { return false; } if (!execNow("SELECT sqlcipher_export('sqlcipher4');")) { @@ -253,36 +253,44 @@ bool RawDatabase::updateSavedCipherParameters(const QString& hexKey) return true; } -bool RawDatabase::setCipherParameters(int majorVersion, const QString& database) +bool RawDatabase::setCipherParameters(SqlCipherParams params, const QString& database) { QString prefix; if (!database.isNull()) { prefix = database + "."; } // from https://www.zetetic.net/blog/2018/11/30/sqlcipher-400-release/ - const QString default3_xParams{"PRAGMA database.cipher_page_size = 1024; PRAGMA database.kdf_iter = 64000;" + const QString default3_xParams{"PRAGMA database.cipher_page_size = 1024;" + "PRAGMA database.kdf_iter = 64000;" "PRAGMA database.cipher_hmac_algorithm = HMAC_SHA1;" "PRAGMA database.cipher_kdf_algorithm = PBKDF2_HMAC_SHA1;"}; - const QString default4_xParams{"PRAGMA database.cipher_page_size = 4096; PRAGMA database.kdf_iter = 256000;" + // cipher_hmac_algorithm and cipher_kdf_algorithm weren't supported in sqlcipher 3.x, so our upgrade to 4 only + // applied some of the new params if sqlcipher 3.x was used at the time + const QString halfUpgradedTo4Params{"PRAGMA database.cipher_page_size = 4096;" + "PRAGMA database.kdf_iter = 256000;" + "PRAGMA database.cipher_hmac_algorithm = HMAC_SHA1;" + "PRAGMA database.cipher_kdf_algorithm = PBKDF2_HMAC_SHA1;"}; + const QString default4_xParams{"PRAGMA database.cipher_page_size = 4096;" + "PRAGMA database.kdf_iter = 256000;" "PRAGMA database.cipher_hmac_algorithm = HMAC_SHA512;" "PRAGMA database.cipher_kdf_algorithm = PBKDF2_HMAC_SHA512;"}; QString defaultParams; - switch(majorVersion) { - case 3: { + switch(params) { + case SqlCipherParams::p3_0: { defaultParams = default3_xParams; break; } - case 4: { + case SqlCipherParams::halfUpgradedTo4: { + defaultParams = halfUpgradedTo4Params; + break; + } + case SqlCipherParams::p4_0: { defaultParams = default4_xParams; break; } - default: { - qCritical() << __FUNCTION__ << "called with unsupported SQLCipher major version" << majorVersion; - return false; - } } - qDebug().nospace() << "Setting SQLCipher " << majorVersion << ".x parameters"; + qDebug() << "Setting SQLCipher" << static_cast(params) << "parameters"; return execNow(defaultParams.replace("database.", prefix)); } @@ -494,7 +502,7 @@ bool RawDatabase::encryptDatabase(const QString& newHexKey) qWarning() << "Failed to export encrypted database"; return false; } - if (!setCipherParameters(4, "encrypted")) { + if (!setCipherParameters(SqlCipherParams::p4_0, "encrypted")) { return false; } if (!execNow("SELECT sqlcipher_export('encrypted');")) { diff --git a/src/persistence/db/rawdatabase.h b/src/persistence/db/rawdatabase.h index bf34a15fb..fb2ce907f 100644 --- a/src/persistence/db/rawdatabase.h +++ b/src/persistence/db/rawdatabase.h @@ -20,6 +20,8 @@ #ifndef RAWDATABASE_H #define RAWDATABASE_H +#include "src/util/strongtype.h" + #include #include #include @@ -29,10 +31,11 @@ #include #include #include + #include +#include #include #include -#include "src/util/strongtype.h" /// The two following defines are required to use SQLCipher /// They are used by the sqlite3.h header @@ -82,6 +85,16 @@ public: }; public: + enum class SqlCipherParams { + // keep these sorted in upgrade order + p3_0, // SQLCipher 3.0 default encryption params + // SQLCipher 4.0 default params where SQLCipher 3.0 supports them, but 3.0 params where not possible. + // We accidentally got to this state when attemption to update all databases to 4.0 defaults even when using + // SQLCipher 3.x, but might as well keep using these for people with SQLCipher 3.x. + halfUpgradedTo4, + p4_0 // SQLCipher 4.0 default encryption params + }; + RawDatabase(const QString& path, const QString& password, const QByteArray& salt); ~RawDatabase(); bool isOpen(); @@ -96,6 +109,21 @@ public: void sync(); + static QString toString(SqlCipherParams params) + { + switch (params) + { + case SqlCipherParams::p3_0: + return "3.0 default"; + case SqlCipherParams::halfUpgradedTo4: + return "3.x max compatible"; + case SqlCipherParams::p4_0: + return "4.0 default"; + } + assert(false); + return {}; + } + public slots: bool setPassword(const QString& password); bool rename(const QString& newPath); @@ -110,7 +138,7 @@ private: QString anonymizeQuery(const QByteArray& query); bool openEncryptedDatabaseAtLatestVersion(const QString& hexKey); bool updateSavedCipherParameters(const QString& hexKey); - bool setCipherParameters(int majorVersion, const QString& database = {}); + bool setCipherParameters(SqlCipherParams params, const QString& database = {}); bool setKey(const QString& hexKey); int getUserVersion(); bool encryptDatabase(const QString& newHexKey); From 2c59c9203035e35d81adc982ffe7e661d37e9b1f Mon Sep 17 00:00:00 2001 From: Anthony Bilinski Date: Sun, 12 Apr 2020 19:35:29 -0700 Subject: [PATCH 04/11] fix(db): Support opening and upgrading to any of three SQLCipher params Fix #5952 --- src/persistence/db/rawdatabase.cpp | 98 ++++++++++++++++++++++-------- src/persistence/db/rawdatabase.h | 6 +- 2 files changed, 77 insertions(+), 27 deletions(-) diff --git a/src/persistence/db/rawdatabase.cpp b/src/persistence/db/rawdatabase.cpp index 027d64b25..05265e67c 100644 --- a/src/persistence/db/rawdatabase.cpp +++ b/src/persistence/db/rawdatabase.cpp @@ -175,7 +175,7 @@ bool RawDatabase::open(const QString& path, const QString& hexKey) } if (!hexKey.isEmpty()) { - if (!openEncryptedDatabaseAtLatestVersion(hexKey)) { + if (!openEncryptedDatabaseAtLatestSupportedVersion(hexKey)) { close(); return false; } @@ -183,31 +183,27 @@ bool RawDatabase::open(const QString& path, const QString& hexKey) return true; } -bool RawDatabase::openEncryptedDatabaseAtLatestVersion(const QString& hexKey) +bool RawDatabase::openEncryptedDatabaseAtLatestSupportedVersion(const QString& hexKey) { - // old qTox database are saved with SQLCipher 3.x defaults. New qTox (and for a period during 1.16.3 master) are stored - // with 4.x defaults. We need to support opening both databases saved with 3.x defaults and 4.x defaults - // so upgrade from 3.x default to 4.x defaults while we're at it + // old qTox database are saved with SQLCipher 3.x defaults. For a period after 1.16.3 but before 1.17.0, databases + // could be partially upgraded to SQLCipher 4.0 defaults, since SQLCipher 3.x isn't capable of setitng all the same + // params. If SQLCipher 4.x happened to be used, they would have been fully upgraded to 4.0 default params. + // We need to support all three of these cases, so also upgrade to the latest possible params while we're here if (!setKey(hexKey)) { return false; } - if (setCipherParameters(SqlCipherParams::p4_0)) { + auto highestSupportedVersion = highestSupportedParams(); + if (setCipherParameters(highestSupportedVersion)) { if (testUsable()) { - qInfo() << "Opened database with SQLCipher 4.x parameters"; + qInfo() << "Opened database with SQLCipher" << toString(highestSupportedVersion) << "parameters"; return true; } else { - return updateSavedCipherParameters(hexKey); + return updateSavedCipherParameters(hexKey, highestSupportedVersion); } } else { - // setKey again to clear old bad cipher settings - if (setKey(hexKey) && setCipherParameters(SqlCipherParams::p3_0) && testUsable()) { - qInfo() << "Opened database with SQLCipher 3.x parameters"; - return true; - } else { - qCritical() << "Failed to open database with SQLCipher 3.x parameters"; - return false; - } + qCritical() << "Failed to set latest supported SQLCipher params!"; + return false; } } @@ -220,10 +216,11 @@ bool RawDatabase::testUsable() /** * @brief Changes stored db encryption from SQLCipher 3.x defaults to 4.x defaults */ -bool RawDatabase::updateSavedCipherParameters(const QString& hexKey) +bool RawDatabase::updateSavedCipherParameters(const QString& hexKey, SqlCipherParams newParams) { + auto currentParams = readSavedCipherParams(hexKey, newParams); setKey(hexKey); // setKey again because a SELECT has already been run, causing crypto settings to take effect - if (!setCipherParameters(SqlCipherParams::p3_0)) { + if (!setCipherParameters(currentParams)) { return false; } @@ -231,25 +228,26 @@ bool RawDatabase::updateSavedCipherParameters(const QString& hexKey) if (user_version < 0) { return false; } - if (!execNow("ATTACH DATABASE '" + path + ".tmp' AS sqlcipher4 KEY \"x'" + hexKey + "'\";")) { + if (!execNow("ATTACH DATABASE '" + path + ".tmp' AS newParams KEY \"x'" + hexKey + "'\";")) { return false; } - if (!setCipherParameters(SqlCipherParams::p4_0, "sqlcipher4")) { + if (!setCipherParameters(newParams, "newParams")) { return false; } - if (!execNow("SELECT sqlcipher_export('sqlcipher4');")) { + if (!execNow("SELECT sqlcipher_export('newParams');")) { return false; } - if (!execNow(QString("PRAGMA sqlcipher4.user_version = %1;").arg(user_version))) { + if (!execNow(QString("PRAGMA newParams.user_version = %1;").arg(user_version))) { return false; } - if (!execNow("DETACH DATABASE sqlcipher4;")) { + if (!execNow("DETACH DATABASE newParams;")) { return false; } if (!commitDbSwap(hexKey)) { return false; } - qInfo() << "Upgraded database from SQLCipher 3.x defaults to SQLCipher 4.x defaults"; + qInfo() << "Upgraded database from SQLCipher" << toString(currentParams) << "params to" << + toString(newParams) << "params complete"; return true; } @@ -290,10 +288,60 @@ bool RawDatabase::setCipherParameters(SqlCipherParams params, const QString& dat break; } } - qDebug() << "Setting SQLCipher" << static_cast(params) << "parameters"; + + qDebug() << "Setting SQLCipher" << toString(params) << "parameters"; return execNow(defaultParams.replace("database.", prefix)); } +RawDatabase::SqlCipherParams RawDatabase::highestSupportedParams() +{ + // Note: This is just calling into the sqlcipher library, not touching the database. + QString cipherVersion; + if (!execNow(RawDatabase::Query("PRAGMA cipher_version", [&](const QVector& row) { + cipherVersion = row[0].toString(); + }))) { + qCritical() << "Failed to read cipher_version"; + return SqlCipherParams::p3_0; + } + + auto majorVersion = cipherVersion.split('.')[0].toInt(); + + SqlCipherParams highestSupportedParams; + switch (majorVersion) { + case 3: + highestSupportedParams = SqlCipherParams::halfUpgradedTo4; + break; + case 4: + highestSupportedParams = SqlCipherParams::p4_0; + break; + default: + qCritical() << "Unsupported SQLCipher version detected!"; + return SqlCipherParams::p3_0; + } + qDebug() << "Highest supported SQLCipher params on this system are" << toString(highestSupportedParams); + return highestSupportedParams; +} + +RawDatabase::SqlCipherParams RawDatabase::readSavedCipherParams(const QString& hexKey, SqlCipherParams newParams) +{ + for (int i = static_cast(SqlCipherParams::p3_0); i < static_cast(newParams); ++i) + { + if (!setKey(hexKey)) { + break; + } + + if (!setCipherParameters(static_cast(i))) { + break; + } + + if (testUsable()) { + return static_cast(i); + } + } + qCritical() << "Failed to check saved SQLCipher params"; + return SqlCipherParams::p3_0; +} + bool RawDatabase::setKey(const QString& hexKey) { // setKey again to clear old bad cipher settings diff --git a/src/persistence/db/rawdatabase.h b/src/persistence/db/rawdatabase.h index fb2ce907f..0387e9aa9 100644 --- a/src/persistence/db/rawdatabase.h +++ b/src/persistence/db/rawdatabase.h @@ -136,9 +136,11 @@ protected slots: private: QString anonymizeQuery(const QByteArray& query); - bool openEncryptedDatabaseAtLatestVersion(const QString& hexKey); - bool updateSavedCipherParameters(const QString& hexKey); + bool openEncryptedDatabaseAtLatestSupportedVersion(const QString& hexKey); + bool updateSavedCipherParameters(const QString& hexKey, SqlCipherParams newParams); bool setCipherParameters(SqlCipherParams params, const QString& database = {}); + SqlCipherParams highestSupportedParams(); + SqlCipherParams readSavedCipherParams(const QString& hexKey, SqlCipherParams newParams); bool setKey(const QString& hexKey); int getUserVersion(); bool encryptDatabase(const QString& newHexKey); From 3d89b41e9968cc1f997ae68f9d80440cca5f955e Mon Sep 17 00:00:00 2001 From: sudden6 Date: Wed, 15 Apr 2020 21:45:20 +0200 Subject: [PATCH 05/11] chore: update to Qt 5.12.8 for Windows --- windows/cross-compile/build.sh | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/windows/cross-compile/build.sh b/windows/cross-compile/build.sh index da3ce3b86..1d7574c5a 100644 --- a/windows/cross-compile/build.sh +++ b/windows/cross-compile/build.sh @@ -272,10 +272,10 @@ fi QT_PREFIX_DIR="$DEP_DIR/libqt5" QT_MAJOR=5 QT_MINOR=12 -QT_PATCH=7 +QT_PATCH=8 QT_VERSION=$QT_MAJOR.$QT_MINOR.$QT_PATCH -# hash from https://download.qt.io/archive/qt/5.12/5.12.7/single/qt-everywhere-src-5.12.7.tar.xz.mirrorlist -QT_HASH="873783a0302129d98a8f63de9afe4520fb5f8d5316be8ad7b760c59875cd8a8d" +# hash from https://download.qt.io/archive/qt/5.12/5.12.8/single/qt-everywhere-src-5.12.8.tar.xz.mirrorlist +QT_HASH="9142300dfbd641ebdea853546511a352e4bd547c4c7f25d61a40cd997af1f0cf" QT_FILENAME="qt-everywhere-src-$QT_VERSION.tar.xz" if [ ! -f "$QT_PREFIX_DIR/done" ] then From 28341d8457127f696b5c2c157d51ebd5d5700086 Mon Sep 17 00:00:00 2001 From: iphydf Date: Thu, 16 Apr 2020 15:44:11 +0000 Subject: [PATCH 06/11] fix(osx): Add camera and microphone usage description. NSCameraUsageDescription and NSMicrophoneUsageDescription are needed on newer macOS versions (10.14+) to get access to camera/microphone. This text is shown to the user when they need to press the "allow" button. --- osx/info.plist | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/osx/info.plist b/osx/info.plist index e91fedaba..eb3f7ac69 100644 --- a/osx/info.plist +++ b/osx/info.plist @@ -87,6 +87,10 @@ 1.16.3 NSPrincipalClass NSApplication + NSCameraUsageDescription + $(PRODUCT_NAME) needs access to the camera for video calls. + NSMicrophoneUsageDescription + $(PRODUCT_NAME) needs access to the microphone for audio calls. UTImportedTypeDeclarations From 0f5c5482db45d6d97a830e5a25c918983384a2e5 Mon Sep 17 00:00:00 2001 From: sudden6 Date: Sun, 19 Apr 2020 23:26:57 +0200 Subject: [PATCH 07/11] chore(release): update qTox version to 1.17.0 --- README.md | 10 +++++----- osx/info.plist | 4 ++-- res/io.github.qtox.qTox.appdata.xml | 2 +- windows/qtox.nsi | 2 +- windows/qtox64.nsi | 2 +- 5 files changed, 10 insertions(+), 10 deletions(-) diff --git a/README.md b/README.md index e1abb90de..c54cfb183 100644 --- a/README.md +++ b/README.md @@ -158,18 +158,18 @@ AED3 1134 9C23 A123 E5C4 AA4B 139C A045 3DA2 D773 ``` [#qtox@freenode]: https://webchat.freenode.net/?channels=qtox -[64 bit release]: https://github.com/qTox/qTox/releases/download/v1.16.3/setup-qtox-x86_64-release.exe -[32 bit release]: https://github.com/qTox/qTox/releases/download/v1.16.3/setup-qtox-i686-release.exe +[64 bit release]: https://github.com/qTox/qTox/releases/download/v1.17.0/setup-qtox-x86_64-release.exe +[32 bit release]: https://github.com/qTox/qTox/releases/download/v1.17.0/setup-qtox-i686-release.exe [32nightly]: https://build.tox.chat/view/qtox/job/qTox-cmake-nightly_build_windows_x86_release/lastSuccessfulBuild/artifact/qTox-cmake-nightly_build_windows_x86_release.zip [64nightly]: https://build.tox.chat/view/qtox/job/qTox-cmake-nightly_build_windows_x86-64_release/lastSuccessfulBuild/artifact/qTox-cmake-nightly_build_windows_x86-64_release.zip -[Flatpak]: https://github.com/qTox/qTox/releases/download/v1.16.3/qTox-v1.16.3.x86_64.flatpak -[AppImage]: https://github.com/qTox/qTox/releases/download/v1.16.3/qTox-v1.16.3.x86_64.AppImage +[Flatpak]: https://github.com/qTox/qTox/releases/download/v1.17.0/qTox-v1.17.0.x86_64.flatpak +[AppImage]: https://github.com/qTox/qTox/releases/download/v1.17.0/qTox-v1.17.0.x86_64.AppImage [Arch]: /INSTALL.md#arch [Building instructions]: /INSTALL.md#os-x [Contributing]: /CONTRIBUTING.md#how-to-start-contributing [Debian]: https://packages.debian.org/search?keywords=qtox [easy issues]: https://github.com/qTox/qTox/labels/E-easy -[Latest release]: https://github.com/qTox/qTox/releases/download/v1.16.3/qTox.dmg +[Latest release]: https://github.com/qTox/qTox/releases/download/v1.17.0/qTox.dmg [Fedora]: /INSTALL.md#fedora [Gentoo]: /INSTALL.md#gentoo [openSUSE]: /INSTALL.md#opensuse diff --git a/osx/info.plist b/osx/info.plist index eb3f7ac69..bbdb0cfdf 100644 --- a/osx/info.plist +++ b/osx/info.plist @@ -65,7 +65,7 @@ CFBundlePackageType APPL CFBundleShortVersionString - 1.16.3 + 1.17.0 CFBundleSignature toxq CFBundleURLTypes @@ -84,7 +84,7 @@ CFBundleVersion - 1.16.3 + 1.17.0 NSPrincipalClass NSApplication NSCameraUsageDescription diff --git a/res/io.github.qtox.qTox.appdata.xml b/res/io.github.qtox.qTox.appdata.xml index f5ae32fa2..849381410 100644 --- a/res/io.github.qtox.qTox.appdata.xml +++ b/res/io.github.qtox.qTox.appdata.xml @@ -68,7 +68,7 @@ intense -​ +​ diff --git a/windows/qtox.nsi b/windows/qtox.nsi index 8ada7378c..2e540a640 100644 --- a/windows/qtox.nsi +++ b/windows/qtox.nsi @@ -276,7 +276,7 @@ Section "Install" ${WriteRegStr} "${REG_ROOT}" "${REG_APP_PATH}" "" "$INSTDIR\${MAIN_APP_EXE}" ${WriteRegStr} "${REG_ROOT}" "${REG_APP_PATH}" "Path" "$INSTDIR\bin\" ${WriteRegStr} ${REG_ROOT} "${UNINSTALL_PATH}" "DisplayName" "qTox" - ${WriteRegStr} ${REG_ROOT} "${UNINSTALL_PATH}" "DisplayVersion" "1.16.3" + ${WriteRegStr} ${REG_ROOT} "${UNINSTALL_PATH}" "DisplayVersion" "1.17.0" ${WriteRegStr} ${REG_ROOT} "${UNINSTALL_PATH}" "Publisher" "The qTox Project" ${WriteRegStr} ${REG_ROOT} "${UNINSTALL_PATH}" "UninstallString" "$INSTDIR\uninstall.exe" ${WriteRegStr} ${REG_ROOT} "${UNINSTALL_PATH}" "URLInfoAbout" "https://qtox.github.io" diff --git a/windows/qtox64.nsi b/windows/qtox64.nsi index b943388b9..b867f062e 100755 --- a/windows/qtox64.nsi +++ b/windows/qtox64.nsi @@ -277,7 +277,7 @@ Section "Install" ${WriteRegStr} "${REG_ROOT}" "${REG_APP_PATH}" "" "$INSTDIR\${MAIN_APP_EXE}" ${WriteRegStr} "${REG_ROOT}" "${REG_APP_PATH}" "Path" "$INSTDIR\bin\" ${WriteRegStr} ${REG_ROOT} "${UNINSTALL_PATH}" "DisplayName" "qTox" - ${WriteRegStr} ${REG_ROOT} "${UNINSTALL_PATH}" "DisplayVersion" "1.16.3" + ${WriteRegStr} ${REG_ROOT} "${UNINSTALL_PATH}" "DisplayVersion" "1.17.0" ${WriteRegStr} ${REG_ROOT} "${UNINSTALL_PATH}" "Publisher" "The qTox Project" ${WriteRegStr} ${REG_ROOT} "${UNINSTALL_PATH}" "UninstallString" "$INSTDIR\uninstall.exe" ${WriteRegStr} ${REG_ROOT} "${UNINSTALL_PATH}" "URLInfoAbout" "https://qtox.github.io" From 9fffd7bca5f31fd196d10c073fa37a9c63e09ec4 Mon Sep 17 00:00:00 2001 From: sudden6 Date: Mon, 20 Apr 2020 00:11:10 +0200 Subject: [PATCH 08/11] chore(release): add changelog for v1.17.0 --- CHANGELOG.md | 380 +++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 380 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 2bb6efed0..6c926f74d 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,383 @@ + +## (2020-04-19) + +Since this is the first release in more than a year the changelog is quite huge. +The most notable user facing changes are group chats that stay intact after +disconnects or client shutdown as well as the very often requested dark theme. +Advanced history search was added, as well as file transfers staying in chat +history after client restart. There are of course also tons of fixes, namely +much increased stability of audio and video calls as well as audio group calls. + +#### Performance + +* **history:** enable sql index on chat_id in history table ([edd72906](https://github.com/qTox/qTox/commit/edd72906fbd4ff7e8e48ebcd7fed764baf8cd85b)) +* **smileys:** + * create global regex object ([0f90abeb](https://github.com/qTox/qTox/commit/0f90abebddeb99b133e415e9a1e015eb08197690)) + * use one big regex instead of constructing many small ones ([58f8a14a](https://github.com/qTox/qTox/commit/58f8a14a48b7a023def122aff2e72b08b38c10de)) + +#### Features + +* add Fcitx and Uim support to AppImage ([710c32de](https://github.com/qTox/qTox/commit/710c32ded0aad89d2dd14718d068f0146755296d)) +* save selected search text after scrolling up ([dbf88007](https://github.com/qTox/qTox/commit/dbf880078e8b3207bf5c4f057bc6071b4c74b9ce)) +* check chat status before start a search ([ce570927](https://github.com/qTox/qTox/commit/ce570927b145676ff3a63f36a3fe082fa52b228a)) +* prohibition to remove messages in group chat ([5aeac56b](https://github.com/qTox/qTox/commit/5aeac56b761ad24b6a2829fca499b8eff480a306)) +* remove part messages from chat ([4c7ecb60](https://github.com/qTox/qTox/commit/4c7ecb60247a0e0d84442e506ae5122204ffb328)) +* edit position chat after load history ([c2d5b422](https://github.com/qTox/qTox/commit/c2d5b422b3ff09af329840dd829d9d2163b79e52)) +* add action "Go to current date" ([2a9648d1](https://github.com/qTox/qTox/commit/2a9648d12c2f71efa8f9722f1c0fa6e39e701c47)) +* edit load history in search ([8c4b1e00](https://github.com/qTox/qTox/commit/8c4b1e00a128b739904ed60543132b34817f0ba5)) +* edit function "Load chat history" ([6de1173c](https://github.com/qTox/qTox/commit/6de1173c172a14aec3dba289dd63d5857fe69d19)) +* load messages from the database after date ([b705ac80](https://github.com/qTox/qTox/commit/b705ac806059717d98cfd60b1b2f1abdaa84e6a9)) +* load messages from the database before date ([fb2957c5](https://github.com/qTox/qTox/commit/fb2957c5ee9b0abffdc8c462e96be71c38d44949)) +* add border for qrcode ([191f89ff](https://github.com/qTox/qTox/commit/191f89ffa4b01896a7ce94291f52fb482264eaa6)) +* remove old boostrap nodes code ([acef759a](https://github.com/qTox/qTox/commit/acef759a586c38a314943555ee9e2949bbba90c5)) +* load bootstrap nodes directly from JSON ([1f2bdf3a](https://github.com/qTox/qTox/commit/1f2bdf3a1b2e723989ae83b525b62b7a13dd610f)) +* add color for links in palette ([d35dbcc8](https://github.com/qTox/qTox/commit/d35dbcc870d3f35c9ba075736f85ec27d7c84b42)) +* edit reload themes ([e146c11f](https://github.com/qTox/qTox/commit/e146c11f0fbe52e91dda2267a54f83943768d410)) +* show date in chat log ([d0e8ba8b](https://github.com/qTox/qTox/commit/d0e8ba8b9ca0de2ca9f5a847ea0c86cacd13833a)) +* add class to retrieve bootstrap nodes from nodes.tox.chat ([c3363a1f](https://github.com/qTox/qTox/commit/c3363a1feab643eba488668e30d5afc8fedc5990)) +* add message if text not found ([4253301c](https://github.com/qTox/qTox/commit/4253301c5606637c8b1beae082f922af10eb365a)) +* Add spell checking ([671b9456](https://github.com/qTox/qTox/commit/671b9456a88c5ef12c6e29114eed4c708f845e69)) +* add function for generating a filter for search word only ([17a97f1f](https://github.com/qTox/qTox/commit/17a97f1ff68af50588012bf3b9b31a61cdf2b194)) +* add startButton in SearchForm ([8dd83477](https://github.com/qTox/qTox/commit/8dd83477591f9c357abba1892e1a7a6b9ca11af9)) +* add functions for change title and info in LoadHistoryDialog ([3b7ba023](https://github.com/qTox/qTox/commit/3b7ba023242ba9e2a5340eb9c1b8ed69db710aef)) +* use search settings ([610e04aa](https://github.com/qTox/qTox/commit/610e04aa2698deb24af2f04db5cf3e049101a54d)) +* create widget for search settings ([87b340f4](https://github.com/qTox/qTox/commit/87b340f4a14b3544cdc2ea50c1256bca974ac967)) +* **apparmor:** + * Add AppArmor profile install scripts ([2e682c6e](https://github.com/qTox/qTox/commit/2e682c6e6a11d500854b09b61e271683c70c1b12)) + * Add AppArmor v2.12.1 profile ([d6ef3d2e](https://github.com/qTox/qTox/commit/d6ef3d2eae072bea57d7e9fe913426b78f99b811)) + * Add AppArmor profile ([89514eee](https://github.com/qTox/qTox/commit/89514eee6d9ba2495fe1d4fe845f0253601242c5)) +* **build:** + * use Debian Buster for Windows cross-compilation ([6bb2c7c6](https://github.com/qTox/qTox/commit/6bb2c7c62933b6f64351c932cfe869e30f858615)) + * add the delta updater ([5eea8ba2](https://github.com/qTox/qTox/commit/5eea8ba27f6bbc89f534d1432e06c90a2b64e1b7)) + * remove timestamps from build to allow reproducible builds ([013771c1](https://github.com/qTox/qTox/commit/013771c13a9e68a97d113cf268e52a4751cb4505)) + * add option to enable AddressSanitizer ([fd99dfd0](https://github.com/qTox/qTox/commit/fd99dfd0a5989a5e5a92588c4b229951b9c6270d)) + * update docs and tools to provide signed tar.gz ([7ff1d605](https://github.com/qTox/qTox/commit/7ff1d6053a57a29ee6fcc062feb32894c848f415)) +* **chatfom:** make magnet links clickable ([5b1bc7e5](https://github.com/qTox/qTox/commit/5b1bc7e52323f6832e00a50c34f8143f4d7cbf33)) +* **core:** + * add send message error handling ([5289c999](https://github.com/qTox/qTox/commit/5289c99962b6be374e92163313bc620eef2cbd58)) + * print a chat log entry when a user joins/leaves the group chat ([cabed6de](https://github.com/qTox/qTox/commit/cabed6def3d4b83b3c10de098bb0defa684583de)) + * set group title for loaded groups ([8db744a5](https://github.com/qTox/qTox/commit/8db744a505fa3ebdb3afcc78661aa15b8586ad81)) + * prepare qTox for groupchat saving ([a82eb6f3](https://github.com/qTox/qTox/commit/a82eb6f36e9e443a361de4e7efa04b92cc60be82)) +* **coreav:** add assertions to check for threading errors ([8e54805e](https://github.com/qTox/qTox/commit/8e54805e7d13fe6b28c21b4ed48bc5addeae84d0)) +* **db:** + * File transfer history review comments ([25005c5c](https://github.com/qTox/qTox/commit/25005c5c19c80a3cbd2d966a2bb6bfeaa20eab36)) + * add file hash to file history ([8427be66](https://github.com/qTox/qTox/commit/8427be6678eae2ef151b704feb6bf408038ccdd3)) + * Hookup file history to the rest of the system ([d9b39b31](https://github.com/qTox/qTox/commit/d9b39b3102eff686a072630610c199639f0d8219)) + * Database support for file history ([567ddfb2](https://github.com/qTox/qTox/commit/567ddfb2035dad1f3aad94789e76f8a4e4f77d07)) + * Support schema version upgrades ([fb805b9c](https://github.com/qTox/qTox/commit/fb805b9cdb5f108b15da33aa0bd6c250aac7a8b1)) +* **files:** Add maximum size to autoaccept downloads ([c8716e9c](https://github.com/qTox/qTox/commit/c8716e9c4541d696ae6aa04dd6eb48bfaf76f360)) +* **groups:** + * Allow being in group call if only member ([caf4f59f](https://github.com/qTox/qTox/commit/caf4f59fb2a771cce848b316673787940eadd76c)) + * show who is in a group call before joining ([ec07fd72](https://github.com/qTox/qTox/commit/ec07fd7291f660f2dcc8cbb50972809eccb04b48)) +* **login:** generate a GUI error when auto login fails ([74377430](https://github.com/qTox/qTox/commit/74377430ce83b4d1e10d52125fc5fb28d328c1c0)) +* **notify:** + * integrate desktop notifications into settings ([4cb00957](https://github.com/qTox/qTox/commit/4cb00957f39faa375e6ad6a454c6c3dd2a97b24b)) + * add desktop notifications using snorenotify ([66e2c010](https://github.com/qTox/qTox/commit/66e2c01029efad7f6195cebcf96175152ce2ce22)) +* **offlinemsg:** + * Enable offline messages with no history ([2283d0c1](https://github.com/qTox/qTox/commit/2283d0c1b0221303197714cc2b6d90b3f0bb8144)) + * Force offline messages to always be enabled ([d934cf37](https://github.com/qTox/qTox/commit/d934cf372b8c030de783cb57a1269224a5a88c4b)) +* **paths:** create class to combine all qTox managed paths ([3ee8c665](https://github.com/qTox/qTox/commit/3ee8c665df68a22d3068804961ac46e2b793903b)) +* **proxy:** provide commandline tools for proxy settings ([31fec748](https://github.com/qTox/qTox/commit/31fec7488f74dc2fe38f0a8515b415c21f3e2109)) +* **settings:** save friend list sorting mode ([c8b156b3](https://github.com/qTox/qTox/commit/c8b156b3a1f756f34a0ef9229fd82033e2a5cee9)) +* **themes:** make themes follow standard paths ([133ac8de](https://github.com/qTox/qTox/commit/133ac8def80a79b44899a0d781352ecfeef047c9)) +* **travis:** publish nightly builds off Travis-CI ([516c52ad](https://github.com/qTox/qTox/commit/516c52ad207e84fa88606170fdf8d8e94872314c)) +* **ui:** + * add event icons for all statuses ([17048c9c](https://github.com/qTox/qTox/commit/17048c9cc4b3f9ee58924637e57573e285ffa8ee)) + * add update notification enabled with -DUPDATE_CHECK ([6c9d7b59](https://github.com/qTox/qTox/commit/6c9d7b59c12a6fc79fc457f22e84060a9bcde940)) + * Added feature to generate colors for user names in tox groups ([aaf5229e](https://github.com/qTox/qTox/commit/aaf5229ece69fb694381164f10bb85eb6fd53ee3)) + * Add ui to setup spell checking ([8d10fe47](https://github.com/qTox/qTox/commit/8d10fe47ecf806ad2a8d238d97edd14142a10b42)) + +#### Breaking Changes + +* **groups:** Fix invalid group list on group member join ([836718aa](https://github.com/qTox/qTox/commit/836718aa263039c0e1daef0ba75593a3d35b5cdc), closes [#5838](https://github.com/qTox/qTox/issues/5838), breaks [#](https://github.com/qTox/qTox/issues/)) +* **status:** use enum as UI property instead of untranslated string ([881aa308](https://github.com/qTox/qTox/commit/881aa3083aac75153f8fcc9548d48951a01f8fd2), breaks [#](https://github.com/qTox/qTox/issues/)) + +#### Bug Fixes + +* add missing type for Qt slot ([b5785a1b](https://github.com/qTox/qTox/commit/b5785a1b0c03688f534b810482d08debbc66002c)) +* remove unused variables ([7e4f7f04](https://github.com/qTox/qTox/commit/7e4f7f0489084cfbdf9a959d0d78566949cbf269)) +* hide current date at the top of the chat ([bbbbc6aa](https://github.com/qTox/qTox/commit/bbbbc6aade1b32485888b1842db15f65167fbf81)) +* scroll bar stuck to bottom (fix #5755) ([38df897e](https://github.com/qTox/qTox/commit/38df897e024393ba15c80017930dac19a92e13b7)) +* remove reconnect button ([909deb0f](https://github.com/qTox/qTox/commit/909deb0febba2d122c7c6f2455c7cb85e83ee389)) +* update workerStb ([177bf12f](https://github.com/qTox/qTox/commit/177bf12f1150a842e5263eb573fe110fb717ea5a)) +* data validation during the search (fix: #5791, #5723) ([acb91ed7](https://github.com/qTox/qTox/commit/acb91ed731bece1fbdac90064446c61ab68b721f)) +* empty username causes mention on ever message ([db802822](https://github.com/qTox/qTox/commit/db802822f3b2625ffa19d491d786bdb72666da49)) +* check time for get num messages for friend (fix #5714) ([b0f32379](https://github.com/qTox/qTox/commit/b0f32379d098cf525bcbe003d7add071c708bd69)) +* Call 'tr' in place, where text is accessible ([15d72a96](https://github.com/qTox/qTox/commit/15d72a9610bc6e4e2e93a9c36ee6536b0aa13429)) +* register RowId meta type for use in fileInserted signal ([18b52ce5](https://github.com/qTox/qTox/commit/18b52ce56841f682bf193ad5820c55a62990aa2b)) +* initialization theme ([d517c3a6](https://github.com/qTox/qTox/commit/d517c3a638a9355ba8a799fd00119a56a3e9c88d)) +* fix uninitialized variable ([ea18b613](https://github.com/qTox/qTox/commit/ea18b613ba4157529af2e1e888bd93d73d7ec7be)) +* fix uninitialized variable ([52f0e2db](https://github.com/qTox/qTox/commit/52f0e2db9417af76eedf133f4435bc926bf659b1)) +* Store groupId in D&D mime data ([8499a710](https://github.com/qTox/qTox/commit/8499a710929e045be8f031b25f44e19fed5d35f8)) +* check valid date in getDateWhereFindPhrase ([c3095ab1](https://github.com/qTox/qTox/commit/c3095ab150a360cfc1787d84ab3c6a503cc31c9e)) +* (chatform): Issue 5115, use QSharedPointer for groupChatForms ([37e5b6ce](https://github.com/qTox/qTox/commit/37e5b6ce8ba572b0f6e3dc067b7f7c99963515b7)) +* fix memory leak in CoreAV and missuse of std::uniqe_ptr ([d776e6c3](https://github.com/qTox/qTox/commit/d776e6c34f495dfec445a55dd16ff71b2f0b7af5)) +* add remove history prompt, clear log area after remove ([e6d40be7](https://github.com/qTox/qTox/commit/e6d40be72eff546f07b30a2ad33dc95fc8a29362)) +* show the date every new day (fixes #5280) ([8808c630](https://github.com/qTox/qTox/commit/8808c630f25f72ebb9974fa2786d83a9e11e49b8)) +* correct format log files ([ee0d4bb8](https://github.com/qTox/qTox/commit/ee0d4bb880a986416ed9d0ca4c147adb0bfbc37a)) +* **AVForm:** don't load gain when device not ready ([cef773c4](https://github.com/qTox/qTox/commit/cef773c4f69d079340f1379d4a7d787cea03acce)) +* **CircleCI:** make cache depend on script files ([7bbbb737](https://github.com/qTox/qTox/commit/7bbbb7377a180fc3e277ecb0a02606beb072b76b)) +* **TravisCI:** build windows for release tags too ([c53a58e6](https://github.com/qTox/qTox/commit/c53a58e64e737a206378d3a92a5282df0758d4e7)) +* **UI:** update peer label's style after setting audio playing property ([47795073](https://github.com/qTox/qTox/commit/477950737ffe2e6350862f00aa644da4235c99fc)) +* **activity:** change last activity time from QDate to QDateTime ([d55332ee](https://github.com/qTox/qTox/commit/d55332ee0a0fdda8f63c6ac49f4feb8762bbcc9d)) +* **alias:** allow clearing alias from chatformheader ([dfec934f](https://github.com/qTox/qTox/commit/dfec934ff043d631b3a445f557454f0afecb981c)) +* **apparmor:** + * Make network rules more strict ([11a32e33](https://github.com/qTox/qTox/commit/11a32e337182df5161299e648dc9fdc2b41e47cc)) + * Fix typo in file path ([4d9cc721](https://github.com/qTox/qTox/commit/4d9cc7216af59ebf9300d433ba3bfc4e2709977a)) + * Fix screenshot capture under AppArmor ([5304ba4c](https://github.com/qTox/qTox/commit/5304ba4cb0de52008cc9f9b6ae3c6838fa54b717)) + * Backport fix from dri-common abstraction ([f6c11c9b](https://github.com/qTox/qTox/commit/f6c11c9b6d2f6412ca5204a491e22cc12decab5b)) + * Fix openSUSE-related AppArmor denies ([7a1fb927](https://github.com/qTox/qTox/commit/7a1fb927ec4e4d74e5381aab40d57228c072fade)) + * Fix font-related denies on openSUSE ([488b8a86](https://github.com/qTox/qTox/commit/488b8a869628d142e87663e36dc9e86981016d96)) + * fix file dialog denies ([4565ac1b](https://github.com/qTox/qTox/commit/4565ac1b19903023d6d71043b37f120977e9b451)) + * fix file dialog on KDE desktop ([dffe00b4](https://github.com/qTox/qTox/commit/dffe00b4e3ddcef5a56ec37fd3d4fcfd847c2704)) + * backport kde abstraction ([e1ba972d](https://github.com/qTox/qTox/commit/e1ba972d8bfa2e1c1b98bd73417d783b4abd2077)) + * Fix spam of DENIED messages on openSUSE ([c8eb34f0](https://github.com/qTox/qTox/commit/c8eb34f028e2051cc83b877c65799c289c6dc21e)) + * Fix DBUS denies on Kubuntu 18.04 ([1d120b15](https://github.com/qTox/qTox/commit/1d120b15c27706bfe3b4b4d8ad911db37b33ef41)) + * Backport dri-enumerate abstraction ([79f800b3](https://github.com/qTox/qTox/commit/79f800b39a3b0b12faf4959429104e14ecf881e5)) + * Fix .local/share/qTox/ access ([e13b8a97](https://github.com/qTox/qTox/commit/e13b8a973eb8be8252a21feb066bd1853e9002a0)) + * Fix access to openssl configuration ([514cd368](https://github.com/qTox/qTox/commit/514cd368264fdacdf36013ffb496910475506422)) + * Fix dbus access ([a6c01eb0](https://github.com/qTox/qTox/commit/a6c01eb00713c21d8bc64cba47e511b0b5737908)) + * Fix hunspell access ([577aeb8f](https://github.com/qTox/qTox/commit/577aeb8fa36b54d95f5b68b6c1533b170105e6ed)) + * Fix accessibility DBus access ([a67faf29](https://github.com/qTox/qTox/commit/a67faf2976d2b8bcb67ae2feceb3772e3d3266fd)) + * Fix qTox cache access ([aef47056](https://github.com/qTox/qTox/commit/aef47056367642d842e090d2362698dfcf9cc06a)) + * Add ibus abstraction ([9fc89338](https://github.com/qTox/qTox/commit/9fc89338830a1c208b79991b9b2451f059827265)) + * Backport qt5 abstraction for v2.12.1 profile ([6aa4435d](https://github.com/qTox/qTox/commit/6aa4435d174e71d4a788bbb27514387a34d1c6b9)) + * Fix loading libraries from custom install prefix ([5fad77b9](https://github.com/qTox/qTox/commit/5fad77b9f8813d87b97d4b1e8a7d862e2deb13cf)) + * Fix AppArmor profile for version 2.12.1 ([f8f7a2d1](https://github.com/qTox/qTox/commit/f8f7a2d14554919b424929403fb74f665c50a6fd)) +* **audio:** + * correctly loop incoming call sound ([85f90ab2](https://github.com/qTox/qTox/commit/85f90ab2219b3c6bd5e9eaf3b948ad56016e6aaa), closes [#5680](https://github.com/qTox/qTox/issues/5680)) + * input device not closed under certain circumstances ([80f5cb5f](https://github.com/qTox/qTox/commit/80f5cb5f7a275f2dc498e8f3fe3a84d702133789)) + * specify format for sounds and make sounds follow it ([5d65ab38](https://github.com/qTox/qTox/commit/5d65ab387631cf76adfc36f3f0bf356ec7fd6f7b)) +* **autocomplete:** don't auto-complete own nick ([f188409b](https://github.com/qTox/qTox/commit/f188409b8ce85515fc3b45a2aedb3af79af2b009)) +* **avatar:** + * reject avatars that are larger than 64KB ([6e2ac12d](https://github.com/qTox/qTox/commit/6e2ac12d84df141b85b427765a74a704146d5b70)) + * set friend to identicon on empty avatar receipt ([0c757356](https://github.com/qTox/qTox/commit/0c757356d3efe79438fdbe232e5c4b0354b7a740), closes [#4724](https://github.com/qTox/qTox/issues/4724)) +* **blocked:** change blocked icon to match other used icons ([ff5c9052](https://github.com/qTox/qTox/commit/ff5c90525de6ee7e0b1c6ea6d27cc203f81c5aea)) +* **build:** + * disable Werror by default, keep enabled on CI ([9888bc2d](https://github.com/qTox/qTox/commit/9888bc2d8072f0360a10ba32b6a5834668f0349f)) + * appease appstream-glib validate ([98a364ea](https://github.com/qTox/qTox/commit/98a364ea2e13041f9c94dc9b70ed626226383683)) + * fix OpenAL Soft failing to build with newer CMake ([2419b627](https://github.com/qTox/qTox/commit/2419b6276282d4ccc8f9dd26592872318684cced)) + * fix SQLCipher build issue with OpenSSL 1.1.1 on Windows ([8be99c08](https://github.com/qTox/qTox/commit/8be99c0861a1e9864a27d01b6d2b5ab8a38c578f)) + * fix cmake command in appimage/build.sh ([e9665d51](https://github.com/qTox/qTox/commit/e9665d517aada920d81e57b9a5370bfb22773fbd)) + * install and use AppImageUpdaterBridge ([837416b9](https://github.com/qTox/qTox/commit/837416b9039252720295a58568e36be50e36c3f5)) + * bundle missing libjack.so* to work with Fedora Workstation ([e50b3bbd](https://github.com/qTox/qTox/commit/e50b3bbd5c2e25a7d0dad8e7a374f785b57a172f)) + * copy OpenSSL libs to AppDir ([7153c1f2](https://github.com/qTox/qTox/commit/7153c1f2bf27c999be125fb136ab6383305eb875)) + * add required private slots ([a9a953cf](https://github.com/qTox/qTox/commit/a9a953cf1cdd8a6142081b4ecf54060ce6ca993b)) + * fix ifdefs ([d23e4fd7](https://github.com/qTox/qTox/commit/d23e4fd7095ed07d7d0173bab0edb90bdb799f7d)) + * fixup CircleCI 2.0 config ([9caeb943](https://github.com/qTox/qTox/commit/9caeb943616c3092f26b9b1fc2f42a971f8a85c3)) + * show brew compilation progress to avoid being killed by Travis ([fd709722](https://github.com/qTox/qTox/commit/fd7097222d48304e3e509d20488eb158eef9c493)) + * manually update brew to workaround autoupdate bug ([c9cb5fef](https://github.com/qTox/qTox/commit/c9cb5fefdd34a431d8f65caf477117f043365d2a)) + * add cmake_policy for CMP0071 to suppress warinings in cmake ([6a240141](https://github.com/qTox/qTox/commit/6a240141eafbc5304bc0fcc572d3b7f8e2eb6f5b)) + * fix default cmake build not actually being debug ([edb306c7](https://github.com/qTox/qTox/commit/edb306c723cbbf4e7aa18fd4f08446ecf6053718)) +* **calls:** Fix SIGSEGV on quit while in call ([87eed97a](https://github.com/qTox/qTox/commit/87eed97ab3daf432a7ed215f8dbeca95ce265dff)) +* **chatform:** + * Prevent date line oscillations maxing CPU ([64bae38b](https://github.com/qTox/qTox/commit/64bae38b999ee4ddd955695300beb1e5bb20446f), closes [#5620](https://github.com/qTox/qTox/issues/5620)) + * don't try to send empty action messages ([89e94b6f](https://github.com/qTox/qTox/commit/89e94b6f895c8c57f4541147b6e56ec4d30adaac)) + * fix stuck spinner on messages not at end of chatform ([9819aefc](https://github.com/qTox/qTox/commit/9819aefc44767220e696b9c0de0594a5992ee706)) + * fix a crash when there are no messages to load ([040c6b95](https://github.com/qTox/qTox/commit/040c6b95aed26dfc7950770ed4dca379e8be2bc5)) + * crash after opening chat in new window ([59a59fdc](https://github.com/qTox/qTox/commit/59a59fdc09ee5cbf32c915b94cb8ba8e8f0a29b1)) + * add hack to avoid Qt bug on chat show ([e8d48e87](https://github.com/qTox/qTox/commit/e8d48e87888548c92daa88880ee7689d58b0c490)) + * don't attempt to send messages to offline friends ([d9e587e4](https://github.com/qTox/qTox/commit/d9e587e4f5f85df979ed11fabfed443280716045)) + * mark message with triple click ([2cdff7e9](https://github.com/qTox/qTox/commit/2cdff7e9ed5efd5402a7cb053bbf24cd29034927), closes [#5211](https://github.com/qTox/qTox/issues/5211)) +* **chatlog:** + * enable dynamic view range in chatlog with history disabled ([a7f34959](https://github.com/qTox/qTox/commit/a7f349595696b3292897ac72b5cffb05b7300eda)) + * fix stick to bottom behavior ([f2fa6010](https://github.com/qTox/qTox/commit/f2fa601073373ae2ef9fba7952aed415af3ccee0)) + * update precise selection when chatlog content changes ([b95bac23](https://github.com/qTox/qTox/commit/b95bac238d1caa40086f19b83dc20e0e9243719d)) + * Prepare geometry changes on chatline proxy ([74d0b47c](https://github.com/qTox/qTox/commit/74d0b47ceb39c3c8962f77f8f6b3060476f64e67), closes [#5818](https://github.com/qTox/qTox/issues/5818)) + * update multi line selection on chatlog change ([2bba1217](https://github.com/qTox/qTox/commit/2bba12175ee34b835c3888c391b3169f56d36bf7)) + * update timestamp when db is slower than ack ([ca397aeb](https://github.com/qTox/qTox/commit/ca397aebbfb388df3754d36331d669c74d87a15c)) +* **ci:** + * quote shell comparison to avoid errors when unset ([475128d1](https://github.com/qTox/qTox/commit/475128d171984de5f9ff34f98020a119dce65b42)) + * fix travis' window build in debian docker by upgrading libseccomp2 ([93c9eef5](https://github.com/qTox/qTox/commit/93c9eef51f8143c3e3e5c1e63e0cc64d1d533f6e)) + * upgrade travis to xcode9.3 to get macos 10.13 with brew support ([6fb5b205](https://github.com/qTox/qTox/commit/6fb5b205f41d4e37d2d4964af2a99fc5abc937f6)) + * increase bsu_test timeout ([81901696](https://github.com/qTox/qTox/commit/819016960d33664eb3b0af11c85dbe24c4277777)) +* **core:** + * message when peer changes group name ([0b5f7511](https://github.com/qTox/qTox/commit/0b5f751104664fb1d624910ed930ab1b05a7cc4f)) + * avoid using stack allocated memory past end of scope ([9b23abc6](https://github.com/qTox/qTox/commit/9b23abc6dedf2ecba84920ef878335c9a76c592f)) + * avoid logging which bootstrap node is being connected to ([731a4985](https://github.com/qTox/qTox/commit/731a49854a6b94b2b237048765e76f2695125181)) + * don't log critical on every group join ([e4f73011](https://github.com/qTox/qTox/commit/e4f73011f9346332d27a8d59a1fbb07834c32edb)) + * save tox profile when updating group or friend states ([3d7a872f](https://github.com/qTox/qTox/commit/3d7a872f1aeb2388e3a8f583fd7d494ee7f66185)) + * don't set core status on connect, just update UI ([602671c9](https://github.com/qTox/qTox/commit/602671c9dcb1c9f42dd2d7fb9dfbadd729fb8efd)) + * correctly relink ui/core when core is changed ([17d5d552](https://github.com/qTox/qTox/commit/17d5d55259ab9864c430df8bdc9b440a0315a59c), closes [#5710](https://github.com/qTox/qTox/issues/5710)) + * if your username is empty, use toxPK instead in groups ([72bcc6ac](https://github.com/qTox/qTox/commit/72bcc6acaf22ef78c2db852a5cabf45f42e5af90)) + * also print PKs in group userlist ([066bdc5c](https://github.com/qTox/qTox/commit/066bdc5cc1b0bbe05c35bb184f8b6981fd95e0ce)) + * this should resolve message handling in persistent groups ([ee500703](https://github.com/qTox/qTox/commit/ee500703aab6418fde60ddd7237e6461fb5c7f55)) + * fixed syntax ([7a437c74](https://github.com/qTox/qTox/commit/7a437c74493333bb77f18418059ff329dde55340)) + * ignore mentioning users with empty nicknames ([96ad27f6](https://github.com/qTox/qTox/commit/96ad27f644fd151a608abdffe045ad215db28564)) + * fix for users without nicknames ([2000bf55](https://github.com/qTox/qTox/commit/2000bf55f2f7e3c3573df8130e74850b1202b044)) + * update group peerLists on local changes ([01f79b0d](https://github.com/qTox/qTox/commit/01f79b0d084176c4b6deaa289060f60652bf7428)) + * support user aliases ([feee0e76](https://github.com/qTox/qTox/commit/feee0e767ffa15b2145f82d16da9c47c2d2f580e)) + * this fixes displaying nickname refreshes in groups ([9b261fd8](https://github.com/qTox/qTox/commit/9b261fd870f8a240cdf93c5acc2235efaa7a8116)) + * fix formatting ([c136a17f](https://github.com/qTox/qTox/commit/c136a17ff0f1eb29b7e9e3b56b0fb8f036ab0fbb)) + * simplify the code ([8c239c8e](https://github.com/qTox/qTox/commit/8c239c8ef6d47177cabfcfca79783d188ac9c76b)) + * fixed Timestamps ([6872ead8](https://github.com/qTox/qTox/commit/6872ead850eeab5cea2e036cb1701da8e116d51e)) + * remove pgc code ([10a4b249](https://github.com/qTox/qTox/commit/10a4b249bbbc7e08923f543a96916911a3a799c4)) + * set username and status on new profile ([109a4ffd](https://github.com/qTox/qTox/commit/109a4ffd43af5018d5848bfe8debfeddff3c4b9b)) + * ensure QTimers are moved with the objects they belong to ([26206a35](https://github.com/qTox/qTox/commit/26206a35ebb7072b55877c91aa509eac4b96a17a)) + * Fix misuse of toxcore tox_file_send API ([f988177a](https://github.com/qTox/qTox/commit/f988177a9b6af866ef2cf3aed9e5237ef76d5771)) +* **coreav:** + * prevent racy access to call variable ([dfeca3e9](https://github.com/qTox/qTox/commit/dfeca3e90637a55ce97013ffcf0cfece0e1699a4)) + * change some lock to write locks ([26fcea06](https://github.com/qTox/qTox/commit/26fcea0639ba3af839b0e2017342f92cfdb83df7)) + * fix assert because c-toxcore calls from unexpected thread ([e340688b](https://github.com/qTox/qTox/commit/e340688b94845cf9a37848b757c7b97aec549d94)) + * avoid deadlock between CoreAV, main and Audio thread ([723a8e5d](https://github.com/qTox/qTox/commit/723a8e5dc75d5aaf0c0fb40ce041771c7bdc1abd)) + * cleanup assertions ([a4ac6d67](https://github.com/qTox/qTox/commit/a4ac6d67c7a8459627ca4e5451af1064a670dd67)) +* **corefile:** + * cancel file transfer when peer goes offline ([6522988e](https://github.com/qTox/qTox/commit/6522988e8c2ef408278c0602ac9fd756b235b77b)) + * handle empty avatar transfer in core ([1628d495](https://github.com/qTox/qTox/commit/1628d495d1c27a4864474d5e4a725e690b0dfba7)) + * include file id in map when sending empty avatar ([b1eefc3f](https://github.com/qTox/qTox/commit/b1eefc3f230de36c76a3b158bc55f412f0a65a2a)) +* **db:** + * Support opening and upgrading to any of three SQLCipher params ([2c59c920](https://github.com/qTox/qTox/commit/2c59c9203035e35d81adc982ffe7e661d37e9b1f)) + * Add half-upgraded cipher params ([deb7fbb6](https://github.com/qTox/qTox/commit/deb7fbb67cb5e7f799b01a37791e613471fff95a)) + * fix schema log to display correct version ([92e51b05](https://github.com/qTox/qTox/commit/92e51b05acc550a71e58fe8ecc37181b72602a12)) + * show full sqlite error message ([86b55a0f](https://github.com/qTox/qTox/commit/86b55a0fb0bf1bf5e2fc5ff64918e36c36f88f8f)) + * prepare and execute queued statements one at a time ([d98fe85a](https://github.com/qTox/qTox/commit/d98fe85a582777b454724f0d3ea0642bd3a4b032)) + * preserve user_version when adding or removing database password ([7e07025d](https://github.com/qTox/qTox/commit/7e07025d3c74c9bff32d840f5b1165fa2768a0ec)) + * support databases with either SQLCipher 3.x or 4.x defaults ([dafb17b5](https://github.com/qTox/qTox/commit/dafb17b5fa81259a7a70804b56c233b05e76c3b9)) + * use SQLCipher 3.x crypto even with SQLCipher 4.x ([e80dbe2d](https://github.com/qTox/qTox/commit/e80dbe2d83fdb133cedaddefad5fc2dff5a6ec91)) +* **docs:** remove extra comma in README.md ([fee147d7](https://github.com/qTox/qTox/commit/fee147d788706d0b43c6d17a7d57514683c6f207)) +* **flatpak:** + * workaround unstable flathub downloads ([55b1f6af](https://github.com/qTox/qTox/commit/55b1f6af255c3322b9b4a2b89e7d8d7a6cf27fed)) + * use SVG for icon ([489027ea](https://github.com/qTox/qTox/commit/489027ea1ef958543a5f90bca9288076497f4204)) +* **friendlist:** + * don't update friend's last activity on every start ([5f40ed8d](https://github.com/qTox/qTox/commit/5f40ed8d8c08cc7305506d796543c295d767515c)) + * don't skip half of friends when sorting by activity ([3f922100](https://github.com/qTox/qTox/commit/3f922100af599e0c19925895f7d43b5a1b6932e5)) +* **group:** + * don't display netcam view for group voice calls ([5b31effd](https://github.com/qTox/qTox/commit/5b31effdb4f4b22c4d2ad64193ce799bef0db2b6)) + * use valid pointer, allowing source invalidation ([765fce94](https://github.com/qTox/qTox/commit/765fce94b73b7e7f31680f352126575cbf129a19)) + * Condense invalid title handling logic, clang-format ([aeddf482](https://github.com/qTox/qTox/commit/aeddf4822ad9930321a04a5a3cff4c7f3a5f1025)) + * fix logic oversight and code style ([a1a37497](https://github.com/qTox/qTox/commit/a1a37497006a5440ea5ab529c2fe413e133d4c4e)) + * set default group chat title when provided title is invalid ([f77a0621](https://github.com/qTox/qTox/commit/f77a062120f64bde9460e6caf4e71d0d802d4c21)) + * always retain own name when updating group peer list ([c772db3b](https://github.com/qTox/qTox/commit/c772db3baa3f9e4694fa7f956ffdfb9ffab36cef), closes [#5686](https://github.com/qTox/qTox/issues/5686)) + * treat empty peer names like empty friend names, by showing pk ([04f1ccda](https://github.com/qTox/qTox/commit/04f1ccda35595832dc2c7465bfada029b07bde80)) +* **groups:** + * Correct color of labels in group call ([3205c2c4](https://github.com/qTox/qTox/commit/3205c2c4079c3ad20766314e642e4ba583cf1e8f)) + * Avoid segfault when resizing group audio window ([ce9e820b](https://github.com/qTox/qTox/commit/ce9e820b377f1f899846ca05a3d548a4100fd333)) + * Correct color of labels in group call ([f27eb5b7](https://github.com/qTox/qTox/commit/f27eb5b76c62c724096658df134de3d4f28289e0)) + * Avoid segfault when resizing group audio window ([d4d4308e](https://github.com/qTox/qTox/commit/d4d4308e286ffcf9fc23aafb95eb4c9786d85cca)) + * Fix invalid group list on group member join ([836718aa](https://github.com/qTox/qTox/commit/836718aa263039c0e1daef0ba75593a3d35b5cdc), closes [#5838](https://github.com/qTox/qTox/issues/5838), breaks [#](https://github.com/qTox/qTox/issues/)) + * reduce group message size limit by 50 ([6c77d57d](https://github.com/qTox/qTox/commit/6c77d57da8cd35e46251e9835d2edc9c9737197f), closes [#5760](https://github.com/qTox/qTox/issues/5760)) + * remove logic that blocks parseConferenceSendMessageError ([9099eea0](https://github.com/qTox/qTox/commit/9099eea04ffdf9dc624a30ff8efa55b006a306d7)) + * enable AV groups after load ([33d42c97](https://github.com/qTox/qTox/commit/33d42c9766e20fb62bb6a679b5a3f087904fa478)) + * don't add friend alias to groups they aren't in ([6801298e](https://github.com/qTox/qTox/commit/6801298e964f73b8dc8d69a026ea3b1951e00322)) + * fix assert on group invite accept ([0f5ad725](https://github.com/qTox/qTox/commit/0f5ad725d7173ec1a63892d0e6e1ffea768c42b8)) + * add peers if already playing audio when netcam created ([e4891687](https://github.com/qTox/qTox/commit/e48916877536b34bf704414a77b65c2533078abc)) + * don't add peers to netcam view until they play audio ([7c13b8b7](https://github.com/qTox/qTox/commit/7c13b8b7db0b948fc7cf76b4d640efb2aec9c980)) + * check for label in timer audio playing timer callback ([d2508e7e](https://github.com/qTox/qTox/commit/d2508e7eac26d731c746333b5d74e9a051d3f5b7)) + * avoid having to lookup peer pk ([13afbf7e](https://github.com/qTox/qTox/commit/13afbf7ec6e80a50fe9f6b04f31962de1d0bd0c7)) + * don't invalidate all audio sources when peer list changes ([8422c09f](https://github.com/qTox/qTox/commit/8422c09f6a8a8043ce4c46ba4021680562aeb666)) + * don't freeze when opening AV settings during group call ([093962e3](https://github.com/qTox/qTox/commit/093962e3ec05aa21a27083e9d7e096c00194568d)) + * correctly show peers in the call after joining call ([d6abf76a](https://github.com/qTox/qTox/commit/d6abf76a279e45c21c4644b1bf571b1a95948b55)) + * only leave audio call if in a call ([92d3c959](https://github.com/qTox/qTox/commit/92d3c959a1bc80688957c4775eb781e8804b76df)) +* **history:** + * check history settings when getting initial chatlog idx ([c906cdf5](https://github.com/qTox/qTox/commit/c906cdf57b3c4230cdb013d2f9cb4a5bdfc9aea4)) + * Prevent invalid history access ([e3e6e1d9](https://github.com/qTox/qTox/commit/e3e6e1d9c4e22d6f090f153628677ad427cf4900)) + * move stuck action messages to broken_messages table ([746314ba](https://github.com/qTox/qTox/commit/746314baf23118be28c5e38ee305448e5ad68ef3)) + * display broken messages UI with error icon ([1a726b54](https://github.com/qTox/qTox/commit/1a726b54cd2e1d72c6cb6f0f9a733e904f5e5371)) + * select broken messages from History, track in ChatLogMessage ([f6a15366](https://github.com/qTox/qTox/commit/f6a15366eff7254fc095f6a323272b602ebc9c30)) + * move stuck pending message into broken_messages table ([b28dc300](https://github.com/qTox/qTox/commit/b28dc300610d096966bf18864bda0616efdc93ba)) + * handle errors during db upgrade ([f72f3f71](https://github.com/qTox/qTox/commit/f72f3f714daabd955b256ec696c8917d0820c8b7)) + * select only pending history for the requested friend ([64aa3eae](https://github.com/qTox/qTox/commit/64aa3eae4d687d899a56705c8105a10a8eac4db5)) + * create file_transfers table in upgrade ([c12605db](https://github.com/qTox/qTox/commit/c12605db6d645ca313997543c8057a3dfd87bb48)) + * save name to history for friend invite message ([2ccb1ec1](https://github.com/qTox/qTox/commit/2ccb1ec150ed721123b2d1d27b1f726390556522)) +* **icon:** + * use Qt tray icon in all cases, remove platform specific backends ([e85d3f52](https://github.com/qTox/qTox/commit/e85d3f522a4f38a5fb189dafa0b47b38f365dbf0)) + * make busy notification icon translucent in middle ([da4928b7](https://github.com/qTox/qTox/commit/da4928b70481fda5f60707ae000e3442c77eaf5b)) + * centre taskbars ([84836cf6](https://github.com/qTox/qTox/commit/84836cf6a0a549909b5be51c0016ee7c11a88a05)) +* **interface:** use virtual destructors for all interfaces ([2b981d88](https://github.com/qTox/qTox/commit/2b981d88a2ddf9cca480ce1045ec558b63284a1f)) +* **ipc:** handle ipc failure gracefully ([9dd08397](https://github.com/qTox/qTox/commit/9dd083978ece575820469c38a3b78418e8a5dfaf)) +* **log:** don't attempt to close log file if it failed to open on exit ([fae9066b](https://github.com/qTox/qTox/commit/fae9066be6d982854d716ac5a077e4193047a85d)) +* **logging:** only log toxcore messages above TRACE level ([7a98ea2d](https://github.com/qTox/qTox/commit/7a98ea2def1d97b759b6a017fe46f8c03aa4f0eb)) +* **login:** show login screen when autologin fails ([e55e50d5](https://github.com/qTox/qTox/commit/e55e50d5105bc58cfb39b6ea64c8d2c6cc09ad76)) +* **loginScreen:** make loginScreen return values comply with Qt standards ([b4bc0934](https://github.com/qTox/qTox/commit/b4bc09345c682ef0c84521ff60cc8f58fb80b87a), closes [#5781](https://github.com/qTox/qTox/issues/5781)) +* **main:** register IPC handlers only after starting up ([bc3d3b3b](https://github.com/qTox/qTox/commit/bc3d3b3b13ad64ebae3a235557a761f3eca35bfd)) +* **messages:** Fix broken sanitized name for notifications/alert messages ([fef89d70](https://github.com/qTox/qTox/commit/fef89d70f97edbf2218009e9842f32ad70aa84e5)) +* **model:** + * take QObject receiver argument to interface signal connection macro ([3a5e28ff](https://github.com/qTox/qTox/commit/3a5e28fffb56c1907950b12635c363c3d20216b4)) + * stop interfaces from inheriting from QObject ([b7062b25](https://github.com/qTox/qTox/commit/b7062b251852347dff19595b5bf5eea43d53fcce)) + * return connection from interface macro ([40e43586](https://github.com/qTox/qTox/commit/40e43586f10bbda9ce8e6647c41b9613c775439a)) +* **net:** check if the node has all needed fields ([bdb3b61e](https://github.com/qTox/qTox/commit/bdb3b61ee0420fb43a5097dc950f302370716558)) +* **notification:** implement review comments ([cd50376c](https://github.com/qTox/qTox/commit/cd50376c2f71561dc8abf0d9318dd954a82fed78)) +* **offlinemsg:** + * don't invalidate iterator before use ([1f80173b](https://github.com/qTox/qTox/commit/1f80173b2d8337fb40068f57e14e1a08a70165ec)) + * fix offline message dispatching on history load ([dbef0b75](https://github.com/qTox/qTox/commit/dbef0b750865473c167683de2a630b4707aa755e)) +* **offlingmsg:** only dipatch offline messages on friend online change ([479b39f5](https://github.com/qTox/qTox/commit/479b39f5364dc85817ea1cd31a8046c9bd48d989)) +* **osx:** + * Add camera and microphone usage description. ([28341d84](https://github.com/qTox/qTox/commit/28341d8457127f696b5c2c157d51ebd5d5700086)) + * create /usr/local/sbin directory for brew package installation ([e97b2705](https://github.com/qTox/qTox/commit/e97b27058463df88a28a366f8573cd2238c8bb9e)) +* **paths:** fix bugs uncovered while developing test cases ([0ea40905](https://github.com/qTox/qTox/commit/0ea409054ab1a0b950bdcd36a448dc795cd571d9)) +* **profile:** + * load settings before starting Core ([0a30c1b1](https://github.com/qTox/qTox/commit/0a30c1b1c0d6587581dea4d00f3ae1651640575b)) + * avoid deadlock with between main and core thread ([aed820ba](https://github.com/qTox/qTox/commit/aed820ba60fad35b744cc3671ff7b90373c663bc)) +* **search:** application crash when starting a search ([77d55d5d](https://github.com/qTox/qTox/commit/77d55d5d7d70a168b9b3a24d865eb1b03eee918a)) +* **settings:** + * apply toxcore settings for encrypted profiles ([74828c92](https://github.com/qTox/qTox/commit/74828c92e55f40ef22bf02e7440f31896fcea375)) + * load personal settings before constructing core ([bef9d4b7](https://github.com/qTox/qTox/commit/bef9d4b77348d78f0c6536827a0fed511dcd9b95)) + * repair saved invalid proxy type due to #5311 ([c8ffa1f9](https://github.com/qTox/qTox/commit/c8ffa1f921cbe36391f5d90ba888451a9310b5d8)) + * Add mutex locks for consistency ([24f8bbf3](https://github.com/qTox/qTox/commit/24f8bbf35a06f2338f84eb8c1b3894cbf48d4d54)) + * save settings early on Windows shutdown ([7839a260](https://github.com/qTox/qTox/commit/7839a2608396c77b60d67ab7aeeecc9c086bb71a)) + * set default proxy type to None, enabling UDP by default ([a2c44cbe](https://github.com/qTox/qTox/commit/a2c44cbeda247bf06953a641d8d745fd0d3df62c)) +* **status:** use enum as UI property instead of untranslated string ([881aa308](https://github.com/qTox/qTox/commit/881aa3083aac75153f8fcc9548d48951a01f8fd2), breaks [#](https://github.com/qTox/qTox/issues/)) +* **test:** + * create db tables in defined order, verify indexes ([05064771](https://github.com/qTox/qTox/commit/05064771abe045c59d747c8f778bb9eb829b37b9)) + * include in groupmessagedispatcher_test.cpp ([34e1e25b](https://github.com/qTox/qTox/commit/34e1e25b7fb12dc662ed197e615c422ea56c867a)) +* **toxcall:** + * move ToxCall ownership to correct Thread ([df7fe223](https://github.com/qTox/qTox/commit/df7fe2239831484c1301350b5f940f59937744c5)) + * handle Null sink correctly ([f02943c1](https://github.com/qTox/qTox/commit/f02943c191ea961d97c343c0360fe550ebe7c75d)) +* **toxoptions:** handle nullptr in parameters ([6cce0dae](https://github.com/qTox/qTox/commit/6cce0dae838a08464661f56177c3474d4477e236)) +* **transfer:** Accurately represent pause state in UI ([293a1d61](https://github.com/qTox/qTox/commit/293a1d615c0187e906453e7df904ffb320acc554)) +* **travis:** + * update pyenv to python 3.7 after updating ubuntu to 16.04 ([a44cce65](https://github.com/qTox/qTox/commit/a44cce65beb60c5f280b651e0c084fa9c2bdb0dc)) + * fix latest nightly release not updating sometimes ([9b67d261](https://github.com/qTox/qTox/commit/9b67d2619c575cb24a30507d231ac7ca95181221)) +* **ui:** + * add vertical spacer to profileform ([c13ede85](https://github.com/qTox/qTox/commit/c13ede85df80faa67aee12b0c096dee52d94c464)) + * fix auto-accept directory setup display ([8c5cab93](https://github.com/qTox/qTox/commit/8c5cab935ccf3d902d0a9c10509798bbe236a86c), closes [#5917](https://github.com/qTox/qTox/issues/5917)) + * fix reversed mute/unmute hover text ([0055c776](https://github.com/qTox/qTox/commit/0055c7760cd10caa7814acc36d41a12e2bca8af3)) + * fix away icon shape ([b4450319](https://github.com/qTox/qTox/commit/b445031912ae943d7580ea21f6813e9f71bc03ee)) + * fix 2 ([1c02dc2d](https://github.com/qTox/qTox/commit/1c02dc2d6ba4f6d217c2fc55fa513d252aa4dbde)) + * minor fix ([161a773d](https://github.com/qTox/qTox/commit/161a773dbbc4546442ad67dc96400fcd583fdccf)) + * revert CMakeLists.txt ([821ed526](https://github.com/qTox/qTox/commit/821ed5261641043121d0b716d381346ac7502a15)) + * apply requested changes ([f8b54b39](https://github.com/qTox/qTox/commit/f8b54b39f311b6d05b29e517c88c7fcf5fa4f5de)) + * don't forget to update UI ([84e41303](https://github.com/qTox/qTox/commit/84e41303ce6297df68886d4a1615a07286aed794)) + * minor fix ([4a6ebff6](https://github.com/qTox/qTox/commit/4a6ebff63a78650279856fcf3e1737d54e2523a0)) + * Added option to hide message sender and contents ([3b305dd0](https://github.com/qTox/qTox/commit/3b305dd05a8210928a2bed7026b7f4fa7d9003bf)) + * Improved notifications ([1bbe210c](https://github.com/qTox/qTox/commit/1bbe210c254a8ebbc6f529def5632ac47a941077)) + * don't duplicate group peer name in tooltip ([87a53fad](https://github.com/qTox/qTox/commit/87a53fad96eb372630914748a864a45f55f13d29)) + * show empty status as placeholder instead of as status ([e9f87951](https://github.com/qTox/qTox/commit/e9f8795197613326ba7e3d6d79a88c5ecd2cce30)) + * fix typo, add plural to translation ([0dc46cdc](https://github.com/qTox/qTox/commit/0dc46cdc81bd49f892b75fc49f2944ed826d296b)) + * update UI when leaving group call due to being last member ([7f802f59](https://github.com/qTox/qTox/commit/7f802f593eed3f49f9f209aa45f64851e3c32b23)) + * add tooltip to about friend window ([4e76084c](https://github.com/qTox/qTox/commit/4e76084c6f634c2dde87c5797c1a18f6592fbda8)) + * provide context when emitting friendWidgetRenamed() ([0b6d6d77](https://github.com/qTox/qTox/commit/0b6d6d771539ee7c67d4850dbd7586807cdaa92d), closes [#5495](https://github.com/qTox/qTox/issues/5495)) + * tighten idealSize() for chatlog Timestamps ([c9f3830b](https://github.com/qTox/qTox/commit/c9f3830bc28dc0b0c7e6597f86a27fff0657cbd1), closes [#3957](https://github.com/qTox/qTox/issues/3957)) + * remove useless variable ([2557f5e0](https://github.com/qTox/qTox/commit/2557f5e04521a7e19708e6254936e9d0eb625beb)) + * oops ([d54e2106](https://github.com/qTox/qTox/commit/d54e21064c596dceef87b43b41d5b2723f244131)) + * fix anything ([89cb2425](https://github.com/qTox/qTox/commit/89cb24254dc21077e2d0b8d014932e87940586ba)) + * groupcolors fix2 ([a4a8e361](https://github.com/qTox/qTox/commit/a4a8e361d0e5aed1b3461dacd63b6a3600339a6f)) + * groupcolors fix1 ([ab89ca2d](https://github.com/qTox/qTox/commit/ab89ca2d8ebb641d7af2d5b1100eafe8bde759d4)) + * allow adding friends with Tox URI ([dec90ad8](https://github.com/qTox/qTox/commit/dec90ad84da5edd2c530196af8024a1259c58068)) + * require . in www.url regex matching ([13b15a87](https://github.com/qTox/qTox/commit/13b15a87d71a91cbe49d7f868e914caf8d0aadc5)) + * re-sort friends list on friend rename ([aa7542f7](https://github.com/qTox/qTox/commit/aa7542f729346fc87b113259c361d781bbac5da8)) + * only add chat message for call once ([5f48fd4e](https://github.com/qTox/qTox/commit/5f48fd4e100fc41874aabc57a84884260a248894)) + * amend QCheckBox background chromatic aberration ([b7019a4f](https://github.com/qTox/qTox/commit/b7019a4f667f4247f8eac7e52f36ebf6e6349b93)) + * avatar highlight on hover in profile ([064dccf8](https://github.com/qTox/qTox/commit/064dccf8b49212b65c2c114fc87a9226b5ecf518)) + * remove focus window option, fixing alert() on Windows ([91bdd40f](https://github.com/qTox/qTox/commit/91bdd40f10aa8731e5a3a1ee7d14682e142cc8f5)) + * by default, don't grab focus on new message ([dac1582b](https://github.com/qTox/qTox/commit/dac1582b72290df846fd29da5a9922a83d709056)) + * don't scale avatar to point of cropping in chat form header ([dc7ddbeb](https://github.com/qTox/qTox/commit/dc7ddbebad370bb7c7bc851a738037fc3c18d3fa)) + * Display most recent group member's name instead of ([11131fa0](https://github.com/qTox/qTox/commit/11131fa083d2c6373358ade5e1d3bb0f08c43a72)) + * fix the context menu enabled/disabled behaviors ([bc69c8c9](https://github.com/qTox/qTox/commit/bc69c8c9196f3ec3682c415145e5b7003c3a3006)) + * don't emit filename change windows for every chat ([291e86d9](https://github.com/qTox/qTox/commit/291e86d9f9ea877fd92daa3b83ac283d56b305d5)) +* **video:** + * support UYVY camera pixel format ([4c42e0ea](https://github.com/qTox/qTox/commit/4c42e0ea5b5dbb904bf28aaa5790d3f5acbdb75c), closes [#5479](https://github.com/qTox/qTox/issues/5479)) + * correctly align data passed to toxcore ([5c1fe520](https://github.com/qTox/qTox/commit/5c1fe520102cdfb5e47f6be87d314585e9e2a3c6)) + * don't pass invalid pixel format strings to ffmpeg ([9de40e5a](https://github.com/qTox/qTox/commit/9de40e5a97930de5d002ae3460db25bb2cb6c54c)) + * workaround for webcams that provide no fps value ([3746bd13](https://github.com/qTox/qTox/commit/3746bd13bc345c7785ed3e06ac8f02e364a57ce3)) +* **widget:** + * only change group title once ([f7a2a7d6](https://github.com/qTox/qTox/commit/f7a2a7d64840d9aaa276cc6a51a3d9c8611f76a7)) + * don't try to play audio if it's disable ([2ea50309](https://github.com/qTox/qTox/commit/2ea5030958d2bf47fbedc2294c46677881b62a6a)) + * fix freeze on showMainGui ([df62463e](https://github.com/qTox/qTox/commit/df62463e27f3ccf6cf9b1bf75008af27e41833ef)) + * always force show window on activate event ([08f368da](https://github.com/qTox/qTox/commit/08f368da43a85e79377540a228b607ace844e7ae)) + + + ## v1.16.3 (2018-07-18) From 5f70d5d3d3614d0e70c201e47965c853a41ca8d2 Mon Sep 17 00:00:00 2001 From: Douglas Rhine <59268455+dgcampea@users.noreply.github.com> Date: Mon, 20 Apr 2020 15:08:50 +0100 Subject: [PATCH 09/11] chore(flatpak): update runtime to 5.14 --- flatpak/build.sh | 2 +- flatpak/io.github.qtox.qTox.json | 24 +++++------------------- 2 files changed, 6 insertions(+), 20 deletions(-) diff --git a/flatpak/build.sh b/flatpak/build.sh index 38169a452..bb2fb7bcf 100755 --- a/flatpak/build.sh +++ b/flatpak/build.sh @@ -45,7 +45,7 @@ flatpak remote-add --if-not-exists flathub https://flathub.org/repo/flathub.flat for i in {1..5} do echo "Download try $i" - flatpak --system install flathub -y org.kde.Sdk/x86_64/5.12 || true + flatpak --system install flathub -y org.kde.Sdk/x86_64/5.14 || true done ## Workaround end diff --git a/flatpak/io.github.qtox.qTox.json b/flatpak/io.github.qtox.qTox.json index c7cf1f3d5..a659b93a5 100644 --- a/flatpak/io.github.qtox.qTox.json +++ b/flatpak/io.github.qtox.qTox.json @@ -2,7 +2,7 @@ "app-id": "io.github.qtox.qTox", "runtime": "org.kde.Platform", "sdk": "org.kde.Sdk", - "runtime-version": "5.12", + "runtime-version": "5.14", "command": "qtox", "rename-icon": "qtox", "finish-args": [ @@ -24,10 +24,13 @@ "add-extensions": { "org.freedesktop.Platform.ffmpeg-full": { "directory": "lib/ffmpeg", - "version": "18.08", + "version": "19.08", "add-ld-path": "." } }, + "cleanup-commands": [ + "mkdir -p /app/lib/ffmpeg" + ], "cleanup": [ "/include", "/lib/pkgconfig", @@ -101,23 +104,6 @@ } ] }, - { - /* Reminder: this is included in KDE 5.13 */ - "name": "libqrencode", - "buildsystem": "cmake-ninja", - "config-opts": [ - "-DWITH_TOOLS=NO", - "-DBUILD_SHARED_LIBS=ON" - ], - "sources": [ - { - "type": "git", - "url": "https://github.com/fukuchi/libqrencode", - "tag": "v4.0.2", - "commit": "59ee597f913fcfda7a010a6e106fbee2595f68e4" - } - ] - }, { "name": "c-toxcore", "buildsystem": "cmake-ninja", From 48c688bf1b1939f1afb239e19764791e4fc98b7a Mon Sep 17 00:00:00 2001 From: Anthony Bilinski Date: Tue, 21 Apr 2020 02:25:46 -0700 Subject: [PATCH 10/11] fix(ci): remove jenkins deploy step jenkins is no longer used for release builds, and it's causing travis to fail to deploy --- .travis.yml | 8 ------- .travis/deploy-jenkins-branch.sh | 37 -------------------------------- 2 files changed, 45 deletions(-) delete mode 100755 .travis/deploy-jenkins-branch.sh diff --git a/.travis.yml b/.travis.yml index fc91525b0..7da97ee11 100644 --- a/.travis.yml +++ b/.travis.yml @@ -261,14 +261,6 @@ deploy: tags: true skip_cleanup: true - # branch for windows jenkins build - - provider: script - script: .travis/deploy-jenkins-branch.sh - on: - tags: true - skip_cleanup: true - - after_success: - > test "$TRAVIS_PULL_REQUEST" == "false" diff --git a/.travis/deploy-jenkins-branch.sh b/.travis/deploy-jenkins-branch.sh deleted file mode 100755 index e8676f1ba..000000000 --- a/.travis/deploy-jenkins-branch.sh +++ /dev/null @@ -1,37 +0,0 @@ -#!/bin/bash -# -# Copyright © 2016-2019 by The qTox Project Contributors -# -# This program is libre software: you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation, either version 3 of the License, or -# (at your option) any later version. -# -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with this program. If not, see . -# - -# push latest tag to the `for-jenkins-release` branch to trigger a windows -# release build -# -# should be run only when a new tag is pushed - -set -eu -o pipefail - -main() { - # can already be cloned by the `build-gitstats` job - if [[ ! -e qTox ]] - then - git clone https://github.com/qTox/qTox.git qTox - fi - - cd qTox - git checkout "$TRAVIS_BRANCH" -b for-jenkins-release - git push --force "https://${GH_DEPLOY_JENKINS}@github.com/qTox/qTox.git" -} -main From c549479c0d3dfdc3c9c3bed4d057cf8173142eb8 Mon Sep 17 00:00:00 2001 From: sudden6 Date: Wed, 22 Apr 2020 17:23:29 +0200 Subject: [PATCH 11/11] chore(release): add changelog for v1.17.1 --- CHANGELOG.md | 14 +++++++++++++- 1 file changed, 13 insertions(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 6c926f74d..40ac3993b 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,15 @@ -## (2020-04-19) +## v1.17.1 (2020-04-22) + + +#### Bug Fixes + +* **ci:** remove jenkins deploy step ([48c688bf](https://github.com/qTox/qTox/commit/48c688bf1b1939f1afb239e19764791e4fc98b7a)) + + + + +## v1.17.0 (2020-04-19) Since this is the first release in more than a year the changelog is quite huge. The most notable user facing changes are group chats that stay intact after @@ -8,6 +18,8 @@ Advanced history search was added, as well as file transfers staying in chat history after client restart. There are of course also tons of fixes, namely much increased stability of audio and video calls as well as audio group calls. +For v1.17.0 binaries, see v1.17.1. + #### Performance * **history:** enable sql index on chat_id in history table ([edd72906](https://github.com/qTox/qTox/commit/edd72906fbd4ff7e8e48ebcd7fed764baf8cd85b))