File indexing completed on 2025-02-02 04:11:30

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_widget.hpp"
0008 #include "ui_toolbar_settings_widget.h"
0009 #include <QEvent>
0010 
0011 #include "settings/toolbar_settings.hpp"
0012 
0013 using namespace glaxnimate::gui;
0014 using namespace glaxnimate;
0015 
0016 class ToolbarSettingsWidget::Private
0017 {
0018 public:
0019     Ui::ToolbarSettingsWidget ui;
0020 
0021     void update_preview(QWidget* parent)
0022     {
0023         for ( auto button : parent->findChildren<QToolButton*>() )
0024         {
0025             button->setToolButtonStyle(settings::ToolbarSettingsGroup::button_style);
0026             if ( button->objectName().contains("tool") )
0027                 button->setIconSize(settings::ToolbarSettingsGroup::tool_icon_size());
0028             else
0029                 button->setIconSize(settings::ToolbarSettingsGroup::icon_size());
0030         }
0031     }
0032 };
0033 
0034 ToolbarSettingsWidget::ToolbarSettingsWidget(QWidget* parent)
0035     : QWidget(parent), d(std::make_unique<Private>())
0036 {
0037     d->ui.setupUi(this);
0038     d->ui.combo_style->setCurrentIndex(int(settings::ToolbarSettingsGroup::button_style));
0039     d->ui.spin_icon_size->setValue(settings::ToolbarSettingsGroup::icon_size_extent);
0040     d->ui.spin_tool_icon_size->setValue(settings::ToolbarSettingsGroup::tool_icon_size_extent);
0041     d->update_preview(this);
0042 }
0043 
0044 ToolbarSettingsWidget::~ToolbarSettingsWidget() = default;
0045 
0046 void ToolbarSettingsWidget::changeEvent ( QEvent* e )
0047 {
0048     QWidget::changeEvent(e);
0049 
0050     if ( e->type() == QEvent::LanguageChange)
0051     {
0052         d->ui.retranslateUi(this);
0053     }
0054 }
0055 
0056 void ToolbarSettingsWidget::update_preview()
0057 {
0058     settings::ToolbarSettingsGroup::icon_size_extent = d->ui.spin_icon_size->value();
0059     settings::ToolbarSettingsGroup::tool_icon_size_extent = d->ui.spin_tool_icon_size->value();
0060     settings::ToolbarSettingsGroup::button_style = Qt::ToolButtonStyle(d->ui.combo_style->currentIndex());
0061     settings::ToolbarSettingsGroup::apply();
0062     d->update_preview(this);
0063 }