#include "dolphinsettings.h"
-#include <assert.h>
-#include <qdir.h>
-
-#include <kapplication.h>
-#include <kbookmark.h>
-#include <kbookmarkmanager.h>
-#include <kicontheme.h>
+#include <kfileplacesmodel.h>
+#include <kcomponentdata.h>
#include <klocale.h>
#include <kstandarddirs.h>
-#include "generalsettings.h"
-#include "iconsmodesettings.h"
-#include "previewsmodesettings.h"
-#include "detailsmodesettings.h"
-
-#include <Q3IconView>
+#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()
{
m_generalSettings->writeConfig();
m_iconsModeSettings->writeConfig();
- m_previewsModeSettings->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()
{
m_generalSettings = new GeneralSettings();
m_iconsModeSettings = new IconsModeSettings();
- m_previewsModeSettings = new PreviewsModeSettings();
m_detailsModeSettings = new DetailsModeSettings();
+ m_columnModeSettings = new ColumnModeSettings();
+ m_placesModel = new KFilePlacesModel();
}
DolphinSettings::~DolphinSettings()
delete m_iconsModeSettings;
m_iconsModeSettings = 0;
- delete m_previewsModeSettings;
- m_previewsModeSettings = 0;
-
delete m_detailsModeSettings;
m_detailsModeSettings = 0;
+
+ delete m_columnModeSettings;
+ m_columnModeSettings = 0;
+
+ delete m_placesModel;
+ m_placesModel = 0;
}