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 }