- TLDR: we were scaling twice, resulting in ginourmous pixel values The long story: - since Qt treats the various scale factors in a multiplicative way (see https://www.qt.io/blog/2016/01/26/high-dpi-support-in-qt-5-6 for explanation) and there's no way to get the screen's baseline scale factor programatically, we also have to export `QT_SCREEN_SCALE_FACTORS` to something that's not equal to `0` or `1` to force the monitor scale factor to `100%` and then compensate for it when exporting our own scale value using `QT_SCALE_FACTOR` - make the UI slider values go in `25%` steps, allowing for more fine grained control; with `100%` we fallback to the Qt's native handling of highdpi - raised the maximum to `300%` since on highres displays, one wouldn't be able to go over the implicit maximum of `200%` (due to the internal scaling being 2x) - scale our main window's minimum width/height so that we don't overflow the monitor's available space - modernize the `ConfirmAppRestartModal` to use `StatusDialog` - use the new `Utils.restartApplication()` when changing the UI language as well - remove some dead code In the (very) long term, we should take a different approach of scaling our app independently of Qt, just taking the monitor `Screen.devicePixelRatio` into account, similar to what other apps like Telegram do Fixes #13484 |
||
---|---|---|
.. | ||
.docker | ||
doc | ||
lib | ||
pch | ||
test | ||
.gitignore | ||
.gitmodules | ||
CHANGELOG.md | ||
CMakeLists.txt | ||
DOtherSide.pc.cmake | ||
LICENSE | ||
README.md | ||
meson.build |
README.md
DOtherSide
C language library for creating bindings for the Qt QML language.
Documentation: https://filcuc.github.io/DOtherSide/index.html
Currently the DOtherSide library is used by the following bindings:
- nimqml, QML bindings for the Nim programming language
- dqml, QML bindings for the D programming language
- qml-rust, QML bindings for the Rust programming language
Supported features
The following features are implementable from a binding language
- Creating custom QObject
- Creating custom QAbstractListModels
- Creating custom properties, signals and slots
- Creating from QML QObject defined in the binded language
- Creating from Singleton QML QObject defined in the binded language
Prebuilt binaries
Windows
Currently we provide the prebuilt binaries for windows through the github releases page
Linux
Currently we provide the prebuilt binaries for the following Linux distributions through the OpenSUSE OBS service
Archlinux
: here
Change log
The project change log can be read here.
Supported platforms
Currently we support the following platforms/compilers:
- Linux both 32/64bit with gcc
- Windows 32/64bit with Visual Studio 2013|2015 Community Edition
Build requirements
You need the following software:
- Qt 5.4 or higher
- Linux: gcc 4.8 or later with c++11 support or higher
- Windows: Visual Studio 2013|2015 Community Edition (Windows) or higher
Build instructions:
- Open a shell terminal inside the cloned repo
- mkdir build && cd build
- cmake ..
- make
Install Instructions
Once you built the package just type
make install
by default cmake will install to the default CMAKE prefix. If you want to customize this location type the following command during the build steps when invoking cmake
cmake -DCMAKE_INSTALL_PREFIX:PATH=/path/to/install/prefix path/to/CMakeLists.txt