Skip to content

Commit 6b04e20

Browse files
committed
refactor: Remove manual high-dpi support
This removes the --scale command line option. Qt6 seems to have this already integrated to scale according to the nativ display settings: https://doc.qt.io/qt-6.8/highdpi.html Adjusting the scale on a per-application basis is not intended (anymore) according to the documentation. Tested on a (near) high-dpi screen.
1 parent b5d9dd2 commit 6b04e20

File tree

8 files changed

+2
-123
lines changed

8 files changed

+2
-123
lines changed

samples/hotkey/main.cpp

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,6 @@ using namespace swift::gui;
1616
//! main
1717
int main(int argc, char *argv[])
1818
{
19-
CGuiApplication::highDpiScreenSupport();
2019
QApplication qa(argc, argv);
2120
CGuiApplication a("samplehotkey", swift::misc::CApplicationInfo::Sample, QPixmap());
2221
swift::gui::components::CSettingsHotkeyComponent w;

src/gui/guiapplication.cpp

Lines changed: 0 additions & 79 deletions
Original file line numberDiff line numberDiff line change
@@ -105,7 +105,6 @@ namespace swift::gui
105105
{
106106
this->addWindowModeOption();
107107
this->addWindowResetSizeOption();
108-
this->addWindowScaleSizeOption();
109108

110109
// notify when app goes down
111110
connect(qGuiApp, &QGuiApplication::lastWindowClosed, this, &CGuiApplication::gracefulShutdown);
@@ -150,15 +149,6 @@ namespace swift::gui
150149
this->addParserOption(m_cmdWindowSizeReset);
151150
}
152151

153-
void CGuiApplication::addWindowScaleSizeOption()
154-
{
155-
// just added here to display it in help
156-
// parseScaleFactor() is used since it is needed upfront (before application is created)
157-
m_cmdWindowScaleSize =
158-
QCommandLineOption("scale", QCoreApplication::translate("main", "Scale: number."), "scalevalue");
159-
this->addParserOption(m_cmdWindowScaleSize);
160-
}
161-
162152
void CGuiApplication::addWindowStateOption()
163153
{
164154
m_cmdWindowStateMinimized = QCommandLineOption(
@@ -287,28 +277,6 @@ namespace swift::gui
287277

288278
void CGuiApplication::exit(int retcode) { CApplication::exit(retcode); }
289279

290-
void CGuiApplication::highDpiScreenSupport(const QString &scaleFactor)
291-
{
292-
// https://lists.qt-project.org/pipermail/development/2019-September/037434.html
293-
// QSize s = CGuiUtility::physicalScreenSizeOs();
294-
QString sf = scaleFactor.trimmed().isEmpty() ? defaultScaleFactorString() : scaleFactor;
295-
if (sf.contains('/'))
296-
{
297-
const double sfd = parseFraction(scaleFactor, -1);
298-
sf = sfd < 0 ? "1.0" : QString::number(sfd, 'f', 8);
299-
}
300-
301-
sf = cleanNumber(sf);
302-
303-
// qputenv("QT_ENABLE_HIGHDPI_SCALING", "1");
304-
QGuiApplication::setHighDpiScaleFactorRoundingPolicy(Qt::HighDpiScaleFactorRoundingPolicy::Floor);
305-
306-
const QByteArray sfa = sf.toLatin1();
307-
qputenv("QT_SCALE_FACTOR", sfa);
308-
}
309-
310-
bool CGuiApplication::isUsingHighDpiScreenSupport() { return CGuiUtility::isUsingHighDpiScreenSupport(); }
311-
312280
QScreen *CGuiApplication::currentScreen()
313281
{
314282
const QWidget *w = CGuiApplication::mainApplicationWidget();
@@ -455,53 +423,6 @@ namespace swift::gui
455423
}
456424
}
457425

458-
double CGuiApplication::parseScaleFactor(int argc, char *argv[])
459-
{
460-
for (int i = 1; i < argc; ++i)
461-
{
462-
if (qstrcmp(argv[i], "--scale") == 0 || qstrcmp(argv[i], "-scale") == 0)
463-
{
464-
if (i + 1 >= argc) { return -1.0; } // no value
465-
const QString factor(argv[i + 1]);
466-
bool ok;
467-
const double f = factor.toDouble(&ok);
468-
return ok ? f : -1.0;
469-
}
470-
}
471-
return -1.0;
472-
}
473-
474-
QString CGuiApplication::scaleFactor(int argc, char *argv[])
475-
{
476-
for (int i = 1; i < argc; ++i)
477-
{
478-
if (qstrcmp(argv[i], "--scale") == 0 || qstrcmp(argv[i], "-scale") == 0)
479-
{
480-
if (i + 1 >= argc) { return QString(); } // no value
481-
const QString factor(argv[i + 1]);
482-
return factor.trimmed();
483-
}
484-
}
485-
return QString();
486-
}
487-
488-
QString CGuiApplication::defaultScaleFactorString()
489-
{
490-
if (!CBuildConfig::isRunningOnWindowsNtPlatform()) { return "1.0"; }
491-
492-
// On windows
493-
// Qt 5.14.1 default is device ratio 3
494-
// Qt 5.14.0 default device ratio was 2
495-
496-
// 2/3 (0.66667) => device ratio 3
497-
// 0.75 => device ratio 2.25
498-
// 0.8 => device ratio 2.4
499-
// 1.00 => device ratio 3
500-
501-
// currently NOT used
502-
return "1.0";
503-
}
504-
505426
void CGuiApplication::cmdLineErrorMessage(const QString &text, const QString &informativeText) const
506427
{
507428
QMessageBox errorBox(QMessageBox::Critical, QGuiApplication::applicationDisplayName(), "<b>" + text + "</b>");

src/gui/guiapplication.h

Lines changed: 0 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -90,9 +90,6 @@ namespace swift::gui
9090
//! CMD line arguments (reset size store)
9191
void addWindowResetSizeOption();
9292

93-
//! CMD line arguments (scale size on DPI screens)
94-
void addWindowScaleSizeOption();
95-
9693
//! Window state
9794
Qt::WindowState getWindowState() const;
9895

@@ -255,13 +252,6 @@ namespace swift::gui
255252
//! Exit application, perform graceful shutdown and exit
256253
static void exit(int retcode = 0);
257254

258-
//! Support for high DPI screens
259-
//! \note Needs to be at the beginning of main
260-
static void highDpiScreenSupport(const QString &scaleFactor = {});
261-
262-
//! Uses the high DPI support?
263-
static bool isUsingHighDpiScreenSupport();
264-
265255
//! Current screen
266256
static QScreen *currentScreen();
267257

@@ -272,16 +262,6 @@ namespace swift::gui
272262
//! Bring any modal dialog to front
273263
static void modalWindowToFront();
274264

275-
//! Parse scale factor if any
276-
//! \deprecated using scaleFactor now
277-
static double parseScaleFactor(int argc, char *argv[]);
278-
279-
//! Get the scale factor
280-
static QString scaleFactor(int argc, char *argv[]);
281-
282-
//! Get a default scale factor
283-
static QString defaultScaleFactorString();
284-
285265
signals:
286266
//! Style sheet changed
287267
void styleSheetsChanged();
@@ -323,7 +303,6 @@ namespace swift::gui
323303
QCommandLineOption m_cmdWindowStateMinimized { "emptyMinimized" }; //!< window state (minimized)
324304
QCommandLineOption m_cmdWindowMode { "emptyWindowMode" }; //!< window mode (flags: frameless ...)
325305
QCommandLineOption m_cmdWindowSizeReset { "emptySizeReset" }; //!< window size reset
326-
QCommandLineOption m_cmdWindowScaleSize { "emptyScale" }; //!< window scale size
327306
CStyleSheetUtility m_styleSheetUtility { this }; //!< style sheet utility
328307
bool m_uiSetupCompleted = false; //!< ui setup completed
329308
bool m_saveMainWidgetState = true; //!< save/restore main widget's state

src/gui/guiutility.cpp

Lines changed: 2 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -797,7 +797,7 @@ namespace swift::gui
797797

798798
QString CGuiUtility::metricsInfo()
799799
{
800-
static const QString s("%1 %2 %3 | 80 chars: w%4 h%5 | 43 chars: w%6 h%7");
800+
static const QString s("%1 %2 | 80 chars: w%3 h%4 | 43 chars: w%5 h%6");
801801
const QSizeF s80 = CGuiUtility::fontMetrics80Chars();
802802
const QSizeF s43 = CGuiUtility::fontMetricsLazyDog43Chars();
803803

@@ -811,21 +811,7 @@ namespace swift::gui
811811
desktop = QStringLiteral("Desktop w%1 w%2").arg(sd.width()).arg(sd.height());
812812
ratio = QStringLiteral("ratio: %1").arg(mainWidget->devicePixelRatioF());
813813
}
814-
return s.arg(desktop)
815-
.arg(CGuiUtility::isUsingHighDpiScreenSupport() ? "hi DPI" : "-")
816-
.arg(ratio)
817-
.arg(s80.width())
818-
.arg(s80.height())
819-
.arg(s43.width())
820-
.arg(s43.height());
821-
}
822-
823-
bool CGuiUtility::isUsingHighDpiScreenSupport()
824-
{
825-
const QByteArray v = qgetenv("QT_AUTO_SCREEN_SCALE_FACTOR");
826-
const QString vs(v);
827-
const bool highDpi = stringToBool(vs);
828-
return highDpi;
814+
return s.arg(desktop).arg(ratio).arg(s80.width()).arg(s80.height()).arg(s43.width()).arg(s43.height());
829815
}
830816

831817
void CGuiUtility::forceStyleSheetUpdate(QWidget *widget)

src/gui/guiutility.h

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -254,9 +254,6 @@ namespace swift::gui
254254
//! Some info about font metrics
255255
static QString metricsInfo();
256256

257-
//! Using high DPI screen support
258-
static bool isUsingHighDpiScreenSupport();
259-
260257
//! Forces a stylesheet update
261258
static void forceStyleSheetUpdate(QWidget *widget);
262259

src/swiftcore/main.cpp

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,6 @@ using namespace swift::gui;
2020

2121
int main(int argc, char *argv[])
2222
{
23-
CGuiApplication::highDpiScreenSupport(CGuiApplication::scaleFactor(argc, argv));
2423
QApplication qa(argc, argv);
2524
Q_UNUSED(qa) // init of qa is required, but qa not used
2625

src/swiftdata/main.cpp

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,6 @@ using namespace swift::gui;
1919

2020
int main(int argc, char *argv[])
2121
{
22-
CGuiApplication::highDpiScreenSupport(CGuiApplication::scaleFactor(argc, argv));
2322
QApplication qa(argc, argv);
2423
Q_UNUSED(qa)
2524

src/swiftguistandard/main.cpp

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,6 @@ using namespace swift::core;
2020

2121
int main(int argc, char *argv[])
2222
{
23-
CGuiApplication::highDpiScreenSupport(CGuiApplication::scaleFactor(argc, argv));
2423
QApplication qa(argc, argv);
2524
Q_UNUSED(qa) // application init needed
2625

0 commit comments

Comments
 (0)