File indexing completed on 2024-12-01 08:07:26
0001 /* 0002 SPDX-FileCopyrightText: 2020 Michail Vourlakos <mvourlakos@gmail.com> 0003 SPDX-License-Identifier: GPL-2.0-or-later 0004 */ 0005 0006 #include "detailsdialog.h" 0007 0008 // local 0009 #include "ui_detailsdialog.h" 0010 #include "detailshandler.h" 0011 #include "../settingsdialog/layoutscontroller.h" 0012 0013 namespace Latte { 0014 namespace Settings { 0015 namespace Dialog { 0016 0017 DetailsDialog::DetailsDialog(SettingsDialog *parent, Controller::Layouts *controller) 0018 : GenericDialog(parent), 0019 m_parentDlg(parent), 0020 m_ui(new Ui::DetailsDialog), 0021 m_layoutsController(controller), 0022 m_storage(KConfigGroup(KSharedConfig::openConfig(),"LatteSettingsDialog").group("DetailsDialog")) 0023 { 0024 setAttribute(Qt::WA_DeleteOnClose, true); 0025 loadConfig(); 0026 0027 //! first we need to setup the ui 0028 m_ui->setupUi(this); 0029 //! we must create handlers after creating/adjusting the ui 0030 m_handler = new Handler::DetailsHandler(this); 0031 0032 connect(m_handler, &Handler::DetailsHandler::currentLayoutChanged, this, &DetailsDialog::updateApplyButtonsState); 0033 connect(m_handler, &Handler::DetailsHandler::dataChanged, this, &DetailsDialog::updateApplyButtonsState); 0034 0035 connect(m_ui->buttonBox->button(QDialogButtonBox::Ok), &QPushButton::clicked, 0036 this, &DetailsDialog::onOk); 0037 0038 connect(m_ui->buttonBox->button(QDialogButtonBox::Cancel), &QPushButton::clicked, 0039 this, &DetailsDialog::onCancel); 0040 0041 connect(m_ui->buttonBox->button(QDialogButtonBox::Reset), &QPushButton::clicked, 0042 this, &DetailsDialog::onReset); 0043 0044 resize(m_windowSize); 0045 updateApplyButtonsState(); 0046 } 0047 0048 DetailsDialog::~DetailsDialog() 0049 { 0050 saveConfig(); 0051 } 0052 0053 Controller::Layouts *DetailsDialog::layoutsController() const 0054 { 0055 return m_layoutsController; 0056 } 0057 0058 Ui::DetailsDialog *DetailsDialog::ui() const 0059 { 0060 return m_ui; 0061 } 0062 0063 Latte::Corona *DetailsDialog::corona() const 0064 { 0065 return m_parentDlg->corona(); 0066 } 0067 0068 void DetailsDialog::updateApplyButtonsState() 0069 { 0070 if (m_handler->hasChangedData()) { 0071 m_ui->buttonBox->button(QDialogButtonBox::Ok)->setEnabled(true); 0072 m_ui->buttonBox->button(QDialogButtonBox::Reset)->setEnabled(true); 0073 } else { 0074 m_ui->buttonBox->button(QDialogButtonBox::Ok)->setEnabled(false); 0075 m_ui->buttonBox->button(QDialogButtonBox::Reset)->setEnabled(false); 0076 } 0077 } 0078 0079 void DetailsDialog::accept() 0080 { 0081 qDebug() << Q_FUNC_INFO; 0082 } 0083 0084 void DetailsDialog::onOk() 0085 { 0086 qDebug() << Q_FUNC_INFO; 0087 m_handler->save(); 0088 close(); 0089 } 0090 0091 void DetailsDialog::onCancel() 0092 { 0093 qDebug() << Q_FUNC_INFO; 0094 close(); 0095 } 0096 0097 void DetailsDialog::onReset() 0098 { 0099 qDebug() << Q_FUNC_INFO; 0100 m_handler->reset(); 0101 } 0102 0103 void DetailsDialog::loadConfig() 0104 { 0105 m_windowSize = m_storage.readEntry("windowSize", QSize(560, 640)); 0106 } 0107 0108 void DetailsDialog::saveConfig() 0109 { 0110 m_storage.writeEntry("windowSize", size()); 0111 } 0112 0113 } 0114 } 0115 }