make sure that even icons for gmail account folders are loaded dynamically
This commit is contained in:
parent
27bdad2fbb
commit
28e42e6403
7 changed files with 72 additions and 37 deletions
|
@ -5,7 +5,6 @@
|
||||||
#include "gui/guiutilities.h"
|
#include "gui/guiutilities.h"
|
||||||
#include "miscellaneous/application.h"
|
#include "miscellaneous/application.h"
|
||||||
#include "miscellaneous/externaltool.h"
|
#include "miscellaneous/externaltool.h"
|
||||||
#include "miscellaneous/textfactory.h"
|
|
||||||
#include "network-web/silentnetworkaccessmanager.h"
|
#include "network-web/silentnetworkaccessmanager.h"
|
||||||
|
|
||||||
#include <QFileDialog>
|
#include <QFileDialog>
|
||||||
|
@ -192,7 +191,7 @@ void SettingsBrowserMail::loadSettings() {
|
||||||
m_ui->m_cmbProxyType->setCurrentIndex(m_ui->m_cmbProxyType->findData(selected_proxy_type));
|
m_ui->m_cmbProxyType->setCurrentIndex(m_ui->m_cmbProxyType->findData(selected_proxy_type));
|
||||||
m_ui->m_txtProxyHost->setText(settings()->value(GROUP(Proxy), SETTING(Proxy::Host)).toString());
|
m_ui->m_txtProxyHost->setText(settings()->value(GROUP(Proxy), SETTING(Proxy::Host)).toString());
|
||||||
m_ui->m_txtProxyUsername->setText(settings()->value(GROUP(Proxy), SETTING(Proxy::Username)).toString());
|
m_ui->m_txtProxyUsername->setText(settings()->value(GROUP(Proxy), SETTING(Proxy::Username)).toString());
|
||||||
m_ui->m_txtProxyPassword->setText(TextFactory::decrypt(settings()->value(GROUP(Proxy), SETTING(Proxy::Password)).toString()));
|
m_ui->m_txtProxyPassword->setText(settings()->password(GROUP(Proxy), SETTING(Proxy::Password)).toString());
|
||||||
m_ui->m_spinProxyPort->setValue(settings()->value(GROUP(Proxy), SETTING(Proxy::Port)).toInt());
|
m_ui->m_spinProxyPort->setValue(settings()->value(GROUP(Proxy), SETTING(Proxy::Port)).toInt());
|
||||||
|
|
||||||
setExternalTools(ExternalTool::toolsFromSettings());
|
setExternalTools(ExternalTool::toolsFromSettings());
|
||||||
|
@ -218,7 +217,7 @@ void SettingsBrowserMail::saveSettings() {
|
||||||
settings()->setValue(GROUP(Proxy), Proxy::Type, m_ui->m_cmbProxyType->itemData(m_ui->m_cmbProxyType->currentIndex()));
|
settings()->setValue(GROUP(Proxy), Proxy::Type, m_ui->m_cmbProxyType->itemData(m_ui->m_cmbProxyType->currentIndex()));
|
||||||
settings()->setValue(GROUP(Proxy), Proxy::Host, m_ui->m_txtProxyHost->text());
|
settings()->setValue(GROUP(Proxy), Proxy::Host, m_ui->m_txtProxyHost->text());
|
||||||
settings()->setValue(GROUP(Proxy), Proxy::Username, m_ui->m_txtProxyUsername->text());
|
settings()->setValue(GROUP(Proxy), Proxy::Username, m_ui->m_txtProxyUsername->text());
|
||||||
settings()->setValue(GROUP(Proxy), Proxy::Password, TextFactory::encrypt(m_ui->m_txtProxyPassword->text()));
|
settings()->setPassword(GROUP(Proxy), Proxy::Password, m_ui->m_txtProxyPassword->text());
|
||||||
settings()->setValue(GROUP(Proxy), Proxy::Port, m_ui->m_spinProxyPort->value());
|
settings()->setValue(GROUP(Proxy), Proxy::Port, m_ui->m_spinProxyPort->value());
|
||||||
|
|
||||||
auto tools = externalTools();
|
auto tools = externalTools();
|
||||||
|
|
|
@ -6,7 +6,6 @@
|
||||||
#include "gui/guiutilities.h"
|
#include "gui/guiutilities.h"
|
||||||
#include "miscellaneous/application.h"
|
#include "miscellaneous/application.h"
|
||||||
#include "miscellaneous/databasefactory.h"
|
#include "miscellaneous/databasefactory.h"
|
||||||
#include "miscellaneous/textfactory.h"
|
|
||||||
|
|
||||||
SettingsDatabase::SettingsDatabase(Settings* settings, QWidget* parent)
|
SettingsDatabase::SettingsDatabase(Settings* settings, QWidget* parent)
|
||||||
: SettingsPanel(settings, parent), m_ui(new Ui::SettingsDatabase) {
|
: SettingsPanel(settings, parent), m_ui(new Ui::SettingsDatabase) {
|
||||||
|
@ -146,8 +145,8 @@ void SettingsDatabase::loadSettings() {
|
||||||
m_ui->m_txtMysqlDatabase->lineEdit()->setPlaceholderText(tr("Working database which you have full access to."));
|
m_ui->m_txtMysqlDatabase->lineEdit()->setPlaceholderText(tr("Working database which you have full access to."));
|
||||||
m_ui->m_txtMysqlHostname->lineEdit()->setText(settings()->value(GROUP(Database), SETTING(Database::MySQLHostname)).toString());
|
m_ui->m_txtMysqlHostname->lineEdit()->setText(settings()->value(GROUP(Database), SETTING(Database::MySQLHostname)).toString());
|
||||||
m_ui->m_txtMysqlUsername->lineEdit()->setText(settings()->value(GROUP(Database), SETTING(Database::MySQLUsername)).toString());
|
m_ui->m_txtMysqlUsername->lineEdit()->setText(settings()->value(GROUP(Database), SETTING(Database::MySQLUsername)).toString());
|
||||||
m_ui->m_txtMysqlPassword->lineEdit()->setText(TextFactory::decrypt(settings()->value(GROUP(Database),
|
m_ui->m_txtMysqlPassword->lineEdit()->setText(settings()->password(GROUP(Database),
|
||||||
SETTING(Database::MySQLPassword)).toString()));
|
SETTING(Database::MySQLPassword)).toString());
|
||||||
m_ui->m_txtMysqlDatabase->lineEdit()->setText(settings()->value(GROUP(Database), SETTING(Database::MySQLDatabase)).toString());
|
m_ui->m_txtMysqlDatabase->lineEdit()->setText(settings()->value(GROUP(Database), SETTING(Database::MySQLDatabase)).toString());
|
||||||
m_ui->m_spinMysqlPort->setValue(settings()->value(GROUP(Database), SETTING(Database::MySQLPort)).toInt());
|
m_ui->m_spinMysqlPort->setValue(settings()->value(GROUP(Database), SETTING(Database::MySQLPort)).toInt());
|
||||||
m_ui->m_checkMysqlShowPassword->setChecked(false);
|
m_ui->m_checkMysqlShowPassword->setChecked(false);
|
||||||
|
@ -183,7 +182,7 @@ void SettingsDatabase::saveSettings() {
|
||||||
// Save MySQL.
|
// Save MySQL.
|
||||||
settings()->setValue(GROUP(Database), Database::MySQLHostname, m_ui->m_txtMysqlHostname->lineEdit()->text());
|
settings()->setValue(GROUP(Database), Database::MySQLHostname, m_ui->m_txtMysqlHostname->lineEdit()->text());
|
||||||
settings()->setValue(GROUP(Database), Database::MySQLUsername, m_ui->m_txtMysqlUsername->lineEdit()->text());
|
settings()->setValue(GROUP(Database), Database::MySQLUsername, m_ui->m_txtMysqlUsername->lineEdit()->text());
|
||||||
settings()->setValue(GROUP(Database), Database::MySQLPassword, TextFactory::encrypt(m_ui->m_txtMysqlPassword->lineEdit()->text()));
|
settings()->setPassword(GROUP(Database), Database::MySQLPassword, m_ui->m_txtMysqlPassword->lineEdit()->text());
|
||||||
settings()->setValue(GROUP(Database), Database::MySQLDatabase, m_ui->m_txtMysqlDatabase->lineEdit()->text());
|
settings()->setValue(GROUP(Database), Database::MySQLDatabase, m_ui->m_txtMysqlDatabase->lineEdit()->text());
|
||||||
settings()->setValue(GROUP(Database), Database::MySQLPort, m_ui->m_spinMysqlPort->value());
|
settings()->setValue(GROUP(Database), Database::MySQLPort, m_ui->m_spinMysqlPort->value());
|
||||||
}
|
}
|
||||||
|
|
|
@ -587,7 +587,7 @@ QSqlDatabase DatabaseFactory::mysqlConnection(const QString& connection_name) {
|
||||||
database.setHostName(qApp->settings()->value(GROUP(Database), SETTING(Database::MySQLHostname)).toString());
|
database.setHostName(qApp->settings()->value(GROUP(Database), SETTING(Database::MySQLHostname)).toString());
|
||||||
database.setPort(qApp->settings()->value(GROUP(Database), SETTING(Database::MySQLPort)).toInt());
|
database.setPort(qApp->settings()->value(GROUP(Database), SETTING(Database::MySQLPort)).toInt());
|
||||||
database.setUserName(qApp->settings()->value(GROUP(Database), SETTING(Database::MySQLUsername)).toString());
|
database.setUserName(qApp->settings()->value(GROUP(Database), SETTING(Database::MySQLUsername)).toString());
|
||||||
database.setPassword(TextFactory::decrypt(qApp->settings()->value(GROUP(Database), SETTING(Database::MySQLPassword)).toString()));
|
database.setPassword(qApp->settings()->password(GROUP(Database), SETTING(Database::MySQLPassword)).toString());
|
||||||
database.setDatabaseName(qApp->settings()->value(GROUP(Database), SETTING(Database::MySQLDatabase)).toString());
|
database.setDatabaseName(qApp->settings()->value(GROUP(Database), SETTING(Database::MySQLDatabase)).toString());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -613,7 +613,7 @@ QSqlDatabase DatabaseFactory::mysqlInitializeDatabase(const QString& connection_
|
||||||
database.setHostName(qApp->settings()->value(GROUP(Database), SETTING(Database::MySQLHostname)).toString());
|
database.setHostName(qApp->settings()->value(GROUP(Database), SETTING(Database::MySQLHostname)).toString());
|
||||||
database.setPort(qApp->settings()->value(GROUP(Database), SETTING(Database::MySQLPort)).toInt());
|
database.setPort(qApp->settings()->value(GROUP(Database), SETTING(Database::MySQLPort)).toInt());
|
||||||
database.setUserName(qApp->settings()->value(GROUP(Database), SETTING(Database::MySQLUsername)).toString());
|
database.setUserName(qApp->settings()->value(GROUP(Database), SETTING(Database::MySQLUsername)).toString());
|
||||||
database.setPassword(TextFactory::decrypt(qApp->settings()->value(GROUP(Database), SETTING(Database::MySQLPassword)).toString()));
|
database.setPassword(qApp->settings()->password(GROUP(Database), SETTING(Database::MySQLPassword)).toString());
|
||||||
|
|
||||||
if (!database.open()) {
|
if (!database.open()) {
|
||||||
qCritical("MySQL database was NOT opened. Delivered error message: '%s'", qPrintable(database.lastError().text()));
|
qCritical("MySQL database was NOT opened. Delivered error message: '%s'", qPrintable(database.lastError().text()));
|
||||||
|
|
|
@ -1207,9 +1207,9 @@ int DatabaseQueries::addFeed(QSqlDatabase db, int parent_id, int account_id, con
|
||||||
q.bindValue(QSL(":password"), TextFactory::encrypt(password));
|
q.bindValue(QSL(":password"), TextFactory::encrypt(password));
|
||||||
}
|
}
|
||||||
|
|
||||||
q.bindValue(QSL(":update_type"), (int) auto_update_type);
|
q.bindValue(QSL(":update_type"), int(auto_update_type));
|
||||||
q.bindValue(QSL(":update_interval"), auto_update_interval);
|
q.bindValue(QSL(":update_interval"), auto_update_interval);
|
||||||
q.bindValue(QSL(":type"), (int) feed_format);
|
q.bindValue(QSL(":type"), int(feed_format));
|
||||||
|
|
||||||
if (q.exec()) {
|
if (q.exec()) {
|
||||||
int new_id = q.lastInsertId().toInt();
|
int new_id = q.lastInsertId().toInt();
|
||||||
|
@ -1264,7 +1264,7 @@ bool DatabaseQueries::editFeed(QSqlDatabase db, int parent_id, int feed_id, cons
|
||||||
q.bindValue(QSL(":password"), TextFactory::encrypt(password));
|
q.bindValue(QSL(":password"), TextFactory::encrypt(password));
|
||||||
}
|
}
|
||||||
|
|
||||||
q.bindValue(QSL(":update_type"), (int) auto_update_type);
|
q.bindValue(QSL(":update_type"), int(auto_update_type));
|
||||||
q.bindValue(QSL(":update_interval"), auto_update_interval);
|
q.bindValue(QSL(":update_interval"), auto_update_interval);
|
||||||
q.bindValue(QSL(":type"), feed_format);
|
q.bindValue(QSL(":type"), feed_format);
|
||||||
q.bindValue(QSL(":id"), feed_id);
|
q.bindValue(QSL(":id"), feed_id);
|
||||||
|
|
|
@ -8,6 +8,7 @@
|
||||||
#include "definitions/definitions.h"
|
#include "definitions/definitions.h"
|
||||||
|
|
||||||
#include "miscellaneous/settingsproperties.h"
|
#include "miscellaneous/settingsproperties.h"
|
||||||
|
#include "miscellaneous/textfactory.h"
|
||||||
|
|
||||||
#include <QByteArray>
|
#include <QByteArray>
|
||||||
#include <QColor>
|
#include <QColor>
|
||||||
|
@ -397,30 +398,18 @@ class Settings : public QSettings {
|
||||||
virtual ~Settings();
|
virtual ~Settings();
|
||||||
|
|
||||||
// Type of used settings.
|
// Type of used settings.
|
||||||
inline SettingsProperties::SettingsType type() const {
|
SettingsProperties::SettingsType type() const;
|
||||||
return m_initializationStatus;
|
|
||||||
}
|
|
||||||
|
|
||||||
// Getters/setters for settings values.
|
// Getters/setters for settings values.
|
||||||
inline QVariant value(const QString& section, const QString& key, const QVariant& default_value = QVariant()) const {
|
QVariant password(const QString& section, const QString& key, const QVariant& default_value = QVariant()) const;
|
||||||
return QSettings::value(QString(QSL("%1/%2")).arg(section, key), default_value);
|
void setPassword(const QString& section, const QString& key, const QVariant& value);
|
||||||
}
|
|
||||||
|
|
||||||
inline void setValue(const QString& section, const QString& key, const QVariant& value) {
|
QVariant value(const QString& section, const QString& key, const QVariant& default_value = QVariant()) const;
|
||||||
QSettings::setValue(QString(QSL("%1/%2")).arg(section, key), value);
|
void setValue(const QString& section, const QString& key, const QVariant& value);
|
||||||
}
|
void setValue(const QString& key, const QVariant& value);
|
||||||
|
|
||||||
inline void setValue(const QString& key, const QVariant& value) {
|
bool contains(const QString& section, const QString& key) const;
|
||||||
QSettings::setValue(key, value);
|
void remove(const QString& section, const QString& key);
|
||||||
}
|
|
||||||
|
|
||||||
inline bool contains(const QString& section, const QString& key) const {
|
|
||||||
return QSettings::contains(QString(QSL("%1/%2")).arg(section, key));
|
|
||||||
}
|
|
||||||
|
|
||||||
inline void remove(const QString& section, const QString& key) {
|
|
||||||
QSettings::remove(QString(QSL("%1/%2")).arg(section, key));
|
|
||||||
}
|
|
||||||
|
|
||||||
// Returns the path which contains the settings.
|
// Returns the path which contains the settings.
|
||||||
QString pathName() const;
|
QString pathName() const;
|
||||||
|
@ -440,9 +429,42 @@ class Settings : public QSettings {
|
||||||
private:
|
private:
|
||||||
|
|
||||||
// Constructor.
|
// Constructor.
|
||||||
explicit Settings(const QString& file_name, Format format, const SettingsProperties::SettingsType& type, QObject* parent = 0);
|
explicit Settings(const QString& file_name, Format format, const SettingsProperties::SettingsType& type, QObject* parent = nullptr);
|
||||||
|
|
||||||
SettingsProperties::SettingsType m_initializationStatus;
|
SettingsProperties::SettingsType m_initializationStatus;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
inline SettingsProperties::SettingsType Settings::type() const {
|
||||||
|
return m_initializationStatus;
|
||||||
|
}
|
||||||
|
|
||||||
|
// Getters/setters for settings values.
|
||||||
|
inline QVariant Settings::password(const QString& section, const QString& key, const QVariant& default_value) const {
|
||||||
|
return TextFactory::decrypt(value(section, key, default_value).toString());
|
||||||
|
}
|
||||||
|
|
||||||
|
inline void Settings::setPassword(const QString& section, const QString& key, const QVariant& value) {
|
||||||
|
setValue(section, key, TextFactory::encrypt(value.toString()));
|
||||||
|
}
|
||||||
|
|
||||||
|
inline QVariant Settings::value(const QString& section, const QString& key, const QVariant& default_value) const {
|
||||||
|
return QSettings::value(QString(QSL("%1/%2")).arg(section, key), default_value);
|
||||||
|
}
|
||||||
|
|
||||||
|
inline void Settings::setValue(const QString& section, const QString& key, const QVariant& value) {
|
||||||
|
QSettings::setValue(QString(QSL("%1/%2")).arg(section, key), value);
|
||||||
|
}
|
||||||
|
|
||||||
|
inline void Settings::setValue(const QString& key, const QVariant& value) {
|
||||||
|
QSettings::setValue(key, value);
|
||||||
|
}
|
||||||
|
|
||||||
|
inline bool Settings::contains(const QString& section, const QString& key) const {
|
||||||
|
return QSettings::contains(QString(QSL("%1/%2")).arg(section, key));
|
||||||
|
}
|
||||||
|
|
||||||
|
inline void Settings::remove(const QString& section, const QString& key) {
|
||||||
|
QSettings::remove(QString(QSL("%1/%2")).arg(section, key));
|
||||||
|
}
|
||||||
|
|
||||||
#endif // SETTINGS_H
|
#endif // SETTINGS_H
|
||||||
|
|
|
@ -36,9 +36,9 @@ void BaseNetworkAccessManager::loadSettings() {
|
||||||
// Custom proxy is selected, set it up.
|
// Custom proxy is selected, set it up.
|
||||||
new_proxy.setType(selected_proxy_type);
|
new_proxy.setType(selected_proxy_type);
|
||||||
new_proxy.setHostName(settings->value(GROUP(Proxy), SETTING(Proxy::Host)).toString());
|
new_proxy.setHostName(settings->value(GROUP(Proxy), SETTING(Proxy::Host)).toString());
|
||||||
new_proxy.setPort(settings->value(GROUP(Proxy), SETTING(Proxy::Port)).toInt());
|
new_proxy.setPort(quint16(settings->value(GROUP(Proxy), SETTING(Proxy::Port)).toInt()));
|
||||||
new_proxy.setUser(settings->value(GROUP(Proxy), SETTING(Proxy::Username)).toString());
|
new_proxy.setUser(settings->value(GROUP(Proxy), SETTING(Proxy::Username)).toString());
|
||||||
new_proxy.setPassword(TextFactory::decrypt(settings->value(GROUP(Proxy), SETTING(Proxy::Password)).toString()));
|
new_proxy.setPassword(settings->password(GROUP(Proxy), SETTING(Proxy::Password)).toString());
|
||||||
setProxy(new_proxy);
|
setProxy(new_proxy);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -47,7 +47,7 @@ void BaseNetworkAccessManager::loadSettings() {
|
||||||
|
|
||||||
void BaseNetworkAccessManager::onSslErrors(QNetworkReply* reply, const QList<QSslError>& error) {
|
void BaseNetworkAccessManager::onSslErrors(QNetworkReply* reply, const QList<QSslError>& error) {
|
||||||
qWarning("Ignoring SSL errors for '%s': '%s' (code %d).", qPrintable(reply->url().toString()), qPrintable(reply->errorString()),
|
qWarning("Ignoring SSL errors for '%s': '%s' (code %d).", qPrintable(reply->url().toString()), qPrintable(reply->errorString()),
|
||||||
(int) reply->error());
|
int(reply->error()));
|
||||||
reply->ignoreSslErrors(error);
|
reply->ignoreSslErrors(error);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -4,6 +4,7 @@
|
||||||
|
|
||||||
#include "miscellaneous/application.h"
|
#include "miscellaneous/application.h"
|
||||||
#include "miscellaneous/iconfactory.h"
|
#include "miscellaneous/iconfactory.h"
|
||||||
|
#include "services/gmail/definitions.h"
|
||||||
#include "services/gmail/gmailserviceroot.h"
|
#include "services/gmail/gmailserviceroot.h"
|
||||||
#include "services/gmail/network/gmailnetworkfactory.h"
|
#include "services/gmail/network/gmailnetworkfactory.h"
|
||||||
|
|
||||||
|
@ -15,7 +16,21 @@ GmailFeed::GmailFeed(const QString& title, const QString& custom_id, const QIcon
|
||||||
setIcon(icon);
|
setIcon(icon);
|
||||||
}
|
}
|
||||||
|
|
||||||
GmailFeed::GmailFeed(const QSqlRecord& record) : Feed(record) {}
|
GmailFeed::GmailFeed(const QSqlRecord& record) : Feed(record) {
|
||||||
|
// Fixup icons to make them trully dynamic.
|
||||||
|
if (customId() == QSL(GMAIL_SYSTEM_LABEL_SENT)) {
|
||||||
|
setIcon(qApp->icons()->fromTheme(QSL("mail-sent")));
|
||||||
|
}
|
||||||
|
else if (customId() == QSL(GMAIL_SYSTEM_LABEL_DRAFT)) {
|
||||||
|
setIcon(qApp->icons()->fromTheme(QSL("gtk-edit")));
|
||||||
|
}
|
||||||
|
else if (customId() == QSL(GMAIL_SYSTEM_LABEL_SPAM)) {
|
||||||
|
setIcon(qApp->icons()->fromTheme(QSL("mail-mark-junk")));
|
||||||
|
}
|
||||||
|
else if (customId() == QSL(GMAIL_SYSTEM_LABEL_INBOX)) {
|
||||||
|
setIcon(qApp->icons()->fromTheme(QSL("mail-inbox")));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
GmailServiceRoot* GmailFeed::serviceRoot() const {
|
GmailServiceRoot* GmailFeed::serviceRoot() const {
|
||||||
return qobject_cast<GmailServiceRoot*>(getParentServiceRoot());
|
return qobject_cast<GmailServiceRoot*>(getParentServiceRoot());
|
||||||
|
|
Loading…
Add table
Reference in a new issue