-
Notifications
You must be signed in to change notification settings - Fork 37.8k
qt: Set AA_EnableHighDpiScaling attribute early #16254
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
qt: Set AA_EnableHighDpiScaling attribute early #16254
Conversation
Qt docs: This attribute must be set before QGuiApplication is constructed.
7b73b78
to
099e4b9
Compare
Done. |
Thanks for fixing this. ACK 099e4b9 |
Is this for backport? @jonasschnelli |
Nice! utACK 099e4b9 It's def. a backport. |
@MarcoFalke you mean on the lower right? @hebasto can you run |
|
Gitian builds for commit 9c95515 (master):
Gitian builds for commit 4460284 (master and this pull):
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
ACK 099e4b9. Did some testing on Bionic
and Windows 10
(using VirtualBox). I couldn't see any obvious visual difference, but given Marco's screens above, this change is obviously better. I also checked that there wasn't any sort of regression on macOS.
master
on Bionic using Qt 5.12.4
:
This PR on Bionic using Qt 5.12.4
:
master on Windows 10 using depends:
This PR on Windows 10 using depends:
This PR on macOS 10.14.5 using Qt 5.12.3:
Confirmed that the below warning is no longer shown when running on Bionic
:
Attribute Qt::AA_EnableHighDpiScaling must be set before QCoreApplication is created.
a2aabfb Use qInfo() if no error occurs (Hennadii Stepanov) Pull request description: [Warning and Debugging Messages](https://doc.qt.io/qt-5/debug.html#warning-and-debugging-messages): > - `qInfo()` is used for informational messages. > - `qWarning()` is used to report warnings and recoverable errors in your application. > > If the `QT_FATAL_WARNINGS` environment variable is set, `qWarning()` exits after printing the warning message. This makes it easy to obtain a backtrace in the debugger. [`qWarning()`](https://doc.qt.io/qt-5/qtglobal.html#qWarning): > Calls the message handler with the warning message message... This function does nothing if `QT_NO_WARNING_OUTPUT` was defined during compilation; it exits if at the nth warning corresponding to the counter in environment variable `QT_FATAL_WARNINGS`. This PR allows more productive debugging using the environment variable `QT_FATAL_WARNINGS`. Examples: - #16118 (comment) - #16254 (comment) The behavior, when option `-debug=qt` is set/unset, remains unchanged. ACKs for commit a2aabf: promag: ACK a2aabfb, I also have this change locally. Empact: ACK a2aabfb laanwj: ACK a2aabfb fanquake: ACK a2aabfb. Tree-SHA512: b4df300c9c00a1705b0d3a10227e3deaac19a98b0a898bb60d5a88872cf450fb131eba150d9dd6c29e021566ee04b3b86b7d486bbe28bd894743c128d2309155
099e4b9 Set AA_EnableHighDpiScaling attribute early (Hennadii Stepanov) Pull request description: Running `bitcoin-qt` compiled against Qt 5.12.4 causes a warning: ``` hebasto@bionic-qt:~/bitcoin$ src/qt/bitcoin-qt Attribute Qt::AA_EnableHighDpiScaling must be set before QCoreApplication is created. ``` This PR fixes this issue. From Qt docs: - [Qt::AA_EnableHighDpiScaling](https://doc.qt.io/qt-5/qt.html#ApplicationAttribute-enum): > Enables high-DPI scaling in Qt on supported platforms (see also High DPI Displays). _Supported platforms are X11, Windows and Android._ Enabling makes Qt scale the main (device independent) coordinate system according to display scale factors provided by the operating system. This corresponds to setting the `QT_AUTO_SCREEN_SCALE_FACTOR` environment variable to 1. This attribute must be set before `QGuiApplication` is constructed. This value was added in Qt 5.6. - [QCoreApplication::setAttribute()](https://doc.qt.io/qt-5/qcoreapplication.html#setAttribute) ACKs for commit 099e4b: MarcoFalke: ACK 099e4b9 jonasschnelli: utACK 099e4b9 fanquake: ACK 099e4b9. Did some testing on `Bionic` and `Windows 10` (using VirtualBox). I couldn't see any obvious visual difference, but given Marco's screens above, this change is obviously better. I also checked that there wasn't any sort of regression on macOS. Tree-SHA512: 1965a427ee14ffb3871bac317685032406cf02d1fa2b2dc11c8b643bfe4ba09195674d149d1e41752f14c0d000446b35e142f3ce60d987ba97082fd7ee39a094
Qt docs: This attribute must be set before QGuiApplication is constructed. Github-Pull: bitcoin#16254 Rebased-From: 099e4b9
Hmm, that's odd. I was testing on fedora 30 gnome and the issue was fixed there. |
Gitian builds for commit 2cbcc55 (master):
Gitian builds for commit 6969aa8 (master and this pull):
|
It's glitchy... sometimes it works. Especially if I pass in |
Being backported in 16035. |
Qt docs: This attribute must be set before QGuiApplication is constructed. Github-Pull: bitcoin#16254 Rebased-From: 099e4b9
Qt docs: This attribute must be set before QGuiApplication is constructed. Github-Pull: bitcoin#16254 Rebased-From: 099e4b9
Qt docs: This attribute must be set before QGuiApplication is constructed. Github-Pull: bitcoin#16254 Rebased-From: 099e4b9
Qt docs: This attribute must be set before QGuiApplication is constructed. Github-Pull: bitcoin#16254 Rebased-From: 099e4b9
Qt docs: This attribute must be set before QGuiApplication is constructed. Github-Pull: bitcoin#16254 Rebased-From: 099e4b9
099e4b9 Set AA_EnableHighDpiScaling attribute early (Hennadii Stepanov) Pull request description: Running `bitcoin-qt` compiled against Qt 5.12.4 causes a warning: ``` hebasto@bionic-qt:~/bitcoin$ src/qt/bitcoin-qt Attribute Qt::AA_EnableHighDpiScaling must be set before QCoreApplication is created. ``` This PR fixes this issue. From Qt docs: - [Qt::AA_EnableHighDpiScaling](https://doc.qt.io/qt-5/qt.html#ApplicationAttribute-enum): > Enables high-DPI scaling in Qt on supported platforms (see also High DPI Displays). _Supported platforms are X11, Windows and Android._ Enabling makes Qt scale the main (device independent) coordinate system according to display scale factors provided by the operating system. This corresponds to setting the `QT_AUTO_SCREEN_SCALE_FACTOR` environment variable to 1. This attribute must be set before `QGuiApplication` is constructed. This value was added in Qt 5.6. - [QCoreApplication::setAttribute()](https://doc.qt.io/qt-5/qcoreapplication.html#setAttribute) ACKs for commit 099e4b: MarcoFalke: ACK 099e4b9 jonasschnelli: utACK 099e4b9 fanquake: ACK 099e4b9. Did some testing on `Bionic` and `Windows 10` (using VirtualBox). I couldn't see any obvious visual difference, but given Marco's screens above, this change is obviously better. I also checked that there wasn't any sort of regression on macOS. Tree-SHA512: 1965a427ee14ffb3871bac317685032406cf02d1fa2b2dc11c8b643bfe4ba09195674d149d1e41752f14c0d000446b35e142f3ce60d987ba97082fd7ee39a094
Backport bitcoin#16254 and remove hires theme
099e4b9 Set AA_EnableHighDpiScaling attribute early (Hennadii Stepanov) Pull request description: Running `bitcoin-qt` compiled against Qt 5.12.4 causes a warning: ``` hebasto@bionic-qt:~/bitcoin$ src/qt/bitcoin-qt Attribute Qt::AA_EnableHighDpiScaling must be set before QCoreApplication is created. ``` This PR fixes this issue. From Qt docs: - [Qt::AA_EnableHighDpiScaling](https://doc.qt.io/qt-5/qt.html#ApplicationAttribute-enum): > Enables high-DPI scaling in Qt on supported platforms (see also High DPI Displays). _Supported platforms are X11, Windows and Android._ Enabling makes Qt scale the main (device independent) coordinate system according to display scale factors provided by the operating system. This corresponds to setting the `QT_AUTO_SCREEN_SCALE_FACTOR` environment variable to 1. This attribute must be set before `QGuiApplication` is constructed. This value was added in Qt 5.6. - [QCoreApplication::setAttribute()](https://doc.qt.io/qt-5/qcoreapplication.html#setAttribute) ACKs for commit 099e4b: MarcoFalke: ACK 099e4b9 jonasschnelli: utACK 099e4b9 fanquake: ACK 099e4b9. Did some testing on `Bionic` and `Windows 10` (using VirtualBox). I couldn't see any obvious visual difference, but given Marco's screens above, this change is obviously better. I also checked that there wasn't any sort of regression on macOS. Tree-SHA512: 1965a427ee14ffb3871bac317685032406cf02d1fa2b2dc11c8b643bfe4ba09195674d149d1e41752f14c0d000446b35e142f3ce60d987ba97082fd7ee39a094
Summary: ``` Enables high-DPI scaling in Qt on supported platforms (see also High DPI Displays). Supported platforms are X11, Windows and Android. Enabling makes Qt scale the main (device independent) coordinate system according to display scale factors provided by the operating system. This corresponds to setting the QT_AUTO_SCREEN_SCALE_FACTOR environment variable to 1. This attribute must be set before QGuiApplication is constructed. This value was added in Qt 5.6. ``` Backport of core [[bitcoin/bitcoin#16254 | PR16254]]. Fixes #378 Test Plan: ninja check-bitcoin-qt Run bitcoin-qt with Qt > 5.12.4 and check the warning is gone. Reviewers: #bitcoin_abc, rex4539 Reviewed By: rex4539 Subscribers: rex4539 Differential Revision: https://reviews.bitcoinabc.org/D5744
099e4b9 Set AA_EnableHighDpiScaling attribute early (Hennadii Stepanov) Pull request description: Running `bitcoin-qt` compiled against Qt 5.12.4 causes a warning: ``` hebasto@bionic-qt:~/bitcoin$ src/qt/bitcoin-qt Attribute Qt::AA_EnableHighDpiScaling must be set before QCoreApplication is created. ``` This PR fixes this issue. From Qt docs: - [Qt::AA_EnableHighDpiScaling](https://doc.qt.io/qt-5/qt.html#ApplicationAttribute-enum): > Enables high-DPI scaling in Qt on supported platforms (see also High DPI Displays). _Supported platforms are X11, Windows and Android._ Enabling makes Qt scale the main (device independent) coordinate system according to display scale factors provided by the operating system. This corresponds to setting the `QT_AUTO_SCREEN_SCALE_FACTOR` environment variable to 1. This attribute must be set before `QGuiApplication` is constructed. This value was added in Qt 5.6. - [QCoreApplication::setAttribute()](https://doc.qt.io/qt-5/qcoreapplication.html#setAttribute) ACKs for commit 099e4b: MarcoFalke: ACK 099e4b9 jonasschnelli: utACK 099e4b9 fanquake: ACK 099e4b9. Did some testing on `Bionic` and `Windows 10` (using VirtualBox). I couldn't see any obvious visual difference, but given Marco's screens above, this change is obviously better. I also checked that there wasn't any sort of regression on macOS. Tree-SHA512: 1965a427ee14ffb3871bac317685032406cf02d1fa2b2dc11c8b643bfe4ba09195674d149d1e41752f14c0d000446b35e142f3ce60d987ba97082fd7ee39a094 Signed-off-by: cevap <dev@i2pmail.org>
099e4b9 Set AA_EnableHighDpiScaling attribute early (Hennadii Stepanov) Pull request description: Running `bitcoin-qt` compiled against Qt 5.12.4 causes a warning: ``` hebasto@bionic-qt:~/bitcoin$ src/qt/bitcoin-qt Attribute Qt::AA_EnableHighDpiScaling must be set before QCoreApplication is created. ``` This PR fixes this issue. From Qt docs: - [Qt::AA_EnableHighDpiScaling](https://doc.qt.io/qt-5/qt.html#ApplicationAttribute-enum): > Enables high-DPI scaling in Qt on supported platforms (see also High DPI Displays). _Supported platforms are X11, Windows and Android._ Enabling makes Qt scale the main (device independent) coordinate system according to display scale factors provided by the operating system. This corresponds to setting the `QT_AUTO_SCREEN_SCALE_FACTOR` environment variable to 1. This attribute must be set before `QGuiApplication` is constructed. This value was added in Qt 5.6. - [QCoreApplication::setAttribute()](https://doc.qt.io/qt-5/qcoreapplication.html#setAttribute) ACKs for commit 099e4b: MarcoFalke: ACK 099e4b9 jonasschnelli: utACK 099e4b9 fanquake: ACK 099e4b9. Did some testing on `Bionic` and `Windows 10` (using VirtualBox). I couldn't see any obvious visual difference, but given Marco's screens above, this change is obviously better. I also checked that there wasn't any sort of regression on macOS. Tree-SHA512: 1965a427ee14ffb3871bac317685032406cf02d1fa2b2dc11c8b643bfe4ba09195674d149d1e41752f14c0d000446b35e142f3ce60d987ba97082fd7ee39a094 Signed-off-by: cevap <dev@i2pmail.org>
a2aabfb Use qInfo() if no error occurs (Hennadii Stepanov) Pull request description: [Warning and Debugging Messages](https://doc.qt.io/qt-5/debug.html#warning-and-debugging-messages): > - `qInfo()` is used for informational messages. > - `qWarning()` is used to report warnings and recoverable errors in your application. > > If the `QT_FATAL_WARNINGS` environment variable is set, `qWarning()` exits after printing the warning message. This makes it easy to obtain a backtrace in the debugger. [`qWarning()`](https://doc.qt.io/qt-5/qtglobal.html#qWarning): > Calls the message handler with the warning message message... This function does nothing if `QT_NO_WARNING_OUTPUT` was defined during compilation; it exits if at the nth warning corresponding to the counter in environment variable `QT_FATAL_WARNINGS`. This PR allows more productive debugging using the environment variable `QT_FATAL_WARNINGS`. Examples: - bitcoin#16118 (comment) - bitcoin#16254 (comment) The behavior, when option `-debug=qt` is set/unset, remains unchanged. ACKs for commit a2aabf: promag: ACK a2aabfb, I also have this change locally. Empact: ACK bitcoin@a2aabfb laanwj: ACK a2aabfb fanquake: ACK a2aabfb. Tree-SHA512: b4df300c9c00a1705b0d3a10227e3deaac19a98b0a898bb60d5a88872cf450fb131eba150d9dd6c29e021566ee04b3b86b7d486bbe28bd894743c128d2309155
a2aabfb Use qInfo() if no error occurs (Hennadii Stepanov) Pull request description: [Warning and Debugging Messages](https://doc.qt.io/qt-5/debug.html#warning-and-debugging-messages): > - `qInfo()` is used for informational messages. > - `qWarning()` is used to report warnings and recoverable errors in your application. > > If the `QT_FATAL_WARNINGS` environment variable is set, `qWarning()` exits after printing the warning message. This makes it easy to obtain a backtrace in the debugger. [`qWarning()`](https://doc.qt.io/qt-5/qtglobal.html#qWarning): > Calls the message handler with the warning message message... This function does nothing if `QT_NO_WARNING_OUTPUT` was defined during compilation; it exits if at the nth warning corresponding to the counter in environment variable `QT_FATAL_WARNINGS`. This PR allows more productive debugging using the environment variable `QT_FATAL_WARNINGS`. Examples: - bitcoin#16118 (comment) - bitcoin#16254 (comment) The behavior, when option `-debug=qt` is set/unset, remains unchanged. ACKs for commit a2aabf: promag: ACK a2aabfb, I also have this change locally. Empact: ACK bitcoin@a2aabfb laanwj: ACK a2aabfb fanquake: ACK a2aabfb. Tree-SHA512: b4df300c9c00a1705b0d3a10227e3deaac19a98b0a898bb60d5a88872cf450fb131eba150d9dd6c29e021566ee04b3b86b7d486bbe28bd894743c128d2309155
a2aabfb Use qInfo() if no error occurs (Hennadii Stepanov) Pull request description: [Warning and Debugging Messages](https://doc.qt.io/qt-5/debug.html#warning-and-debugging-messages): > - `qInfo()` is used for informational messages. > - `qWarning()` is used to report warnings and recoverable errors in your application. > > If the `QT_FATAL_WARNINGS` environment variable is set, `qWarning()` exits after printing the warning message. This makes it easy to obtain a backtrace in the debugger. [`qWarning()`](https://doc.qt.io/qt-5/qtglobal.html#qWarning): > Calls the message handler with the warning message message... This function does nothing if `QT_NO_WARNING_OUTPUT` was defined during compilation; it exits if at the nth warning corresponding to the counter in environment variable `QT_FATAL_WARNINGS`. This PR allows more productive debugging using the environment variable `QT_FATAL_WARNINGS`. Examples: - bitcoin#16118 (comment) - bitcoin#16254 (comment) The behavior, when option `-debug=qt` is set/unset, remains unchanged. ACKs for commit a2aabf: promag: ACK a2aabfb, I also have this change locally. Empact: ACK bitcoin@a2aabfb laanwj: ACK a2aabfb fanquake: ACK a2aabfb. Tree-SHA512: b4df300c9c00a1705b0d3a10227e3deaac19a98b0a898bb60d5a88872cf450fb131eba150d9dd6c29e021566ee04b3b86b7d486bbe28bd894743c128d2309155
a2aabfb Use qInfo() if no error occurs (Hennadii Stepanov) Pull request description: [Warning and Debugging Messages](https://doc.qt.io/qt-5/debug.html#warning-and-debugging-messages): > - `qInfo()` is used for informational messages. > - `qWarning()` is used to report warnings and recoverable errors in your application. > > If the `QT_FATAL_WARNINGS` environment variable is set, `qWarning()` exits after printing the warning message. This makes it easy to obtain a backtrace in the debugger. [`qWarning()`](https://doc.qt.io/qt-5/qtglobal.html#qWarning): > Calls the message handler with the warning message message... This function does nothing if `QT_NO_WARNING_OUTPUT` was defined during compilation; it exits if at the nth warning corresponding to the counter in environment variable `QT_FATAL_WARNINGS`. This PR allows more productive debugging using the environment variable `QT_FATAL_WARNINGS`. Examples: - bitcoin#16118 (comment) - bitcoin#16254 (comment) The behavior, when option `-debug=qt` is set/unset, remains unchanged. ACKs for commit a2aabf: promag: ACK a2aabfb, I also have this change locally. Empact: ACK bitcoin@a2aabfb laanwj: ACK a2aabfb fanquake: ACK a2aabfb. Tree-SHA512: b4df300c9c00a1705b0d3a10227e3deaac19a98b0a898bb60d5a88872cf450fb131eba150d9dd6c29e021566ee04b3b86b7d486bbe28bd894743c128d2309155
a2aabfb Use qInfo() if no error occurs (Hennadii Stepanov) Pull request description: [Warning and Debugging Messages](https://doc.qt.io/qt-5/debug.html#warning-and-debugging-messages): > - `qInfo()` is used for informational messages. > - `qWarning()` is used to report warnings and recoverable errors in your application. > > If the `QT_FATAL_WARNINGS` environment variable is set, `qWarning()` exits after printing the warning message. This makes it easy to obtain a backtrace in the debugger. [`qWarning()`](https://doc.qt.io/qt-5/qtglobal.html#qWarning): > Calls the message handler with the warning message message... This function does nothing if `QT_NO_WARNING_OUTPUT` was defined during compilation; it exits if at the nth warning corresponding to the counter in environment variable `QT_FATAL_WARNINGS`. This PR allows more productive debugging using the environment variable `QT_FATAL_WARNINGS`. Examples: - bitcoin#16118 (comment) - bitcoin#16254 (comment) The behavior, when option `-debug=qt` is set/unset, remains unchanged. ACKs for commit a2aabf: promag: ACK a2aabfb, I also have this change locally. Empact: ACK bitcoin@a2aabfb laanwj: ACK a2aabfb fanquake: ACK a2aabfb. Tree-SHA512: b4df300c9c00a1705b0d3a10227e3deaac19a98b0a898bb60d5a88872cf450fb131eba150d9dd6c29e021566ee04b3b86b7d486bbe28bd894743c128d2309155
a2aabfb Use qInfo() if no error occurs (Hennadii Stepanov) Pull request description: [Warning and Debugging Messages](https://doc.qt.io/qt-5/debug.html#warning-and-debugging-messages): > - `qInfo()` is used for informational messages. > - `qWarning()` is used to report warnings and recoverable errors in your application. > > If the `QT_FATAL_WARNINGS` environment variable is set, `qWarning()` exits after printing the warning message. This makes it easy to obtain a backtrace in the debugger. [`qWarning()`](https://doc.qt.io/qt-5/qtglobal.html#qWarning): > Calls the message handler with the warning message message... This function does nothing if `QT_NO_WARNING_OUTPUT` was defined during compilation; it exits if at the nth warning corresponding to the counter in environment variable `QT_FATAL_WARNINGS`. This PR allows more productive debugging using the environment variable `QT_FATAL_WARNINGS`. Examples: - bitcoin#16118 (comment) - bitcoin#16254 (comment) The behavior, when option `-debug=qt` is set/unset, remains unchanged. ACKs for commit a2aabf: promag: ACK a2aabfb, I also have this change locally. Empact: ACK bitcoin@a2aabfb laanwj: ACK a2aabfb fanquake: ACK a2aabfb. Tree-SHA512: b4df300c9c00a1705b0d3a10227e3deaac19a98b0a898bb60d5a88872cf450fb131eba150d9dd6c29e021566ee04b3b86b7d486bbe28bd894743c128d2309155
a2aabfb Use qInfo() if no error occurs (Hennadii Stepanov) Pull request description: [Warning and Debugging Messages](https://doc.qt.io/qt-5/debug.html#warning-and-debugging-messages): > - `qInfo()` is used for informational messages. > - `qWarning()` is used to report warnings and recoverable errors in your application. > > If the `QT_FATAL_WARNINGS` environment variable is set, `qWarning()` exits after printing the warning message. This makes it easy to obtain a backtrace in the debugger. [`qWarning()`](https://doc.qt.io/qt-5/qtglobal.html#qWarning): > Calls the message handler with the warning message message... This function does nothing if `QT_NO_WARNING_OUTPUT` was defined during compilation; it exits if at the nth warning corresponding to the counter in environment variable `QT_FATAL_WARNINGS`. This PR allows more productive debugging using the environment variable `QT_FATAL_WARNINGS`. Examples: - bitcoin#16118 (comment) - bitcoin#16254 (comment) The behavior, when option `-debug=qt` is set/unset, remains unchanged. ACKs for commit a2aabf: promag: ACK a2aabfb, I also have this change locally. Empact: ACK bitcoin@a2aabfb laanwj: ACK a2aabfb fanquake: ACK a2aabfb. Tree-SHA512: b4df300c9c00a1705b0d3a10227e3deaac19a98b0a898bb60d5a88872cf450fb131eba150d9dd6c29e021566ee04b3b86b7d486bbe28bd894743c128d2309155
Running
bitcoin-qt
compiled against Qt 5.12.4 causes a warning:This PR fixes this issue.
From Qt docs: