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

489 Commits

Author SHA1 Message Date
sudden6
2bc0057bbd
refactor(coreav): move threading of CoreAV to single mutex
Use a standard mutex instead of trying to build proper locking
ourselfes.
2020-01-29 22:22:17 +01:00
Anthony Bilinski
f252816f55
Merge branch 'v1.17-dev' 2019-12-02 08:46:04 -08:00
Anthony Bilinski
9b23abc6de
fix(core): avoid using stack allocated memory past end of scope
tox_file_send was using a pointer to memory that was out of scope. Extend
lifetime of avatarHash to avoid this.
2019-11-27 07:28:47 -08:00
Anthony Bilinski
6179250458
Merge branch 'v1.17-dev' 2019-11-11 17:38:02 -08:00
Mick Sayson
836718aa26
fix(groups): Fix invalid group list on group member join
The call to Core::getGroupPeerNames is expected to return a list where
the index in the list is the group member id. In any error case we were
previously breaking this constraint. It turns out that every time
someone joins a group we call this function before they have a valid
name resulting in their id not being added to the list.

This fix ensures that the list coming out of Core::getGroupPeerNames
always has a full list.

Fixes #5838
2019-11-11 17:36:53 -08:00
Mick Sayson
87eed97ab3
fix(calls): Fix SIGSEGV on quit while in call
On application close we used to access invalid memory associated with
the audio subsystem. This was because on destruction of static variables
we tried to access state associated with an already destructed item.

These variables seem to have no good reason to be static. They should be
tied to a single CoreAV instance and are only accessed through an
existing CoreAV instance.
2019-11-11 17:19:21 -08:00
Mick Sayson
fd243738c1 fix(groups): Fix invalid group list on group member join
The call to Core::getGroupPeerNames is expected to return a list where
the index in the list is the group member id. In any error case we were
previously breaking this constraint. It turns out that every time
someone joins a group we call this function before they have a valid
name resulting in their id not being added to the list.

This fix ensures that the list coming out of Core::getGroupPeerNames
always has a full list.

Fixes #5838
2019-11-09 14:21:12 -08:00
Anthony Bilinski
73fedbba79
Merge branch 'v1.17-dev' 2019-10-10 03:11:19 -07:00
Jimi Huotari
7f74d41586
refactor(Qt): use 'QLatin1String' instead of 'QLatin1Literal'
This is an undocumented Qt 2/3/4 remnant, deprecated in Qt 5.14.

- https://code.qt.io/cgit/qt/qtbase.git/commit/?h=5.14&id=3e75c296
- https://code.qt.io/cgit/qt/qtbase.git/commit/?h=5.14&id=45373c19
2019-10-09 23:19:26 -07:00
Anthony Bilinski
731a49854a
fix(core): avoid logging which bootstrap node is being connected to
Errors are parsed and printed, but which specific node is being connected to
isn't very relevant to any errors that would occur, and the nodes list is
already updated to prune offline nodes based on nodes.tox.chat periodically.
This provides some extra privacy about which connections are being made,
even though the bootstrap nodes are already public.
2019-10-09 23:18:34 -07:00
Anthony Bilinski
64ebe01f9b
refactor(core): change hideous error parsing macro to overload
Reduce type duplication by caller, and stop calling functions based on string
concatenation
2019-10-03 19:44:35 -07:00
Anthony Bilinski
11ef88a8ac
refactor(core): use automatic memory for toxcore string buffers
Avoid reinterpret_casts in Core, offload reinterpretation to model classes
2019-10-02 02:15:21 -07:00
Anthony Bilinski
f77396a09e
refactor(core): parse and log all toxcore errors
Use a macro to embed line number of call sight, instead of just using line
number of log site, since logger functions can be called from different
toxcore API usages.
2019-10-02 02:15:21 -07:00
Anthony Bilinski
2e173ec6ad
refactor(core): move stateless parsing functions to anonymous namespace 2019-10-02 02:15:21 -07:00
sudden6
0e3cd7fe6b
Merge pull request #5829
jessica181920 (1):
      fix(i18n): Various English fixes
2019-09-28 14:25:18 +02:00
Anthony Bilinski
e4f73011f9
fix(core): don't log critical on every group join
It's expected behaviour that the peer is unknown when first joining a group.

Fix #5118
2019-09-17 00:45:17 -07:00
Anthony Bilinski
7cd20f0e28
Merge branch 'v1.17-dev' 2019-09-16 13:22:15 -07:00
Anthony Bilinski
3d7a872f1a
fix(core): save tox profile when updating group or friend states
Makes sure persistent groups are stored in the case of a qTox crash.
2019-09-15 19:04:02 -07:00
jessica181920
11b34c84ef fix(i18n): Various English fixes
Consistency, typos, grammatical corrections, capitalization, punctuation,
etc.
2019-09-14 15:00:59 -04:00
Anthony Bilinski
fd0a98fd90
Merge branch 'v1.17-dev' 2019-08-29 00:47:32 -07:00
sudden6
909deb0feb
fix: remove reconnect button
The button didn't work that well and caused all kinds of issues inside
the code, so I replaced it by a notice that changes to the Advanced
settings only apply after a restart of qTox.

In the process I also removed all code that was exclusively used for
that feature.

We may add it back later when qTox's internal architecture makes it less
cumbersome.
2019-08-28 16:36:09 -07:00
Jimi Huotari
ec7d66e96b refactor(Qt): use 'QLatin1String' instead of 'QLatin1Literal'
This is an undocumented Qt 2/3/4 remnant, deprecated in Qt 5.14.

- https://code.qt.io/cgit/qt/qtbase.git/commit/?h=5.14&id=3e75c296
- https://code.qt.io/cgit/qt/qtbase.git/commit/?h=5.14&id=45373c19
2019-08-23 14:54:08 +03:00
jenli669
6c77d57da8
fix(groups): reduce group message size limit by 50
This commit fixes errors when sending large group messages stemming from inconsistencies in reported/true max message size in c-toxcore

Fixes #5760
2019-08-03 00:51:33 +02:00
jenli669
9099eea04f
fix(groups): remove logic that blocks parseConferenceSendMessageError 2019-08-03 00:09:05 +02:00
Anthony Bilinski
765fce94b7
fix(group): use valid pointer, allowing source invalidation
Fix #5681
2019-07-31 14:19:01 -07:00
Anthony Bilinski
33d42c9766
fix(groups): enable AV groups after load
Fix #5509
2019-06-29 16:17:58 -07:00
jenli669
04a9bc46f4
docs(copyright): update and add copyright info
zealously updates and adds qTox copyright information.

Fixes #5713
2019-06-28 01:18:26 +02:00
Mick Sayson
f0d840002a refactor(messages): Create class to manage sending/receiving group messages from core 2019-06-21 11:01:10 -07:00
Mick Sayson
3fd4ce5952 refactor(core): Remove length parameter from splitMessages
* From the archeology I managed, MAX_GROUP_MESSAGE_LEN was a workaround
for an old toxcore bug. Testing removal of this parameter and replacing it
with tox_max_message_length() seems to work fine.
2019-06-21 11:01:10 -07:00
Mick Sayson
22a4c38bfd refactor(messages): Create class to manage sending/receiving friend messages from core 2019-06-21 11:01:10 -07:00
Mick Sayson
15b9f9ff54 refactor(strongtype): Add property types to strong types 2019-06-18 13:38:02 -07:00
jenli669
aeddf4822a
fix(group): Condense invalid title handling logic, clang-format
This commit ignores the possibility of invalid length error being thrown
by a title after we've already checked its size the first time. We also
assume that a group chat cannot cease existing while we iterate over the
retrieved groups.
2019-06-15 00:37:02 +02:00
jenli669
f77a062120
fix(group): set default group chat title when provided title is invalid
Add handling logic for when a group exists but has an invalid title.
Title is created using the first 8 hexadecimals of the group chat id.
2019-06-15 00:15:48 +02:00
Mick Sayson
e5016337bb refactor(offlinemsg): Decouple OfflineMsgEngine from other components 2019-05-26 15:33:51 -07:00
sudden6
22362d2940
refactor(audio): Remove Audio singleton
This commit finally removes the Audio singleton and allocates the audio
backend in main.cpp.
2019-05-21 21:05:27 +02:00
Anthony Bilinski
08839b7052
refactor(group): remove redundant updatePeer API 2019-05-15 00:13:55 -07:00
Anthony Bilinski
6522988e8c
fix(corefile): cancel file transfer when peer goes offline 2019-05-09 21:42:47 -07:00
Anthony Bilinski
1628d495d1
fix(corefile): handle empty avatar transfer in core 2019-05-09 14:43:30 -07:00
Anthony Bilinski
b1eefc3f23
fix(corefile): include file id in map when sending empty avatar 2019-05-09 14:43:29 -07:00
sudden6
e7e35642d7
refactor(audio): introduce IAudioSource interface and use it 2019-05-05 12:49:56 +02:00
sudden6
a8546fe8cb
refactor: use smart pointer instead of raw pointer 2019-04-26 16:26:57 +02:00
sudden6
47402fae90
refactor: run formatting script 2019-04-25 21:30:19 +02:00
sudden6
5b908184fc
refactor(audio): move audio output to new IAudioSink interface 2019-04-25 21:30:19 +02:00
Anthony Bilinski
dd007877a9
refactor(status): move Status out of Widget 2019-04-24 10:35:15 -07:00
Anthony Bilinski
f7603c294b
refactor(id): use toxPk and groupId instead of core numbers
Allows creating classes for blocked friends which have toxPks but no
core number.
2019-04-16 00:44:16 -07:00
Anthony Bilinski
ec500b6673
refactor(status): add Blocked status, deduplicate status parsing
Blocked status will represent friends who are removed from Toxcore, but who still exist in UI and can be readded to Toxcore at a future time using their public key. Blocked friends are similar to offline friends, but have a different status icon and will be seperated in the friends list.
2019-04-14 13:35:46 -07:00
Anthony Bilinski
0f5ad725d7
fix(groups): fix assert on group invite accept 2019-04-14 05:01:00 -07:00
Anthony Bilinski
97d05f9d67
refactor(id): make ContactId interface, implement GroupId
Precursor for group history, friend blocking
2019-04-13 12:58:25 -07:00
sudden6
0da72e22d3
refactor: remove dead code 2019-04-13 11:48:12 +02:00
sudden6
a4ad8c71b8
refactor(core): make CoreFile its own independent class
This paves the way for better testability of Core as well as CoreFile.
2019-04-10 10:28:13 +02:00
sudden6
f03262e98b
refactor(core): remove duplicate code and checks 2019-04-10 10:28:13 +02:00
sudden6
b033b5095b
refactor(core): use mutable keyword instead of smart pointer 2019-04-10 10:28:13 +02:00
sudden6
66f72ee863
refactor(core): remove unused function
This function would always return true for any non destroyed Core
object.
2019-04-10 10:28:12 +02:00
sudden6
93a7fdfe03
refactor(core): cleanup Core public functions 2019-04-10 10:28:09 +02:00
sudden6
b7b9b58d42
refactor: make ToxCall non-moveable
We don't need move functionality and the code for it is complex and
error prone.
2019-03-17 19:32:34 +01:00
sudden6
acef759a58
feat: remove old boostrap nodes code
This commit replaces the bootstrap node list in the qtox.ini file with
the boostrapnodeupdater class.
2019-03-01 10:39:24 +01:00
Anthony Bilinski
13afbf7ec6
fix(groups): avoid having to lookup peer pk
Caused race where peer plays audio, then is removed from group, then we
process audio played signal and lookup their peerId in core where it
doesn't exist. Now Group will effectively contain the peer until the
peer list changed slot is processed.

Partial fix for #5511
2019-01-29 08:30:39 -08:00
Anthony Bilinski
edf6b67313
refactor(core): strong type message receipt and row ID
Avoid implicit casting and invalid arithmetic.
2019-01-28 10:58:54 -08:00
Anthony Bilinski
8422c09f6a
fix(groups): don't invalidate all audio sources when peer list changes
Fix #5508
2019-01-27 23:13:11 -08:00
Anthony Bilinski
ec07fd7291
feat(groups): show who is in a group call before joining
Fix #5507
2019-01-27 15:57:38 -08:00
Anthony Bilinski
5289c99962
feat(core): add send message error handling
remove unused sendMessageResult signal
2019-01-27 04:52:36 -08:00
Anthony Bilinski
f2e8567b21
Merge pull request #5366
Mick Sayson (2):
      fix(transfer): Accurately represent pause state in UI
      refactor(transfer): Remove unnecessary split for pause send/recv
2018-12-16 14:51:02 -08:00
Mick Sayson
3615425234 refactor(transfer): Remove unnecessary split for pause send/recv 2018-12-16 13:51:04 -08:00
Mick Sayson
293a1d615c fix(transfer): Accurately represent pause state in UI
Toxcore has a 3 state pause, us, them, or both. Currently our UI
messes up if both parties pause. This changeset changes our UI behavior
to show whether we're paused, or if we are waiting on the remote to
unpause.
2018-12-16 13:51:03 -08:00
Anthony Bilinski
8db744a505
feat(core): set group title for loaded groups
Replace double static_cast of pointer with reinterpret_cast.
reinterpret_cast in unsafe because the underlying data may be
meaningless in the new type, static cast to void then to a new pointer
type has exactly the same problem. This is our intention here.
2018-12-14 09:19:50 -08:00
Anthony Bilinski
cbf2a1801f
Merge pull request #5354
Anthony Bilinski (2):
      feat(db): add file hash to file history
      refactor(files): change ToxFile's fileName to QString

Mick Sayson (5):
      refactor(files): Refactor FileTransferWidget
      feat(db): Support schema version upgrades
      feat(db): Database support for file history
      feat(db): Hookup file history to the rest of the system
      feat(db): File transfer history review comments
2018-12-14 08:34:53 -08:00
Anthony Bilinski
84362244da
refactor(files): change ToxFile's fileName to QString 2018-12-14 00:33:27 -08:00
Anthony Bilinski
c8ffa1f921
fix(settings): repair saved invalid proxy type due to #5311 2018-12-09 15:10:21 -08:00
Anthony Bilinski
8427be6678 feat(db): add file hash to file history
Not currently used, but there are plans to display if a transfered file
has been modified, which the file hash will be needed for. Adding file
hash at the same time as file history also saves a db schema update.
2018-12-02 14:40:54 -08:00
Mick Sayson
567ddfb203 feat(db): Database support for file history 2018-12-02 14:35:18 -08:00
Mick Sayson
157be30b11 refactor(files): Refactor FileTransferWidget
Rational here is that the current FileTransferWidget is quite
entangled with core logic. If we are going to instantiate the
FileTransferWidget without an active file transfer the widget needs to
behave sanely without getting messages from toxcore. This changeset is
an attempt to allow us to move from any FileTransferWidget state to any
other state without having to go through the appropriate state
transitions.
2018-12-02 14:35:04 -08:00
sudden6
a82eb6f36e
feat(core): prepare qTox for groupchat saving
This change creates groups on startup of Core. We need this once
https://github.com/TokTok/c-toxcore/pull/1156 is merged to load existing
groups.
2018-11-22 08:11:18 +01:00
sudden6
6cce0dae83
fix(toxoptions): handle nullptr in parameters
Use the c-toxcore default settings in case we don't have own settings.
2018-11-14 15:06:43 +01:00
sudden6
c6a197feca
refactor: re-format and cleanup 2018-11-14 13:58:24 +01:00
Anthony Bilinski
e1201f901f
chore(core): improve failed decryption error handling 2018-11-05 10:59:50 -08:00
sudden6
7fa2dfead5
refactor(coreav): move CoreAV to the factory pattern too
- clean up error handling during construction of the Core
- prevent leaks by using unique_ptr
2018-10-25 08:06:19 +02:00
sudden6
2ab081b4a9
refactor: remove support for c-toxcore < 0.2.0
This code is only a maintainance burden and not used anymore.
2018-10-25 07:48:21 +02:00
sudden6
10a4b249bb
fix(core): remove pgc code
This code was needed for the pgc implementation, but is not needed for
minipgc
2018-10-24 13:27:16 +02:00
sudden6
26206a35eb
fix(core): ensure QTimers are moved with the objects they belong to
We use the Qt parent/child model instead of unique_ptr to achieve this.
2018-10-07 20:12:33 +02:00
sudden6
39dc6dacb8
Merge pull request #5352
Mick Sayson (1):
      fix(core): Fix misuse of toxcore tox_file_send API
2018-09-24 18:06:51 +02:00
sudden6
a139a9933b
refactor(core): cleanup thread and timer destruction in Core and CoreAV 2018-09-24 16:57:53 +02:00
Mick Sayson
f988177a9b fix(core): Fix misuse of toxcore tox_file_send API 2018-09-23 20:51:34 -07:00
Anthony Bilinski
cc6df2c294
chore(core): use new toxcore enum typenames
Fix #5287
2018-09-17 10:40:07 -07:00
Anthony Bilinski
0c757356d3
fix(avatar): set friend to identicon on empty avatar receipt
*All friend avatar changes and removals go through Profile, so that Profile can manage identicons
*Split the concept of "changed" and "removed" into "changed", "set", and "removed"

Fixes #4724
2018-09-17 02:30:45 -07:00
iphydf
31f54d4d1c
refactor: Improve toxcore-originated log messages.
This changes ToxLogger to behave as if `qDebug()` were used inside
toxcore itself, i.e. with the correct file/line/func.
2018-08-26 17:22:28 +00:00
sudden6
291e86d9f9
fix(ui): don't emit filename change windows for every chat 2018-07-13 09:42:27 +02:00
sudden6
7a98ea2def
fix(logging): only log toxcore messages above TRACE level 2018-07-12 11:35:01 +02:00
sudden6
24e7c4efd4
refactor(core): format code 2018-07-05 17:10:26 +02:00
sudden6
82a7141e31
refactor(core): reimplement restart and small cleanups 2018-07-05 17:05:41 +02:00
sudden6
5a6606e351
refactor(core): prepare for future error codes 2018-07-05 17:05:41 +02:00
sudden6
5ec983d8f5
refactor(core): remove unused return value and fix comment 2018-07-05 17:05:41 +02:00
sudden6
7f7b29e55e
refactor(core): use smart pointers instead of raw pointers 2018-07-05 17:05:41 +02:00
sudden6
6aa215e96f
refactor(core): protect the tox main loop with a mutex 2018-07-05 17:05:41 +02:00
sudden6
e5acc6726f
refactor(core): reimplement avatar transfers
In the process of this I used some ugly hacks, to finish this in time,
they should be changed as soon as possible.
2018-07-05 17:05:41 +02:00
sudden6
b647f9291e
refactor(core): reimplement profile saving 2018-07-05 17:05:40 +02:00
sudden6
e56ee4a134
refactor(core): fix bootstrapping 2018-07-05 17:05:40 +02:00
sudden6
a8494980da
refactor(core): fix error handling 2018-07-05 17:05:40 +02:00
sudden6
8574162949
refactor(core): cleanup Core class
- use a factory method to create it
- make it handle its own thread
- remove dependency on GUI
2018-07-05 17:05:40 +02:00
sudden6
977b7fc9a0
fix(settings): automatically disable UDP when a proxy is set
fixes: #5174
2018-07-02 22:46:26 +02:00
sudden6
40d30153ae
fix(audio): fix error introduced in 67f2605971 2018-07-02 15:34:24 +02:00