diff options
author | Aqua-sama <aqua@iserlohn-fortress.net> | 2018-05-28 10:21:30 +0200 |
---|---|---|
committer | Aqua-sama <aqua@iserlohn-fortress.net> | 2018-05-28 10:21:30 +0200 |
commit | 49f1351231a71969160b2574603d198af3cf67b3 (patch) | |
tree | 3f74847f218efc8cf166f3f49e663177daefff41 /src/mainwindow | |
parent | Swap to new tab after creating it (diff) | |
download | smolbote-49f1351231a71969160b2574603d198af3cf67b3.tar.xz |
Remove Window::addTab(WebView *view)
Diffstat (limited to 'src/mainwindow')
-rw-r--r-- | src/mainwindow/widgets/tabwidget.cpp | 2 | ||||
-rw-r--r-- | src/mainwindow/window.cpp | 18 | ||||
-rw-r--r-- | src/mainwindow/window.h | 8 |
3 files changed, 19 insertions, 9 deletions
diff --git a/src/mainwindow/widgets/tabwidget.cpp b/src/mainwindow/widgets/tabwidget.cpp index 97c2717..9608efc 100644 --- a/src/mainwindow/widgets/tabwidget.cpp +++ b/src/mainwindow/widgets/tabwidget.cpp @@ -65,7 +65,7 @@ TabWidget::~TabWidget() int TabWidget::addTab(WebView *view) { - Q_CHECK_PTR(view); + Q_ASSERT_X(view != nullptr, "TabWidget::addTab", "Tried to add null view"); int idx = QTabWidget::addTab(view, view->title()); connect(view, &WebView::titleChanged, [this, view](const QString &title) { diff --git a/src/mainwindow/window.cpp b/src/mainwindow/window.cpp index a5ab90b..47f8489 100644 --- a/src/mainwindow/window.cpp +++ b/src/mainwindow/window.cpp @@ -10,7 +10,6 @@ #include "webengine/webprofile.h" #include "webengine/webview.h" #include "widgets/tabwidget.h" -#include <QUrl> #include <QToolButton> #include <QStyle> #include <QAction> @@ -30,9 +29,16 @@ Window::Window(const QHash<QString, QString> &config, QWidget *parent, Qt::Windo resize(800, 600); setWidget(tabWidget); + profile = WebProfile::defaultProfile(); + #ifdef QT_DEBUG { auto *menu = systemMenu(); + + menu->addSeparator(); + menu->addAction(tr("Debug menu"))->setEnabled(false); + menu->addAction(tr("Profile: %1").arg(profile->isOffTheRecord() ? tr("off-the-record") : profile->storageName()))->setEnabled(false); + menu->addSeparator(); auto *saveSession_action = menu->addAction(tr("Save session")); menu->addAction(tr("Load session"))->setEnabled(false); @@ -106,16 +112,16 @@ WebView *Window::currentView() return qobject_cast<WebView *>(tabWidget->currentWidget()); } -int Window::addTab(WebView *view) +WebView *Window::view(int index) const { - Q_CHECK_PTR(view); - return tabWidget->addTab(view); + return qobject_cast<WebView *>(tabWidget->widget(index)); } int Window::addTab(const QUrl &url) { - auto *view = new WebView(WebProfile::defaultProfile(), this); - view->load(url); + auto *view = new WebView(profile, this); + if(!url.isEmpty()) + view->load(url); return tabWidget->addTab(view); } diff --git a/src/mainwindow/window.h b/src/mainwindow/window.h index 22955b8..a569214 100644 --- a/src/mainwindow/window.h +++ b/src/mainwindow/window.h @@ -11,9 +11,11 @@ #include <QMdiSubWindow> #include <memory> +#include <QUrl> class TabWidget; class WebView; +class WebProfile; class Window : public QMdiSubWindow { Q_OBJECT @@ -23,6 +25,8 @@ public: ~Window() override; WebView *currentView(); + WebView *view(int index) const; + QJsonObject session() const; void restoreSession(const QJsonObject &sessionData); @@ -31,12 +35,12 @@ signals: void showStatusMessage(const QString &message, int timeout = 0); public slots: - int addTab(WebView *view); - int addTab(const QUrl &url); + int addTab(const QUrl &url = QUrl()); void swapToTab(int index); private: + WebProfile *profile; TabWidget *tabWidget; QMetaObject::Connection titleConnection; |