File indexing completed on 2024-05-05 05:35:32
0001 ////////////////////////////////////////////////////////////////////////////// 0002 // oxygenanimationconfigwidget.cpp 0003 // animation configuration widget 0004 // ------------------- 0005 // 0006 // SPDX-FileCopyrightText: 2010 Hugo Pereira Da Costa <hugo.pereira@free.fr> 0007 // 0008 // SPDX-License-Identifier: MIT 0009 ////////////////////////////////////////////////////////////////////////////// 0010 0011 #include "oxygenbaseanimationconfigwidget.h" 0012 #include "oxygenanimationconfigitem.h" 0013 0014 #include "ui_oxygenanimationconfigwidget.h" 0015 0016 #include <QButtonGroup> 0017 #include <QHoverEvent> 0018 #include <QTextStream> 0019 0020 namespace Oxygen 0021 { 0022 //_______________________________________________ 0023 BaseAnimationConfigWidget::BaseAnimationConfigWidget(QWidget *parent) 0024 : QWidget(parent) 0025 , ui(new Ui_AnimationConfigWidget()) 0026 , _row(0) 0027 , _changed(false) 0028 { 0029 ui->setupUi(this); 0030 QGridLayout *layout(qobject_cast<QGridLayout *>(BaseAnimationConfigWidget::layout())); 0031 _row = layout->rowCount(); 0032 } 0033 0034 //_______________________________________________ 0035 BaseAnimationConfigWidget::~BaseAnimationConfigWidget(void) 0036 { 0037 delete ui; 0038 } 0039 0040 //_______________________________________________ 0041 void BaseAnimationConfigWidget::updateItems(bool state) 0042 { 0043 if (!state) 0044 return; 0045 const auto children = findChildren<AnimationConfigItem *>(); 0046 for (AnimationConfigItem *item : children) { 0047 if (item->configurationWidget()->isVisible()) 0048 item->configurationButton()->setChecked(false); 0049 } 0050 } 0051 0052 //_______________________________________________ 0053 QCheckBox *BaseAnimationConfigWidget::animationsEnabled(void) const 0054 { 0055 return ui->animationsEnabled; 0056 } 0057 0058 //_______________________________________________ 0059 void BaseAnimationConfigWidget::setupItem(QGridLayout *layout, AnimationConfigItem *item) 0060 { 0061 layout->addWidget(item, _row, 0, 1, 2); 0062 ++_row; 0063 0064 connect(item->configurationButton(), SIGNAL(toggled(bool)), SLOT(updateItems(bool))); 0065 0066 item->initializeConfigurationWidget(this); 0067 layout->addWidget(item->configurationWidget(), _row, 1, 1, 1); 0068 ++_row; 0069 0070 item->configurationWidget()->setVisible(false); 0071 connect(item->configurationButton(), SIGNAL(toggled(bool)), SIGNAL(layoutChanged())); 0072 connect(item, SIGNAL(changed()), SLOT(updateChanged())); 0073 } 0074 }