QskComboBox::indexInPopup ( a.k.a QComboBox::highlightedIndex ) added
This commit is contained in:
parent
69d43a2ffa
commit
907409f21b
@ -92,7 +92,7 @@ namespace
|
|||||||
class QskComboBox::PrivateData
|
class QskComboBox::PrivateData
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
QPointer < QskPopup > menu;
|
QPointer < QskMenu > menu;
|
||||||
|
|
||||||
QVector< Option > options;
|
QVector< Option > options;
|
||||||
QString placeholderText;
|
QString placeholderText;
|
||||||
@ -244,6 +244,12 @@ QString QskComboBox::currentText() const
|
|||||||
|
|
||||||
void QskComboBox::openPopup()
|
void QskComboBox::openPopup()
|
||||||
{
|
{
|
||||||
|
/*
|
||||||
|
maybe we should implement an alternative implementation
|
||||||
|
using a QskSelectionDialog, that could be en/disabled
|
||||||
|
by setting a mode TODO ...
|
||||||
|
*/
|
||||||
|
|
||||||
if ( m_data->menu )
|
if ( m_data->menu )
|
||||||
return;
|
return;
|
||||||
|
|
||||||
@ -261,6 +267,9 @@ void QskComboBox::openPopup()
|
|||||||
for ( const auto& option : m_data->options )
|
for ( const auto& option : m_data->options )
|
||||||
menu->addOption( option.graphic, option.text );
|
menu->addOption( option.graphic, option.text );
|
||||||
|
|
||||||
|
connect( menu, &QskMenu::currentIndexChanged,
|
||||||
|
this, &QskComboBox::indexInPopupChanged );
|
||||||
|
|
||||||
connect( menu, &QskMenu::triggered,
|
connect( menu, &QskMenu::triggered,
|
||||||
this, &QskComboBox::setCurrentIndex );
|
this, &QskComboBox::setCurrentIndex );
|
||||||
|
|
||||||
@ -408,4 +417,12 @@ int QskComboBox::count() const
|
|||||||
return m_data->options.count();
|
return m_data->options.count();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
int QskComboBox::indexInPopup() const
|
||||||
|
{
|
||||||
|
if ( m_data->menu )
|
||||||
|
return m_data->menu->currentIndex();
|
||||||
|
|
||||||
|
return -1;
|
||||||
|
}
|
||||||
|
|
||||||
#include "moc_QskComboBox.cpp"
|
#include "moc_QskComboBox.cpp"
|
||||||
|
@ -17,13 +17,17 @@ class QSK_EXPORT QskComboBox : public QskControl
|
|||||||
Q_PROPERTY( int currentIndex READ currentIndex
|
Q_PROPERTY( int currentIndex READ currentIndex
|
||||||
WRITE setCurrentIndex NOTIFY currentIndexChanged )
|
WRITE setCurrentIndex NOTIFY currentIndexChanged )
|
||||||
|
|
||||||
Q_PROPERTY( QString currentText READ currentText )
|
Q_PROPERTY( QString currentText READ currentText
|
||||||
|
NOTIFY currentIndexChanged )
|
||||||
|
|
||||||
Q_PROPERTY( int count READ count NOTIFY countChanged )
|
Q_PROPERTY( int count READ count NOTIFY countChanged )
|
||||||
|
|
||||||
Q_PROPERTY( QString placeholderText READ placeholderText
|
Q_PROPERTY( QString placeholderText READ placeholderText
|
||||||
WRITE setPlaceholderText NOTIFY placeholderTextChanged )
|
WRITE setPlaceholderText NOTIFY placeholderTextChanged )
|
||||||
|
|
||||||
|
Q_PROPERTY( int indexInPopup READ indexInPopup
|
||||||
|
NOTIFY indexInPopupChanged )
|
||||||
|
|
||||||
using Inherited = QskControl;
|
using Inherited = QskControl;
|
||||||
|
|
||||||
public:
|
public:
|
||||||
@ -52,6 +56,9 @@ class QSK_EXPORT QskComboBox : public QskControl
|
|||||||
int currentIndex() const;
|
int currentIndex() const;
|
||||||
QString currentText() const;
|
QString currentText() const;
|
||||||
|
|
||||||
|
// "highlightedIndex" ( see Qt's combo boxes ) is not very intuitive
|
||||||
|
virtual int indexInPopup() const;
|
||||||
|
|
||||||
int count() const;
|
int count() const;
|
||||||
QVariantList optionAt( int ) const;
|
QVariantList optionAt( int ) const;
|
||||||
QString textAt( int ) const;
|
QString textAt( int ) const;
|
||||||
@ -64,6 +71,7 @@ class QSK_EXPORT QskComboBox : public QskControl
|
|||||||
|
|
||||||
Q_SIGNALS:
|
Q_SIGNALS:
|
||||||
void currentIndexChanged( int );
|
void currentIndexChanged( int );
|
||||||
|
void indexInPopupChanged( int );
|
||||||
|
|
||||||
void countChanged( int );
|
void countChanged( int );
|
||||||
void placeholderTextChanged( const QString& );
|
void placeholderTextChanged( const QString& );
|
||||||
@ -77,6 +85,10 @@ class QSK_EXPORT QskComboBox : public QskControl
|
|||||||
|
|
||||||
void wheelEvent( QWheelEvent* ) override;
|
void wheelEvent( QWheelEvent* ) override;
|
||||||
|
|
||||||
|
/*
|
||||||
|
open/close a menu - needs to be overloaded when using a custom popup
|
||||||
|
don't forget to modify indexInPopup/indexInPopupChanged as well
|
||||||
|
*/
|
||||||
virtual void openPopup();
|
virtual void openPopup();
|
||||||
virtual void closePopup();
|
virtual void closePopup();
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user