aboutsummaryrefslogtreecommitdiff
path: root/src/browser.cpp
diff options
context:
space:
mode:
authorAqua-sama <aqua@iserlohn-fortress.net>2017-09-20 13:04:02 +0200
committerAqua-sama <aqua@iserlohn-fortress.net>2017-09-20 13:04:02 +0200
commit7cbcc16156dd6ab4786d466ea39857bde4bdd2c7 (patch)
tree9d6a4a0cdb80130c55756b2357deffee37d49185 /src/browser.cpp
parentFixed bug opening URLs from the command line while instance is running (diff)
downloadsmolbote-7cbcc16156dd6ab4786d466ea39857bde4bdd2c7.tar.xz
Fixed bug with starting up if the local socket wasn't cleaned up
Diffstat (limited to 'src/browser.cpp')
-rw-r--r--src/browser.cpp45
1 files changed, 25 insertions, 20 deletions
diff --git a/src/browser.cpp b/src/browser.cpp
index 897b0ad..c01c165 100644
--- a/src/browser.cpp
+++ b/src/browser.cpp
@@ -30,15 +30,12 @@
Browser::Browser(int &argc, char *argv[]) :
SingleApplication(argc, argv)
{
- m_settings = nullptr;
-
- m_networkAccessManager = nullptr;
- m_urlRequestInterceptor = nullptr;
- m_bookmarksManager = nullptr;
- m_downloadManager = nullptr;
- m_blocklistManager = nullptr;
-
- m_plugin = nullptr;
+ setApplicationName("smolbote");
+#ifdef GIT_VERSION
+ setApplicationVersion(GIT_VERSION);
+#else
+ setApplicationVersion("1.0.0");
+#endif
}
Browser::~Browser()
@@ -208,23 +205,27 @@ void Browser::loadSettings(const QString &path)
#endif
}
-MainWindow *Browser::mainWindow()
+MainWindow *Browser::activeWindow()
{
- if(m_windows.isEmpty()) {
+ if(m_windows.empty()) {
addWindow(new MainWindow());
}
- return m_windows.first();
+
+ for(auto it = m_windows.cbegin(); it != m_windows.cend(); it++) {
+ if(it->data()->isActiveWindow()) {
+ return it->data();
+ }
+ }
+ return m_windows.first().data();
}
void Browser::addWindow(MainWindow *window)
{
- if(m_windows.contains(window)) {
- return;
- }
+ Q_ASSERT(window != nullptr);
- m_windows.append(window);
- connect(window, &QObject::destroyed, [this, window]() {
- this->removeWindow(window);
+ m_windows.append(QPointer<MainWindow>(window));
+ connect(window, &QObject::destroyed, [this]() {
+ this->clean();
});
window->show();
@@ -237,9 +238,13 @@ MainWindow *Browser::addWindow(const QStringList params)
return w;
}
-void Browser::removeWindow(MainWindow *window)
+void Browser::clean()
{
- m_windows.removeOne(window);
+ for(int i = m_windows.size(); i >= 0; i--) {
+ if(m_windows[i].isNull()) {
+ m_windows.removeAt(i);
+ }
+ }
}
WebEngineProfile* Browser::profile(const QString name)