File indexing completed on 2025-04-27 03:58:32
0001 /* ============================================================ 0002 * 0003 * This file is a part of digiKam project 0004 * https://www.digikam.org 0005 * 0006 * Date : 2013-04-29 0007 * Description : a full screen settings widget 0008 * 0009 * SPDX-FileCopyrightText: 2013-2024 by Gilles Caulier <caulier dot gilles at gmail dot com> 0010 * 0011 * SPDX-License-Identifier: GPL-2.0-or-later 0012 * 0013 * ============================================================ */ 0014 0015 #include "fullscreensettings.h" 0016 0017 // Qt includes 0018 0019 #include <QString> 0020 #include <QVBoxLayout> 0021 #include <QCheckBox> 0022 #include <QApplication> 0023 #include <QStyle> 0024 0025 // KDE includes 0026 0027 #include <kconfiggroup.h> 0028 #include <klocalizedstring.h> 0029 0030 // Local includes 0031 0032 #include "dxmlguiwindow.h" 0033 0034 namespace Digikam 0035 { 0036 0037 class Q_DECL_HIDDEN FullScreenSettings::Private 0038 { 0039 public: 0040 0041 explicit Private() 0042 : options (FS_NONE), 0043 hideToolBars (nullptr), 0044 hideThumbBar (nullptr), 0045 hideSideBars (nullptr), 0046 hideStatusBar(nullptr) 0047 { 0048 } 0049 0050 int options; 0051 0052 QCheckBox* hideToolBars; 0053 QCheckBox* hideThumbBar; 0054 QCheckBox* hideSideBars; 0055 QCheckBox* hideStatusBar; 0056 }; 0057 0058 FullScreenSettings::FullScreenSettings(int options, QWidget* const parent) 0059 : QGroupBox(i18n("Full-screen Options"), parent), 0060 d(new Private) 0061 { 0062 const int spacing = qMin(QApplication::style()->pixelMetric(QStyle::PM_LayoutHorizontalSpacing), 0063 QApplication::style()->pixelMetric(QStyle::PM_LayoutVerticalSpacing)); 0064 0065 d->options = options; 0066 QVBoxLayout* const vlay = new QVBoxLayout(this); 0067 d->hideToolBars = new QCheckBox(i18n("H&ide toolbars"), this); 0068 d->hideToolBars->setWhatsThis(i18n("Hide all toolbars when window switch in full-screen mode.")); 0069 0070 d->hideThumbBar = new QCheckBox(i18n("Hide &thumbbar"), this); 0071 d->hideThumbBar->setWhatsThis(i18n("Hide thumbbar view when window switch in full-screen mode.")); 0072 0073 d->hideSideBars = new QCheckBox(i18n("Hide &sidebars"), this); 0074 d->hideSideBars->setWhatsThis(i18n("Hide all side-bars when window switch in full-screen mode.")); 0075 0076 d->hideStatusBar = new QCheckBox(i18n("Hide st&atusbar"), this); 0077 d->hideStatusBar->setWhatsThis(i18n("Hide statusbar when window switch in full-screen mode.")); 0078 0079 vlay->addWidget(d->hideToolBars); 0080 vlay->addWidget(d->hideThumbBar); 0081 vlay->addWidget(d->hideSideBars); 0082 vlay->addWidget(d->hideStatusBar); 0083 vlay->setContentsMargins(spacing, spacing, spacing, spacing); 0084 vlay->setSpacing(0); 0085 0086 if (!(options & FS_TOOLBARS)) 0087 { 0088 d->hideToolBars->hide(); 0089 } 0090 0091 if (!(options & FS_THUMBBAR)) 0092 { 0093 d->hideThumbBar->hide(); 0094 } 0095 0096 if (!(options & FS_SIDEBARS)) 0097 { 0098 d->hideSideBars->hide(); 0099 } 0100 0101 if (!(options & FS_STATUSBAR)) 0102 { 0103 d->hideStatusBar->hide(); 0104 } 0105 } 0106 0107 FullScreenSettings::~FullScreenSettings() 0108 { 0109 delete d; 0110 } 0111 0112 void FullScreenSettings::readSettings(const KConfigGroup& group) 0113 { 0114 if (d->options & FS_TOOLBARS) 0115 { 0116 d->hideToolBars->setChecked(group.readEntry(s_configFullScreenHideToolBarsEntry, false)); 0117 } 0118 0119 if (d->options & FS_THUMBBAR) 0120 { 0121 d->hideThumbBar->setChecked(group.readEntry(s_configFullScreenHideThumbBarEntry, true)); 0122 } 0123 0124 if (d->options & FS_SIDEBARS) 0125 { 0126 d->hideSideBars->setChecked(group.readEntry(s_configFullScreenHideSideBarsEntry, false)); 0127 } 0128 0129 if (d->options & FS_STATUSBAR) 0130 { 0131 d->hideStatusBar->setChecked(group.readEntry(s_configFullScreenHideStatusBarEntry, false)); 0132 } 0133 } 0134 0135 void FullScreenSettings::saveSettings(KConfigGroup& group) 0136 { 0137 if (d->options & FS_TOOLBARS) 0138 { 0139 group.writeEntry(s_configFullScreenHideToolBarsEntry, d->hideToolBars->isChecked()); 0140 } 0141 0142 if (d->options & FS_THUMBBAR) 0143 { 0144 group.writeEntry(s_configFullScreenHideThumbBarEntry, d->hideThumbBar->isChecked()); 0145 } 0146 0147 if (d->options & FS_SIDEBARS) 0148 { 0149 group.writeEntry(s_configFullScreenHideSideBarsEntry, d->hideSideBars->isChecked()); 0150 } 0151 0152 if (d->options & FS_STATUSBAR) 0153 { 0154 group.writeEntry(s_configFullScreenHideStatusBarEntry, d->hideStatusBar->isChecked()); 0155 } 0156 0157 group.sync(); 0158 } 0159 0160 } // namespace Digikam 0161 0162 #include "moc_fullscreensettings.cpp"