author | sandman <sandman> | 2002-10-01 20:58:30 (UTC) |
---|---|---|
committer | sandman <sandman> | 2002-10-01 20:58:30 (UTC) |
commit | 2906826d9ebc268bc233f97956ee1dc5b338c69b (patch) (side-by-side diff) | |
tree | d6af20025d6ac5e9220a3f1458d1985df8a6cc93 | |
parent | 88bef2791f8e4c99e0e9d34ddfe518b5baa2df72 (diff) | |
download | opie-2906826d9ebc268bc233f97956ee1dc5b338c69b.zip opie-2906826d9ebc268bc233f97956ee1dc5b338c69b.tar.gz opie-2906826d9ebc268bc233f97956ee1dc5b338c69b.tar.bz2 |
OFontSelector has now an optional builtin preview widget
-rw-r--r-- | libopie/ofontselector.cpp | 51 | ||||
-rw-r--r-- | libopie/ofontselector.h | 5 |
2 files changed, 47 insertions, 9 deletions
diff --git a/libopie/ofontselector.cpp b/libopie/ofontselector.cpp index e1090b5..b905474 100644 --- a/libopie/ofontselector.cpp +++ b/libopie/ofontselector.cpp @@ -26,30 +26,32 @@ */ #include <qlayout.h> #include <qlistbox.h> #include <qcombobox.h> #include <qlabel.h> #include <qfont.h> +#include <qmultilineedit.h> #include <qpe/fontdatabase.h> #include "ofontselector.h" class OFontSelectorPrivate { -public: - QListBox * m_font_family_list; - QComboBox * m_font_style_list; - QComboBox * m_font_size_list; +public: + QListBox * m_font_family_list; + QComboBox * m_font_style_list; + QComboBox * m_font_size_list; + QMultiLineEdit *m_preview; - bool m_pointbug; + bool m_pointbug; - FontDatabase m_fdb; + FontDatabase m_fdb; }; class FontListItem : public QListBoxText { public: FontListItem ( const QString &t, const QStringList &styles, const QValueList<int> &sizes ) : QListBoxText ( ) { m_name = t; @@ -96,17 +98,17 @@ static int findItemCB ( QComboBox *box, const QString &str ) static int qt_version ( ) { const char *qver = qVersion ( ); return ( qver [0] - '0' ) * 100 + ( qver [2] - '0' ) * 10 + ( qver [4] - '0' ); } -OFontSelector::OFontSelector ( QWidget *parent, const char *name, WFlags fl ) : QWidget ( parent, name, fl ) +OFontSelector::OFontSelector ( bool withpreview, QWidget *parent, const char *name, WFlags fl ) : QWidget ( parent, name, fl ) { d = new OFontSelectorPrivate ( ); QGridLayout *gridLayout = new QGridLayout ( this, 0, 0, 4, 4 ); gridLayout->setRowStretch ( 4, 10 ); d-> m_font_family_list = new QListBox( this, "FontListBox" ); gridLayout->addMultiCellWidget( d-> m_font_family_list, 0, 4, 0, 0 ); @@ -124,16 +126,29 @@ OFontSelector::OFontSelector ( QWidget *parent, const char *name, WFlags fl ) : d-> m_font_size_list = new QComboBox( this, "SizeListBox" ); connect( d-> m_font_size_list, SIGNAL( activated( int ) ), this, SLOT( fontSizeClicked( int ) ) ); gridLayout->addWidget( d-> m_font_size_list, 3, 1 ); d-> m_pointbug = ( qt_version ( ) <= 233 ); + if ( withpreview ) { + d-> m_preview = new QMultiLineEdit ( this, "Preview" ); + d-> m_preview-> setAlignment ( AlignCenter ); + d-> m_preview-> setWordWrap ( QMultiLineEdit::WidgetWidth ); + d-> m_preview-> setMargin ( 3 ); + d-> m_preview-> setText ( tr( "The Quick Brown Fox Jumps Over The Lazy Dog" )); + gridLayout-> addRowSpacing ( 5, 4 ); + gridLayout-> addMultiCellWidget ( d-> m_preview, 6, 6, 0, 1 ); + gridLayout-> setRowStretch ( 6, 5 ); + } + else + d-> m_preview = 0; + loadFonts ( d-> m_font_family_list ); } OFontSelector::~OFontSelector ( ) { delete d; } @@ -299,17 +314,22 @@ void OFontSelector::fontStyleClicked ( int /*index*/ ) void OFontSelector::fontSizeClicked ( int /*index*/ ) { changeFont ( ); } void OFontSelector::changeFont ( ) { - emit fontSelected ( selectedFont ( )); + QFont f = selectedFont ( ); + + if ( d-> m_preview ) + d-> m_preview-> setFont ( f ); + + emit fontSelected ( f ); } QFont OFontSelector::selectedFont ( ) { int ffa = d-> m_font_family_list-> currentItem ( ); int fst = d-> m_font_style_list-> currentItem ( ); int fsi = d-> m_font_size_list-> currentItem ( ); @@ -320,8 +340,23 @@ QFont OFontSelector::selectedFont ( ) return d-> m_fdb. font ( fli-> family ( ), \ fst >= 0 ? fli-> styles ( ) [fst] : QString::null, \ fsi >= 0 ? fli-> sizes ( ) [fsi] : 10, \ d-> m_fdb. charSets ( fli-> family ( )) [0] ); } else return QFont ( ); } + + +void OFontSelector::resizeEvent ( QResizeEvent *re ) +{ + if ( d-> m_preview ) { + d-> m_preview-> setMinimumHeight ( 1 ); + d-> m_preview-> setMaximumHeight ( 32767 ); + } + + QWidget::resizeEvent ( re ); + + if ( d-> m_preview ) + d-> m_preview-> setFixedHeight ( d-> m_preview-> height ( )); + +} diff --git a/libopie/ofontselector.h b/libopie/ofontselector.h index a9c8a72..10d16f0 100644 --- a/libopie/ofontselector.h +++ b/libopie/ofontselector.h @@ -35,17 +35,17 @@ class QListBox; class OFontSelectorPrivate; class OFontSelector : public QWidget { Q_OBJECT public: - OFontSelector ( QWidget* parent = 0, const char* name = 0, WFlags fl = 0 ); + OFontSelector ( bool withpreview, QWidget* parent = 0, const char* name = 0, WFlags fl = 0 ); virtual ~OFontSelector ( ); bool selectedFont ( QString &family, QString &style, int &size ); bool selectedFont ( QString &family, QString &style, int &size, QString &charset ); QFont selectedFont ( ); bool setSelectedFont ( const QFont & ); @@ -59,16 +59,19 @@ public: signals: void fontSelected ( const QFont & ); protected slots: virtual void fontFamilyClicked ( int ); virtual void fontStyleClicked ( int ); virtual void fontSizeClicked ( int ); +protected: + virtual void resizeEvent ( QResizeEvent *re ); + private: void loadFonts ( QListBox * ); void changeFont ( ); private: OFontSelectorPrivate *d; }; |