From a5b737314d931ab0a06535d799fd452939c2e270 Mon Sep 17 00:00:00 2001 From: Ryan Huffman Date: Wed, 18 Feb 2015 11:44:15 -0800 Subject: [PATCH] Add auto-scale to preferences dialog --- interface/src/ui/PreferencesDialog.cpp | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) diff --git a/interface/src/ui/PreferencesDialog.cpp b/interface/src/ui/PreferencesDialog.cpp index e27875ce67..caab326f90 100644 --- a/interface/src/ui/PreferencesDialog.cpp +++ b/interface/src/ui/PreferencesDialog.cpp @@ -10,6 +10,7 @@ // #include +#include #include #include @@ -26,6 +27,18 @@ const int PREFERENCES_HEIGHT_PADDING = 20; +void scaleWidgetFontSizes(QWidget* widget, float scale) { + for (auto child : widget->findChildren()) { + if (child->parent() == widget) { + scaleWidgetFontSizes(child, scale); + } + } + QFont font = widget->font(); + qDebug() << "Pref: " << widget->objectName() << ": " << font.pointSizeF(); + font.setPointSizeF(font.pointSizeF() * scale); + widget->setFont(font); +} + PreferencesDialog::PreferencesDialog(QWidget* parent) : QDialog(parent) { @@ -46,8 +59,14 @@ PreferencesDialog::PreferencesDialog(QWidget* parent) : // move dialog to left side move(parentWidget()->geometry().topLeft()); setFixedHeight(parentWidget()->size().height() - PREFERENCES_HEIGHT_PADDING); + + auto glCanvas = DependencyManager::get(); + float dpiScale = 72.0f / glCanvas->logicalDpiX(); + + scaleWidgetFontSizes(ui.scrollArea, dpiScale); } + void PreferencesDialog::accept() { savePreferences(); close();