aboutsummaryrefslogtreecommitdiff
path: root/src/mainwindow/mainwindow.cpp
diff options
context:
space:
mode:
authorAqua-sama <aqua@iserlohn-fortress.net>2018-06-24 17:27:44 +0200
committerAqua-sama <aqua@iserlohn-fortress.net>2018-06-24 17:27:44 +0200
commite81526f15e8c1e9c82b27009dbe512f78cf1dc0f (patch)
treeea9a140347b6077d0521f85da4f9d881185fbb90 /src/mainwindow/mainwindow.cpp
parentSplit shortcuts into new tab (diff)
downloadsmolbote-e81526f15e8c1e9c82b27009dbe512f78cf1dc0f.tar.xz
Add Session class
Diffstat (limited to 'src/mainwindow/mainwindow.cpp')
-rw-r--r--src/mainwindow/mainwindow.cpp37
1 files changed, 27 insertions, 10 deletions
diff --git a/src/mainwindow/mainwindow.cpp b/src/mainwindow/mainwindow.cpp
index 27279c1..0932aee 100644
--- a/src/mainwindow/mainwindow.cpp
+++ b/src/mainwindow/mainwindow.cpp
@@ -29,6 +29,10 @@
#include <QUrl>
#include <configuration/configuration.h>
+#ifdef QT_DEBUG
+#include "session.h"
+#endif
+
#ifdef PLASMA_BLUR
#include <KWindowEffects>
#endif
@@ -183,6 +187,16 @@ void MainWindow::createMenuBar()
// tools menu
toolsMenu = menuBar()->addMenu(tr("Tools"));
+
+ // debug menu
+#ifdef QT_DEBUG
+ auto *debugMenu = menuBar()->addMenu(tr("Debug"));
+
+ debugMenu->addAction(tr("Print window session"), [this]() {
+ auto json = Session::toJson(this);
+ qDebug("session data >>>\n%s\n<<<", qUtf8Printable(json.toJson()));
+ });
+#endif
}
void MainWindow::addAction(ActionLocation where, QAction *action)
@@ -236,6 +250,18 @@ void MainWindow::createTab(const QUrl &url)
}
}
+const QVector<SubWindow *> MainWindow::subWindows() const
+{
+ QVector<SubWindow *> list;
+ for(auto *w : mdiArea->subWindowList()) {
+ auto *subwindow = qobject_cast<SubWindow *>(w);
+ if(subwindow != nullptr)
+ list.append(subwindow);
+ }
+
+ return list;
+}
+
SubWindow *MainWindow::currentSubWindow() const
{
return qobject_cast<SubWindow *>(mdiArea->currentSubWindow());
@@ -247,16 +273,7 @@ SubWindow *MainWindow::createSubWindow(const QString &url)
mdiArea->addSubWindow(w);
w->showMaximized();
w->setFocus();
-
- QJsonObject session;
- session.insert("profile", "");
- QJsonArray urls;
- if(!url.isEmpty())
- urls.append(url);
- session.insert("tabs", urls);
-
- w->restoreSession(session);
-
+ w->addTab(url);
return w;
}