Falkon Develop
Cross-platform Qt-based web browser
statusbariconsplugin.cpp
Go to the documentation of this file.
1/* ============================================================
2* StatusBarIcons - Extra icons in statusbar for Falkon
3* Copyright (C) 2013-2014 David Rosca <nowrep@gmail.com>
4*
5* This program is free software: you can redistribute it and/or modify
6* it under the terms of the GNU General Public License as published by
7* the Free Software Foundation, either version 3 of the License, or
8* (at your option) any later version.
9*
10* This program is distributed in the hope that it will be useful,
11* but WITHOUT ANY WARRANTY; without even the implied warranty of
12* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13* GNU General Public License for more details.
14*
15* You should have received a copy of the GNU General Public License
16* along with this program. If not, see <http://www.gnu.org/licenses/>.
17* ============================================================ */
19#include "sbi_iconsmanager.h"
20#include "sbi_settingsdialog.h"
21#include "pluginproxy.h"
22#include "browserwindow.h"
23#include "../config.h"
24#include "mainapplication.h"
25
27 : QObject()
28 , m_manager(nullptr)
29{
30}
31
32void StatusBarIconsPlugin::init(InitState state, const QString &settingsPath)
33{
34 m_manager = new SBI_IconsManager(settingsPath);
35
38
39 // Make sure icons are added also to already created windows
40 if (state == LateInitState) {
41 const auto windows = mApp->windows();
42 for (BrowserWindow* window : windows) {
43 m_manager->mainWindowCreated(window);
44 }
45 }
46}
47
49{
50 // Make sure icons are properly removed when unloading plugin (but not when closing app)
51 if (!mApp->isClosing()) {
52 const auto windows = mApp->windows();
53 for (BrowserWindow* window : windows) {
54 m_manager->mainWindowDeleted(window);
55 }
56
57 delete m_manager;
58 }
59}
60
62{
63 // Require the version that the plugin was built with
64 return (QString::fromLatin1(Qz::VERSION) == QLatin1String(FALKON_VERSION));
65}
66
68{
69 auto* dialog = new SBI_SettingsDialog(m_manager, parent);
70 dialog->open();
71}
void mainWindowDeleted(BrowserWindow *window)
void mainWindowCreated(BrowserWindow *window)
void mainWindowDeleted(BrowserWindow *window)
void mainWindowCreated(BrowserWindow *window)
void showSettings(QWidget *parent) override
void init(InitState state, const QString &settingsPath) override
#define mApp
FALKON_EXPORT const char * VERSION
Definition: qzcommon.cpp:26
State state