Fixing Licensing issue
[rekonq:nikhilms-mainline.git] / src / application.h
1 /* ============================================================
2 *
3 * This file is a part of the rekonq project
4 *
5 * Copyright (C) 2008-2009 by Andrea Diamantini <adjam7 at gmail dot com>
6 * Copyright (C) 2009 by Paweł Prażak <pawelprazak at gmail dot com>
7 * Copyright (C) 2009 by Lionel Chauvin <megabigbug@yahoo.fr>
8 *
9 *
10 * This program is free software; you can redistribute it and/or
11 * modify it under the terms of the GNU General Public License as
12 * published by the Free Software Foundation; either version 2 of
13 * the License or (at your option) version 3 or any later version
14 * accepted by the membership of KDE e.V. (or its successor approved
15 * by the membership of KDE e.V.), which shall act as a proxy 
16 * defined in Section 14 of version 3 of the license.
17
18 * This program is distributed in the hope that it will be useful,
19 * but WITHOUT ANY WARRANTY; without even the implied warranty of
20 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
21 * GNU General Public License for more details.
22 *
23 * You should have received a copy of the GNU General Public License
24 * along with this program.  If not, see <http://www.gnu.org/licenses/>.
25 *
26 * ============================================================ */
27
28
29
30
31 #ifndef APPLICATION_H
32 #define APPLICATION_H
33
34 // KDE Includes
35 #include <KUniqueApplication>
36 #include <KIcon>
37 #include <KUrl>
38 #include <kio/job.h>
39 #include <kio/jobclasses.h>
40
41 // Qt Includes
42 #include <QPointer>
43
44 // Forward Declarations
45 class KIcon;
46 class KUrl;
47 class BookmarkProvider;
48 class CookieJar;
49 class HistoryManager;
50 class MainWindow;
51 class NetworkAccessManager;
52
53
54 namespace Rekonq
55 {
56     /**
57      * @short notifying message status
58      * Different message status
59      */
60
61     enum Notify
62     {
63         Success,    ///< url successfully (down)loaded
64         Error,      ///< url failed to (down)load
65         Download,   ///< downloading url
66         Info        ///< information, (default)
67     };
68
69     /**
70      * @short Open link options
71      * Different modes of opening new tab
72      */
73     enum OpenType
74     {
75         CurrentTab,     ///< open url in current tab
76         SettingOpenTab, ///< open url according to users settings
77         NewCurrentTab,  ///< open url in new tab and make it current
78         NewBackTab      ///< open url in new tab in background
79     };
80
81 }
82
83
84 /**
85   *
86   */
87 class Application : public KUniqueApplication
88 {
89     Q_OBJECT
90
91 public:
92     Application();
93     ~Application();
94     int newInstance();
95     static Application *instance();
96
97     MainWindow *mainWindow();
98
99     static KIcon icon(const KUrl &url);
100
101     static HistoryManager *historyManager();
102     static CookieJar *cookieJar();
103     static NetworkAccessManager *networkAccessManager();
104     static BookmarkProvider *bookmarkProvider();
105
106 public slots:
107     /**
108      * Save application's configuration
109      * @see ReKonfig::self()->writeConfig();
110      */
111     void slotSaveConfiguration() const;
112
113 public slots:
114
115     void loadUrl( const KUrl& url,
116                   const Rekonq::OpenType& type = Rekonq::CurrentTab
117                 );
118            
119     void loadUrl( const QString& urlString,
120                   const Rekonq::OpenType& type = Rekonq::CurrentTab
121                 );    
122
123                 
124 private slots:
125
126     /**
127      * Any actions that can be delayed until the window is visible
128      */
129     void postLaunch();
130
131
132 private:
133
134     KUrl guessUrlFromString(const QString &url);
135
136     static QPointer<HistoryManager> s_historyManager;
137     static QPointer<NetworkAccessManager> s_networkAccessManager;
138     static QPointer<BookmarkProvider> s_bookmarkProvider;
139
140     QPointer<MainWindow> m_mainWindow;
141 };
142
143 #endif // APPLICATION_H