/* ============================================================ * * 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("about:closedTabs")) { speed = closedTabsPage(); title = i18n("Closed Tabs"); } if(url == KUrl("about:history")) { speed = historyPage(); title = i18n("History"); } if(url == KUrl("about:bookmarks")) { speed = bookmarksPage(); title = i18n("Bookmarks"); } if(url == KUrl("about:home") || url == KUrl("about: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; }