MainWindow.h raw
 1#pragma once
 2
 3#include <QMainWindow>
 4#include <QUrl>
 5
 6class QTabWidget;
 7class QLineEdit;
 8class QToolBar;
 9class QAction;
10class BrowserTab;
11class QWebEngineView;
12class QCompleter;
13class QSqlQueryModel;
14class DownloadBar;
15
16class MainWindow : public QMainWindow {
17	Q_OBJECT
18public:
19	MainWindow();
20
21protected:
22	bool eventFilter(QObject *obj, QEvent *event) override;
23
24private slots:
25	void createNewTab(const QUrl &url = QUrl(), bool focus = true);
26	void closeTabAtIndex(int index);
27	void navigateToAddressOrSearch();
28	void applyApplicationTheme(bool dark);
29	void updateWindowStatus();
30	void toggleBookmark();
31	void showPasswordMenu();
32
33private:
34	void setupUserInterface();
35	void setupToolBar();
36	void setupKeyboardShortcuts();
37	BrowserTab *currentTab() const;
38	void updateBookmarkIcon();
39	void updateAddressCompleter();
40	void updatePasswordIcon();
41	void injectAutofill(BrowserTab *tab, const QString &username, const QString &password);
42
43	QTabWidget *tabs = nullptr;
44	QLineEdit *address = nullptr;
45	QToolBar *toolbar = nullptr;
46	QAction *devtoolsAction = nullptr;
47	QAction *darkModeAction = nullptr;
48	QAction *bookmarkAction = nullptr;
49	QAction *passwordAction = nullptr;
50	QCompleter *completer = nullptr;
51	QSqlQueryModel *completerModel = nullptr;
52	DownloadBar *downloadBar = nullptr;
53	bool isDarkMode;
54};