diff options
author | Aqua-sama <aqua@iserlohn-fortress.net> | 2018-04-16 17:07:36 +0200 |
---|---|---|
committer | Aqua-sama <aqua@iserlohn-fortress.net> | 2018-04-16 17:07:36 +0200 |
commit | d796821f8304306dbe088701724243b39e8eb358 (patch) | |
tree | 836c85aa421db5c495e2b36f6a02cea924b6d919 /src/mainwindow/mainwindow.h | |
parent | Branch of Qt5.11 features (diff) | |
download | smolbote-d796821f8304306dbe088701724243b39e8eb358.tar.xz |
Multiple subwindows interface
Subwindows are similar to tab groups.
- Rewrote Browser and MainWindow, so they should be somewhat cleaner now
- Moved AboutDialog to lib/about
What's broken:
- loading bar
- search box
- address bar bookmark suggestions
- plugins
Diffstat (limited to 'src/mainwindow/mainwindow.h')
-rw-r--r-- | src/mainwindow/mainwindow.h | 84 |
1 files changed, 20 insertions, 64 deletions
diff --git a/src/mainwindow/mainwindow.h b/src/mainwindow/mainwindow.h index 8b205ab..1817fdd 100644 --- a/src/mainwindow/mainwindow.h +++ b/src/mainwindow/mainwindow.h @@ -6,93 +6,49 @@ * SPDX-License-Identifier: GPL-3.0 */ -#ifndef MAINWINDOW_H -#define MAINWINDOW_H +#ifndef SMOLBOTE_MAINWINDOW_H +#define SMOLBOTE_MAINWINDOW_H -#include "browser.h" -#include "webengine/webengineprofile.h" -#include "widgets/loadingbar.h" -#include "widgets/navigationbar.h" #include <QMainWindow> -#include <QUrl> -#include <interfaces.h> #include <memory> -namespace Ui -{ -class MainWindow; -} - -class TabBar; -class SearchForm; +class QMdiArea; class Configuration; -class BookmarksWidget; -class DownloadsWidget; -class MainWindowMenuBar; -class UrlLineEdit; - +class Window; class MainWindow : public QMainWindow { Q_OBJECT - friend class WebView; - friend class SearchForm; - - friend class MainWindowMenuBar; - - friend class NavigationBar; - public: - explicit MainWindow(std::shared_ptr<Configuration> config, QWidget *parent = nullptr); + enum ActionLocation { + ToolsMenu + }; + + explicit MainWindow(std::shared_ptr<Configuration> &config, QWidget *parent = nullptr); Q_DISABLE_COPY(MainWindow) ~MainWindow() override; - void addTabbedDock(Qt::DockWidgetArea area, QWidget *widget); - -public slots: - void about(); - - void newTab(const QUrl &url = QUrl("")); - MainWindow *newWindow(const QUrl &url = QUrl("")); + void createMenuBar(); - void setProfile(std::shared_ptr<WebEngineProfile> profile); - WebEngineProfile *profile(); + void addAction(ActionLocation where, QAction *action); + void addDockWidget(Qt::DockWidgetArea area, QWidget *widget); - void setBookmarksWidget(std::shared_ptr<BookmarksWidget> &widget); - void setDownloadsWidget(std::shared_ptr<DownloadsWidget> &widget); - void addPlugins(const QVector<Browser::Plugin> &plugins); - - void toggleFullscreen(); +public slots: + void createTab(const QUrl &url); + Window *createSubWindow(const QUrl &url); protected: void closeEvent(QCloseEvent *event) override; -private slots: - void handleTabChanged(WebView *view); - void handleTitleUpdated(const QString &title); - private: - Ui::MainWindow *ui; - SearchForm *m_searchBox; - - TabBar *tabBar; - WebView *m_currentView; - - MainWindowMenuBar *menuBar; - - // navigation - NavigationBar *m_navigationBar; - UrlLineEdit *m_addressBar; - LoadingBar *m_progressBar; + QString titleSuffix; + QMenu *toolsMenu = nullptr; + QMdiArea *mdiArea; - bool m_tabBarAdded = false; - std::shared_ptr<WebEngineProfile> m_profile; std::shared_ptr<Configuration> m_config; - std::shared_ptr<BookmarksWidget> m_bookmarksWidget; - std::shared_ptr<DownloadsWidget> m_downloadsWidget; QMetaObject::Connection titleChangedConnection; - QMetaObject::Connection newBookmarkConnection; + QMetaObject::Connection navigationBarConnection; }; -#endif // MAINWINDOW_H +#endif // SMOLBOTE_MAINWINDOW_H |