diff options
Diffstat (limited to 'src')
| -rw-r--r-- | src/newtabpage.cpp | 48 | ||||
| -rw-r--r-- | src/newtabpage.h | 2 | 
2 files changed, 35 insertions, 15 deletions
| diff --git a/src/newtabpage.cpp b/src/newtabpage.cpp index 7cf9a8a4..153755fc 100644 --- a/src/newtabpage.cpp +++ b/src/newtabpage.cpp @@ -200,13 +200,25 @@ void NewTabPage::generate(const KUrl &url)      } -    if (url == KUrl("about:downloads/clear")) +    // about:downloads links +    if (KUrl("about:downloads").isParentOf(url))      { -        rApp->downloadManager()->clearDownloadsHistory(); -        loadPageForUrl(KUrl("about:downloads")); -        return; -    } +        if (url.fileName() == QL1S("clear")) +        { +            rApp->downloadManager()->clearDownloadsHistory(); +            loadPageForUrl(KUrl("about:downloads")); +            return; +        } +        if (url.fileName() == QL1S("search")) +        { +            QString value = url.queryItemValue( QL1S("q") ); +            loadPageForUrl(KUrl("about:downloads"), value); +            return; +        } + +    } +          if (url == KUrl("about:bookmarks/edit"))      {          rApp->bookmarkManager()->slotEditBookmarks(); @@ -261,7 +273,7 @@ void NewTabPage::loadPageForUrl(const KUrl &url, const QString & filter)      }      else if (encodedUrl == QByteArray("about:downloads"))      { -        downloadsPage(); +        downloadsPage(filter);          updateWindowIcon();          title = i18n("Downloads");      } @@ -463,9 +475,6 @@ void NewTabPage::bookmarksPage()  {      m_root.addClass(QL1S("bookmarks")); -    const QWebElement searchForm = createFormItem(i18n("Search Bookmarks"), QL1S("about:bookmarks/search")); -    m_root.document().findFirst(QL1S("#actions")).appendInside(searchForm); -          const QWebElement editBookmarks = createLinkItem(i18n("Edit Bookmarks"),                                        QL1S("about:bookmarks/edit"),                                        QL1S("bookmarks-organize"), @@ -519,11 +528,11 @@ void NewTabPage::closedTabsPage()  } -void NewTabPage::downloadsPage() +void NewTabPage::downloadsPage(const QString & filter)  {      m_root.addClass(QL1S("downloads")); -    const QWebElement searchForm = createFormItem(i18n("Search Downloads"), QL1S("about:download/search")); +    const QWebElement searchForm = createFormItem(i18n("Search Downloads"), QL1S("about:downloads/search"));      m_root.document().findFirst(QL1S("#actions")).appendInside(searchForm);      const QWebElement clearDownloads = createLinkItem(i18n("Clear Downloads"), @@ -534,6 +543,8 @@ void NewTabPage::downloadsPage()      DownloadList list = rApp->downloadManager()->downloads(); +    bool filterIsEmpty = filter.isEmpty(); +          if (list.isEmpty())      {          m_root.addClass(QL1S("empty")); @@ -543,13 +554,22 @@ void NewTabPage::downloadsPage()      Q_FOREACH(DownloadItem * item, list)      { +        KUrl u = KUrl(item->destinationUrl()); +        QString fName = u.fileName(); + +        QString srcUrl = item->originUrl(); +         +        if (!filterIsEmpty) +        { +            if (!fName.contains(filter, Qt::CaseInsensitive) && !srcUrl.contains(filter, Qt::CaseInsensitive)) +                continue; +        } +                  m_root.prependInside(markup(QL1S("div")));          QWebElement div = m_root.firstChild();          div.addClass(QL1S("download")); -        KUrl u = KUrl(item->destinationUrl()); -        QString fName = u.fileName();          QString dir = u.directory();          QString file = dir + QL1C('/') + fName; @@ -565,7 +585,7 @@ void NewTabPage::downloadsPage()          div.appendInside(QL1S("<em>") + date +  QL1S("</em>"));          div.appendInside(QL1S("<br />")); -        div.appendInside(QL1S("<a href=") + item->originUrl() +  QL1C('>') + item->originUrl() +  QL1S("</a>")); +        div.appendInside(QL1S("<a href=") + srcUrl +  QL1C('>') + srcUrl +  QL1S("</a>"));          div.appendInside(QL1S("<br />"));          if (QFile::exists(file)) diff --git a/src/newtabpage.h b/src/newtabpage.h index 8d446908..a9e618db 100644 --- a/src/newtabpage.h +++ b/src/newtabpage.h @@ -68,7 +68,7 @@ private:      void historyPage(const QString & filter = QString());      void bookmarksPage();      void closedTabsPage(); -    void downloadsPage(); +    void downloadsPage(const QString & filter = QString());      void tabsPage();      void loadPageForUrl(const KUrl &url, const QString & filter = QString()); | 
