Simplify custom font settings

Instead of having 3 separate config keys, use the KConfig QFont
de/serilaization.
This commit is contained in:
Ahmad Samir 2022-05-05 18:32:34 +02:00
parent 573abcaf25
commit 802ecc92d2
7 changed files with 16 additions and 115 deletions

View file

@ -12,21 +12,8 @@
<label>Use system font</label> <label>Use system font</label>
<default>true</default> <default>true</default>
</entry> </entry>
<entry name="FontFamily" type="String"> <entry name="ViewFont" type="Font">
<label>Font family</label> <default code="true">QFont()</default>
<default code="true">QFontDatabase::systemFont(QFontDatabase::GeneralFont).family()</default>
</entry>
<entry name="FontSize" type="Double">
<label>Font size</label>
<default code="true">QFontDatabase::systemFont(QFontDatabase::GeneralFont).pointSizeF()</default>
</entry>
<entry name="ItalicFont" type="Bool">
<label>Italic</label>
<default>false</default>
</entry>
<entry name="FontWeight" type="Int">
<label>Font weight</label>
<default>0</default>
</entry> </entry>
<entry name="IconSize" type="Int"> <entry name="IconSize" type="Int">
<label>Icon size</label> <label>Icon size</label>

View file

@ -8,26 +8,13 @@
<include>QFontDatabase</include> <include>QFontDatabase</include>
<kcfgfile name="dolphinrc"/> <kcfgfile name="dolphinrc"/>
<group name="DetailsMode"> <group name="DetailsMode">
<entry name="FontFamily" type="String"> <entry name="ViewFont" type="Font">
<label>Font family</label> <default code="true">QFont()</default>
<default code="true">QFontDatabase::systemFont(QFontDatabase::GeneralFont).family()</default>
</entry> </entry>
<entry name="UseSystemFont" type="Bool"> <entry name="UseSystemFont" type="Bool">
<label>Use system font</label> <label>Use system font</label>
<default>true</default> <default>true</default>
</entry> </entry>
<entry name="FontSize" type="Double">
<label>Font size</label>
<default code="true">QFontDatabase::systemFont(QFontDatabase::GeneralFont).pointSizeF()</default>
</entry>
<entry name="ItalicFont" type="Bool">
<label>Italic</label>
<default>false</default>
</entry>
<entry name="FontWeight" type="Int">
<label>Font weight</label>
<default>0</default>
</entry>
<entry name="IconSize" type="Int"> <entry name="IconSize" type="Int">
<label>Icon size</label> <label>Icon size</label>
<default code="true">KIconLoader::SizeSmall</default> <default code="true">KIconLoader::SizeSmall</default>

View file

@ -12,21 +12,8 @@
<label>Use system font</label> <label>Use system font</label>
<default>true</default> <default>true</default>
</entry> </entry>
<entry name="FontFamily" type="String"> <entry name="ViewFont" type="Font">
<label>Font family</label> <default code="true">QFont()</default>
<default code="true">QFontDatabase::systemFont(QFontDatabase::GeneralFont).family()</default>
</entry>
<entry name="FontSize" type="Double">
<label>Font size</label>
<default code="true">QFontDatabase::systemFont(QFontDatabase::GeneralFont).pointSizeF()</default>
</entry>
<entry name="ItalicFont" type="Bool">
<label>Italic</label>
<default>false</default>
</entry>
<entry name="FontWeight" type="Int">
<label>Font weight</label>
<default>0</default>
</entry> </entry>
<entry name="IconSize" type="Int"> <entry name="IconSize" type="Int">
<label>Icon size</label> <label>Icon size</label>

View file

@ -86,59 +86,17 @@ bool ViewModeSettings::useSystemFont() const
}, m_viewModeSettingsVariant); }, m_viewModeSettingsVariant);
} }
void ViewModeSettings::setFontFamily(const QString &fontFamily) void ViewModeSettings::setViewFont(const QFont &font)
{ {
std::visit([&fontFamily](auto &&v) { std::visit([&font](auto &&v) {
v->setFontFamily(fontFamily); v->setViewFont(font);
}, m_viewModeSettingsVariant); }, m_viewModeSettingsVariant);
} }
QString ViewModeSettings::fontFamily() const QFont ViewModeSettings::viewFont() const
{ {
return std::visit([](auto &&v) { return std::visit([](auto &&v) {
return v->fontFamily(); return v->viewFont();
}, m_viewModeSettingsVariant);
}
void ViewModeSettings::setFontSize(qreal fontSize)
{
std::visit([fontSize](auto &&v) {
v->setFontSize(fontSize);
}, m_viewModeSettingsVariant);
}
qreal ViewModeSettings::fontSize() const
{
return std::visit([](auto &&v) {
return v->fontSize();
}, m_viewModeSettingsVariant);
}
void ViewModeSettings::setItalicFont(bool italic)
{
std::visit([italic](auto &&v) {
v->setItalicFont(italic);
}, m_viewModeSettingsVariant);
}
bool ViewModeSettings::italicFont() const
{
return std::visit([](auto &&v) {
return v->italicFont();
}, m_viewModeSettingsVariant);
}
void ViewModeSettings::setFontWeight(int fontWeight)
{
std::visit([fontWeight](auto &&v) {
v->setFontWeight(fontWeight);
}, m_viewModeSettingsVariant);
}
int ViewModeSettings::fontWeight() const
{
return std::visit([](auto &&v) {
return v->fontWeight();
}, m_viewModeSettingsVariant); }, m_viewModeSettingsVariant);
} }

View file

@ -39,17 +39,8 @@ public:
void setUseSystemFont(bool useSystemFont); void setUseSystemFont(bool useSystemFont);
bool useSystemFont() const; bool useSystemFont() const;
void setFontFamily(const QString &fontFamily); void setViewFont(const QFont &font);
QString fontFamily() const; QFont viewFont() const;
void setFontSize(qreal fontSize);
qreal fontSize() const;
void setItalicFont(bool italic);
bool italicFont() const;
void setFontWeight(int fontWeight);
int fontWeight() const;
void useDefaults(bool useDefaults); void useDefaults(bool useDefaults);

View file

@ -215,10 +215,7 @@ void ViewSettingsTab::applySettings()
settings.setPreviewSize(previewSize); settings.setPreviewSize(previewSize);
settings.setUseSystemFont(useSystemFont); settings.setUseSystemFont(useSystemFont);
settings.setFontFamily(font.family()); settings.setViewFont(font);
settings.setFontSize(font.pointSizeF());
settings.setItalicFont(font.italic());
settings.setFontWeight(font.weight());
settings.save(); settings.save();
} }
@ -272,10 +269,7 @@ void ViewSettingsTab::loadSettings()
? DolphinFontRequester::SystemFont ? DolphinFontRequester::SystemFont
: DolphinFontRequester::CustomFont); : DolphinFontRequester::CustomFont);
QFont font(settings.fontFamily(), qRound(settings.fontSize())); QFont font(settings.viewFont());
font.setItalic(settings.italicFont());
font.setWeight(settings.fontWeight());
font.setPointSizeF(settings.fontSize());
m_fontRequester->setCustomFont(font); m_fontRequester->setCustomFont(font);
} }

View file

@ -132,10 +132,7 @@ void DolphinItemListView::updateFont()
if (settings.useSystemFont()) { if (settings.useSystemFont()) {
KItemListView::updateFont(); KItemListView::updateFont();
} else { } else {
QFont font(settings.fontFamily(), qRound(settings.fontSize())); QFont font(settings.viewFont());
font.setItalic(settings.italicFont());
font.setWeight(settings.fontWeight());
font.setPointSizeF(settings.fontSize());
KItemListStyleOption option = styleOption(); KItemListStyleOption option = styleOption();
option.font = font; option.font = font;