aboutsummaryrefslogtreecommitdiff
path: root/src/mainwindow/mainwindow.h
diff options
context:
space:
mode:
authorAqua-sama <aqua@iserlohn-fortress.net>2018-04-16 17:07:36 +0200
committerAqua-sama <aqua@iserlohn-fortress.net>2018-04-16 17:07:36 +0200
commitd796821f8304306dbe088701724243b39e8eb358 (patch)
tree836c85aa421db5c495e2b36f6a02cea924b6d919 /src/mainwindow/mainwindow.h
parentBranch of Qt5.11 features (diff)
downloadsmolbote-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.h84
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