File indexing completed on 2024-05-05 05:35:32

0001 //////////////////////////////////////////////////////////////////////////////
0002 // oxygenanimationconfigitem.cpp
0003 // animation configuration item
0004 // -------------------
0005 //
0006 // SPDX-FileCopyrightText: 2010 Hugo Pereira Da Costa <hugo.pereira@free.fr>
0007 //
0008 // SPDX-License-Identifier: MIT
0009 //////////////////////////////////////////////////////////////////////////////
0010 
0011 #include "oxygenanimationconfigitem.h"
0012 #include "ui_oxygenanimationconfigitem.h"
0013 
0014 #include "liboxygen.h"
0015 
0016 #include <KLocalizedString>
0017 #include <KMessageBox>
0018 #include <QIcon>
0019 #include <QTextStream>
0020 
0021 namespace Oxygen
0022 {
0023 //_______________________________________________
0024 AnimationConfigItem::AnimationConfigItem(QWidget *parent, const QString &title, const QString &description)
0025     : QWidget(parent)
0026     , ui(new Ui_AnimationConfigItem())
0027 {
0028     ui->setupUi(this);
0029     layout()->setContentsMargins(0, 0, 0, 0);
0030 
0031     ui->configurationButton->setIcon(QIcon::fromTheme(QStringLiteral("configure")));
0032     ui->descriptionButton->setIcon(QIcon::fromTheme(QStringLiteral("dialog-information")));
0033 
0034     connect(ui->enableCheckBox, SIGNAL(toggled(bool)), SIGNAL(changed()));
0035     connect(ui->descriptionButton, SIGNAL(clicked()), SLOT(about()));
0036 
0037     setTitle(title);
0038     setDescription(description);
0039 }
0040 
0041 //________________________________________________________________
0042 AnimationConfigItem::~AnimationConfigItem(void)
0043 {
0044     delete ui;
0045 }
0046 
0047 //________________________________________________________________
0048 void AnimationConfigItem::setTitle(const QString &value)
0049 {
0050     ui->enableCheckBox->setText(value);
0051 }
0052 
0053 //________________________________________________________________
0054 QString AnimationConfigItem::title(void) const
0055 {
0056     return ui->enableCheckBox->text();
0057 }
0058 
0059 //________________________________________________________________
0060 void AnimationConfigItem::setDescription(const QString &value)
0061 {
0062     _description = value;
0063     ui->descriptionButton->setEnabled(!_description.isEmpty());
0064 }
0065 
0066 //________________________________________________________________
0067 void AnimationConfigItem::setEnabled(const bool &value)
0068 {
0069     ui->enableCheckBox->setChecked(value);
0070 }
0071 
0072 //________________________________________________________________
0073 bool AnimationConfigItem::enabled(void) const
0074 {
0075     return ui->enableCheckBox->isChecked();
0076 }
0077 
0078 //________________________________________________________________
0079 QAbstractButton *AnimationConfigItem::configurationButton(void) const
0080 {
0081     return ui->configurationButton;
0082 }
0083 
0084 //_______________________________________________
0085 void AnimationConfigItem::setConfigurationWidget(QWidget *widget)
0086 {
0087     widget->setEnabled(ui->enableCheckBox->isChecked());
0088     connect(ui->enableCheckBox, SIGNAL(toggled(bool)), widget, SLOT(setEnabled(bool)));
0089     connect(ui->configurationButton, SIGNAL(toggled(bool)), widget, SLOT(setVisible(bool)));
0090 }
0091 
0092 //_______________________________________________
0093 void AnimationConfigItem::about(void)
0094 {
0095     if (description().isEmpty())
0096         return;
0097     KMessageBox::information(this, description(), i18n("oxygen-settings - information"));
0098     return;
0099 }
0100 }