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

143 Commits

Author SHA1 Message Date
Zetok Zalbavar
06611d618e
Revert changes from merge of #2092 pull request
That pull request made qTox crash in a number of ways, with no quick fix
available.

Hopefully there will be a way to fix crash, so that this commit could be
reverted, and fix applied.
2015-08-30 21:28:53 +01:00
agilob
d6b176d955
Merge remote-tracking branch 'TheSpirit/requests'
merge awaiting friend requests, fix formatting conflict
2015-08-30 14:25:46 +01:00
TheSpiritXIII
2043908e15 Remove dialog for group invites 2015-08-21 10:32:00 -04:00
Zetok Zalbavar
2088c26028
Better wording for accepting / rejecting avatars 2015-07-28 11:11:58 +01:00
Jookia
7fab49d665 core: TOX_ERR_NEW_LOAD_BAD_FORMAT is non-fatal.
This fixes errors from save migrations between versions and architectures.
2015-07-12 23:58:40 +10:00
PKev
4682814442 fix the names in the history
fix #1943 #1787
2015-06-30 16:56:38 +03:00
tux3
645b1e5566
Fix raciness of encryption API
And make it saner by not having one global password that has to be set before encrypting/decrypting, which is as racy and poorly designed as it gets

Fixes #1917 's immediate symtoms, which some potential for other regressions due to the mess that is encrypted persistence currently
2015-06-27 21:14:35 +02:00
tux3
2ab55568f2
Make the video code a singleton, fix multithreading bugs
There can now only be one CameraSource running.

Video frames are decoded in their own thread, and then converted by users in the user's threads.
The CameraSource API is entirely thread-safe and controls the video decoding thread.

The video device only stays open as long as there are users subscribed to the CameraSource.

We use a dangerous combination of spinlocks and memory fences to keep things synchronized.
2015-06-26 18:34:48 +02:00
TheSpiritXIII
858b005567 Circles: Fix memory leaks and extraneous saving 2015-06-26 10:54:49 +02:00
TheSpiritXIII
c662c0aa92 Update activity on friendship, fix category friend removing (circles and activity) 2015-06-26 10:54:49 +02:00
TheSpiritXIII
ac2263b3e8 Save circle settings after each modification 2015-06-26 10:54:00 +02:00
Daniel Hrabovcak
e0b9e81938 Minor circle widget base class cleanup 2015-06-26 10:54:00 +02:00
tux3
aeb9a7f62f
Fix some warnings 2015-06-08 11:46:38 +02:00
tux3
7513725a3d
Fix wrong assert 2015-06-06 22:11:54 +02:00
tux3
89e9b18cf3
Better checks before cleanupCall 2015-06-06 21:57:09 +02:00
tux3
d76fb459cf
Fix #1817 2015-06-06 21:09:32 +02:00
tux3
adad71e565
Merge branch 'encrypted_settings' 2015-06-06 20:18:00 +02:00
tux3
13bea16292
Add encrypting profile settings serializer
We now use a binary serialized format to save space and allow clean encryption of the user settings.
All the settings can (and should) be edited from the GUI so there is no loss of functionnality.

It can still read the old .ini format, and will seamlessly upgrade to the new format.

Fixes #1810
2015-06-06 20:15:50 +02:00
tux3
6d8bcbb9cd
Workaround for #1817 2015-06-06 17:04:56 +02:00
Zetok Zalbavar
67e9aeec63
Fix incorrect copyright headers
The qTox Project is not associated with the Tox Project in any way, with the
exception of "qTox" using the Tox Projet's "toxcore" collection of libraries.
In particular, the Tox Projet does not own copyright over the qTox Project's
"qTox" collection of software, source code, and assets.
The qTox Project's assets are under the sole copyright of the qTox
contributors, and no partiular rights are granted to the Tox Project.
2015-06-06 14:51:28 +01:00
tux3
bb999456da
Remove some unused defines 2015-06-06 01:59:28 +02:00
tux3
20f254651d
Reorganize files 2015-06-06 01:44:47 +02:00
tux3
3656b1e5eb
Improve avatar caching reliability 2015-06-05 23:41:14 +02:00
tux3
0fd489fbba
Properly kill all calls in ~Core 2015-06-05 18:53:27 +02:00
tux3
1ded562d9d
Clean Settings interface 2015-06-05 16:24:47 +02:00
tux3
e5ddd9d0cf Consider empty encrypted history as nonexistent 2015-06-04 21:34:13 +02:00
tux3
2dbf2e54b1 Implement restarting toxcore 2015-06-04 21:34:13 +02:00
tux3
5f94f33117 Use profile password for all encryption 2015-06-04 21:34:13 +02:00
tux3
4e2983817f Fix crash in ~Core 2015-06-04 21:34:13 +02:00
tux3
42a7efb053 Implement the -p option 2015-06-04 21:34:13 +02:00
tux3
21db31c215 Implement profile deletion 2015-06-04 21:34:13 +02:00
tux3
f7546a731f Fix profile saving on exit 2015-06-04 21:34:13 +02:00
tux3
abf65a5060 Remove deprecated profile management functions 2015-06-04 21:34:12 +02:00
tux3
840fd7dc40 Cleanly create new profiles 2015-06-04 21:34:12 +02:00
tux3
032c561e62 Make Nexus own and start the LoginScreen
And start implementing some of the required methods to make Core, LoginScreen and Nexus use Profile
2015-06-04 21:34:12 +02:00
tux3
c180fa15de
Fix nullptr dereference on A/V timeout 2015-06-03 19:33:17 +02:00
tux3
d53b426750 Replace OpenCV with FFmpeg 2015-06-03 02:10:52 +02:00
tux3
b3ce364d5c
Merge branch 'pr1758' 2015-06-01 16:56:47 +02:00
PKEv
0791c64efd Correct_after_cpp_check
style and typos
2015-05-30 23:44:56 +03:00
tux3
6409b273a4
Re-apply toxcore tox_new compat patch 2015-05-29 17:29:25 +02:00
Ansa89
22d1ab34f9 Also call 'tox_add_tcp_relay()' 2015-05-29 14:54:26 +02:00
tux3
2db617bc6f
Recover if tox fails to start 2015-05-25 22:37:19 +02:00
Сухарик
fe7dc995d6 use toxcore error codes 2015-05-25 23:09:09 +03:00
tux3
c3e70d6c59 Revert "Updated for latest toxcore api"
This reverts commit 7c8334bca9.
2015-05-25 20:23:06 +02:00
Daniel Hrabovcak
051a88a7e8 For range loops 2015-05-25 12:38:52 -04:00
Daniel Hrabovcak
992e648f64 Fix compile issues 2015-05-25 12:32:34 -04:00
Daniel Hrabovcak
399f2c9fef Merge https://github.com/tux3/qTox 2015-05-25 12:20:05 -04:00
Daniel Hrabovcak
bd2f8b5db5 Add al delete to group leave 2015-05-25 12:19:56 -04:00
Daniel Hrabovcak
fb707fe1f1 Group audio not being reset 2015-05-25 11:58:54 -04:00
saneki
7c8334bca9 Updated for latest toxcore api 2015-05-25 08:08:47 -05:00
Zetok Zalbavar
1403ee970b
Improve error message when profile is alrady used
I.e. don't imply that profile belongs to same user, since it is possible
that multiple users are using qTox.
2015-05-25 09:39:47 +01:00
Zetok Zalbavar
227c061ea1
Code consistency fixes → 's/ToxID/ToxId/'
Since consistency in code is most important, 'ToxId' is used
for code, whereas 'Tox ID' anywhere outside of code.

Also fixed wrong comments in core.h:
* qTox gets only public key of a grouchat peer, not their
  Tox ID
* qTox tries to return full address (Tox ID) or public key
2015-05-23 20:15:41 +01:00
tux3
9fdf382d7b
Correctly send avatar hashs as file_idS 2015-05-19 12:34:38 +02:00
marcel
f96db5a761 replaced ToxID struct with ToxId class. 2015-05-17 22:55:50 +02:00
marcel
66dc368662 added isActiveProfile function and fixed a typo 2015-05-17 22:48:24 +02:00
marcel
2ffabb19ec Renamed function isMine to isActiveProfile.
As an user can have multiple profiles where each profile has its own
Tox ID the name isMine is not very accurate.
2015-05-17 22:26:56 +02:00
marcel
a41765a58d added documentation 2015-05-17 21:54:21 +02:00
marcel
08e6004361 added separate class for ToxId 2015-05-17 21:23:52 +02:00
tux3
1bdb84825d
Remove the unused struct DhtServer 2015-05-16 13:25:52 +02:00
tux3
15cc64069f
Fix #1634 2015-05-12 18:39:38 +02:00
tux3
76cbaf18f1
Fix incorrect copyright headers
The qTox Project is not associated with the Tox Project in any ways, with the exception of "qTox" using the Tox Projet's "toxcore" collection of libraries.
In particular, the Tox Projet does not own copyright over the qTox Project's "qTox" collection of software, source code, and assets.
The qTox Project's assets are under the sole copyright of the qTox contributors, and no partiular rights are granted to the Tox Project.
2015-05-12 04:12:53 +02:00
tux3
600401a606
Fix vol/mic toggle buttons
They were suffering from double-connection syndrom, and the way muting worked was now conflicting with how the output sound level setting works

Fixes #1442
2015-05-12 02:45:04 +02:00
tux3
4a40269698
Implement and enable the audio sliders
It was about time
2015-05-12 01:27:32 +02:00
tux3
7cb98b90c7
Faster file transfers (up to 160ms/s)
By reducing the maximum interval between two tox_iterate calls during file transfers to 10ms. This results in reasonnable amounts of extra CPU% used. If the only file transfers are avatars, CoreFile allows sleeping for up to 50ms. If there are currently no FT, up to 1000ms.

We now take the minimum sleeping interval asked by toxcore, toxav, and CoreFile
2015-05-11 20:41:19 +02:00
tux3
ef688f6097
Remove pointless or potentially sensitive log messages 2015-05-11 16:06:12 +02:00
sudden6
1506a9a30e Change log messages to fit new log format 2015-05-11 15:37:56 +02:00
tux3
2ff2414627
Log size of received avatar data 2015-05-10 00:56:20 +02:00
tux3
67e09de085
Save memory with lazy loading
Load the setting's cameria preview opengl context lazily and destroy it when done. Only preallocte Core's video buffer if we have any calls active, free up when all calls are done
2015-05-10 00:05:30 +02:00
tux3
a01e0db7ba
Fix some memory leaks and mismatches 2015-05-09 22:35:58 +02:00
tux3
bb5f2e066d
Fix crash on video calls lowered to audio calls
Toxcore would incorrectly report the call as a video call in the call settings, and then crash while trying to send a video frame in the audio call. We workaround that by using another API that correctly reports the type of the call
2015-05-09 22:35:15 +02:00
tux3
e79d40e356
Merge branch 'pr1446'
Conflicts:
	src/chatlog/chatlog.cpp
	src/chatlog/content/filetransferwidget.cpp
	src/core.cpp
	src/core/coreencryption.cpp
	src/toxdns.cpp
	src/widget/form/chatform.cpp
	src/widget/form/genericchatform.cpp
	src/widget/friendwidget.cpp
	src/widget/widget.cpp
2015-05-07 22:00:50 +02:00
tux3
66cb02d1c3
Fix qTox Android build 2015-04-27 17:59:44 +02:00
tux3
25329d3a57
Remove redundant QString ctor
Thanks to @Papierkorb
2015-04-27 03:16:52 +02:00
tux3
f0c01a4f64
Fix typo in error message
Thanks to @Selena-Gomez for finding this.
2015-04-27 02:11:50 +02:00
tux3
200af0fd49
Better error messages for friend requests 2015-04-25 22:07:40 +02:00
tux3
d962148dd0
Fix more save corruption bugs
askProfiles is a really dangerous function. Awful things happen when the user closes that message box. We now prevent it from being closed in more places
2015-04-25 21:33:15 +02:00
tux3
7eb9370c0b
Disable the GUI until a profile is active
There are small instants on startup and while profile switching during which no profile is loaded but the GUI could still receive events, e.g. between two modal windows. Disable the GUI to prevent that.
2015-04-25 21:05:29 +02:00
tux3
e682dada3b
Fix save corruption bug
Don't just let the user close the profile select box and continue with an empty value. We would create a new profile and save it back on top of the previous encrypted profile
2015-04-25 20:20:53 +02:00
tux3
e74e29e4fb
Cleanly cancel broken file transfers 2015-04-25 19:18:46 +02:00
tux3
cdb2bad7c3
Signal broken file transfers 2015-04-25 17:12:49 +02:00
tux3
c6e60c4c77
Remove some CoreFile debug output 2015-04-25 16:59:29 +02:00
tux3
bd5eebbc2e
Cache avatar sending, fix image file preview
- Add AvatarBroadcaster, in charge of making sure our friends have our avatar without spamming file transfers

- Fix file sending code not closing the file after transfer, which prevented file previews, and make the QFile a shared_ptr to fix the obvious memory leak

Some small additions to Core to support AvatarBroadcaster
2015-04-25 16:51:58 +02:00
tux3
9ece486e22
Prevent possible uninitialized read of status
For unhandled values of Status, we want to return, not continue with an uninitialized value.
2015-04-25 02:28:57 +02:00
tux3
0e65d150e3
Don't show call buttons in text-only groupchats
I'm not sure why there are text-only groupchats in the first place, but that's fixed.
2015-04-25 01:50:35 +02:00
tux3
9d3d17d05e
Avatar sending on top of file transfers 2015-04-25 01:26:52 +02:00
tux3
5662120c51
Show Tox ID instead of blank names 2015-04-24 21:34:24 +02:00
tux3
42d7a7bcef
Assert profile locks before writing
This fixes the potential edge case where a frozen then unfrozen qTox instance could have its locks delete by a new qTox instance.

We now check that we still own our locks, restoring them if we can, before saving
2015-04-24 21:05:19 +02:00
tux3
05b6f1985d
Allow to start multiple instances with -p
Starting a new instance with the -p option will force it to start a new instance with the given profile instead of bringing an eventual existing instance to the foreground

Two instances can not run with the same profiles, the profile locking code will ensure that. A user who likes to live dangerously could manually delete the lock to force two instances on the same profile, but such an hypothetical user would be asking for it.

If a qTox instance starts and becomes owner of the IPC shared memory on its first try, it considers itself the only running freshly-started instance, and deletes any possibly stale lock before starting up. This should be fine in the vast majority of cases, but if an existing qTox instance freezes for a long enough time to lose ownership of the IPC and a new instance is started without first killing the frozen one, the frozen instance's lock will be deleted as stale by the new one. If the frozen instance subsequentely unfreezes, it will be running on a profile for which it doesn't have a lock, which could cause trouble. This is an intentionaly allowed edge case, the alternative being a stale lock staying forever until removed manually. A potential solution not yet implemented would be to check that the lock is still actually present before attempting any write.
2015-04-24 19:43:39 +02:00
tux3
bbf75aefb9
Profile locking 2015-04-24 18:53:19 +02:00
tux3
13d98da1bc
Correctly separate received actions from messages 2015-04-24 15:57:01 +02:00
Zetok Zalbavar
92f3b6a20f Code style improvements 2015-04-24 15:43:57 +02:00
tux3
9dedd22bb2
Port file transfers to the new API
Parallel, extremely large, and other edge case transfers have not been tested, but the common path should work well.
2015-04-24 15:31:30 +02:00
tux3
e4859efe18
Refactor Core
Refactor Core's file transfer callbacks into their CoreFile class and files

Move all core*.{h|cpp} into a core/ folder
2015-04-24 02:32:09 +02:00