X-Git-Url: https://cloud.milkyroute.net/gitweb/dolphin.git/blobdiff_plain/163fa7ce30c0bd1b18d0c750bf9358560c2db7af..b3beb9e0c2ff8cdc77f9a48e3416877e5bad0918:/src/dolphinsettings.cpp diff --git a/src/dolphinsettings.cpp b/src/dolphinsettings.cpp index f60bf0189..5b91001ef 100644 --- a/src/dolphinsettings.cpp +++ b/src/dolphinsettings.cpp @@ -20,54 +20,26 @@ #include "dolphinsettings.h" -#include -#include - -#include -#include -#include -#include +#include +#include #include #include -#include "generalsettings.h" -#include "iconsmodesettings.h" -#include "detailsmodesettings.h" - -#include +#include "dolphin_columnmodesettings.h" +#include "dolphin_detailsmodesettings.h" +#include "dolphin_generalsettings.h" +#include "dolphin_iconsmodesettings.h" -DolphinSettings& DolphinSettings::instance() +class DolphinSettingsSingleton { - static DolphinSettings* instance = 0; - if (instance == 0) { - instance = new DolphinSettings(); - } - return *instance; -} - -KBookmark DolphinSettings::bookmark(int index) const -{ - int i = 0; - KBookmarkGroup root = bookmarkManager()->root(); - KBookmark bookmark = root.first(); - while (!bookmark.isNull()) { - if (i == index) { - return bookmark; - } - ++i; - bookmark = root.next(bookmark); - } - - return KBookmark(); -} +public: + DolphinSettings instance; +}; +K_GLOBAL_STATIC(DolphinSettingsSingleton, s_settings) -KBookmarkManager* DolphinSettings::bookmarkManager() const +DolphinSettings& DolphinSettings::instance() { - QString basePath = KGlobal::instance()->instanceName(); - basePath.append("/bookmarks.xml"); - const QString file = KStandardDirs::locateLocal("data", basePath); - - return KBookmarkManager::managerForFile(file, "dolphin", false); + return s_settings->instance; } void DolphinSettings::save() @@ -75,82 +47,7 @@ void DolphinSettings::save() m_generalSettings->writeConfig(); m_iconsModeSettings->writeConfig(); m_detailsModeSettings->writeConfig(); - - QString basePath = KGlobal::instance()->instanceName(); - basePath.append("/bookmarks.xml"); - const QString file = KStandardDirs::locateLocal( "data", basePath); - - KBookmarkManager* manager = KBookmarkManager::managerForFile(file, "dolphin", false); - manager->save(false); -} - -void DolphinSettings::calculateGridSize(int hint) -{ - // TODO: remove in KDE4 - const int previewSize = m_iconsModeSettings->previewSize(); - const int iconSize = m_iconsModeSettings->iconSize(); - const int maxSize = (previewSize > iconSize) ? previewSize : iconSize; - const Q3IconView::Arrangement arrangement = (m_iconsModeSettings->arrangement() == "LeftToRight") ? - Q3IconView::LeftToRight : Q3IconView::TopToBottom; - - int gridWidth = 0; - int gridHeight = 0; - if (arrangement == Q3IconView::LeftToRight) { - int widthUnit = maxSize + (maxSize / 2); - if (widthUnit < K3Icon::SizeLarge) { - widthUnit = K3Icon::SizeLarge; - } - - gridWidth = widthUnit + hint * K3Icon::SizeLarge; - - gridHeight = iconSize; - if (gridHeight <= K3Icon::SizeMedium) { - gridHeight = gridHeight * 2; - } - else { - gridHeight += maxSize / 2; - } - } - else { - assert(arrangement == Q3IconView::TopToBottom); - gridWidth = maxSize + (hint + 1) * (8 * m_iconsModeSettings->fontSize()); - - // The height-setting is ignored yet by KFileIconView if the TopToBottom - // arrangement is active. Anyway write the setting to have a defined value. - gridHeight = maxSize; - } - - m_iconsModeSettings->setGridWidth(gridWidth); - m_iconsModeSettings->setGridHeight(gridHeight); -} - -int DolphinSettings::textWidthHint() const -{ - // TODO: remove in KDE4 - const int previewSize = m_iconsModeSettings->previewSize(); - const int iconSize = m_iconsModeSettings->iconSize(); - const Q3IconView::Arrangement arrangement = (m_iconsModeSettings->arrangement() == "LeftToRight") ? - Q3IconView::LeftToRight : Q3IconView::TopToBottom; - - const int gridWidth = m_iconsModeSettings->gridWidth(); - - const int maxSize = (previewSize > iconSize) ? previewSize : iconSize; - int hint = 0; - if (arrangement == Q3IconView::LeftToRight) { - int widthUnit = maxSize + (maxSize / 2); - if (widthUnit < K3Icon::SizeLarge) { - widthUnit = K3Icon::SizeLarge; - } - hint = (gridWidth - widthUnit) / K3Icon::SizeLarge; - } - else { - assert(arrangement == Q3IconView::TopToBottom); - hint = (gridWidth - maxSize) / (8 * m_iconsModeSettings->fontSize()) - 1; - if (hint > 2) { - hint = 2; - } - } - return hint; + m_columnModeSettings->writeConfig(); } DolphinSettings::DolphinSettings() @@ -158,6 +55,8 @@ DolphinSettings::DolphinSettings() m_generalSettings = new GeneralSettings(); m_iconsModeSettings = new IconsModeSettings(); m_detailsModeSettings = new DetailsModeSettings(); + m_columnModeSettings = new ColumnModeSettings(); + m_placesModel = new KFilePlacesModel(); } DolphinSettings::~DolphinSettings() @@ -170,4 +69,10 @@ DolphinSettings::~DolphinSettings() delete m_detailsModeSettings; m_detailsModeSettings = 0; + + delete m_columnModeSettings; + m_columnModeSettings = 0; + + delete m_placesModel; + m_placesModel = 0; }