Mercurial > hg > svgui
diff widgets/ColourComboBox.cpp @ 1580:a2ff9c01889e
Merge from branch background-mode
author | Chris Cannam |
---|---|
date | Fri, 24 Jan 2020 15:11:08 +0000 |
parents | 85f04c956f03 |
children |
line wrap: on
line diff
--- a/widgets/ColourComboBox.cpp Wed Jan 15 13:58:33 2020 +0000 +++ b/widgets/ColourComboBox.cpp Fri Jan 24 15:11:08 2020 +0000 @@ -38,15 +38,29 @@ connect(this, SIGNAL(activated(int)), this, SLOT(comboActivated(int))); connect(ColourDatabase::getInstance(), SIGNAL(colourDatabaseChanged()), this, SLOT(rebuild())); - - if (count() < 20 && count() > maxVisibleItems()) { - setMaxVisibleItems(count()); - } } void -ColourComboBox::comboActivated(int index) +ColourComboBox::includeUnsetEntry(QString entry) { + m_unsetEntry = entry; + + rebuild(); + + blockSignals(true); + int ix = currentIndex(); + setCurrentIndex(ix + 1); + blockSignals(false); +} + +void +ColourComboBox::comboActivated(int comboIndex) +{ + int index = comboIndex; + if (m_unsetEntry != "") { + index = comboIndex - 1; // so index is the colour index + } + if (!m_withAddNewColourEntry || index < int(ColourDatabase::getInstance()->getColourCount())) { emit colourChanged(index); @@ -81,6 +95,10 @@ clear(); + if (m_unsetEntry != "") { + addItem(m_unsetEntry); + } + int size = (QFontMetrics(QFont()).height() * 2) / 3; if (size < 12) size = 12; @@ -95,6 +113,12 @@ } setCurrentIndex(ix); + + if (count() < 18) { + setMaxVisibleItems(count()); + } else { + setMaxVisibleItems(10); + } blockSignals(false); }