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
This commit removes historykeeper and code only used by it.
BREAKING CHANGE:
qTox can't open old historykeeper chatlogs after this commit. Use
previous versions to migrate to the new database.
Revert needed, since otherwise there is no way to do automatic sorting
of includes.
Also reverted change to the docs, as leaving it would make incorrect
docs.
In case of conflicts, includes were sorted according to the coding
standards from #3839.
This reverts commit b4a9f04f92.
This reverts commit 5921122960.
There is a reason why magic length is not exposed via TES header –
knowing it is not needed. Client should check whether file is a TES with
a define that is provided in the public API.
sudden6 (3):
feat(database): use own public key as salt to encrypt the database
feat(database): make a backup before upgrading
refactor(database): reduce line length in some places
Makes changes to settings application wide transparent. The properties section is optional in theory, but comes in very handy, if we decide to access settings e.g. from within a script context.
Diadlo (12):
refactor(avform): Extracted functions with best mode search and combo box filling
refactor(avform): Replace `bestModeInds` on videoMode index and video height as quality name
refactor(avform): Separeted search of preferred index in function
fix(avform): Took default resolution from middle of list
feat(videomode): Added possible video shift
feat(cameradevice, avform): Added ability of screen selection
feat(avform, screenshotgrabber): Added custom screen region selection
style(corevideosource): Small style fixes
fix(videoframe): Added correct image copy
fix(avform): Added restoring selected region
feat(camerasource): Change default video mode to preferred
fix(directshow): Fixed problem with crosses initialization
BREAKING CHANGE: Current markdown syntax is unintuitive, and thus we have agreed on switching to @SkyzohKey's implementation. Replaces all instances of Markdown with Text Styling. Closes#3404.
As esecially the "Disabled" text is translated, the audio device will change from "disabled" to "default", just by changing the language.
In contrast to video devices, an audio device is either always available, or sound will be disabled. So "Disabled" is the correct term to use here.
The filter_audio API is not working for qTox/Tox and thus disabled by default via compiler switch. In current qTox UI, it is not configurable, even when this switch is enabled. According to issue #3194 the library is no longer maintained as well. I don't see any reason to keep it in qTox.
The gain can be set now in dB values, providing acceptable results for a wide range of setups.
note: also introduces const-correctness and some minor cleanup.
Fixes an issue where qtox refused to load profiles while using
the -p switch on the command line. This happened in cases where
there was no .ini file for the specified profile present.
sudden6 (12):
Revert "Revert changes from merge of #2092 pull request"
port groupinvitform to new ui
fix segfaults
adapt groupinviteform to existing conventions
Fix notification opening wrong form
notify on friendrequest and groupchat invite
fix layout of friendrequest form
fix segfault when logging out and in again
reject multiple friend requests from one person makes https://github.com/TheSpiritXIII/qTox/commit/
fix wrong text on button
fix friend request notification if friendrequestform is hidden
fix notification if friendrequest tab is visible, don't display friendrequests with html
The QStandardPaths generates paths with app name (qTox) subdirectory
for DataLocation and CacheLocation. No need to add '/tox'.
Both screenshots dir and log file are now in qTox dir in proper location on linux.
This can be a ~1s win on startup time with a HDD, now we load and cache the smileys in the background, blocking only if we try to use them while they are still loading
This commit has several touch ups that only effect the OS X clients.
`info.plist` and `qt.pro` are now configured to create an automatic
short version to help distinguish between clients clearly and include a
referenced file not put into the build when compiled.
`./img/icon/qtox_profile.icns’
`info.plist` also had it’s bundle version to be updated to the 1.2.2
tag and supported languages added and fixed referenced file.
The default save location has also been moved to comply with the Tox
Client Standard. (Previous location was ~/Library/Prefrences/tox )
A basic bash profile mover has also been included to show I did think
of that.
* Removed duplicate code of ipc event sending
* Removed duplicate code of profile loading
* Fixed bug where activating existing instance still started new instance of qtox asking to select a profile
* IPC messages are now profile-aware and are sent to instance that runs specified profile in -p flag or to ipc owner if -p is not specified.
If -p flag is specified ipc events will be send to instance which runs specified profile. If instance using that profile does not run - new qTox instance will be started. This works with password-protected profiles too - new instance will handle "uri" or "save" events after accepting user password.
qTox will automatically import the old history on startup.
This new database code is much more robust.
It is very resilient and will not corrupt or disappear after a crash or
power failure, unlike the old code.
The on-disk database format is also much more compact now.
The database sync option in the advanced settings has been removed,
we know run many database operations asynchronously so performance
should not be a problem anymore, but we always ensure resiliency
in case of abrupt termination, so there is no tradeoff anymore.