<table><tr><td style="">ahmadsamir updated this revision to Diff 78519.<br />ahmadsamir retitled this revision from "[Fonts KCM] Port KFontDialog/KFontChooser to QFontDialog" to "[Fonts KCM] Use KFontChooserDialog instead of QFontDialog".<br />ahmadsamir edited the summary of this revision. <a href="https://phabricator.kde.org/transactions/detail/PHID-XACT-DREV-ztl26w2rt2el7e6/">(Show Details)</a><br />ahmadsamir edited the test plan for this revision. <a href="https://phabricator.kde.org/transactions/detail/PHID-XACT-DREV-xskc6n7uh5637jg/">(Show Details)</a><br />ahmadsamir edited reviewers, added: cfeck, bport; removed: ervin.<br />ahmadsamir removed subscribers: cfeck, bport.<br />ahmadsamir added a comment.
</td><a style="text-decoration: none; padding: 4px 8px; margin: 0 8px 8px; float: right; color: #464C5C; font-weight: bold; border-radius: 3px; background-color: #F7F7F9; background-image: linear-gradient(to bottom,#fff,#f1f0f1); display: inline-block; border: 1px solid rgba(71,87,120,.2);" href="https://phabricator.kde.org/D27808">View Revision</a></tr></table><br /><div><div><p>Use KFontChooserDialog</p></div></div><br /><div><strong>CHANGES TO REVISION SUMMARY</strong><div><div style="white-space: pre-wrap; color: #74777D;"><span style="padding: 0 2px; color: #333333; background: rgba(251, 175, 175, .7);">QFontDialog doesn't have the capability that KFontDialog had,</span><span style="padding: 0 2px; color: #333333; background: rgba(151, 234, 151, .6);">Now all font selection dialogs use KFontChooserDialog (from KWidgetAddons),<br />
bump KF5 minimum required version to 5.69.0.<br />
<br />
KFontChooserDialog has some pros over QFontDialog:<br />
 - If the font to pre-select in KFontChooser doesn't have the styleName<br />
   property set, the dialog will try and select the correct style (usually<br />
   that works); this is useful since we want to save/load fonts with<br />
   "Regular"-like styles without setting that property so that setBold(true)<br />
   can work properly<br />
- Fractional font sizes, e.g.</span> <span style="padding: 0 2px; color: #333333; background: rgba(251, 175, 175, .7);">where with</span><span style="padding: 0 2px; color: #333333; background: rgba(151, 234, 151, .6);">10.5 pt (QFontDialog only supports int)</span><br />
<span style="padding: 0 2px; color: #333333; background: rgba(251, 175, 175, .7);">the latter when using adjustAllFonts() you could change only one of</span><span style="padding: 0 2px; color: #333333; background: rgba(151, 234, 151, .6);">- KFontChooserDialog will discard "Regular"-like styleName prop. after</span><br />
<span style="padding: 0 2px; color: #333333; background: rgba(151, 234, 151, .6);">  </span>the <span style="padding: 0 2px; color: #333333; background: rgba(251, 175, 175, .7);">font family, the font style, the</span><span style="padding: 0 2px; color: #333333; background: rgba(151, 234, 151, .6);">user has selected a</span> font<span style="padding: 0 2px; color: #333333; background: rgba(251, 175, 175, .7);"> size, e.g.</span><span style="padding: 0 2px; color: #333333; background: rgba(151, 234, 151, .6);">,</span> <span style="padding: 0 2px; color: #333333; background: rgba(251, 175, 175, .7);">you could change</span><span style="padding: 0 2px; color: #333333; background: rgba(151, 234, 151, .6);">which means less workarounds in the fonts</span><br />
<span style="padding: 0 2px; color: #333333; background: rgba(251, 175, 175, .7);">the size and keep each respective font families for "General" and "Toolbar" as is</span><span style="padding: 0 2px; color: #333333; background: rgba(151, 234, 151, .6);">  KCM code</span>.<br />
<br />
<span style="padding: 0 2px; color: #333333; background: rgba(251, 175, 175, .7);">When using ajustAllFonts(),</span><span style="padding: 0 2px; color: #333333; background: rgba(151, 234, 151, .6);">Do not check for immutability:<br />
</span> <span style="padding: 0 2px; color: #333333; background: rgba(251, 175, 175, .7);">try to</span><span style="padding: 0 2px; color: #333333; background: rgba(151, 234, 151, .6);">- The</span> set<span style="padding: 0 2px; color: #333333; background: rgba(251, 175, 175, .7);"> the fixed width/Monospace font</span><span style="padding: 0 2px; color: #333333; background: rgba(151, 234, 151, .6);">ters generated by KConfig already do that</span><br />
<span style="padding: 0 2px; color: #333333; background: rgba(251, 175, 175, .7);">from the font family the user has selected,</span> <span style="padding: 0 2px; color: #333333; background: rgba(251, 175, 175, .7);">otherwise fallback to whatever</span><span style="padding: 0 2px; color: #333333; background: rgba(151, 234, 151, .6);">- The QML FontWidget check for immutability and disable the relevant</span><br />
<span style="padding: 0 2px; color: #333333; background: rgba(251, 175, 175, .7);">QFontDatabase::systemFont(QFontDatabase::FixedFont) gets.</span><span style="padding: 0 2px; color: #333333; background: rgba(151, 234, 151, .6);">   font widget</span><br />
<br />
<span style="padding: 0 2px; color: #333333; background: rgba(251, 175, 175, .7);">Depends on D27785</span><span style="padding: 0 2px; color: #333333; background: rgba(151, 234, 151, .6);">adjustAllFonts() doesn't take any args, change the qml code accrodingly.</span></div></div></div><br /><div><strong>CHANGES TO TEST PLAN</strong><div><div style="white-space: pre-wrap; color: #74777D;"><span style="padding: 0 2px; color: #333333; background: rgba(251, 175, 175, .7);">Changing a font still works.<br />
Due to the change to clear font styleName property when saving via<br />
KConfig (D27735), if in kdegloblas you removed the ",Regular|Normal|Book|Roman"<br />
from the end of the *font*=  entries, openin the font selection dialog<br />
in the KCM, the very first style is selected, not "Regular" and co. as<br />
it should be. This will be addressed in an upcoming diff</span><span style="padding: 0 2px; color: #333333; background: rgba(151, 234, 151, .6);">The fonts KCM still works</span>.</div></div></div><br /><div><strong>REPOSITORY</strong><div><div>R119 Plasma Desktop</div></div></div><br /><div><strong>CHANGES SINCE LAST UPDATE</strong><div><a href="https://phabricator.kde.org/D27808?vs=76867&id=78519">https://phabricator.kde.org/D27808?vs=76867&id=78519</a></div></div><br /><div><strong>BRANCH</strong><div><div>l-kfontchooserdialog (branched from master)</div></div></div><br /><div><strong>REVISION DETAIL</strong><div><a href="https://phabricator.kde.org/D27808">https://phabricator.kde.org/D27808</a></div></div><br /><div><strong>AFFECTED FILES</strong><div><div>CMakeLists.txt<br />
kcms/fonts/CMakeLists.txt<br />
kcms/fonts/fonts.cpp<br />
kcms/fonts/fonts.h<br />
kcms/fonts/package/contents/ui/FontWidget.qml<br />
kcms/fonts/package/contents/ui/main.qml</div></div></div><br /><div><strong>To: </strong>ahmadsamir, Plasma, davidedmundson, broulik, meven, cfeck, bport, ervin<br /><strong>Cc: </strong>plasma-devel, Orage, LeGast00n, The-Feren-OS-Dev, cblack, jraleigh, zachus, fbampaloukas, GB_2, ragreen, ZrenBot, ngraham, himcesjf, lesliezhai, ali-mohamed, jensreuterberg, abetts, sebas, apol, ahiemstra, mart<br /></div>