model_->clear();
}
-void ButtonSelector::setCurrentIndex(int index)
+void ButtonSelector::setCurrentIndex(unsigned int index)
{
selector_->setCurrentIndex(index);
}
+int ButtonSelector::indexOfValue(QVariant const& value) const
+{
+ for(int i = 0; i < model_->rowCount(); i++)
+ {
+ QStandardItem* item = model_->item(i);
+
+ if(item && item->data(Qt::UserRole) == value)
+ {
+ return i;
+ }
+ }
+
+ return -1;
+}
+
+bool ButtonSelector::selectByValue(QVariant const& value)
+{
+ int index = indexOfValue(value);
+
+ if(index < 0)
+ {
+ return false;
+ }
+
+ setCurrentIndex(index);
+
+ return true;
+}
+
int ButtonSelector::currentIndex() const
{
return selector_->currentIndex();
return item->data(Qt::UserRole);
}
+
+bool ButtonSelector::changeItem(unsigned int index,
+ QString const& text)
+{
+ changeItem(index, text, QVariant(text));
+}
+
+bool ButtonSelector::changeItem(unsigned int index,
+ QString const& text,
+ QVariant const& value)
+{
+ QStandardItem* item = model_->item(index);
+
+ if(!item)
+ {
+ return false;
+ }
+
+ item->setText(text);
+ item->setData(value, Qt::UserRole);
+
+ return true;
+}
+
+bool ButtonSelector::removeItem(unsigned int index)
+{
+ return model_->removeRow(index);
+}