martinrotter / rssguard

Feed reader (and podcast player) which supports RSS/ATOM/JSON and many web-based feed services.
GNU General Public License v3.0
1.54k stars 124 forks source link

[BUG]: Windows scaling issues since dev build 1339350c (Qt 6.4.1) #856

Closed RetroAbstract closed 1 year ago

RetroAbstract commented 1 year ago

Brief description of the issue

Since dev build 1339350c, moving from Qt 6.3.2 to 6.4.1, RSS Guard disproportionally scales some of the UI text when the Windows scaling is set to anything other than 100%.

I use a 4K monitor with the Windows scale (Settings > Home > Display) set to 225%. Up until 1339350c/Qt 6.4.1 RSS Guard always scaled everything harmoniously, however now it doesn't:

2

Scaling on Qt 6.4.1 - Disproportionate

How to reproduce the bug?

  1. Set Windows scaling (Settings > Home > Display) to anything else than 100%
  2. Open RSS Guard
  3. Notice certain text elements are disproportionally scaled

What was the expected result?

The expected result was for RSS Guard to scale all the text harmoniously as it had done up unti dev build / the update to Qt 6.4.1 as shown below:

4

Scaling on Qt 6.3.2 - Harmonious

What actually happened?

RSS Guard opened with partial disproportionate text scaling.

Debug log

(Line ""warning" -> core: Qt localization 'en_GB' WAS NOT loaded successfully." appears both in this log and log from RSS Guard build with Qt 6.3.2)

Log:

time=" 0.036" type="debug" -> core: Initializing settings in '\data4\config\config.ini' (portable way). time=" 0.041" type="debug" -> database: File-based SQLite database connection 'DatabaseFactory' to file '\data4\database\database.db' seems to be established. time=" 0.042" type="debug" -> database: File-based SQLite database has version '4'. time=" 0.043" type="debug" -> gui: Available icon theme paths: QList(:/icons, :/graphics, \data4\icons, \icons) time=" 0.043" type="debug" -> gui: Installed icon themes are: '', 'Breeze', 'Breeze Dark', 'Faenza', 'Numix' time=" 0.043" type="debug" -> gui: Loading icon theme 'Breeze'. time=" 0.044" type="debug" -> gui: Found path of base skin: ':\skins\nudus-base'. time=" 0.044" type="debug" -> gui: Trying to load base file ':\skins\nudus-base\html_wrapper.html' for the skin. time=" 0.044" type="debug" -> gui: Local file ':\skins\nudus-light\html_style.css' exists, using it for the skin. time=" 0.044" type="debug" -> gui: Trying to load base file ':\skins\nudus-base\html_enclosure_image.html' for the skin. time=" 0.044" type="debug" -> gui: Trying to load base file ':\skins\nudus-base\html_single_message.html' for the skin. time=" 0.044" type="debug" -> gui: Trying to load base file ':\skins\nudus-base\html_enclosure_every.html' for the skin. time=" 0.044" type="debug" -> gui: Local file ':\skins\nudus-light\qt_style.qss' exists, using it for the skin. time=" 0.045" type="debug" -> gui: Trying to load base file ':\skins\nudus-base\html_adblocked.html' for the skin. time=" 0.045" type="debug" -> gui: Setting style: 'Fusion'. time=" 0.045" type="debug" -> gui: Skin 'nudus-light' loaded. time=" 0.045" type="debug" -> network: Disabling application-wide proxy completely. time=" 0.049" type="debug" -> core: OpenSSL version: 'OpenSSL 1.1.1q 5 Jul 2022'. time=" 0.049" type="debug" -> core: OpenSSL supported: 'true'. time=" 0.049" type="debug" -> core: Starting RSS Guard 4.2.5. time=" 0.049" type="debug" -> core: Instantiated class 'Application'. time=" 0.050" type="debug" -> core: Starting to load active localization. Desired localization is 'en_GB'. time=" 0.050" type="debug" -> core: Application localization 'en_GB' loaded successfully, specifically sublocalization 'en_GB' was loaded. time=" 0.050" type="warning" -> core: Qt localization 'en_GB' WAS NOT loaded successfully. time=" 0.053" type="debug" -> database: SQLite database connection 'MessagesModel' to file '/data4/database/database.db' seems to be established. time=" 0.055" type="debug" -> message-model: Repopulated model, SQL statement is now: 'SELECT Messages.id, Messages.is_read, Messages.is_important, Messages.is_deleted, Messages.is_pdeleted, Messages.feed, Messages.title, Messages.url, Messages.author, Messages.date_created, Messages.contents, Messages.enclosures, Messages.score, Messages.account_id, Messages.custom_id, Messages.custom_hash, Feeds.title, CASE WHEN length(Messages.enclosures) > 10 THEN 'true' ELSE 'false' END AS has_enclosures, (SELECT GROUP_CONCAT(Labels.name) FROM Labels WHERE Labels.id IN (SELECT LabelsInMessages.label FROM LabelsInMessages WHERE LabelsInMessages.account_id = Messages.account_id AND LabelsInMessages.message = Messages.custom_id)) as msg_labels FROM Messages LEFT JOIN Feeds ON Messages.feed = Feeds.custom_id AND Messages.account_id = Feeds.account_id WHERE 0 > 1;'. time=" 0.055" type="debug" -> core: Auto-download timer started with interval 10000 ms. time=" 0.055" type="debug" -> core: Creating FeedDownloader singleton. time=" 0.057" type="debug" -> gui: Creating main application form in thread: '0xc14'. time=" 0.065" type="debug" -> gui: Current row changed - proxy 'QModelIndex(-1,-1,0x0,QObject(0x0))', source 'QModelIndex(-1,-1,0x0,QObject(0x0))'. time=" 0.070" type="debug" -> network: Settings of BaseNetworkAccessManager loaded. time=" 0.072" type="debug" -> network: Settings of BaseNetworkAccessManager loaded. time=" 0.077" type="debug" -> network: Settings of BaseNetworkAccessManager loaded. time=" 0.091" type="debug" -> gui: Creating tray icon menu. time=" 0.105" type="debug" -> core: Showing the main window when the application is starting. time=" 0.158" type="debug" -> database: SQLite database connection 'FeedReader' to file '/data4/database/database.db' seems to be established. time=" 0.159" type="debug" -> database: SQLite database connection 'FeedlyEntryPoint' to file '/data4/database/database.db' seems to be established. time=" 0.159" type="debug" -> database: SQLite database connection 'GmailEntryPoint' to file '/data4/database/database.db' seems to be established. time=" 0.160" type="debug" -> database: SQLite database connection 'GreaderEntryPoint' to file '/data4/database/database.db' seems to be established. time=" 0.160" type="debug" -> database: SQLite database connection 'OwnCloudServiceEntryPoint' to file '/data4/database/database.db' seems to be established. time=" 0.161" type="debug" -> database: SQLite database connection 'StandardServiceEntryPoint' to file '/data4/database/database.db' seems to be established. time=" 0.161" type="debug" -> database: SQLite database connection 'TtRssServiceEntryPoint' to file '/data4/database/database.db' seems to be established. time=" 0.162" type="debug" -> gui: User wants to have tray icon. time=" 0.162" type="debug" -> gui: Tray icon is available, showing now. time=" 0.164" type="debug" -> gui: Creating SystemTrayIcon instance. time=" 0.170" type="debug" -> gui: Showing tray icon immediately. time=" 0.178" type="debug" -> gui: Tray icon displayed. time=" 0.178" type="debug" -> core: No execution message received from other app instances. time=" 1.046" type="debug" -> network: Settings of BaseNetworkAccessManager loaded. time=" 1.100" type="debug" -> network: Destroying Downloader instance. time=" 1.101" type="debug" -> network: Destroying SilentNetworkAccessManager instance. time=" 5.422" type="debug" -> gui: Destroying FormAddAccount instance. time=" 8.688" type="debug" -> gui: Main window's close event time=" 8.691" type="debug" -> gui: Main window's hide event time=" 8.693" type="debug" -> core: Cleaning up resources and saving application state. time=" 8.693" type="debug" -> core: Close lock was obtained safely. time=" 8.693" type="debug" -> feed-downloader: Destroying FeedDownloader instance. time=" 8.703" type="debug" -> gui: Destroying FormMain instance. time=" 8.703" type="debug" -> gui: Destroying TabWidget instance. time=" 8.703" type="debug" -> gui: Destroying FeedMessageViewer instance. time=" 8.704" type="debug" -> gui: Destroying BaseToolBar instance. time=" 8.704" type="debug" -> network: Destroying Downloader instance. time=" 8.704" type="debug" -> network: Destroying SilentNetworkAccessManager instance. time=" 8.705" type="debug" -> network: Destroying Downloader instance. time=" 8.705" type="debug" -> network: Destroying SilentNetworkAccessManager instance. time=" 8.705" type="debug" -> gui: Destroying MessagesView instance. time=" 8.705" type="debug" -> gui: Destroying BaseToolBar instance. time=" 8.705" type="debug" -> gui: Destroying FeedsView instance. time=" 8.705" type="debug" -> gui: Destroying TabBar instance. time=" 8.706" type="debug" -> gui: Destroying StatusBar instance. time=" 8.706" type="debug" -> gui: Destroying SystemTrayIcon instance. time=" 8.710" type="debug" -> core: Destroying Application instance. time=" 8.710" type="debug" -> core: Destroying Mutex instance. time=" 8.714" type="debug" -> gui: Destroying IconFactory instance. time=" 8.714" type="debug" -> core: Destroying FeedReader instance. time=" 8.714" type="debug" -> feed-model: Destroying FeedsModel instance. time=" 8.714" type="debug" -> feed-model: Destroying FeedsProxyModel instance time=" 8.715" type="debug" -> message-model: Destroying MessagesModel instance. time=" 8.715" type="debug" -> message-model: Destroying MessagesProxyModel instance.

Operating system and version

martinrotter commented 1 year ago

I will try to regenerate packages with lower Qt version to see if problem is really related to Qt.

Wait 20 minutes for it to build - Qt 6.3.2 - and re-test pls.

https://github.com/martinrotter/rssguard/actions/runs/3656241861

martinrotter commented 1 year ago

Also, found this -> https://bugreports.qt.io/browse/QTBUG-108593

Likely known issue to be fixed in January.

RetroAbstract commented 1 year ago

I will try to regenerate packages with lower Qt version to see if problem is really related to Qt.

Wait 20 minutes for it to build - Qt 6.3.2 - and re-test pls.

https://github.com/martinrotter/rssguard/actions/runs/3656241861

Scales fine now. Thanks