author | sandman <sandman> | 2002-09-25 23:12:14 (UTC) |
---|---|---|
committer | sandman <sandman> | 2002-09-25 23:12:14 (UTC) |
commit | 489bc02ad26767dc45b81bf122a09ef55ac20249 (patch) (unidiff) | |
tree | b7c26f8af38e9b0146179a1618a8fdf2504490fe | |
parent | 0c6ce9f1600bf1efb7736f87fd14dd8215db851f (diff) | |
download | opie-489bc02ad26767dc45b81bf122a09ef55ac20249.zip opie-489bc02ad26767dc45b81bf122a09ef55ac20249.tar.gz opie-489bc02ad26767dc45b81bf122a09ef55ac20249.tar.bz2 |
some fixes to make ofontselector more robust, if you specify invalid font
families/styles/sizes
-rw-r--r-- | libopie/ofontselector.cpp | 63 | ||||
-rw-r--r-- | libopie/ofontselector.h | 2 |
2 files changed, 42 insertions, 23 deletions
diff --git a/libopie/ofontselector.cpp b/libopie/ofontselector.cpp index f6fd541..d32aeb4 100644 --- a/libopie/ofontselector.cpp +++ b/libopie/ofontselector.cpp | |||
@@ -114,24 +114,33 @@ OFontSelector::~OFontSelector ( ) | |||
114 | 114 | ||
115 | bool OFontSelector::setSelectedFont ( const QString &family, const QString &styleStr, int size, const QString & /*charset*/ ) | 115 | bool OFontSelector::setSelectedFont ( const QString &familyStr, const QString &styleStr, int sizeVal, const QString & /*charset*/ ) |
116 | { | 116 | { |
117 | if ( size <= 0 ) | 117 | QString sizeStr = QString::number ( sizeVal ); |
118 | size = 10; | 118 | |
119 | QString familyStr = family. isEmpty ( ) ? QString ( "Helvetica" ) : family; | 119 | QListBoxItem *family = m_font_family_list-> findItem ( familyStr ); |
120 | QString sizeStr = QString::number ( size ); | 120 | if ( !family ) |
121 | 121 | family = m_font_family_list-> findItem ( "Helvetica" ); | |
122 | m_font_family_list-> setCurrentItem ( m_font_family_list-> findItem ( familyStr )); | 122 | if ( !family ) |
123 | if ( m_font_family_list-> currentItem ( ) < 0 ) | 123 | family = m_font_family_list-> firstItem ( ); |
124 | m_font_family_list-> setCurrentItem ( 0 ); | 124 | m_font_family_list-> setCurrentItem ( family ); |
125 | 125 | fontFamilyClicked ( m_font_family_list-> index ( family )); | |
126 | fontFamilyClicked ( m_font_family_list-> currentItem ( )); | 126 | |
127 | 127 | int style = findItemCB ( m_font_style_list, styleStr ); | |
128 | m_font_style_list-> setCurrentItem ( findItemCB ( m_font_style_list, styleStr )); | 128 | if ( style < 0 ) |
129 | fontStyleClicked ( m_font_style_list-> currentItem ( )); | 129 | style = findItemCB ( m_font_style_list, "Regular" ); |
130 | 130 | if ( style < 0 && m_font_style_list-> count ( ) > 0 ) | |
131 | m_font_size_list-> setCurrentItem ( findItemCB ( m_font_size_list, sizeStr )); | 131 | style = 0; |
132 | fontSizeClicked ( m_font_size_list-> currentItem ( )); | 132 | m_font_style_list-> setCurrentItem ( style ); |
133 | 133 | fontStyleClicked ( style ); | |
134 | return (( m_font_family_list-> currentItem ( ) >= 0 ) && | 134 | |
135 | ( m_font_style_list-> currentItem ( ) >= 0 ) && | 135 | int size = findItemCB ( m_font_size_list, sizeStr ); |
136 | ( m_font_size_list-> currentItem ( ) >= 0 )); | 136 | if ( size < 0 ) |
137 | size = findItemCB ( m_font_size_list, "10" ); | ||
138 | if ( size < 0 && m_font_size_list-> count ( ) > 0 ) | ||
139 | size = 0; | ||
140 | m_font_size_list-> setCurrentItem ( size ); | ||
141 | fontSizeClicked ( size ); | ||
142 | |||
143 | return (( family ) && | ||
144 | ( style >= 0 ) && | ||
145 | ( size >= 0 )); | ||
137 | } | 146 | } |
@@ -261,2 +270,8 @@ void OFontSelector::changeFont ( ) | |||
261 | { | 270 | { |
271 | emit fontSelected ( selectedFont ( )); | ||
272 | } | ||
273 | |||
274 | |||
275 | QFont OFontSelector::selectedFont ( ) | ||
276 | { | ||
262 | int ffa = m_font_family_list-> currentItem ( ); | 277 | int ffa = m_font_family_list-> currentItem ( ); |
@@ -268,7 +283,9 @@ void OFontSelector::changeFont ( ) | |||
268 | if ( fli ) { | 283 | if ( fli ) { |
269 | emit fontSelected ( m_fdb. font ( fli-> family ( ), \ | 284 | return m_fdb. font ( fli-> family ( ), \ |
270 | fst >= 0 ? fli-> styles ( ) [fst] : QString::null, \ | 285 | fst >= 0 ? fli-> styles ( ) [fst] : QString::null, \ |
271 | fsi >= 0 ? fli-> sizes ( ) [fsi] : 10, \ | 286 | fsi >= 0 ? fli-> sizes ( ) [fsi] : 10, \ |
272 | m_fdb. charSets ( fli-> family ( )) [0] )); | 287 | m_fdb. charSets ( fli-> family ( )) [0] ); |
273 | } | 288 | } |
289 | else | ||
290 | return QFont ( ); | ||
274 | } | 291 | } |
diff --git a/libopie/ofontselector.h b/libopie/ofontselector.h index 9227e48..2011e43 100644 --- a/libopie/ofontselector.h +++ b/libopie/ofontselector.h | |||
@@ -49,2 +49,4 @@ public: | |||
49 | 49 | ||
50 | QFont selectedFont ( ); | ||
51 | |||
50 | bool setSelectedFont ( const QString &family, const QString &style, int size, const QString &charset = 0 ); | 52 | bool setSelectedFont ( const QString &family, const QString &style, int size, const QString &charset = 0 ); |