Connection handling improved again. Added ability to bybass general Maemo connectivit...
[jenirok] / src / gui / buttonselector.cpp
index d41ff9e..6ba49da 100644 (file)
@@ -53,11 +53,40 @@ void ButtonSelector::clear()
     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();
@@ -81,3 +110,31 @@ QVariant ButtonSelector::value() 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);
+}