allow for skins to specify default app-wide font, some other subfixes to allow for proper functionality
This commit is contained in:
parent
6fcedef29b
commit
3cf0fe8763
12 changed files with 83 additions and 27 deletions
|
@ -370,9 +370,14 @@ void FeedsModel::onItemDataChanged(const QList<RootItem*>& items) {
|
||||||
void FeedsModel::setupFonts() {
|
void FeedsModel::setupFonts() {
|
||||||
QFont fon;
|
QFont fon;
|
||||||
|
|
||||||
|
if (qApp->settings()->value(GROUP(Feeds), SETTING(Feeds::CustomizeListFont)).toBool()) {
|
||||||
fon.fromString(qApp->settings()
|
fon.fromString(qApp->settings()
|
||||||
->value(GROUP(Feeds), Feeds::ListFont, Application::font("FeedsView").toString())
|
->value(GROUP(Feeds), Feeds::ListFont, Application::font("FeedsView").toString())
|
||||||
.toString());
|
.toString());
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
fon = Application::font("FeedsView");
|
||||||
|
}
|
||||||
|
|
||||||
m_normalFont = fon;
|
m_normalFont = fon;
|
||||||
|
|
||||||
|
|
|
@ -120,9 +120,14 @@ bool MessagesModel::setData(const QModelIndex& index, const QVariant& value, int
|
||||||
void MessagesModel::setupFonts() {
|
void MessagesModel::setupFonts() {
|
||||||
QFont fon;
|
QFont fon;
|
||||||
|
|
||||||
|
if (qApp->settings()->value(GROUP(Messages), SETTING(Messages::CustomizeListFont)).toBool()) {
|
||||||
fon.fromString(qApp->settings()
|
fon.fromString(qApp->settings()
|
||||||
->value(GROUP(Messages), Messages::ListFont, Application::font("MessagesView").toString())
|
->value(GROUP(Messages), Messages::ListFont, Application::font("MessagesView").toString())
|
||||||
.toString());
|
.toString());
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
fon = Application::font("MessagesView");
|
||||||
|
}
|
||||||
|
|
||||||
m_normalFont = fon;
|
m_normalFont = fon;
|
||||||
m_boldFont = m_normalFont;
|
m_boldFont = m_normalFont;
|
||||||
|
|
|
@ -55,7 +55,7 @@ FormMain::FormMain(QWidget* parent, Qt::WindowFlags f)
|
||||||
: QMainWindow(parent, f), m_ui(new Ui::FormMain), m_trayMenu(nullptr), m_statusBar(nullptr) {
|
: QMainWindow(parent, f), m_ui(new Ui::FormMain), m_trayMenu(nullptr), m_statusBar(nullptr) {
|
||||||
qDebugNN << LOGSEC_GUI
|
qDebugNN << LOGSEC_GUI
|
||||||
<< "Creating main application form in thread:" << QUOTE_W_SPACE_DOT(QThread::currentThreadId());
|
<< "Creating main application form in thread:" << QUOTE_W_SPACE_DOT(QThread::currentThreadId());
|
||||||
|
// setAttribute(Qt::WA_WindowPropagation, true);
|
||||||
m_ui->setupUi(this);
|
m_ui->setupUi(this);
|
||||||
qApp->setMainForm(this);
|
qApp->setMainForm(this);
|
||||||
|
|
||||||
|
|
|
@ -7,12 +7,13 @@
|
||||||
|
|
||||||
#include <QCheckBox>
|
#include <QCheckBox>
|
||||||
#include <QDialogButtonBox>
|
#include <QDialogButtonBox>
|
||||||
#include <QDialogButtonBox>
|
|
||||||
#include <QPushButton>
|
#include <QPushButton>
|
||||||
#include <QStyle>
|
#include <QStyle>
|
||||||
#include <QtGlobal>
|
#include <QtGlobal>
|
||||||
|
|
||||||
MsgBox::MsgBox(QWidget* parent) : QMessageBox(parent) {}
|
MsgBox::MsgBox(QWidget* parent) : QMessageBox(parent) {
|
||||||
|
// setAttribute(Qt::WA_WindowPropagation, true);
|
||||||
|
}
|
||||||
|
|
||||||
void MsgBox::setIcon(QMessageBox::Icon icon) {
|
void MsgBox::setIcon(QMessageBox::Icon icon) {
|
||||||
// Determine correct status icon size.
|
// Determine correct status icon size.
|
||||||
|
|
|
@ -24,9 +24,11 @@ LabelsMenu::LabelsMenu(const QList<Message>& messages, const QList<Label*>& labe
|
||||||
else {
|
else {
|
||||||
QSqlDatabase db = qApp->database()->driver()->connection(QSL("LabelsMenu"));
|
QSqlDatabase db = qApp->database()->driver()->connection(QSL("LabelsMenu"));
|
||||||
|
|
||||||
for (Label* label: boolinq::from(labels).orderBy([](const Label* label) {
|
for (Label* label : boolinq::from(labels)
|
||||||
|
.orderBy([](const Label* label) {
|
||||||
return label->title().toLower();
|
return label->title().toLower();
|
||||||
}).toStdList()) {
|
})
|
||||||
|
.toStdList()) {
|
||||||
|
|
||||||
auto count = boolinq::from(messages).count([&db, label](const Message& msg) {
|
auto count = boolinq::from(messages).count([&db, label](const Message& msg) {
|
||||||
return DatabaseQueries::isLabelAssignedToMessage(db, label, msg);
|
return DatabaseQueries::isLabelAssignedToMessage(db, label, msg);
|
||||||
|
|
|
@ -58,6 +58,8 @@ SettingsFeedsMessages::SettingsFeedsMessages(Settings* settings, QWidget* parent
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
|
connect(m_ui->m_gbFeedListFont, &QGroupBox::toggled, this, &SettingsFeedsMessages::dirtifySettings);
|
||||||
|
connect(m_ui->m_gbArticleListFont, &QGroupBox::toggled, this, &SettingsFeedsMessages::dirtifySettings);
|
||||||
connect(m_ui->m_cbListsRestrictedShortcuts, &QCheckBox::toggled, this, &SettingsFeedsMessages::dirtifySettings);
|
connect(m_ui->m_cbListsRestrictedShortcuts, &QCheckBox::toggled, this, &SettingsFeedsMessages::dirtifySettings);
|
||||||
connect(m_ui->m_cmbIgnoreContentsChanges, &QCheckBox::toggled, this, &SettingsFeedsMessages::dirtifySettings);
|
connect(m_ui->m_cmbIgnoreContentsChanges, &QCheckBox::toggled, this, &SettingsFeedsMessages::dirtifySettings);
|
||||||
connect(m_ui->m_cbHideCountsIfNoUnread, &QCheckBox::toggled, this, &SettingsFeedsMessages::dirtifySettings);
|
connect(m_ui->m_cbHideCountsIfNoUnread, &QCheckBox::toggled, this, &SettingsFeedsMessages::dirtifySettings);
|
||||||
|
@ -283,6 +285,8 @@ void SettingsFeedsMessages::loadSettings() {
|
||||||
->value(GROUP(Messages), Messages::ListFont, Application::font("MessagesView").toString())
|
->value(GROUP(Messages), Messages::ListFont, Application::font("MessagesView").toString())
|
||||||
.toString());
|
.toString());
|
||||||
m_ui->m_lblMessageListFont->setFont(fon2);
|
m_ui->m_lblMessageListFont->setFont(fon2);
|
||||||
|
m_ui->m_gbArticleListFont
|
||||||
|
->setChecked(settings()->value(GROUP(Messages), SETTING(Messages::CustomizeListFont)).toBool());
|
||||||
|
|
||||||
QFont fon3;
|
QFont fon3;
|
||||||
|
|
||||||
|
@ -290,6 +294,7 @@ void SettingsFeedsMessages::loadSettings() {
|
||||||
fon3
|
fon3
|
||||||
.fromString(settings()->value(GROUP(Feeds), Feeds::ListFont, Application::font("FeedsView").toString()).toString());
|
.fromString(settings()->value(GROUP(Feeds), Feeds::ListFont, Application::font("FeedsView").toString()).toString());
|
||||||
m_ui->m_lblFeedListFont->setFont(fon3);
|
m_ui->m_lblFeedListFont->setFont(fon3);
|
||||||
|
m_ui->m_gbFeedListFont->setChecked(settings()->value(GROUP(Feeds), SETTING(Feeds::CustomizeListFont)).toBool());
|
||||||
|
|
||||||
onEndLoadSettings();
|
onEndLoadSettings();
|
||||||
}
|
}
|
||||||
|
@ -345,6 +350,9 @@ void SettingsFeedsMessages::saveSettings() {
|
||||||
settings()->setValue(GROUP(Messages), Messages::ListFont, m_ui->m_lblMessageListFont->font().toString());
|
settings()->setValue(GROUP(Messages), Messages::ListFont, m_ui->m_lblMessageListFont->font().toString());
|
||||||
settings()->setValue(GROUP(Feeds), Feeds::ListFont, m_ui->m_lblFeedListFont->font().toString());
|
settings()->setValue(GROUP(Feeds), Feeds::ListFont, m_ui->m_lblFeedListFont->font().toString());
|
||||||
|
|
||||||
|
settings()->setValue(GROUP(Messages), Messages::CustomizeListFont, m_ui->m_gbArticleListFont->isChecked());
|
||||||
|
settings()->setValue(GROUP(Feeds), Feeds::CustomizeListFont, m_ui->m_gbFeedListFont->isChecked());
|
||||||
|
|
||||||
qApp->mainForm()->tabWidget()->feedMessageViewer()->loadMessageViewerFonts();
|
qApp->mainForm()->tabWidget()->feedMessageViewer()->loadMessageViewerFonts();
|
||||||
|
|
||||||
qApp->feedReader()->updateAutoUpdateStatus();
|
qApp->feedReader()->updateAutoUpdateStatus();
|
||||||
|
|
|
@ -6,7 +6,7 @@
|
||||||
<rect>
|
<rect>
|
||||||
<x>0</x>
|
<x>0</x>
|
||||||
<y>0</y>
|
<y>0</y>
|
||||||
<width>489</width>
|
<width>495</width>
|
||||||
<height>531</height>
|
<height>531</height>
|
||||||
</rect>
|
</rect>
|
||||||
</property>
|
</property>
|
||||||
|
@ -154,7 +154,7 @@
|
||||||
<item row="1" column="0" colspan="2">
|
<item row="1" column="0" colspan="2">
|
||||||
<layout class="QHBoxLayout" name="horizontalLayout_2">
|
<layout class="QHBoxLayout" name="horizontalLayout_2">
|
||||||
<item>
|
<item>
|
||||||
<widget class="QGroupBox" name="groupBox_6">
|
<widget class="QGroupBox" name="m_gbFeedListFont">
|
||||||
<property name="sizePolicy">
|
<property name="sizePolicy">
|
||||||
<sizepolicy hsizetype="Preferred" vsizetype="Maximum">
|
<sizepolicy hsizetype="Preferred" vsizetype="Maximum">
|
||||||
<horstretch>0</horstretch>
|
<horstretch>0</horstretch>
|
||||||
|
@ -164,6 +164,12 @@
|
||||||
<property name="title">
|
<property name="title">
|
||||||
<string>Feed list font</string>
|
<string>Feed list font</string>
|
||||||
</property>
|
</property>
|
||||||
|
<property name="checkable">
|
||||||
|
<bool>true</bool>
|
||||||
|
</property>
|
||||||
|
<property name="checked">
|
||||||
|
<bool>false</bool>
|
||||||
|
</property>
|
||||||
<layout class="QFormLayout" name="formLayout_3">
|
<layout class="QFormLayout" name="formLayout_3">
|
||||||
<item row="0" column="0">
|
<item row="0" column="0">
|
||||||
<widget class="QLabel" name="m_lblFeedListFont">
|
<widget class="QLabel" name="m_lblFeedListFont">
|
||||||
|
@ -550,10 +556,16 @@
|
||||||
</widget>
|
</widget>
|
||||||
</item>
|
</item>
|
||||||
<item row="9" column="0">
|
<item row="9" column="0">
|
||||||
<widget class="QGroupBox" name="groupBox_5">
|
<widget class="QGroupBox" name="m_gbArticleListFont">
|
||||||
<property name="title">
|
<property name="title">
|
||||||
<string>Article list font</string>
|
<string>Article list font</string>
|
||||||
</property>
|
</property>
|
||||||
|
<property name="checkable">
|
||||||
|
<bool>true</bool>
|
||||||
|
</property>
|
||||||
|
<property name="checked">
|
||||||
|
<bool>false</bool>
|
||||||
|
</property>
|
||||||
<layout class="QHBoxLayout" name="horizontalLayout_17">
|
<layout class="QHBoxLayout" name="horizontalLayout_17">
|
||||||
<item>
|
<item>
|
||||||
<widget class="QLabel" name="m_lblMessageListFont">
|
<widget class="QLabel" name="m_lblMessageListFont">
|
||||||
|
|
|
@ -290,8 +290,6 @@ void TextBrowserViewer::loadMessages(const QList<Message>& messages, RootItem* r
|
||||||
|
|
||||||
auto html_messages = prepareHtmlForMessage(messages, root);
|
auto html_messages = prepareHtmlForMessage(messages, root);
|
||||||
|
|
||||||
html_messages.m_html = IOFactory::readFile("aa.html");
|
|
||||||
|
|
||||||
setHtml(html_messages.m_html, html_messages.m_baseUrl);
|
setHtml(html_messages.m_html, html_messages.m_baseUrl);
|
||||||
emit loadingFinished(true);
|
emit loadingFinished(true);
|
||||||
}
|
}
|
||||||
|
|
|
@ -113,6 +113,9 @@ DVALUE(bool) Feeds::AutoExpandOnSelectionDef = false;
|
||||||
DKEY Feeds::OnlyBasicShortcutsInLists = "only_basic_shortcuts_in_lists";
|
DKEY Feeds::OnlyBasicShortcutsInLists = "only_basic_shortcuts_in_lists";
|
||||||
DVALUE(bool) Feeds::OnlyBasicShortcutsInListsDef = false;
|
DVALUE(bool) Feeds::OnlyBasicShortcutsInListsDef = false;
|
||||||
|
|
||||||
|
DKEY Feeds::CustomizeListFont = "customize_list_font";
|
||||||
|
DVALUE(bool) Feeds::CustomizeListFontDef = false;
|
||||||
|
|
||||||
DKEY Feeds::ListFont = "list_font";
|
DKEY Feeds::ListFont = "list_font";
|
||||||
|
|
||||||
// Messages.
|
// Messages.
|
||||||
|
@ -181,6 +184,9 @@ DVALUE(bool) Messages::ShowOnlyUnreadMessagesDef = false;
|
||||||
DKEY Messages::PreviewerFontStandard = "previewer_font_standard";
|
DKEY Messages::PreviewerFontStandard = "previewer_font_standard";
|
||||||
NON_CONST_DVALUE(QString) Messages::PreviewerFontStandardDef = QString();
|
NON_CONST_DVALUE(QString) Messages::PreviewerFontStandardDef = QString();
|
||||||
|
|
||||||
|
DKEY Messages::CustomizeListFont = "customize_list_font";
|
||||||
|
DVALUE(bool) Messages::CustomizeListFontDef = false;
|
||||||
|
|
||||||
DKEY Messages::ListFont = "list_font";
|
DKEY Messages::ListFont = "list_font";
|
||||||
|
|
||||||
// Custom skin colors.
|
// Custom skin colors.
|
||||||
|
|
|
@ -110,6 +110,9 @@ namespace Feeds {
|
||||||
KEY OnlyBasicShortcutsInLists;
|
KEY OnlyBasicShortcutsInLists;
|
||||||
VALUE(bool) OnlyBasicShortcutsInListsDef;
|
VALUE(bool) OnlyBasicShortcutsInListsDef;
|
||||||
|
|
||||||
|
KEY CustomizeListFont;
|
||||||
|
VALUE(bool) CustomizeListFontDef;
|
||||||
|
|
||||||
KEY ListFont;
|
KEY ListFont;
|
||||||
} // namespace Feeds
|
} // namespace Feeds
|
||||||
|
|
||||||
|
@ -180,6 +183,9 @@ namespace Messages {
|
||||||
KEY PreviewerFontStandard;
|
KEY PreviewerFontStandard;
|
||||||
NON_CONST_VALUE(QString) PreviewerFontStandardDef;
|
NON_CONST_VALUE(QString) PreviewerFontStandardDef;
|
||||||
|
|
||||||
|
KEY CustomizeListFont;
|
||||||
|
VALUE(bool) CustomizeListFontDef;
|
||||||
|
|
||||||
KEY ListFont;
|
KEY ListFont;
|
||||||
} // namespace Messages
|
} // namespace Messages
|
||||||
|
|
||||||
|
|
|
@ -77,6 +77,11 @@ void SkinFactory::loadSkinFromData(const Skin& skin) {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (skin.m_defaultFont != QApplication::font()) {
|
||||||
|
QApplication::setFont(skin.m_defaultFont);
|
||||||
|
qDebugNN << "Activating custom application default font" << QUOTE_W_SPACE_DOT(skin.m_defaultFont.toString());
|
||||||
|
}
|
||||||
|
|
||||||
if (env_forced_style.isEmpty() && cli_forced_style.isEmpty()) {
|
if (env_forced_style.isEmpty() && cli_forced_style.isEmpty()) {
|
||||||
m_styleIsFrozen = false;
|
m_styleIsFrozen = false;
|
||||||
|
|
||||||
|
@ -277,6 +282,12 @@ Skin SkinFactory::skinInfo(const QString& skin_name, bool* ok) const {
|
||||||
skin.m_description = skin_node.namedItem(QSL("description")).toElement().text();
|
skin.m_description = skin_node.namedItem(QSL("description")).toElement().text();
|
||||||
skin.m_baseName = skin_name;
|
skin.m_baseName = skin_name;
|
||||||
|
|
||||||
|
if (!skin_node.namedItem(QSL("default-font")).isNull()) {
|
||||||
|
skin.m_defaultFont =
|
||||||
|
QFont(skin_node.namedItem(QSL("default-font")).namedItem(QSL("family")).toElement().text(),
|
||||||
|
skin_node.namedItem(QSL("default-font")).namedItem(QSL("size")).toElement().text().toInt());
|
||||||
|
}
|
||||||
|
|
||||||
// Obtain color palette.
|
// Obtain color palette.
|
||||||
QHash<SkinEnums::PaletteColors, QColor> palette;
|
QHash<SkinEnums::PaletteColors, QColor> palette;
|
||||||
QDomNodeList colors_of_palette = skin_node.namedItem(QSL("palette")).toElement().elementsByTagName(QSL("color"));
|
QDomNodeList colors_of_palette = skin_node.namedItem(QSL("palette")).toElement().elementsByTagName(QSL("color"));
|
||||||
|
|
|
@ -8,6 +8,7 @@
|
||||||
#include "core/message.h"
|
#include "core/message.h"
|
||||||
|
|
||||||
#include <QColor>
|
#include <QColor>
|
||||||
|
#include <QFont>
|
||||||
#include <QHash>
|
#include <QHash>
|
||||||
#include <QMetaType>
|
#include <QMetaType>
|
||||||
#include <QPalette>
|
#include <QPalette>
|
||||||
|
@ -63,6 +64,7 @@ struct RSSGUARD_DLLSPEC Skin {
|
||||||
QString m_enclosureMarkup;
|
QString m_enclosureMarkup;
|
||||||
QHash<SkinEnums::PaletteColors, QColor> m_colorPalette;
|
QHash<SkinEnums::PaletteColors, QColor> m_colorPalette;
|
||||||
QStringList m_forcedStyles;
|
QStringList m_forcedStyles;
|
||||||
|
QFont m_defaultFont;
|
||||||
bool m_forcedSkinColors;
|
bool m_forcedSkinColors;
|
||||||
QMultiHash<QPalette::ColorGroup, QPair<QPalette::ColorRole, QPair<QColor, Qt::BrushStyle>>> m_stylePalette;
|
QMultiHash<QPalette::ColorGroup, QPair<QPalette::ColorRole, QPair<QColor, Qt::BrushStyle>>> m_stylePalette;
|
||||||
|
|
||||||
|
|
Loading…
Add table
Reference in a new issue