]>
cloud.milkyroute.net Git - dolphin.git/blob - src/viewproperties.cpp
c0343350d62a4eef66582a5e7d97b16f4f811b31
1 /***************************************************************************
2 * Copyright (C) 2006 by Peter Penz *
5 * This program is free software; you can redistribute it and/or modify *
6 * it under the terms of the GNU General Public License as published by *
7 * the Free Software Foundation; either version 2 of the License, or *
8 * (at your option) any later version. *
10 * This program is distributed in the hope that it will be useful, *
11 * but WITHOUT ANY WARRANTY; without even the implied warranty of *
12 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the *
13 * GNU General Public License for more details. *
15 * You should have received a copy of the GNU General Public License *
16 * along with this program; if not, write to the *
17 * Free Software Foundation, Inc., *
18 * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA *
19 ***************************************************************************/
27 #include <kstandarddirs.h>
29 #include <kinstance.h>
31 #include "viewproperties.h"
32 #include "dolphinsettings.h"
33 #include "generalsettings.h"
35 #define FILE_NAME "/.directory"
37 ViewProperties::ViewProperties(const KUrl
& url
) :
38 m_changedProps(false),
44 m_filepath
= cleanUrl
.path();
46 if ((m_filepath
.length() < 1) || (m_filepath
.at(0) != QChar('/'))) {
47 m_node
= new ViewPropertySettings();
51 // We try and save it to a file in the directory being viewed.
52 // If the directory is not writable by the user or the directory is not local,
53 // we store the properties information in a local file.
54 const bool useGlobalViewProps
= DolphinSettings::instance().generalSettings()->globalViewProps();
55 if (useGlobalViewProps
) {
56 m_filepath
= destinationDir("global");
58 else if (cleanUrl
.isLocalFile()) {
59 const QFileInfo
info(m_filepath
);
60 if (!info
.isWritable()) {
61 m_filepath
= destinationDir("local") + m_filepath
;
65 m_filepath
= destinationDir("remote") + m_filepath
;
68 m_node
= new ViewPropertySettings(KSharedConfig::openConfig(m_filepath
+ FILE_NAME
));
71 ViewProperties::~ViewProperties()
73 if (m_changedProps
&& m_autoSave
) {
81 void ViewProperties::setViewMode(DolphinView::Mode mode
)
83 if (m_node
->viewMode() != mode
) {
84 m_node
->setViewMode(mode
);
89 DolphinView::Mode
ViewProperties::viewMode() const
91 return static_cast<DolphinView::Mode
>(m_node
->viewMode());
94 void ViewProperties::setShowPreview(bool show
)
96 if (m_node
->showPreview() != show
) {
97 m_node
->setShowPreview(show
);
102 bool ViewProperties::showPreview() const
104 return m_node
->showPreview();
108 void ViewProperties::setShowHiddenFiles(bool show
)
110 if (m_node
->showHiddenFiles() != show
) {
111 m_node
->setShowHiddenFiles(show
);
116 bool ViewProperties::showHiddenFiles() const
118 return m_node
->showHiddenFiles();
121 void ViewProperties::setSorting(DolphinView::Sorting sorting
)
123 if (m_node
->sorting() != sorting
) {
124 m_node
->setSorting(sorting
);
129 DolphinView::Sorting
ViewProperties::sorting() const
131 return static_cast<DolphinView::Sorting
>(m_node
->sorting());
134 void ViewProperties::setSortOrder(Qt::SortOrder sortOrder
)
136 if (m_node
->sortOrder() != sortOrder
) {
137 m_node
->setSortOrder(sortOrder
);
142 Qt::SortOrder
ViewProperties::sortOrder() const
144 return static_cast<Qt::SortOrder
>(m_node
->sortOrder());
147 void ViewProperties::setDirProperties(const ViewProperties
& props
)
149 setViewMode(props
.viewMode());
150 setShowPreview(props
.showPreview());
151 setShowHiddenFiles(props
.showHiddenFiles());
152 setSorting(props
.sorting());
153 setSortOrder(props
.sortOrder());
156 void ViewProperties::setAutoSaveEnabled(bool autoSave
)
158 m_autoSave
= autoSave
;
161 bool ViewProperties::isAutoSaveEnabled() const
166 void ViewProperties::updateTimeStamp()
168 m_changedProps
= true;
169 m_node
->setTimestamp(QDateTime::currentDateTime());
172 void ViewProperties::save()
174 KStandardDirs::makeDir(m_filepath
);
175 m_node
->writeConfig();
176 m_changedProps
= false;
179 QString
ViewProperties::destinationDir(const QString
& subDir
) const
181 QString basePath
= KGlobal::instance()->instanceName();
182 basePath
.append("/view_properties/").append(subDir
);
183 return KStandardDirs::locateLocal("data", basePath
);
186 ViewProperties::ViewProperties(const ViewProperties
& props
)
191 ViewProperties
& ViewProperties::operator = (const ViewProperties
& props
)