Q_OBJECT
public:
+ /**
+ * @brief Controls where tabs are placed
+ */
+ enum TabPlacement {
+ /**
+ * The new tab is placed after the current tab
+ */
+ AfterCurrentTab,
+ /**
+ * The new tab is placed after the last tab
+ */
+ AfterLastTab
+ };
explicit DolphinTabWidget(QWidget* parent);
/**
*/
void refreshViews();
+ /**
+ * @return Whether any of the tab pages contains @p url in their primary
+ * or secondary view.
+ */
+ bool isUrlOpen(const QUrl& url) const;
+
signals:
/**
* Is emitted when the active view has been changed, by changing the current
/**
* Opens a new tab in the background showing the URL \a primaryUrl and the
- * optional URL \a secondaryUrl.
+ * optional URL \a secondaryUrl. \a tabPlacement controls where the new tab
+ * is placed.
*/
- void openNewTab(const QUrl &primaryUrl, const QUrl &secondaryUrl = QUrl());
+ void openNewTab(const QUrl &primaryUrl, const QUrl &secondaryUrl = QUrl(),
+ DolphinTabWidget::TabPlacement tabPlacement = AfterLastTab);
/**
* Opens each directory in \p dirs in a separate tab. If \a splitView is set,
*/
void closeTab(const int index);
+ /**
+ * Activates the tab with the index \a index.
+ */
+ void activateTab(const int index);
+
+ /**
+ * Activates the last tab in the tab bar.
+ */
+ void activateLastTab();
+
/**
* Activates the next tab in the tab bar.
* If the current active tab is the last tab, it activates the first tab.
*/
void restoreClosedTab(const QByteArray& state);
+ /** Copies all selected items to the inactive view. */
+ void copyToInactiveSplitView();
+
+ /** Moves all selected items to the inactive view. */
+ void moveToInactiveSplitView();
+
private slots:
/**
* Opens the tab with the index \a index in a new Dolphin instance and closes
*/
QString tabName(DolphinTabPage* tabPage) const;
+ /**
+ * @param url The URL that we would like
+ * @return a QPair with first containing the index of the tab with the
+ * desired URL or -1 if not found. Second says true if URL is in primary
+ * view container, false otherwise. False means the URL is in the secondary
+ * view container, unless first == -1. In that case the value of second
+ * is meaningless.
+ */
+ QPair<int, bool> indexByUrl(const QUrl& url) const;
+
private:
/** Caches the (negated) places panel visibility */
bool m_placesSelectorVisible;