From d633f38f6ffd57c5d03aa0eaf37dc0f6d5c42fad Mon Sep 17 00:00:00 2001 From: Mavridis Philippe Date: Wed, 8 Jun 2022 14:46:24 +0300 Subject: [PATCH] TDEFontChooser: backport setFamilyList(...) from KOffice Signed-off-by: Mavridis Philippe --- tdeui/tdefontdialog.cpp | 30 +++++++++++++++++++++++++++++- tdeui/tdefontdialog.h | 11 ++++++++++- 2 files changed, 39 insertions(+), 2 deletions(-) diff --git a/tdeui/tdefontdialog.cpp b/tdeui/tdefontdialog.cpp index 0da56a93b..d29ea60be 100644 --- a/tdeui/tdefontdialog.cpp +++ b/tdeui/tdefontdialog.cpp @@ -473,8 +473,18 @@ TQString TDEFontChooser::style_name(const TQString &style) void TDEFontChooser::family_chosen_slot(const TQString& family) { + TQString currentFamily; + if (family.isEmpty()) + { + currentFamily = familyListBox->currentText(); + } + else + { + currentFamily = family; + } + TQFontDatabase dbase; - TQStringList styles = dbase.styles(family); + TQStringList styles = dbase.styles(currentFamily); styleListBox->clear(); currentStyles.clear(); for ( TQStringList::Iterator it = styles.begin(); it != styles.end(); ++it ) { @@ -492,12 +502,21 @@ void TDEFontChooser::family_chosen_slot(const TQString& family) styleListBox->blockSignals(true); TQListBoxItem *item = styleListBox->findItem(selectedStyle); if (item) + { styleListBox->setSelected(styleListBox->findItem(selectedStyle), true); + } else + { styleListBox->setSelected(0, true); + } styleListBox->blockSignals(false); style_chosen_slot(TQString::null); + + if (!family.isEmpty() ) + { + selectedFamily = family; + } } void TDEFontChooser::size_chosen_slot(const TQString& size){ @@ -685,6 +704,15 @@ void TDEFontChooser::getFontList( TQStringList &list, uint fontListCriteria) list = lstSys; } +void TDEFontChooser::setFamilyList( TQStringList list ) +{ + familyListBox->blockSignals(true); + familyListBox->clear(); + familyListBox->insertStringList(list); + setFont( TDEGlobalSettings::generalFont(), usingFixed ); + familyListBox->blockSignals(false); +} + void TDEFontChooser::addFont( TQStringList &list, const char *xfont ) { const char *ptr = strchr( xfont, '-' ); diff --git a/tdeui/tdefontdialog.h b/tdeui/tdefontdialog.h index 66d202700..de966d47d 100644 --- a/tdeui/tdefontdialog.h +++ b/tdeui/tdefontdialog.h @@ -249,6 +249,14 @@ public: */ static void getFontList( TQStringList &list, uint fontListCriteria); + /** + * + * Fill the font family list of the TDEFontChooser + * + * @param list The font list. + */ + void setFamilyList( TQStringList list ); + /** * Reimplemented for internal reasons. */ @@ -300,8 +308,9 @@ private: TQFont selFont; + TQString selectedFamily; TQString selectedStyle; - int selectedSize; + int selectedSize; TQMap currentStyles; bool usingFixed;