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

754 Commits

Author SHA1 Message Date
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
jenli669
17d5d55259
fix(core): correctly relink ui/core when core is changed
Widget was only connecting the Core to itself during initialization, but the Core instance could change during a restartCore call. This commit will make Widget link the Core to itself when it changes rather than only on initialization.

Fixes #5710
2019-06-26 11:14:20 +02:00
Mick Sayson
ed514d7166 refactor(chatform): Remove message handling logic from gui path
Functional changes
* Offline messages are still sent when the chat log is cleared
* Spinner now does not wait for history to be complete, just a receipt
  from our friend
* Export chat and load chat history are now available in group chats
* Merged save chat log and export chat log
  * Note that we lost the info messages in the process

NonFunctional Changes
* FileTransferWidget slots only called for correct file
* Settings::getEnableGroupChatsColor now embedded in
GenericChatForm::colorizeNames
  * Settings::setEnableGroupChatscolor now emits signal connected to
GenericChatForm::setColorizedNames to keep state in sync
* Chatlog history not reloaded on setPassword()
  * I am pretty sure this had no purpose
* Removed a lot of responsibility from ChatForm
  * History moved to ChatHistory implementation of IChatLog
  * OfflineMsgEngine moved to FriendMessageDispatcher
  * Export chat and load chat history moved to GenericChatLog
    * Backed by IChatLog so can be used generically
  * Message processing moved to FriendMessageDispatcher
  * The action of sending files to coreFile is still handled by
  ChatForm, but displaying of the sent messages is done through IChatLog
  -> GenericChatForm
  * Search moved to ChatHistory/SessionChatLog
  * All insertion of chat log elements should be handled by
  GenericChatForm now
* Removed overlapping responsibilities from GroupChatForm
  * Search and message sending goes through ichatlog/messagedispatcher
  too
  * Lots of search functionality pushed down into IChatLog
* Some of the file logic was moved into Widget. This is mostly to avoid
  scope increase of this PR even further.
* History APIs removed that were no longer used
2019-06-21 11:01:35 -07:00
Diadlo
0b9b538601 refactor: Inject DialogsManager in chatrooms 2019-06-19 12:34:06 +03:00
Diadlo
ac36ed8180 refactor: Create interfaces for ContentDialog and ContenDialogManager 2019-06-19 12:34:03 +03:00
jenli669
85f90ab221
fix(audio): correctly loop incoming call sound
Reordered audioNotification play/loop calls.
Fixes #5680
2019-06-12 22:59:04 +02:00
Monsterovich
1c02dc2d6b fix(ui): fix 2 2019-05-23 19:49:42 +02:00
Monsterovich
f8b54b39f3 fix(ui): apply requested changes 2019-05-23 15:30:31 +02:00
Monsterovich
3b305dd05a fix(ui): Added option to hide message sender and contents 2019-05-23 00:44:26 +02:00
Monsterovich
1bbe210c25 fix(ui): Improved notifications 2019-05-22 19:48:23 +02: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
17048c9cc4
feat(ui): add event icons for all statuses
Before we would alternate between status icon and online event icon.
Now each status has its own event version, so status doesn't appear to
alternate between online and the correct status.
2019-05-20 15:45:48 -07:00
Anthony Bilinski
c8b156b3a1
feat(settings): save friend list sorting mode 2019-05-17 10:33:47 -07:00
Anthony Bilinski
d55332ee0a
fix(activity): change last activity time from QDate to QDateTime
* Allows for strict sorting based on last activity in the future
2019-05-17 09:09:51 -07:00
Anthony Bilinski
5f40ed8d8c
fix(friendlist): don't update friend's last activity on every start
Fix #5035
2019-05-16 22:49:49 -07:00
Anthony Bilinski
b7bd7c6215
refactor(group): move peer tracking logic to Group from GroupChatForm
* increase signal granularity
* reduce state in GroupChatForm
* remove differentiation of "joined" and "online" peers, it doesn't exist in toxcore and can't be tracked reliably in qTox
* add system message when peer name changes, even if due to alias
* add system message when self name changes, for clarity
2019-05-15 12:00:44 -07:00
Anthony Bilinski
04f1ccda35
fix(group): treat empty peer names like empty friend names, by showing pk
Fix #5660
2019-05-15 11:52:27 -07:00
Anthony Bilinski
08839b7052
refactor(group): remove redundant updatePeer API 2019-05-15 00:13:55 -07:00
Anthony Bilinski
e9f8795197
fix(ui): show empty status as placeholder instead of as status 2019-05-07 14:34:08 -07:00
sudden6
5b908184fc
refactor(audio): move audio output to new IAudioSink interface 2019-04-25 21:30:19 +02:00
Anthony Bilinski
881aa3083a
fix(status): use enum as UI property instead of untranslated string
Translation of getStatusTitle introduced in 15d72a9610bc6e4e2e93a9c36ee6536b0aa13429, breaking asset path from string.
2019-04-24 10:35:17 -07:00
Anthony Bilinski
dd007877a9
refactor(status): move Status out of Widget 2019-04-24 10:35:15 -07:00
Diadlo
15d72a9610
fix: Call 'tr' in place, where text is accessible 2019-04-21 14:42:44 +03: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
df62463e27
fix(widget): fix freeze on showMainGui
Don't use copied uninitialized shadowing Core* in Widget
2019-04-13 20:04:24 -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
229ca307cf
refactor: remove unused functions detected by cppcheck
Note: Some more functions were detected, but this are the ones I'm
pretty sure we don't need.
2019-04-13 11:48:16 +02:00
Anthony Bilinski
9b6019390b
refactor(groups): create Group on group join, assert Group exists on callbacks 2019-04-12 09:13:14 -07: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
93a7fdfe03
refactor(core): cleanup Core public functions 2019-04-10 10:28:09 +02:00
TriKriSta
db962690bd style: edit styles for myltiple windows 2019-03-31 19:54:12 +03:00
Anthony Bilinski
e7f523bc9a
refactor(messages): don't use receipt 0 as unsent, simplify class state 2019-03-26 19:28:29 -07:00
sudden6
cd50376c2f
fix(notification): implement review comments 2019-03-24 11:58:10 +01:00
sudden6
66e2c01029
feat(notify): add desktop notifications using snorenotify
This commit adds very basic support for desktop notifications on friend
request, group invites, friend messages and group messages.
2019-03-24 11:58:09 +01:00
TriKriSta
d517c3a638 fix: initialization theme 2019-02-24 23:26:10 +02:00
TriKriSta
e146c11f0f feat: edit reload themes 2019-02-21 15:53:31 +02:00
TriKriSta
87d6883a0f style: add dark style 2019-02-19 16:21:44 +02:00
Anthony Bilinski
d2508e7eac
fix(groups): check for label in timer audio playing timer callback
If peer quits the group and they were just playing audio, their label will be removed but their timer will still be running. Unguarded update of label causes segfault.

Fix #5511
2019-01-29 11:20:15 -08: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
5289c99962
feat(core): add send message error handling
remove unused sendMessageResult signal
2019-01-27 04:52:36 -08:00
sudden6
08f368da43
fix(widget): always force show window on activate event
fixes #5459
2019-01-13 23:59:34 +01:00
Anthony Bilinski
51cf712a78
refactor(widget): call Settings::getInstance only once in Widget 2019-01-08 09:03:19 -08:00
Anthony Bilinski
8bf059bb2e
chore(ui): remove broken auto update
No need to keep it ifdef'd out in code, it can be re-added from git history instead once fixed.
2019-01-08 09:03:12 -08:00
Anthony Bilinski
6c9d7b59c1
feat(ui): add update notification enabled with -DUPDATE_CHECK
Fix #5335
2019-01-08 09:02:17 -08:00
sudden6
aa83edf759
Merge pull request #5469
Monsterovich (10):
      feat(core): print a chat log entry when a user joins/leaves the group chat
      fix(core): fixed Timestamps
      fix(core): simplify the code
      fix(core): fix formatting
      fix(core): this fixes displaying nickname refreshes in groups
      fix(core): support user aliases
      fix(core): update group peerLists on local changes
      fix(core): fix for users without nicknames
      fix(core): ignore mentioning users with empty nicknames
      fix(core): fixed syntax
2019-01-04 14:56:55 +01:00
Diadlo
3f5105d5c1
refactor: Connect ContentDialog::setStatusMessage to friend directly 2018-12-27 09:15:24 +03:00
Diadlo
2b3918b25e
refactor: Remove using of remove{Friend,Group} 2018-12-27 09:15:24 +03:00