/** LICENSE ******************************************************************** ** ** smolbote: yet another qute browser ** Copyright (C) 2017 Xian Nox ** ** This program is free software: you can redistribute it and/or modify ** it under the terms of the GNU General Public License as published by ** the Free Software Foundation, either version 3 of the License, or ** (at your option) any later version. ** ** This program is distributed in the hope that it will be useful, ** but WITHOUT ANY WARRANTY; without even the implied warranty of ** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ** GNU General Public License for more details. ** ** You should have received a copy of the GNU General Public License ** along with this program. If not, see . ** ******************************************************************************/ #include "browser.h" #include "mainwindow.h" #include "settings.h" #include Browser::Browser(int &argc, char *argv[]) : QApplication(argc, argv), m_bookmarksManager(new BookmarksDialog), m_downloadManager(new DownloadDialog) { QtWebEngine::initialize(); } Browser::~Browser() { qDeleteAll(m_windows); m_windows.clear(); delete m_bookmarksManager; delete m_downloadManager; } Browser *Browser::instance() { return static_cast(QCoreApplication::instance()); } BookmarksDialog *Browser::bookmarks() { return m_bookmarksManager; } DownloadDialog *Browser::downloads() { return m_downloadManager; } void Browser::setConfigPath(const QString &path) { if(path.isEmpty()) { // set default config path Settings::setFilePath(QStandardPaths::writableLocation(QStandardPaths::AppConfigLocation) + "/config.ini"); } else { // set custom config path Settings::setFilePath(path); } } void Browser::addWindow(MainWindow *window) { if(m_windows.contains(window)) { return; } m_windows.append(window); connect(window, &QObject::destroyed, [this, window]() { this->removeWindow(window); }); window->show(); } void Browser::removeWindow(MainWindow *window) { m_windows.removeOne(window); }