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
sudden6
a00af08777
fix(audio): connect the correct audio callbacks
2018-07-01 10:39:33 +02:00
sudden6
67f2605971
refactor(toxcall): move peer handling to ToxGroupCall
2018-07-01 10:16:21 +02:00
sudden6
811998b8df
refactor(toxcall): move alSource into ToxFriendCall
2018-06-30 22:11:19 +02:00
sudden6
20ca6c84c8
refactor(core): move Tox_Options handling to separate file
2018-06-27 18:34:59 +02:00
sudden6
c7ca261679
refactor(core): move logger to its own file
2018-06-27 18:34:55 +02:00