X-Git-Url: https://cloud.milkyroute.net/gitweb/dolphin.git/blobdiff_plain/677f94c80078aed63fa714f00f72f444060b2d8a..da76a0722cf0db07e90aa257bbdba717cdb68817:/src/views/dolphinitemlistcontainer.cpp diff --git a/src/views/dolphinitemlistcontainer.cpp b/src/views/dolphinitemlistcontainer.cpp index 9e7a15f74..c687ede4d 100644 --- a/src/views/dolphinitemlistcontainer.cpp +++ b/src/views/dolphinitemlistcontainer.cpp @@ -52,16 +52,15 @@ DolphinItemListContainer::DolphinItemListContainer(KDirLister* dirLister, m_fileItemListView->setEnabledSelectionToggles(GeneralSettings::showSelectionToggle()); controller()->setView(m_fileItemListView); + updateAutoActivationDelay(); updateFont(); updateGridSize(); } DolphinItemListContainer::~DolphinItemListContainer() { - IconsModeSettings::self()->writeConfig(); - CompactModeSettings::self()->writeConfig(); - DetailsModeSettings::self()->writeConfig(); - + writeSettings(); + controller()->setView(0); delete m_fileItemListView; m_fileItemListView = 0; @@ -169,11 +168,15 @@ void DolphinItemListContainer::endTransaction() m_fileItemListView->endTransaction(); } -void DolphinItemListContainer::refresh() +void DolphinItemListContainer::readSettings() { ViewModeSettings settings(viewMode()); settings.readConfig(); + beginTransaction(); + + m_fileItemListView->setEnabledSelectionToggles(GeneralSettings::showSelectionToggle()); + updateAutoActivationDelay(); updateFont(); updateGridSize(); @@ -183,6 +186,15 @@ void DolphinItemListContainer::refresh() << "imagethumbnail" << "jpegthumbnail"); m_fileItemListView->setEnabledPlugins(plugins); + + endTransaction(); +} + +void DolphinItemListContainer::writeSettings() +{ + IconsModeSettings::self()->writeConfig(); + CompactModeSettings::self()->writeConfig(); + DetailsModeSettings::self()->writeConfig(); } void DolphinItemListContainer::updateGridSize() @@ -202,7 +214,7 @@ void DolphinItemListContainer::updateGridSize() switch (itemLayout()) { case KFileItemListView::IconsLayout: { const int minItemWidth = 64; - itemWidth = minItemWidth + IconsModeSettings::textWidthIndex() * 64; // TODO: + itemWidth = minItemWidth + IconsModeSettings::textWidthIndex() * 64; if (itemWidth < iconSize + innerMargin * 2) { itemWidth = iconSize + innerMargin * 2; } @@ -210,7 +222,7 @@ void DolphinItemListContainer::updateGridSize() break; } case KFileItemListView::CompactLayout: { - itemWidth = innerMargin * 2; + itemWidth = innerMargin * 4 + iconSize + styleOption.fontMetrics.height() * 5; const int textLinesCount = m_fileItemListView->visibleRoles().count(); itemHeight = innerMargin * 2 + qMax(iconSize, textLinesCount * styleOption.fontMetrics.height()); break; @@ -220,7 +232,11 @@ void DolphinItemListContainer::updateGridSize() itemHeight = innerMargin * 2 + qMax(iconSize, styleOption.fontMetrics.height()); break; } - default: Q_ASSERT(false); break; + default: + itemWidth = -1; + itemHeight = -1; + Q_ASSERT(false); + break; } // Apply the calculated values @@ -247,6 +263,12 @@ void DolphinItemListContainer::updateFont() m_fileItemListView->setStyleOption(styleOption); } +void DolphinItemListContainer::updateAutoActivationDelay() +{ + const int delay = GeneralSettings::autoExpandFolders() ? 750 : -1; + controller()->setAutoActivationDelay(delay); +} + ViewModeSettings::ViewMode DolphinItemListContainer::viewMode() const { ViewModeSettings::ViewMode mode; @@ -255,7 +277,9 @@ ViewModeSettings::ViewMode DolphinItemListContainer::viewMode() const case KFileItemListView::IconsLayout: mode = ViewModeSettings::IconsMode; break; case KFileItemListView::CompactLayout: mode = ViewModeSettings::CompactMode; break; case KFileItemListView::DetailsLayout: mode = ViewModeSettings::DetailsMode; break; - default: Q_ASSERT(false); break; + default: mode = ViewModeSettings::IconsMode; + Q_ASSERT(false); + break; } return mode;