X-Git-Url: https://cloud.milkyroute.net/gitweb/dolphin.git/blobdiff_plain/1d27156cdc18e2600fc6e30099ca20452045fabb..305ecd86f9cdfd7d4e3e96fb5b7f3daab72c6ba5:/src/dolphinmainwindow.cpp diff --git a/src/dolphinmainwindow.cpp b/src/dolphinmainwindow.cpp index 3f527d9a5..947db7703 100644 --- a/src/dolphinmainwindow.cpp +++ b/src/dolphinmainwindow.cpp @@ -41,6 +41,7 @@ #include "statusbar/dolphinstatusbar.h" #include "views/dolphinviewactionhandler.h" #include "views/dolphinremoteencoding.h" +#include "views/draganddrophelper.h" #include "views/viewproperties.h" #ifndef Q_OS_WIN @@ -510,12 +511,12 @@ void DolphinMainWindow::openNewTab(const KUrl& url) actionCollection()->action("close_tab")->setEnabled(true); - // provide a split view, if the startup settings are set this way + // Provide a split view, if the startup settings are set this way if (GeneralSettings::splitView()) { const int newTabIndex = m_viewTab.count() - 1; createSecondaryView(newTabIndex); - viewTab.secondaryView->setActive(true); - viewTab.isPrimaryViewActive = false; + m_viewTab[newTabIndex].secondaryView->setActive(true); + m_viewTab[newTabIndex].isPrimaryViewActive = false; } if (focusWidget) { @@ -1024,6 +1025,14 @@ void DolphinMainWindow::goUp(Qt::MouseButtons buttons) } } +void DolphinMainWindow::goHome(Qt::MouseButtons buttons) +{ + // The default case (left button pressed) is handled in goHome(). + if (buttons == Qt::MidButton) { + openNewTab(GeneralSettings::self()->homeUrl()); + } +} + void DolphinMainWindow::compareFiles() { // The method is only invoked if exactly 2 files have @@ -1109,7 +1118,10 @@ void DolphinMainWindow::openTerminal() void DolphinMainWindow::editSettings() { if (!m_settingsDialog) { - const KUrl url = activeViewContainer()->url(); + DolphinViewContainer* container = activeViewContainer(); + container->view()->writeSettings(); + + const KUrl url = container->url(); DolphinSettingsDialog* settingsDialog = new DolphinSettingsDialog(url, this); connect(settingsDialog, SIGNAL(settingsChanged()), this, SLOT(refreshViews())); settingsDialog->setAttribute(Qt::WA_DeleteOnClose); @@ -1319,9 +1331,9 @@ void DolphinMainWindow::tabDropEvent(int tab, QDropEvent* event) const KUrl::List urls = KUrl::List::fromMimeData(event->mimeData()); if (!urls.isEmpty() && tab != -1) { const ViewTab& viewTab = m_viewTab[tab]; - const KUrl destPath = viewTab.isPrimaryViewActive ? viewTab.primaryView->url() : viewTab.secondaryView->url(); - Q_UNUSED(destPath); - //DragAndDropHelper::instance().dropUrls(KFileItem(), destPath, event, m_tabBar); + const DolphinView* view = viewTab.isPrimaryViewActive ? viewTab.primaryView->view() + : viewTab.secondaryView->view(); + DragAndDropHelper::dropUrls(view->rootItem(), view->url(), event); } } @@ -1690,7 +1702,8 @@ void DolphinMainWindow::setupActions() KAction* upAction = KStandardAction::up(this, SLOT(goUp()), actionCollection()); connect(upAction, SIGNAL(triggered(Qt::MouseButtons,Qt::KeyboardModifiers)), this, SLOT(goUp(Qt::MouseButtons))); - KStandardAction::home(this, SLOT(goHome()), actionCollection()); + KAction* homeAction = KStandardAction::home(this, SLOT(goHome()), actionCollection()); + connect(homeAction, SIGNAL(triggered(Qt::MouseButtons,Qt::KeyboardModifiers)), this, SLOT(goHome(Qt::MouseButtons))); // setup 'Tools' menu KAction* showFilterBar = actionCollection()->addAction("show_filter_bar"); @@ -2056,9 +2069,9 @@ void DolphinMainWindow::refreshViews() const int tabCount = m_viewTab.count(); for (int i = 0; i < tabCount; ++i) { - m_viewTab[i].primaryView->refresh(); + m_viewTab[i].primaryView->readSettings(); if (m_viewTab[i].secondaryView) { - m_viewTab[i].secondaryView->refresh(); + m_viewTab[i].secondaryView->readSettings(); } } @@ -2110,6 +2123,10 @@ void DolphinMainWindow::connectViewSignals(DolphinViewContainer* container) this, SLOT(enableStopAction())); connect(view, SIGNAL(finishedPathLoading(KUrl)), this, SLOT(disableStopAction())); + connect(view, SIGNAL(goBackRequested()), + this, SLOT(goBack())); + connect(view, SIGNAL(goForwardRequested()), + this, SLOT(goForward())); const KUrlNavigator* navigator = container->urlNavigator(); connect(navigator, SIGNAL(urlChanged(KUrl)),