#include <assert.h>
-#include <qdatetime.h>
-#include <qdir.h>
-#include <qfile.h>
+#include <QDateTime>
+#include <QFile>
#include <klocale.h>
#include <kstandarddirs.h>
#include <kurl.h>
+#include <kinstance.h>
#include "viewproperties.h"
-
#include "dolphinsettings.h"
+#include "generalsettings.h"
#define FILE_NAME "/.directory"
-ViewProperties::ViewProperties(KUrl url) :
+ViewProperties::ViewProperties(const KUrl& url) :
m_changedProps(false),
m_autoSave(true),
- m_subDirValidityHidden(false),
m_node(0)
{
- url.cleanPath(true);
- m_filepath = url.path();
+ KUrl cleanUrl(url);
+
+ cleanUrl.cleanPath();
+ m_filepath = cleanUrl.path();
if ((m_filepath.length() < 1) || (m_filepath.at(0) != QChar('/'))) {
m_node = new ViewPropertySettings();
return;
}
- // 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
+ // 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 (url.isLocalFile()) {
+ if (cleanUrl.isLocalFile()) {
QFileInfo info(m_filepath);
if (!info.isWritable()) {
QString basePath = KGlobal::instance()->instanceName();
basePath.append("/view_properties/local");
- rootDir = locateLocal("data", basePath);
+ rootDir = KStandardDirs::locateLocal("data", basePath);
m_filepath = rootDir + m_filepath;
}
}
else {
QString basePath = KGlobal::instance()->instanceName();
- basePath.append("/view_properties/remote/").append(url.host());
- rootDir = locateLocal("data", basePath);
+ basePath.append("/view_properties/remote/").append(cleanUrl.host());
+ rootDir = KStandardDirs::locateLocal("data", basePath);
m_filepath = rootDir + m_filepath;
}
m_node = new ViewPropertySettings(KSharedConfig::openConfig(m_filepath + FILE_NAME));
-
- QDir dir(m_filepath);
- const bool isValidForSubDirs = m_node->validForSubDirs();
- while ((dir.path() != rootDir) && dir.cdUp()) {
- QString parentPath(dir.path() + FILE_NAME);
-
- if (!QFile::exists(parentPath))
- {
- continue;
- }
-
- ViewPropertySettings parentNode(KSharedConfig::openConfig(dir.path() + FILE_NAME));
- const bool inheritProps = parentNode.validForSubDirs() &&
- (parentNode.timestamp() > m_node->timestamp());
-
- if (inheritProps) {
- *m_node = parentNode;
- break;
- }
- }
-
- if (isValidForSubDirs) {
- m_subDirValidityHidden = true;
- }
}
ViewProperties::~ViewProperties()
}
delete m_node;
+ m_node = 0;
}
void ViewProperties::setViewMode(DolphinView::Mode mode)
return static_cast<DolphinView::Mode>(m_node->viewMode());
}
-void ViewProperties::setShowHiddenFilesEnabled(bool show)
+void ViewProperties::setShowPreview(bool show)
+{
+ if (m_node->showPreview() != show) {
+ m_node->setShowPreview(show);
+ updateTimeStamp();
+ }
+}
+
+bool ViewProperties::showPreview() const
+{
+ return m_node->showPreview();
+}
+
+
+void ViewProperties::setShowHiddenFiles(bool show)
{
if (m_node->showHiddenFiles() != show) {
m_node->setShowHiddenFiles(show);
}
}
-bool ViewProperties::isShowHiddenFilesEnabled() const
+bool ViewProperties::showHiddenFiles() const
{
return m_node->showHiddenFiles();
}
return static_cast<Qt::SortOrder>(m_node->sortOrder());
}
-void ViewProperties::setValidForSubDirs(bool valid)
-{
- if (m_node->validForSubDirs() != valid) {
- m_node->setValidForSubDirs(valid);
- updateTimeStamp();
- }
-}
-
-bool ViewProperties::isValidForSubDirs() const
-{
- return m_node->validForSubDirs();
-}
-
void ViewProperties::setAutoSaveEnabled(bool autoSave)
{
m_autoSave = autoSave;
void ViewProperties::save()
{
- KStandardDirs::makeDir(m_filepath);
- m_node->writeConfig();
- m_changedProps = false;
+ const bool rememberSettings = !DolphinSettings::instance().generalSettings()->globalViewProps();
+ if (rememberSettings) {
+ KStandardDirs::makeDir(m_filepath);
+ m_node->writeConfig();
+ m_changedProps = false;
+ }
}
-ViewProperties& ViewProperties::operator = (const ViewProperties& props)
+ViewProperties::ViewProperties(const ViewProperties& props)
{
- if (&props != this) {
- m_changedProps = props.m_changedProps;
- m_autoSave = props.m_autoSave;
- m_subDirValidityHidden = props.m_subDirValidityHidden;
- m_filepath = props.m_filepath;
- m_node = new ViewPropertySettings();
- //*m_node = *(props.m_node);
- }
+ assert(false);
+}
- return *this;
+ViewProperties& ViewProperties::operator = (const ViewProperties& props)
+{
+ assert(false);
}