model_->clear();
}
-void ButtonSelector::setCurrentIndex(int index)
+void ButtonSelector::setCurrentIndex(unsigned int index)
{
selector_->setCurrentIndex(index);
}
-bool ButtonSelector::selectByValue(QVariant const& value)
+int ButtonSelector::indexOfValue(QVariant const& value) const
{
for(int i = 0; i < model_->rowCount(); i++)
{
if(item && item->data(Qt::UserRole) == value)
{
- setCurrentIndex(i);
- return true;
+ return i;
}
}
- return false;
+ 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 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);
+}