# HG changeset patch # User Torsten # Date 1424766934 -3600 # Node ID 597fc0fd8e54fe7cc506d6555aea4f6def5facb1 # Parent 72fe9df87fe8f620566a3cb4fcc6e14b6fefbf31 make size of toolbar icons depending on scaling of display * files-dock-widget.cc (notice_settings): set icon size to small, normal or large by using qt pixel metrics * file-editor.cc notice_settings): set icon size to small, normal or large by using qt pixel metrics * main-window.cc (notice_settings): set icon size to small, normal or large by using qt pixel metrics * settings-dialog.ui: use radio buttons for small, normal and large icon size instead of spin box with pixel sizes * settings-dialog.cc (settings_dialog): initialize the radio buttons depending on the settings file; (write_changed_settings): save the icon size depending on radio buttons diff -r 72fe9df87fe8 -r 597fc0fd8e54 libgui/src/files-dock-widget.cc --- a/libgui/src/files-dock-widget.cc Tue Feb 24 07:12:13 2015 +0100 +++ b/libgui/src/files-dock-widget.cc Tue Feb 24 09:35:34 2015 +0100 @@ -774,9 +774,15 @@ { // Qsettings pointer is checked before emitting. - int icon_size = settings->value ("toolbar_icon_size",16).toInt (); - if (icon_size > 16) - icon_size = icon_size - 4; + int icon_size_settings = settings->value ("toolbar_icon_size",0).toInt (); + QStyle *st = style (); + int icon_size = st->pixelMetric (QStyle::PM_ToolBarIconSize); + + if (icon_size_settings == 1) + icon_size = st->pixelMetric (QStyle::PM_LargeIconSize); + else if (icon_size_settings == -1) + icon_size = st->pixelMetric (QStyle::PM_SmallIconSize); + _navigation_tool_bar->setIconSize (QSize (icon_size,icon_size)); // file names are always shown, other columns can be hidden by settings diff -r 72fe9df87fe8 -r 597fc0fd8e54 libgui/src/m-editor/file-editor.cc --- a/libgui/src/m-editor/file-editor.cc Tue Feb 24 07:12:13 2015 +0100 +++ b/libgui/src/m-editor/file-editor.cc Tue Feb 24 09:35:34 2015 +0100 @@ -1128,8 +1128,16 @@ void file_editor::notice_settings (const QSettings *settings) { - int icon_size = settings->value ("toolbar_icon_size", 16).toInt (); - _tool_bar->setIconSize (QSize (icon_size, icon_size)); + int icon_size_settings = settings->value ("toolbar_icon_size",0).toInt (); + QStyle *st = style (); + int icon_size = st->pixelMetric (QStyle::PM_ToolBarIconSize); + + if (icon_size_settings == 1) + icon_size = st->pixelMetric (QStyle::PM_LargeIconSize); + else if (icon_size_settings == -1) + icon_size = st->pixelMetric (QStyle::PM_SmallIconSize); + + _tool_bar->setIconSize (QSize (icon_size,icon_size)); int tab_width_min = settings->value ("editor/notebook_tab_width_min", 160) .toInt (); diff -r 72fe9df87fe8 -r 597fc0fd8e54 libgui/src/main-window.cc --- a/libgui/src/main-window.cc Tue Feb 24 07:12:13 2015 +0100 +++ b/libgui/src/main-window.cc Tue Feb 24 09:35:34 2015 +0100 @@ -731,7 +731,15 @@ else _release_notes_icon = ":/actions/icons/logo.png"; - int icon_size = settings->value ("toolbar_icon_size",16).toInt (); + int icon_size_settings = settings->value ("toolbar_icon_size",0).toInt (); + QStyle *st = style (); + int icon_size = st->pixelMetric (QStyle::PM_ToolBarIconSize); + + if (icon_size_settings == 1) + icon_size = st->pixelMetric (QStyle::PM_LargeIconSize); + else if (icon_size_settings == -1) + icon_size = st->pixelMetric (QStyle::PM_SmallIconSize); + _main_tool_bar->setIconSize (QSize (icon_size,icon_size)); if (settings->value ("show_status_bar",true).toBool ()) diff -r 72fe9df87fe8 -r 597fc0fd8e54 libgui/src/settings-dialog.cc --- a/libgui/src/settings-dialog.cc Tue Feb 24 07:12:13 2015 +0100 +++ b/libgui/src/settings-dialog.cc Tue Feb 24 09:35:34 2015 +0100 @@ -85,10 +85,21 @@ else ui->comboBox_language->setCurrentIndex (0); // System is default - ui->toolbar_icon_size->setValue (settings->value ("toolbar_icon_size", - 16).toInt ()); + // icon size + QButtonGroup *icon_size_group = new QButtonGroup (this); + icon_size_group->addButton (ui->icon_size_small); + icon_size_group->addButton (ui->icon_size_normal); + icon_size_group->addButton (ui->icon_size_large); + int icon_size = settings->value ("toolbar_icon_size", 0).toInt (); + ui->icon_size_normal->setChecked (true); // the default + ui->icon_size_small->setChecked (icon_size == -1); + ui->icon_size_large->setChecked (icon_size == 1); // which icon has to be selected + QButtonGroup *icon_group = new QButtonGroup (this); + icon_group->addButton (ui->general_icon_octave); + icon_group->addButton (ui->general_icon_graphic); + icon_group->addButton (ui->general_icon_letter); QString widget_icon_set = settings->value ("DockWidgets/widget_icon_set","NONE").toString (); ui->general_icon_octave-> setChecked (true); // the default (if invalid set) @@ -643,7 +654,12 @@ _widget_title_fg_color_active->color ()); // icon size - settings->setValue ("toolbar_icon_size", ui->toolbar_icon_size->value ()); + int icon_size = 0; + if (ui->icon_size_small->isChecked ()) + icon_size = -1; + else if (ui->icon_size_large->isChecked ()) + icon_size = 1; + settings->setValue ("toolbar_icon_size", icon_size); // promp to exit settings->setValue ("prompt_to_exit", ui->cb_prompt_to_exit->isChecked ()); diff -r 72fe9df87fe8 -r 597fc0fd8e54 libgui/src/settings-dialog.ui --- a/libgui/src/settings-dialog.ui Tue Feb 24 07:12:13 2015 +0100 +++ b/libgui/src/settings-dialog.ui Tue Feb 24 09:35:34 2015 +0100 @@ -119,18 +119,26 @@ - - - 16 + + + Small - - 32 + + + + + + Normal - - 4 + + true - - 24 + + + + + + Large