summaryrefslogtreecommitdiff
path: root/src/application.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/application.h')
-rw-r--r--src/application.h115
1 files changed, 115 insertions, 0 deletions
diff --git a/src/application.h b/src/application.h
new file mode 100644
index 00000000..61f4af81
--- /dev/null
+++ b/src/application.h
@@ -0,0 +1,115 @@
+/* ============================================================
+*
+* This file is a part of the rekonq project
+*
+* Copyright (C) 2008 by Andrea Diamantini <adjam7 at gmail dot com>
+* Copyright (C) 2009 by Paweł Prażak <pawelprazak 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 APPLICATION_H
+#define APPLICATION_H
+
+// Qt Includes
+#include <QPointer>
+
+// KDE Includes
+#include <KUniqueApplication>
+#include <KCmdLineArgs>
+#include <KIcon>
+#include <KUrl>
+#include <KJob>
+#include <kio/job.h>
+#include <kio/jobclasses.h>
+
+
+// Forward Declarations
+class KIcon;
+class KUrl;
+class BookmarkProvider;
+class CookieJar;
+class DownloadManager;
+class HistoryManager;
+class MainWindow;
+class NetworkAccessManager;
+class WebView;
+
+
+namespace Rekonq
+{
+ /**
+ * @short Open link options
+ * Different modes of opening new tab
+ */
+ enum OpenType
+ {
+ Default, ///< open url according to users settings
+ New, ///< open url in new tab and make it current
+ Background ///< open url in new tab in background
+ };
+}
+
+
+/**
+ *
+ */
+class Application : public KUniqueApplication
+{
+ Q_OBJECT
+
+public:
+ Application();
+ ~Application();
+ int newInstance();
+ static Application *instance();
+
+ MainWindow *mainWindow();
+ WebView* newWebView(Rekonq::OpenType type = Rekonq::Default);
+
+ KIcon icon(const KUrl &url) const;
+
+ static HistoryManager *historyManager();
+ static CookieJar *cookieJar();
+ static NetworkAccessManager *networkAccessManager();
+ static DownloadManager *downloadManager();
+ static BookmarkProvider *bookmarkProvider();
+
+public slots:
+ /**
+ * Save application's configuration
+ * @see ReKonfig::self()->writeConfig();
+ */
+ void slotSaveConfiguration() const;
+
+
+private slots:
+
+ /**
+ * Any actions that can be delayed until the window is visible
+ */
+ void postLaunch();
+
+
+private:
+ static QPointer<HistoryManager> s_historyManager;
+ static QPointer<NetworkAccessManager> s_networkAccessManager;
+ static QPointer<DownloadManager> s_downloadManager;
+ static QPointer<BookmarkProvider> s_bookmarkProvider;
+
+ QPointer<MainWindow> m_mainWindow;
+};
+
+#endif // APPLICATION_H