1
0
mirror of https://github.com/qTox/qTox.git synced 2024-03-22 14:00:36 +08:00
Commit Graph

8261 Commits

Author SHA1 Message Date
Anthony Bilinski
fd930cfbb2
refactor(History): Split remove history query into transaction 2022-05-24 12:27:16 -07:00
Anthony Bilinski
9a8706a65f
fix(history): Heal duplicate peer entries with different case
Prior to 2f4e8dc3e8 we would take
the written ToxID and insert that straight into history without
any case check

Must be done prior to schema 11 since even though the UNIQUE constraint
on the peers table is fooled by the different case, the UNIQUE
constraint on the new chats and authors table which are stored as BLOBS
fail during upgrade when the two different case but equal ToxPks
collide.

Unfortunately it can't be done as its own upgrade since 11 was already
merged, and this is a prerequisite for 11 to pass for some users.

Execute prior to starting the split peer upgrade instead of as a larger
transaction for simplicity of the split upgrade, and since executing
this deduplication is idempotent.
2022-05-22 11:15:59 -07:00
Anthony Bilinski
69d07f077e
refactor(history): Expose mergeDuplicatePeers from DbUpgrader
To be used by both dbSchema8to9 and dbTo11.
2022-05-22 11:15:59 -07:00
Anthony Bilinski
f29570138f
fix(history): Strictly check public_key during database upgrade
Text comparisons in SQL are not case sensitive. Since we want to use this check
to specifically check for case mismatch, cast to blob which then does an exact
comparison.
2022-05-22 11:15:55 -07:00
Anthony Bilinski
dc46267833
fix(test): Don't rely on row IDs after moving tables
Row ID's are not guaranteed to match those from the original peer table.

New checking method is equally strict since we already verify the number
of entries, and the SQL schema guarantees that entries are unique.
2022-05-21 20:49:32 -07:00
Anthony Bilinski
46ef31293c
refactor(CI): Rename Windows cross compile builds to match cmake types
Debug and Release with capital letters are consistent with all our other CI
script build type names as well as cmake build types.
2022-05-21 18:21:04 -07:00
Anthony Bilinski
40b339b367
refactor(IPC): Remove activate's handler reliance on global state
Register in Widget's constructor so that handler can always get back to
Widget.

Add unregistration functionality so that the handler doesn't run when
we've returned to the login window or when exiting.
2022-05-21 17:18:07 -07:00
Anthony Bilinski
6ad92bb637
test(history): Add unit test for when db is newer than qTox supports 2022-05-20 11:38:12 -07:00
Anthony Bilinski
f4e64ee7a6
feat(History): Add a GUI error on database schema mismatch
Fix #5683
2022-05-20 11:38:12 -07:00
Anthony Bilinski
0d1f4c4728
chore(CI): Revert macOS runner hack needed for keg-only git install
This reverts commit f8e834c5c0.

Appears to no longer be an issue, brew is now able to use the pre-installed
version of git without error.
2022-05-19 20:15:02 -07:00
Anthony Bilinski
46fb4e9a4f
Merge pull request #6628
bodwok (1):
      fix(Widget): Incorrect removing of contacts
2022-05-14 10:54:14 -07:00
bodwok
039f6ff0b3
fix(Widget): Incorrect removing of contacts 2022-05-14 10:21:47 -07:00
Anthony Bilinski
bc8763e835
Merge pull request #6576
bodwok (1):
      fix(contacts): window with multiple friends contacts
2022-05-08 05:27:10 -07:00
bodwok
1545945236
fix(contacts): window with multiple friends contacts 2022-05-08 04:06:16 -07:00
Anthony Bilinski
3c467de9f2
chore(deps): Update c-toxcore to v0.2.18
Replace msgpack-c with toxcore submodule of cmp.
2022-05-01 06:32:21 -07:00
Anthony Bilinski
a004243cc0
chore(CI): Update brew package formulae before running upgrade
Otherwise we're upgrading packages based of a stale package list.
2022-04-30 18:47:04 -07:00
Anthony Bilinski
f8e834c5c0
chore(CI): Remove keg-only install of git in github action runner
Doesn't have a formula present, but is still linked to /usr/, so
conflicts with installing or upgrading git from out brewfile. Removing
it gives us a more standard environment, and allows us to test our
brewfile unmodified.

Fixes run failures like
https://github.com/qTox/qTox/runs/6111786910?check_suite_focus=true
2022-04-27 19:00:47 -07:00
Anthony Bilinski
a300415983
chore(i18n): Update translation files for Weblate
Unsure why new diffs were generated from the last source update based
on incoming translations.
2022-04-05 12:56:27 -07:00
Atrate
c0c2d1fad3
feat(l10n): update Polish translation from Weblate 2022-04-05 12:56:27 -07:00
Allan Nordhøy
78670eda55
feat(l10n): update Norwegian Bokmål translation from Weblate 2022-04-05 12:56:27 -07:00
The Cats
497feec9bd
feat(l10n): update French translation from Weblate
feat(l10n): update Spanish translation from Weblate

feat(l10n): update Portuguese (Brazil) translation from Weblate

feat(l10n): update Spanish translation from Weblate

feat(l10n): update Portuguese (Brazil) translation from Weblate

feat(l10n): update Portuguese (Brazil) translation from Weblate

feat(l10n): update French translation from Weblate
2022-04-05 12:56:27 -07:00
Oğuz Ersen
db5178c6ca
feat(l10n): update Turkish translation from Weblate
feat(l10n): update Turkish translation from Weblate

feat(l10n): update Turkish translation from Weblate
2022-04-05 12:56:27 -07:00
109247019824
d797fc27a9
feat(l10n): update Bulgarian translation from Weblate
feat(l10n): update Bulgarian translation from Weblate

feat(l10n): update Bulgarian translation from Weblate
2022-04-05 12:56:27 -07:00
Peter Jespersen
a494bc78e4
feat(l10n): update Danish translation from Weblate
feat(l10n): update Danish translation from Weblate
2022-04-05 12:56:27 -07:00
Søren Ingemann Nielsen
cb659bc83f
feat(l10n): update Danish translation from Weblate
feat(l10n): update Danish translation from Weblate
2022-04-05 12:56:27 -07:00
Eric
dbc9b4f049
feat(l10n): update Chinese (Simplified) translation from Weblate
feat(l10n): update Chinese (Simplified) translation from Weblate

feat(l10n): update Chinese (Simplified) translation from Weblate

Translated using Weblate (Chinese (Simplified))

Currently translated at 100.0% (7 of 7 strings)

Translation: Tox/qTox - test, do not translate
Translate-URL: https://hosted.weblate.org/projects/tox/qtox-test-do-not-translate/zh_Hans/

feat(l10n): update Chinese (Simplified) translation from Weblate

feat(l10n): update Chinese (Simplified) translation from Weblate
2022-04-05 12:56:27 -07:00
Oğuz Ersen
5968999aff
feat(l10n): update Turkish translation from Weblate
feat(l10n): update Turkish translation from Weblate
2022-04-05 12:56:27 -07:00
S3aBreeze
479f6b7269
feat(l10n): update Russian translation from Weblate
feat(l10n): update Russian translation from Weblate

feat(l10n): update Russian translation from Weblate

feat(l10n): update Russian translation from Weblate

feat(l10n): update Russian translation from Weblate
2022-04-05 12:56:27 -07:00
Anthony Bilinski
9571434df9
feat(CI): Disallow unsafe implicit casts to QString
Covers char* without size, and QByteArray.

Catches the case of QByteArray to QString implicit conversion like was
fixed in 47ee51c61d, but still allows
construction or assignment from string literals in source. Gives most
of the type safety of QT_NO_CAST_FROM_ASCII without having to wrap
every literal string in QStringLiteral.

No functional issues found during change.
2022-04-05 12:10:05 -07:00
Anthony Bilinski
b5aa5dac63
feat(CI): Disallow implicit casting of QString to char*
QString holds UTF8 data which may not be a valid ASCII C string. Require
an explicit conversion if wanted.
2022-04-05 12:10:05 -07:00
Anthony Bilinski
f1b401166a
feat(CI): Disallow implicit casting of QByteArray to char* or void*
QByteArray usually holds arbitrary binary data, which can have null
characters or invalid characters when converted to ASCII or UTF8.
Disallow implicit casting for safety, forcing an explicit decision if
the conversion is wanted.
2022-04-05 12:10:05 -07:00
Anthony Bilinski
1e4eed76b5
refactor: Move GroupList global state into class 2022-04-05 10:34:53 -07:00
Anthony Bilinski
e48c557387
fix(CI): Fix commit message check on single commit PRs
The range of COMMIT..COMMIT does not count the starting commit, so
single commit PRs are completely unchecked, and multi commit PRs don't
have their first commit checked.
2022-04-05 09:33:46 -07:00
Anthony Bilinski
a3517d4291
refactor(Nexus): Remove all uses of getProfile in child classes
Pass Profile to where it's needed to move away from requiring singleton Nexus.

Keep non-static getProfile for use by by main.
2022-04-04 00:39:12 -07:00
Anthony Bilinski
6c6620ffc1
refactor(Settings): Save loaded profile automatically
It's invalid to save a different profile than was loaded, so no need to
require the profile to be passed in again on save.

Removes dependence on Nexus singleton for Nexus::getProfile.
2022-04-04 00:38:57 -07:00
Anthony Bilinski
a1f7c71feb
perf(Settings): Make personal settings saving consistently async
The function is documented as async, but is only async when called from
a different thread. Save is called from within Settings, it looks like
only from public functions that would be called on other threads, but
make it async regardless of calling thread for consistency.

There is already a sync function that is used, so safety is not lost.
2022-04-04 00:38:57 -07:00
Anthony Bilinski
4f45f30ef9
fix(history): Fix alias removal SQL query after group history addition 2022-04-03 20:39:01 -07:00
Anthony Bilinski
c5fdb78676
fix(UI): Centre message boxes on main window
Setting the parent of MessageBoxManager to Widget has a dual effect of
centreing the QMessageBox's on Widget' window which we want, but also
giving ownership of MessageBoxManager to Widget, which causes Widget to
destroy it in Widget's destructor. Since the original MessageBoxManager
must outlive Widget to be used in Settings and when loading Profiles
before Widget is constructed, we don't want Widget to destroy it.

Instead of juggling MessageBoxManager's parent around dynamically when
Nexus changes the active Window, just construct a second one in Widget
to be used by all its children with the parent set on Widget, centreing
the window and allowing it to have ownership.

Settings and Profile still use the original parent-less
MessageBoxManager since they show popups before Widget is constructed.
2022-04-03 18:31:33 -07:00
Anthony Bilinski
25223119c9
fix(chatlog): Display correct system message timestamp in chatlog 2022-04-03 17:27:18 -07:00
Anthony Bilinski
6cc9366ebe
Merge pull request #6614
bodwok (1):
      fix(FriendList): exclusion of possible undefined behavior
2022-04-03 02:06:34 -07:00
bodwok
a1b08d6493
fix(FriendList): exclusion of possible undefined behavior 2022-04-03 11:03:48 +03:00
Anthony Bilinski
0352ada08c
feat(history): Enable group history
Fix #5452
2022-03-30 19:45:06 -07:00
Anthony Bilinski
cd3c7b392e
feat(UI): Add UI for removing group history 2022-03-30 19:45:06 -07:00
Anthony Bilinski
1142cc03f8
feat(history): Remove group history on quit when selected
The same user may have sent a message both in the group and 1:1, so
generically remove aliases that have no associated messages, rather than
aliases that were used in the group.

Similarly, generically remove authors that have no associated aliases.

The group itself is a chat so will be removed through existing query.
2022-03-30 19:40:22 -07:00
Anthony Bilinski
1ac7285c79
refactor(widget): Make RemoveFriendDialog generic for Chats 2022-03-30 19:27:57 -07:00
Anthony Bilinski
de09bf655e
refactor(history): Use abstract Chat in ChatHistory rather than Friend
ChatHistory will be used by Groups for their history as well.
2022-03-30 19:27:57 -07:00
Anthony Bilinski
b320397558
refactor(model): Add getDisplayedName(ToxPk) to Chat
To allow resolving the author's name in a group through Chat
2022-03-30 19:26:06 -07:00
Anthony Bilinski
e4fefccff8
refactor(history): Move History APIs from Friend-based to Chat-based
Makes it more clear when we're talking about an author (ToxPK) or a chat
(Chat). Prepares for group chat history which will use the same APIs.
2022-03-30 19:26:06 -07:00
Anthony Bilinski
cfe18f8340
refactor(ContactId): Add clone function to ChatId interface
So that History can load history messages without needing to know
what type of Chat the messages are from.
2022-03-30 19:26:05 -07:00
Anthony Bilinski
71c3f997b4
refactor: Move FriendList global state into class 2022-03-30 19:04:11 -07:00