summaryrefslogtreecommitdiff
authorsandman <sandman>2002-09-25 23:12:14 (UTC)
committer sandman <sandman>2002-09-25 23:12:14 (UTC)
commit489bc02ad26767dc45b81bf122a09ef55ac20249 (patch) (unidiff)
treeb7c26f8af38e9b0146179a1618a8fdf2504490fe
parent0c6ce9f1600bf1efb7736f87fd14dd8215db851f (diff)
downloadopie-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
Diffstat (more/less context) (ignore whitespace changes)
-rw-r--r--libopie/ofontselector.cpp65
-rw-r--r--libopie/ofontselector.h2
2 files changed, 43 insertions, 24 deletions
diff --git a/libopie/ofontselector.cpp b/libopie/ofontselector.cpp
index f6fd541..d32aeb4 100644
--- a/libopie/ofontselector.cpp
+++ b/libopie/ofontselector.cpp
@@ -99,54 +99,63 @@ OFontSelector::OFontSelector ( QWidget *parent, const char *name, WFlags fl ) :
99 99
100 label = new QLabel( tr( "Size" ), this ); 100 label = new QLabel( tr( "Size" ), this );
101 gridLayout->addWidget( label, 2, 1 ); 101 gridLayout->addWidget( label, 2, 1 );
102 102
103 m_font_size_list = new QComboBox( this, "SizeListBox" ); 103 m_font_size_list = new QComboBox( this, "SizeListBox" );
104 connect( m_font_size_list, SIGNAL( activated( int ) ), 104 connect( m_font_size_list, SIGNAL( activated( int ) ),
105 this, SLOT( fontSizeClicked( int ) ) ); 105 this, SLOT( fontSizeClicked( int ) ) );
106 gridLayout->addWidget( m_font_size_list, 3, 1 ); 106 gridLayout->addWidget( m_font_size_list, 3, 1 );
107 107
108 loadFonts ( m_font_family_list ); 108 loadFonts ( m_font_family_list );
109} 109}
110 110
111OFontSelector::~OFontSelector ( ) 111OFontSelector::~OFontSelector ( )
112{ 112{
113} 113}
114 114
115bool OFontSelector::setSelectedFont ( const QString &family, const QString &styleStr, int size, const QString & /*charset*/ ) 115bool 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 fontStyleClicked ( style );
134
135 int size = findItemCB ( m_font_size_list, sizeStr );
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 );
133 142
134 return (( m_font_family_list-> currentItem ( ) >= 0 ) && 143 return (( family ) &&
135 ( m_font_style_list-> currentItem ( ) >= 0 ) && 144 ( style >= 0 ) &&
136 ( m_font_size_list-> currentItem ( ) >= 0 )); 145 ( size >= 0 ));
137} 146}
138 147
139bool OFontSelector::selectedFont ( QString &family, QString &style, int &size ) 148bool OFontSelector::selectedFont ( QString &family, QString &style, int &size )
140{ 149{
141 QString dummy; 150 QString dummy;
142 return selectedFont ( family, style, size, dummy ); 151 return selectedFont ( family, style, size, dummy );
143} 152}
144 153
145 154
146QString OFontSelector::fontFamily ( ) const 155QString OFontSelector::fontFamily ( ) const
147{ 156{
148 FontListItem *fli = (FontListItem *) m_font_family_list-> item ( m_font_family_list-> currentItem ( )); 157 FontListItem *fli = (FontListItem *) m_font_family_list-> item ( m_font_family_list-> currentItem ( ));
149 158
150 return fli ? fli-> family ( ) : QString::null; 159 return fli ? fli-> family ( ) : QString::null;
151} 160}
152 161
@@ -246,32 +255,40 @@ void OFontSelector::fontFamilyClicked ( int index )
246 } 255 }
247 changeFont ( ); 256 changeFont ( );
248} 257}
249 258
250void OFontSelector::fontStyleClicked ( int /*index*/ ) 259void OFontSelector::fontStyleClicked ( int /*index*/ )
251{ 260{
252 changeFont ( ); 261 changeFont ( );
253} 262}
254 263
255void OFontSelector::fontSizeClicked ( int /*index*/ ) 264void OFontSelector::fontSizeClicked ( int /*index*/ )
256{ 265{
257 changeFont ( ); 266 changeFont ( );
258} 267}
259 268
260void OFontSelector::changeFont ( ) 269void OFontSelector::changeFont ( )
261{ 270{
271 emit fontSelected ( selectedFont ( ));
272}
273
274
275QFont OFontSelector::selectedFont ( )
276{
262 int ffa = m_font_family_list-> currentItem ( ); 277 int ffa = m_font_family_list-> currentItem ( );
263 int fst = m_font_style_list-> currentItem ( ); 278 int fst = m_font_style_list-> currentItem ( );
264 int fsi = m_font_size_list-> currentItem ( ); 279 int fsi = m_font_size_list-> currentItem ( );
265 280
266 FontListItem *fli = (FontListItem *) m_font_family_list-> item ( ffa ); 281 FontListItem *fli = (FontListItem *) m_font_family_list-> item ( ffa );
267 282
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}
275 292
276 293
277 \ No newline at end of file 294 \ No newline at end of file
diff --git a/libopie/ofontselector.h b/libopie/ofontselector.h
index 9227e48..2011e43 100644
--- a/libopie/ofontselector.h
+++ b/libopie/ofontselector.h
@@ -34,32 +34,34 @@
34 34
35class QComboBox; 35class QComboBox;
36class QListBox; 36class QListBox;
37class QFont; 37class QFont;
38 38
39class OFontSelector : public QWidget 39class OFontSelector : public QWidget
40{ 40{
41 Q_OBJECT 41 Q_OBJECT
42 42
43public: 43public:
44 OFontSelector ( QWidget* parent = 0, const char* name = 0, WFlags fl = 0 ); 44 OFontSelector ( QWidget* parent = 0, const char* name = 0, WFlags fl = 0 );
45 virtual ~OFontSelector ( ); 45 virtual ~OFontSelector ( );
46 46
47 bool selectedFont ( QString &family, QString &style, int &size ); 47 bool selectedFont ( QString &family, QString &style, int &size );
48 bool selectedFont ( QString &family, QString &style, int &size, QString &charset ); 48 bool selectedFont ( QString &family, QString &style, int &size, QString &charset );
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 );
51 53
52 QString fontFamily ( ) const; 54 QString fontFamily ( ) const;
53 QString fontStyle ( ) const; 55 QString fontStyle ( ) const;
54 int fontSize ( ) const; 56 int fontSize ( ) const;
55 QString fontCharSet ( ) const; 57 QString fontCharSet ( ) const;
56 58
57signals: 59signals:
58 void fontSelected ( const QFont & ); 60 void fontSelected ( const QFont & );
59 61
60protected slots: 62protected slots:
61 virtual void fontFamilyClicked ( int ); 63 virtual void fontFamilyClicked ( int );
62 virtual void fontStyleClicked ( int ); 64 virtual void fontStyleClicked ( int );
63 virtual void fontSizeClicked ( int ); 65 virtual void fontSizeClicked ( int );
64 66
65private: 67private: