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

8294 Commits

Author SHA1 Message Date
Anthony Bilinski
e740859ef9
feat(history): Add self join/part messages
Makes it so that looking back in chat history, you can see which users you were
connected to for any message. Otherwise self client restarts are unseen.
Follows showGroupJoinLeaveMessages setting which defaults to false, so only
users who opt in will see the messages.

Scrap generic numArg handling. It somewhat increases complexity and doesn't
reduce code either.
2022-03-10 16:23:46 -08:00
Anthony Bilinski
be3e8997c4
chore(CI): apt-get update in gitstats runner
Package cache is stale and causing a failure to install.
2022-03-09 19:31:40 -08:00
Anthony Bilinski
9145dc1cae
refactor(history): Remove unused friendPk from FileDbInsertionData 2022-03-08 23:26:18 -08:00
Anthony Bilinski
fd2997c2db
chore(CI): Disable online tests in all but one CI job
They're still slightly flaky even with insanely long timeouts, and even when not they waste a huge amount of our runner time sitting and waiting for the DHT to disconnect and reconnect.

Still run on our fedora job to get almost all of the benefit, plus AddressSanitizer is enabled there for better testing synergy.
2022-03-08 20:18:35 -08:00
Anthony Bilinski
e316a683ff
chore(CI): Set a long test timeout for core_online_test
Same reasoning as 30d54b1b0f.
Missed the test timeout when increasing the verify timeout.
2022-03-08 20:18:30 -08:00
Anthony Bilinski
98bdf5f36f
chore(CI): Use consistent passing of ARCH to scripts
It's passed to some scripts through the environment variable and to others on
as an argument. Make all calls rely on the argument for consistency.
2022-03-08 15:59:11 -08:00
Anthony Bilinski
4afaf78c65
chore(meta): Remove commit format PR template
Commit format is already checked in CI, unlike this template which doesn't
actually enforce anything. Each PR showing "1 task done" clutters the PR list
view.
2022-03-08 15:45:54 -08:00
Anthony Bilinski
54be506884
chore(Windows): Remove debug prints from installer
Accidentally left in from development for 553bd47e81
2022-03-08 15:45:45 -08:00
Anthony Bilinski
30d54b1b0f
chore(CI): Set a very long timeout for core_online_test
CI has very flaky network causing everything to take way longer than expected.
None of the tests are actually checking that something happens quickly, so just
set a stupidly long timeout to avoid flakiness.
2022-03-08 15:41:17 -08:00
Anthony Bilinski
82b12f95fe
chore(release): Update nightly release links in README 2022-03-08 03:53:59 -08:00
Anthony Bilinski
a1c139a51c
chore(CI): Don't install openssl docs in CI
Installing docs takes 2/3rds of the total build time on an NVME SSD, even more
on slower storage, and is useless in CI.
2022-03-08 03:53:18 -08:00
Anthony Bilinski
beb38fa33b
fix(Windows): Fix starting qTox from installer
Regular ShellExecAsUser plugin doesn't support Unicode. Change to their
"Unicode Update" version. See
https://nsis.sourceforge.io/ShellExecAsUser_plug-in#Download

Missed when updating installers to Unicode mode in
9f84184ba8
2022-03-08 03:48:59 -08:00
Anthony Bilinski
3744ecfe8b
chore(CI): Include "win" in Windows arch for build scripts
To help disambiguate Windows arches with other platforms that will be used.
2022-03-08 03:20:48 -08:00
Anthony Bilinski
ac4f01cf7f
feat(logging): Hide toxcore spam when using IPv4 2022-03-07 23:30:02 -08:00
Anthony Bilinski
a96deb7bc0
refactor(settings): Remove unused Settings::getFriendAddress 2022-03-07 16:40:30 -08:00
Anthony Bilinski
8ff52e500a
chore(deps): Update c-toxcore to v0.2.17 2022-03-07 15:36:29 -08:00
Anthony Bilinski
e100f81ba9
Merge branch 'v1.17-dev' 2022-03-07 15:02:46 -08:00
Anthony Bilinski
2bcd85cfe4
chore(CI): Add more artifacts to nightly release
To match functionality of old qTox/qTox-nightly-releases/releases nightlies.

Add flatpak sha, Windows zip shas, Windows installers, macOS sha.
2022-03-06 18:16:33 -08:00
Anthony Bilinski
54345d1085
chore(release): Add changelog 2022-03-06 06:31:31 -08:00
Anthony Bilinski
4580d3f106
fix(core): One time reset of user bootstrap node list to default
Due to poor design, bootstrapNodes.json was saved the same if manually set by
user, or if just storing qTox defaults. Because of this, for users using
defaults, they would be stuck with stale defaults indefinitely without this one
time reset.

The user list that's removed is backed up to bootstrapNodes.backup.json.

Going forward, the user list and default list will be stored separately.

Fix #6452
2022-03-06 06:00:13 -08:00
Anthony Bilinski
08fdd3a2c7
feat(core): Store default bootstrap list separate from user list
Allows qTox to tell the difference between a default list that should be
upgraded when defaults are changed, ora user list that should never be changed.
2022-03-06 06:00:13 -08:00
Anthony Bilinski
2b41a06b55
feat(Settings): Add system for versioning and upgrading Settings
Similar to how History handles SCHEMA_VERSION. Run separately on global and
personal settings, since some state in global, and personal settings can’t be
done globally since they require the passkey.

Restrict a user from downgrading past the saved settings version, due to
possible compatibility breaks or old qTox versions re-introducing corrupt state
that was already healed.

Pass in new profile state for personal settings rather than relying on settings
file presence because personal settings can be stored in either the personal
settings file or global settings file. This was introduced in
aea9eea8a4 when personal settings were first
moved to their own file.
2022-03-06 06:00:13 -08:00
Anthony Bilinski
f68be0ab33
chore(release): Update qTox version number to v1.17.6 2022-03-06 04:10:08 -08:00
Anthony Bilinski
484ea7ce9b
fix(macos): update deprecated AVFoundation API
Backported from 65ff532a54
2022-03-06 04:09:15 -08:00
Anthony Bilinski
c282c6e96f
chore(release): Remove support for macOS 10.14
macOS 10.14 is EOL by Apple, and brew no longer supports it. We can no longer
build qTox on 10.14 using our brew-based release process. Instead we will
release from 10.15, which loses compatibility with 10.14 with our current build
process.
2022-03-06 04:04:41 -08:00
Anthony Bilinski
47406e7422
fix(Windows): Correct Program Files directory for 32-bit Windows
Both installers accidentally try to get permissions from the 64-bit Program
Files, introduced in 553bd47e81.
2022-03-06 02:05:17 -08:00
Anthony Bilinski
1063b3d7f9
chore(build): Remove check for QtVer
It is unused, and brew now installs to Cella/qt@5 so this check causes an error.
2022-03-05 23:52:17 -08:00
Anthony Bilinski
7083a7d9bd
chore(CI): Fix commit message check range
It was reversed before which works on normal PRs, but checks commits on
the destination branch when merging two upstream branches.
2022-03-05 18:19:05 -08:00
Anthony Bilinski
a83ef30476
chore(release): Add changelog 2022-03-05 04:20:45 -08:00
Anthony Bilinski
b581a9c6f8
chore(release): Update qTox version number to v1.17.5 2022-03-05 04:18:05 -08:00
Anthony Bilinski
553bd47e81
fix(Windows): Restrict non-default install directory permissions
Installations to Program Files (default) inherit restrictive permissions,
disallowing regular users from writing to files in the install location. If a
user installs to other directories with more lax permissions though, i.e. C:\,
the install directory can be writable by non-admins, causing a privilege
escalation opportunity. An unprivileged user could modify or replace the qTox
binary or a dll, that would then be run by any other user on the system.

Clone Program Files permissions rather than trying to craft sane permissions
manually for simplicity and compatibility.
2022-03-05 04:15:19 -08:00
Anthony Bilinski
2c2c6f6818
refactor(Windows): Use UTF16 strings with files in Windows installer
Windows uses UTF16, so may have caused issues if users installed to paths with
non-ANSI characters. It is also needed for interacting with any OS files.
2022-03-05 04:15:19 -08:00
Anthony Bilinski
9f84184ba8
fix(Windows): Build NSIS installer in Unicode mode
ANSI mode is deprecated.
2022-03-05 04:15:19 -08:00
Anthony Bilinski
1353fc934e
fix(Windows): Define installer language before trying to access it
LangString UninstLogMissing statement was accessing LANG_ENGLISH before it was
defined by the MUI_LANGUAGE macro. It caused a warning, but still defaulted to
English.
2022-03-05 04:15:19 -08:00
Anthony Bilinski
5526d131a7
refactor(Windows): Define installer macros right after creating them
Breaks an inter-dependency between "MODERN UI" section needing CreateShortcut
and "PREPARE UNINST LOG" section needing LANG_ENGLISH, allowing "MODERN UI"
section to be done first.
2022-03-05 04:15:19 -08:00
Anthony Bilinski
ee0334acc5
feat(chatlog): Disable join and leave system messages based on setting
Backported from 069ab92fd0
2022-03-05 04:13:23 -08:00
Anthony Bilinski
423049db50
feat(UI): Add UI For controlling group join and leave system messages setting
Backported from 069ab92fd0
2022-03-05 04:13:22 -08:00
Anthony Bilinski
916e797c10
feat(Settings): Add setting for hiding group join and leave system messages
Messages can become spammy is long lasting quiet groups, drowning out real user
messages

Backported from 1be5b99d17
2022-03-05 04:13:19 -08:00
Anthony Bilinski
d0d288a9b6
refactor(settings): Use IGroupSettings in GroupChatForm
Move interface signals from Settings to be declared by the interface itself

Backported from e5df648e1a
2022-03-05 04:12:31 -08:00
Anthony Bilinski
f5fabc2fe2
fix: Update video API usage for newer libavcodec
Newer version of avformat_open_input, av_find_input_format,
avcodec_find_decoder previously used non-const pointers that are now
const. Support both version for compatibiltiy with other platforms.

Backported from 15673a52b6
2022-03-05 01:30:50 -08:00
Anthony Bilinski
7a3474bf55
feat(chatlog): Add support for ed2k file links 2022-03-05 01:00:08 -08:00
Anthony Bilinski
3c682abc69
fix(docs): Add brew prefix to macOS build instructions
Update brew's qt5 to qt@5, following brew naming deprecation.
2022-03-04 22:04:26 -08:00
Anthony Bilinski
8a7461fc16
chore(CI): Run tests in parallel
Faster, with the bonus of catching unexpected dependencies between tests.
2022-03-03 12:09:50 -08:00
Anthony Bilinski
4fcc2251f4
chore(CI): Enable tests in macOS CI build 2022-03-03 12:09:50 -08:00
Anthony Bilinski
3170dd8d62
chore(CI): Don't try to deploy from forks
Gitstats and doxygen deploys require deploy keys to update qTox's website.
Don't try to do this from forks, since it will always fail.
2022-03-03 03:59:12 -08:00
Anthony Bilinski
bc751c8e1c
refactor(test): Move mocks into their own library
Avoid re-compiling sources for each test that uses them.
2022-03-02 23:30:04 -08:00
Anthony Bilinski
40846f886c
refactor(test): Deduplicate MockCoreSettings
Also add Mock sources to all tests, to handle tests that require both project
resources and mock without complicating auto_test
2022-03-02 23:30:04 -08:00
Anthony Bilinski
12b3b05217
test: Fix signal spy mixup for core_online_test
* Fix statusMessage -> userName mixup in change_status_message
* Create named constant for sleep interval waiting for friend's message to arrive
* Elaborate on comments around the sleeps a bit more, I was confused by them still
* Increase bootstrap timeout to 120s, it expired in CI at 65s
2022-03-02 23:30:04 -08:00
sudden6
e2d0472a9f
test: add more online test 2022-03-02 23:30:04 -08:00
Anthony Bilinski
e426994e5f
test: Fix issues with core_online_test
* Move static function variables from core to be class member variables,
  allowing two Core instances to run at once
* Replace deprecated QLatin1Literal with QLatin1String
* qvariant_cast slot argument to ToxPk, rather than trying to convert variant
  to bytes directly which is invalid
* Fix "wait for both to come online" accidentally waiting for Bob twice
* Move all sleeps to QTRY_VERIFY_WITH_TIMEOUT to speed up test
* Update settings* -> settings& based on Core API change
* Update Mock to match API change of IBootstrapListGenerator
* Register metatype of ToxPk, uint32_t, Status::Status
* Correct Alice's spy looking for Bob's pk
2022-03-02 23:30:04 -08:00