#include <dolphinview.h>
#include <kurl.h>
-#include <qdatetime.h>
-
-#include "directoryviewpropertysettings.h"
-
-class QFile;
+#include <libdolphin_export.h>
+class ViewPropertySettings;
/**
* @brief Maintains the view properties like 'view mode' or
* 'show hidden files' for a directory.
* (see GeneralSettings::globalViewMode()), the values from the global .directory file
* are used for initialization.
*/
-class ViewProperties
+class LIBDOLPHINPRIVATE_EXPORT ViewProperties
{
public:
explicit ViewProperties(const KUrl& url);
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;
+ /**
+ * 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,
* show hidden files, sorting and sort order like
*/
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