File indexing completed on 2024-05-12 13:38:22

0001 //////////////////////////////////////////////////////////////////////////////
0002 // ShadowConfigurationui->cpp
0003 // -------------------
0004 //
0005 // SPDX-FileCopyrightText: 2009 Hugo Pereira Da Costa <hugo.pereira@free.fr>
0006 //
0007 // SPDX-License-Identifier: MIT
0008 //////////////////////////////////////////////////////////////////////////////
0009 
0010 #include "oxygenshadowconfigwidget.h"
0011 #include "oxygenactiveshadowconfiguration.h"
0012 #include "oxygeninactiveshadowconfiguration.h"
0013 #include "ui_oxygenshadowconfigurationui.h"
0014 
0015 #include "config-liboxygen.h"
0016 
0017 #include <KLocalizedString>
0018 #include <QLabel>
0019 #include <QLayout>
0020 
0021 namespace Oxygen
0022 {
0023 
0024 //_________________________________________________________
0025 ShadowConfigWidget::ShadowConfigWidget(QWidget *parent)
0026     : QGroupBox(parent)
0027     , ui(new Ui_ShadowConfiguraionUI())
0028 {
0029     setCheckable(true);
0030     ui->setupUi(this);
0031 
0032     // connections
0033     connect(ui->shadowSize, SIGNAL(valueChanged(int)), SLOT(updateChanged()));
0034     connect(ui->verticalOffset, SIGNAL(valueChanged(int)), SLOT(updateChanged()));
0035     connect(ui->innerColor, SIGNAL(changed(QColor)), SLOT(updateChanged()));
0036     connect(ui->outerColor, SIGNAL(changed(QColor)), SLOT(updateChanged()));
0037     connect(ui->useOuterColor, SIGNAL(toggled(bool)), SLOT(updateChanged()));
0038     connect(this, SIGNAL(toggled(bool)), SLOT(updateChanged()));
0039 }
0040 
0041 //_________________________________________________________
0042 ShadowConfigWidget::~ShadowConfigWidget(void)
0043 {
0044     delete ui;
0045 }
0046 
0047 //_________________________________________________________
0048 void ShadowConfigWidget::save(void) const
0049 {
0050     if (_group == QPalette::Active) {
0051         ActiveShadowConfiguration::setShadowSize(ui->shadowSize->value());
0052         ActiveShadowConfiguration::setVerticalOffset(0.1 * ui->verticalOffset->value());
0053         ActiveShadowConfiguration::setInnerColor(ui->innerColor->color());
0054         ActiveShadowConfiguration::setOuterColor(ui->outerColor->color());
0055         ActiveShadowConfiguration::setUseOuterColor(ui->useOuterColor->isChecked());
0056 
0057         ActiveShadowConfiguration::setEnabled(isChecked());
0058         ActiveShadowConfiguration::self()->save();
0059 
0060     } else if (_group == QPalette::Inactive) {
0061         InactiveShadowConfiguration::setShadowSize(ui->shadowSize->value());
0062         InactiveShadowConfiguration::setVerticalOffset(0.1 * ui->verticalOffset->value());
0063         InactiveShadowConfiguration::setInnerColor(ui->innerColor->color());
0064         InactiveShadowConfiguration::setOuterColor(ui->outerColor->color());
0065         InactiveShadowConfiguration::setUseOuterColor(ui->useOuterColor->isChecked());
0066 
0067         InactiveShadowConfiguration::setEnabled(isChecked());
0068         InactiveShadowConfiguration::self()->save();
0069     }
0070 }
0071 
0072 //_________________________________________________________
0073 void ShadowConfigWidget::updateChanged(void)
0074 {
0075     if (_group == QPalette::Active) {
0076         setChanged((ui->shadowSize->value() != ActiveShadowConfiguration::shadowSize())
0077                    || (ui->verticalOffset->value() != 10 * ActiveShadowConfiguration::verticalOffset())
0078                    || (ui->innerColor->color() != ActiveShadowConfiguration::innerColor())
0079                    || (ui->useOuterColor->isChecked() != ActiveShadowConfiguration::useOuterColor())
0080                    || (ui->outerColor->color() != ActiveShadowConfiguration::outerColor()) || (isChecked() != ActiveShadowConfiguration::enabled()));
0081 
0082     } else if (_group == QPalette::Inactive) {
0083         setChanged((ui->shadowSize->value() != InactiveShadowConfiguration::shadowSize())
0084                    || (ui->verticalOffset->value() != 10 * InactiveShadowConfiguration::verticalOffset())
0085                    || (ui->innerColor->color() != InactiveShadowConfiguration::innerColor())
0086                    || (ui->useOuterColor->isChecked() != InactiveShadowConfiguration::useOuterColor())
0087                    || (ui->outerColor->color() != InactiveShadowConfiguration::outerColor()) || (isChecked() != InactiveShadowConfiguration::enabled()));
0088     }
0089 }
0090 
0091 //_________________________________________________________
0092 void ShadowConfigWidget::load(bool defaults)
0093 {
0094     if (_group == QPalette::Active) {
0095         if (defaults)
0096             ActiveShadowConfiguration::self()->setDefaults();
0097         else {
0098             ActiveShadowConfiguration::self()->load();
0099         }
0100 
0101         ui->shadowSize->setValue(ActiveShadowConfiguration::shadowSize());
0102         ui->verticalOffset->setValue(10 * ActiveShadowConfiguration::verticalOffset());
0103         ui->innerColor->setColor(ActiveShadowConfiguration::innerColor());
0104         ui->outerColor->setColor(ActiveShadowConfiguration::outerColor());
0105         ui->useOuterColor->setChecked(ActiveShadowConfiguration::useOuterColor());
0106 
0107         setChecked(ActiveShadowConfiguration::enabled());
0108 
0109     } else if (_group == QPalette::Inactive) {
0110         if (defaults)
0111             InactiveShadowConfiguration::self()->setDefaults();
0112         else {
0113             InactiveShadowConfiguration::self()->load();
0114         }
0115 
0116         ui->shadowSize->setValue(InactiveShadowConfiguration::shadowSize());
0117         ui->verticalOffset->setValue(10 * InactiveShadowConfiguration::verticalOffset());
0118         ui->innerColor->setColor(InactiveShadowConfiguration::innerColor());
0119         ui->outerColor->setColor(InactiveShadowConfiguration::outerColor());
0120         ui->useOuterColor->setChecked(InactiveShadowConfiguration::useOuterColor());
0121 
0122         setChecked(InactiveShadowConfiguration::enabled());
0123     }
0124 }
0125 }