Implemented remove rows.
[emufront] / src / dialogs / emufrontdatadialog.cpp
index e8ac4e4..0d54504 100644 (file)
@@ -62,8 +62,8 @@ void EmuFrontDataDialog::hideColumns()
 void EmuFrontDataDialog::connectSignals()
 {
     connect(buttonBox, SIGNAL(accepted()), this, SLOT(accept()));
-    /*connect(objectList, SIGNAL(clicked(const QModelIndex &)),
-        this, SLOT(listObjectClicked(const QModelIndex &)));*/
+    connect(objectList, SIGNAL(clicked(const QModelIndex &)),
+        this, SLOT(listObjectClicked(const QModelIndex &)));
     connect(editButton, SIGNAL(clicked()), this, SLOT(editButtonClicked()));
     connect(addButton, SIGNAL(clicked()), this, SLOT(addButtonClicked()));
     connect(deleteButton, SIGNAL(clicked()), this, SLOT(deleteButtonClicked()));
@@ -71,25 +71,42 @@ void EmuFrontDataDialog::connectSignals()
 
 void EmuFrontDataDialog::editButtonClicked()
 {
+    setButtonsEnabled(false);
     qDebug() << "Edit button clicked";
 }
 
 void EmuFrontDataDialog::deleteButtonClicked()
 {
-    qDebug() << "Delete button clicked";
+    setButtonsEnabled(false);
+    if (!objectList->currentIndex().isValid())
+        return;
+    int row = objectList->currentIndex().row();
+    if ( !model->removeRows(row, 1) ) {
+        errorMessage->showMessage(tr("Failed removing selected item."));
+    }
 }
 
+
 void EmuFrontDataDialog::addButtonClicked()
 {
-    qDebug() << "Delete button clicked";
-    int row = objectList->currentIndex().row();
-    if (row == -1) row  = 0;
+    int row = objectList->currentIndex().isValid() ?
+        objectList->currentIndex().row() : 0;
     model->insertRows(row, 1);
     QModelIndex ind = model->index(row, 1);
     if (!ind.isValid()){
-        qDebug() << "Invalid index";
         return;
     }
     objectList->setCurrentIndex(ind);
     objectList->edit(ind);
 }
+
+void EmuFrontDataDialog::listObjectClicked(const QModelIndex &index)
+{
+    setButtonsEnabled(index.isValid());
+}
+
+void EmuFrontDataDialog::setButtonsEnabled(bool b)
+{
+    editButton->setEnabled(b);
+    deleteButton->setEnabled(b);
+}