/* ============================================================ * * This file is a part of the rekonq project * * Copyright (C) 2009 by Andrea Diamantini <adjam7 at gmail dot com> * * * 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 <http://www.gnu.org/licenses/>. * * ============================================================ */ // Self Includes #include "homepage.h" #include "homepage.moc" // Local Includes #include "historymodels.h" #include "bookmarks.h" #include "application.h" #include "mainwindow.h" #include "mainview.h" #include "websnap.h" // KDE Includes #include <KStandardDirs> #include <KIconLoader> #include <KDebug> #include <KConfig> #include <KConfigGroup> // Qt Includes #include <QFile> HomePage::HomePage(QObject *parent) : QObject(parent) { m_homePagePath = KStandardDirs::locate("data", "rekonq/htmls/home.html"); } HomePage::~HomePage() { } QString HomePage::rekonqHomePage() { QFile file(m_homePagePath); bool isOpened = file.open(QIODevice::ReadOnly); if (!isOpened) { kWarning() << "Couldn't open the home.html file"; return QString(""); } QString speed = speedDial(); QString search = searchEngines(); QString closedtabs = recentlyClosedTabs(); QString html = QString(QLatin1String(file.readAll())) .arg(search) .arg(closedtabs) .arg(speed) ; return html; } QString HomePage::speedDial() { KUrl::List ul ; ul << KUrl("http://www.google.com") << KUrl("http://www.kde.org") << KUrl("http://sourceforge.net") << KUrl("http://www.slacky.eu") << KUrl("http://kde-apps.org") << KUrl("http://www.kernel.org") << KUrl("http://it.wikipedia.org") << KUrl("http://www.adjam.org") << KUrl("http://wordpress.com"); QString speed = QString(); for(int i = 0; i< ul.count(); ++i) { KUrl url = ul.at(i); QString fileName = QString("thumb") + QString::number(i) + QString(".png"); QString path = KStandardDirs::locateLocal("cache", QString("thumbs/") + fileName, true); if( !QFile::exists(path) ) { kDebug() << "websnap"; WebSnap *ws = new WebSnap(url, fileName); } speed += "<div class=\"thumbnail\">"; speed += "<a href=\"" + url.prettyUrl() + "\">"; speed += "<img src=\"" + path + "\" width=\"200\" alt=\"" + url.prettyUrl() + "\" />"; speed += "<br />"; speed += url.prettyUrl() + "</a></div>"; } return speed; } QString HomePage::searchEngines() { QString engines = "<h2>Search Engines</h2>"; // KConfig config("kuriikwsfilterrc"); //Share with konqueror // KConfigGroup cg = config.group("General"); // QStringList favoriteEngines; // favoriteEngines << "google" << "wikipedia"; //defaults // favoriteEngines = cg.readEntry("FavoriteSearchEngines", favoriteEngines); // // foreach (const QString &engine, favoriteEngines) // { // if(!engine.isEmpty()) // { // engines += engine + ": <input type=\"text\" name=\"" + engine + "\" /><br />"; // } // } // Google search engine engines += "<form method=\"get\" action=\"http://www.google.com/search\">"; engines += "<label for=\"q\">Google:</label>"; engines += "<input type=\"text\" name=\"q\" />"; engines += "</form>"; return engines; } QString HomePage::recentlyClosedTabs() { QString closed = "<h2>Recently closed tabs</h2>"; KUrl::List links = Application::instance()->mainWindow()->mainView()->recentlyClosedTabs(); foreach(const KUrl &url, links) { closed += "<a href=\"" + url.prettyUrl() + "\">" + url.prettyUrl() + "</a><br />"; } return closed; }