From 25349096ae7fe344613d35e5548cac1a91b60fd1 Mon Sep 17 00:00:00 2001 From: Peter Penz Date: Sun, 11 Mar 2007 16:47:12 +0000 Subject: Allow to set the 'AdditionalInformation' property from KFileItemDelegate for each folder. Use case: - Icons view for images: set 'Size' as additional property - Icons view for media: show 'MIME type' as additional property - Default Icons view: don't show any addtional property for a clean layout. TODO: KFileItemDelagate::AdditionalInformation intersects with KDirModel::Columns when used in combination with the details view. Assure that the user does not get confronted with such implementation details in the user interface. svn path=/trunk/KDE/kdebase/apps/; revision=641525 --- src/dolphinview.cpp | 29 +++++++++++++++++++++++++++++ 1 file changed, 29 insertions(+) (limited to 'src/dolphinview.cpp') diff --git a/src/dolphinview.cpp b/src/dolphinview.cpp index 3a6a2e757..60e929eba 100644 --- a/src/dolphinview.cpp +++ b/src/dolphinview.cpp @@ -71,6 +71,7 @@ DolphinView::DolphinView(DolphinMainWindow* mainWindow, m_controller(0), m_iconsView(0), m_detailsView(0), + m_fileItemDelegate(0), m_filterBar(0), m_statusBar(0), m_dirModel(0), @@ -425,6 +426,22 @@ Qt::SortOrder DolphinView::sortOrder() const return m_proxyModel->sortOrder(); } +void DolphinView::setAdditionalInfo(KFileItemDelegate::AdditionalInformation info) +{ + ViewProperties props(m_urlNavigator->url()); + props.setAdditionalInfo(info); + + m_fileItemDelegate->setAdditionalInformation(info); + + emit additionalInfoChanged(info); + reload(); +} + +KFileItemDelegate::AdditionalInformation DolphinView::additionalInfo() const +{ + return m_fileItemDelegate->additionalInformation(); +} + void DolphinView::goBack() { m_urlNavigator->goBack(); @@ -613,6 +630,13 @@ void DolphinView::loadDirectory(const KUrl& url) emit sortOrderChanged(sortOrder); } + KFileItemDelegate::AdditionalInformation info = props.additionalInfo(); + if (info != m_fileItemDelegate->additionalInformation()) { + m_fileItemDelegate->setAdditionalInformation(info); + + emit additionalInfoChanged(info); + } + const bool showPreview = props.showPreview(); if (showPreview != m_controller->showPreview()) { m_controller->setShowPreview(showPreview); @@ -1045,6 +1069,7 @@ void DolphinView::createView() view->deleteLater(); m_iconsView = 0; m_detailsView = 0; + m_fileItemDelegate = 0; } assert(m_iconsView == 0); @@ -1063,6 +1088,10 @@ void DolphinView::createView() break; } + + m_fileItemDelegate = new KFileItemDelegate(view); + view->setItemDelegate(m_fileItemDelegate); + view->setModel(m_proxyModel); view->setSelectionMode(QAbstractItemView::ExtendedSelection); -- cgit v1.3