-
Notifications
You must be signed in to change notification settings - Fork 6
/
mainwindow.h
224 lines (159 loc) · 7.36 KB
/
mainwindow.h
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
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
#ifndef MAINWINDOW_H
#define MAINWINDOW_H
#include <QMainWindow>
#include <QWindow>
#include <QCloseEvent>
#include "cefheaders.h"
#include "cefhandler.h"
#include "signalbroker.h"
#include "thewebsettingsaccessor.h"
#include "downloadimagecallback.h"
#include "oblivionrequestcontext.h"
#include "hovertabbar.h"
#include "certificateinfo.h"
#include <QToolButton>
#include <QMessageBox>
#include <QTimer>
#include <QNetworkAccessManager>
#include <QNetworkRequest>
#include <QJsonDocument>
#include <QNetworkReply>
#include <QJsonObject>
#include <QJsonArray>
#include <QSslSocket>
#include <QSslCertificate>
#include <QSslCertificateExtension>
#include <QMap>
#include <QTabBar>
#include <QMovie>
#include <QX11Info>
#include <QToolTip>
#include <QNetworkProxy>
#include "downloadframe.h"
#include <unistd.h>
#include <sys/types.h>
#include <QPrinterInfo>
#include <QComboBox>
#include <QCheckBox>
#include <QRadioButton>
#include <QSpinBox>
#include <QScrollArea>
class HoverTabBar;
namespace Ui {
class MainWindow;
}
class MainWindow : public QMainWindow
{
Q_OBJECT
public:
explicit MainWindow(Browser browser = NULL, bool isOblivion = false, QWidget *parent = 0);
~MainWindow();
enum warningType {
none,
fullscreen,
notification,
warning
};
bool oblivionWindow();
QList<Browser> browserList;
public slots:
void RenderProcessTerminated(Browser browser, CefRequestHandler::TerminationStatus status);
void TitleChanged(Browser browser, const CefString& title);
void AddressChange(Browser browser, CefRefPtr<CefFrame> frame, const CefString& url);
void FullscreenModeChange(Browser browser, bool fullscreen);
void JSDialog(CefRefPtr<CefBrowser> browser, const CefString &origin_url, CefHandler::JSDialogType dialog_type, const CefString &message_text, const CefString &default_prompt_text, CefRefPtr<CefJSDialogCallback> callback, bool &suppress_message);
void LoadingStateChange(Browser browser, bool isLoading, bool canGoBack, bool canGoForward);
void LoadError(Browser browser, CefRefPtr<CefFrame> frame, CefHandler::ErrorCode errorCode, const CefString& errorText, const CefString& failedUrl);
void BeforeClose(Browser browser);
void AuthCredentials(Browser browser, CefRefPtr<CefFrame> frame, bool isProxy, const CefString &host, int port, const CefString &realm, const CefString &scheme, CefRefPtr<CefAuthCallback> callback);
void BeforeUnloadDialog(Browser browser, const CefString &message_text, bool is_reload, CefRefPtr<CefJSDialogCallback> callback);
void BeforePopup(Browser browser, CefRefPtr<CefFrame> frame, const CefString &target_url, const CefString &target_frame_name, CefLifeSpanHandler::WindowOpenDisposition target_disposition, bool user_gesture, const CefPopupFeatures &popupFeatures, CefWindowInfo* windowInfo, CefBrowserSettings settings, bool *no_javascript_access);
void CertificateError(Browser browser, cef_errorcode_t cert_error, const CefString &request_url, CefRefPtr<CefSSLInfo> ssl_info, CefRefPtr<CefRequestCallback> callback);
void FaviconURLChange(Browser browser, std::vector<CefString> urls);
void KeyEvent(CefRefPtr<CefBrowser> browser, const CefKeyEvent &event, XEvent *os_event);
void ContextMenu(Browser browser, CefRefPtr<CefFrame> frame, CefRefPtr<CefContextMenuParams> params, CefRefPtr<CefMenuModel> model, CefRefPtr<CefRunContextMenuCallback> callback);
void ContextMenuCommand(Browser browser, int command_id, CefRefPtr<CefContextMenuParams> params);
void ProtocolExecution(Browser browser, const CefString& url, bool& allow_os_execution);
void Tooltip(Browser browser, CefString& text);
void ShowBrowser(Browser browser);
void AskForNotification(Browser browser, CefString host);
void MprisStateChanged(Browser browser, bool isOn);
void MprisPlayingStateChanged(Browser browser, bool isPlaying);
void BeforeDownload(Browser browser, CefRefPtr<CefDownloadItem> download_item, const CefString& suggested_name, CefRefPtr<CefBeforeDownloadCallback> callback);
void NewDownload(Browser browser, CefRefPtr<CefDownloadItem> download_item);
void OpenURLFromTab(Browser browser, CefRefPtr<CefFrame> frame, const CefString &target_url, CefLifeSpanHandler::WindowOpenDisposition target_disposition, bool user_gesture);
void FileDialog(Browser browser, CefDialogHandler::FileDialogMode mode, const CefString &title, const CefString &default_file_path, const std::vector<CefString> &accept_filters, int selected_accept_filter, CefRefPtr<CefFileDialogCallback> callback);
void PrintDialog(Browser browser, QPrinter* printer, bool has_selection, CefRefPtr<CefPrintDialogCallback> callback);
void StatusMessage(Browser browser, const CefString& value);
void ReloadSettings();
void setPopup(CefPopupFeatures features = CefPopupFeatures());
void createNewTab(Browser newBrowser = NULL, bool openInBackground = false);
void navigate(int index, QString url);
private slots:
void on_actionExit_triggered();
void on_actionGo_Back_triggered();
void on_actionGo_Forward_triggered();
void on_reloadErrorButton_clicked();
void on_actionReload_triggered();
void on_spaceSearch_returnPressed();
void on_warningOk_clicked();
void on_warningCancel_clicked();
void on_actionNew_Window_triggered();
void on_JsDialogOk_clicked();
void on_JsDialogCancel_clicked();
void on_JsDialogPrompt_returnPressed();
void on_AuthOk_clicked();
void on_AuthCancel_clicked();
void on_AuthUsername_returnPressed();
void on_AuthPassword_returnPressed();
void on_actionLimit_to_60_fps_triggered();
void on_actionLimit_to_30_fps_triggered();
void on_actionLimit_to_15_fps_triggered();
void on_actionLimit_to_1_fps_triggered();
void on_actionDon_t_Limit_triggered();
void on_actionAbout_theWeb_triggered();
void on_actionSettings_triggered();
void on_fraudIgnore_clicked();
void on_fraudBack_clicked();
void on_securityFrame_clicked();
void on_certIgnore_clicked();
void on_certificateBack_clicked();
void on_actionNew_Tab_triggered();
void updateCurrentBrowserDisplay();
void on_spaceSearch_GotFocus();
void on_actionClose_Tab_triggered();
void on_actionNew_Oblivion_Window_triggered();
void on_findText_returnPressed();
void on_actionFind_triggered();
void on_findNext_clicked();
void on_findClose_clicked();
void on_findBack_clicked();
void on_findText_textChanged(const QString &arg1);
void on_actionHistory_triggered();
void on_SelectFilePicker_fileDone();
void on_actionPrint_triggered();
void on_printCancel_clicked();
void on_printButton_clicked();
private:
Ui::MainWindow *ui;
Browser browser();
//Browser browser;
QList<QVariantMap> browserMetadata;
QList<QIcon> browserIcons;
void insertIntoMetadata(Browser browser, QString key, QVariant value);
void removeFromMetadata(Browser browser, QString key);
HoverTabBar* tabBar;
bool IsCorrectBrowser(Browser browser);
Browser getBrowserFor(Browser browser);
int indexOfBrowser(Browser browser);
bool isOblivion = false;
QToolButton* menuButton;
QAction* menuButtonAction;
QMovie* tabLoading;
warningType currentWarning = none;
int runningDownloads = 0;
QSettings settings;
void closeEvent(QCloseEvent *event);
void resizeEvent(QResizeEvent *event);
};
#endif // MAINWINDOW_H