diff options
author | Timothy Pearson <kb9vqf@pearsoncomputing.net> | 2012-11-01 22:50:23 -0500 |
---|---|---|
committer | Timothy Pearson <kb9vqf@pearsoncomputing.net> | 2012-11-01 22:50:23 -0500 |
commit | 180abfff4d31bc8db66fea92cf070ff21b7a5e2f (patch) | |
tree | 4f999f42be0434280c65a9f3945e7a06c9b63739 /src | |
parent | 294ec2ee1fca27847ba0e913a3b11f7382e0492e (diff) | |
download | qt3-180abfff4d31bc8db66fea92cf070ff21b7a5e2f.tar.gz qt3-180abfff4d31bc8db66fea92cf070ff21b7a5e2f.zip |
Add accessor methods to list view items and popup menus for styling
Diffstat (limited to 'src')
-rw-r--r-- | src/widgets/qlistview.cpp | 9 | ||||
-rw-r--r-- | src/widgets/qlistview.h | 1 | ||||
-rw-r--r-- | src/widgets/qpopupmenu.cpp | 27 | ||||
-rw-r--r-- | src/widgets/qpopupmenu.h | 3 |
4 files changed, 40 insertions, 0 deletions
diff --git a/src/widgets/qlistview.cpp b/src/widgets/qlistview.cpp index 304ad18..385ad04 100644 --- a/src/widgets/qlistview.cpp +++ b/src/widgets/qlistview.cpp @@ -490,6 +490,15 @@ static QString qEllipsisText( const QString &org, const QFontMetrics &fm, int wi */ /*! + Constructs a new top-level list view item with no parent +*/ + +QListViewItem::QListViewItem( ) +{ + init(); +} + +/*! Constructs a new top-level list view item in the QListView \a parent. */ diff --git a/src/widgets/qlistview.h b/src/widgets/qlistview.h index e5dc0e4..ba0dae7 100644 --- a/src/widgets/qlistview.h +++ b/src/widgets/qlistview.h @@ -69,6 +69,7 @@ class Q_EXPORT QListViewItem : public Qt friend class QListViewToolTip; public: + QListViewItem( ); QListViewItem( QListView * parent ); QListViewItem( QListViewItem * parent ); QListViewItem( QListView * parent, QListViewItem * after ); diff --git a/src/widgets/qpopupmenu.cpp b/src/widgets/qpopupmenu.cpp index f20cbfc..086c423 100644 --- a/src/widgets/qpopupmenu.cpp +++ b/src/widgets/qpopupmenu.cpp @@ -2882,5 +2882,32 @@ QPopupMenu::updateScrollerState() d->scroll.topScrollableIndex++; } +/*! + Calculates the height in pixels of the menu item \a mi. +*/ +int QPopupMenu::menuItemHeight( QMenuItem *mi, QFontMetrics fm ) +{ + if ( mi->widget() ) + return mi->widget()->height(); + if ( mi->custom() && mi->custom()->fullSpan() ) + return mi->custom()->sizeHint().height(); + + int h = 0; + if ( mi->isSeparator() ) // separator height + h = 2; + else if ( mi->pixmap() ) // pixmap height + h = mi->pixmap()->height(); + else // text height + h = fm.height(); + + if ( !mi->isSeparator() && mi->iconSet() != 0 ) + h = QMAX(h, mi->iconSet()->pixmap( QIconSet::Small, + QIconSet::Normal ).height()); + if ( mi->custom() ) + h = QMAX(h, mi->custom()->sizeHint().height()); + + return h; +} + #endif // QT_NO_POPUPMENU diff --git a/src/widgets/qpopupmenu.h b/src/widgets/qpopupmenu.h index 0609731..7569381 100644 --- a/src/widgets/qpopupmenu.h +++ b/src/widgets/qpopupmenu.h @@ -193,6 +193,9 @@ private: // Disabled copy constructor and operator= QPopupMenu( const QPopupMenu & ); QPopupMenu &operator=( const QPopupMenu & ); #endif + +public: + static int menuItemHeight( QMenuItem* mi, QFontMetrics fm ); }; |