#pragma once #include #include class QTabWidget; class QLineEdit; class QToolBar; class QAction; class BrowserTab; class QWebEngineView; class QCompleter; class QSqlQueryModel; class DownloadBar; class MainWindow : public QMainWindow { Q_OBJECT public: MainWindow(); protected: bool eventFilter(QObject *obj, QEvent *event) override; private slots: void createNewTab(const QUrl &url = QUrl(), bool focus = true); void closeTabAtIndex(int index); void navigateToAddressOrSearch(); void applyApplicationTheme(bool dark); void updateWindowStatus(); void toggleBookmark(); void showPasswordMenu(); private: void setupUserInterface(); void setupToolBar(); void setupKeyboardShortcuts(); BrowserTab *currentTab() const; void updateBookmarkIcon(); void updateAddressCompleter(); void updatePasswordIcon(); void injectAutofill(BrowserTab *tab, const QString &username, const QString &password); QTabWidget *tabs = nullptr; QLineEdit *address = nullptr; QToolBar *toolbar = nullptr; QAction *devtoolsAction = nullptr; QAction *darkModeAction = nullptr; QAction *bookmarkAction = nullptr; QAction *passwordAction = nullptr; QCompleter *completer = nullptr; QSqlQueryModel *completerModel = nullptr; DownloadBar *downloadBar = nullptr; bool isDarkMode; };