#include "dolphintabwidget.h"
#include <config-baloo.h>
#include <kio/fileundomanager.h>
-#include <ksortablelist.h>
+#include <KSortableList>
#include <kxmlguiwindow.h>
#include <QIcon>
#include <QList>
+#include <QMenu>
#include <QPointer>
#include <QUrl>
#include <QVector>
class KFileItemList;
class KJob;
class KNewFileMenu;
+class KHelpMenu;
+class KToolBarPopupAction;
class QToolButton;
class QIcon;
class PlacesPanel;
class TerminalPanel;
+namespace KIO {
+ class OpenUrlJob;
+}
+
/**
* @short Main window for Dolphin.
*
/** @see KMainWindow::readProperties() */
void readProperties(const KConfigGroup& group) override;
+ /** Handles QWhatsThisClickedEvent and passes all others on. */
+ bool event(QEvent* event) override;
+ /** Handles QWhatsThisClickedEvent and passes all others on. */
+ bool eventFilter(QObject*, QEvent*) override;
+
private slots:
/**
* Refreshes the views of the main window by recreating them according to
/** Replaces the URL navigator by a search box to find files. */
void find();
+ /** Updates the state of the search action according to the view container. */
+ void updateSearchAction();
+
/**
* Updates the text of the paste action dependent on
* the number of items which are in the clipboard.
*/
void toggleShowMenuBar();
+ /** Updates "Open Preferred Search Tool" action. */
+ void updateOpenPreferredSearchToolAction();
+
+ /** Opens preferred search tool for the current location. */
+ void openPreferredSearchTool();
+
/** Opens a terminal window for the current location. */
void openTerminal();
+ /** Focus a Terminal Panel. */
+ void focusTerminalPanel();
+
/** Opens the settings dialog for Dolphin. */
void editSettings();
*/
void openNewActivatedTab();
+ /**
+ * Adds the current URL as an entry to the Places panel
+ */
+ void addToPlaces();
+
/**
* Opens a new tab in the background showing the URL \a url.
*/
*/
void handleUrl(const QUrl& url);
- /**
- * handleUrl() can trigger a stat job to see if the url can actually
- * be listed.
- */
- void slotHandleUrlStatFinished(KJob* job);
-
/**
* Is invoked when the write state of a folder has been changed and
* enables/disables the "Create New..." menu entry.
*/
void slotToolBarActionMiddleClicked(QAction *action);
+ /**
+ * Is called before the Back popup menu is shown. This slot will populate
+ * the menu with history data
+ */
+ void slotAboutToShowBackPopupMenu();
+
+ /**
+ * This slot is used by the Back Popup Menu to go back to a specific
+ * history index. The QAction::data will carry an int with the index
+ * to go to.
+ */
+ void slotGoBack(QAction* action);
+
+ /**
+ * Middle clicking Back/Forward will open the resulting folder in a new tab.
+ */
+ void slotBackForwardActionMiddleClicked(QAction *action);
+
+ /**
+ * Is called before the Forward popup menu is shown. This slot will populate
+ * the menu with history data
+ */
+ void slotAboutToShowForwardPopupMenu();
+
+ /**
+ * This slot is used by the Forward Popup Menu to go forward to a specific
+ * history index. The QAction::data will carry an int with the index
+ * to go to.
+ */
+ void slotGoForward(QAction* action);
private:
+ /**
+ * Sets up the various menus and actions and connects them.
+ */
void setupActions();
+
+ /**
+ * Sets up the dock widgets and their panels.
+ */
void setupDockWidgets();
- void updateEditActions();
+
+ void updateFileAndEditActions();
void updateViewActions();
void updateGoActions();
QAction* dockAction,
const QString& actionName);
+ /** Adds "What's This?" texts to many widgets and StandardActions. */
+ void setupWhatsThis();
+
+ /**
+ * Returns the KIO::StatJob::mostLocalUrl() for the active container URL
+ * if it's a local file. Otherwise returns the user's home path.
+ */
+ QString activeContainerLocalPath();
+
+ /** Returns preferred search tool as configured in "More Search Tools" menu. */
+ QPointer<QAction> preferredSearchTool();
+
private:
/**
* Implements a custom error handling for the undo manager. This
};
KNewFileMenu* m_newFileMenu;
+ KHelpMenu* m_helpMenu;
DolphinTabWidget* m_tabWidget;
DolphinViewContainer* m_activeViewContainer;
QToolButton* m_controlButton;
QTimer* m_updateToolBarTimer;
- KIO::Job* m_lastHandleUrlStatJob;
+ KIO::OpenUrlJob *m_lastHandleUrlOpenJob;
TerminalPanel* m_terminalPanel;
PlacesPanel* m_placesPanel;
bool m_tearDownFromPlacesRequested;
+
+ KToolBarPopupAction* m_backAction;
+ KToolBarPopupAction* m_forwardAction;
+
+ QMenu m_searchTools;
+
};
inline DolphinViewContainer* DolphinMainWindow::activeViewContainer() const