X-Git-Url: https://cloud.milkyroute.net/gitweb/dolphin.git/blobdiff_plain/cf72e481110d76081d1757dc89da5d8f68627b19..305ecd86f9cdfd7d4e3e96fb5b7f3daab72c6ba5:/src/views/dolphinitemlistcontainer.cpp diff --git a/src/views/dolphinitemlistcontainer.cpp b/src/views/dolphinitemlistcontainer.cpp index ec1af9549..5b7522f00 100644 --- a/src/views/dolphinitemlistcontainer.cpp +++ b/src/views/dolphinitemlistcontainer.cpp @@ -48,10 +48,12 @@ DolphinItemListContainer::DolphinItemListContainer(KDirLister* dirLister, controller()->setModel(new KFileItemModel(dirLister, this)); m_fileItemListView = new KFileItemListView(); - m_fileItemListView->setWidgetCreator(new KItemListWidgetCreator()); - m_fileItemListView->setEnabledSelectionToggles(GeneralSettings::showSelectionToggle()); controller()->setView(m_fileItemListView); + m_fileItemListView->setWidgetCreator(new KItemListWidgetCreator()); + m_fileItemListView->setEnabledSelectionToggles(GeneralSettings::showSelectionToggle()); + m_fileItemListView->setEnlargeSmallPreviews(GeneralSettings::enlargeSmallPreviews()); + updateAutoActivationDelay(); updateFont(); updateGridSize(); @@ -60,7 +62,7 @@ DolphinItemListContainer::DolphinItemListContainer(KDirLister* dirLister, DolphinItemListContainer::~DolphinItemListContainer() { writeSettings(); - + controller()->setView(0); delete m_fileItemListView; m_fileItemListView = 0; @@ -133,15 +135,19 @@ void DolphinItemListContainer::setItemLayout(KFileItemListView::Layout layout) switch (layout) { case KFileItemListView::IconsLayout: m_fileItemListView->setScrollOrientation(Qt::Vertical); - m_fileItemListView->setHeaderShown(false); + m_fileItemListView->setHeaderVisible(false); + m_fileItemListView->setSupportsItemExpanding(false); break; case KFileItemListView::DetailsLayout: m_fileItemListView->setScrollOrientation(Qt::Vertical); - m_fileItemListView->setHeaderShown(true); + m_fileItemListView->setHeaderVisible(true); + m_fileItemListView->setSupportsItemExpanding(DetailsModeSettings::expandableFolders()); + break; case KFileItemListView::CompactLayout: m_fileItemListView->setScrollOrientation(Qt::Horizontal); - m_fileItemListView->setHeaderShown(false); + m_fileItemListView->setHeaderVisible(false); + m_fileItemListView->setSupportsItemExpanding(false); break; default: Q_ASSERT(false); @@ -176,6 +182,11 @@ void DolphinItemListContainer::readSettings() beginTransaction(); m_fileItemListView->setEnabledSelectionToggles(GeneralSettings::showSelectionToggle()); + + const bool expandableFolders = (itemLayout() && KFileItemListView::DetailsLayout) && + DetailsModeSettings::expandableFolders(); + m_fileItemListView->setSupportsItemExpanding(expandableFolders); + updateAutoActivationDelay(); updateFont(); updateGridSize(); @@ -191,7 +202,7 @@ void DolphinItemListContainer::readSettings() } void DolphinItemListContainer::writeSettings() -{ +{ IconsModeSettings::self()->writeConfig(); CompactModeSettings::self()->writeConfig(); DetailsModeSettings::self()->writeConfig(); @@ -217,7 +228,7 @@ void DolphinItemListContainer::updateGridSize() case KFileItemListView::IconsLayout: { const int minItemWidth = 48; itemWidth = minItemWidth + IconsModeSettings::textWidthIndex() * 64; - + if (previewsShown()) { // Optimize the width for previews with a 3:2 aspect ratio instead // of a 1:1 ratio to avoid wasting too much vertical space when @@ -225,12 +236,12 @@ void DolphinItemListContainer::updateGridSize() const int minWidth = iconSize * 3 / 2; itemWidth = qMax(itemWidth, minWidth); } - + if (itemWidth < iconSize + padding * 2) { itemWidth = iconSize + padding * 2; } itemHeight = padding * 3 + iconSize + styleOption.fontMetrics.height(); - + horizontalMargin = 4; verticalMargin = 8; break; @@ -239,7 +250,7 @@ void DolphinItemListContainer::updateGridSize() itemWidth = padding * 4 + iconSize + styleOption.fontMetrics.height() * 5; const int textLinesCount = m_fileItemListView->visibleRoles().count(); itemHeight = padding * 2 + qMax(iconSize, textLinesCount * styleOption.fontMetrics.height()); - + horizontalMargin = 8; break; }