File indexing completed on 2024-12-01 04:37:16

0001 /*
0002     This configuration page takes care of all settings concerning the
0003     user interface
0004 
0005     SPDX-FileCopyrightText: 2006-2022 Alexander Reinholdt <alexander.reinholdt@kdemail.net>
0006     SPDX-License-Identifier: GPL-2.0-or-later
0007 */
0008 
0009 // application specific includes
0010 #include "smb4kconfigpageuserinterface.h"
0011 #include "core/smb4ksettings.h"
0012 
0013 // Qt includes
0014 #include <QCheckBox>
0015 #include <QGridLayout>
0016 #include <QGroupBox>
0017 #include <QLabel>
0018 #include <QRadioButton>
0019 #include <QVBoxLayout>
0020 
0021 // KDE includes
0022 #include <KComboBox>
0023 #include <KLocalizedString>
0024 
0025 Smb4KConfigPageUserInterface::Smb4KConfigPageUserInterface(QWidget *parent)
0026     : QWidget(parent)
0027 {
0028     //
0029     // Layout
0030     //
0031     QVBoxLayout *layout = new QVBoxLayout(this);
0032 
0033     //
0034     // Main Window settings
0035     //
0036     QGroupBox *mainWindowBox = new QGroupBox(i18n("Main Window"), this);
0037     QGridLayout *mainWindowBoxLayout = new QGridLayout(mainWindowBox);
0038 
0039     QLabel *tabOrientationLabel = new QLabel(Smb4KSettings::self()->mainWindowTabOrientationItem()->label(), mainWindowBox);
0040 
0041     KComboBox *tabOrientation = new KComboBox(mainWindowBox);
0042     tabOrientation->setObjectName(QStringLiteral("kcfg_MainWindowTabOrientation"));
0043 
0044     QList<KCoreConfigSkeleton::ItemEnum::Choice> tabOrientationChoices = Smb4KSettings::self()->mainWindowTabOrientationItem()->choices();
0045 
0046     for (const KCoreConfigSkeleton::ItemEnum::Choice &to : qAsConst(tabOrientationChoices)) {
0047         tabOrientation->addItem(to.label);
0048     }
0049 
0050     mainWindowBoxLayout->addWidget(tabOrientationLabel, 0, 0);
0051     mainWindowBoxLayout->addWidget(tabOrientation, 0, 1);
0052 
0053     QCheckBox *showBookmarkLabel = new QCheckBox(Smb4KSettings::self()->showCustomBookmarkLabelItem()->label(), this);
0054     showBookmarkLabel->setObjectName(QStringLiteral("kcfg_ShowCustomBookmarkLabel"));
0055 
0056     mainWindowBoxLayout->addWidget(showBookmarkLabel, 1, 0, 1, 2);
0057 
0058     layout->addWidget(mainWindowBox);
0059 
0060     //
0061     // Network Neighborhood settings
0062     //
0063     QGroupBox *networkNeighborhoodBox = new QGroupBox(i18n("Network Neighborhood"), this);
0064     QGridLayout *networkNeighborhoodBoxLayout = new QGridLayout(networkNeighborhoodBox);
0065 
0066     QLabel *iconSizeNetworkNeighborhoodLabel = new QLabel(Smb4KSettings::self()->networkBrowserIconSizeItem()->label(), networkNeighborhoodBox);
0067     QSlider *iconSizeNetworkNeighborhood = new QSlider(Qt::Horizontal, networkNeighborhoodBox);
0068     iconSizeNetworkNeighborhood->setObjectName(QStringLiteral("kcfg_NetworkBrowserIconSize"));
0069     iconSizeNetworkNeighborhood->setPageStep(16);
0070     iconSizeNetworkNeighborhood->setSingleStep(16);
0071     iconSizeNetworkNeighborhood->setTickPosition(QSlider::TicksBelow);
0072 
0073     networkNeighborhoodBoxLayout->addWidget(iconSizeNetworkNeighborhoodLabel, 0, 0);
0074     networkNeighborhoodBoxLayout->addWidget(iconSizeNetworkNeighborhood, 0, 1);
0075 
0076     QCheckBox *autoExpand = new QCheckBox(Smb4KSettings::self()->autoExpandNetworkItemsItem()->label(), networkNeighborhoodBox);
0077     autoExpand->setObjectName(QStringLiteral("kcfg_AutoExpandNetworkItems"));
0078 
0079     networkNeighborhoodBoxLayout->addWidget(autoExpand, 1, 0);
0080 
0081     QCheckBox *showType = new QCheckBox(Smb4KSettings::self()->showTypeItem()->label(), networkNeighborhoodBox);
0082     showType->setObjectName(QStringLiteral("kcfg_ShowType"));
0083 
0084     networkNeighborhoodBoxLayout->addWidget(showType, 1, 1);
0085 
0086     QCheckBox *showIpAddress = new QCheckBox(Smb4KSettings::self()->showIPAddressItem()->label(), networkNeighborhoodBox);
0087     showIpAddress->setObjectName(QStringLiteral("kcfg_ShowIPAddress"));
0088 
0089     networkNeighborhoodBoxLayout->addWidget(showIpAddress, 2, 0);
0090 
0091     QCheckBox *showComment = new QCheckBox(Smb4KSettings::self()->showCommentItem()->label(), networkNeighborhoodBox);
0092     showComment->setObjectName(QStringLiteral("kcfg_ShowComment"));
0093 
0094     networkNeighborhoodBoxLayout->addWidget(showComment, 2, 1);
0095 
0096     QCheckBox *showNetworkTooltip = new QCheckBox(Smb4KSettings::self()->showNetworkItemToolTipItem()->label(), networkNeighborhoodBox);
0097     showNetworkTooltip->setObjectName(QStringLiteral("kcfg_ShowNetworkItemToolTip"));
0098 
0099     networkNeighborhoodBoxLayout->addWidget(showNetworkTooltip, 3, 0);
0100 
0101     layout->addWidget(networkNeighborhoodBox);
0102 
0103     //
0104     // Shares View settings
0105     //
0106     QGroupBox *sharesViewBox = new QGroupBox(i18n("Shares View"), this);
0107     QGridLayout *sharesViewBoxLayout = new QGridLayout(sharesViewBox);
0108 
0109     QLabel *viewModeLabel = new QLabel(Smb4KSettings::self()->sharesViewModeItem()->label(), sharesViewBox);
0110 
0111     KComboBox *viewMode = new KComboBox(sharesViewBox);
0112     viewMode->setObjectName(QStringLiteral("kcfg_SharesViewMode"));
0113 
0114     QList<KCoreConfigSkeleton::ItemEnum::Choice> sharesViewModeChoices = Smb4KSettings::self()->sharesViewModeItem()->choices();
0115 
0116     for (const KCoreConfigSkeleton::ItemEnum::Choice &vm : qAsConst(sharesViewModeChoices)) {
0117         viewMode->addItem(vm.label);
0118     }
0119 
0120     sharesViewBoxLayout->addWidget(viewModeLabel, 0, 0);
0121     sharesViewBoxLayout->addWidget(viewMode, 0, 1);
0122 
0123     QLabel *iconSizeSharesViewIconViewLabel = new QLabel(Smb4KSettings::self()->sharesViewIconSizeIconViewItem()->label(), sharesViewBox);
0124     QSlider *iconSizeSharesViewIconView = new QSlider(Qt::Horizontal, sharesViewBox);
0125     iconSizeSharesViewIconView->setObjectName(QStringLiteral("kcfg_SharesViewIconSizeIconView"));
0126     iconSizeSharesViewIconView->setPageStep(16);
0127     iconSizeSharesViewIconView->setSingleStep(16);
0128     iconSizeSharesViewIconView->setTickPosition(QSlider::TicksBelow);
0129 
0130     sharesViewBoxLayout->addWidget(iconSizeSharesViewIconViewLabel, 1, 0);
0131     sharesViewBoxLayout->addWidget(iconSizeSharesViewIconView, 1, 1);
0132 
0133     QLabel *iconSizeSharesViewListViewLabel = new QLabel(Smb4KSettings::self()->sharesViewIconSizeListViewItem()->label(), sharesViewBox);
0134     QSlider *iconSizeSharesViewListView = new QSlider(Qt::Horizontal, sharesViewBox);
0135     iconSizeSharesViewListView->setObjectName(QStringLiteral("kcfg_SharesViewIconSizeListView"));
0136     iconSizeSharesViewListView->setPageStep(16);
0137     iconSizeSharesViewListView->setSingleStep(16);
0138     iconSizeSharesViewListView->setTickPosition(QSlider::TicksBelow);
0139 
0140     sharesViewBoxLayout->addWidget(iconSizeSharesViewListViewLabel, 2, 0);
0141     sharesViewBoxLayout->addWidget(iconSizeSharesViewListView, 2, 1);
0142 
0143     QCheckBox *showShareTooltip = new QCheckBox(Smb4KSettings::self()->showShareToolTipItem()->label(), sharesViewBox);
0144     showShareTooltip->setObjectName(QStringLiteral("kcfg_ShowShareToolTip"));
0145 
0146     sharesViewBoxLayout->addWidget(showShareTooltip, 3, 0, 1, 2);
0147 
0148     layout->addWidget(sharesViewBox);
0149     layout->addStretch(100);
0150 }
0151 
0152 Smb4KConfigPageUserInterface::~Smb4KConfigPageUserInterface()
0153 {
0154 }
0155 
0156 /////////////////////////////////////////////////////////////////////////////
0157 // SLOT IMPLEMENTATIONS
0158 /////////////////////////////////////////////////////////////////////////////