* rename file avsettings.ui -> avform.ui, introducing seamless switching between UI/Code
* switch to "private multi-inheritance" pattern, which has several advantages
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
fix chat area's inner stylesheet
note: the base font is never a bold font (respects html tags: e.g. <b>bold text</b>)
fix block colors:
* action -> blue
* alert -> red
* quote -> green
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.
Setting "currentFont" fires a "currentFontChanged" signal, causing the wrong font pixel-size. After changing the order, the values still overwrite the font settings - yet with the correct values. Probably all signals should be blocked in c'tor during initialization of the settings widget(s) to avoid overwriting any settings.
Call buttons would be enabled but non-functional if you were looking at a friend who was offline. We now check if the friend is offline and disable the call buttons if so.
Fixes#2480
The GUI was deleting itself on logout, but was doing while deep inside the middle of GUI code, resulting in a series of use-after-free on the return path. We now freeze the GUI and logout asynchronously in a more suitable call stack.
Importing a profile, saving a QR code image or setting an auto-accept directory using Nautilus as the default file manager, which many users use, was causing a hang in Qt's method. Setting Qt to use it's own file manager in this circumstance fixes the issue. Closes#3436, closes#3443.
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.
API:
* open default in/out device, when device name is empty
* move privatized code
* fix unsigned/signed conversion warnings
UI (settings):
* refactor: select audio devices by combobox index
Add setFocus() call to make password input focus work after user
clicks Load button (hence losing focus) with invalid password.
Without this patch, focus only works when using Enter key to login.
QVector<T>::removeOne() was added in Qt 5.4, and this method usage
broke build for Debian 8 whitch has Qt 5.3.2.
Add alternative implementation and comment for the future to use
removeOne() when this becomes possible.
Closes#3416