From a50d8f3bdc824580ae360bd262f2eea9722a757e Mon Sep 17 00:00:00 2001 From: Andrea Diamantini Date: Tue, 10 Nov 2009 16:08:13 +0100 Subject: Changing homepage.* --> newtabpage.* and fixing API --- src/CMakeLists.txt | 2 +- src/application.cpp | 1 - src/homepage.cpp | 285 ---------------------------------------------------- src/homepage.h | 65 ------------ src/mainview.cpp | 1 - src/mainwindow.cpp | 6 +- src/newtabpage.cpp | 285 ++++++++++++++++++++++++++++++++++++++++++++++++++++ src/newtabpage.h | 72 +++++++++++++ 8 files changed, 361 insertions(+), 356 deletions(-) delete mode 100644 src/homepage.cpp delete mode 100644 src/homepage.h create mode 100644 src/newtabpage.cpp create mode 100644 src/newtabpage.h (limited to 'src') diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt index 5bd41b25..9c0ace58 100644 --- a/src/CMakeLists.txt +++ b/src/CMakeLists.txt @@ -6,7 +6,7 @@ ADD_SUBDIRECTORY( tests ) ### ------- SETTING REKONQ FILES.. SET( rekonq_KDEINIT_SRCS - homepage.cpp + newtabpage.cpp previewimage.cpp websnap.cpp networkaccessmanager.cpp diff --git a/src/application.cpp b/src/application.cpp index 4b3d736d..869c23c8 100644 --- a/src/application.cpp +++ b/src/application.cpp @@ -42,7 +42,6 @@ #include "webview.h" #include "urlbar.h" #include "sessionmanager.h" -#include "homepage.h" // KDE Includes #include diff --git a/src/homepage.cpp b/src/homepage.cpp deleted file mode 100644 index f3a987fe..00000000 --- a/src/homepage.cpp +++ /dev/null @@ -1,285 +0,0 @@ -/* ============================================================ -* -* This file is a part of the rekonq project -* -* Copyright (C) 2009 by Andrea Diamantini -* -* -* This program is free software; you can redistribute it and/or -* modify it under the terms of the GNU General Public License as -* published by the Free Software Foundation; either version 2 of -* the License or (at your option) version 3 or any later version -* accepted by the membership of KDE e.V. (or its successor approved -* by the membership of KDE e.V.), which shall act as a proxy -* defined in Section 14 of version 3 of the license. -* -* This program is distributed in the hope that it will be useful, -* but WITHOUT ANY WARRANTY; without even the implied warranty of -* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -* GNU General Public License for more details. -* -* You should have received a copy of the GNU General Public License -* along with this program. If not, see . -* -* ============================================================ */ - - -// Self Includes -#include "homepage.h" - -// Auto Includes -#include "rekonq.h" - -// Local Includes -#include "historymodels.h" -#include "bookmarks.h" -#include "application.h" -#include "mainwindow.h" -#include "mainview.h" - -// KDE Includes -#include -#include -#include -#include -#include - -// Qt Includes -#include - - -HomePage::HomePage() -{ - m_homePagePath = KStandardDirs::locate("data", "rekonq/htmls/home.html"); -} - - -HomePage::~HomePage() -{ -} - - -QString HomePage::rekonqHomePage(const KUrl &url) -{ - QFile file(m_homePagePath); - bool isOpened = file.open(QIODevice::ReadOnly); - if (!isOpened) - { - kWarning() << "Couldn't open the home.html file"; - return QString(""); - } - QString imagesPath = QString("file://") + KGlobal::dirs()->findResourceDir("data", "rekonq/pics/bg.png") + QString("rekonq/pics"); - QString menu = homePageMenu(url); - - QString speed; - QString title; - if(url == KUrl("rekonq:closedTabs")) - { - speed = fillClosedTabs(); - title = i18n("Closed Tabs"); - } - if(url == KUrl("rekonq:history")) - { - speed = fillHistory(); - title = i18n("History"); - } - if(url == KUrl("rekonq:bookmarks")) - { - speed = fillBookmarks(); - title = i18n("Bookmarks"); - } - if(url == KUrl("rekonq:home") || url == KUrl("rekonq:favorites")) - { - speed = fillFavorites(); - title = i18n("Favorites"); - } - - QString html = QString(QLatin1String(file.readAll())) - .arg(title) - .arg(imagesPath) - .arg(menu) - .arg(speed) - ; - - return html; -} - - -QString HomePage::fillFavorites() -{ - QStringList names = ReKonfig::previewNames(); - QStringList urls = ReKonfig::previewUrls(); - - QString speed = "
"; - for(int i=0; i<8; ++i) - { - speed += "
"; - speed += ""; - speed += ""; - speed += ""; - speed += ""; - speed += ""; - speed += "
"; - } - - speed += "
"; - return speed; -} - - -// FIXME : port to new PreviewImage API to use... -QString HomePage::lastVisitedSites() -{ - QString last; - QList history = Application::historyManager()->history(); - for (int i = 0; i < 8 && i < history.size(); ++i) - { - HistoryItem it = history.at(i); - last += "
"; - last += ""; - last += ""; - last += "
"; - last += "" + it.title + "
"; - } - - return last; - -} - - -QString HomePage::homePageMenu(KUrl currentUrl) -{ - QString menu; - - KIconLoader *loader = KIconLoader::global(); - - menu += ""; - - menu += ""; - - menu += ""; - - menu += ""; - - return menu; -} - - -QString HomePage::fillHistory() -{ - HistoryTreeModel *model = Application::historyManager()->historyTreeModel(); - - QString history; - int i = 0; - do - { - QModelIndex index = model->index(i, 0, QModelIndex() ); - if(model->hasChildren(index)) - { - history += "

" + index.data().toString() + "

"; - for(int j=0; j< model->rowCount(index); ++j) - { - QModelIndex son = model->index(j, 0, index ); - history += son.data(HistoryModel::DateTimeRole).toDateTime().toString("hh:mm"); - history += ' '; - history += QString("") + - son.data().toString() + QString(""); - history += "
"; - } - } - i++; - } - while( model->hasIndex( i , 0 , QModelIndex() ) ); - - history += ""; - return history; -} - - -QString HomePage::fillBookmarks() -{ - KBookmarkGroup bookGroup = Application::bookmarkProvider()->rootGroup(); - if (bookGroup.isNull()) - { - return QString("Error retrieving bookmarks!"); - } - - QString str; - KBookmark bookmark = bookGroup.first(); - while (!bookmark.isNull()) - { - str += createBookItem(bookmark); - bookmark = bookGroup.next(bookmark); - } - return str; -} - - -QString HomePage::createBookItem(const KBookmark &bookmark) -{ - if (bookmark.isGroup()) - { - QString result; - KBookmarkGroup group = bookmark.toGroup(); - KBookmark bm = group.first(); - result += "

" + bookmark.text() + "

"; - result += "

"; - while (!bm.isNull()) - { - result += createBookItem(bm); - bm = group.next(bm); - } - result += "

"; - return result; - } - - if(bookmark.isSeparator()) - { - return QString("
"); - } - - QString books = "" + bookmark.text() + "
"; - return books; -} - - -QString HomePage::fillClosedTabs() -{ - QList links = Application::instance()->mainWindow()->mainView()->recentlyClosedTabs(); - QString closed; - - Q_FOREACH( const HistoryItem &item, links) - { - closed += "
"; - closed += ""; - closed += ""; - closed += ""; - closed += "
"; - } - - return closed; -} diff --git a/src/homepage.h b/src/homepage.h deleted file mode 100644 index abc28de0..00000000 --- a/src/homepage.h +++ /dev/null @@ -1,65 +0,0 @@ -/* ============================================================ -* -* This file is a part of the rekonq project -* -* Copyright (C) 2009 by Andrea Diamantini -* -* -* This program is free software; you can redistribute it and/or -* modify it under the terms of the GNU General Public License as -* published by the Free Software Foundation; either version 2 of -* the License or (at your option) version 3 or any later version -* accepted by the membership of KDE e.V. (or its successor approved -* by the membership of KDE e.V.), which shall act as a proxy -* defined in Section 14 of version 3 of the license. -* -* This program is distributed in the hope that it will be useful, -* but WITHOUT ANY WARRANTY; without even the implied warranty of -* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -* GNU General Public License for more details. -* -* You should have received a copy of the GNU General Public License -* along with this program. If not, see . -* -* ============================================================ */ - - -#ifndef REKONQ_HOME_PAGE -#define REKONQ_HOME_PAGE - - -// KDE Includes -#include - -// Qt Includes -#include -#include - -// Forward Includes -class KBookmark; - - -class HomePage -{ - -public: - HomePage(); - ~HomePage(); - - QString rekonqHomePage(const KUrl &url = KUrl("rekonq:home")); - -private: - QString homePageMenu(KUrl currentUrl); - - QString fillFavorites(); - QString lastVisitedSites(); - QString fillHistory(); - QString fillBookmarks(); - QString fillClosedTabs(); - - QString createBookItem(const KBookmark &bookmark); - - QString m_homePagePath; -}; - -#endif // REKONQ_HOME_PAGE diff --git a/src/mainview.cpp b/src/mainview.cpp index 2672216b..4b731fc8 100644 --- a/src/mainview.cpp +++ b/src/mainview.cpp @@ -40,7 +40,6 @@ #include "urlbar.h" #include "webview.h" #include "sessionmanager.h" -#include "homepage.h" // KDE Includes #include diff --git a/src/mainwindow.cpp b/src/mainwindow.cpp index 47d0b90d..28993fde 100644 --- a/src/mainwindow.cpp +++ b/src/mainwindow.cpp @@ -46,7 +46,7 @@ #include "sidepanel.h" #include "urlbar.h" #include "tabbar.h" -#include "homepage.h" +#include "newtabpage.h" // Ui Includes #include "ui_cleardata.h" @@ -1122,8 +1122,8 @@ bool MainWindow::newTabPage(const KUrl &url) { kDebug() << "loading home: " << url; WebView *w = currentTab(); - HomePage p; - QString html = p.rekonqHomePage(url); + NewTabPage p; + QString html = p.newTabPageCode(url); w->setHtml(html, url); return true; } diff --git a/src/newtabpage.cpp b/src/newtabpage.cpp new file mode 100644 index 00000000..f3656692 --- /dev/null +++ b/src/newtabpage.cpp @@ -0,0 +1,285 @@ +/* ============================================================ +* +* This file is a part of the rekonq project +* +* Copyright (C) 2009 by Andrea Diamantini +* +* +* This program is free software; you can redistribute it and/or +* modify it under the terms of the GNU General Public License as +* published by the Free Software Foundation; either version 2 of +* the License or (at your option) version 3 or any later version +* accepted by the membership of KDE e.V. (or its successor approved +* by the membership of KDE e.V.), which shall act as a proxy +* defined in Section 14 of version 3 of the license. +* +* This program is distributed in the hope that it will be useful, +* but WITHOUT ANY WARRANTY; without even the implied warranty of +* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +* GNU General Public License for more details. +* +* You should have received a copy of the GNU General Public License +* along with this program. If not, see . +* +* ============================================================ */ + + +// Self Includes +#include "newtabpage.h" + +// Auto Includes +#include "rekonq.h" + +// Local Includes +#include "historymodels.h" +#include "bookmarks.h" +#include "application.h" +#include "mainwindow.h" +#include "mainview.h" + +// KDE Includes +#include +#include +#include +#include +#include + +// Qt Includes +#include + + +NewTabPage::NewTabPage() +{ + m_htmlFilePath = KStandardDirs::locate("data", "rekonq/htmls/home.html"); +} + + +NewTabPage::~NewTabPage() +{ +} + + +QString NewTabPage::newTabPageCode(const KUrl &url) +{ + QFile file(m_htmlFilePath); + bool isOpened = file.open(QIODevice::ReadOnly); + if (!isOpened) + { + kWarning() << "Couldn't open the home.html file"; + return QString(""); + } + QString imagesPath = QString("file://") + KGlobal::dirs()->findResourceDir("data", "rekonq/pics/bg.png") + QString("rekonq/pics"); + QString menu = browsingMenu(url); + + QString speed; + QString title; + if(url == KUrl("rekonq:closedTabs")) + { + speed = closedTabsPage(); + title = i18n("Closed Tabs"); + } + if(url == KUrl("rekonq:history")) + { + speed = historyPage(); + title = i18n("History"); + } + if(url == KUrl("rekonq:bookmarks")) + { + speed = bookmarksPage(); + title = i18n("Bookmarks"); + } + if(url == KUrl("rekonq:home") || url == KUrl("rekonq:favorites")) + { + speed = favoritesPage(); + title = i18n("Favorites"); + } + + QString html = QString(QLatin1String(file.readAll())) + .arg(title) + .arg(imagesPath) + .arg(menu) + .arg(speed) + ; + + return html; +} + + +QString NewTabPage::favoritesPage() +{ + QStringList names = ReKonfig::previewNames(); + QStringList urls = ReKonfig::previewUrls(); + + QString speed = "
"; + for(int i=0; i<8; ++i) + { + speed += "
"; + speed += ""; + speed += ""; + speed += ""; + speed += ""; + speed += ""; + speed += "
"; + } + + speed += "
"; + return speed; +} + + +// FIXME : port to new PreviewImage API to use... +QString NewTabPage::lastVisitedPage() +{ + QString last; + QList history = Application::historyManager()->history(); + for (int i = 0; i < 8 && i < history.size(); ++i) + { + HistoryItem it = history.at(i); + last += "
"; + last += ""; + last += ""; + last += "
"; + last += "" + it.title + "
"; + } + + return last; + +} + + +QString NewTabPage::browsingMenu(const KUrl ¤tUrl) +{ + QString menu; + + KIconLoader *loader = KIconLoader::global(); + + menu += ""; + + menu += ""; + + menu += ""; + + menu += ""; + + return menu; +} + + +QString NewTabPage::historyPage() +{ + HistoryTreeModel *model = Application::historyManager()->historyTreeModel(); + + QString history; + int i = 0; + do + { + QModelIndex index = model->index(i, 0, QModelIndex() ); + if(model->hasChildren(index)) + { + history += "

" + index.data().toString() + "

"; + for(int j=0; j< model->rowCount(index); ++j) + { + QModelIndex son = model->index(j, 0, index ); + history += son.data(HistoryModel::DateTimeRole).toDateTime().toString("hh:mm"); + history += ' '; + history += QString("") + + son.data().toString() + QString(""); + history += "
"; + } + } + i++; + } + while( model->hasIndex( i , 0 , QModelIndex() ) ); + + history += ""; + return history; +} + + +QString NewTabPage::bookmarksPage() +{ + KBookmarkGroup bookGroup = Application::bookmarkProvider()->rootGroup(); + if (bookGroup.isNull()) + { + return QString("Error retrieving bookmarks!"); + } + + QString str; + KBookmark bookmark = bookGroup.first(); + while (!bookmark.isNull()) + { + str += createBookItem(bookmark); + bookmark = bookGroup.next(bookmark); + } + return str; +} + + +QString NewTabPage::createBookItem(const KBookmark &bookmark) +{ + if (bookmark.isGroup()) + { + QString result; + KBookmarkGroup group = bookmark.toGroup(); + KBookmark bm = group.first(); + result += "

" + bookmark.text() + "

"; + result += "

"; + while (!bm.isNull()) + { + result += createBookItem(bm); + bm = group.next(bm); + } + result += "

"; + return result; + } + + if(bookmark.isSeparator()) + { + return QString("
"); + } + + QString books = "" + bookmark.text() + "
"; + return books; +} + + +QString NewTabPage::closedTabsPage() +{ + QList links = Application::instance()->mainWindow()->mainView()->recentlyClosedTabs(); + QString closed; + + Q_FOREACH( const HistoryItem &item, links) + { + closed += "
"; + closed += ""; + closed += ""; + closed += ""; + closed += "
"; + } + + return closed; +} diff --git a/src/newtabpage.h b/src/newtabpage.h new file mode 100644 index 00000000..265518d2 --- /dev/null +++ b/src/newtabpage.h @@ -0,0 +1,72 @@ +/* ============================================================ +* +* This file is a part of the rekonq project +* +* Copyright (C) 2009 by Andrea Diamantini +* +* +* This program is free software; you can redistribute it and/or +* modify it under the terms of the GNU General Public License as +* published by the Free Software Foundation; either version 2 of +* the License or (at your option) version 3 or any later version +* accepted by the membership of KDE e.V. (or its successor approved +* by the membership of KDE e.V.), which shall act as a proxy +* defined in Section 14 of version 3 of the license. +* +* This program is distributed in the hope that it will be useful, +* but WITHOUT ANY WARRANTY; without even the implied warranty of +* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +* GNU General Public License for more details. +* +* You should have received a copy of the GNU General Public License +* along with this program. If not, see . +* +* ============================================================ */ + + +#ifndef REKONQ_NEW_TAB_PAGE +#define REKONQ_NEW_TAB_PAGE + + +// KDE Includes +#include + +// Qt Includes +#include +#include + +// Forward Includes +class KBookmark; + + +class NewTabPage +{ + +public: + NewTabPage(); + ~NewTabPage(); + + /** + * This is the unique NewTabPage public method. It takes an + * about: url and loads the corresponding part of the + * new tab page + */ + QString newTabPageCode(const KUrl &url = KUrl("rekonq:home")); + +protected: // these are the function to build the new tab page + + QString browsingMenu(const KUrl ¤tUrl); + + QString favoritesPage(); + QString lastVisitedPage(); + QString historyPage(); + QString bookmarksPage(); + QString closedTabsPage(); + +private: + QString createBookItem(const KBookmark &bookmark); + + QString m_htmlFilePath; +}; + +#endif // REKONQ_NEW_TAB_PAGE -- cgit v1.2.1