┌   ┐
54
└   ┘

summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorEmmanuel Pescosta <[email protected]>2014-08-10 20:36:44 +0200
committerEmmanuel Pescosta <[email protected]>2014-08-13 20:50:36 +0200
commit62418c58a58fac668e713655552b1c614b226298 (patch)
tree33997f4913c95c8a6dd2bd10a1cf3acb02439eee /src
parent4b70446c17dff6646c11966670bcbe145d07c685 (diff)
Use DolphinTabPage saveState/restoreState to remember and re-open closed tabs.
REVIEW: 118968
Diffstat (limited to 'src')
-rw-r--r--src/dolphinmainwindow.cpp8
-rw-r--r--src/dolphinrecenttabsmenu.cpp19
-rw-r--r--src/dolphinrecenttabsmenu.h4
-rw-r--r--src/dolphintabwidget.cpp13
-rw-r--r--src/dolphintabwidget.h8
5 files changed, 26 insertions, 26 deletions
diff --git a/src/dolphinmainwindow.cpp b/src/dolphinmainwindow.cpp
index 0882bac71..588bfda64 100644
--- a/src/dolphinmainwindow.cpp
+++ b/src/dolphinmainwindow.cpp
@@ -1058,10 +1058,10 @@ void DolphinMainWindow::setupActions()
DolphinRecentTabsMenu* recentTabsMenu = new DolphinRecentTabsMenu(this);
actionCollection()->addAction("closed_tabs", recentTabsMenu);
- connect(m_tabWidget, SIGNAL(rememberClosedTab(KUrl,KUrl)),
- recentTabsMenu, SLOT(rememberClosedTab(KUrl,KUrl)));
- connect(recentTabsMenu, SIGNAL(restoreClosedTab(KUrl,KUrl)),
- this, SLOT(openNewActivatedTab(KUrl,KUrl)));
+ connect(m_tabWidget, SIGNAL(rememberClosedTab(KUrl,QByteArray)),
+ recentTabsMenu, SLOT(rememberClosedTab(KUrl,QByteArray)));
+ connect(recentTabsMenu, SIGNAL(restoreClosedTab(QByteArray)),
+ m_tabWidget, SLOT(restoreClosedTab(QByteArray)));
connect(recentTabsMenu, SIGNAL(closedTabsCountChanged(uint)),
this, SLOT(closedTabsCountChanged(uint)));
diff --git a/src/dolphinrecenttabsmenu.cpp b/src/dolphinrecenttabsmenu.cpp
index 2335f1bf4..fa3eaf166 100644
--- a/src/dolphinrecenttabsmenu.cpp
+++ b/src/dolphinrecenttabsmenu.cpp
@@ -40,19 +40,14 @@ DolphinRecentTabsMenu::DolphinRecentTabsMenu(QObject* parent) :
this, SLOT(handleAction(QAction*)));
}
-void DolphinRecentTabsMenu::rememberClosedTab(const KUrl& primaryUrl, const KUrl& secondaryUrl)
+void DolphinRecentTabsMenu::rememberClosedTab(const KUrl& url, const QByteArray& state)
{
QAction* action = new QAction(menu());
- action->setText(primaryUrl.path());
-
- const QString iconName = KMimeType::iconNameForUrl(primaryUrl);
+ action->setText(url.path());
+ action->setData(state);
+ const QString iconName = KMimeType::iconNameForUrl(url);
action->setIcon(KIcon(iconName));
- KUrl::List urls;
- urls << primaryUrl;
- urls << secondaryUrl;
- action->setData(QVariant::fromValue(urls));
-
// Add the closed tab menu entry after the separator and
// "Empty Recently Closed Tabs" entry
if (menu()->actions().size() == 2) {
@@ -88,13 +83,11 @@ void DolphinRecentTabsMenu::handleAction(QAction* action)
}
emit closedTabsCountChanged(0);
} else {
- const KUrl::List urls = action->data().value<KUrl::List>();
+ const QByteArray state = action->data().value<QByteArray>();
removeAction(action);
delete action;
action = 0;
- if (urls.count() == 2) {
- emit restoreClosedTab(urls.first(), urls.last());
- }
+ emit restoreClosedTab(state);
emit closedTabsCountChanged(menu()->actions().size() - 2);
}
diff --git a/src/dolphinrecenttabsmenu.h b/src/dolphinrecenttabsmenu.h
index b5acc735e..910e564a1 100644
--- a/src/dolphinrecenttabsmenu.h
+++ b/src/dolphinrecenttabsmenu.h
@@ -34,11 +34,11 @@ public:
explicit DolphinRecentTabsMenu(QObject* parent);
public slots:
- void rememberClosedTab(const KUrl& primaryUrl, const KUrl& secondaryUrl);
+ void rememberClosedTab(const KUrl& url, const QByteArray& state);
void undoCloseTab();
signals:
- void restoreClosedTab(const KUrl& primaryUrl, const KUrl& secondaryUrl);
+ void restoreClosedTab(const QByteArray& state);
void closedTabsCountChanged(unsigned int count);
private slots:
diff --git a/src/dolphintabwidget.cpp b/src/dolphintabwidget.cpp
index 4bb70b4ea..ea71b4856 100644
--- a/src/dolphintabwidget.cpp
+++ b/src/dolphintabwidget.cpp
@@ -213,12 +213,7 @@ void DolphinTabWidget::closeTab(const int index)
}
DolphinTabPage* tabPage = tabPageAt(index);
- if (tabPage->splitViewEnabled()) {
- emit rememberClosedTab(tabPage->primaryViewContainer()->url(),
- tabPage->secondaryViewContainer()->url());
- } else {
- emit rememberClosedTab(tabPage->primaryViewContainer()->url(), KUrl());
- }
+ emit rememberClosedTab(tabPage->activeViewContainer()->url(), tabPage->saveState());
removeTab(index);
tabPage->deleteLater();
@@ -249,6 +244,12 @@ void DolphinTabWidget::slotPlacesPanelVisibilityChanged(bool visible)
}
}
+void DolphinTabWidget::restoreClosedTab(const QByteArray& state)
+{
+ openNewActivatedTab();
+ currentTabPage()->restoreState(state);
+}
+
void DolphinTabWidget::detachTab(int index)
{
Q_ASSERT(index >= 0);
diff --git a/src/dolphintabwidget.h b/src/dolphintabwidget.h
index a9bef11be..aaadbc997 100644
--- a/src/dolphintabwidget.h
+++ b/src/dolphintabwidget.h
@@ -70,7 +70,7 @@ signals:
/**
* Is emitted when a tab has been closed.
*/
- void rememberClosedTab(const KUrl& primaryUrl, const KUrl& secondaryUrl);
+ void rememberClosedTab(const KUrl& url, const QByteArray& state);
public slots:
/**
@@ -133,6 +133,12 @@ public slots:
*/
void slotPlacesPanelVisibilityChanged(bool visible);
+ /**
+ * Is called when the user wants to reopen a previously closed tab from
+ * the recent tabs menu.
+ */
+ void restoreClosedTab(const QByteArray& state);
+
private slots:
/**
* Opens the tab with the index \a index in a new Dolphin instance and closes