make sure that even icons for gmail account folders are loaded dynamically

This commit is contained in:
Martin Rotter 2019-04-05 12:50:38 +02:00
parent 27bdad2fbb
commit 28e42e6403
7 changed files with 72 additions and 37 deletions

View File

@ -5,7 +5,6 @@
#include "gui/guiutilities.h"
#include "miscellaneous/application.h"
#include "miscellaneous/externaltool.h"
#include "miscellaneous/textfactory.h"
#include "network-web/silentnetworkaccessmanager.h"
#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_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_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());
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::Host, m_ui->m_txtProxyHost->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());
auto tools = externalTools();

View File

@ -6,7 +6,6 @@
#include "gui/guiutilities.h"
#include "miscellaneous/application.h"
#include "miscellaneous/databasefactory.h"
#include "miscellaneous/textfactory.h"
SettingsDatabase::SettingsDatabase(Settings* settings, QWidget* parent)
: 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_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_txtMysqlPassword->lineEdit()->setText(TextFactory::decrypt(settings()->value(GROUP(Database),
SETTING(Database::MySQLPassword)).toString()));
m_ui->m_txtMysqlPassword->lineEdit()->setText(settings()->password(GROUP(Database),
SETTING(Database::MySQLPassword)).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_checkMysqlShowPassword->setChecked(false);
@ -183,7 +182,7 @@ void SettingsDatabase::saveSettings() {
// Save MySQL.
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::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::MySQLPort, m_ui->m_spinMysqlPort->value());
}

View File

@ -587,7 +587,7 @@ QSqlDatabase DatabaseFactory::mysqlConnection(const QString& connection_name) {
database.setHostName(qApp->settings()->value(GROUP(Database), SETTING(Database::MySQLHostname)).toString());
database.setPort(qApp->settings()->value(GROUP(Database), SETTING(Database::MySQLPort)).toInt());
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());
}
@ -613,7 +613,7 @@ QSqlDatabase DatabaseFactory::mysqlInitializeDatabase(const QString& connection_
database.setHostName(qApp->settings()->value(GROUP(Database), SETTING(Database::MySQLHostname)).toString());
database.setPort(qApp->settings()->value(GROUP(Database), SETTING(Database::MySQLPort)).toInt());
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()) {
qCritical("MySQL database was NOT opened. Delivered error message: '%s'", qPrintable(database.lastError().text()));

View File

@ -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(":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(":type"), (int) feed_format);
q.bindValue(QSL(":type"), int(feed_format));
if (q.exec()) {
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(":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(":type"), feed_format);
q.bindValue(QSL(":id"), feed_id);

View File

@ -8,6 +8,7 @@
#include "definitions/definitions.h"
#include "miscellaneous/settingsproperties.h"
#include "miscellaneous/textfactory.h"
#include <QByteArray>
#include <QColor>
@ -397,30 +398,18 @@ class Settings : public QSettings {
virtual ~Settings();
// Type of used settings.
inline SettingsProperties::SettingsType type() const {
return m_initializationStatus;
}
SettingsProperties::SettingsType type() const;
// Getters/setters for settings values.
inline QVariant value(const QString& section, const QString& key, const QVariant& default_value = QVariant()) const {
return QSettings::value(QString(QSL("%1/%2")).arg(section, key), default_value);
}
QVariant password(const QString& section, const QString& key, const QVariant& default_value = QVariant()) const;
void setPassword(const QString& section, const QString& key, const QVariant& value);
inline void setValue(const QString& section, const QString& key, const QVariant& value) {
QSettings::setValue(QString(QSL("%1/%2")).arg(section, key), value);
}
QVariant value(const QString& section, const QString& key, const QVariant& default_value = QVariant()) const;
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) {
QSettings::setValue(key, value);
}
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));
}
bool contains(const QString& section, const QString& key) const;
void remove(const QString& section, const QString& key);
// Returns the path which contains the settings.
QString pathName() const;
@ -440,9 +429,42 @@ class Settings : public QSettings {
private:
// 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;
};
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

View File

@ -36,9 +36,9 @@ void BaseNetworkAccessManager::loadSettings() {
// Custom proxy is selected, set it up.
new_proxy.setType(selected_proxy_type);
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.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);
}
@ -47,7 +47,7 @@ void BaseNetworkAccessManager::loadSettings() {
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()),
(int) reply->error());
int(reply->error()));
reply->ignoreSslErrors(error);
}

View File

@ -4,6 +4,7 @@
#include "miscellaneous/application.h"
#include "miscellaneous/iconfactory.h"
#include "services/gmail/definitions.h"
#include "services/gmail/gmailserviceroot.h"
#include "services/gmail/network/gmailnetworkfactory.h"
@ -15,7 +16,21 @@ GmailFeed::GmailFeed(const QString& title, const QString& custom_id, const QIcon
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 {
return qobject_cast<GmailServiceRoot*>(getParentServiceRoot());