With the removal of RTTI such a cast can cause compile failures as not
all compilers automatically convert dynamic casts to static casts at
compile time.
Fixes#3801
Revert commit 191fc15b9f to use closeEvent()
but without QEvent::ignore() which blocked logout on various Linux desktops,
and without redundant hide(). Previous fix with hideEvent() produced
regressions because hide() is used in various places, which produced closing
behavior.
Since qApp->setQuitOnLastWindowClosed(false) is used, and
Qt::WA_DeleteOnClose is *NOT* used, default closeEvent() handling is enough
for implementing close-to-systray feature.
Improves fix for #1485 and closes#3699
Change closeEvent() to hideEvent() for handling main window closing.
Close event is no longer ignored, which prevented logging out from
various Linux desktop environments.
Closes#1485
Fixed#3660. Removed using of GUI class in Profile Importer. Because, it
cannot be used before Nexus instance will be created. As result, it
provide crash in some cases.
There have been numerous issues about it from confused users,
e.g. #2698, #2870, #3638. Clearly tooltip alone is not enough.
Could have been done long time ago in #2818, if not for naive belief
that tooltip will suffice.
This commit fixes missing scaling factors with desktop video to allow
desktop video under HiDPI scaling to work as intended. Also removes a
few obsolete lines of scaling that that was required for older Qt
versions.
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.
* 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
Colomban Wendling (10):
fix(capslockindicator): fix altering the line edit height
fix(capslock_x11): properly release the X display handle
refactor(capslockindicator): encapsulate event handling
fix(capslockindicator): also update indicator when the app gets focus
refactor(capslockindicator): expose as a QAction to simplify API
refactor(capslockindicator): use a single shared event handler
refactor(capslockindicator): avoid overhead on OSX
refactor: replace CapsLockIndicator with new PasswordEdit widget
fix(passwordfields): use PasswordEdit widget for all password fields
refactor(passwordedit): don't add the caps indicator at all if disabled
Introduce a new PasswordEdit widget extending QLineEdit that takes care
of all the specifics of a QLineEntry when it is used to input a
password, including echo mode and caps lock indicator.
Also optimize the event handling to only listen to global events when
it is actually needed, e.g. when a password field is actually visible.
Optimize the implementation by using a single shared event handler,
managing the caps lock state check and propagating it appropriately to
all instances at once.
This allows to have an up-to-date indicator when the caps lock state
changed outside of the application and the user comes back to it, even
if it doesn't trigger a Show event (e.g. the window was visible all the
time).
* The initial status icon to set on GTK didn't exist (anymore?).
* GTK resources aren't compatible with Qt's, so the resource lookup
couldn't work anyway, even if it did exist.
* The caller calls SystemTryIcon::setIcon() right after instancing it
anyway, so there's no need for an initial icon.
This fixes a runtime critical warning from GTK as we tried to unref a
NULL icon, which is invalid.
Fixes#3154.
Also simplify the memory management by using the C++ allocator and by
using the bytes directly as passed to the free callback instead of
passing it again as user data.
Fix altering the Line Edit widget height when the indicator is on (e.g.
when caps lock is active).
To avoid messing with the style and all the complex issues that arise
from it, use an action to display the icon inside the line edit, as it
is a built-in feature that work just fine.
Fixes#3379.
Do not provide more than one entry in the settings for the same actual
mode, even if it was selected for different expected resolutions.
For example, do not list 640x480 twice for both 480p and 360p if the
device doesn't have a better 360p mode, and simply skip the 360p entry.
Diadlo (10):
feat(capslock): Added caps lock checker
feat(loginform): Added caps lock indicator to newPass
feat(loginscreen): Created new CapsLockIndicator class
feat(capslockindicator): Added tooltip
fix(platform): Added checkCapsLock OSX implementation
docs(INSTALL.md): Added libX11 in dependencies
refactor(loginscreen, capslockindicator): Caps Lock indicator class was made independent
fix(capslockindicator): Tooltip color was changed. Tooltip translation was added
style(capslockindicator): Fixed code style
fix(capslockindicator): Fix position of capslock indicator
PafXUS (4):
fix(widget): delete icon in destructor
fix(systemtrayicon): delete qtIcon in destructor
fix(profileform): set parent for validator
fix(friendwidget): check pointer before using it
Index the filtered modes we show to the user when selecting from the
combobox, not the full list of modes actually supported by the device.
Fixes#1033.
Alexander Zhdanov (3):
feat(genericchatform): add "Quote selected text" feature to chat window
docs(user_manual_en.md): add some documentation about quotes
docs(user_manual_en.md): fix documentation about quotes