diff options
author | Loren Burkholder <computersemiexpert@outlook.com> | 2023-07-23 20:44:28 -0400 |
---|---|---|
committer | Loren Burkholder <computersemiexpert@outlook.com> | 2023-08-11 21:42:55 -0400 |
commit | a7de77333f4493a58aa5058fdd44fb7eb8173542 (patch) | |
tree | 0984a3c2b84bfda0153eb64f42f60f33ede78030 /src | |
parent | Merge pull request #1533 from Nheko-Reborn/compileErrorFixes (diff) | |
download | nheko-a7de77333f4493a58aa5058fdd44fb7eb8173542.tar.xz |
Add explicit default font option
Diffstat (limited to 'src')
-rw-r--r-- | src/UserSettingsPage.cpp | 39 |
1 files changed, 29 insertions, 10 deletions
diff --git a/src/UserSettingsPage.cpp b/src/UserSettingsPage.cpp index 7c30f877..5caa4838 100644 --- a/src/UserSettingsPage.cpp +++ b/src/UserSettingsPage.cpp @@ -1221,10 +1221,18 @@ UserSettingsModel::data(const QModelIndex &index, int role) const return i->mobileMode(); case FontSize: return i->fontSize(); - case Font: - return data(index, Values).toStringList().indexOf(i->font()); - case EmojiFont: - return data(index, Values).toStringList().indexOf(i->emojiFont()); + case Font: { + if (i->font().isEmpty()) + return 0; + else + return data(index, Values).toStringList().indexOf(i->font()); + } + case EmojiFont: { + if (i->emojiFont().isEmpty()) + return 0; + else + return data(index, Values).toStringList().indexOf(i->emojiFont()); + } case Ringtone: { auto v = i->ringtone(); if (v == QStringView(u"Mute")) @@ -1612,10 +1620,16 @@ UserSettingsModel::data(const QModelIndex &index, int role) const return vecToList(CallDevices::instance().frameRates( i->camera().toStdString(), i->cameraResolution().toStdString())); - case Font: - return QFontDatabase::families(); - case EmojiFont: - return QFontDatabase::families(QFontDatabase::WritingSystem::Symbol); + case Font: { + auto fonts = QFontDatabase::families(); + fonts.prepend(tr("System font")); + return fonts; + } + case EmojiFont: { + auto fonts = QFontDatabase::families(QFontDatabase::WritingSystem::Symbol); + fonts.prepend(tr("System emoji font")); + return fonts; + } case Ringtone: { QStringList l{ QStringLiteral("Mute"), @@ -1908,15 +1922,20 @@ UserSettingsModel::setData(const QModelIndex &index, const QVariant &value, int } case Font: { if (value.userType() == QMetaType::Int) { - i->setFontFamily(QFontDatabase::families().at(value.toInt())); + // Special handling to grab our injected system font option + auto v = value.toInt(); + i->setFontFamily(v == 0 ? QString{} : QFontDatabase::families().at(v - 1)); return true; } else return false; } case EmojiFont: { if (value.userType() == QMetaType::Int) { + // More special handling for the default font option + auto v = value.toInt(); i->setEmojiFontFamily( - QFontDatabase::families(QFontDatabase::WritingSystem::Symbol).at(value.toInt())); + v == 0 ? QStringLiteral("emoji") + : QFontDatabase::families(QFontDatabase::WritingSystem::Symbol).at(v - 1)); return true; } else return false; |