File indexing completed on 2024-05-12 17:06:30

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 //_______________________________________________
0025 AnimationConfigItem::AnimationConfigItem(QWidget *parent, const QString &title, const QString &description)
0026     : QWidget(parent)
0027     , ui(new Ui_AnimationConfigItem())
0028 {
0029     ui->setupUi(this);
0030     layout()->setContentsMargins(0, 0, 0, 0);
0031 
0032     ui->configurationButton->setIcon(QIcon::fromTheme(QStringLiteral("configure")));
0033     ui->descriptionButton->setIcon(QIcon::fromTheme(QStringLiteral("dialog-information")));
0034 
0035     connect(ui->enableCheckBox, SIGNAL(toggled(bool)), SIGNAL(changed()));
0036     connect(ui->descriptionButton, SIGNAL(clicked()), SLOT(about()));
0037 
0038     setTitle(title);
0039     setDescription(description);
0040 }
0041 
0042 //________________________________________________________________
0043 AnimationConfigItem::~AnimationConfigItem(void)
0044 {
0045     delete ui;
0046 }
0047 
0048 //________________________________________________________________
0049 void AnimationConfigItem::setTitle(const QString &value)
0050 {
0051     ui->enableCheckBox->setText(value);
0052 }
0053 
0054 //________________________________________________________________
0055 QString AnimationConfigItem::title(void) const
0056 {
0057     return ui->enableCheckBox->text();
0058 }
0059 
0060 //________________________________________________________________
0061 void AnimationConfigItem::setDescription(const QString &value)
0062 {
0063     _description = value;
0064     ui->descriptionButton->setEnabled(!_description.isEmpty());
0065 }
0066 
0067 //________________________________________________________________
0068 void AnimationConfigItem::setEnabled(const bool &value)
0069 {
0070     ui->enableCheckBox->setChecked(value);
0071 }
0072 
0073 //________________________________________________________________
0074 bool AnimationConfigItem::enabled(void) const
0075 {
0076     return ui->enableCheckBox->isChecked();
0077 }
0078 
0079 //________________________________________________________________
0080 QAbstractButton *AnimationConfigItem::configurationButton(void) const
0081 {
0082     return ui->configurationButton;
0083 }
0084 
0085 //_______________________________________________
0086 void AnimationConfigItem::setConfigurationWidget(QWidget *widget)
0087 {
0088     widget->setEnabled(ui->enableCheckBox->isChecked());
0089     connect(ui->enableCheckBox, SIGNAL(toggled(bool)), widget, SLOT(setEnabled(bool)));
0090     connect(ui->configurationButton, SIGNAL(toggled(bool)), widget, SLOT(setVisible(bool)));
0091 }
0092 
0093 //_______________________________________________
0094 void AnimationConfigItem::about(void)
0095 {
0096     if (description().isEmpty())
0097         return;
0098     KMessageBox::information(this, description(), i18n("oxygen-settings - information"));
0099     return;
0100 }
0101 }