Updated code to complete task id
[confmgr] / src / addprofile.cpp
index 2292419..f9c4635 100644 (file)
@@ -11,6 +11,10 @@ AddProfile::AddProfile(QWidget *parent) :
     connect(&mFrmAddStep, SIGNAL(StepAddedSuccessfully(Steps)),
             this, SLOT(updateStepList(Steps)));
     mFrmAddStep.setWindowFlags(mFrmAddStep.windowFlags() | Qt::Window);
+    bIsStepEdited = false;
+    iStepEditPosition = 0;
+    mFrmAddStep.setParent(this, Qt::Window);
+    mFrmAddStep.setAttribute(Qt::WA_Maemo5StackedWindow);
 }
 
 AddProfile::~AddProfile()
@@ -43,10 +47,27 @@ void AddProfile::showStepsUI()
 
 void AddProfile::updateStepList(Steps step)
 {
-    mSteps.append(step);
     QString text = "Value: " + step.value();
     text += " || Delay: " + QString::number(step.delay());
-    ui->addProStepList->addItem(text);
+    if(bIsStepEdited)
+    {
+        // Reset the flag
+        bIsStepEdited = false;
+
+        // Remove the old one...
+        mSteps.removeAt(iStepEditPosition);
+        QString *pText = (QString*) ui->addProStepList->takeItem(ui->addProStepList->currentRow());
+        delete pText;
+
+        // update with the new one...
+        mSteps.insert(iStepEditPosition, step);
+        ui->addProStepList->insertItem(iStepEditPosition, text);
+    }
+    else
+    {
+        mSteps.append(step);
+        ui->addProStepList->addItem(text);
+    }
     qDebug() << "updateStepList(): Text in List:  " << text;
 }
 
@@ -74,6 +95,8 @@ void AddProfile::clear()
 void AddProfile::showProfile(Profile &p)
 {
     ui->addProName->setText(p.mName);
+    mSteps.clear();
+    mSteps = p.mSteps;
     for(unsigned int i = 0; i < p.mNoOfSteps; i++)
     {
         Steps step = p.mSteps.at(i);
@@ -83,3 +106,20 @@ void AddProfile::showProfile(Profile &p)
     }
     this->show();
 }
+
+void AddProfile::on_addProModifyStep_clicked()
+{
+    if(ui->addProStepList->count() <= 0 || ui->addProStepList->currentRow() < 0)
+    {
+        QMessageBox msg;
+        msg.setText("Please add/select a step first!");
+        msg.exec();
+        return;
+    }
+    bIsStepEdited = true;
+    iStepEditPosition = ui->addProStepList->currentRow();
+    qDebug() << "Step to be edited: " << iStepEditPosition;
+    mFrmAddStep.setParent(this, Qt::Window);
+    mFrmAddStep.setAttribute(Qt::WA_Maemo5StackedWindow);
+    mFrmAddStep.showStep((Steps &)mSteps.at(iStepEditPosition));
+}