diff options
| author | Peter Penz <[email protected]> | 2011-07-30 20:13:09 +0200 |
|---|---|---|
| committer | Peter Penz <[email protected]> | 2011-07-30 20:13:41 +0200 |
| commit | f23e9496f303995557b744c03178f5dbd9b35016 (patch) | |
| tree | 1139c4340ac173718d1fa847e0124d6175781fd9 /src/settings | |
| parent | 69e4007e5e330f2ca87c0176a186967b5ca156e8 (diff) | |
Merged very early alpha-version of Dolphin 2.0
Dolphin 2.0 will get a new view-engine with the
following improvements:
- Better performance
- Animated transitions
- No clipped filenames due to dynamic item-sizes
- Grouping support for all view-modes
- Non-rectangular selection areas
- Simplified code for better maintenance
More details will be provided in a blog-entry during
the next days.
Please note that the code is in a very
early alpha-stage and although the most tricky parts
have been implemented already very basic things like
drag and drop or selections have not been pushed yet.
Those things are rather trivial to implement but this
still will take some time.
Diffstat (limited to 'src/settings')
23 files changed, 114 insertions, 561 deletions
diff --git a/src/settings/additionalinfodialog.cpp b/src/settings/additionalinfodialog.cpp index 2e7d33cb3..9b47e928f 100644 --- a/src/settings/additionalinfodialog.cpp +++ b/src/settings/additionalinfodialog.cpp @@ -28,7 +28,7 @@ #include "views/additionalinfoaccessor.h" AdditionalInfoDialog::AdditionalInfoDialog(QWidget* parent, - KFileItemDelegate::InformationList infoList) : + const QList<DolphinView::AdditionalInfo>& infoList) : KDialog(parent), m_infoList(infoList), m_checkBoxes() @@ -49,8 +49,8 @@ AdditionalInfoDialog::AdditionalInfoDialog(QWidget* parent, // Add checkboxes const AdditionalInfoAccessor& infoAccessor = AdditionalInfoAccessor::instance(); - const KFileItemDelegate::InformationList keys = infoAccessor.keys(); - foreach (const KFileItemDelegate::Information info, keys) { + const QList<DolphinView::AdditionalInfo> keys = infoAccessor.keys(); + foreach (DolphinView::AdditionalInfo info, keys) { QCheckBox* checkBox = new QCheckBox(infoAccessor.translation(info), mainWidget); checkBox->setChecked(infoList.contains(info)); layout->addWidget(checkBox); @@ -75,7 +75,7 @@ AdditionalInfoDialog::~AdditionalInfoDialog() saveDialogSize(dialogConfig, KConfigBase::Persistent); } -KFileItemDelegate::InformationList AdditionalInfoDialog::informationList() const +QList<DolphinView::AdditionalInfo> AdditionalInfoDialog::informationList() const { return m_infoList; } @@ -84,9 +84,9 @@ void AdditionalInfoDialog::slotOk() { m_infoList.clear(); - const KFileItemDelegate::InformationList keys = AdditionalInfoAccessor::instance().keys(); + const QList<DolphinView::AdditionalInfo> keys = AdditionalInfoAccessor::instance().keys(); int index = 0; - foreach (const KFileItemDelegate::Information info, keys) { + foreach (DolphinView::AdditionalInfo info, keys) { if (m_checkBoxes[index]->isChecked()) { m_infoList.append(info); } diff --git a/src/settings/additionalinfodialog.h b/src/settings/additionalinfodialog.h index eca2c86c6..6f38f617c 100644 --- a/src/settings/additionalinfodialog.h +++ b/src/settings/additionalinfodialog.h @@ -20,8 +20,8 @@ #ifndef ADDITIONALINFODIALOG_H #define ADDITIONALINFODIALOG_H +#include <views/dolphinview.h> #include <KDialog> -#include <KFileItemDelegate> #include <QList> class QCheckBox; @@ -34,15 +34,15 @@ class AdditionalInfoDialog : public KDialog Q_OBJECT public: - AdditionalInfoDialog(QWidget* parent, KFileItemDelegate::InformationList infoList); + AdditionalInfoDialog(QWidget* parent, const QList<DolphinView::AdditionalInfo>& infoList); virtual ~AdditionalInfoDialog(); - KFileItemDelegate::InformationList informationList() const; + QList<DolphinView::AdditionalInfo> informationList() const; private slots: void slotOk(); private: - KFileItemDelegate::InformationList m_infoList; + QList<DolphinView::AdditionalInfo> m_infoList; QList<QCheckBox*> m_checkBoxes; }; diff --git a/src/settings/applyviewpropsjob.cpp b/src/settings/applyviewpropsjob.cpp index 4010ab477..dd9788851 100644 --- a/src/settings/applyviewpropsjob.cpp +++ b/src/settings/applyviewpropsjob.cpp @@ -32,8 +32,8 @@ ApplyViewPropsJob::ApplyViewPropsJob(const KUrl& dir, { m_viewProps = new ViewProperties(dir); m_viewProps->setViewMode(viewProps.viewMode()); - m_viewProps->setShowPreview(viewProps.showPreview()); - m_viewProps->setShowHiddenFiles(viewProps.showHiddenFiles()); + m_viewProps->setPreviewsShown(viewProps.previewsShown()); + m_viewProps->setHiddenFilesShown(viewProps.hiddenFilesShown()); m_viewProps->setSorting(viewProps.sorting()); m_viewProps->setSortOrder(viewProps.sortOrder()); diff --git a/src/settings/dolphin_columnmodesettings.kcfgc b/src/settings/dolphin_columnmodesettings.kcfgc deleted file mode 100644 index 55134335a..000000000 --- a/src/settings/dolphin_columnmodesettings.kcfgc +++ /dev/null @@ -1,4 +0,0 @@ -File=dolphin_columnmodesettings.kcfg -ClassName=ColumnModeSettings -Singleton=false -Mutators=true diff --git a/src/settings/dolphin_columnmodesettings.kcfg b/src/settings/dolphin_compactmodesettings.kcfg index 963d326cc..bb050d480 100644 --- a/src/settings/dolphin_columnmodesettings.kcfg +++ b/src/settings/dolphin_compactmodesettings.kcfg @@ -3,19 +3,19 @@ <kcfg xmlns="http://www.kde.org/standards/kcfg/1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.kde.org/standards/kcfg/1.0 - http://www.kde.org/standards/kcfg/1.0/kcfg.xsd" > - <include>kiconloader.h</include> + http://www.kde.org/standards/kcfg/1.0/kcfg.xsd"> <include>kglobalsettings.h</include> + <include>kiconloader.h</include> <kcfgfile name="dolphinrc"/> - <group name="ColumnMode"> - <entry name="FontFamily" type="String"> - <label>Font family</label> - <default code="true">KGlobalSettings::generalFont().family()</default> - </entry> + <group name="CompactMode"> <entry name="UseSystemFont" type="Bool"> <label>Use system font</label> <default>true</default> </entry> + <entry name="FontFamily" type="String"> + <label>Font family</label> + <default code="true">KGlobalSettings::generalFont().family()</default> + </entry> <entry name="FontSize" type="Double"> <label>Font size</label> <default code="true">KGlobalSettings::generalFont().pointSizeF()</default> @@ -30,15 +30,11 @@ </entry> <entry name="IconSize" type="Int"> <label>Icon size</label> - <default code="true">KIconLoader::SizeSmall</default> + <default code="true">KIconLoader::SizeMedium</default> </entry> <entry name="PreviewSize" type="Int"> <label>Preview size</label> - <default code="true">KIconLoader::SizeLarge</default> - </entry> - <entry name="ColumnWidth" type="Int"> - <label>Column width</label> - <default>250</default> + <default code="true">KIconLoader::SizeHuge</default> </entry> </group> </kcfg> diff --git a/src/settings/dolphin_compactmodesettings.kcfgc b/src/settings/dolphin_compactmodesettings.kcfgc new file mode 100644 index 000000000..8341185fa --- /dev/null +++ b/src/settings/dolphin_compactmodesettings.kcfgc @@ -0,0 +1,4 @@ +File=dolphin_compactmodesettings.kcfg +ClassName=CompactModeSettings +Singleton=yes +Mutators=true diff --git a/src/settings/dolphin_detailsmodesettings.kcfg b/src/settings/dolphin_detailsmodesettings.kcfg index d58e03809..0fb1bf0b5 100644 --- a/src/settings/dolphin_detailsmodesettings.kcfg +++ b/src/settings/dolphin_detailsmodesettings.kcfg @@ -36,10 +36,6 @@ <label>Preview size</label> <default code="true">KIconLoader::SizeLarge</default> </entry> - <entry name="ExpandableFolders" type="Bool"> - <label>Expandable folders</label> - <default>false</default> - </entry> <entry name="ColumnPositions" type="IntList"> <label>Position of columns</label> <default>0,1,2,3,4,5,6,7,8</default> diff --git a/src/settings/dolphin_detailsmodesettings.kcfgc b/src/settings/dolphin_detailsmodesettings.kcfgc index 06da2e9e0..7acfa3c7d 100644 --- a/src/settings/dolphin_detailsmodesettings.kcfgc +++ b/src/settings/dolphin_detailsmodesettings.kcfgc @@ -1,4 +1,4 @@ File=dolphin_detailsmodesettings.kcfg ClassName=DetailsModeSettings -Singleton=false +Singleton=yes Mutators=true diff --git a/src/settings/dolphin_directoryviewpropertysettings.kcfg b/src/settings/dolphin_directoryviewpropertysettings.kcfg index 004152063..7e62267a9 100644 --- a/src/settings/dolphin_directoryviewpropertysettings.kcfg +++ b/src/settings/dolphin_directoryviewpropertysettings.kcfg @@ -7,8 +7,8 @@ <kcfgfile arg="true" /> <group name="Settings"> - <entry name="ShowHiddenFiles" key="ShowDotFiles" type="Bool" > - <label context="@label">Show hidden files</label> + <entry name="HiddenFilesShown" type="Bool" > + <label context="@label">Hidden files shown</label> <whatsthis context="@info:whatsthis">When this option is enabled hidden files, such as those starting with a '.', will be shown in the file view.</whatsthis> <default>false</default> </entry> @@ -18,7 +18,7 @@ <entry name="Version" type="Int" > <label context="@label">Version</label> <whatsthis context="@info:whatsthis">This option defines the used version of the view properties.</whatsthis> - <default>1</default> + <default>2</default> <min>1</min> </entry> @@ -26,12 +26,10 @@ <label context="@label">View Mode</label> <whatsthis context="@info:whatsthis">This option controls the style of the view. Currently supported values include icons (0), details (1) and column (2) views.</whatsthis> <default>DolphinView::IconsView</default> - <min>0</min> - <max code="true">DolphinView::MaxModeEnum</max> </entry> - <entry name="ShowPreview" type="Bool" > - <label context="@label">Show preview</label> + <entry name="PreviewsShown" type="Bool" > + <label context="@label">Previews shown</label> <whatsthis context="@info:whatsthis">When this option is enabled, a preview of the file content is shown as an icon.</whatsthis> <default>false</default> </entry> @@ -46,8 +44,6 @@ <label context="@label">Sort files by</label> <whatsthis context="@info:whatsthis">This option defines which attribute (name, size, date, etc.) sorting is performed on.</whatsthis> <default code="true">DolphinView::SortByName</default> - <min>0</min> - <max code="true">DolphinView::MaxSortingEnum</max> </entry> <entry name="SortOrder" type="Int" > @@ -62,12 +58,7 @@ <default>true</default> </entry> - <entry name="AdditionalInfo" type="Int"> - <label context="@label">Additional information (deprecated, use AdditionInfoV2 instead)</label> - <default>0</default> - </entry> - - <entry name="AdditionalInfoV2" type="StringList"> + <entry name="AdditionalInfo" type="StringList"> <label context="@label">Additional information</label> <default></default> </entry> diff --git a/src/settings/dolphin_iconsmodesettings.kcfg b/src/settings/dolphin_iconsmodesettings.kcfg index f50ab3ead..fb01a8c65 100644 --- a/src/settings/dolphin_iconsmodesettings.kcfg +++ b/src/settings/dolphin_iconsmodesettings.kcfg @@ -6,13 +6,8 @@ http://www.kde.org/standards/kcfg/1.0/kcfg.xsd"> <include>kglobalsettings.h</include> <include>kiconloader.h</include> - <include>QListView</include> <kcfgfile name="dolphinrc"/> <group name="IconsMode"> - <entry name="Arrangement" type="Int"> - <label>Arrangement</label> - <default code="true">QListView::TopToBottom</default> - </entry> <entry name="UseSystemFont" type="Bool"> <label>Use system font</label> <default>true</default> @@ -33,38 +28,17 @@ <label>Font weight</label> <default>0</default> </entry> - <entry name="ItemHeight" type="Int"> - <label>Item height</label> - <!-- - check 'void IconsViewSettingsPage::applySettings()' as reference (iconsviewsettingspage.cpp): - itemHeight += fontHeight * numberOfTextlines + 10; - /--> - <default code="true">KIconLoader::SizeMedium + QFontMetrics(KGlobalSettings::generalFont()).height() * 2 + 10</default> - </entry> - <entry name="ItemWidth" type="Int"> - <label>Item width</label> - <!-- - check 'void IconsViewSettingsPage::applySettings()' as reference (iconsviewsettingspage.cpp): - itemWidth = TopToBottomBase + textSizeIndex * TopToBottomInc; - /--> - <default>96</default> - </entry> - <entry name="GridSpacing" type="Int"> - <label>Grid spacing</label> - <default>8</default> - </entry> <entry name="IconSize" type="Int"> <label>Icon size</label> <default code="true">KIconLoader::SizeMedium</default> </entry> - <entry name="NumberOfTextlines" type="Int"> - <label>Number of textlines</label> - <!-- don't forget adjusting the "ItemHeight" too when changing this value /--> - <default>2</default> - </entry> <entry name="PreviewSize" type="Int"> <label>Preview size</label> <default code="true">KIconLoader::SizeHuge</default> </entry> + <entry name="TextWidthIndex" type="Int"> + <label>Text width index</label> + <default>1</default> + </entry> </group> </kcfg> diff --git a/src/settings/dolphin_iconsmodesettings.kcfgc b/src/settings/dolphin_iconsmodesettings.kcfgc index 9987ce938..9ab145bc2 100644 --- a/src/settings/dolphin_iconsmodesettings.kcfgc +++ b/src/settings/dolphin_iconsmodesettings.kcfgc @@ -1,4 +1,4 @@ File=dolphin_iconsmodesettings.kcfg ClassName=IconsModeSettings -Singleton=false +Singleton=yes Mutators=true diff --git a/src/settings/dolphinsettings.cpp b/src/settings/dolphinsettings.cpp index 7f160b141..9fc0cea3d 100644 --- a/src/settings/dolphinsettings.cpp +++ b/src/settings/dolphinsettings.cpp @@ -25,7 +25,6 @@ #include <KLocale> #include <KStandardDirs> -#include "dolphin_columnmodesettings.h" #include "dolphin_detailsmodesettings.h" #include "dolphin_generalsettings.h" #include "dolphin_iconsmodesettings.h" @@ -45,17 +44,11 @@ DolphinSettings& DolphinSettings::instance() void DolphinSettings::save() { m_generalSettings->writeConfig(); - m_iconsModeSettings->writeConfig(); - m_detailsModeSettings->writeConfig(); - m_columnModeSettings->writeConfig(); } DolphinSettings::DolphinSettings() { m_generalSettings = new GeneralSettings(); - m_iconsModeSettings = new IconsModeSettings(); - m_detailsModeSettings = new DetailsModeSettings(); - m_columnModeSettings = new ColumnModeSettings(); m_placesModel = new KFilePlacesModel(); } @@ -64,15 +57,6 @@ DolphinSettings::~DolphinSettings() delete m_generalSettings; m_generalSettings = 0; - delete m_iconsModeSettings; - m_iconsModeSettings = 0; - - delete m_detailsModeSettings; - m_detailsModeSettings = 0; - - delete m_columnModeSettings; - m_columnModeSettings = 0; - delete m_placesModel; m_placesModel = 0; } diff --git a/src/settings/dolphinsettings.h b/src/settings/dolphinsettings.h index 54141ad3e..88e1d2905 100644 --- a/src/settings/dolphinsettings.h +++ b/src/settings/dolphinsettings.h @@ -23,12 +23,11 @@ #include <libdolphin_export.h> -class ColumnModeSettings; -class DetailsModeSettings; class GeneralSettings; -class IconsModeSettings; class KFilePlacesModel; +// TODO: Remove this class completely and just work with the settings directly instead + /** * @brief Manages and stores all settings from Dolphin. * @@ -46,9 +45,6 @@ public: static DolphinSettings& instance(); GeneralSettings* generalSettings() const; - IconsModeSettings* iconsModeSettings() const; - DetailsModeSettings* detailsModeSettings() const; - ColumnModeSettings* columnModeSettings() const; KFilePlacesModel* placesModel() const; virtual void save(); @@ -59,9 +55,6 @@ protected: private: GeneralSettings* m_generalSettings; - IconsModeSettings* m_iconsModeSettings; - DetailsModeSettings* m_detailsModeSettings; - ColumnModeSettings* m_columnModeSettings; KFilePlacesModel* m_placesModel; }; @@ -70,21 +63,6 @@ inline GeneralSettings* DolphinSettings::generalSettings() const return m_generalSettings; } -inline IconsModeSettings* DolphinSettings::iconsModeSettings() const -{ - return m_iconsModeSettings; -} - -inline DetailsModeSettings* DolphinSettings::detailsModeSettings() const -{ - return m_detailsModeSettings; -} - -inline ColumnModeSettings* DolphinSettings::columnModeSettings() const -{ - return m_columnModeSettings; -} - inline KFilePlacesModel* DolphinSettings::placesModel() const { return m_placesModel; diff --git a/src/settings/kcm/kcmdolphinviewmodes.cpp b/src/settings/kcm/kcmdolphinviewmodes.cpp index b5ed44f63..4e49257ce 100644 --- a/src/settings/kcm/kcmdolphinviewmodes.cpp +++ b/src/settings/kcm/kcmdolphinviewmodes.cpp @@ -25,7 +25,6 @@ #include <KPluginFactory> #include <KPluginLoader> -#include <settings/viewmodes/columnviewsettingspage.h> #include <settings/viewmodes/detailsviewsettingspage.h> #include <settings/viewmodes/iconsviewsettingspage.h> @@ -59,19 +58,15 @@ DolphinViewModesConfigModule::DolphinViewModesConfigModule(QWidget* parent, cons tabWidget->addTab(iconsPage, KIcon("view-list-icons"), i18nc("@title:tab", "Icons")); connect(iconsPage, SIGNAL(changed()), this, SLOT(changed())); + // TODO: initialize 'Compact' tab + // initialize 'Details' tab DetailsViewSettingsPage* detailsPage = new DetailsViewSettingsPage(tabWidget); - tabWidget->addTab(detailsPage, KIcon("view-list-details"), i18nc("@title:tab", "Details")); + tabWidget->addTab(detailsPage, KIcon("view-list-text"), i18nc("@title:tab", "Details")); connect(detailsPage, SIGNAL(changed()), this, SLOT(changed())); - // initialize 'Column' tab - ColumnViewSettingsPage* columnPage = new ColumnViewSettingsPage(tabWidget); - tabWidget->addTab(columnPage, KIcon("view-file-columns"), i18nc("@title:tab", "Column")); - connect(columnPage, SIGNAL(changed()), this, SLOT(changed())); - m_pages.append(iconsPage); m_pages.append(detailsPage); - m_pages.append(columnPage); topLayout->addWidget(tabWidget, 0, 0); } diff --git a/src/settings/viewmodes/columnviewsettingspage.cpp b/src/settings/viewmodes/columnviewsettingspage.cpp deleted file mode 100644 index 888e35d4b..000000000 --- a/src/settings/viewmodes/columnviewsettingspage.cpp +++ /dev/null @@ -1,158 +0,0 @@ -/*************************************************************************** - * Copyright (C) 2006 by Peter Penz <[email protected]> * - * * - * This program is free software; you can redistribute it and/or modify * - * it under the terms of the GNU General Public License as published by * - * the Free Software Foundation; either version 2 of the License, or * - * (at your option) any later version. * - * * - * This program is distributed in the hope that it will be useful, * - * but WITHOUT ANY WARRANTY; without even the implied warranty of * - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * - * GNU General Public License for more details. * - * * - * You should have received a copy of the GNU General Public License * - * along with this program; if not, write to the * - * Free Software Foundation, Inc., * - * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA * - ***************************************************************************/ - -#include "columnviewsettingspage.h" - -#include "dolphinfontrequester.h" -#include <dolphin_columnmodesettings.h> -#include "iconsizegroupbox.h" - -#include <KDialog> -#include <KLocale> -#include <KComboBox> - -#include <settings/dolphinsettings.h> - -#include <QButtonGroup> -#include <QCheckBox> -#include <QGroupBox> -#include <QHBoxLayout> -#include <QLabel> -#include <QSlider> -#include <QRadioButton> - -#include <views/zoomlevelinfo.h> - -ColumnViewSettingsPage::ColumnViewSettingsPage(QWidget* parent) : - ViewSettingsPageBase(parent), - m_iconSizeGroupBox(0), - m_fontRequester(0), - m_textWidthBox(0) -{ - const int spacing = KDialog::spacingHint(); - const int margin = KDialog::marginHint(); - const QSizePolicy sizePolicy(QSizePolicy::Preferred, QSizePolicy::Fixed); - - setSpacing(spacing); - setMargin(margin); - - // Create "Icon" properties - m_iconSizeGroupBox = new IconSizeGroupBox(this); - m_iconSizeGroupBox->setSizePolicy(sizePolicy); - - const int min = ZoomLevelInfo::minimumLevel(); - const int max = ZoomLevelInfo::maximumLevel(); - m_iconSizeGroupBox->setDefaultSizeRange(min, max); - m_iconSizeGroupBox->setPreviewSizeRange(min, max); - - // create "Text" properties - QGroupBox* textGroup = new QGroupBox(i18nc("@title:group", "Text"), this); - textGroup->setSizePolicy(sizePolicy); - - QLabel* fontLabel = new QLabel(i18nc("@label:listbox", "Font:"), textGroup); - m_fontRequester = new DolphinFontRequester(textGroup); - - QLabel* textWidthLabel = new QLabel(i18nc("@label:listbox", "Text width:"), textGroup); - m_textWidthBox = new KComboBox(textGroup); - m_textWidthBox->addItem(i18nc("@item:inlistbox Text width", "Small")); - m_textWidthBox->addItem(i18nc("@item:inlistbox Text width", "Medium")); - m_textWidthBox->addItem(i18nc("@item:inlistbox Text width", "Large")); - m_textWidthBox->addItem(i18nc("@item:inlistbox Text width", "Huge")); - - QGridLayout* textGroupLayout = new QGridLayout(textGroup); - textGroupLayout->addWidget(fontLabel, 0, 0, Qt::AlignRight); - textGroupLayout->addWidget(m_fontRequester, 0, 1); - textGroupLayout->addWidget(textWidthLabel, 1, 0, Qt::AlignRight); - textGroupLayout->addWidget(m_textWidthBox, 1, 1); - - // Add a dummy widget with no restriction regarding - // a vertical resizing. This assures that the dialog layout - // is not stretched vertically. - new QWidget(this); - - loadSettings(); - - connect(m_iconSizeGroupBox, SIGNAL(defaultSizeChanged(int)), this, SIGNAL(changed())); - connect(m_iconSizeGroupBox, SIGNAL(previewSizeChanged(int)), this, SIGNAL(changed())); - connect(m_fontRequester, SIGNAL(changed()), this, SIGNAL(changed())); - connect(m_textWidthBox, SIGNAL(currentIndexChanged(int)), this, SIGNAL(changed())); -} - -ColumnViewSettingsPage::~ColumnViewSettingsPage() -{ -} - -void ColumnViewSettingsPage::applySettings() -{ - ColumnModeSettings* settings = DolphinSettings::instance().columnModeSettings(); - - const int iconSize = ZoomLevelInfo::iconSizeForZoomLevel(m_iconSizeGroupBox->defaultSizeValue()); - const int previewSize = ZoomLevelInfo::iconSizeForZoomLevel(m_iconSizeGroupBox->previewSizeValue()); - settings->setIconSize(iconSize); - settings->setPreviewSize(previewSize); - - const QFont font = m_fontRequester->font(); - settings->setUseSystemFont(m_fontRequester->mode() == DolphinFontRequester::SystemFont); - settings->setFontFamily(font.family()); - settings->setFontSize(font.pointSizeF()); - settings->setItalicFont(font.italic()); - settings->setFontWeight(font.weight()); - - const int columnWidth = BaseTextWidth + (m_textWidthBox->currentIndex() * TextInc); - settings->setColumnWidth(columnWidth); - - settings->writeConfig(); -} - -void ColumnViewSettingsPage::restoreDefaults() -{ - ColumnModeSettings* settings = DolphinSettings::instance().columnModeSettings(); - settings->useDefaults(true); - loadSettings(); - settings->useDefaults(false); -} - -void ColumnViewSettingsPage::loadSettings() -{ - ColumnModeSettings* settings = DolphinSettings::instance().columnModeSettings(); - - const QSize iconSize(settings->iconSize(), settings->iconSize()); - const int iconSizeValue = ZoomLevelInfo::zoomLevelForIconSize(iconSize); - m_iconSizeGroupBox->setDefaultSizeValue(iconSizeValue); - - const QSize previewSize(settings->previewSize(), settings->previewSize()); - const int previewSizeValue = ZoomLevelInfo::zoomLevelForIconSize(previewSize); - m_iconSizeGroupBox->setPreviewSizeValue(previewSizeValue); - - if (settings->useSystemFont()) { - m_fontRequester->setMode(DolphinFontRequester::SystemFont); - } else { - QFont font(settings->fontFamily(), - qRound(settings->fontSize())); - font.setItalic(settings->italicFont()); - font.setWeight(settings->fontWeight()); - font.setPointSizeF(settings->fontSize()); - m_fontRequester->setMode(DolphinFontRequester::CustomFont); - m_fontRequester->setCustomFont(font); - } - - m_textWidthBox->setCurrentIndex((settings->columnWidth() - BaseTextWidth) / TextInc); -} - -#include "columnviewsettingspage.moc" diff --git a/src/settings/viewmodes/columnviewsettingspage.h b/src/settings/viewmodes/columnviewsettingspage.h deleted file mode 100644 index 2635e71f8..000000000 --- a/src/settings/viewmodes/columnviewsettingspage.h +++ /dev/null @@ -1,66 +0,0 @@ -/*************************************************************************** - * Copyright (C) 2006 by Peter Penz <[email protected]> * - * * - * This program is free software; you can redistribute it and/or modify * - * it under the terms of the GNU General Public License as published by * - * the Free Software Foundation; either version 2 of the License, or * - * (at your option) any later version. * - * * - * This program is distributed in the hope that it will be useful, * - * but WITHOUT ANY WARRANTY; without even the implied warranty of * - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * - * GNU General Public License for more details. * - * * - * You should have received a copy of the GNU General Public License * - * along with this program; if not, write to the * - * Free Software Foundation, Inc., * - * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA * - ***************************************************************************/ - -#ifndef COLUMNVIEWSETTINGSPAGE_H -#define COLUMNVIEWSETTINGSPAGE_H - -#include "viewsettingspagebase.h" - -class DolphinFontRequester; -class IconSizeGroupBox; -class KComboBox; - -/** - * @brief Represents the page from the Dolphin Settings which allows - * to modify the settings for the details view. - */ -class ColumnViewSettingsPage : public ViewSettingsPageBase -{ - Q_OBJECT - -public: - ColumnViewSettingsPage(QWidget* parent); - virtual ~ColumnViewSettingsPage(); - - /** - * Applies the settings for the details view. - * The settings are persisted automatically when - * closing Dolphin. - */ - virtual void applySettings(); - - /** Restores the settings to default values. */ - virtual void restoreDefaults(); - -private: - void loadSettings(); - -private: - enum - { - BaseTextWidth = 200, - TextInc = 50 - }; - - IconSizeGroupBox* m_iconSizeGroupBox; - DolphinFontRequester* m_fontRequester; - KComboBox* m_textWidthBox; -}; - -#endif diff --git a/src/settings/viewmodes/detailsviewsettingspage.cpp b/src/settings/viewmodes/detailsviewsettingspage.cpp index fbf26902f..b2338dc9b 100644 --- a/src/settings/viewmodes/detailsviewsettingspage.cpp +++ b/src/settings/viewmodes/detailsviewsettingspage.cpp @@ -26,8 +26,6 @@ #include <KDialog> #include <KLocale> -#include <settings/dolphinsettings.h> - #include <QButtonGroup> #include <QCheckBox> #include <QComboBox> @@ -42,8 +40,7 @@ DetailsViewSettingsPage::DetailsViewSettingsPage(QWidget* parent) : ViewSettingsPageBase(parent), m_iconSizeGroupBox(0), - m_fontRequester(0), - m_expandableFolders(0) + m_fontRequester(0) { const int spacing = KDialog::spacingHint(); const int margin = KDialog::marginHint(); @@ -72,9 +69,6 @@ DetailsViewSettingsPage::DetailsViewSettingsPage(QWidget* parent) : textLayout->addWidget(fontLabel, 0, Qt::AlignRight); textLayout->addWidget(m_fontRequester); - // create "Expandable Folders" checkbox - m_expandableFolders = new QCheckBox(i18nc("@option:check", "Expandable folders"), this); - // Add a dummy widget with no restriction regarding // a vertical resizing. This assures that the dialog layout // is not stretched vertically. @@ -85,7 +79,6 @@ DetailsViewSettingsPage::DetailsViewSettingsPage(QWidget* parent) : connect(m_iconSizeGroupBox, SIGNAL(defaultSizeChanged(int)), this, SIGNAL(changed())); connect(m_iconSizeGroupBox, SIGNAL(previewSizeChanged(int)), this, SIGNAL(changed())); connect(m_fontRequester, SIGNAL(changed()), this, SIGNAL(changed())); - connect(m_expandableFolders, SIGNAL(toggled(bool)), this, SIGNAL(changed())); } DetailsViewSettingsPage::~DetailsViewSettingsPage() @@ -94,58 +87,49 @@ DetailsViewSettingsPage::~DetailsViewSettingsPage() void DetailsViewSettingsPage::applySettings() { - DetailsModeSettings* settings = DolphinSettings::instance().detailsModeSettings(); - const int iconSize = ZoomLevelInfo::iconSizeForZoomLevel(m_iconSizeGroupBox->defaultSizeValue()); const int previewSize = ZoomLevelInfo::iconSizeForZoomLevel(m_iconSizeGroupBox->previewSizeValue()); - settings->setIconSize(iconSize); - settings->setPreviewSize(previewSize); + DetailsModeSettings::setIconSize(iconSize); + DetailsModeSettings::setPreviewSize(previewSize); const QFont font = m_fontRequester->font(); - settings->setUseSystemFont(m_fontRequester->mode() == DolphinFontRequester::SystemFont); - settings->setFontFamily(font.family()); - settings->setFontSize(font.pointSizeF()); - settings->setItalicFont(font.italic()); - settings->setFontWeight(font.weight()); + DetailsModeSettings::setUseSystemFont(m_fontRequester->mode() == DolphinFontRequester::SystemFont); + DetailsModeSettings::setFontFamily(font.family()); + DetailsModeSettings::setFontSize(font.pointSizeF()); + DetailsModeSettings::setItalicFont(font.italic()); + DetailsModeSettings::setFontWeight(font.weight()); - settings->setExpandableFolders(m_expandableFolders->isChecked()); - - settings->writeConfig(); + DetailsModeSettings::self()->writeConfig(); } void DetailsViewSettingsPage::restoreDefaults() { - DetailsModeSettings* settings = DolphinSettings::instance().detailsModeSettings(); - settings->useDefaults(true); + DetailsModeSettings::self()->useDefaults(true); loadSettings(); - settings->useDefaults(false); + DetailsModeSettings::self()->useDefaults(false); } void DetailsViewSettingsPage::loadSettings() { - DetailsModeSettings* settings = DolphinSettings::instance().detailsModeSettings(); - - const QSize iconSize(settings->iconSize(), settings->iconSize()); + const QSize iconSize(DetailsModeSettings::iconSize(), DetailsModeSettings::iconSize()); const int iconSizeValue = ZoomLevelInfo::zoomLevelForIconSize(iconSize); m_iconSizeGroupBox->setDefaultSizeValue(iconSizeValue); - const QSize previewSize(settings->previewSize(), settings->previewSize()); + const QSize previewSize(DetailsModeSettings::previewSize(), DetailsModeSettings::previewSize()); const int previewSizeValue = ZoomLevelInfo::zoomLevelForIconSize(previewSize); m_iconSizeGroupBox->setPreviewSizeValue(previewSizeValue); - if (settings->useSystemFont()) { + if (DetailsModeSettings::useSystemFont()) { m_fontRequester->setMode(DolphinFontRequester::SystemFont); } else { - QFont font(settings->fontFamily(), - qRound(settings->fontSize())); - font.setItalic(settings->italicFont()); - font.setWeight(settings->fontWeight()); - font.setPointSizeF(settings->fontSize()); + QFont font(DetailsModeSettings::fontFamily(), + qRound(DetailsModeSettings::fontSize())); + font.setItalic(DetailsModeSettings::italicFont()); + font.setWeight(DetailsModeSettings::fontWeight()); + font.setPointSizeF(DetailsModeSettings::fontSize()); m_fontRequester->setMode(DolphinFontRequester::CustomFont); m_fontRequester->setCustomFont(font); } - - m_expandableFolders->setChecked(settings->expandableFolders()); } #include "detailsviewsettingspage.moc" diff --git a/src/settings/viewmodes/detailsviewsettingspage.h b/src/settings/viewmodes/detailsviewsettingspage.h index 73d911a32..9532241aa 100644 --- a/src/settings/viewmodes/detailsviewsettingspage.h +++ b/src/settings/viewmodes/detailsviewsettingspage.h @@ -24,7 +24,6 @@ class DolphinFontRequester; class IconSizeGroupBox; -class QCheckBox; /** * @brief Represents the page from the Dolphin Settings which allows @@ -54,7 +53,6 @@ private: private: IconSizeGroupBox* m_iconSizeGroupBox; DolphinFontRequester* m_fontRequester; - QCheckBox* m_expandableFolders; }; #endif diff --git a/src/settings/viewmodes/iconsviewsettingspage.cpp b/src/settings/viewmodes/iconsviewsettingspage.cpp index 91ca738a1..41438fb22 100644 --- a/src/settings/viewmodes/iconsviewsettingspage.cpp +++ b/src/settings/viewmodes/iconsviewsettingspage.cpp @@ -20,7 +20,6 @@ #include "iconsviewsettingspage.h" #include "dolphinfontrequester.h" -#include "settings/dolphinsettings.h" #include "iconsizegroupbox.h" #include "dolphin_iconsmodesettings.h" @@ -35,10 +34,8 @@ #include <QCheckBox> #include <QGroupBox> #include <QLabel> -#include <QListView> #include <QPushButton> #include <QGridLayout> -#include <QVBoxLayout> #include <views/zoomlevelinfo.h> @@ -46,10 +43,7 @@ IconsViewSettingsPage::IconsViewSettingsPage(QWidget* parent) : ViewSettingsPageBase(parent), m_iconSizeGroupBox(0), m_textWidthBox(0), - m_fontRequester(0), - m_textlinesCountBox(0), - m_arrangementBox(0), - m_gridSpacingBox(0) + m_fontRequester(0) { const int spacing = KDialog::spacingHint(); const int margin = KDialog::marginHint(); @@ -67,7 +61,7 @@ IconsViewSettingsPage::IconsViewSettingsPage(QWidget* parent) : m_iconSizeGroupBox->setDefaultSizeRange(min, max); m_iconSizeGroupBox->setPreviewSizeRange(min, max); - // create 'Text' group for selecting the font, the number of lines + // Create 'Text' group for selecting the font, the number of lines // and the text width QGroupBox* textGroup = new QGroupBox(i18nc("@title:group", "Text"), this); textGroup->setSizePolicy(sizePolicy); @@ -75,11 +69,6 @@ IconsViewSettingsPage::IconsViewSettingsPage(QWidget* parent) : QLabel* fontLabel = new QLabel(i18nc("@label:listbox", "Font:"), textGroup); m_fontRequester = new DolphinFontRequester(textGroup); - QLabel* textlinesCountLabel = new QLabel(i18nc("@label:textbox", "Number of lines:"), textGroup); - m_textlinesCountBox = new KIntSpinBox(textGroup); - m_textlinesCountBox->setMinimum(1); - m_textlinesCountBox->setMaximum(5); - QLabel* textWidthLabel = new QLabel(i18nc("@label:listbox", "Text width:"), textGroup); m_textWidthBox = new KComboBox(textGroup); m_textWidthBox->addItem(i18nc("@item:inlistbox Text width", "Small")); @@ -90,33 +79,9 @@ IconsViewSettingsPage::IconsViewSettingsPage(QWidget* parent) : QGridLayout* textGroupLayout = new QGridLayout(textGroup); textGroupLayout->addWidget(fontLabel, 0, 0, Qt::AlignRight); textGroupLayout->addWidget(m_fontRequester, 0, 1); - textGroupLayout->addWidget(textlinesCountLabel, 1, 0, Qt::AlignRight); - textGroupLayout->addWidget(m_textlinesCountBox, 1, 1); textGroupLayout->addWidget(textWidthLabel, 2, 0, Qt::AlignRight); textGroupLayout->addWidget(m_textWidthBox, 2, 1); - // create the 'Grid' group for selecting the arrangement and the grid spacing - QGroupBox* gridGroup = new QGroupBox(i18nc("@title:group", "Grid"), this); - gridGroup->setSizePolicy(sizePolicy); - - QLabel* arrangementLabel = new QLabel(i18nc("@label:listbox", "Arrangement:"), gridGroup); - m_arrangementBox = new KComboBox(gridGroup); - m_arrangementBox->addItem(i18nc("@item:inlistbox Arrangement", "Columns")); - m_arrangementBox->addItem(i18nc("@item:inlistbox Arrangement", "Rows")); - - QLabel* gridSpacingLabel = new QLabel(i18nc("@label:listbox", "Grid spacing:"), gridGroup); - m_gridSpacingBox = new KComboBox(gridGroup); - m_gridSpacingBox->addItem(i18nc("@item:inlistbox Grid spacing", "None")); - m_gridSpacingBox->addItem(i18nc("@item:inlistbox Grid spacing", "Small")); - m_gridSpacingBox->addItem(i18nc("@item:inlistbox Grid spacing", "Medium")); - m_gridSpacingBox->addItem(i18nc("@item:inlistbox Grid spacing", "Large")); - - QGridLayout* gridGroupLayout = new QGridLayout(gridGroup); - gridGroupLayout->addWidget(arrangementLabel, 0, 0, Qt::AlignRight); - gridGroupLayout->addWidget(m_arrangementBox, 0, 1); - gridGroupLayout->addWidget(gridSpacingLabel, 1, 0, Qt::AlignRight); - gridGroupLayout->addWidget(m_gridSpacingBox, 1, 1); - // Add a dummy widget with no restriction regarding // a vertical resizing. This assures that the dialog layout // is not stretched vertically. @@ -127,10 +92,7 @@ IconsViewSettingsPage::IconsViewSettingsPage(QWidget* parent) : connect(m_iconSizeGroupBox, SIGNAL(defaultSizeChanged(int)), this, SIGNAL(changed())); connect(m_iconSizeGroupBox, SIGNAL(previewSizeChanged(int)), this, SIGNAL(changed())); connect(m_fontRequester, SIGNAL(changed()), this, SIGNAL(changed())); - connect(m_textlinesCountBox, SIGNAL(valueChanged(int)), this, SIGNAL(changed())); connect(m_textWidthBox, SIGNAL(currentIndexChanged(int)), this, SIGNAL(changed())); - connect(m_arrangementBox, SIGNAL(currentIndexChanged(int)), this, SIGNAL(changed())); - connect(m_gridSpacingBox, SIGNAL(currentIndexChanged(int)), this, SIGNAL(changed())); } IconsViewSettingsPage::~IconsViewSettingsPage() @@ -139,108 +101,53 @@ IconsViewSettingsPage::~IconsViewSettingsPage() void IconsViewSettingsPage::applySettings() { - IconsModeSettings* settings = DolphinSettings::instance().iconsModeSettings(); - const int iconSize = ZoomLevelInfo::iconSizeForZoomLevel(m_iconSizeGroupBox->defaultSizeValue()); const int previewSize = ZoomLevelInfo::iconSizeForZoomLevel(m_iconSizeGroupBox->previewSizeValue()); - settings->setIconSize(iconSize); - settings->setPreviewSize(previewSize); + IconsModeSettings::setIconSize(iconSize); + IconsModeSettings::setPreviewSize(previewSize); const QFont font = m_fontRequester->font(); - const int fontHeight = QFontMetrics(font).height(); - - const int arrangement = (m_arrangementBox->currentIndex() == 0) ? - QListView::LeftToRight : - QListView::TopToBottom; - settings->setArrangement(arrangement); - - const int numberOfTextlines = m_textlinesCountBox->value(); - - const int defaultSize = settings->iconSize(); - int itemWidth = defaultSize; - int itemHeight = defaultSize; - const int textSizeIndex = m_textWidthBox->currentIndex(); - if (arrangement == QListView::TopToBottom) { - itemWidth += TopToBottomBase + textSizeIndex * TopToBottomInc; - itemHeight += fontHeight * numberOfTextlines + 10; - } else { - itemWidth += LeftToRightBase + textSizeIndex * LeftToRightInc; - } + IconsModeSettings::setUseSystemFont(m_fontRequester->mode() == DolphinFontRequester::SystemFont); + IconsModeSettings::setFontFamily(font.family()); + IconsModeSettings::setFontSize(font.pointSizeF()); + IconsModeSettings::setItalicFont(font.italic()); + IconsModeSettings::setFontWeight(font.weight()); - settings->setItemWidth(itemWidth); - settings->setItemHeight(itemHeight); + IconsModeSettings::setTextWidthIndex(m_textWidthBox->currentIndex()); - settings->setUseSystemFont(m_fontRequester->mode() == DolphinFontRequester::SystemFont); - settings->setFontFamily(font.family()); - settings->setFontSize(font.pointSizeF()); - settings->setItalicFont(font.italic()); - settings->setFontWeight(font.weight()); - - settings->setNumberOfTextlines(numberOfTextlines); - - const int index = m_gridSpacingBox->currentIndex(); - if (index == 0) { - // No grid spacing - settings->setGridSpacing(0); - } else { - settings->setGridSpacing(GridSpacingBase + (index - 1) * GridSpacingInc); - } - - settings->writeConfig(); + IconsModeSettings::self()->writeConfig(); } void IconsViewSettingsPage::restoreDefaults() { - IconsModeSettings* settings = DolphinSettings::instance().iconsModeSettings(); - settings->useDefaults(true); + IconsModeSettings::self()->useDefaults(true); loadSettings(); - settings->useDefaults(false); + IconsModeSettings::self()->useDefaults(false); } void IconsViewSettingsPage::loadSettings() { - IconsModeSettings* settings = DolphinSettings::instance().iconsModeSettings(); - - const QSize iconSize(settings->iconSize(), settings->iconSize()); + const QSize iconSize(IconsModeSettings::iconSize(), IconsModeSettings::iconSize()); const int iconSizeValue = ZoomLevelInfo::zoomLevelForIconSize(iconSize); m_iconSizeGroupBox->setDefaultSizeValue(iconSizeValue); - const QSize previewSize(settings->previewSize(), settings->previewSize()); + const QSize previewSize(IconsModeSettings::previewSize(), IconsModeSettings::previewSize()); const int previewSizeValue = ZoomLevelInfo::zoomLevelForIconSize(previewSize); m_iconSizeGroupBox->setPreviewSizeValue(previewSizeValue); - if (settings->useSystemFont()) { + if (IconsModeSettings::useSystemFont()) { m_fontRequester->setMode(DolphinFontRequester::SystemFont); } else { - QFont font(settings->fontFamily(), - qRound(settings->fontSize())); - font.setItalic(settings->italicFont()); - font.setWeight(settings->fontWeight()); - font.setPointSizeF(settings->fontSize()); + QFont font(IconsModeSettings::fontFamily(), + qRound(IconsModeSettings::fontSize())); + font.setItalic(IconsModeSettings::italicFont()); + font.setWeight(IconsModeSettings::fontWeight()); + font.setPointSizeF(IconsModeSettings::fontSize()); m_fontRequester->setMode(DolphinFontRequester::CustomFont); m_fontRequester->setCustomFont(font); } - m_textlinesCountBox->setValue(settings->numberOfTextlines()); - - const bool leftToRightArrangement = (settings->arrangement() == QListView::LeftToRight); - int textWidthIndex = 0; - const int remainingWidth = settings->itemWidth() - settings->iconSize(); - if (leftToRightArrangement) { - textWidthIndex = (remainingWidth - LeftToRightBase) / LeftToRightInc; - } else { - textWidthIndex = (remainingWidth - TopToBottomBase) / TopToBottomInc; - } - // ensure that chosen index is always valid - textWidthIndex = qMax(textWidthIndex, 0); - textWidthIndex = qMin(textWidthIndex, m_textWidthBox->count() - 1); - - m_textWidthBox->setCurrentIndex(textWidthIndex); - m_arrangementBox->setCurrentIndex(leftToRightArrangement ? 0 : 1); - - const int spacing = settings->gridSpacing(); - const int index = (spacing <= 0) ? 0 : 1 + (spacing - GridSpacingBase) / GridSpacingInc; - m_gridSpacingBox->setCurrentIndex(index); + m_textWidthBox->setCurrentIndex(IconsModeSettings::textWidthIndex()); } #include "iconsviewsettingspage.moc" diff --git a/src/settings/viewmodes/iconsviewsettingspage.h b/src/settings/viewmodes/iconsviewsettingspage.h index 3b60cdf7f..ad829f131 100644 --- a/src/settings/viewmodes/iconsviewsettingspage.h +++ b/src/settings/viewmodes/iconsviewsettingspage.h @@ -20,7 +20,6 @@ #ifndef ICONSVIEWSETTINGSPAGE_H #define ICONSVIEWSETTINGSPAGE_H -#include <views/dolphiniconsview.h> #include "viewsettingspagebase.h" class DolphinFontRequester; @@ -36,10 +35,7 @@ class KIntSpinBox; * - icon size * - preview size * - text width - * - grid spacing * - font - * - number of text lines - * - arrangement * * @see DolphinIconsViewSettings */ @@ -65,23 +61,9 @@ private: void loadSettings(); private: - enum - { - GridSpacingBase = 8, - GridSpacingInc = 12, - LeftToRightBase = 128, - LeftToRightInc = 64, - TopToBottomBase = 32, - TopToBottomInc = 32 - }; - IconSizeGroupBox* m_iconSizeGroupBox; KComboBox* m_textWidthBox; DolphinFontRequester* m_fontRequester; - KIntSpinBox* m_textlinesCountBox; - - KComboBox* m_arrangementBox; - KComboBox* m_gridSpacingBox; }; #endif diff --git a/src/settings/viewmodes/viewsettingspage.cpp b/src/settings/viewmodes/viewsettingspage.cpp index 4530d866d..ac4ed9296 100644 --- a/src/settings/viewmodes/viewsettingspage.cpp +++ b/src/settings/viewmodes/viewsettingspage.cpp @@ -20,7 +20,6 @@ #include "viewsettingspage.h" -#include "columnviewsettingspage.h" #include "iconsviewsettingspage.h" #include "detailsviewsettingspage.h" @@ -46,19 +45,15 @@ ViewSettingsPage::ViewSettingsPage(QWidget* parent) : tabWidget->addTab(iconsPage, KIcon("view-list-icons"), i18nc("@title:tab", "Icons")); connect(iconsPage, SIGNAL(changed()), this, SIGNAL(changed())); + // TODO: initialize 'Compact' tab + // initialize 'Details' tab DetailsViewSettingsPage* detailsPage = new DetailsViewSettingsPage(tabWidget); - tabWidget->addTab(detailsPage, KIcon("view-list-details"), i18nc("@title:tab", "Details")); + tabWidget->addTab(detailsPage, KIcon("view-list-text"), i18nc("@title:tab", "Details")); connect(detailsPage, SIGNAL(changed()), this, SIGNAL(changed())); - // initialize 'Column' tab - ColumnViewSettingsPage* columnPage = new ColumnViewSettingsPage(tabWidget); - tabWidget->addTab(columnPage, KIcon("view-file-columns"), i18nc("@title:tab", "Column")); - connect(columnPage, SIGNAL(changed()), this, SIGNAL(changed())); - m_pages.append(iconsPage); m_pages.append(detailsPage); - m_pages.append(columnPage); topLayout->addWidget(tabWidget, 0, 0); } diff --git a/src/settings/viewpropertiesdialog.cpp b/src/settings/viewpropertiesdialog.cpp index 2a35f7eb8..5f57d6eb4 100644 --- a/src/settings/viewpropertiesdialog.cpp +++ b/src/settings/viewpropertiesdialog.cpp @@ -52,7 +52,6 @@ #include <QRadioButton> #include <QBoxLayout> -#include <views/dolphinsortfilterproxymodel.h> #include <views/viewproperties.h> ViewPropertiesDialog::ViewPropertiesDialog(DolphinView* dolphinView) : @@ -64,7 +63,7 @@ ViewPropertiesDialog::ViewPropertiesDialog(DolphinView* dolphinView) : m_sortOrder(0), m_sorting(0), m_sortFoldersFirst(0), - m_showPreview(0), + m_previewsShown(0), m_showInGroups(0), m_showHiddenFiles(0), m_additionalInfo(0), @@ -97,8 +96,8 @@ ViewPropertiesDialog::ViewPropertiesDialog(DolphinView* dolphinView) : QLabel* viewModeLabel = new QLabel(i18nc("@label:listbox", "View mode:"), propsGrid); m_viewMode = new KComboBox(propsGrid); m_viewMode->addItem(KIcon("view-list-icons"), i18nc("@item:inlistbox", "Icons")); - m_viewMode->addItem(KIcon("view-list-details"), i18nc("@item:inlistbox", "Details")); - m_viewMode->addItem(KIcon("view-file-columns"), i18nc("@item:inlistbox", "Column")); + m_viewMode->addItem(KIcon("feffi"), i18nc("@item:inlistbox", "Compact")); // TODO: adjust icons + m_viewMode->addItem(KIcon("view-list-text"), i18nc("@item:inlistbox", "Details")); QLabel* sortingLabel = new QLabel(i18nc("@label:listbox", "Sorting:"), propsGrid); QWidget* sortingBox = new QWidget(propsGrid); @@ -125,7 +124,7 @@ ViewPropertiesDialog::ViewPropertiesDialog(DolphinView* dolphinView) : // } #endif m_sortFoldersFirst = new QCheckBox(i18nc("@option:check", "Show folders first")); - m_showPreview = new QCheckBox(i18nc("@option:check", "Show preview")); + m_previewsShown = new QCheckBox(i18nc("@option:check", "Show preview")); m_showInGroups = new QCheckBox(i18nc("@option:check", "Show in groups")); m_showHiddenFiles = new QCheckBox(i18nc("@option:check", "Show hidden files")); @@ -146,7 +145,7 @@ ViewPropertiesDialog::ViewPropertiesDialog(DolphinView* dolphinView) : QVBoxLayout* propsBoxLayout = new QVBoxLayout(propsBox); propsBoxLayout->addWidget(propsGrid); propsBoxLayout->addWidget(m_sortFoldersFirst); - propsBoxLayout->addWidget(m_showPreview); + propsBoxLayout->addWidget(m_previewsShown); propsBoxLayout->addWidget(m_showInGroups); propsBoxLayout->addWidget(m_showHiddenFiles); propsBoxLayout->addWidget(m_additionalInfo); @@ -163,7 +162,7 @@ ViewPropertiesDialog::ViewPropertiesDialog(DolphinView* dolphinView) : this, SLOT(configureAdditionalInfo())); connect(m_sortFoldersFirst, SIGNAL(clicked()), this, SLOT(slotSortFoldersFirstChanged())); - connect(m_showPreview, SIGNAL(clicked()), + connect(m_previewsShown, SIGNAL(clicked()), this, SLOT(slotShowPreviewChanged())); connect(m_showInGroups, SIGNAL(clicked()), this, SLOT(slotCategorizedSortingChanged())); @@ -249,17 +248,15 @@ void ViewPropertiesDialog::slotViewModeChanged(int index) { m_viewProps->setViewMode(static_cast<DolphinView::Mode>(index)); markAsDirty(true); - - const DolphinView::Mode mode = m_viewProps->viewMode(); - m_showInGroups->setEnabled(mode == DolphinView::IconsView); - m_additionalInfo->setEnabled(mode != DolphinView::ColumnView); } void ViewPropertiesDialog::slotSortingChanged(int index) { - const DolphinView::Sorting sorting = DolphinSortFilterProxyModel::sortingForColumn(index); - m_viewProps->setSorting(sorting); - markAsDirty(true); + Q_UNUSED(index); + Q_ASSERT(false); + //const DolphinView::Sorting sorting = DolphinSortFilterProxyModel::sortingForColumn(index); + //m_viewProps->setSorting(sorting); + //markAsDirty(true); } void ViewPropertiesDialog::slotSortOrderChanged(int index) @@ -284,15 +281,15 @@ void ViewPropertiesDialog::slotSortFoldersFirstChanged() void ViewPropertiesDialog::slotShowPreviewChanged() { - const bool show = m_showPreview->isChecked(); - m_viewProps->setShowPreview(show); + const bool show = m_previewsShown->isChecked(); + m_viewProps->setPreviewsShown(show); markAsDirty(true); } void ViewPropertiesDialog::slotShowHiddenFilesChanged() { const bool show = m_showHiddenFiles->isChecked(); - m_viewProps->setShowHiddenFiles(show); + m_viewProps->setHiddenFilesShown(show); markAsDirty(true); } @@ -304,22 +301,22 @@ void ViewPropertiesDialog::markAsDirty(bool isDirty) void ViewPropertiesDialog::configureAdditionalInfo() { - KFileItemDelegate::InformationList info = m_viewProps->additionalInfo(); + QList<DolphinView::AdditionalInfo> infoList = m_viewProps->additionalInfoList(); const bool useDefaultInfo = (m_viewProps->viewMode() == DolphinView::DetailsView) && - (info.isEmpty() || info.contains(KFileItemDelegate::NoInformation)); + (infoList.isEmpty() || infoList.contains(DolphinView::NoInfo)); if (useDefaultInfo) { // Using the details view without any additional information (-> additional column) // makes no sense and leads to a usability problem as no viewport area is available // anymore. Hence as fallback provide at least a size and date column. - info.clear(); - info.append(KFileItemDelegate::Size); - info.append(KFileItemDelegate::ModificationTime); - m_viewProps->setAdditionalInfo(info); + infoList.clear(); + infoList.append(DolphinView::SizeInfo); + infoList.append(DolphinView::DateInfo); + m_viewProps->setAdditionalInfoList(infoList); } - QPointer<AdditionalInfoDialog> dialog = new AdditionalInfoDialog(this, info); + QPointer<AdditionalInfoDialog> dialog = new AdditionalInfoDialog(this, infoList); if (dialog->exec() == QDialog::Accepted) { - m_viewProps->setAdditionalInfo(dialog->informationList()); + m_viewProps->setAdditionalInfoList(dialog->informationList()); markAsDirty(true); } delete dialog; @@ -383,9 +380,9 @@ void ViewPropertiesDialog::applyViewProperties() m_dolphinView->setSortOrder(m_viewProps->sortOrder()); m_dolphinView->setSortFoldersFirst(m_viewProps->sortFoldersFirst()); m_dolphinView->setCategorizedSorting(m_viewProps->categorizedSorting()); - m_dolphinView->setAdditionalInfo(m_viewProps->additionalInfo()); - m_dolphinView->setShowPreview(m_viewProps->showPreview()); - m_dolphinView->setShowHiddenFiles(m_viewProps->showHiddenFiles()); + m_dolphinView->setAdditionalInfoList(m_viewProps->additionalInfoList()); + m_dolphinView->setPreviewsShown(m_viewProps->previewsShown()); + m_dolphinView->setHiddenFilesShown(m_viewProps->hiddenFilesShown()); m_viewProps->save(); @@ -409,12 +406,12 @@ void ViewPropertiesDialog::loadSettings() m_sortFoldersFirst->setChecked(m_viewProps->sortFoldersFirst()); // load show preview, show in groups and show hidden files settings - m_showPreview->setChecked(m_viewProps->showPreview()); + m_previewsShown->setChecked(m_viewProps->previewsShown()); m_showInGroups->setChecked(m_viewProps->categorizedSorting()); m_showInGroups->setEnabled(index == DolphinView::IconsView); // only the icons view supports categorized sorting - m_showHiddenFiles->setChecked(m_viewProps->showHiddenFiles()); + m_showHiddenFiles->setChecked(m_viewProps->hiddenFilesShown()); markAsDirty(false); } diff --git a/src/settings/viewpropertiesdialog.h b/src/settings/viewpropertiesdialog.h index d2170f331..694cffe88 100644 --- a/src/settings/viewpropertiesdialog.h +++ b/src/settings/viewpropertiesdialog.h @@ -73,7 +73,7 @@ private: KComboBox* m_sortOrder; KComboBox* m_sorting; QCheckBox* m_sortFoldersFirst; - QCheckBox* m_showPreview; + QCheckBox* m_previewsShown; QCheckBox* m_showInGroups; QCheckBox* m_showHiddenFiles; QPushButton* m_additionalInfo; |
