X-Git-Url: https://cloud.milkyroute.net/gitweb/dolphin.git/blobdiff_plain/39de6c264f22ca35eefdce4452cf957dafb16fa4..25f4e3efbd485d229cecd397502b9734bdbdee36:/src/viewproperties.cpp diff --git a/src/viewproperties.cpp b/src/viewproperties.cpp index cf675f30a..319a06bc2 100644 --- a/src/viewproperties.cpp +++ b/src/viewproperties.cpp @@ -18,28 +18,42 @@ * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA * ***************************************************************************/ -#include +#include "viewproperties.h" -#include -#include +#include "dolphinsettings.h" +#include "dolphin_directoryviewpropertysettings.h" +#include "dolphin_generalsettings.h" #include #include #include #include -#include -#include "viewproperties.h" -#include "dolphinsettings.h" -#include "dolphin_generalsettings.h" +#ifdef HAVE_NEPOMUK + #include +#endif + +#include +#include +#include + +bool ViewProperties::m_nepomukSupport = false; #define FILE_NAME "/.directory" ViewProperties::ViewProperties(const KUrl& url) : - m_changedProps(false), - m_autoSave(true), - m_node(0) + m_changedProps(false), + m_autoSave(true), + m_node(0) { +#ifdef HAVE_NEPOMUK + static bool checkedNepomukSupport = false; + if (!checkedNepomukSupport) { + m_nepomukSupport = !Nepomuk::ResourceManager::instance()->init(); + checkedNepomukSupport = true; + } +#endif + KUrl cleanUrl(url); cleanUrl.cleanPath(); m_filepath = cleanUrl.path(); @@ -56,14 +70,12 @@ ViewProperties::ViewProperties(const KUrl& url) : const bool useGlobalViewProps = settings->globalViewProps(); if (useGlobalViewProps) { m_filepath = destinationDir("global"); - } - else if (cleanUrl.isLocalFile()) { + } else if (cleanUrl.isLocalFile()) { const QFileInfo info(m_filepath); if (!info.isWritable()) { m_filepath = destinationDir("local") + m_filepath; } - } - else { + } else { m_filepath = destinationDir("remote") + m_filepath; } @@ -132,6 +144,20 @@ void ViewProperties::setShowHiddenFiles(bool show) } } +void ViewProperties::setCategorizedSorting(bool categorized) +{ + if (m_node->categorizedSorting() != categorized) { + m_node->setCategorizedSorting(categorized); + updateTimeStamp(); + } +} + +bool ViewProperties::categorizedSorting() const +{ + return m_node->categorizedSorting(); +} + + bool ViewProperties::showHiddenFiles() const { return m_node->showHiddenFiles(); @@ -147,7 +173,15 @@ void ViewProperties::setSorting(DolphinView::Sorting sorting) DolphinView::Sorting ViewProperties::sorting() const { - return static_cast(m_node->sorting()); + // If Nepomuk is not available, return SortByName as fallback if SortByRating + // or SortByTags is stored. + DolphinView::Sorting sorting = static_cast(m_node->sorting()); + const bool sortByName = !m_nepomukSupport && + ((sorting == DolphinView::SortByRating) || (sorting == DolphinView::SortByTags)); + if (sortByName) { + sorting = DolphinView::SortByName; + } + return sorting; } void ViewProperties::setSortOrder(Qt::SortOrder sortOrder) @@ -163,13 +197,29 @@ Qt::SortOrder ViewProperties::sortOrder() const return static_cast(m_node->sortOrder()); } +void ViewProperties::setAdditionalInfo(KFileItemDelegate::AdditionalInformation info) +{ + if (m_node->additionalInfo() != info) { + m_node->setAdditionalInfo(info); + updateTimeStamp(); + } +} + +KFileItemDelegate::AdditionalInformation ViewProperties::additionalInfo() const +{ + return static_cast(m_node->additionalInfo()); +} + + void ViewProperties::setDirProperties(const ViewProperties& props) { setViewMode(props.viewMode()); setShowPreview(props.showPreview()); setShowHiddenFiles(props.showHiddenFiles()); + setCategorizedSorting(props.categorizedSorting()); setSorting(props.sorting()); setSortOrder(props.sortOrder()); + setAdditionalInfo(props.additionalInfo()); } void ViewProperties::setAutoSaveEnabled(bool autoSave)