/* ============================================================ * * This file is a part of the reKonq project * * Copyright (C) 2008 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, or (at your option) any later version. * * 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. * * ============================================================ */ #ifndef BROWSERAPPLICATION_H #define BROWSERAPPLICATION_H #include <KApplication> #include <KCmdLineArgs> #include <QUrl> #include <QPointer> #include <QIcon> QT_BEGIN_NAMESPACE class QLocalServer; QT_END_NAMESPACE class BookmarksManager; class BrowserMainWindow; class CookieJar; class DownloadManager; class HistoryManager; class NetworkAccessManager; class BrowserApplication : public KApplication { Q_OBJECT public: BrowserApplication(KCmdLineArgs*, const QString &); ~BrowserApplication(); static BrowserApplication *instance(); void loadSettings(); bool isTheOnlyBrowser() const; BrowserMainWindow *mainWindow(); QList<BrowserMainWindow*> mainWindows(); QIcon icon(const QUrl &url) const; void saveSession(); bool canRestoreSession() const; static HistoryManager *historyManager(); static CookieJar *cookieJar(); static DownloadManager *downloadManager(); static NetworkAccessManager *networkAccessManager(); static BookmarksManager *bookmarksManager(); #if defined(Q_WS_MAC) bool event(QEvent *event); #endif public slots: BrowserMainWindow *newMainWindow(); void restoreLastSession(); #if defined(Q_WS_MAC) void lastWindowClosed(); void quitBrowser(); #endif private slots: void postLaunch(); void openUrl(const QUrl &url); void newLocalSocketConnection(); private: void clean(); void installTranslator(const QString &name); static HistoryManager *s_historyManager; static DownloadManager *s_downloadManager; static NetworkAccessManager *s_networkAccessManager; static BookmarksManager *s_bookmarksManager; QList<QPointer<BrowserMainWindow> > m_mainWindows; QLocalServer *m_localServer; QByteArray m_lastSession; mutable QIcon m_defaultIcon; }; #endif // BROWSERAPPLICATION_H