File indexing completed on 2024-05-19 05:38:25
0001 /* 0002 KCMStyle's container dialog for custom style setup dialogs 0003 0004 SPDX-FileCopyrightText: 2003 Maksim Orlovich <maksim.orlovich@kdemail.net> 0005 0006 SPDX-License-Identifier: GPL-2.0-only 0007 */ 0008 0009 #include "styleconfdialog.h" 0010 #include <KConfigGroup> 0011 #include <KLocalizedString> 0012 #include <QDialogButtonBox> 0013 #include <QPushButton> 0014 #include <QVBoxLayout> 0015 0016 StyleConfigDialog::StyleConfigDialog(QWidget *parent, const QString &styleName) 0017 : QDialog(parent) 0018 { 0019 setObjectName(QStringLiteral("StyleConfigDialog")); 0020 setModal(true); 0021 setWindowTitle(i18n("Configure %1", styleName)); 0022 QVBoxLayout *mainLayout = new QVBoxLayout(this); 0023 0024 QWidget *mainWidget = new QWidget(this); 0025 QDialogButtonBox *buttonBox = new QDialogButtonBox(QDialogButtonBox::Ok | QDialogButtonBox::Cancel | QDialogButtonBox::RestoreDefaults, this); 0026 mainLayout->addWidget(mainWidget); 0027 0028 mMainLayout = new QHBoxLayout(mainWidget); 0029 mMainLayout->setContentsMargins(0, 0, 0, 0); 0030 0031 QPushButton *okButton = buttonBox->button(QDialogButtonBox::Ok); 0032 okButton->setDefault(true); 0033 okButton->setShortcut(Qt::CTRL | Qt::Key_Return); 0034 connect(buttonBox, &QDialogButtonBox::accepted, this, &StyleConfigDialog::slotAccept); 0035 connect(buttonBox, &QDialogButtonBox::rejected, this, &QDialog::reject); 0036 connect(buttonBox->button(QDialogButtonBox::RestoreDefaults), &QPushButton::clicked, this, &StyleConfigDialog::defaults); 0037 mainLayout->addWidget(buttonBox); 0038 0039 buttonBox->button(QDialogButtonBox::Cancel)->setDefault(true); 0040 m_dirty = false; 0041 } 0042 0043 bool StyleConfigDialog::isDirty() const 0044 { 0045 return m_dirty; 0046 } 0047 0048 void StyleConfigDialog::setDirty(bool dirty) 0049 { 0050 m_dirty = dirty; 0051 } 0052 0053 void StyleConfigDialog::slotAccept() 0054 { 0055 Q_EMIT save(); 0056 QDialog::accept(); 0057 } 0058 0059 void StyleConfigDialog::setMainWidget(QWidget *w) 0060 { 0061 mMainLayout->addWidget(w); 0062 }