File indexing completed on 2024-05-05 17:56:43
0001 /* 0002 SPDX-FileCopyrightText: 2006 Jonas Bähr <jonas.baehr@web.de> 0003 SPDX-FileCopyrightText: 2006-2022 Krusader Krew <https://krusader.org> 0004 0005 SPDX-License-Identifier: GPL-2.0-or-later 0006 */ 0007 0008 #include "actionman.h" 0009 0010 // QtWidgets 0011 #include <QDialogButtonBox> 0012 #include <QPushButton> 0013 #include <QVBoxLayout> 0014 0015 #include <KI18n/KLocalizedString> 0016 #include <KWidgetsAddons/KMessageBox> 0017 0018 #include "../UserAction/useraction.h" 0019 #include "../krusader.h" 0020 #include "useractionpage.h" 0021 0022 ActionMan::ActionMan(QWidget *parent) 0023 : QDialog(parent) 0024 { 0025 setWindowModality(Qt::WindowModal); 0026 setWindowTitle(i18n("ActionMan - Manage Your Useractions")); 0027 0028 auto *mainLayout = new QVBoxLayout; 0029 setLayout(mainLayout); 0030 0031 userActionPage = new UserActionPage(this); 0032 mainLayout->addWidget(userActionPage); 0033 0034 QDialogButtonBox *buttonBox = new QDialogButtonBox(QDialogButtonBox::Close | QDialogButtonBox::Apply); 0035 mainLayout->addWidget(buttonBox); 0036 0037 applyButton = buttonBox->button(QDialogButtonBox::Apply); 0038 applyButton->setEnabled(false); 0039 0040 connect(buttonBox, &QDialogButtonBox::rejected, this, &ActionMan::slotClose); 0041 connect(applyButton, &QPushButton::clicked, this, &ActionMan::slotApply); 0042 connect(userActionPage, &UserActionPage::changed, this, &ActionMan::slotEnableApplyButton); 0043 connect(userActionPage, &UserActionPage::applied, this, &ActionMan::slotDisableApplyButton); 0044 0045 exec(); 0046 0047 krApp->updateUserActions(); 0048 } 0049 0050 ActionMan::~ActionMan() = default; 0051 0052 void ActionMan::slotClose() 0053 { 0054 if (userActionPage->readyToQuit()) 0055 reject(); 0056 } 0057 0058 void ActionMan::slotApply() 0059 { 0060 userActionPage->applyChanges(); 0061 } 0062 0063 void ActionMan::slotEnableApplyButton() 0064 { 0065 applyButton->setEnabled(true); 0066 } 0067 0068 void ActionMan::slotDisableApplyButton() 0069 { 0070 applyButton->setEnabled(false); 0071 }