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

100 Commits

Author SHA1 Message Date
Mick Sayson
7474c6d8ac
feat(messages): Multipacket message support
* Introduced ToxExt and CoreExt abstraction
    * Along with interfaces for mocking and unit testing
* Add "supportedExtensions" concept to Friend
* Dispatch messages to CoreExt instead of Core when friend supports
extended messages
    * Only split messages for core when extended messages are unavailable
* Offline message engine/History not altered. Currently only valid for
an existing session after extension negotiation has completed
2021-01-30 12:52:06 -08:00
sudden6
a90f0762d9
refactor(cmake): change folder structure
The new folder structure will be like this:

/<module>/CMakeLists.txt
/<module>/src/file.cpp
/<module>/include/<module>/file.h
/<module>/<subdir>/<...>
2020-05-11 16:45:52 +02:00
sudden6
9306e946f8
refactor: remove Core::getInstance() from ChatForm classes 2020-05-02 23:36:38 +02:00
Anthony Bilinski
70824729ff
chore(cleanup): don't use 0 as nullptr
Don't add Wzero-as-null-pointer-constant by default, since on older Qt
versions that we stil support and that our CI runs agains, Qt API themselves
cause warnings which lead to build errors all over the place.

Fix #6008
2020-03-21 23:20:03 -07:00
sudden6
ad139d67c2
fix: add missing type for Qt slot 2020-03-17 18:06:21 +01:00
Anthony Bilinski
f7d82a425d
Merge branch 'v1.17-dev' 2019-10-21 23:49:36 -07:00
jenli669
b4bc09345c
fix(loginScreen): make loginScreen return values comply with Qt standards
This commit makes LoginScreen return QDialog::Rejected (0) and
QDialog::Accepted (1) instead of C standard return values. This should be more
robust with regards to special cases in Qt implementation.

Fixes #5781
2019-10-18 16:24:53 -07:00
bodwok
c37a05f40c
fix(login): fix a crash when many dialogs are open 2019-09-10 23:57:55 +02:00
jenli669
31fec7488f
feat(proxy): provide commandline tools for proxy settings 2019-09-02 21:05:01 -07:00
jenli669
3e1e1f6087
feat(proxy): provide commandline tools for proxy settings 2019-08-29 13:43:27 +02:00
jenli669
00449937d4
refactor(profile): simplify Profile constructor
Simplifies Profile constructor by passing Settings instance by
reference during loadProfile and createNewProfile calls.
2019-08-09 22:48:14 +02:00
jenli669
8373e3abf3
refactor(nexus): replace deprecated QSignalMapper with lambda 2019-07-11 23:45:42 +02:00
jenli669
105f9ec401
refactor(widget): remove Widget::getInstance 2019-06-30 10:09:31 +02:00
sudden6
17083b50ba
Merge pull request #5721
jenli669 (1):
      fix(core): correctly relink ui/core when core is changed
2019-06-28 09:02:15 +02: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
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
jenli669
a7b4a09ccb
refactor(startup): handle autoLogin checkbox with signals 2019-06-25 10:18:20 +02:00
jenli669
ea2510157c
refactor(startup): decouple loginscreen from model 2019-06-25 10:17:07 +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
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
dd007877a9
refactor(status): move Status out of Widget 2019-04-24 10:35:15 -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
Anthony Bilinski
bef9d4b773
fix(settings): load personal settings before constructing core
Fix proxy settings not being passed to toxcore, bug present since
8574162949. Not present in any releases.
2019-03-30 02:40:51 -07:00
Anthony Bilinski
5289c99962
feat(core): add send message error handling
remove unused sendMessageResult signal
2019-01-27 04:52:36 -08:00
Monsterovich
01f79b0d08 fix(core): update group peerLists on local changes 2018-12-26 19:15:37 +02:00
sudden6
acc7058e65
refactor: remove another function from Nexus 2018-11-01 10:22:20 +01:00
sudden6
de773efec7
refactor: remove another function from Nexus 2018-10-31 01:59:22 +01:00
sudden6
6097c3f94f
refactor: remove Nexus::quit() and replace with qApp->quit()
They are doing the same.
2018-10-31 01:51:20 +01:00
sudden6
a3344a127f
refactor: remove unneeded busy waiting code 2018-10-31 01:47:45 +01: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
24e7c4efd4
refactor(core): format code 2018-07-05 17:10:26 +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
Anthony Bilinski
5dc4e6de81
chore(legal): update copyright date to 2018 for all source files 2018-04-25 17:33:38 -07:00
sudden6
d3d81bbdf3
feat: update to the new c-toxcore 0.2.0 conferences api
The old functions are disabled at compile time and should be removed
later.
2018-02-24 09:57:42 +01:00
Diadlo
e73dc10c7f
fix: Not quit on close if this setting is enabled
Fix #4949
2018-02-23 11:29:53 +03:00
sudden6
11f263ffc3
refactor(nexus): make loginscreen independent of nexus 2018-02-01 22:00:06 +01:00
Diadlo
9ac5f881c6
refactor: Rename signal and remove unused params 2017-11-25 01:16:10 +03:00
anthony.bilinski
5046fc9010 fix(logout): Synchronously call showLogin to avoid multiple deletion
Fixes #4201
2017-10-20 14:14:37 -07:00
sudden6
9c01eec268
Merge pull request #4607
anthony.bilinski (1):
      fix(receipts): Prevent double message send for received receipt
2017-09-17 23:19:24 +02:00
noavarice
d514b48ef6
refactor: register GroupInvite as meta-type 2017-09-17 19:54:06 +03:00
anthony.bilinski
e9d63397e1 fix(receipts): Prevent double message send for received receipt
Fixes #2726
Register for receipt handling only once, cache receipts that are received before message is writen to history and mark a message as sent once both its receipt has been received and it has been writen to history
2017-09-06 23:35:42 -07:00
Diadlo
65b1463933
refactor(core): Move setAvatar to profile from core 2017-05-24 19:43:47 +03:00
Diadlo
b126d21922
refactor(core): Merge friendAdded and friendshipChanged 2017-05-08 22:12:14 +03:00
Diadlo
49e9eb8de2
refactor(core): Move saving request to history to Profile 2017-05-08 22:12:14 +03:00
Zetok Zalbavar
80f5de31b3
style: reformat current C++ codebase using clang-format 2017-02-26 11:52:45 +00:00
tux3
c75ee8a661
fix: Various IPC event handling and related bugs on startup
Fixes #1926 : When an IPC event was processed locally, if the window was closed before the core could start, the event handler would be forever stuck in the background waiting for the core to start. We fix this by substituting QApplication::quit() by a Nexus::quit() function and a Nexus::isRunning() function, which gives us a condition for exiting blocking processEvents() loops. We cannot simply use QApplication::quit(), because this function has no effect before the start of the event loop.

The problem was further exacerbated by the Tox URI event handler being (incorrectly) blocking. The IPC owner would block in this event handler, and the sender of the event would give up waiting and process the event itself a second time, potentially triggering the first bug. We fix the event handlers accordingly to be (mostly) non-blocking.

Also fixes a related deadlock between ~Core and ~Profile in the case of an early exit
2017-02-17 17:18:52 +01:00
Diadlo
328d0b6ddf
fix(nexus): Add qRegisterMetaType call for ToxPk
Fixed warning message: QObject::connect: Cannot queue arguments of type
'ToxPk' (Make sure 'ToxPk' is registered using qRegisterMetaType().)
2017-01-04 06:46:17 +03:00
sudden6
0b2f22d521
refactor(toxid): improve checks for valid ToxIDs 2016-12-30 15:54:56 +01:00