File indexing completed on 2024-04-28 17:06:09

0001 /*
0002     SPDX-FileCopyrightText: 2004 Jonas Bähr <krusader@users.sourceforge.net>
0003     SPDX-FileCopyrightText: 2004-2022 Krusader Krew <https://krusader.org>
0004 
0005     SPDX-License-Identifier: GPL-2.0-or-later
0006 */
0007 
0008 #include "kguseractions.h"
0009 #include "../ActionMan/actionman.h"
0010 #include "../defaults.h"
0011 
0012 // QtWidgets
0013 #include <QGridLayout>
0014 #include <QLabel>
0015 #include <QPushButton>
0016 
0017 #include <KI18n/KLocalizedString>
0018 
0019 KgUserActions::KgUserActions(bool first, QWidget *parent)
0020     : KonfiguratorPage(first, parent)
0021 {
0022     QWidget *innerWidget = new QFrame(this);
0023     setWidget(innerWidget);
0024     setWidgetResizable(true);
0025     auto *kgUserActionLayout = new QGridLayout(innerWidget);
0026 
0027     // ============= Info Group =============
0028     QGroupBox *InfoGroup = createFrame(i18n("Information"), innerWidget);
0029     QGridLayout *InfoGrid = createGridLayout(InfoGroup);
0030 
0031     // terminal for the UserActions
0032     QLabel *labelInfo = new QLabel(i18n("Here you can configure settings about useractions.\n"
0033                                         "To set up, configure and manage your useractions please use ActionMan."),
0034                                    InfoGroup);
0035     InfoGrid->addWidget(labelInfo, 0, 0);
0036     QPushButton *actionmanButton = new QPushButton(i18n("Start ActionMan"), InfoGroup);
0037     connect(actionmanButton, &QPushButton::clicked, this, &KgUserActions::startActionMan);
0038     InfoGrid->addWidget(actionmanButton, 1, 0);
0039 
0040     kgUserActionLayout->addWidget(InfoGroup, 0, 0);
0041 
0042     // ============= Terminal Group =============
0043     QGroupBox *terminalGroup = createFrame(i18n("Terminal execution"), innerWidget);
0044     QGridLayout *terminalGrid = createGridLayout(terminalGroup);
0045 
0046     // terminal for the UserActions
0047     QLabel *labelTerminal = new QLabel(i18n("Terminal for UserActions:"), terminalGroup);
0048     terminalGrid->addWidget(labelTerminal, 0, 0);
0049     KonfiguratorURLRequester *urlReqUserActions =
0050         createURLRequester("UserActions", "Terminal", _UserActions_Terminal, labelTerminal, terminalGroup, false, QString(), FIRST_PAGE, false);
0051     terminalGrid->addWidget(urlReqUserActions, 0, 1);
0052     labelTerminal = new QLabel(i18n("%t will be replaced by the title of the action,\n%d with the workdir."), terminalGroup);
0053     terminalGrid->addWidget(labelTerminal, 1, 1);
0054 
0055     kgUserActionLayout->addWidget(terminalGroup, 1, 0);
0056 
0057     // ============= Outputcollection Group =============
0058     QGroupBox *outputGroup = createFrame(i18n("Output collection"), innerWidget);
0059     QGridLayout *outputGrid = createGridLayout(outputGroup);
0060 
0061     QWidget *hboxWidget = new QWidget(outputGroup);
0062     auto *hbox = new QHBoxLayout(hboxWidget);
0063     QLabel *lbel = new QLabel(i18n("Normal font:"), hboxWidget);
0064     hbox->addWidget(lbel);
0065 
0066     KonfiguratorFontChooser *chser = createFontChooser("UserActions", "Normal Font", _UserActions_NormalFont, lbel, hboxWidget);
0067     hbox->addWidget(chser);
0068 
0069     QWidget *spcer = createSpacer(hboxWidget);
0070     hbox->addWidget(spcer);
0071     outputGrid->addWidget(hboxWidget, 2, 0);
0072 
0073     hboxWidget = new QWidget(outputGroup);
0074     hbox = new QHBoxLayout(hboxWidget);
0075 
0076     lbel = new QLabel(i18n("Font with fixed width:"), hboxWidget);
0077     hbox->addWidget(lbel);
0078 
0079     chser = createFontChooser("UserActions", "Fixed Font", _UserActions_FixedFont, lbel, hboxWidget);
0080     hbox->addWidget(chser);
0081 
0082     spcer = createSpacer(hboxWidget);
0083     hbox->addWidget(spcer);
0084 
0085     outputGrid->addWidget(hboxWidget, 3, 0);
0086 
0087     KonfiguratorCheckBox *useFixed =
0088         createCheckBox("UserActions", "Use Fixed Font", _UserActions_UseFixedFont, i18n("Use fixed width font as default"), outputGroup);
0089     outputGrid->addWidget(useFixed, 4, 0);
0090 
0091     kgUserActionLayout->addWidget(outputGroup, 2, 0);
0092 }
0093 
0094 void KgUserActions::startActionMan()
0095 {
0096     ActionMan actionMan(static_cast<QWidget *>(this));
0097 }