1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
|
/* ============================================================
* The rekonq project
* ============================================================
* SPDX-License-Identifier: GPL-2.0-or-later
* Copyright (C) 2012-2013 by Andrea Diamantini <adjam7 at gmail dot com>
* SPDX-License-Identifier: GPL-3.0-only
* Copyright (C) 2022 aqua <aqua@iserlohn-fortress.net>
* ============================================================
* Description: Application Main Class
* ============================================================ */
#pragma once
#include "mainwindow/rekonqwindow.h"
#include "rekonq.hpp"
#include <QPointer>
#include <QUrl>
#include <QWidget>
#include <SingleApplication>
// Forward Declarations
class rView;
class PluginLoader;
// class WebTab;
// class WebPage;
typedef QList<QPointer<PluginLoader>> RekonqPluginList;
typedef QList<QPointer<RekonqWindow>> RekonqWindowList;
typedef QList<QPointer<rView>> RekonqViewList;
// ---------------------------------------------------------------------------------------------------------------
/**
* Rekonq Application class
*/
class Application : public SingleApplication {
Q_OBJECT
public:
Application(int &argc, char *argv[]);
~Application() override;
bool registerPlugin(const QString &path);
[[nodiscard]] auto pluginList() const { return m_plugins; };
// int newInstance();
static Application *instance() { return (qobject_cast<Application *>(QCoreApplication::instance())); }
// RekonqWindow *rekonqWindow(const QString &activityID = QString());
[[nodiscard]] auto windowList() const { return m_windows; }
[[nodiscard]] auto viewList() const { return m_views; }
/**
* @returns the list of windows associated with activity whose id is @param activityID
* @param activityID the ID of the activity (if empty, it is interpreted as the current activity)
* @note If activities are disabled, returns the function returns the list of all tabs.
*/
// RekonqWindowList tabsForActivity(const QString &activityID = QString());
/**
* @returns the true if there are windows associated with activity whose id is @param activityID
* @param activityID the ID of the activity (if empty, it is interpreted as the current activity)
* @note If activities are disabled, returns true if there are any tabs.
*/
// bool haveWindowsForActivity(const QString &activityID = QString());
// WebAppList webAppList();
// void bookmarksToolbarToggled(bool);
public slots:
/**
* Parse the command line in @param message and carry out the required actions
* @param instanceId if the current instance, check QCoreApplication::arguments instead of @param message
* @param message the command line
*/
void parseCommandLine(int instanceId, const QByteArray &message);
/**
* Save application's configuration
*
* @see ReKonfig::self()->writeConfig();
*/
// void saveConfiguration() const;
/**
* @short load url
*
* @param url The url to load
* @param type the type where loading the url. @see Rekonq::OpenType
*/
// void loadUrl(const KUrl& url, const Rekonq::OpenType& type = Rekonq::CurrentTab);
// RekonqWindow *newWindow(bool withTab = true, bool PrivateBrowsingMode = false);
// RekonqWindow *newWindow(WebPage *pg);
RekonqWindow *newWindow();
rView *newView(const QUrl &url = QUrl(), RekonqWindow *window = nullptr);
// void createWebAppShortcut(const QString & urlString = QString(), const QString & titleString = QString());
protected:
// This is used to track which window was activated most recently
// bool eventFilter(QObject *watched, QEvent *event);
signals:
void toggleBookmarksToolbar(bool);
private:
// void setWindowInfo(RekonqWindow *);
private slots:
// void updateConfiguration();
// clear private data
// void clearPrivateData();
// void queryQuit();
// void newPrivateBrowsingWindow();
// void pageCreated(WebPage *);
private:
RekonqPluginList m_plugins;
RekonqWindowList m_windows;
RekonqViewList m_views;
};
|