]> cloud.milkyroute.net Git - dolphin.git/blobdiff - src/dolphinmainwindow.h
Open externally called files/directories in new tabs
[dolphin.git] / src / dolphinmainwindow.h
index e81793b0f23e052cd64a60e3102b0228f9a25632..4037c14689fc82d2f429501a35de694c0d70358c 100644 (file)
 #ifndef DOLPHIN_MAINWINDOW_H
 #define DOLPHIN_MAINWINDOW_H
 
+#include "dolphintabwidget.h"
 #include <config-baloo.h>
-
 #include <kio/fileundomanager.h>
 #include <ksortablelist.h>
 #include <kxmlguiwindow.h>
-#include <QIcon>
-#include <QUrl>
 
+#include <QIcon>
 #include <QList>
 #include <QPointer>
+#include <QUrl>
+#include <QVector>
 
 typedef KIO::FileUndoManager::CommandType CommandType;
 
+class DolphinBookmarkHandler;
 class DolphinViewActionHandler;
 class DolphinSettingsDialog;
 class DolphinViewContainer;
@@ -47,9 +49,7 @@ class KNewFileMenu;
 class QToolButton;
 class QIcon;
 class PlacesPanel;
-#ifndef Q_OS_WIN
 class TerminalPanel;
-#endif
 
 /**
  * @short Main window for Dolphin.
@@ -73,6 +73,11 @@ public:
      */
     DolphinViewContainer* activeViewContainer() const;
 
+    /**
+     * Returns view container for all tabs
+     */
+    QVector<DolphinViewContainer*> viewContainers() const;
+
     /**
      * Opens each directory in \p dirs in a separate tab. If \a splitView is set,
      * 2 directories are collected within one tab.
@@ -96,6 +101,39 @@ public:
     void setTabsToHomeIfMountPathOpen(const QString& mountPath);
 
 public slots:
+    /**
+     * Opens each directory in \p dirs in a separate tab. If \a splitView is set,
+     * 2 directories are collected within one tab.
+     * \pre \a dirs must contain at least one url.
+     *
+     * @note this function is overloaded so that it is callable via DBus.
+     */
+    void openDirectories(const QStringList &dirs, bool splitView);
+
+    /**
+     * Opens the directories which contain the files \p files and selects all files.
+     * If \a splitView is set, 2 directories are collected within one tab.
+     * \pre \a files must contain at least one url.
+     *
+     * @note this is overloaded so that this function is callable via DBus.
+     */
+    void openFiles(const QStringList &files, bool splitView);
+
+    /**
+     * Tries to raise/activate the Dolphin window.
+     */
+    void activateWindow();
+
+    /**
+     * Determines if a URL is open in any tab.
+     * @note Use of QString instead of QUrl is required to be callable via DBus.
+     *
+     * @param url URL to look for
+     * @returns true if url is currently open in a tab, false otherwise.
+     */
+    bool isUrlOpen(const QString &url);
+
+
     /**
      * Pastes the clipboard data into the currently selected folder
      * of the active view. If not exactly one folder is selected,
@@ -120,6 +158,16 @@ public slots:
     /** Stores all settings and quits Dolphin. */
     void quit();
 
+    /**
+     * Opens a new tab and places it after the current tab
+     */
+    void openNewTabAfterCurrentTab(const QUrl& url);
+
+    /**
+     * Opens a new tab and places it as the last tab
+     */
+    void openNewTabAfterLastTab(const QUrl& url);
+
 signals:
     /**
      * Is sent if the selection of the currently active view has
@@ -330,7 +378,7 @@ private slots:
     /**
      * Opens a new tab in the background showing the URL \a url.
      */
-    void openNewTab(const QUrl& url);
+    void openNewTab(const QUrl& url, DolphinTabWidget::TabPlacement tabPlacement);
 
     /**
      * Opens the selected folder in a new tab.
@@ -342,6 +390,11 @@ private slots:
      */
     void openInNewWindow();
 
+    /**
+     * Show the target of the selected symlink
+     */
+    void showTarget();
+
     /**
      * Indicates in the statusbar that the execution of the command \a command
      * has been finished.
@@ -410,10 +463,9 @@ private slots:
     void tabCountChanged(int count);
 
     /**
-     * Sets the window caption to url.fileName() if this is non-empty,
-     * "/" if the URL is "file:///", and url.protocol() otherwise.
+     * Updates the Window Title with the caption from the active view container
      */
-    void setUrlAsCaption(const QUrl& url);
+    void updateWindowTitle();
 
     /**
      * This slot is called when the user requested to unmount a removable media
@@ -510,6 +562,7 @@ private:
     DolphinViewActionHandler* m_actionHandler;
     DolphinRemoteEncoding* m_remoteEncoding;
     QPointer<DolphinSettingsDialog> m_settingsDialog;
+    DolphinBookmarkHandler* m_bookmarkHandler;
 
     // Members for the toolbar menu that is shown when the menubar is hidden:
     QToolButton* m_controlButton;
@@ -517,9 +570,7 @@ private:
 
     KIO::Job* m_lastHandleUrlStatJob;
 
-#ifndef Q_OS_WIN
     TerminalPanel* m_terminalPanel;
-#endif
     PlacesPanel* m_placesPanel;
     bool m_tearDownFromPlacesRequested;
 };