diff options
| author | Andrea Diamantini <adjam7@gmail.com> | 2009-10-11 11:57:33 +0200 | 
|---|---|---|
| committer | Andrea Diamantini <adjam7@gmail.com> | 2009-10-11 11:57:33 +0200 | 
| commit | f0b55360c6ba8da48098362aa85ca88fa293b5a1 (patch) | |
| tree | c3e8b480be8d7dae5731c0acc064845a413c651f /src | |
| parent | Merge commit 'refs/merge-requests/1750' of git://gitorious.org/rekonq/mainlin... (diff) | |
| download | rekonq-f0b55360c6ba8da48098362aa85ca88fa293b5a1.tar.xz | |
Restored recently closed tabs
I'm not a big fan of this implementation, but modifying history
for this is impossible (no sense) and storing it somewhere.. don't know
Perhaps someone has some better ideas here :)
Diffstat (limited to 'src')
| -rw-r--r-- | src/application.cpp | 2 | ||||
| -rw-r--r-- | src/homepage.cpp | 35 | ||||
| -rw-r--r-- | src/homepage.h | 3 | ||||
| -rw-r--r-- | src/mainview.cpp | 9 | ||||
| -rw-r--r-- | src/mainview.h | 3 | 
5 files changed, 45 insertions, 7 deletions
| diff --git a/src/application.cpp b/src/application.cpp index f16b831d..6719d456 100644 --- a/src/application.cpp +++ b/src/application.cpp @@ -433,7 +433,7 @@ MainWindowList Application::mainWindowList()  bool Application::homePage(const KUrl &url)  { -    if (    url == KUrl("rekonq:lastSites")  +    if (    url == KUrl("rekonq:closedTabs")            || url == KUrl("rekonq:history")            || url == KUrl("rekonq:bookmarks")           || url == KUrl("rekonq:favorites") diff --git a/src/homepage.cpp b/src/homepage.cpp index 3cc908a9..398308be 100644 --- a/src/homepage.cpp +++ b/src/homepage.cpp @@ -75,9 +75,9 @@ QString HomePage::rekonqHomePage(const KUrl &url)      QString menu = homePageMenu(url);      QString speed; -    if(url == KUrl("rekonq:lastSites")) +    if(url == KUrl("rekonq:closedTabs"))      { -        speed = lastVisitedSites(); +        speed = fillRecentlyClosedTabs();      }      if(url == KUrl("rekonq:history"))      { @@ -182,11 +182,11 @@ QString HomePage::homePageMenu(KUrl currentUrl)      menu += "Favorites</a></div>";      menu += "<div class=\"link"; -    if(currentUrl == "rekonq:lastSites") +    if(currentUrl == "rekonq:closedTabs")          menu += " current"; -    menu += "\"><a href=\"rekonq:lastSites\">"; +    menu += "\"><a href=\"rekonq:closedTabs\">";      menu += "<img src=\"file:///" + loader->iconPath("edit-undo", KIconLoader::Desktop) + "\" />"; -    menu += "Last Visited</a></div>"; +    menu += "Closed Tabs</a></div>";      menu += "<div class=\"link";      if(currentUrl == "rekonq:bookmarks") @@ -284,3 +284,28 @@ QString HomePage::createBookItem(const KBookmark &bookmark)      books += "<a href=\"" + bookmark.url().prettyUrl() + "\">" + bookmark.text() + "</a><br />";      return books;  } + + +QString HomePage::fillRecentlyClosedTabs() +{ +    KUrl::List links = Application::instance()->mainWindow()->mainView()->recentlyClosedTabs(); +    QString closed; +     +    Q_FOREACH( const KUrl &url, links) +    {    +        QString text = url.prettyUrl(); +        if(text.length() > 20) +        { +            text.truncate(17); +            text += "..."; +        } +        closed += "<div class=\"thumbnail\">"; +        closed += "<object type=\"application/image-preview\" data=\""; +        closed += url.path() + "\" width=\"200\">"; +        closed += "</object>"; +        closed += "<br />"; +        closed += "<a href=\"" + url.path() + "\">" + text + "</a></div>"; +    } +     +    return closed; +} diff --git a/src/homepage.h b/src/homepage.h index 73bb5859..7d62f50a 100644 --- a/src/homepage.h +++ b/src/homepage.h @@ -55,7 +55,8 @@ private:      QString lastVisitedSites();      QString fillHistory();      QString fillBookmarks(); -     +    QString fillRecentlyClosedTabs(); +      QString createBookItem(const KBookmark &bookmark);      QString m_homePagePath; diff --git a/src/mainview.cpp b/src/mainview.cpp index 0abf6996..3c78a0f6 100644 --- a/src/mainview.cpp +++ b/src/mainview.cpp @@ -179,6 +179,8 @@ void MainView::clear()      // What exactly do we need to clear here?      m_urlBar->clearHistory();      m_urlBar->clear(); + +    m_recentlyClosedTabs.clear();  } @@ -411,6 +413,7 @@ void MainView::slotCloseTab(int index)                  return;          }          hasFocus = tab->hasFocus(); +        m_recentlyClosedTabs.prepend(tab->url());      }      QWidget *webView = widget(index); @@ -569,3 +572,9 @@ QLabel *MainView::animatedLoading(int index, bool addMovie)      m_tabBar->setTabButton(index, QTabBar::LeftSide, label);      return label;  } + + +KUrl::List MainView::recentlyClosedTabs() +{ +    return m_recentlyClosedTabs; +} diff --git a/src/mainview.h b/src/mainview.h index 48e0b58b..96710919 100644 --- a/src/mainview.h +++ b/src/mainview.h @@ -89,6 +89,7 @@ public:       */      WebView *newWebView(bool focused = true, bool nearParent = false); +    KUrl::List recentlyClosedTabs();  signals:      // tab widget signals @@ -155,6 +156,8 @@ private:      QString m_loadingGitPath;      int m_currentTabIndex; +     +    KUrl::List m_recentlyClosedTabs;  };  #endif // MAINVIEW_H | 
