File indexing completed on 2024-05-12 09:37:33
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 //_______________________________________________ 0024 BaseAnimationConfigWidget::BaseAnimationConfigWidget(QWidget *parent) 0025 : QWidget(parent) 0026 , ui(new Ui_AnimationConfigWidget()) 0027 , _row(0) 0028 , _changed(false) 0029 { 0030 ui->setupUi(this); 0031 QGridLayout *layout(qobject_cast<QGridLayout *>(BaseAnimationConfigWidget::layout())); 0032 _row = layout->rowCount(); 0033 } 0034 0035 //_______________________________________________ 0036 BaseAnimationConfigWidget::~BaseAnimationConfigWidget(void) 0037 { 0038 delete ui; 0039 } 0040 0041 //_______________________________________________ 0042 void BaseAnimationConfigWidget::updateItems(bool state) 0043 { 0044 if (!state) 0045 return; 0046 const auto children = findChildren<AnimationConfigItem *>(); 0047 for (AnimationConfigItem *item : children) { 0048 if (item->configurationWidget()->isVisible()) 0049 item->configurationButton()->setChecked(false); 0050 } 0051 } 0052 0053 //_______________________________________________ 0054 QCheckBox *BaseAnimationConfigWidget::animationsEnabled(void) const 0055 { 0056 return ui->animationsEnabled; 0057 } 0058 0059 //_______________________________________________ 0060 void BaseAnimationConfigWidget::setupItem(QGridLayout *layout, AnimationConfigItem *item) 0061 { 0062 layout->addWidget(item, _row, 0, 1, 2); 0063 ++_row; 0064 0065 connect(item->configurationButton(), SIGNAL(toggled(bool)), SLOT(updateItems(bool))); 0066 0067 item->initializeConfigurationWidget(this); 0068 layout->addWidget(item->configurationWidget(), _row, 1, 1, 1); 0069 ++_row; 0070 0071 item->configurationWidget()->setVisible(false); 0072 connect(item->configurationButton(), SIGNAL(toggled(bool)), SIGNAL(layoutChanged())); 0073 connect(item, SIGNAL(changed()), SLOT(updateChanged())); 0074 } 0075 }