X-Git-Url: https://cloud.milkyroute.net/gitweb/dolphin.git/blobdiff_plain/538d9bf43f4164179f57495e582ef1f44331fde4..0222d552811efb7049de2d024247b0b8eaeffe2b:/src/views/dolphinitemlistcontainer.cpp diff --git a/src/views/dolphinitemlistcontainer.cpp b/src/views/dolphinitemlistcontainer.cpp index d28aa363f..c687ede4d 100644 --- a/src/views/dolphinitemlistcontainer.cpp +++ b/src/views/dolphinitemlistcontainer.cpp @@ -59,10 +59,8 @@ DolphinItemListContainer::DolphinItemListContainer(KDirLister* dirLister, DolphinItemListContainer::~DolphinItemListContainer() { - IconsModeSettings::self()->writeConfig(); - CompactModeSettings::self()->writeConfig(); - DetailsModeSettings::self()->writeConfig(); - + writeSettings(); + controller()->setView(0); delete m_fileItemListView; m_fileItemListView = 0; @@ -170,7 +168,7 @@ void DolphinItemListContainer::endTransaction() m_fileItemListView->endTransaction(); } -void DolphinItemListContainer::refresh() +void DolphinItemListContainer::readSettings() { ViewModeSettings settings(viewMode()); settings.readConfig(); @@ -192,6 +190,13 @@ void DolphinItemListContainer::refresh() endTransaction(); } +void DolphinItemListContainer::writeSettings() +{ + IconsModeSettings::self()->writeConfig(); + CompactModeSettings::self()->writeConfig(); + DetailsModeSettings::self()->writeConfig(); +} + void DolphinItemListContainer::updateGridSize() { const ViewModeSettings settings(viewMode()); @@ -209,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; } @@ -217,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; @@ -227,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 @@ -268,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;