mirror of
https://github.com/LMMS/lmms.git
synced 2026-04-30 19:04:43 -04:00
ComboBox: added sizeHint() + coding style
This commit is contained in:
@@ -1,7 +1,7 @@
|
||||
/*
|
||||
* combobox.h - class comboBox, a very cool combo-box
|
||||
* combobox.h - class ComboBox, a combo box view for models
|
||||
*
|
||||
* Copyright (c) 2006-2008 Tobias Doerffel <tobydox/at/users.sourceforge.net>
|
||||
* Copyright (c) 2006-2014 Tobias Doerffel <tobydox/at/users.sourceforge.net>
|
||||
*
|
||||
* This file is part of Linux MultiMedia Studio - http://lmms.sourceforge.net
|
||||
*
|
||||
@@ -38,31 +38,33 @@ class EXPORT comboBox : public QWidget, public IntModelView
|
||||
{
|
||||
Q_OBJECT
|
||||
public:
|
||||
comboBox( QWidget * _parent, const QString & _name = QString() );
|
||||
comboBox( QWidget* parent = NULL, const QString& name = QString() );
|
||||
virtual ~comboBox();
|
||||
|
||||
ComboBoxModel * model()
|
||||
ComboBoxModel* model()
|
||||
{
|
||||
return( castModel<ComboBoxModel>() );
|
||||
return castModel<ComboBoxModel>();
|
||||
}
|
||||
|
||||
const ComboBoxModel * model() const
|
||||
const ComboBoxModel* model() const
|
||||
{
|
||||
return( castModel<ComboBoxModel>() );
|
||||
return castModel<ComboBoxModel>();
|
||||
}
|
||||
|
||||
virtual QSize sizeHint() const;
|
||||
|
||||
|
||||
protected:
|
||||
virtual void contextMenuEvent( QContextMenuEvent * _me );
|
||||
virtual void mousePressEvent( QMouseEvent * _me );
|
||||
virtual void paintEvent( QPaintEvent * _pe );
|
||||
virtual void wheelEvent( QWheelEvent * _we );
|
||||
virtual void contextMenuEvent( QContextMenuEvent* event );
|
||||
virtual void mousePressEvent( QMouseEvent* event );
|
||||
virtual void paintEvent( QPaintEvent* event );
|
||||
virtual void wheelEvent( QWheelEvent* event );
|
||||
|
||||
|
||||
private:
|
||||
static QPixmap * s_background;
|
||||
static QPixmap * s_arrow;
|
||||
static QPixmap * s_arrowSelected;
|
||||
static QPixmap* s_background;
|
||||
static QPixmap* s_arrow;
|
||||
static QPixmap* s_arrowSelected;
|
||||
|
||||
QMenu m_menu;
|
||||
|
||||
@@ -70,7 +72,7 @@ private:
|
||||
|
||||
|
||||
private slots:
|
||||
void setItem( QAction * _item );
|
||||
void setItem( QAction* item );
|
||||
|
||||
} ;
|
||||
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
/*
|
||||
* combobox.cpp - implementation of LMMS-combobox
|
||||
* combobox.cpp - implementation of LMMS combobox
|
||||
*
|
||||
* Copyright (c) 2006-2011 Tobias Doerffel <tobydox/at/users.sourceforge.net>
|
||||
* Copyright (c) 2006-2014 Tobias Doerffel <tobydox/at/users.sourceforge.net>
|
||||
* Copyright (c) 2008-2009 Paul Giblock <pgib/at/users.sourceforge.net>
|
||||
*
|
||||
* This file is part of Linux MultiMedia Studio - http://lmms.sourceforge.net
|
||||
@@ -88,6 +88,22 @@ comboBox::~comboBox()
|
||||
|
||||
|
||||
|
||||
QSize comboBox::sizeHint() const
|
||||
{
|
||||
int maxTextWidth = 0;
|
||||
for( int i = 0; i < model()->size(); ++i )
|
||||
{
|
||||
int w = fontMetrics().width( model()->itemText( i ) );
|
||||
if( w > maxTextWidth )
|
||||
{
|
||||
maxTextWidth = w;
|
||||
}
|
||||
}
|
||||
|
||||
return QSize( 32 + maxTextWidth, 22 );
|
||||
}
|
||||
|
||||
|
||||
|
||||
void comboBox::contextMenuEvent( QContextMenuEvent * _me )
|
||||
{
|
||||
|
||||
Reference in New Issue
Block a user