.clang-format
.clang-tidy
.gitignore
.vimrc
BrowserTab.cpp
BrowserTab.h
BrowserView.cpp
BrowserView.h
CMakeLists.txt
DatabaseManager.cpp
DatabaseManager.h
DownloadBar.cpp
DownloadBar.h
DownloadWidget.cpp
DownloadWidget.h
MainWindow.cpp
MainWindow.h
Makefile
MasterPasswordDialog.cpp
MasterPasswordDialog.h
PasswordHelper.cpp
PasswordHelper.h
README.md
ThemeConfig.h
VaultManager.cpp
VaultManager.h
browser.desktop
browser.qrc
compile_commands.json
main.cpp
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};