/* ============================================================ * * This file is a part of the rekonq project * * Copyright (C) 2008-2010 by Andrea Diamantini * Copyright (C) 2009 by Paweł Prażak * Copyright (C) 2009-2010 by Lionel Chauvin * * * 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 APPLICATION_H #define APPLICATION_H // Local Includes #include "rekonqprivate_export.h" // KDE Includes #include #include #include #include #include // Qt Includes #include #include // Forward Declarations class KIcon; class KUrl; class BookmarkProvider; class HistoryManager; class MainWindow; class SessionManager; class AdBlockManager; class WebView; typedef QList< QWeakPointer > MainWindowList; namespace Rekonq { /** * @short notifying message status * Different message status */ enum Notify { Success, ///< url successfully (down)loaded Error, ///< url failed to (down)load Download, ///< downloading url Info ///< information, (default) }; /** * @short Open link options * Different modes of opening new tab */ enum OpenType { CurrentTab, ///< open url in current tab SettingOpenTab, ///< open url according to users settings NewCurrentTab, ///< open url in new tab and make it current NewBackTab, ///< open url in new tab in background NewWindow ///< open url in new window }; } /** * */ class REKONQ_TESTS_EXPORT Application : public KUniqueApplication { Q_OBJECT public: Application(); ~Application(); int newInstance(); static Application *instance(); MainWindow *mainWindow(); MainWindow *newMainWindow(); MainWindowList mainWindowList(); static KIcon icon(const KUrl &url); static HistoryManager *historyManager(); static BookmarkProvider *bookmarkProvider(); static SessionManager *sessionManager(); static AdBlockManager *adblockManager(); public slots: /** * Save application's configuration * * @see ReKonfig::self()->writeConfig(); */ void saveConfiguration() const; void loadUrl( const KUrl& url, const Rekonq::OpenType& type = Rekonq::CurrentTab ); void loadUrl( const QString& urlString, const Rekonq::OpenType& type = Rekonq::CurrentTab ); void newWindow(); void removeMainWindow(MainWindow *window); private slots: /** * Any actions that can be delayed until the window is visible */ void postLaunch(); void loadResolvedUrl(ThreadWeaver::Job *); private: static QWeakPointer s_historyManager; static QWeakPointer s_bookmarkProvider; static QWeakPointer s_sessionManager; static QWeakPointer s_adblockManager; MainWindowList m_mainWindows; }; #endif // APPLICATION_H