X-Git-Url: https://cloud.milkyroute.net/gitweb/dolphin.git/blobdiff_plain/445f0b64bdd34e39f0565ef870937ebd3d5dfa61..bf50ced73473a225d681de6b62bc05571d969664:/src/viewproperties.cpp diff --git a/src/viewproperties.cpp b/src/viewproperties.cpp index 9316a6d5a..45aadba23 100644 --- a/src/viewproperties.cpp +++ b/src/viewproperties.cpp @@ -1,6 +1,6 @@ /*************************************************************************** - * Copyright (C) 2006 by Peter Penz * - * peter.penz@gmx.at * + * Copyright (C) 2006 by Peter Penz () * + * Copyright (C) 2006 by Aaron J. Seigo () * * * * 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 * @@ -15,7 +15,7 @@ * 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., * - * 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. * + * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA * ***************************************************************************/ #include @@ -23,14 +23,15 @@ #include #include +#include #include #include #include -#include +#include #include "viewproperties.h" #include "dolphinsettings.h" -#include "generalsettings.h" +#include "dolphin_generalsettings.h" #define FILE_NAME "/.directory" @@ -51,7 +52,8 @@ 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. - const bool useGlobalViewProps = DolphinSettings::instance().generalSettings()->globalViewProps(); + GeneralSettings* settings = DolphinSettings::instance().generalSettings(); + const bool useGlobalViewProps = settings->globalViewProps(); if (useGlobalViewProps) { m_filepath = destinationDir("global"); } @@ -65,7 +67,24 @@ ViewProperties::ViewProperties(const KUrl& url) : m_filepath = destinationDir("remote") + m_filepath; } - m_node = new ViewPropertySettings(KSharedConfig::openConfig(m_filepath + FILE_NAME)); + const QString file(m_filepath + FILE_NAME); + m_node = new ViewPropertySettings(KSharedConfig::openConfig(file)); + + const bool useDefaultProps = !useGlobalViewProps && + (!QFileInfo(file).exists() || + (m_node->timestamp() < settings->viewPropsTimestamp())); + if (useDefaultProps) { + // If the .directory file does not exist or the timestamp is too old, + // use the values from the global .directory file instead, which acts + // as default view for new folders in this case. + settings->setGlobalViewProps(true); + + ViewProperties defaultProps(url); + setDirProperties(defaultProps); + + settings->setGlobalViewProps(false); + m_changedProps = false; + } } ViewProperties::~ViewProperties() @@ -176,19 +195,26 @@ void ViewProperties::save() m_changedProps = false; } +KUrl ViewProperties::mirroredDirectory() +{ + QString basePath = KGlobal::mainComponent().componentName(); + basePath.append("/view_properties/"); + return KUrl(KStandardDirs::locateLocal("data", basePath)); +} + QString ViewProperties::destinationDir(const QString& subDir) const { - QString basePath = KGlobal::instance()->instanceName(); + QString basePath = KGlobal::mainComponent().componentName(); basePath.append("/view_properties/").append(subDir); return KStandardDirs::locateLocal("data", basePath); } -ViewProperties::ViewProperties(const ViewProperties& props) +ViewProperties::ViewProperties(const ViewProperties& /*props*/) { assert(false); } -ViewProperties& ViewProperties::operator = (const ViewProperties& props) +ViewProperties& ViewProperties::operator = (const ViewProperties& /*props*/) { assert(false); }