diff options
| author | Peter Penz <[email protected]> | 2007-01-07 09:47:05 +0000 |
|---|---|---|
| committer | Peter Penz <[email protected]> | 2007-01-07 09:47:05 +0000 |
| commit | 445f0b64bdd34e39f0565ef870937ebd3d5dfa61 (patch) | |
| tree | d83ce3f22a65babf4131da3ffef2eba4e9381186 /src/viewproperties.cpp | |
| parent | 4a0a832ddb2e39142a313d0c1aeccc7c6fe8b97f (diff) | |
Allow that Dolphin can also be used with global view properties. Per default Dolphin remembers the view properties for each directory, but from the feedback I've got there is a not ignorable amount of people who prefer having global view properties instead.
svn path=/trunk/playground/utils/dolphin/; revision=620774
Diffstat (limited to 'src/viewproperties.cpp')
| -rw-r--r-- | src/viewproperties.cpp | 46 |
1 files changed, 27 insertions, 19 deletions
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) |
