┌   ┐
54
└   ┘

summaryrefslogtreecommitdiff
path: root/src/settings/viewmodes
diff options
context:
space:
mode:
authorPeter Penz <[email protected]>2011-07-30 20:13:09 +0200
committerPeter Penz <[email protected]>2011-07-30 20:13:41 +0200
commitf23e9496f303995557b744c03178f5dbd9b35016 (patch)
tree1139c4340ac173718d1fa847e0124d6175781fd9 /src/settings/viewmodes
parent69e4007e5e330f2ca87c0176a186967b5ca156e8 (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/viewmodes')
-rw-r--r--src/settings/viewmodes/columnviewsettingspage.cpp158
-rw-r--r--src/settings/viewmodes/columnviewsettingspage.h66
-rw-r--r--src/settings/viewmodes/detailsviewsettingspage.cpp54
-rw-r--r--src/settings/viewmodes/detailsviewsettingspage.h2
-rw-r--r--src/settings/viewmodes/iconsviewsettingspage.cpp137
-rw-r--r--src/settings/viewmodes/iconsviewsettingspage.h18
-rw-r--r--src/settings/viewmodes/viewsettingspage.cpp11
7 files changed, 44 insertions, 402 deletions
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);
}