┌   ┐
54
└   ┘

summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/applyviewpropsjob.cpp9
-rw-r--r--src/bookmarkssettingspage.cpp4
-rw-r--r--src/bookmarkssettingspage.h4
-rw-r--r--src/detailsviewsettingspage.cpp4
-rw-r--r--src/detailsviewsettingspage.h6
-rw-r--r--src/dolphinsettingsdialog.cpp4
-rw-r--r--src/generalsettingspage.h8
-rw-r--r--src/generalviewsettingspage.cpp22
-rw-r--r--src/generalviewsettingspage.h6
-rw-r--r--src/iconsviewsettingspage.cpp4
-rw-r--r--src/iconsviewsettingspage.h6
-rw-r--r--src/viewproperties.cpp46
-rw-r--r--src/viewproperties.h29
-rw-r--r--src/viewpropsprogressinfo.cpp5
-rw-r--r--src/viewsettingspage.cpp9
-rw-r--r--src/viewsettingspage.h6
16 files changed, 105 insertions, 67 deletions
diff --git a/src/applyviewpropsjob.cpp b/src/applyviewpropsjob.cpp
index 0be8f4d47..cddc4d653 100644
--- a/src/applyviewpropsjob.cpp
+++ b/src/applyviewpropsjob.cpp
@@ -23,6 +23,7 @@
#include "applyviewpropsjob.h"
#include "viewproperties.h"
+#include <assert.h>
#include <kdebug.h>
ApplyViewPropsJob::ApplyViewPropsJob(const KUrl& dir,
@@ -74,12 +75,10 @@ void ApplyViewPropsJob::slotEntries(KIO::Job*, const KIO::UDSEntryList& list)
KUrl url(m_dir);
url.addPath(name);
+ assert(m_viewProps != 0);
+
ViewProperties props(url);
- props.setViewMode(m_viewProps->viewMode());
- props.setShowPreview(m_viewProps->showPreview());
- props.setShowHiddenFiles(m_viewProps->showHiddenFiles());
- props.setSorting(m_viewProps->sorting());
- props.setSortOrder(m_viewProps->sortOrder());
+ props.setDirProperties(*m_viewProps);
}
}
}
diff --git a/src/bookmarkssettingspage.cpp b/src/bookmarkssettingspage.cpp
index 43aa87c58..89caede0c 100644
--- a/src/bookmarkssettingspage.cpp
+++ b/src/bookmarkssettingspage.cpp
@@ -42,8 +42,10 @@
#include "dolphinsettings.h"
#include "editbookmarkdialog.h"
-BookmarksSettingsPage::BookmarksSettingsPage(QWidget*parent) :
+BookmarksSettingsPage::BookmarksSettingsPage(DolphinMainWindow* mainWindow,
+ QWidget*parent) :
SettingsPageBase(parent),
+ m_mainWindow(mainWindow),
m_addButton(0),
m_removeButton(0),
m_moveUpButton(0),
diff --git a/src/bookmarkssettingspage.h b/src/bookmarkssettingspage.h
index 336c85e17..a76b85d46 100644
--- a/src/bookmarkssettingspage.h
+++ b/src/bookmarkssettingspage.h
@@ -24,6 +24,7 @@
#include <settingspagebase.h>
#include <q3valuelist.h>
+class DolphinMainWindow;
class K3ListView;
class KPushButton;
class Q3ListViewItem;
@@ -37,7 +38,7 @@ class BookmarksSettingsPage : public SettingsPageBase
Q_OBJECT
public:
- BookmarksSettingsPage(QWidget* parent);
+ BookmarksSettingsPage(DolphinMainWindow* mainWindow, QWidget* parent);
virtual ~BookmarksSettingsPage();
@@ -70,6 +71,7 @@ private:
IconIdx = 3
};
+ DolphinMainWindow* m_mainWindow;
K3ListView* m_listView;
KPushButton* m_addButton;
KPushButton* m_editButton;
diff --git a/src/detailsviewsettingspage.cpp b/src/detailsviewsettingspage.cpp
index 81b930071..8a8d158c9 100644
--- a/src/detailsviewsettingspage.cpp
+++ b/src/detailsviewsettingspage.cpp
@@ -37,8 +37,10 @@
#include "detailsmodesettings.h"
#include "dolphindetailsview.h"
-DetailsViewSettingsPage::DetailsViewSettingsPage(QWidget *parent) :
+DetailsViewSettingsPage::DetailsViewSettingsPage(DolphinMainWindow* mainWindow,
+ QWidget* parent) :
KVBox(parent),
+ m_mainWindow(mainWindow),
m_dateBox(0),
m_permissionsBox(0),
m_ownerBox(0),
diff --git a/src/detailsviewsettingspage.h b/src/detailsviewsettingspage.h
index 89cb7258e..95f611b85 100644
--- a/src/detailsviewsettingspage.h
+++ b/src/detailsviewsettingspage.h
@@ -23,6 +23,7 @@
#include <kvbox.h>
+class DolphinMainWindow;
class QCheckBox;
class QFontComboBox;
class QSpinBox;
@@ -32,15 +33,13 @@ class QRadioButton;
/**
* @brief Represents the page from the Dolphin Settings which allows
* to modify the settings for the details view.
- *
- * @author Peter Penz <[email protected]>
*/
class DetailsViewSettingsPage : public KVBox
{
Q_OBJECT
public:
- DetailsViewSettingsPage(QWidget* parent);
+ DetailsViewSettingsPage(DolphinMainWindow* mainWindow, QWidget* parent);
virtual ~DetailsViewSettingsPage();
/**
@@ -51,6 +50,7 @@ public:
void applySettings();
private:
+ DolphinMainWindow* m_mainWindow;
QCheckBox* m_dateBox;
QCheckBox* m_permissionsBox;
QCheckBox* m_ownerBox;
diff --git a/src/dolphinsettingsdialog.cpp b/src/dolphinsettingsdialog.cpp
index 7f440fc6c..cf66af3b2 100644
--- a/src/dolphinsettingsdialog.cpp
+++ b/src/dolphinsettingsdialog.cpp
@@ -42,11 +42,11 @@ DolphinSettingsDialog::DolphinSettingsDialog(DolphinMainWindow* mainWindow) :
KPageWidgetItem* generalSettingsFrame = addPage(m_generalSettingsPage, i18n("General"));
generalSettingsFrame->setIcon(KIcon("exec"));
- m_viewSettingsPage = new ViewSettingsPage(this);
+ m_viewSettingsPage = new ViewSettingsPage(mainWindow, this);
KPageWidgetItem* viewSettingsFrame = addPage(m_viewSettingsPage, i18n("View Modes"));
viewSettingsFrame->setIcon(KIcon("view_choose"));
- m_bookmarksSettingsPage = new BookmarksSettingsPage(this);
+ m_bookmarksSettingsPage = new BookmarksSettingsPage(mainWindow, this);
KPageWidgetItem* bookmarksSettingsFrame = addPage(m_bookmarksSettingsPage, i18n("Bookmarks"));
bookmarksSettingsFrame->setIcon(KIcon("bookmark"));
}
diff --git a/src/generalsettingspage.h b/src/generalsettingspage.h
index 99ec49600..0cffc3f69 100644
--- a/src/generalsettingspage.h
+++ b/src/generalsettingspage.h
@@ -21,18 +21,17 @@
#define GENERALSETTINGSPAGE_H
#include <settingspagebase.h>
+
+class DolphinMainWindow;
class QLineEdit;
class QRadioButton;
class QCheckBox;
-class DolphinMainWindow;
/**
* @brief Page for the 'General' settings of the Dolphin settings dialog.
*
* The general settings allow to set the home Url, the default view mode
* and the split view mode.
- *
- * @author Peter Penz <[email protected]>
*/
class GeneralSettingsPage : public SettingsPageBase
{
@@ -40,7 +39,6 @@ class GeneralSettingsPage : public SettingsPageBase
public:
GeneralSettingsPage(DolphinMainWindow* mainWindow, QWidget* parent);
-
virtual ~GeneralSettingsPage();
/** @see SettingsPageBase::applySettings */
@@ -52,7 +50,7 @@ private slots:
void useDefaulLocation();
private:
- DolphinMainWindow *m_mainWindow;
+ DolphinMainWindow* m_mainWindow;
QLineEdit* m_homeUrl;
QCheckBox* m_startSplit;
QCheckBox* m_startEditable;
diff --git a/src/generalviewsettingspage.cpp b/src/generalviewsettingspage.cpp
index 97a8af905..bdaa681a6 100644
--- a/src/generalviewsettingspage.cpp
+++ b/src/generalviewsettingspage.cpp
@@ -19,8 +19,10 @@
***************************************************************************/
#include "generalviewsettingspage.h"
+#include "dolphinmainwindow.h"
#include "dolphinsettings.h"
#include "generalsettings.h"
+#include "viewproperties.h"
#include <assert.h>
@@ -32,8 +34,10 @@
#include <klocale.h>
#include <kvbox.h>
-GeneralViewSettingsPage::GeneralViewSettingsPage(QWidget* parent) :
+GeneralViewSettingsPage::GeneralViewSettingsPage(DolphinMainWindow* mainWindow,
+ QWidget* parent) :
KVBox(parent),
+ m_mainWindow(mainWindow),
m_localProps(0),
m_globalProps(0)
{
@@ -77,9 +81,23 @@ GeneralViewSettingsPage::~GeneralViewSettingsPage()
void GeneralViewSettingsPage::applySettings()
{
+ const KUrl& url = m_mainWindow->activeView()->url();
+ ViewProperties props(url); // read current view properties
+
+ const bool useGlobalProps = m_globalProps->isChecked();
+
GeneralSettings* settings = DolphinSettings::instance().generalSettings();
assert(settings != 0);
- settings->setGlobalViewProps(m_globalProps->isChecked());
+ settings->setGlobalViewProps(useGlobalProps);
+
+ if (useGlobalProps) {
+ // Remember the global view properties by applying the current view properties.
+ // It is important that GeneralSettings::globalViewProps() is set before
+ // the class ViewProperties is used, as ViewProperties uses this setting
+ // to find the destination folder for storing the view properties.
+ ViewProperties globalProps(url);
+ globalProps.setDirProperties(props);
+ }
}
#include "generalviewsettingspage.moc"
diff --git a/src/generalviewsettingspage.h b/src/generalviewsettingspage.h
index 8f6f7ada6..0d065a572 100644
--- a/src/generalviewsettingspage.h
+++ b/src/generalviewsettingspage.h
@@ -23,20 +23,19 @@
#include <kvbox.h>
+class DolphinMainWindow;
class QRadioButton;
/**
* @brief Represents the page from the Dolphin Settings which allows
* to modify general settings for the view modes.
- *
- * @author Peter Penz <[email protected]>
*/
class GeneralViewSettingsPage : public KVBox
{
Q_OBJECT
public:
- GeneralViewSettingsPage(QWidget* parent);
+ GeneralViewSettingsPage(DolphinMainWindow* mainWindow, QWidget* parent);
virtual ~GeneralViewSettingsPage();
/**
@@ -47,6 +46,7 @@ public:
void applySettings();
private:
+ DolphinMainWindow* m_mainWindow;
QRadioButton* m_localProps;
QRadioButton* m_globalProps;
};
diff --git a/src/iconsviewsettingspage.cpp b/src/iconsviewsettingspage.cpp
index 7e63cf0f5..872047246 100644
--- a/src/iconsviewsettingspage.cpp
+++ b/src/iconsviewsettingspage.cpp
@@ -41,8 +41,10 @@
#define GRID_SPACING_BASE 8
#define GRID_SPACING_INC 12
-IconsViewSettingsPage::IconsViewSettingsPage(QWidget* parent) :
+IconsViewSettingsPage::IconsViewSettingsPage(DolphinMainWindow* mainWindow,
+ QWidget* parent) :
KVBox(parent),
+ m_mainWindow(mainWindow),
m_iconSizeSlider(0),
m_previewSizeSlider(0),
m_textWidthBox(0),
diff --git a/src/iconsviewsettingspage.h b/src/iconsviewsettingspage.h
index 7d67bc79c..aa106ef27 100644
--- a/src/iconsviewsettingspage.h
+++ b/src/iconsviewsettingspage.h
@@ -21,10 +21,10 @@
#ifndef ICONSVIEWSETTINGSPAGE_H
#define ICONSVIEWSETTINGSPAGE_H
-
#include <dolphiniconsview.h>
#include <kvbox.h>
+class DolphinMainWindow;
class QSlider;
class QComboBox;
class QCheckBox;
@@ -48,14 +48,13 @@ class PixmapViewer;
* - arrangement
*
* @see DolphinIconsViewSettings
- * @author Peter Penz <[email protected]>
*/
class IconsViewSettingsPage : public KVBox
{
Q_OBJECT
public:
- IconsViewSettingsPage(QWidget* parent);
+ IconsViewSettingsPage(DolphinMainWindow* mainWindow, QWidget* parent);
virtual ~IconsViewSettingsPage();
/**
@@ -70,6 +69,7 @@ private slots:
void slotPreviewSizeChanged(int value);
private:
+ DolphinMainWindow* m_mainWindow;
QSlider* m_iconSizeSlider;
PixmapViewer* m_iconSizeViewer;
QSlider* m_previewSizeSlider;
diff --git a/src/viewproperties.cpp b/src/viewproperties.cpp
index cd66519fd..9316a6d5a 100644
--- a/src/viewproperties.cpp
+++ b/src/viewproperties.cpp
@@ -40,7 +40,6 @@ ViewProperties::ViewProperties(const KUrl& url) :
m_node(0)
{
KUrl cleanUrl(url);
-
cleanUrl.cleanPath();
m_filepath = cleanUrl.path();
@@ -52,22 +51,18 @@ ViewProperties::ViewProperties(const KUrl& url) :
// We try and save it to a file in the directory being viewed.
// If the directory is not writable by the user or the directory is not local,
// we store the properties information in a local file.
- QString rootDir("/"); // TODO: should this be set to the root of the bookmark, if any?
- if (cleanUrl.isLocalFile()) {
- QFileInfo info(m_filepath);
-
+ const bool useGlobalViewProps = DolphinSettings::instance().generalSettings()->globalViewProps();
+ if (useGlobalViewProps) {
+ m_filepath = destinationDir("global");
+ }
+ else if (cleanUrl.isLocalFile()) {
+ const QFileInfo info(m_filepath);
if (!info.isWritable()) {
- QString basePath = KGlobal::instance()->instanceName();
- basePath.append("/view_properties/local");
- rootDir = KStandardDirs::locateLocal("data", basePath);
- m_filepath = rootDir + m_filepath;
+ m_filepath = destinationDir("local") + m_filepath;
}
}
else {
- QString basePath = KGlobal::instance()->instanceName();
- basePath.append("/view_properties/remote/").append(cleanUrl.host());
- rootDir = KStandardDirs::locateLocal("data", basePath);
- m_filepath = rootDir + m_filepath;
+ m_filepath = destinationDir("remote") + m_filepath;
}
m_node = new ViewPropertySettings(KSharedConfig::openConfig(m_filepath + FILE_NAME));
@@ -149,6 +144,15 @@ Qt::SortOrder ViewProperties::sortOrder() const
return static_cast<Qt::SortOrder>(m_node->sortOrder());
}
+void ViewProperties::setDirProperties(const ViewProperties& props)
+{
+ setViewMode(props.viewMode());
+ setShowPreview(props.showPreview());
+ setShowHiddenFiles(props.showHiddenFiles());
+ setSorting(props.sorting());
+ setSortOrder(props.sortOrder());
+}
+
void ViewProperties::setAutoSaveEnabled(bool autoSave)
{
m_autoSave = autoSave;
@@ -167,12 +171,16 @@ void ViewProperties::updateTimeStamp()
void ViewProperties::save()
{
- const bool rememberSettings = !DolphinSettings::instance().generalSettings()->globalViewProps();
- if (rememberSettings) {
- KStandardDirs::makeDir(m_filepath);
- m_node->writeConfig();
- m_changedProps = false;
- }
+ KStandardDirs::makeDir(m_filepath);
+ m_node->writeConfig();
+ m_changedProps = false;
+}
+
+QString ViewProperties::destinationDir(const QString& subDir) const
+{
+ QString basePath = KGlobal::instance()->instanceName();
+ basePath.append("/view_properties/").append(subDir);
+ return KStandardDirs::locateLocal("data", basePath);
}
ViewProperties::ViewProperties(const ViewProperties& props)
diff --git a/src/viewproperties.h b/src/viewproperties.h
index 992429241..1681b7890 100644
--- a/src/viewproperties.h
+++ b/src/viewproperties.h
@@ -67,6 +67,13 @@ public:
Qt::SortOrder sortOrder() const;
/**
+ * Sets the directory properties view mode, show preview,
+ * show hidden files, sorting and sort order like
+ * set in \a props.
+ */
+ void setDirProperties(const ViewProperties& props);
+
+ /**
* If \a autoSave is true, the properties are automatically
* saved when the destructor is called. Per default autosaving
* is enabled.
@@ -80,23 +87,27 @@ public:
* Saves the view properties for the directory specified
* in the constructor. The method is automatically
* invoked in the destructor, if
- * ViewProperties::isAutoSaveEnabled() returns true.
- *
- * Note that the saving of the properties will be ignored
- * if GeneralSettings::globalViewProps() returns true: in
- * this case view properties may not be remembered for
- * each directory.
+ * ViewProperties::isAutoSaveEnabled() returns true and
+ * at least one property has been changed.
*/
void save();
private:
+ /**
+ * Returns the destination directory path where the view
+ * properties are stored. \a subDir specifies the used sub
+ * directory.
+ */
+ QString destinationDir(const QString& subDir) const;
+
+ ViewProperties(const ViewProperties& props);
+ ViewProperties& operator= (const ViewProperties& props);
+
+private:
bool m_changedProps;
bool m_autoSave;
QString m_filepath;
ViewPropertySettings* m_node;
-
- ViewProperties(const ViewProperties& props);
- ViewProperties& operator= (const ViewProperties& props);
};
#endif
diff --git a/src/viewpropsprogressinfo.cpp b/src/viewpropsprogressinfo.cpp
index 2d0b1a8f8..887dfa2c7 100644
--- a/src/viewpropsprogressinfo.cpp
+++ b/src/viewpropsprogressinfo.cpp
@@ -48,10 +48,7 @@ ViewPropsProgressInfo::ViewPropsProgressInfo(QWidget* parent,
setButtons(KDialog::Cancel);
m_viewProps = new ViewProperties(dir);
- m_viewProps->setViewMode(viewProps.viewMode());
- m_viewProps->setShowHiddenFiles(viewProps.showHiddenFiles());
- m_viewProps->setSorting(viewProps.sorting());
- m_viewProps->setSortOrder(viewProps.sortOrder());
+ m_viewProps->setDirProperties(viewProps);
// the view properties are stored by the ViewPropsApplierJob, so prevent
// that the view properties are saved twice:
diff --git a/src/viewsettingspage.cpp b/src/viewsettingspage.cpp
index 837aed835..859f479a8 100644
--- a/src/viewsettingspage.cpp
+++ b/src/viewsettingspage.cpp
@@ -32,7 +32,8 @@
#include <klocale.h>
#include <kiconloader.h>
-ViewSettingsPage::ViewSettingsPage(QWidget *parent) :
+ViewSettingsPage::ViewSettingsPage(DolphinMainWindow* mainWindow,
+ QWidget* parent) :
SettingsPageBase(parent),
m_generalPage(0),
m_iconsPage(0),
@@ -43,15 +44,15 @@ ViewSettingsPage::ViewSettingsPage(QWidget *parent) :
QTabWidget* tabWidget = new QTabWidget(this);
// initialize 'General' tab
- m_generalPage = new GeneralViewSettingsPage(tabWidget);
+ m_generalPage = new GeneralViewSettingsPage(mainWindow, tabWidget);
tabWidget->addTab(m_generalPage, SmallIcon("view_choose"), i18n("General"));
// initialize 'Icons' tab
- m_iconsPage = new IconsViewSettingsPage(tabWidget);
+ m_iconsPage = new IconsViewSettingsPage(mainWindow, tabWidget);
tabWidget->addTab(m_iconsPage, SmallIcon("view_icon"), i18n("Icons"));
// initialize 'Details' tab
- m_detailsPage = new DetailsViewSettingsPage(tabWidget);
+ m_detailsPage = new DetailsViewSettingsPage(mainWindow, tabWidget);
tabWidget->addTab(m_detailsPage, SmallIcon("view_text"), i18n("Details"));
topLayout->addWidget(tabWidget, 0, 0 );
diff --git a/src/viewsettingspage.h b/src/viewsettingspage.h
index f41238733..f2949bbc3 100644
--- a/src/viewsettingspage.h
+++ b/src/viewsettingspage.h
@@ -23,6 +23,7 @@
#include <qwidget.h>
#include <settingspagebase.h>
+class DolphinMainWindow;
class GeneralViewSettingsPage;
class IconsViewSettingsPage;
class DetailsViewSettingsPage;
@@ -32,16 +33,13 @@ class DetailsViewSettingsPage;
*
* The views settings allow to set the properties for the icons mode and
* the details mode.
- *
- * @author Peter Penz <[email protected]>
*/
class ViewSettingsPage : public SettingsPageBase
{
Q_OBJECT
public:
- ViewSettingsPage(QWidget* parent);
-
+ ViewSettingsPage(DolphinMainWindow* mainWindow, QWidget* parent);
virtual ~ViewSettingsPage();
/** @see SettingsPageBase::applySettings */