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 }