Connection handling improved again. Added ability to bybass general Maemo connectivit...
[jenirok] / src / gui / buttonselector.cpp
index fafb52c..6ba49da 100644 (file)
@@ -53,12 +53,12 @@ void ButtonSelector::clear()
     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++)
     {
@@ -66,12 +66,25 @@ bool ButtonSelector::selectByValue(QVariant const& value)
 
         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
@@ -97,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);
+}