32 #include <QLocalServer>
33 #include <QMainWindow>
38 #include <QWebEngineCookieStore>
40 #include "dooble_settings.h"
41 #include "ui_dooble.h"
42 #include "ui_dooble_floating_digital_clock.h"
44 #ifdef DOOBLE_PEEKABOO
53 class QWebEngineDownloadItem;
54 class QWebEngineProfile;
82 MAXIMUM_TITLE_LENGTH = 1024,
83 MAXIMUM_SQL_TEXT_LENGTH = 5000,
84 MAXIMUM_URL_LENGTH = 2048
88 dooble(
const QList<QUrl> &urls,
bool is_private,
bool attach);
92 bool anonymous_tab_headers(
void)
const;
93 bool attached(
void)
const;
94 bool initialized(
void)
const;
95 bool is_private(
void)
const;
97 dooble_page *new_page(
const QUrl &url,
bool is_private);
98 static QPointer<dooble_about> s_about;
99 static QPointer<dooble_accepted_or_blocked_domains>
100 s_accepted_or_blocked_domains;
101 static QPointer<dooble_application> s_application;
102 static QPointer<dooble_certificate_exceptions> s_certificate_exceptions;
103 static QPointer<dooble_cookies> s_cookies;
104 static QPointer<dooble_cookies_window> s_cookies_window;
105 static QPointer<dooble_cryptography> s_cryptography;
106 static QPointer<dooble_downloads> s_downloads;
107 static QPointer<dooble_favorites_popup> s_favorites_window;
108 static QPointer<dooble_gopher> s_gopher;
109 static QPointer<dooble_history> s_history;
110 static QPointer<dooble_history_window> s_history_popup;
111 static QPointer<dooble_history_window> s_history_window;
112 static QPointer<dooble_search_engines_popup> s_search_engines_window;
113 static QPointer<dooble_settings> s_settings;
114 static QPointer<dooble_style_sheet> s_style_sheet;
115 static QPointer<dooble_web_engine_url_request_interceptor>
116 s_url_request_interceptor;
117 static QSet<QString> s_current_url_executables;
118 static QString ABOUT_BLANK;
119 static QString s_default_http_user_agent;
120 static QSet<QString> current_url_executables(
void);
121 static void clean(
void);
123 static void print_preview(QPrinter *printer,
dooble_charts *chart);
124 void print_current_page(
void);
130 void closeEvent(QCloseEvent *event);
131 void keyPressEvent(QKeyEvent *event);
136 CAN_EXIT_CLOSE_EVENT = 0,
137 CAN_EXIT_SLOT_QUIT_DOOBLE
140 QDialog *m_floating_digital_clock_dialog;
141 QEventLoop m_event_loop;
142 QFuture<QList<QByteArray> > m_pbkdf2_future;
143 QFutureWatcher<QList<QByteArray> > m_pbkdf2_future_watcher;
145 QHash<QTimer *, QShortcut *> m_disabled_shortcuts;
147 QList<QPair<QPointer<dooble_page>, QUrl> > m_delayed_pages;
148 QList<QPointer<QAction> > m_standard_menu_actions;
149 QList<QShortcut *> m_shortcuts;
150 QList<QShortcut *> m_tab_widget_shortcuts;
151 QList<QUrl> all_open_tab_urls(
void)
const;
152 QLocalServer m_local_server;
154 QPointer<QAction> m_action_close_tab;
155 QPointer<QAction> m_authentication_action;
156 QPointer<QAction> m_full_screen_action;
157 QPointer<QAction> m_settings_action;
158 QPointer<QProgressDialog> m_pbkdf2_dialog;
159 QPointer<QWebEngineProfile> m_web_engine_profile;
160 QPointer<dooble_cookies> m_cookies;
161 QPointer<dooble_cookies_window> m_cookies_window;
162 QPointer<dooble_downloads> m_downloads;
163 QPointer<dooble_popup_menu> m_popup_menu;
165 QTimer m_floating_digital_clock_timer;
166 QTimer m_populate_containers_timer;
168 Ui_dooble_floating_digital_clock m_floating_digital_clock_ui;
169 bool m_anonymous_tab_headers;
170 bool m_attached =
false;
171 bool m_is_javascript_dialog;
173 bool m_print_preview;
174 static QPointer<dooble> s_dooble;
175 static QPointer<dooble> s_favorites_popup_opened_from_dooble_window;
176 static QPointer<dooble> s_search_engines_popup_opened_from_dooble_window;
177 static bool s_containers_populated;
178 QStringList chart_names(
void)
const;
179 bool can_exit(
const dooble::CanExit can_exit);
180 bool tabs_closable(
void)
const;
181 static bool cookie_filter
182 (
const QWebEngineCookieStore::FilterRequest &filter_request);
183 #ifdef DOOBLE_PEEKABOO
184 static gpgme_error_t peekaboo_passphrase(
void *hook,
185 const char *uid_hint,
186 const char *passphrase_info,
190 void add_tab(QWidget *widget,
const QString &title);
191 void connect_signals(
void);
192 void decouple_support_windows(
void);
193 void delayed_load(
const QUrl &url,
dooble_page *page);
194 void initialize_static_members(
void);
198 void open_tab_as_new_window(
bool is_private,
int index);
199 void parse_command_line_arguments(
void);
200 void prepare_control_w_shortcut(
void);
201 void prepare_icons(
void);
202 void prepare_local_server(
void);
204 void prepare_private_web_engine_profile_settings(
void);
205 void prepare_shortcuts(
void);
206 void prepare_standard_menus(
void);
207 void prepare_style_sheets(
void);
208 void prepare_tab_icons_text_tool_tips(
void);
209 void prepare_tab_shortcuts(
void);
212 void setWindowTitle(
const QString &text);
215 void slot_about_to_hide_main_menu(
void);
216 void slot_about_to_show_history_menu();
217 void slot_about_to_show_main_menu(
void);
218 void slot_about_to_show_tabs_menu(
void);
219 void slot_about_to_show_view_menu(
void);
220 void slot_anonymous_tab_headers(
bool state);
221 void slot_application_locked(
bool state,
dooble *d);
222 void slot_authenticate(
void);
223 void slot_clear_downloads(
void);
224 void slot_clear_history(
void);
225 void slot_clear_visited_links(
void);
226 void slot_close_tab(
void);
230 void slot_decouple_tab(
int index);
231 void slot_dooble_credentials_authenticated(
bool state);
232 void slot_dooble_credentials_created(
void);
233 void slot_downloads_started(
void);
235 void slot_enable_shortcut(
void);
237 void slot_export_as_png(
void);
238 void slot_floating_digital_dialog_timeout(
void);
239 void slot_history_action_triggered(
void);
240 void slot_history_favorites_populated(
void);
241 void slot_icon_changed(
const QIcon &icon);
242 void slot_inject_custom_css(
void);
243 void slot_load_finished(
bool ok);
244 void slot_new_local_connection(
void);
245 void slot_new_private_window(
void);
246 void slot_new_tab(
const QUrl &url);
247 void slot_new_tab(
void);
248 void slot_new_window(
void);
249 void slot_open_chart(
void);
250 void slot_open_favorites_link(
const QUrl &url);
251 void slot_open_favorites_link_in_new_tab(
const QUrl &url);
252 void slot_open_link(
const QUrl &url);
253 void slot_open_link_in_new_private_window(
const QUrl &url);
254 void slot_open_link_in_new_tab(
const QUrl &url);
255 void slot_open_link_in_new_window(
const QUrl &url);
256 void slot_open_local_file(
void);
257 void slot_open_previous_session_tabs(
void);
258 void slot_open_tab_as_new_private_window(
int index);
259 void slot_open_tab_as_new_window(
int index);
260 void slot_pbkdf2_future_finished(
void);
261 void slot_peekaboo_text(
const QString &t);
262 void slot_populate_containers_timer_timeout(
void);
263 void slot_populated(
void);
264 void slot_print(
void);
265 void slot_print_finished(
bool ok);
266 void slot_print_preview(QPrinter *printer);
267 void slot_print_preview(
void);
268 void slot_quit_dooble(
void);
269 void slot_read_local_socket(
void);
270 void slot_reload_tab(
int index);
271 void slot_reload_tab_periodically(
int index,
int seconds);
272 void slot_remove_tab_widget_shortcut(
void);
273 void slot_save(
void);
274 void slot_set_current_tab(
void);
275 void slot_settings_applied(
void);
277 void slot_shortcut_activated(
void);
279 void slot_show_about(
void);
280 void slot_show_accepted_or_blocked_domains(
void);
281 void slot_show_certificate_exceptions(
void);
282 void slot_show_chart_xyseries(
void);
283 void slot_show_clear_items(
void);
284 void slot_show_cookies(
void);
285 void slot_show_documentation(
void);
286 void slot_show_downloads(
void);
287 void slot_show_favorites(
void);
288 void slot_show_floating_digital_clock(
void);
289 void slot_show_floating_history_popup(
void);
290 void slot_show_floating_menu(
void);
291 void slot_show_full_screen(
bool state);
292 void slot_show_full_screen(
void);
293 void slot_show_history(
void);
294 void slot_show_main_menu(
void);
295 void slot_show_release_notes(
const QUrl &url);
296 void slot_show_release_notes(
void);
297 void slot_show_search_engines(
void);
298 void slot_show_settings(
void);
299 void slot_show_settings_panel(dooble_settings::Panels panel);
300 void slot_show_site_cookies(
void);
301 void slot_tab_close_requested(
int index);
302 void slot_tab_index_changed(
int index);
303 void slot_tab_widget_shortcut_activated(
void);
304 void slot_tabs_menu_button_clicked(
void);
305 void slot_title_changed(
const QString &title);
306 void slot_vacuum_databases(
void);
307 void slot_warn_of_missing_sqlite_driver(
void);
308 void slot_window_close_requested(
void);
311 void add_session_url(
void);
312 void application_locked(
bool state,
dooble *d);
313 void dooble_credentials_authenticated(
bool state);
314 void history_cleared(
void);
Definition: dooble_about.h:136
Definition: dooble_accepted_or_blocked_domains.h:42
Definition: dooble_application.h:37
Definition: dooble_certificate_exceptions.h:37
Definition: dooble_charts.h:49
Definition: dooble_cookies_window.h:42
Definition: dooble_cookies.h:36
Definition: dooble_cryptography.h:36
Definition: dooble_downloads.h:46
Definition: dooble_gopher.h:41
Definition: dooble_history_window.h:38
Definition: dooble_history.h:46
Definition: dooble_page.h:50
Definition: dooble_style_sheet.h:38
Definition: dooble_web_engine_url_request_interceptor.h:36
Definition: dooble_web_engine_view.h:37