status-desktop/vendor/DOtherSide
Lukáš Tinkl 630da7caaa fix: 150% and 200% zoom levels prevent the user from logging in
- 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
2024-02-27 10:39:05 +01:00
..
.docker
doc
lib fix: 150% and 200% zoom levels prevent the user from logging in 2024-02-27 10:39:05 +01:00
pch
test
.gitignore
.gitmodules
CHANGELOG.md
CMakeLists.txt
DOtherSide.pc.cmake
LICENSE
README.md
meson.build

README.md

DOtherSide

License Build Status Build status codecov Documentation Status

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

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:

  1. Open a shell terminal inside the cloned repo
  2. mkdir build && cd build
  3. cmake ..
  4. 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