#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"
#include <KUrlComboBox>
#include <KToolInvocation>
+#include "views/dolphinplacesmodel.h"
+
#include <QDesktopWidget>
#include <QDBusMessage>
#include <QKeyEvent>
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):
this, SLOT(clearStatusBar()));
connect(undoManager, SIGNAL(jobRecordingFinished(CommandType)),
this, SLOT(showCommand(CommandType)));
- connect(DolphinSettings::instance().placesModel(), SIGNAL(errorMessage(QString)),
- this, SLOT(showErrorMessage(QString)));
- //connect(&DragAndDropHelper::instance(), SIGNAL(errorMessage(QString)),
- // this, SLOT(showErrorMessage(QString)));
-
- const DolphinSettings& settings = DolphinSettings::instance();
- GeneralSettings* generalSettings = settings.generalSettings();
+ GeneralSettings* generalSettings = GeneralSettings::self();
const bool firstRun = (generalSettings->version() < 200);
if (firstRun) {
generalSettings->setViewPropsTimestamp(QDateTime::currentDateTime());
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.
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);
void DolphinMainWindow::closeEvent(QCloseEvent* event)
{
- DolphinSettings& settings = DolphinSettings::instance();
- GeneralSettings* generalSettings = settings.generalSettings();
-
// Find out if Dolphin is closed directly by the user or
// by the session manager because the session is closed
bool closedByUser = true;
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
KMessageBox::Notify);
if (doNotAskAgainCheckboxResult) {
- generalSettings->setConfirmClosingMultipleTabs(false);
+ GeneralSettings::setConfirmClosingMultipleTabs(false);
}
switch (result) {
}
}
- generalSettings->setVersion(CurrentDolphinVersion);
- settings.save();
+ GeneralSettings::setVersion(CurrentDolphinVersion);
+ GeneralSettings::self()->writeConfig();
if (m_searchDockIsTemporaryVisible) {
QDockWidget* searchDock = findChild<QDockWidget*>("searchDock");
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<DolphinDockWidget*>(child);
if (dock) {
}
}
- generalSettings->setLockPanels(newLockState);
+ GeneralSettings::setLockPanels(newLockState);
}
void DolphinMainWindow::slotPlacesPanelVisibilityChanged(bool visible)
// by connecting to the aboutToHide() signal from the parent-menu.
menu->clear();
- const GeneralSettings* generalSettings = DolphinSettings::instance().generalSettings();
-
KActionCollection* ac = actionCollection();
// Add "Edit" actions
}
// 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();
connect(openTerminal, SIGNAL(triggered()), this, SLOT(openTerminal()));
// setup 'Settings' menu
- KStandardAction::showMenubar(this, SLOT(toggleShowMenuBar()), actionCollection());
+ KToggleAction* showMenuBar = KStandardAction::showMenubar(0, 0, actionCollection());
+ connect(showMenuBar, SIGNAL(triggered(bool)), // Fixes #286822
+ this, SLOT(toggleShowMenuBar()), Qt::QueuedConnection);
KStandardAction::preferences(this, SLOT(editSettings()), actionCollection());
// not in menu actions
void DolphinMainWindow::setupDockWidgets()
{
- const bool lock = DolphinSettings::instance().generalSettings()->lockPanels();
+ const bool lock = GeneralSettings::lockPanels();
KDualAction* lockLayoutAction = actionCollection()->add<KDualAction>("lock_panels");
lockLayoutAction->setActiveText(i18nc("@action:inmenu Panels", "Unlock Panels"));
infoDock->setWidget(infoPanel);
QAction* infoAction = infoDock->toggleViewAction();
- infoAction->setIcon(KIcon("dialog-information"));
- infoAction->setShortcut(Qt::Key_F11);
- addActionCloneToCollection(infoAction, "show_information_panel");
+ createPanelAction(KIcon("dialog-information"), Qt::Key_F11, infoAction, "show_information_panel");
addDockWidget(Qt::RightDockWidgetArea, infoDock);
connect(this, SIGNAL(urlChanged(KUrl)),
foldersDock->setWidget(foldersPanel);
QAction* foldersAction = foldersDock->toggleViewAction();
- foldersAction->setShortcut(Qt::Key_F7);
- foldersAction->setIcon(KIcon("folder"));
- addActionCloneToCollection(foldersAction, "show_folders_panel");
+ createPanelAction(KIcon("folder"), Qt::Key_F7, foldersAction, "show_folders_panel");
addDockWidget(Qt::LeftDockWidgetArea, foldersDock);
connect(this, SIGNAL(urlChanged(KUrl)),
terminalPanel, SLOT(dockVisibilityChanged()));
QAction* terminalAction = terminalDock->toggleViewAction();
- terminalAction->setShortcut(Qt::Key_F4);
- terminalAction->setIcon(KIcon("utilities-terminal"));
- addActionCloneToCollection(terminalAction, "show_terminal_panel");
+ createPanelAction(KIcon("utilities-terminal"), Qt::Key_F4, terminalAction, "show_terminal_panel");
addDockWidget(Qt::BottomDockWidgetArea, terminalDock);
connect(this, SIGNAL(urlChanged(KUrl)),
searchDock->setWidget(searchPanel);
QAction* searchAction = searchDock->toggleViewAction();
- searchAction->setShortcut(Qt::Key_F12);
- searchAction->setIcon(KIcon("system-search"));
- addActionCloneToCollection(searchAction, "show_search_panel");
+ createPanelAction(KIcon("system-search"), Qt::Key_F12, searchAction, "show_search_panel");
addDockWidget(Qt::RightDockWidgetArea, searchDock);
connect(this, SIGNAL(urlChanged(KUrl)),
searchPanel, SLOT(setUrl(KUrl)));
#endif
- if (DolphinSettings::instance().generalSettings()->version() < 200) {
+ if (GeneralSettings::version() < 200) {
infoDock->hide();
foldersDock->hide();
#ifndef Q_OS_WIN
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);
QAction* placesAction = placesDock->toggleViewAction();
- placesAction->setShortcut(Qt::Key_F9);
- placesAction->setIcon(KIcon("bookmarks"));
- addActionCloneToCollection(placesAction, "show_places_panel");
+ createPanelAction(KIcon("bookmarks"), Qt::Key_F9, placesAction, "show_places_panel");
addDockWidget(Qt::LeftDockWidgetArea, placesDock);
connect(placesPanel, SIGNAL(urlChanged(KUrl,Qt::MouseButtons)),
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);
return fm.elidedText(text, Qt::ElideMiddle, fm.maxWidth() * 10);
}
-void DolphinMainWindow::addActionCloneToCollection(QAction* action, const QString& actionName)
+void DolphinMainWindow::createPanelAction(const KIcon& icon,
+ const QKeySequence& shortcut,
+ QAction* dockAction,
+ const QString& actionName)
{
- KAction* actionClone = actionCollection()->addAction(actionName);
- actionClone->setText(action->text());
- actionClone->setIcon(action->icon());
- connect(actionClone, SIGNAL(triggered()), action, SLOT(trigger()));
+ KAction* panelAction = actionCollection()->addAction(actionName);
+ panelAction->setText(dockAction->text());
+ panelAction->setIcon(icon);
+ panelAction->setShortcut(shortcut);
+
+ dockAction->setIcon(icon);
+ dockAction->setShortcut(shortcut);
+ connect(panelAction, SIGNAL(triggered()), dockAction, SLOT(trigger()));
}
DolphinMainWindow::UndoUiInterface::UndoUiInterface() :