]> cloud.milkyroute.net Git - dolphin.git/blobdiff - src/viewproperties.h
Remember the additional-info property (size, date, type, ...) for each view mode...
[dolphin.git] / src / viewproperties.h
index be64b989bfecc3b1ab54151e82bd29c42200dd32..3237686c7f8ab428bb9dc4cadebe2b31b9a2faf4 100644 (file)
 #define VIEWPROPERTIES_H
 
 #include <dolphinview.h>
-#include <kfileitemdelegate.h>
 #include <kurl.h>
-#include <qdatetime.h>
 #include <libdolphin_export.h>
-#include "dolphin_directoryviewpropertysettings.h"
-
-class QFile;
 
+class ViewPropertySettings;
 /**
  * @brief Maintains the view properties like 'view mode' or
  *        'show hidden files' for a directory.
@@ -51,7 +47,7 @@ class QFile;
  * (see GeneralSettings::globalViewMode()), the values from the global .directory file
  * are used for initialization.
  */
-class LIBDOLPHIN_EXPORT ViewProperties
+class LIBDOLPHINPRIVATE_EXPORT ViewProperties
 {
 public:
     explicit ViewProperties(const KUrl& url);
@@ -66,14 +62,28 @@ public:
     void setShowHiddenFiles(bool show);
     bool showHiddenFiles() const;
 
+    void setCategorizedSorting(bool categorized);
+    bool categorizedSorting() const;
+
     void setSorting(DolphinView::Sorting sorting);
     DolphinView::Sorting sorting() const;
 
     void setSortOrder(Qt::SortOrder sortOrder);
     Qt::SortOrder sortOrder() const;
 
-    void setAdditionalInfo(KFileItemDelegate::AdditionalInformation info);
-    KFileItemDelegate::AdditionalInformation additionalInfo() const;
+    /**
+     * Sets the additional information for the current set view-mode.
+     * Note that the additional-info property is the only property where
+     * the value is dependent from another property (in this case the view-mode).
+     */
+    void setAdditionalInfo(KFileItemDelegate::InformationList info);
+    
+    /**
+     * Returns the additional information for the current set view-mode.
+     * Note that the additional-info property is the only property where
+     * the value is dependent from another property (in this case the view-mode).
+     */
+    KFileItemDelegate::InformationList additionalInfo() const;
 
     /**
      * Sets the directory properties view mode, show preview,
@@ -118,14 +128,46 @@ private:
      */
     QString destinationDir(const QString& subDir) const;
 
-    ViewProperties(const ViewProperties& props);
-    ViewProperties& operator= (const ViewProperties& props);
+    /**
+     * Returns the encoded additional information that can be stored
+     * in the .directory file. See ViewProperties::decodedAdditionalInfo()
+     * for the coding format.
+     * @param info   Additional information for the current view mode.
+     */
+    int encodedAdditionalInfo(int info) const;
+
+    /**
+     * Returns the decoded additional information from the .directory
+     * file by respecting the current set view mode. The additional
+     * information from the .directory file is an integer value, where:
+     * - Byte 0 stores the additional info for the details view
+     * - Byte 1 stores the additional info for the icons view
+     * - Byte 2 stores the additional info for the column view
+     * The additional information property is the only property that is
+     * dependent from another property (in this case the view-mode).
+     */
+    int decodedAdditionalInfo() const;
+
+    Q_DISABLE_COPY(ViewProperties)
 
 private:
+    enum AdditionalInfoValues
+    {
+        NoInfo   = 0,
+        SizeInfo = 1,
+        DateInfo = 2,
+        PermissionsInfo = 4,
+        OwnerInfo = 8,
+        GroupInfo = 16,
+        TypeInfo = 32
+    };
+
     bool m_changedProps;
     bool m_autoSave;
     QString m_filepath;
     ViewPropertySettings* m_node;
+
+    static bool m_nepomukSupport;
 };
 
 #endif