diff --git a/src/plugins/StatusBarIcons/StatusBarIcons.pro b/src/plugins/StatusBarIcons/StatusBarIcons.pro index ff7fa54ce..c69113fd4 100644 --- a/src/plugins/StatusBarIcons/StatusBarIcons.pro +++ b/src/plugins/StatusBarIcons/StatusBarIcons.pro @@ -10,7 +10,8 @@ SOURCES += statusbariconsplugin.cpp \ sbi_networkproxy.cpp \ sbi_proxywidget.cpp \ sbi_networkicondialog.cpp \ - sbi_networkmanager.cpp + sbi_networkmanager.cpp \ + sbi_settingsdialog.cpp HEADERS += statusbariconsplugin.h \ sbi_iconsmanager.h \ @@ -20,7 +21,8 @@ HEADERS += statusbariconsplugin.h \ sbi_networkproxy.h \ sbi_proxywidget.h \ sbi_networkicondialog.h \ - sbi_networkmanager.h + sbi_networkmanager.h \ + sbi_settingsdialog.h RESOURCES += statusbaricons.qrc @@ -28,4 +30,5 @@ include(../../plugins.pri) FORMS += \ sbi_proxywidget.ui \ - sbi_networkicondialog.ui + sbi_networkicondialog.ui \ + sbi_settingsdialog.ui diff --git a/src/plugins/StatusBarIcons/sbi_iconsmanager.cpp b/src/plugins/StatusBarIcons/sbi_iconsmanager.cpp index 21c581dd7..48d16acf9 100644 --- a/src/plugins/StatusBarIcons/sbi_iconsmanager.cpp +++ b/src/plugins/StatusBarIcons/sbi_iconsmanager.cpp @@ -47,6 +47,45 @@ void SBI_IconsManager::loadSettings() settings.endGroup(); } +bool SBI_IconsManager::showImagesIcon() const +{ + return m_showImagesIcon; +} + +void SBI_IconsManager::setShowImagesIcon(bool show) +{ + QSettings settings(m_settingsPath + "extensions.ini", QSettings::IniFormat); + settings.setValue("StatusBarIcons/showImagesIcon", show); + + m_showImagesIcon = show; +} + +bool SBI_IconsManager::showJavaScriptIcon() const +{ + return m_showJavaScriptIcon; +} + +void SBI_IconsManager::setShowJavaScriptIcon(bool show) +{ + QSettings settings(m_settingsPath + "extensions.ini", QSettings::IniFormat); + settings.setValue("StatusBarIcons/showJavaScriptIcon", show); + + m_showJavaScriptIcon = show; +} + +bool SBI_IconsManager::showNetworkIcon() const +{ + return m_showNetworkIcon; +} + +void SBI_IconsManager::setShowNetworkIcon(bool show) +{ + QSettings settings(m_settingsPath + "extensions.ini", QSettings::IniFormat); + settings.setValue("StatusBarIcons/showNetworkIcon", show); + + m_showNetworkIcon = show; +} + void SBI_IconsManager::reloadIcons() { QHashIterator it(m_windows); @@ -102,3 +141,8 @@ void SBI_IconsManager::mainWindowDeleted(QupZilla* window) m_windows[window].clear(); } + +SBI_IconsManager::~SBI_IconsManager() +{ + delete m_networkManager; +} diff --git a/src/plugins/StatusBarIcons/sbi_iconsmanager.h b/src/plugins/StatusBarIcons/sbi_iconsmanager.h index c34e0d978..8b5282091 100644 --- a/src/plugins/StatusBarIcons/sbi_iconsmanager.h +++ b/src/plugins/StatusBarIcons/sbi_iconsmanager.h @@ -29,9 +29,19 @@ class SBI_IconsManager : public QObject Q_OBJECT public: explicit SBI_IconsManager(const QString &settingsPath, QObject* parent = 0); + ~SBI_IconsManager(); void loadSettings(); + bool showImagesIcon() const; + void setShowImagesIcon(bool show); + + bool showJavaScriptIcon() const; + void setShowJavaScriptIcon(bool show); + + bool showNetworkIcon() const; + void setShowNetworkIcon(bool show); + void reloadIcons(); void destroyIcons(); diff --git a/src/plugins/StatusBarIcons/sbi_networkicondialog.cpp b/src/plugins/StatusBarIcons/sbi_networkicondialog.cpp index 786146fd4..adc1736dc 100644 --- a/src/plugins/StatusBarIcons/sbi_networkicondialog.cpp +++ b/src/plugins/StatusBarIcons/sbi_networkicondialog.cpp @@ -66,7 +66,7 @@ void SBI_NetworkIconDialog::addProxy() void SBI_NetworkIconDialog::removeProxy() { QMessageBox::StandardButton button = QMessageBox::warning(this, tr("Remove current proxy"), tr("Are you sure to remove current proxy?"), - QMessageBox::Yes | QMessageBox::No, QMessageBox::No); + QMessageBox::Yes | QMessageBox::No, QMessageBox::No); if (button != QMessageBox::Yes) { return; diff --git a/src/plugins/StatusBarIcons/sbi_settingsdialog.cpp b/src/plugins/StatusBarIcons/sbi_settingsdialog.cpp new file mode 100644 index 000000000..79cb97d59 --- /dev/null +++ b/src/plugins/StatusBarIcons/sbi_settingsdialog.cpp @@ -0,0 +1,50 @@ +/* ============================================================ +* StatusBarIcons - Extra icons in statusbar for QupZilla +* Copyright (C) 2013 David Rosca +* +* 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 "sbi_settingsdialog.h" +#include "ui_sbi_settingsdialog.h" +#include "sbi_iconsmanager.h" + +SBI_SettingsDialog::SBI_SettingsDialog(SBI_IconsManager* manager, QWidget* parent) + : QDialog(parent) + , ui(new Ui::SBI_SettingsDialog) + , m_manager(manager) +{ + ui->setupUi(this); + + ui->showImagesIcon->setChecked(m_manager->showImagesIcon()); + ui->showJavaScriptIcon->setChecked(m_manager->showJavaScriptIcon()); + ui->showNetworkIcon->setChecked(m_manager->showNetworkIcon()); + + connect(ui->buttonBox, SIGNAL(accepted()), this, SLOT(saveSettings())); + connect(ui->buttonBox, SIGNAL(rejected()), this, SLOT(close())); +} + +void SBI_SettingsDialog::saveSettings() +{ + m_manager->setShowImagesIcon(ui->showImagesIcon->isChecked()); + m_manager->setShowJavaScriptIcon(ui->showJavaScriptIcon->isChecked()); + m_manager->setShowNetworkIcon(ui->showNetworkIcon->isChecked()); + + m_manager->reloadIcons(); + close(); +} + +SBI_SettingsDialog::~SBI_SettingsDialog() +{ + delete ui; +} diff --git a/src/plugins/StatusBarIcons/sbi_settingsdialog.h b/src/plugins/StatusBarIcons/sbi_settingsdialog.h new file mode 100644 index 000000000..e15bf8333 --- /dev/null +++ b/src/plugins/StatusBarIcons/sbi_settingsdialog.h @@ -0,0 +1,47 @@ +/* ============================================================ +* StatusBarIcons - Extra icons in statusbar for QupZilla +* Copyright (C) 2013 David Rosca +* +* 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 . +* ============================================================ */ +#ifndef SBI_SETTINGSDIALOG_H +#define SBI_SETTINGSDIALOG_H + +#include + +namespace Ui +{ +class SBI_SettingsDialog; +} + +class SBI_IconsManager; + +class SBI_SettingsDialog : public QDialog +{ + Q_OBJECT + +public: + explicit SBI_SettingsDialog(SBI_IconsManager* manager, QWidget* parent = 0); + ~SBI_SettingsDialog(); + +private slots: + void saveSettings(); + +private: + Ui::SBI_SettingsDialog* ui; + + SBI_IconsManager* m_manager; +}; + +#endif // SBI_SETTINGSDIALOG_H diff --git a/src/plugins/StatusBarIcons/sbi_settingsdialog.ui b/src/plugins/StatusBarIcons/sbi_settingsdialog.ui new file mode 100644 index 000000000..262c5eda9 --- /dev/null +++ b/src/plugins/StatusBarIcons/sbi_settingsdialog.ui @@ -0,0 +1,145 @@ + + + SBI_SettingsDialog + + + + 0 + 0 + 345 + 186 + + + + StatusBar Icons + + + + + + + + Qt::Horizontal + + + + 40 + 20 + + + + + + + + + 0 + 0 + + + + :/sbi/data/icon.png + + + + + + + <h3>StatusBar Icons</h3> + + + + + + + Qt::Horizontal + + + + 40 + 20 + + + + + + + + + + These icons will be displayed in statusbar: + + + Qt::AlignCenter + + + + + + + + + Qt::Horizontal + + + + 40 + 20 + + + + + + + + + + Images Icon + + + + + + + JavaScript Icon + + + + + + + Network Icon + + + + + + + + + Qt::Horizontal + + + + 40 + 20 + + + + + + + + + + QDialogButtonBox::Cancel|QDialogButtonBox::Ok + + + + + + + + + + diff --git a/src/plugins/StatusBarIcons/statusbariconsplugin.cpp b/src/plugins/StatusBarIcons/statusbariconsplugin.cpp index 56a1890c4..4ca1ee464 100644 --- a/src/plugins/StatusBarIcons/statusbariconsplugin.cpp +++ b/src/plugins/StatusBarIcons/statusbariconsplugin.cpp @@ -17,6 +17,7 @@ * ============================================================ */ #include "statusbariconsplugin.h" #include "sbi_iconsmanager.h" +#include "sbi_settingsdialog.h" #include "pluginproxy.h" #include "qupzilla.h" @@ -37,7 +38,7 @@ PluginSpec StatusBarIconsPlugin::pluginSpec() spec.version = "0.1.5"; spec.author = "David Rosca "; spec.icon = QPixmap(":sbi/data/icon.png"); - spec.hasSettings = false; + spec.hasSettings = true; return spec; } @@ -76,7 +77,8 @@ bool StatusBarIconsPlugin::testPlugin() void StatusBarIconsPlugin::showSettings(QWidget* parent) { - Q_UNUSED(parent) + SBI_SettingsDialog dialog(m_manager, parent); + dialog.exec(); } #if QT_VERSION < 0x050000