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

0001 /*
0002     SPDX-FileCopyrightText: 2004 Csaba Karai <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 "kgadvanced.h"
0009 #include "../defaults.h"
0010 
0011 // QtWidgets
0012 #include <QGridLayout>
0013 #include <QLabel>
0014 
0015 #include <KI18n/KLocalizedString>
0016 #include <KIOCore/KProtocolInfo>
0017 
0018 KgAdvanced::KgAdvanced(bool first, QWidget *parent)
0019     : KonfiguratorPage(first, parent)
0020 {
0021     QWidget *innerWidget = new QFrame(this);
0022     setWidget(innerWidget);
0023     setWidgetResizable(true);
0024     auto *kgAdvancedLayout = new QGridLayout(innerWidget);
0025     kgAdvancedLayout->setSpacing(6);
0026 
0027     //  -------------------------- GENERAL GROUPBOX ----------------------------------
0028 
0029     QGroupBox *generalGrp = createFrame(i18n("General"), innerWidget);
0030     QGridLayout *generalGrid = createGridLayout(generalGrp);
0031 
0032     KONFIGURATOR_CHECKBOX_PARAM generalSettings[] =
0033         //   cfg_class  cfg_name             default              text                                                        restart tooltip
0034         {{"Advanced",
0035           "AutoMount",
0036           _AutoMount,
0037           i18n("Automount filesystems"),
0038           false,
0039           i18n("When stepping into a folder which is defined as a mount point in the <b>fstab</b>, try mounting it with the defined parameters.")}};
0040 
0041     KonfiguratorCheckBoxGroup *generals = createCheckBoxGroup(1, 0, generalSettings, 1, generalGrp);
0042 
0043     generalGrid->addWidget(generals, 1, 0);
0044 
0045     QLabel *labelNonMount = addLabel(generalGrid, 2, 0, i18n("MountMan will not (un)mount the following mount-points:"), generalGrp);
0046     KonfiguratorEditBox *nonMountPoints = createEditBox("Advanced", "Nonmount Points", _NonMountPoints, labelNonMount, generalGrp, false);
0047     generalGrid->addWidget(nonMountPoints, 2, 1);
0048 
0049 #ifdef BSD
0050     generals->find("AutoMount")->setEnabled(false); /* disable AutoMount on BSD */
0051 #endif
0052 
0053     kgAdvancedLayout->addWidget(generalGrp, 0, 0);
0054 
0055     //  ----------------------- CONFIRMATIONS GROUPBOX -------------------------------
0056 
0057     QGroupBox *confirmGrp = createFrame(i18n("Confirmations"), innerWidget);
0058     QGridLayout *confirmGrid = createGridLayout(confirmGrp);
0059 
0060     addLabel(confirmGrid, 0, 0, i18n("\nRequest user confirmation for the following operations:\n"), confirmGrp);
0061 
0062     KONFIGURATOR_CHECKBOX_PARAM confirmations[] =
0063         //   cfg_class  cfg_name                default             text                                          restart ToolTip
0064         {{"Advanced", "Confirm Unempty Dir", _ConfirmUnemptyDir, i18n("Deleting non-empty folders"), false, ""},
0065          {"Advanced", "Confirm Delete", _ConfirmDelete, i18n("Deleting files"), false, ""},
0066          {"Advanced", "Confirm Copy", _ConfirmCopy, i18n("Copying files"), false, ""},
0067          {"Advanced", "Confirm Move", _ConfirmMove, i18n("Moving files"), false, ""},
0068          {"Advanced",
0069           "Confirm Feed to Listbox",
0070           _ConfirmFeedToListbox,
0071           i18n("Confirm feed to listbox"),
0072           false,
0073           i18n("Ask for a result name when feeding items to the listbox. By default the standard value is used.")},
0074          {"Notification Messages", "Confirm Remove UserAction", true, i18n("Removing Useractions"), false, ""}};
0075 
0076     KonfiguratorCheckBoxGroup *confWnd = createCheckBoxGroup(2, 0, confirmations, 6, confirmGrp);
0077 
0078     confirmGrid->addWidget(confWnd, 1, 0);
0079 
0080     kgAdvancedLayout->addWidget(confirmGrp, 1, 0);
0081 
0082     //  ------------------------ FINE-TUNING GROUPBOX --------------------------------
0083 
0084     QGroupBox *fineTuneGrp = createFrame(i18n("Fine-Tuning"), innerWidget);
0085     QGridLayout *fineTuneGrid = createGridLayout(fineTuneGrp);
0086     fineTuneGrid->setAlignment(Qt::AlignLeft | Qt::AlignTop);
0087 
0088     const QString cacheTip =
0089         i18n("The icon cache size influences how fast the contents of a panel can be displayed. However, too large a cache might consume your memory.");
0090     QLabel *label = new QLabel(i18n("Icon cache size (KB):"), fineTuneGrp);
0091     fineTuneGrid->addWidget(label, 0, 0);
0092     KonfiguratorSpinBox *spinBox = createSpinBox("Advanced", "Icon Cache Size", _IconCacheSize, 1, 8192, label, fineTuneGrp, false, cacheTip);
0093     spinBox->setSizePolicy(QSizePolicy::Fixed, QSizePolicy::Fixed);
0094     fineTuneGrid->addWidget(spinBox, 0, 1);
0095 
0096     QLabel *labelArgUpdate = addLabel(fineTuneGrid, 1, 0, i18n("Arguments of updatedb:"), fineTuneGrp);
0097     KonfiguratorEditBox *updatedbArgs = createEditBox("Locate", "UpdateDB Arguments", "", labelArgUpdate, fineTuneGrp, false);
0098     fineTuneGrid->addWidget(updatedbArgs, 1, 1);
0099 
0100     kgAdvancedLayout->addWidget(fineTuneGrp, 2, 0);
0101 }