/* ============================================================ * * 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" #include "homepage.moc" // 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(QObject *parent) : QObject(parent) { 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(); QString speed; if(url == KUrl("about:lastSites")) speed = fillRecentHistory(); if(url == KUrl("about:history")) speed = history(); if(url == KUrl("about:bookmarks")) speed = bookmarks(); if(url == KUrl("about:home") || url == KUrl("about:preferred")) speed = speedDial(); QString html = QString(QLatin1String(file.readAll())) .arg(imagesPath) .arg(menu) .arg(speed) ; return html; } QString HomePage::speedDial() { QStringList names = ReKonfig::previewNames(); QStringList urls = ReKonfig::previewUrls(); QString speed = ""; for(int i=0; i<4; ++i) { speed += ""; } speed += ""; for(int i=4; i<8; ++i) { speed += ""; } speed += "
"; speed += ""; speed += ""; speed += ""; speed += ""; speed += "

"; speed += "" + names.at(i) + "
"; speed += ""; speed += ""; speed += ""; speed += ""; speed += "

"; speed += "" + names.at(i) + "
"; return speed; } QString HomePage::recentlyClosedTabs() { QString closed = "

" + i18n("Recently closed tabs") + "

"; closed += "
    "; KUrl::List links = Application::instance()->mainWindow()->mainView()->recentlyClosedTabs(); Q_FOREACH(const KUrl &url, links) { closed += "
  • " + url.prettyUrl() + "
  • "; } closed += "
"; return closed; } QString HomePage::fillRecentHistory() { QString history = "

" + i18n("Last 20 visited sites") + "

"; history += "
    "; HistoryTreeModel *model = Application::historyManager()->historyTreeModel(); int i = 0; do { QModelIndex index = model->index(i, 0, QModelIndex() ); if(model->hasChildren(index)) { for(int j=0; j< model->rowCount(index) && i<20 ; ++j) { QModelIndex son = model->index(j, 0, index ); history += "
  • "; history += QString(""); history += son.data().toString(); history += QString(""); history += "
  • "; i++; } } i++; } while( i<20 || model->hasIndex( i , 0 , QModelIndex() ) ); history += "
      "; return history; } QString HomePage::homePageMenu() { QString menu = ""; return menu; } QString HomePage::history() { QString history = "

      " + i18n("History") + "

      "; history += "
        "; HistoryTreeModel *model = Application::historyManager()->historyTreeModel(); int i = 0; do { QModelIndex index = model->index(i, 0, QModelIndex() ); if(model->hasChildren(index)) { for(int j=0; j< model->rowCount(index) && i<20 ; ++j) { QModelIndex son = model->index(j, 0, index ); history += "
      • "; history += QString(""); history += son.data().toString(); history += QString(""); history += "
      • "; i++; } } i++; } while( i<20 || model->hasIndex( i , 0 , QModelIndex() ) ); history += "
          "; return history; } QString HomePage::bookmarks() { return QString(""); }