/***************************************************************************
- * Copyright (C) 2006 by Peter Penz (<peter.penz@gmx.at>) *
- * Copyright (C) 2006 by Aaron J. Seigo (<aseigo@kde.org>) *
+ * Copyright (C) 2006-2010 by Peter Penz <peter.penz@gmx.at> *
+ * Copyright (C) 2006 by Aaron J. Seigo <aseigo@kde.org> *
* *
* 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 *
#include "viewproperties.h"
-#include "additionalinfomanager.h"
-#include "settings/dolphinsettings.h"
+#include "additionalinfoaccessor.h"
#include "dolphin_directoryviewpropertysettings.h"
#include "dolphin_generalsettings.h"
#include <QFile>
#include <QFileInfo>
+#include "settings/dolphinsettings.h"
+
ViewProperties::ViewProperties(const KUrl& url) :
m_changedProps(false),
m_autoSave(true),
m_node(0)
{
- KUrl cleanUrl(url);
- cleanUrl.cleanPath();
- m_filepath = cleanUrl.toLocalFile();
-
- const QLatin1String fileName("/.directory");
-
- if ((m_filepath.length() < 1) || (!QDir::isAbsolutePath(m_filepath))) {
- const QString file = destinationDir("global") + fileName;
- m_node = new ViewPropertySettings(KSharedConfig::openConfig(file));
- return;
- }
-
- // We try and save it to a file in the directory being viewed.
+ // We try and save it to the file .directory 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.
GeneralSettings* settings = DolphinSettings::instance().generalSettings();
const bool useGlobalViewProps = settings->globalViewProps();
if (useGlobalViewProps) {
- m_filepath = destinationDir("global");
- } else if (cleanUrl.isLocalFile()) {
- const QFileInfo info(m_filepath);
+ m_filePath = destinationDir("global");
+ } else if (url.isLocalFile()) {
+ m_filePath = url.toLocalFile();
+ const QFileInfo info(m_filePath);
if (!info.isWritable()) {
- m_filepath = destinationDir("local") + m_filepath;
+ m_filePath = destinationDir("local") + m_filePath;
}
} else {
- m_filepath = destinationDir("remote") + m_filepath;
+ m_filePath = destinationDir("remote") + m_filePath;
}
- const QString file = m_filepath + fileName;
+ const QString file = m_filePath + QDir::separator() + QLatin1String(".directory");
m_node = new ViewPropertySettings(KSharedConfig::openConfig(file));
const bool useDefaultProps = !useGlobalViewProps &&
return m_node->showPreview();
}
-
void ViewProperties::setShowHiddenFiles(bool show)
{
if (m_node->showHiddenFiles() != show) {
return m_node->categorizedSorting();
}
-
bool ViewProperties::showHiddenFiles() const
{
return m_node->showHiddenFiles();
void ViewProperties::setAdditionalInfo(const KFileItemDelegate::InformationList& list)
{
- AdditionalInfoManager& infoManager = AdditionalInfoManager::instance();
+ AdditionalInfoAccessor& infoAccessor = AdditionalInfoAccessor::instance();
int infoMask = 0;
foreach (KFileItemDelegate::Information currentInfo, list) {
- infoMask = infoMask | infoManager.bitValue(currentInfo);
+ infoMask = infoMask | infoAccessor.bitValue(currentInfo);
}
const int encodedInfo = encodedAdditionalInfo(infoMask);
const int decodedInfo = decodedAdditionalInfo();
- AdditionalInfoManager& infoManager = AdditionalInfoManager::instance();
- const KFileItemDelegate::InformationList infos = infoManager.keys();
+ AdditionalInfoAccessor& infoAccessor = AdditionalInfoAccessor::instance();
+ const KFileItemDelegate::InformationList infos = infoAccessor.keys();
foreach (const KFileItemDelegate::Information info, infos) {
- if (decodedInfo & infoManager.bitValue(info)) {
+ if (decodedInfo & infoAccessor.bitValue(info)) {
usedInfos.append(info);
}
}
void ViewProperties::save()
{
- KStandardDirs::makeDir(m_filepath);
+ KStandardDirs::makeDir(m_filePath);
m_node->writeConfig();
m_changedProps = false;
}
if (decodedInfo == 0) {
// A details view without any additional info makes no sense, hence
// provide at least a size-info and date-info as fallback
- AdditionalInfoManager& infoManager = AdditionalInfoManager::instance();
- decodedInfo = infoManager.bitValue(KFileItemDelegate::Size) |
- infoManager.bitValue(KFileItemDelegate::ModificationTime);
+ AdditionalInfoAccessor& infoAccessor = AdditionalInfoAccessor::instance();
+ decodedInfo = infoAccessor.bitValue(KFileItemDelegate::Size) |
+ infoAccessor.bitValue(KFileItemDelegate::ModificationTime);
}
break;
case DolphinView::IconsView: