diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt index b5c773ae6d..9346190001 100644 --- a/src/CMakeLists.txt +++ b/src/CMakeLists.txt @@ -41,16 +41,16 @@ set(dolphinprivate_LIB_SRCS kitemviews/kpixmapmodifier.cpp settings/additionalinfodialog.cpp settings/applyviewpropsjob.cpp - settings/dolphinsettings.cpp settings/viewpropertiesdialog.cpp settings/viewpropsprogressinfo.cpp views/additionalinfoaccessor.cpp views/dolphindirlister.cpp views/dolphinfileitemlistwidget.cpp - views/dolphinview.cpp views/dolphinitemlistcontainer.cpp views/dolphinnewfilemenuobserver.cpp + views/dolphinplacesmodel.cpp views/dolphinremoteencoding.cpp + views/dolphinview.cpp views/dolphinviewactionhandler.cpp views/dolphinviewautoscroller.cpp views/draganddrophelper.cpp diff --git a/src/dolphinapplication.cpp b/src/dolphinapplication.cpp index 0dc9c96024..1abe8aa6e2 100644 --- a/src/dolphinapplication.cpp +++ b/src/dolphinapplication.cpp @@ -21,7 +21,6 @@ #include "dolphinapplication.h" #include "dolphinmainwindow.h" #include "dolphin_generalsettings.h" -#include "settings/dolphinsettings.h" #include #include @@ -38,12 +37,11 @@ DolphinApplication::DolphinApplication() : KCmdLineArgs* args = KCmdLineArgs::parsedArgs(); bool resetSplitSettings = false; - GeneralSettings* generalSettings = DolphinSettings::instance().generalSettings(); - if (args->isSet("split") && !generalSettings->splitView()) { + if (args->isSet("split") && !GeneralSettings::splitView()) { // Dolphin should be opened with a split view although this is not // set in the GeneralSettings. Temporary adjust the setting until // all passed URLs have been opened. - generalSettings->setSplitView(true); + GeneralSettings::setSplitView(true); resetSplitSettings = true; } @@ -68,7 +66,7 @@ DolphinApplication::DolphinApplication() : args->clear(); if (resetSplitSettings) { - generalSettings->setSplitView(false); + GeneralSettings::setSplitView(false); } } diff --git a/src/dolphincontextmenu.cpp b/src/dolphincontextmenu.cpp index 848ba7de08..8d4a3173da 100644 --- a/src/dolphincontextmenu.cpp +++ b/src/dolphincontextmenu.cpp @@ -22,7 +22,6 @@ #include "dolphinmainwindow.h" #include "dolphinnewfilemenu.h" -#include "settings/dolphinsettings.h" #include "dolphinviewcontainer.h" #include "dolphin_generalsettings.h" @@ -55,6 +54,7 @@ #include #include +#include "views/dolphinplacesmodel.h" #include "views/dolphinview.h" #include "views/viewmodecontroller.h" @@ -194,9 +194,9 @@ void DolphinContextMenu::openTrashContextMenu() if (action == emptyTrashAction) { KonqOperations::emptyTrash(m_mainWindow); } else if (action == addToPlacesAction) { - const KUrl& url = m_mainWindow->activeViewContainer()->url(); + const KUrl url = m_mainWindow->activeViewContainer()->url(); if (url.isValid()) { - DolphinSettings::instance().placesModel()->addPlace(i18nc("@label", "Trash"), url); + DolphinPlacesModel::instance()->addPlace(i18nc("@label", "Trash"), url); } } } @@ -292,7 +292,7 @@ void DolphinContextMenu::openItemContextMenu() addVersionControlPluginActions(); // insert 'Copy To' and 'Move To' sub menus - if (DolphinSettings::instance().generalSettings()->showCopyMoveMenu()) { + if (GeneralSettings::showCopyMoveMenu()) { m_copyToMenu.setItems(m_selectedItems); m_copyToMenu.setReadOnly(!selectedItemsProperties().supportsWriting()); m_copyToMenu.addActionsTo(m_popup); @@ -307,8 +307,8 @@ void DolphinContextMenu::openItemContextMenu() if (activatedAction == addToPlacesAction) { const KUrl selectedUrl(m_fileInfo.url()); if (selectedUrl.isValid()) { - DolphinSettings::instance().placesModel()->addPlace(placesName(selectedUrl), - selectedUrl); + DolphinPlacesModel::instance()->addPlace(placesName(selectedUrl), + selectedUrl); } } else if (activatedAction == openParentInNewWindowAction) { m_command = OpenParentFolderInNewWindow; @@ -368,7 +368,7 @@ void DolphinContextMenu::openViewportContextMenu() if (addToPlacesAction && (action == addToPlacesAction)) { const KUrl url = m_mainWindow->activeViewContainer()->url(); if (url.isValid()) { - DolphinSettings::instance().placesModel()->addPlace(placesName(url), url); + DolphinPlacesModel::instance()->addPlace(placesName(url), url); } } } @@ -419,7 +419,7 @@ QString DolphinContextMenu::placesName(const KUrl& url) const bool DolphinContextMenu::placeExists(const KUrl& url) const { - const KFilePlacesModel* placesModel = DolphinSettings::instance().placesModel(); + const KFilePlacesModel* placesModel = DolphinPlacesModel::instance(); const int count = placesModel->rowCount(); for (int i = 0; i < count; ++i) { diff --git a/src/dolphinmainwindow.cpp b/src/dolphinmainwindow.cpp index 71e2b2c364..0ae00ea0d9 100644 --- a/src/dolphinmainwindow.cpp +++ b/src/dolphinmainwindow.cpp @@ -37,7 +37,6 @@ #include "panels/information/informationpanel.h" #include "search/dolphinsearchbox.h" #include "search/dolphinsearchinformation.h" -#include "settings/dolphinsettings.h" #include "settings/dolphinsettingsdialog.h" #include "statusbar/dolphinstatusbar.h" #include "views/dolphinviewactionhandler.h" @@ -88,6 +87,8 @@ #include #include +#include "views/dolphinplacesmodel.h" + #include #include #include @@ -143,6 +144,10 @@ DolphinMainWindow::DolphinMainWindow() : m_lastHandleUrlStatJob(0), m_searchDockIsTemporaryVisible(false) { + DolphinPlacesModel::setModel(new KFilePlacesModel(this)); + connect(DolphinPlacesModel::instance(), SIGNAL(errorMessage(QString)), + this, SLOT(showErrorMessage(QString))); + // Workaround for a X11-issue in combination with KModifierInfo // (see DolphinContextMenu::initializeModifierKeyInfo() for // more information): @@ -163,8 +168,6 @@ DolphinMainWindow::DolphinMainWindow() : this, SLOT(clearStatusBar())); connect(undoManager, SIGNAL(jobRecordingFinished(CommandType)), this, SLOT(showCommand(CommandType))); - connect(DolphinSettings::instance().placesModel(), SIGNAL(errorMessage(QString)), - this, SLOT(showErrorMessage(QString))); GeneralSettings* generalSettings = GeneralSettings::self(); const bool firstRun = (generalSettings->version() < 200); @@ -278,8 +281,7 @@ void DolphinMainWindow::openDirectories(const QList& dirs) const int oldOpenTabsCount = m_viewTab.count(); - const GeneralSettings* generalSettings = DolphinSettings::instance().generalSettings(); - const bool hasSplitView = generalSettings->splitView(); + const bool hasSplitView = GeneralSettings::splitView(); // Open each directory inside a new tab. If the "split view" option has been enabled, // always show two directories within one tab. @@ -507,8 +509,7 @@ void DolphinMainWindow::openNewTab(const KUrl& url) actionCollection()->action("close_tab")->setEnabled(true); // provide a split view, if the startup settings are set this way - const GeneralSettings* generalSettings = DolphinSettings::instance().generalSettings(); - if (generalSettings->splitView()) { + if (GeneralSettings::splitView()) { const int tabIndex = m_viewTab.count() - 1; createSecondaryView(tabIndex); m_viewTab[tabIndex].secondaryView->setActive(true); @@ -596,8 +597,6 @@ void DolphinMainWindow::showEvent(QShowEvent* event) void DolphinMainWindow::closeEvent(QCloseEvent* event) { - GeneralSettings* generalSettings = GeneralSettings::self(); - // Find out if Dolphin is closed directly by the user or // by the session manager because the session is closed bool closedByUser = true; @@ -606,7 +605,7 @@ void DolphinMainWindow::closeEvent(QCloseEvent* event) closedByUser = false; } - if ((m_viewTab.count() > 1) && generalSettings->confirmClosingMultipleTabs() && closedByUser) { + if (m_viewTab.count() > 1 && GeneralSettings::confirmClosingMultipleTabs() && closedByUser) { // Ask the user if he really wants to quit and close all tabs. // Open a confirmation dialog with 3 buttons: // KDialog::Yes -> Quit @@ -632,7 +631,7 @@ void DolphinMainWindow::closeEvent(QCloseEvent* event) KMessageBox::Notify); if (doNotAskAgainCheckboxResult) { - generalSettings->setConfirmClosingMultipleTabs(false); + GeneralSettings::setConfirmClosingMultipleTabs(false); } switch (result) { @@ -648,8 +647,8 @@ void DolphinMainWindow::closeEvent(QCloseEvent* event) } } - generalSettings->setVersion(CurrentDolphinVersion); - generalSettings->writeConfig(); + GeneralSettings::setVersion(CurrentDolphinVersion); + GeneralSettings::self()->writeConfig(); if (m_searchDockIsTemporaryVisible) { QDockWidget* searchDock = findChild("searchDock"); @@ -948,9 +947,7 @@ void DolphinMainWindow::replaceLocation() void DolphinMainWindow::togglePanelLockState() { - GeneralSettings* generalSettings = DolphinSettings::instance().generalSettings(); - - const bool newLockState = !generalSettings->lockPanels(); + const bool newLockState = !GeneralSettings::lockPanels(); foreach (QObject* child, children()) { DolphinDockWidget* dock = qobject_cast(child); if (dock) { @@ -958,7 +955,7 @@ void DolphinMainWindow::togglePanelLockState() } } - generalSettings->setLockPanels(newLockState); + GeneralSettings::setLockPanels(newLockState); } void DolphinMainWindow::slotPlacesPanelVisibilityChanged(bool visible) @@ -1405,8 +1402,6 @@ void DolphinMainWindow::updateToolBarMenu() // by connecting to the aboutToHide() signal from the parent-menu. menu->clear(); - const GeneralSettings* generalSettings = DolphinSettings::instance().generalSettings(); - KActionCollection* ac = actionCollection(); // Add "Edit" actions @@ -1420,7 +1415,7 @@ void DolphinMainWindow::updateToolBarMenu() } // Add "View" actions - if (!generalSettings->showZoomSlider()) { + if (!GeneralSettings::showZoomSlider()) { addActionToMenu(ac->action(KStandardAction::name(KStandardAction::ZoomIn)), menu); addActionToMenu(ac->action(KStandardAction::name(KStandardAction::ZoomOut)), menu); menu->addSeparator(); @@ -1743,7 +1738,7 @@ void DolphinMainWindow::setupActions() void DolphinMainWindow::setupDockWidgets() { - const bool lock = DolphinSettings::instance().generalSettings()->lockPanels(); + const bool lock = GeneralSettings::lockPanels(); KDualAction* lockLayoutAction = actionCollection()->add("lock_panels"); lockLayoutAction->setActiveText(i18nc("@action:inmenu Panels", "Unlock Panels")); @@ -1832,7 +1827,7 @@ void DolphinMainWindow::setupDockWidgets() searchPanel, SLOT(setUrl(KUrl))); #endif - if (DolphinSettings::instance().generalSettings()->version() < 200) { + if (GeneralSettings::version() < 200) { infoDock->hide(); foldersDock->hide(); #ifndef Q_OS_WIN @@ -1856,7 +1851,7 @@ void DolphinMainWindow::setupDockWidgets() placesActions.append(separator); placesActions.append(lockLayoutAction); placesPanel->addActions(placesActions); - placesPanel->setModel(DolphinSettings::instance().placesModel()); + placesPanel->setModel(DolphinPlacesModel::instance()); placesPanel->setHorizontalScrollBarPolicy(Qt::ScrollBarAlwaysOff); placesDock->setWidget(placesPanel); @@ -2056,11 +2051,10 @@ void DolphinMainWindow::refreshViews() setActiveViewContainer(activeViewContainer); - const GeneralSettings* generalSettings = DolphinSettings::instance().generalSettings(); - if (generalSettings->modifiedStartupSettings()) { + if (GeneralSettings::modifiedStartupSettings()) { // The startup settings have been changed by the user (see bug #254947). // Synchronize the split-view setting with the active view: - const bool splitView = generalSettings->splitView(); + const bool splitView = GeneralSettings::splitView(); const ViewTab& activeTab = m_viewTab[m_tabIndex]; const bool toggle = ( splitView && !activeTab.secondaryView) || (!splitView && activeTab.secondaryView); diff --git a/src/dolphinpart.cpp b/src/dolphinpart.cpp index ee05d7784c..6c6683d91c 100644 --- a/src/dolphinpart.cpp +++ b/src/dolphinpart.cpp @@ -41,7 +41,6 @@ #include #include -#include "settings/dolphinsettings.h" #include "views/dolphinview.h" #include "views/dolphinviewactionhandler.h" #include "views/dolphinnewfilemenuobserver.h" @@ -129,7 +128,6 @@ DolphinPart::DolphinPart(QWidget* parentWidget, QObject* parent, const QVariantL DolphinPart::~DolphinPart() { - DolphinSettings::instance().save(); DolphinNewFileMenuObserver::instance().detach(m_newFileMenu); } diff --git a/src/dolphinpart.desktop b/src/dolphinpart.desktop index 8f117a6303..b165fa439f 100644 --- a/src/dolphinpart.desktop +++ b/src/dolphinpart.desktop @@ -193,6 +193,12 @@ Icon=view-list-icons # Dummy Exec=dolphin +[Desktop Action compact] +Name=Compact +Icon=view-list-details +# Dummy +Exec=dolphin + [Desktop Action details] Name=Details Name[af]=Besonderhede @@ -279,98 +285,6 @@ Name[wa]=Detays Name[x-test]=xxDetailsxx Name[zh_CN]=细节 Name[zh_TW]=詳情 -Icon=view-list-details +Icon=view-list-tree # Dummy Exec=dolphin - -[Desktop Action columns] -Name=Columns -Name[af]=Kolomme -Name[ar]=الأعمدة -Name[as]=কলাম -Name[ast]=Columnes -Name[be@latin]=Słupki -Name[bg]=Колони -Name[bn]=কলাম -Name[bn_IN]=কলাম -Name[bs]=Kolone -Name[ca]=Columnes -Name[ca@valencia]=Columnes -Name[cs]=Sloupce -Name[csb]=Kòlumnë -Name[da]=Kolonner -Name[de]=Spalten -Name[el]=Στήλες -Name[en_GB]=Columns -Name[eo]=Kolumnoj -Name[es]=Columnas -Name[et]=Veerud -Name[eu]=Zutabeak -Name[fa]=ستونها -Name[fi]=Sarakkeet -Name[fr]=Colonnes -Name[fy]=Kolommen -Name[ga]=Colúin -Name[gl]=Columnas -Name[gu]=સ્થંભો -Name[he]=עמודות -Name[hi]=स्तम्भ -Name[hne]=स्तम्भ -Name[hr]=Stupci -Name[hsb]=Stołpiki -Name[hu]=Oszlopok -Name[ia]=Columnas -Name[id]=Kolom -Name[is]=Dálkar -Name[it]=Colonne -Name[ja]=カラム -Name[ka]=სვეტები -Name[kk]=Бағандар -Name[km]=ជួរឈរ -Name[kn]= ಲಂಬಸಾಲುಗಳ ಬಣ್ಣಗಳು -Name[ko]=열 -Name[ku]=Stûn -Name[lt]=Stulpeliai -Name[lv]=Kolonas -Name[mai]=कालम -Name[mk]=Колони -Name[ml]=നിരകള്‍ -Name[mr]=स्तंभ -Name[ms]=Lajur -Name[nb]=Kolonner -Name[nds]=Striepen -Name[nl]=Kolommen -Name[nn]=Kolonnar -Name[or]=ସ୍ତମ୍ଭ -Name[pa]=ਕਾਲਮ -Name[pl]=Kolumny -Name[pt]=Colunas -Name[pt_BR]=Colunas -Name[ro]=Coloane -Name[ru]=Столбцы -Name[se]=Čuolddat -Name[si]=තීරු -Name[sk]=Stĺpce -Name[sl]=Stolpci -Name[sr]=Колоне -Name[sr@ijekavian]=Колоне -Name[sr@ijekavianlatin]=Kolone -Name[sr@latin]=Kolone -Name[sv]=Kolumner -Name[ta]=நெடுவரிசைகள் -Name[te]=నిలువు వరుసలు -Name[tg]=Сутунҳо -Name[th]=คอลัมน์ -Name[tr]=Sütunlar -Name[ug]=ئىستونلار -Name[uk]=Колонки -Name[uz]=Ustunlar -Name[uz@cyrillic]=Устунлар -Name[wa]=Colones -Name[x-test]=xxColumnsxx -Name[zh_CN]=分列 -Name[zh_TW]=欄位 -Icon=view-file-columns -# Dummy -Exec=dolphin - diff --git a/src/dolphinviewcontainer.cpp b/src/dolphinviewcontainer.cpp index 47195bbca2..0c0a387730 100644 --- a/src/dolphinviewcontainer.cpp +++ b/src/dolphinviewcontainer.cpp @@ -30,7 +30,6 @@ #include #include #include -#include #include #include #include @@ -48,8 +47,8 @@ #include "dolphinmainwindow.h" #include "filterbar/filterbar.h" #include "search/dolphinsearchbox.h" -#include "settings/dolphinsettings.h" #include "statusbar/dolphinstatusbar.h" +#include "views/dolphinplacesmodel.h" #include "views/viewmodecontroller.h" #include "views/viewproperties.h" @@ -70,7 +69,7 @@ DolphinViewContainer::DolphinViewContainer(const KUrl& url, QWidget* parent) : m_topLayout->setSpacing(0); m_topLayout->setMargin(0); - m_urlNavigator = new KUrlNavigator(DolphinSettings::instance().placesModel(), url, this); + m_urlNavigator = new KUrlNavigator(DolphinPlacesModel::instance(), url, this); connect(m_urlNavigator, SIGNAL(urlsDropped(KUrl,QDropEvent*)), this, SLOT(dropUrls(KUrl,QDropEvent*))); connect(m_urlNavigator, SIGNAL(activated()), @@ -78,7 +77,7 @@ DolphinViewContainer::DolphinViewContainer(const KUrl& url, QWidget* parent) : connect(m_urlNavigator->editor(), SIGNAL(completionModeChanged(KGlobalSettings::Completion)), this, SLOT(saveUrlCompletionMode(KGlobalSettings::Completion))); - const GeneralSettings* settings = DolphinSettings::instance().generalSettings(); + const GeneralSettings* settings = GeneralSettings::self(); m_urlNavigator->setUrlEditable(settings->editableUrl()); m_urlNavigator->setShowFullPath(settings->showFullPath()); m_urlNavigator->setHomeUrl(KUrl(settings->homeUrl())); @@ -213,14 +212,13 @@ DolphinSearchBox* DolphinViewContainer::searchBox() void DolphinViewContainer::refresh() { - GeneralSettings* settings = DolphinSettings::instance().generalSettings(); - if (settings->modifiedStartupSettings()) { + if (GeneralSettings::modifiedStartupSettings()) { // The startup settings should only get applied if they have been // modified by the user. Otherwise keep the (possibly) different current // settings of the URL navigator and the filterbar. - m_urlNavigator->setUrlEditable(settings->editableUrl()); - m_urlNavigator->setShowFullPath(settings->showFullPath()); - setFilterBarVisible(settings->filterBar()); + m_urlNavigator->setUrlEditable(GeneralSettings::editableUrl()); + m_urlNavigator->setShowFullPath(GeneralSettings::showFullPath()); + setFilterBarVisible(GeneralSettings::filterBar()); } m_view->refresh(); @@ -381,9 +379,7 @@ void DolphinViewContainer::slotItemActivated(const KFileItem& item) return; } - const GeneralSettings* settings = DolphinSettings::instance().generalSettings(); - const bool browseThroughArchives = settings->browseThroughArchives(); - if (browseThroughArchives && item.isFile() && url.isLocalFile()) { + if (GeneralSettings::browseThroughArchives() && item.isFile() && url.isLocalFile()) { // Generic mechanism for redirecting to tar:// when clicking on a tar file, // zip:// when clicking on a zip file, etc. // The .protocol file specifies the mimetype that the kioslave handles. @@ -564,9 +560,7 @@ void DolphinViewContainer::requestFocus() void DolphinViewContainer::saveUrlCompletionMode(KGlobalSettings::Completion completion) { - DolphinSettings& settings = DolphinSettings::instance(); - settings.generalSettings()->setUrlCompletionMode(completion); - settings.save(); + GeneralSettings::setUrlCompletionMode(completion); } void DolphinViewContainer::slotHistoryChanged() diff --git a/src/panels/folders/folderspanel.cpp b/src/panels/folders/folderspanel.cpp index 340e79d307..76a4b4e08b 100644 --- a/src/panels/folders/folderspanel.cpp +++ b/src/panels/folders/folderspanel.cpp @@ -19,13 +19,11 @@ #include "folderspanel.h" -#include "settings/dolphinsettings.h" #include "dolphin_folderspanelsettings.h" #include "dolphin_generalsettings.h" #include "paneltreeview.h" #include "treeviewcontextmenu.h" -#include #include #include #include @@ -95,7 +93,8 @@ bool FoldersPanel::autoScrolling() const void FoldersPanel::rename(const KFileItem& item) { - if (DolphinSettings::instance().generalSettings()->renameInline()) { + // TODO: Inline renaming is not supported anymore in Dolphin 2.0 + if (false /* GeneralSettings::renameInline() */) { //const QModelIndex dirIndex = m_dolphinModel->indexForItem(item); //const QModelIndex proxyIndex = m_proxyModel->mapFromSource(dirIndex); //m_treeView->edit(proxyIndex); diff --git a/src/panels/information/informationpanelcontent.cpp b/src/panels/information/informationpanelcontent.cpp index 1014731724..7de6052e03 100644 --- a/src/panels/information/informationpanelcontent.cpp +++ b/src/panels/information/informationpanelcontent.cpp @@ -50,9 +50,9 @@ #include "dolphin_informationpanelsettings.h" #include "filemetadataconfigurationdialog.h" -#include "settings/dolphinsettings.h" #include "phononwidget.h" #include "pixmapviewer.h" +#include "views/dolphinplacesmodel.h" InformationPanelContent::InformationPanelContent(QWidget* parent) : QWidget(parent), @@ -352,8 +352,8 @@ void InformationPanelContent::refreshMetaData() bool InformationPanelContent::applyPlace(const KUrl& url) { - KFilePlacesModel* placesModel = DolphinSettings::instance().placesModel(); - int count = placesModel->rowCount(); + KFilePlacesModel* placesModel = DolphinPlacesModel::instance(); + const int count = placesModel->rowCount(); for (int i = 0; i < count; ++i) { QModelIndex index = placesModel->index(i, 0); diff --git a/src/settings/dolphinsettingsdialog.cpp b/src/settings/dolphinsettingsdialog.cpp index 79a241acab..609e2ab92d 100644 --- a/src/settings/dolphinsettingsdialog.cpp +++ b/src/settings/dolphinsettingsdialog.cpp @@ -22,7 +22,6 @@ #include #include -#include "dolphinsettings.h" #include "dolphin_generalsettings.h" #include "general/generalsettingspage.h" #include "navigation/navigationsettingspage.h" @@ -132,7 +131,7 @@ void DolphinSettingsDialog::applySettings() emit settingsChanged(); - GeneralSettings* settings = DolphinSettings::instance().generalSettings(); + GeneralSettings* settings = GeneralSettings::self(); if (settings->modifiedStartupSettings()) { // Reset the modified startup settings hint. The changed startup settings // have been applied already due to emitting settingsChanged(). diff --git a/src/settings/general/behaviorsettingspage.cpp b/src/settings/general/behaviorsettingspage.cpp index 8a5b070ce2..3ad66e3679 100644 --- a/src/settings/general/behaviorsettingspage.cpp +++ b/src/settings/general/behaviorsettingspage.cpp @@ -21,7 +21,6 @@ #include "behaviorsettingspage.h" #include "dolphin_generalsettings.h" -#include #include #include @@ -156,7 +155,7 @@ void BehaviorSettingsPage::applySettings() void BehaviorSettingsPage::restoreDefaults() { - GeneralSettings* settings = DolphinSettings::instance().generalSettings(); + GeneralSettings* settings = GeneralSettings::self(); settings->useDefaults(true); loadSettings(); settings->useDefaults(false); @@ -166,8 +165,7 @@ void BehaviorSettingsPage::restoreDefaults() void BehaviorSettingsPage::loadSettings() { - GeneralSettings* settings = DolphinSettings::instance().generalSettings(); - if (settings->globalViewProps()) { + if (GeneralSettings::globalViewProps()) { m_globalProps->setChecked(true); } else { m_localProps->setChecked(true); @@ -178,10 +176,10 @@ void BehaviorSettingsPage::loadSettings() m_confirmMoveToTrash->setChecked(confirmationGroup.readEntry("ConfirmTrash", CONFIRM_TRASH)); m_confirmDelete->setChecked(confirmationGroup.readEntry("ConfirmDelete", CONFIRM_DELETE)); - m_confirmClosingMultipleTabs->setChecked(settings->confirmClosingMultipleTabs()); - m_renameInline->setChecked(settings->renameInline()); - m_showToolTips->setChecked(settings->showToolTips()); - m_showSelectionToggle->setChecked(settings->showSelectionToggle()); + m_confirmClosingMultipleTabs->setChecked(GeneralSettings::confirmClosingMultipleTabs()); + m_renameInline->setChecked(GeneralSettings::renameInline()); + m_showToolTips->setChecked(GeneralSettings::showToolTips()); + m_showSelectionToggle->setChecked(GeneralSettings::showSelectionToggle()); m_naturalSorting->setChecked(KGlobalSettings::naturalSorting()); } diff --git a/src/settings/general/contextmenusettingspage.cpp b/src/settings/general/contextmenusettingspage.cpp index e9c00fd736..142a942a31 100644 --- a/src/settings/general/contextmenusettingspage.cpp +++ b/src/settings/general/contextmenusettingspage.cpp @@ -19,7 +19,6 @@ #include "contextmenusettingspage.h" -#include #include #include @@ -68,14 +67,13 @@ void ContextMenuSettingsPage::applySettings() configGroup.writeEntry("ShowDeleteCommand", m_showDeleteCommand->isChecked()); configGroup.sync(); - GeneralSettings* settings = DolphinSettings::instance().generalSettings(); - settings->setShowCopyMoveMenu(m_showCopyMoveMenu->isChecked()); - settings->writeConfig(); + GeneralSettings::setShowCopyMoveMenu(m_showCopyMoveMenu->isChecked()); + GeneralSettings::self()->writeConfig(); } void ContextMenuSettingsPage::restoreDefaults() { - GeneralSettings* settings = DolphinSettings::instance().generalSettings(); + GeneralSettings* settings = GeneralSettings::self(); settings->useDefaults(true); loadSettings(); settings->useDefaults(false); @@ -88,8 +86,7 @@ void ContextMenuSettingsPage::loadSettings() KConfigGroup configGroup(globalConfig, "KDE"); m_showDeleteCommand->setChecked(configGroup.readEntry("ShowDeleteCommand", SHOW_DELETE)); - GeneralSettings* settings = DolphinSettings::instance().generalSettings(); - m_showCopyMoveMenu->setChecked(settings->showCopyMoveMenu()); + m_showCopyMoveMenu->setChecked(GeneralSettings::showCopyMoveMenu()); } #include "contextmenusettingspage.moc" diff --git a/src/settings/general/previewssettingspage.cpp b/src/settings/general/previewssettingspage.cpp index 3c3211d47a..913ca08171 100644 --- a/src/settings/general/previewssettingspage.cpp +++ b/src/settings/general/previewssettingspage.cpp @@ -30,7 +30,6 @@ #include #include -#include #include #include diff --git a/src/settings/general/statusbarsettingspage.cpp b/src/settings/general/statusbarsettingspage.cpp index 0e85a12958..8ba0d73377 100644 --- a/src/settings/general/statusbarsettingspage.cpp +++ b/src/settings/general/statusbarsettingspage.cpp @@ -25,8 +25,6 @@ #include #include -#include - #include #include @@ -62,7 +60,7 @@ StatusBarSettingsPage::~StatusBarSettingsPage() void StatusBarSettingsPage::applySettings() { - GeneralSettings* settings = DolphinSettings::instance().generalSettings(); + GeneralSettings* settings = GeneralSettings::self(); settings->setShowZoomSlider(m_showZoomSlider->isChecked()); settings->setShowSpaceInfo(m_showSpaceInfo->isChecked()); settings->writeConfig(); @@ -70,7 +68,7 @@ void StatusBarSettingsPage::applySettings() void StatusBarSettingsPage::restoreDefaults() { - GeneralSettings* settings = DolphinSettings::instance().generalSettings(); + GeneralSettings* settings = GeneralSettings::self(); settings->useDefaults(true); loadSettings(); settings->useDefaults(false); @@ -78,9 +76,8 @@ void StatusBarSettingsPage::restoreDefaults() void StatusBarSettingsPage::loadSettings() { - GeneralSettings* settings = DolphinSettings::instance().generalSettings(); - m_showZoomSlider->setChecked(settings->showZoomSlider()); - m_showSpaceInfo->setChecked(settings->showSpaceInfo()); + m_showZoomSlider->setChecked(GeneralSettings::showZoomSlider()); + m_showSpaceInfo->setChecked(GeneralSettings::showSpaceInfo()); } #include "statusbarsettingspage.moc" diff --git a/src/settings/navigation/navigationsettingspage.cpp b/src/settings/navigation/navigationsettingspage.cpp index 1d9c8950f5..8076d705d0 100644 --- a/src/settings/navigation/navigationsettingspage.cpp +++ b/src/settings/navigation/navigationsettingspage.cpp @@ -19,8 +19,6 @@ #include "navigationsettingspage.h" -#include "settings/dolphinsettings.h" - #include "dolphin_generalsettings.h" #include @@ -88,7 +86,7 @@ void NavigationSettingsPage::applySettings() config.sync(); KGlobalSettings::self()->emitChange(KGlobalSettings::SettingsChanged, KGlobalSettings::SETTINGS_MOUSE); - GeneralSettings* settings = DolphinSettings::instance().generalSettings(); + GeneralSettings* settings = GeneralSettings::self(); settings->setBrowseThroughArchives(m_openArchivesAsFolder->isChecked()); settings->setAutoExpandFolders(m_autoExpandFolders->isChecked()); @@ -97,7 +95,7 @@ void NavigationSettingsPage::applySettings() void NavigationSettingsPage::restoreDefaults() { - GeneralSettings* settings = DolphinSettings::instance().generalSettings(); + GeneralSettings* settings = GeneralSettings::self(); settings->useDefaults(true); loadSettings(); settings->useDefaults(false); @@ -113,9 +111,8 @@ void NavigationSettingsPage::loadSettings() const bool singleClick = KGlobalSettings::singleClick(); m_singleClick->setChecked(singleClick); m_doubleClick->setChecked(!singleClick); - GeneralSettings* settings = DolphinSettings::instance().generalSettings(); - m_openArchivesAsFolder->setChecked(settings->browseThroughArchives()); - m_autoExpandFolders->setChecked(settings->autoExpandFolders()); + m_openArchivesAsFolder->setChecked(GeneralSettings::browseThroughArchives()); + m_autoExpandFolders->setChecked(GeneralSettings::autoExpandFolders()); } #include "navigationsettingspage.moc" diff --git a/src/settings/startup/startupsettingspage.cpp b/src/settings/startup/startupsettingspage.cpp index ce6139d1dc..43c176560d 100644 --- a/src/settings/startup/startupsettingspage.cpp +++ b/src/settings/startup/startupsettingspage.cpp @@ -19,7 +19,6 @@ #include "startupsettingspage.h" -#include "settings/dolphinsettings.h" #include "dolphinmainwindow.h" #include "dolphinviewcontainer.h" @@ -111,7 +110,7 @@ StartupSettingsPage::~StartupSettingsPage() void StartupSettingsPage::applySettings() { - GeneralSettings* settings = DolphinSettings::instance().generalSettings(); + GeneralSettings* settings = GeneralSettings::self(); const KUrl url(m_homeUrl->text()); KFileItem fileItem(KFileItem::Unknown, KFileItem::Unknown, url); @@ -131,7 +130,7 @@ void StartupSettingsPage::applySettings() void StartupSettingsPage::restoreDefaults() { - GeneralSettings* settings = DolphinSettings::instance().generalSettings(); + GeneralSettings* settings = GeneralSettings::self(); settings->useDefaults(true); loadSettings(); settings->useDefaults(false); @@ -142,9 +141,7 @@ void StartupSettingsPage::slotSettingsChanged() // Provide a hint that the startup settings have been changed. This allows the views // to apply the startup settings only if they have been explicitly changed by the user // (see bug #254947). - GeneralSettings* settings = DolphinSettings::instance().generalSettings(); - settings->setModifiedStartupSettings(true); - + GeneralSettings::setModifiedStartupSettings(true); emit changed(); } @@ -171,13 +168,12 @@ void StartupSettingsPage::useDefaultLocation() void StartupSettingsPage::loadSettings() { - GeneralSettings* settings = DolphinSettings::instance().generalSettings(); - KUrl url(settings->homeUrl()); + const KUrl url(GeneralSettings::homeUrl()); m_homeUrl->setText(url.prettyUrl()); - m_splitView->setChecked(settings->splitView()); - m_editableUrl->setChecked(settings->editableUrl()); - m_showFullPath->setChecked(settings->showFullPath()); - m_filterBar->setChecked(settings->filterBar()); + m_splitView->setChecked(GeneralSettings::splitView()); + m_editableUrl->setChecked(GeneralSettings::editableUrl()); + m_showFullPath->setChecked(GeneralSettings::showFullPath()); + m_filterBar->setChecked(GeneralSettings::filterBar()); } #include "startupsettingspage.moc" diff --git a/src/settings/trash/trashsettingspage.cpp b/src/settings/trash/trashsettingspage.cpp index b8294bffd1..cd699856cd 100644 --- a/src/settings/trash/trashsettingspage.cpp +++ b/src/settings/trash/trashsettingspage.cpp @@ -23,8 +23,6 @@ #include #include -#include - #include TrashSettingsPage::TrashSettingsPage(QWidget* parent) : diff --git a/src/settings/viewpropertiesdialog.cpp b/src/settings/viewpropertiesdialog.cpp index f3a5caa1dd..3e96bebedb 100644 --- a/src/settings/viewpropertiesdialog.cpp +++ b/src/settings/viewpropertiesdialog.cpp @@ -22,7 +22,6 @@ #include "additionalinfodialog.h" #include "views/dolphinview.h" -#include "settings/dolphinsettings.h" #include "dolphin_generalsettings.h" #include "dolphin_iconsmodesettings.h" #include "viewpropsprogressinfo.h" @@ -73,7 +72,7 @@ ViewPropertiesDialog::ViewPropertiesDialog(DolphinView* dolphinView) : m_useAsDefault(0) { Q_ASSERT(dolphinView); - const bool useGlobalViewProps = DolphinSettings::instance().generalSettings()->globalViewProps(); + const bool useGlobalViewProps = GeneralSettings::globalViewProps(); setCaption(i18nc("@title:window", "View Properties")); setButtons(KDialog::Ok | KDialog::Cancel | KDialog::Apply); @@ -348,14 +347,13 @@ void ViewPropertiesDialog::applyViewProperties() // For directories where no .directory file is available, the .directory // file stored for the global view properties is used as fallback. To update // this file we temporary turn on the global view properties mode. - GeneralSettings* settings = DolphinSettings::instance().generalSettings(); - Q_ASSERT(!settings->globalViewProps()); + Q_ASSERT(!GeneralSettings::globalViewProps()); - settings->setGlobalViewProps(true); + GeneralSettings::setGlobalViewProps(true); ViewProperties defaultProps(m_dolphinView->url()); defaultProps.setDirProperties(*m_viewProps); defaultProps.save(); - settings->setGlobalViewProps(false); + GeneralSettings::setGlobalViewProps(false); } if (applyToAllFolders) { @@ -366,8 +364,9 @@ void ViewPropertiesDialog::applyViewProperties() // Updating the global view properties time stamp in the general settings makes // all existing viewproperties invalid, as they have a smaller time stamp. - GeneralSettings* settings = DolphinSettings::instance().generalSettings(); + GeneralSettings* settings = GeneralSettings::self(); settings->setViewPropsTimestamp(QDateTime::currentDateTime()); + settings->writeConfig(); } m_dolphinView->setMode(m_viewProps->viewMode()); diff --git a/src/statusbar/dolphinstatusbar.cpp b/src/statusbar/dolphinstatusbar.cpp index dcf2081700..681fbf407a 100644 --- a/src/statusbar/dolphinstatusbar.cpp +++ b/src/statusbar/dolphinstatusbar.cpp @@ -28,7 +28,6 @@ #include #include -#include "settings/dolphinsettings.h" #include "statusbarspaceinfo.h" #include @@ -278,15 +277,13 @@ void DolphinStatusBar::contextMenuEvent(QContextMenuEvent* event) default: break; } - GeneralSettings* settings = DolphinSettings::instance().generalSettings(); - QAction* showZoomSliderAction = menu.addAction(i18nc("@action:inmenu", "Show Zoom Slider")); showZoomSliderAction->setCheckable(true); - showZoomSliderAction->setChecked(settings->showZoomSlider()); + showZoomSliderAction->setChecked(GeneralSettings::showZoomSlider()); QAction* showSpaceInfoAction = menu.addAction(i18nc("@action:inmenu", "Show Space Information")); showSpaceInfoAction->setCheckable(true); - showSpaceInfoAction->setChecked(settings->showSpaceInfo()); + showSpaceInfoAction->setChecked(GeneralSettings::showSpaceInfo()); const QAction* action = menu.exec(QCursor::pos()); if (action == copyAction) { @@ -295,11 +292,11 @@ void DolphinStatusBar::contextMenuEvent(QContextMenuEvent* event) QApplication::clipboard()->setMimeData(mimeData); } else if (action == showZoomSliderAction) { const bool visible = showZoomSliderAction->isChecked(); - settings->setShowZoomSlider(visible); + GeneralSettings::setShowZoomSlider(visible); m_zoomSlider->setVisible(visible); } else if (action == showSpaceInfoAction) { const bool visible = showSpaceInfoAction->isChecked(); - settings->setShowSpaceInfo(visible); + GeneralSettings::setShowSpaceInfo(visible); m_spaceInfo->setVisible(visible); } } @@ -356,9 +353,8 @@ void DolphinStatusBar::setExtensionsVisible(bool visible) bool showSpaceInfo = visible; bool showZoomSlider = visible; if (visible) { - const GeneralSettings* settings = DolphinSettings::instance().generalSettings(); - showSpaceInfo = settings->showSpaceInfo(); - showZoomSlider = settings->showZoomSlider(); + showSpaceInfo = GeneralSettings::showSpaceInfo(); + showZoomSlider = GeneralSettings::showZoomSlider(); } m_spaceInfo->setVisible(showSpaceInfo); m_zoomSlider->setVisible(showZoomSlider); diff --git a/src/settings/dolphinsettings.cpp b/src/views/dolphinplacesmodel.cpp similarity index 61% rename from src/settings/dolphinsettings.cpp rename to src/views/dolphinplacesmodel.cpp index aae684201c..4b8e6ea5ef 100644 --- a/src/settings/dolphinsettings.cpp +++ b/src/views/dolphinplacesmodel.cpp @@ -1,6 +1,5 @@ /*************************************************************************** - * Copyright (C) 2006 by Peter Penz (peter.penz@gmx.at), * - * Cvetoslav Ludmiloff and Patrice Tremblay * + * Copyright (C) 2011 by Peter Penz * * * * This program is free software; you can redistribute it and/or modify * * it under the terms of the GNU General Public License as published by * @@ -18,42 +17,18 @@ * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA * ***************************************************************************/ -#include "dolphinsettings.h" +#include "dolphinplacesmodel.h" #include -#include -#include -#include -#include "dolphin_detailsmodesettings.h" -#include "dolphin_generalsettings.h" -#include "dolphin_iconsmodesettings.h" +KFilePlacesModel* DolphinPlacesModel::m_filePlacesModel = 0; -class DolphinSettingsSingleton +KFilePlacesModel* DolphinPlacesModel::instance() { -public: - DolphinSettings instance; -}; -K_GLOBAL_STATIC(DolphinSettingsSingleton, s_settings) - -DolphinSettings& DolphinSettings::instance() -{ - return s_settings->instance; + return m_filePlacesModel; } -void DolphinSettings::save() +void DolphinPlacesModel::setModel(KFilePlacesModel* model) { - m_generalSettings->writeConfig(); -} - -DolphinSettings::DolphinSettings() -{ - m_generalSettings = GeneralSettings::self(); - m_placesModel = new KFilePlacesModel(); -} - -DolphinSettings::~DolphinSettings() -{ - delete m_placesModel; - m_placesModel = 0; + m_filePlacesModel = model; } diff --git a/src/settings/dolphinsettings.h b/src/views/dolphinplacesmodel.h similarity index 55% rename from src/settings/dolphinsettings.h rename to src/views/dolphinplacesmodel.h index 88e1d29054..0f950cabee 100644 --- a/src/settings/dolphinsettings.h +++ b/src/views/dolphinplacesmodel.h @@ -1,6 +1,5 @@ /*************************************************************************** - * Copyright (C) 2006 by Peter Penz * - * peter.penz@gmx.at * + * Copyright (C) 2011 by Peter Penz * * * * This program is free software; you can redistribute it and/or modify * * it under the terms of the GNU General Public License as published by * @@ -18,54 +17,27 @@ * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA * ***************************************************************************/ -#ifndef DOLPHINSETTINGS_H -#define DOLPHINSETTINGS_H +#ifndef DOLPHIN_PLACES_MODEL_H +#define DOLPHIN_PLACES_MODEL_H #include -class GeneralSettings; class KFilePlacesModel; -// TODO: Remove this class completely and just work with the settings directly instead - /** - * @brief Manages and stores all settings from Dolphin. - * - * The following properties are stored: - * - home URL - * - default view mode - * - URL navigator state (editable or not) - * - Text completion state - * - split view - * - properties for views + * @brief Allows global access to the places-model of Dolphin + * that is shown in the "Places" panel. */ -class LIBDOLPHINPRIVATE_EXPORT DolphinSettings +class LIBDOLPHINPRIVATE_EXPORT DolphinPlacesModel { public: - static DolphinSettings& instance(); - - GeneralSettings* generalSettings() const; - KFilePlacesModel* placesModel() const; - virtual void save(); - -protected: - DolphinSettings(); - virtual ~DolphinSettings(); - friend class DolphinSettingsSingleton; + static KFilePlacesModel* instance(); private: - GeneralSettings* m_generalSettings; - KFilePlacesModel* m_placesModel; + static void setModel(KFilePlacesModel* model); + static KFilePlacesModel* m_filePlacesModel; + + friend class DolphinMainWindow; // Sets the model with setModel() }; -inline GeneralSettings* DolphinSettings::generalSettings() const -{ - return m_generalSettings; -} - -inline KFilePlacesModel* DolphinSettings::placesModel() const -{ - return m_placesModel; -} - #endif diff --git a/src/views/dolphinview.cpp b/src/views/dolphinview.cpp index 6312d27cf5..9bb1d03db1 100644 --- a/src/views/dolphinview.cpp +++ b/src/views/dolphinview.cpp @@ -64,7 +64,6 @@ #include "dolphinitemlistcontainer.h" #include "draganddrophelper.h" #include "renamedialog.h" -#include "settings/dolphinsettings.h" #include "versioncontrol/versioncontrolobserver.h" #include "viewmodecontroller.h" #include "viewproperties.h" diff --git a/src/views/dolphinviewactionhandler.cpp b/src/views/dolphinviewactionhandler.cpp index f765b4a09e..f88e01a453 100644 --- a/src/views/dolphinviewactionhandler.cpp +++ b/src/views/dolphinviewactionhandler.cpp @@ -314,6 +314,9 @@ QString DolphinViewActionHandler::currentViewModeActionName() const return "details"; case DolphinView::CompactView: return "compact"; + default: + Q_ASSERT(false); + break; } return QString(); // can't happen } diff --git a/src/views/viewproperties.cpp b/src/views/viewproperties.cpp index bb747139f9..9f8b4d8baa 100644 --- a/src/views/viewproperties.cpp +++ b/src/views/viewproperties.cpp @@ -33,8 +33,6 @@ #include #include -#include "settings/dolphinsettings.h" - namespace { // String representation to mark the additional properties of // the details view as customized by the user. See @@ -47,7 +45,7 @@ ViewProperties::ViewProperties(const KUrl& url) : m_autoSave(true), m_node(0) { - GeneralSettings* settings = DolphinSettings::instance().generalSettings(); + GeneralSettings* settings = GeneralSettings::self(); const bool useGlobalViewProps = settings->globalViewProps(); bool useDetailsViewWithPath = false;