Importing some reverted changes
[rekonq:nikhilms-mainline.git] / src / application.h
1 /* ============================================================
2 *
3 * This file is a part of the rekonq project
4 *
5 * Copyright (C) 2008 by Andrea Diamantini <adjam7 at gmail dot com>
6 * Copyright (C) 2009 by Paweł Prażak <pawelprazak at gmail dot com>
7 *
8 *
9 * This program is free software; you can redistribute it
10 * and/or modify it under the terms of the GNU General
11 * Public License as published by the Free Software Foundation;
12 * either version 2, or (at your option) any later version.
13 *
14 * This program is distributed in the hope that it will be useful,
15 * but WITHOUT ANY WARRANTY; without even the implied warranty of
16 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
17 * GNU General Public License for more details.
18 *
19 * ============================================================ */
20
21
22
23 #ifndef APPLICATION_H
24 #define APPLICATION_H
25
26 // Qt Includes
27 #include <QPointer>
28
29 // KDE Includes
30 #include <KUniqueApplication>
31 #include <KCmdLineArgs>
32 #include <KIcon>
33 #include <KUrl>
34 #include <KJob>
35 #include <kio/job.h>
36 #include <kio/jobclasses.h>
37
38
39 // Forward Declarations
40 class KIcon;
41 class KUrl;
42 class BookmarkProvider;
43 class CookieJar;
44 class DownloadManager;
45 class HistoryManager;
46 class MainWindow;
47 class NetworkAccessManager;
48 class WebView;
49
50
51 /**
52   *
53   */
54 class Application : public KUniqueApplication
55 {
56     Q_OBJECT
57
58 public:
59     Application();
60     ~Application();
61     int newInstance();
62     static Application *instance();
63
64     MainWindow *mainWindow();
65     WebView* newWebView(bool makeCurrent = true);
66
67     KIcon icon(const KUrl &url) const;
68
69     static HistoryManager *historyManager();
70     static CookieJar *cookieJar();
71     static NetworkAccessManager *networkAccessManager();
72     static DownloadManager *downloadManager();
73     static BookmarkProvider *bookmarkProvider();
74
75 public slots:
76     /**
77      * Save application's configuration
78      * @see ReKonfig::self()->writeConfig();
79      */
80     void slotSaveConfiguration() const;
81     
82
83 private slots:
84
85     /**
86      * Any actions that can be delayed until the window is visible
87      */
88     void postLaunch();
89     void openUrl(const KUrl &url);
90
91 private:
92     static QPointer<HistoryManager> s_historyManager;
93     static QPointer<NetworkAccessManager> s_networkAccessManager;
94     static QPointer<DownloadManager> s_downloadManager;
95     static QPointer<BookmarkProvider> s_bookmarkProvider;
96
97     QPointer<MainWindow> m_mainWindow;
98 };
99
100 #endif // APPLICATION_H