X-Git-Url: https://cloud.milkyroute.net/gitweb/dolphin.git/blobdiff_plain/cdcb4b0166aefdd382d20e7ff3b5cb217ba54ba8..3da73183f86e9086a4e0611b08a7d7779bb5be49:/src/dolphinmainwindow.cpp diff --git a/src/dolphinmainwindow.cpp b/src/dolphinmainwindow.cpp index ee4830785..5b8b11bc1 100644 --- a/src/dolphinmainwindow.cpp +++ b/src/dolphinmainwindow.cpp @@ -30,6 +30,7 @@ #include "infosidebarpage.h" #include "metadatawidget.h" #include "mainwindowadaptor.h" +#include "terminalsidebarpage.h" #include "treeviewsidebarpage.h" #include "kurlnavigator.h" #include "viewpropertiesdialog.h" @@ -67,10 +68,10 @@ #include #include -#include -#include -#include -#include +#include +#include +#include +#include DolphinMainWindow::DolphinMainWindow(int id) : KXmlGuiWindow(0), @@ -205,38 +206,12 @@ void DolphinMainWindow::rename(const KUrl& oldUrl, const KUrl& newUrl) void DolphinMainWindow::refreshViews() { - const bool split = DolphinSettings::instance().generalSettings()->splitView(); - const bool isPrimaryViewActive = (m_activeView == m_view[PrimaryIdx]); - KUrl url; - for (int i = PrimaryIdx; i <= SecondaryIdx; ++i) { - if (m_view[i] != 0) { - url = m_view[i]->url(); - - // delete view instance... - m_view[i]->close(); - m_view[i]->deleteLater(); - m_view[i] = 0; - } + Q_ASSERT(m_view[PrimaryIdx] != 0); + m_view[PrimaryIdx]->refresh(); - if (split || (i == PrimaryIdx)) { - // ... and recreate it - ViewProperties props(url); - m_view[i] = new DolphinView(this, - m_splitter, - url, - props.viewMode(), - props.showHiddenFiles()); - connectViewSignals(i); - m_view[i]->reload(); - m_view[i]->show(); - } + if (m_view[SecondaryIdx] != 0) { + m_view[SecondaryIdx]->refresh(); } - - m_activeView = isPrimaryViewActive ? m_view[PrimaryIdx] : m_view[SecondaryIdx]; - Q_ASSERT(m_activeView != 0); - - updateViewActions(); - emit activeViewChanged(); } void DolphinMainWindow::changeUrl(const KUrl& url) @@ -813,7 +788,7 @@ void DolphinMainWindow::toggleShowHiddenFiles() m_activeView->setShowHiddenFiles(show); } -void DolphinMainWindow::showFilterBar() +void DolphinMainWindow::toggleFilterBarVisibility() { const KToggleAction* showFilterBarAction = static_cast(actionCollection()->action("show_filter_bar")); @@ -879,18 +854,9 @@ void DolphinMainWindow::goHome() m_activeView->goHome(); } -void DolphinMainWindow::openTerminal() -{ - QString command("konsole --workdir \""); - command.append(m_activeView->url().path()); - command.append('\"'); - - KRun::runCommand(command, "Konsole", "konsole"); -} - void DolphinMainWindow::findFile() { - KRun::run("kfind", m_activeView->url()); + KRun::run("kfind", m_activeView->url(), this); } void DolphinMainWindow::compareFiles() @@ -944,7 +910,7 @@ void DolphinMainWindow::compareFiles() command.append("\" \""); command.append(urlB.pathOrUrl()); command.append('\"'); - KRun::runCommand(command, "Kompare", "kompare"); + KRun::runCommand(command, "Kompare", "kompare", this); } @@ -1161,7 +1127,7 @@ void DolphinMainWindow::setupActions() connect(sortDescending, SIGNAL(triggered()), this, SLOT(toggleSortOrder())); KToggleAction* sortCategorized = actionCollection()->add("categorized"); - sortCategorized->setText(i18n("Categorized")); + sortCategorized->setText(i18n("Show in Groups")); connect(sortCategorized, SIGNAL(triggered()), this, SLOT(toggleSortCategorization())); KToggleAction* clearInfo = actionCollection()->add("clear_info"); @@ -1237,12 +1203,6 @@ void DolphinMainWindow::setupActions() KStandardAction::home(this, SLOT(goHome()), actionCollection()); // setup 'Tools' menu - QAction* openTerminal = actionCollection()->addAction("open_terminal"); - openTerminal->setText(i18n("Open Terminal")); - openTerminal->setShortcut(Qt::Key_F4); - openTerminal->setIcon(KIcon("konsole")); - connect(openTerminal, SIGNAL(triggered()), this, SLOT(openTerminal())); - QAction* findFile = actionCollection()->addAction("find_file"); findFile->setText(i18n("Find File...")); findFile->setShortcut(Qt::CTRL | Qt::Key_F); @@ -1251,8 +1211,8 @@ void DolphinMainWindow::setupActions() KToggleAction* showFilterBar = actionCollection()->add("show_filter_bar"); showFilterBar->setText(i18n("Show Filter Bar")); - showFilterBar->setShortcut(Qt::Key_Slash); - connect(showFilterBar, SIGNAL(triggered()), this, SLOT(showFilterBar())); + showFilterBar->setShortcut(Qt::CTRL | Qt::Key_I); + connect(showFilterBar, SIGNAL(triggered()), this, SLOT(toggleFilterBarVisibility())); QAction* compareFiles = actionCollection()->addAction("compare_files"); compareFiles->setText(i18n("Compare Files")); @@ -1273,7 +1233,7 @@ void DolphinMainWindow::setupDockWidgets() SidebarPage* infoWidget = new InfoSidebarPage(infoDock); infoDock->setWidget(infoWidget); - infoDock->toggleViewAction()->setText(i18n("Show Information Panel")); + infoDock->toggleViewAction()->setText(i18n("Information")); actionCollection()->addAction("show_info_panel", infoDock->toggleViewAction()); addDockWidget(Qt::RightDockWidgetArea, infoDock); @@ -1289,7 +1249,7 @@ void DolphinMainWindow::setupDockWidgets() TreeViewSidebarPage* treeWidget = new TreeViewSidebarPage(treeViewDock); treeViewDock->setWidget(treeWidget); - treeViewDock->toggleViewAction()->setText(i18n("Show Folders Panel")); + treeViewDock->toggleViewAction()->setText(i18n("Folders")); actionCollection()->addAction("show_folders_panel", treeViewDock->toggleViewAction()); addDockWidget(Qt::LeftDockWidgetArea, treeViewDock); @@ -1302,10 +1262,25 @@ void DolphinMainWindow::setupDockWidgets() connect(treeWidget, SIGNAL(urlsDropped(KUrl::List, KUrl)), this, SLOT(dropUrls(KUrl::List, KUrl))); + // setup "Terminal" + QDockWidget* terminalDock = new QDockWidget(i18n("Terminal")); + terminalDock->setObjectName("terminalDock"); + terminalDock->setAllowedAreas(Qt::TopDockWidgetArea | Qt::BottomDockWidgetArea); + SidebarPage* terminalWidget = new TerminalSidebarPage(terminalDock); + terminalDock->setWidget(terminalWidget); + + terminalDock->toggleViewAction()->setText(i18n("Terminal")); + actionCollection()->addAction("show_terminal_panel", terminalDock->toggleViewAction()); + + addDockWidget(Qt::RightDockWidgetArea, terminalDock); + connect(this, SIGNAL(urlChanged(KUrl)), + terminalWidget, SLOT(setUrl(KUrl))); + const bool firstRun = DolphinSettings::instance().generalSettings()->firstRun(); if (firstRun) { infoDock->hide(); treeViewDock->hide(); + terminalDock->hide(); } QDockWidget *placesDock = new QDockWidget(i18n("Places"));