Warning, file /graphics/glaxnimate/src/gui/settings/toolbar_settings.cpp was not indexed or was modified since last indexation (in which case cross-reference links may be missing, inaccurate or erroneous).

0001 /*
0002  * SPDX-FileCopyrightText: 2019-2023 Mattia Basaglia <dev@dragon.best>
0003  *
0004  * SPDX-License-Identifier: GPL-3.0-or-later
0005  */
0006 
0007 #include "toolbar_settings.hpp"
0008 
0009 #include <QApplication>
0010 
0011 #include "widgets/settings/toolbar_settings_widget.hpp"
0012 
0013 #include <QMainWindow>
0014 #include <QToolBar>
0015 
0016 using namespace glaxnimate::gui;
0017 
0018 Qt::ToolButtonStyle settings::ToolbarSettingsGroup::button_style = Qt::ToolButtonIconOnly;
0019 int settings::ToolbarSettingsGroup::icon_size_extent = 22;
0020 int settings::ToolbarSettingsGroup::tool_icon_size_extent = 32;
0021 
0022 QWidget * settings::ToolbarSettingsGroup::make_widget ( QWidget * parent )
0023 {
0024     return new ToolbarSettingsWidget(parent);
0025 }
0026 
0027 void settings::ToolbarSettingsGroup::load(QSettings& settings)
0028 {
0029     icon_size_extent = settings.value("icon_size", icon_size_extent).toInt();
0030     tool_icon_size_extent = settings.value("tool_icon_size", tool_icon_size_extent).toInt();
0031     button_style = Qt::ToolButtonStyle(settings.value("button_style", int(button_style)).toInt());
0032 }
0033 
0034 void settings::ToolbarSettingsGroup::save(QSettings& settings)
0035 {
0036     settings.setValue("icon_size", icon_size_extent);
0037     settings.setValue("tool_icon_size", tool_icon_size_extent);
0038     settings.setValue("button_style", int(button_style));
0039 }
0040 
0041 void settings::ToolbarSettingsGroup::apply()
0042 {
0043     for ( QWidget *widget : QApplication::topLevelWidgets() )
0044     {
0045         if ( auto window = qobject_cast<QMainWindow*>(widget) )
0046         {
0047             window->setIconSize(icon_size());
0048             window->setToolButtonStyle(button_style);
0049             if ( auto tb_tools = window->findChild<QToolBar*>("toolbar_tools") )
0050             {
0051                 tb_tools->setIconSize(tool_icon_size());
0052             }
0053         }
0054     }
0055 }