]> cloud.milkyroute.net Git - dolphin.git/blobdiff - src/dolphindetailsview.cpp
Allow to configure which additional information (KFileItemDelegate::AdditionalInforma...
[dolphin.git] / src / dolphindetailsview.cpp
index f0d93425b6dab75407dfd908a530b08b44725b47..842026924997a4a418798dd4592c336263648b32 100644 (file)
@@ -29,6 +29,8 @@
 
 #include <assert.h>
 #include <kdirmodel.h>
+#include <kfileitemdelegate.h>
+
 #include <QHeaderView>
 
 DolphinDetailsView::DolphinDetailsView(QWidget* parent, DolphinController* controller) :
@@ -57,7 +59,7 @@ DolphinDetailsView::DolphinDetailsView(QWidget* parent, DolphinController* contr
     connect(this, SIGNAL(clicked(const QModelIndex&)),
             controller, SLOT(triggerItem(const QModelIndex&)));
 
-   // apply the details mode settings to the widget
+    // apply the details mode settings to the widget
     const DetailsModeSettings* settings = DolphinSettings::instance().detailsModeSettings();
     assert(settings != 0);
 
@@ -65,6 +67,9 @@ DolphinDetailsView::DolphinDetailsView(QWidget* parent, DolphinController* contr
     m_viewOptions.font = QFont(settings->fontFamily(), settings->fontSize());
     const int iconSize = settings->iconSize();
     m_viewOptions.decorationSize = QSize(iconSize, iconSize);
+
+    KFileItemDelegate* delegate = new KFileItemDelegate(parent);
+    setItemDelegate(delegate);
 }
 
 DolphinDetailsView::~DolphinDetailsView()
@@ -81,6 +86,25 @@ bool DolphinDetailsView::event(QEvent* event)
         headerView->setStretchLastSection(false);
         headerView->setResizeMode(QHeaderView::ResizeToContents);
         headerView->setResizeMode(0, QHeaderView::Stretch);
+
+        // hide columns if this is indicated by the settings
+        const DetailsModeSettings* settings = DolphinSettings::instance().detailsModeSettings();
+        assert(settings != 0);
+        if (!settings->showDate()) {
+            hideColumn(KDirModel::ModifiedTime);
+        }
+
+        if (!settings->showPermissions()) {
+            hideColumn(KDirModel::Permissions);
+        }
+
+        if (!settings->showOwner()) {
+            hideColumn(KDirModel::Owner);
+        }
+
+        if (!settings->showGroup()) {
+            hideColumn(KDirModel::Group);
+        }
     }
 
     return QTreeView::event(event);