X-Git-Url: https://cloud.milkyroute.net/gitweb/dolphin.git/blobdiff_plain/5d7de69ae6cc55dc5d6fb020e7809a74e9eeebd8..817f3952e2bed820ea3b50dfdfe91ccb99dcb748:/src/dolphinmainwindow.cpp diff --git a/src/dolphinmainwindow.cpp b/src/dolphinmainwindow.cpp index 95108724e..75d0a059f 100644 --- a/src/dolphinmainwindow.cpp +++ b/src/dolphinmainwindow.cpp @@ -75,6 +75,7 @@ #include #include +#include #include #include #include @@ -201,9 +202,9 @@ void DolphinMainWindow::slotSelectionChanged(const KFileItemList& selection) updateEditActions(); Q_ASSERT(m_viewTab[m_tabIndex].primaryView != 0); - int selectedUrlsCount = m_viewTab[m_tabIndex].primaryView->view()->selectedUrls().count(); + int selectedUrlsCount = m_viewTab[m_tabIndex].primaryView->view()->selectedItemsCount(); if (m_viewTab[m_tabIndex].secondaryView != 0) { - selectedUrlsCount += m_viewTab[m_tabIndex].secondaryView->view()->selectedUrls().count(); + selectedUrlsCount += m_viewTab[m_tabIndex].secondaryView->view()->selectedItemsCount(); } QAction* compareFilesAction = actionCollection()->action("compare_files"); @@ -213,6 +214,9 @@ void DolphinMainWindow::slotSelectionChanged(const KFileItemList& selection) compareFilesAction->setEnabled(false); } + const bool activeViewHasSelection = (activeViewContainer()->view()->selectedItemsCount() > 0); + actionCollection()->action("quick_view")->setEnabled(activeViewHasSelection); + m_activeViewContainer->updateStatusBar(); emit selectionChanged(selection); @@ -274,6 +278,8 @@ void DolphinMainWindow::openNewTab(const KUrl& url) viewTab.primaryView->view()->reload(); m_viewTab.append(viewTab); + + actionCollection()->action("close_tab")->setEnabled(true); } void DolphinMainWindow::toggleActiveView() @@ -626,6 +632,18 @@ void DolphinMainWindow::compareFiles() KRun::runCommand(command, "Kompare", "kompare", this); } +void DolphinMainWindow::quickView() +{ + const KUrl::List urls = activeViewContainer()->view()->selectedUrls(); + Q_ASSERT(urls.count() > 0); + + QDBusMessage msg = QDBusMessage::createMethodCall("org.kde.plasma", "/Previewer", "", "openFile"); + foreach (const KUrl& url, urls) { + msg.setArguments(QList() << url.prettyUrl()); + QDBusConnection::sessionBus().send(msg); + } +} + void DolphinMainWindow::toggleShowMenuBar() { const bool visible = menuBar()->isVisible(); @@ -684,7 +702,7 @@ void DolphinMainWindow::closeTab(int index) if (index == m_tabIndex) { // The tab that should be closed is the active tab. Activate the // previous tab before closing the tab. - setActiveTab((index > 0) ? index - 1 : 1); + m_tabBar->setCurrentIndex((index > 0) ? index - 1 : 1); } // delete tab @@ -707,6 +725,7 @@ void DolphinMainWindow::closeTab(int index) // closing the last tab is not possible if (m_viewTab.count() == 1) { m_tabBar->removeTab(0); + actionCollection()->action("close_tab")->setEnabled(false); } else { m_tabBar->blockSignals(false); } @@ -755,6 +774,11 @@ void DolphinMainWindow::handlePlacesClick(const KUrl& url, Qt::MouseButtons butt } } +void DolphinMainWindow::slotTestCanDecode(const QDragMoveEvent* event, bool& canDecode) +{ + canDecode = KUrl::List::canDecode(event->mimeData()); +} + void DolphinMainWindow::init() { DolphinSettings& settings = DolphinSettings::instance(); @@ -799,6 +823,8 @@ void DolphinMainWindow::init() this, SLOT(openTabContextMenu(int, const QPoint&))); connect(m_tabBar, SIGNAL(newTabRequest()), this, SLOT(openNewTab())); + connect(m_tabBar, SIGNAL(testCanDecode(const QDragMoveEvent*, bool&)), + this, SLOT(slotTestCanDecode(const QDragMoveEvent*, bool&))); m_tabBar->blockSignals(true); // signals get unblocked after at least 2 tabs are open QWidget* centralWidget = new QWidget(this); @@ -829,6 +855,9 @@ void DolphinMainWindow::init() } updateViewActions(); + QAction* showFilterBarAction = actionCollection()->action("show_filter_bar"); + showFilterBarAction->setChecked(generalSettings->filterBar()); + if (firstRun) { // assure a proper default size if Dolphin runs the first time resize(750, 500); @@ -896,6 +925,7 @@ void DolphinMainWindow::setupActions() QAction* closeTab = new QAction(KIcon("tab-close"), i18nc("@action:inmenu File", "Close Tab"), this); closeTab->setShortcut(Qt::CTRL | Qt::Key_W); + closeTab->setEnabled(false); connect(closeTab, SIGNAL(triggered()), this, SLOT(closeTab())); actionCollection()->addAction("close_tab", closeTab); @@ -977,6 +1007,13 @@ void DolphinMainWindow::setupActions() compareFiles->setEnabled(false); connect(compareFiles, SIGNAL(triggered()), this, SLOT(compareFiles())); + KAction* quickView = actionCollection()->addAction("quick_view"); + quickView->setText(i18nc("@action:inmenu Tools", "Quick View")); + quickView->setIcon(KIcon("view-preview")); + quickView->setShortcut(Qt::Key_Space); + quickView->setEnabled(false); + connect(quickView, SIGNAL(triggered()), this, SLOT(quickView())); + // setup 'Settings' menu m_showMenuBar = KStandardAction::showMenubar(this, SLOT(toggleShowMenuBar()), actionCollection()); KStandardAction::preferences(this, SLOT(editSettings()), actionCollection());