[prev in list] [next in list] [prev in thread] [next in thread] 

List:       kde-commits
Subject:    [simon/nldm-dev] /: deleting turns & serialization of turns
From:       Eddie Saenz <saenzeddie5 () gmail ! com>
Date:       2014-03-29 3:00:51
Message-ID: E1WTjVr-0006Fb-S6 () scm ! kde ! org
[Download RAW message or body]

Git commit 41309cd42940b77d1613aaae984b2515f86ad939 by Eddie Saenz.
Committed on 29/03/2014 at 01:14.
Pushed by eddiesaenz into branch 'nldm-dev'.

deleting turns & serialization of turns

M  +18   -14   plugins/Commands/Dialog/dialogconfiguration.cpp
M  +1    -0    plugins/Commands/Dialog/dialogconfiguration.h
M  +20   -5    plugins/Commands/Dialog/turnconfiguration.cpp
M  +5    -1    plugins/Commands/Dialog/turncreateeditview.ui
M  +23   -72   simonlib/simondialogengine/dialogstate.cpp
M  +1    -0    simonlib/simondialogengine/dialogstate.h

http://commits.kde.org/simon/41309cd42940b77d1613aaae984b2515f86ad939

diff --git a/plugins/Commands/Dialog/dialogconfiguration.cpp \
b/plugins/Commands/Dialog/dialogconfiguration.cpp index 662d477..cdb560e 100644
--- a/plugins/Commands/Dialog/dialogconfiguration.cpp
+++ b/plugins/Commands/Dialog/dialogconfiguration.cpp
@@ -78,8 +78,6 @@ DialogConfiguration::DialogConfiguration(DialogCommandManager* \
_commandManager,  connect(ui.pbMoveStateUp, SIGNAL(clicked()), this, \
SLOT(moveStateUp()));  connect(ui.pbMoveStateDown, SIGNAL(clicked()), this, \
SLOT(moveStateDown()));  
-  // connect(ui.pbEditText, SIGNAL(clicked()), this, SLOT(editText()));
-
   // connect(ui.cbSilence, SIGNAL(toggled(bool)), this, SLOT(textSilenceChanged()));
   // connect(ui.cbAnnounceRepeat, SIGNAL(toggled(bool)), this, \
SLOT(textAnnounceRepeatChanged()));  
@@ -124,6 +122,7 @@ DialogConfiguration::DialogConfiguration(DialogCommandManager* \
_commandManager,  
   connect(ui.pbAddTurn, SIGNAL(clicked()), this, SLOT(addTurn()));
   connect(ui.pbEditTurn, SIGNAL(clicked()), this, SLOT(editTurn()));
+  connect(ui.pbRemoveTurn, SIGNAL(clicked()), this, SLOT(removeTurn()));
 
   displayCurrentState();
 }
@@ -180,6 +179,12 @@ void DialogConfiguration::editTurn()
   displayCurrentState();
 }
 
+void DialogConfiguration::removeTurn()
+{
+  getCurrentState()->removeTurn(ui.lwTurns->currentRow());
+  displayCurrentState();
+}
+
 void DialogConfiguration::avatarSelected ( const QModelIndex& selected )
 {
   // if (!selected.isValid())
@@ -465,23 +470,22 @@ QDomElement DialogConfiguration::serialize(QDomDocument* doc)
 
 bool DialogConfiguration::deSerialize(const QDomElement& elem)
 {
-  // if (!outputConfiguration->deSerialize(elem)) {
-  //   defaults();
-  //   kDebug() << "Setting defaults...";
-  //   return true;
-  // }
+  if (!outputConfiguration->deSerialize(elem)) {
+    defaults();
+    kDebug() << "Setting defaults...";
+    return true;
+  }
 
-  // if (!templateOptionsConfig->deSerialize(elem))
-  //   return false;
+  if (!templateOptionsConfig->deSerialize(elem))
+    return false;
 
-  // if (!boundValuesConfig->deSerialize(elem))
-  //   return false;
+  if (!boundValuesConfig->deSerialize(elem))
+    return false;
 
-  // if (!avatarsConfig->deSerialize(elem))
-  //   return false;
+  if (!avatarsConfig->deSerialize(elem))
+    return false;
   // ui.lvStateAvatar->setModel(avatarsConfig->getModel());
 
-  // return true;
   return true;
 }
 
diff --git a/plugins/Commands/Dialog/dialogconfiguration.h \
b/plugins/Commands/Dialog/dialogconfiguration.h index 9568a85..131ac1d 100644
--- a/plugins/Commands/Dialog/dialogconfiguration.h
+++ b/plugins/Commands/Dialog/dialogconfiguration.h
@@ -91,6 +91,7 @@ class DialogConfiguration : public CommandConfiguration
 
     void addTurn();
     void editTurn();
+    void removeTurn();
 
   public slots:
     void init();
diff --git a/plugins/Commands/Dialog/turnconfiguration.cpp \
b/plugins/Commands/Dialog/turnconfiguration.cpp index 07469ac..3fd3543 100644
--- a/plugins/Commands/Dialog/turnconfiguration.cpp
+++ b/plugins/Commands/Dialog/turnconfiguration.cpp
@@ -45,6 +45,8 @@ TurnConfiguration::TurnConfiguration(DialogTurn* _turn, QWidget* \
parent) :  ui.setupUi(mainWidget());
 
   connect(ui.pbAddPrompt, SIGNAL(clicked()), this, SLOT(addPrompt()));
+  connect(ui.pbEditPrompt, SIGNAL(clicked()), this, SLOT(editPrompt()));
+  connect(ui.sbPrompt, SIGNAL(valueChanged(int)), this, \
SLOT(displaySelectedText()));  connect(this, SIGNAL(okClicked()), this, \
SLOT(save()));  connect(this, SIGNAL(cancelClicked()), this, SLOT(forget()));
 
@@ -53,6 +55,9 @@ TurnConfiguration::TurnConfiguration(DialogTurn* _turn, QWidget* \
parent) :  
 void TurnConfiguration::displayCurrentTurn()
 {
+  ui.leTurnName->setText(turn->getName());
+  //TODO: display distractors
+  displaySelectedText();
 }
 
 void TurnConfiguration::addPrompt()
@@ -65,7 +70,21 @@ void TurnConfiguration::addPrompt()
 
 void TurnConfiguration::removePrompt()
 {
-	turn->removeText(0);
+	turn->removeText(ui.sbPrompt->value() - 1);
+  displaySelectedText();
+}
+
+void TurnConfiguration::editPrompt()
+{
+  bool ok;
+  QString text = KInputDialog::getMultiLineText(i18n("Text"), i18n("Enter the text \
to present to the user when this turn is entered:"),  +                               \
turn->getRawText(ui.sbPrompt->value()-1), &ok); +  if (!ok) return;
+  
+  if (!turn->setRawText(ui.sbPrompt->value()-1, text))
+    KMessageBox::sorry(this, i18n("Failed to update turn text."));
+
+  displaySelectedText();
 }
 
 void TurnConfiguration::updateTextSelector()
@@ -94,10 +113,6 @@ void TurnConfiguration::save()
 	turn->rename(ui.leTurnName->displayText());
 }
 
-void TurnConfiguration::editPrompt()
-{
-}
-
 void TurnConfiguration::textSilenceChanged()
 {
 }
diff --git a/plugins/Commands/Dialog/turncreateeditview.ui \
b/plugins/Commands/Dialog/turncreateeditview.ui index a6ac0a4..c41c9ab 100644
--- a/plugins/Commands/Dialog/turncreateeditview.ui
+++ b/plugins/Commands/Dialog/turncreateeditview.ui
@@ -87,7 +87,11 @@
        </layout>
       </item>
       <item>
-       <widget class="KTextEdit" name="tePrompt"/>
+       <widget class="KTextEdit" name="tePrompt">
+        <property name="readOnly">
+         <bool>true</bool>
+        </property>
+       </widget>
       </item>
       <item>
        <widget class="QGroupBox" name="gbExtractors">
diff --git a/simonlib/simondialogengine/dialogstate.cpp \
b/simonlib/simondialogengine/dialogstate.cpp index ee7b03c..c424c76 100644
--- a/simonlib/simondialogengine/dialogstate.cpp
+++ b/simonlib/simondialogengine/dialogstate.cpp
@@ -79,6 +79,13 @@ void DialogState::addTurn(DialogTurn* turn)
   currentDialogTurn = turn;
 }
 
+void DialogState::removeTurn(int index)
+{
+  DialogTurn* turn = m_turns[index];
+  m_turns.removeAll(turn);
+  delete turn;
+}
+
 void DialogState::setTurn(DialogTurn* turn, int index)
 {
   DialogTurn* old = m_turns[index];
@@ -178,106 +185,50 @@ void DialogState::left()
 
 bool DialogState::deSerialize(DialogTextParser *parser, const QDomElement& elem)
 {
-  return true;
-  /*
   if (elem.isNull()) return false;
 
   m_name = elem.attribute("name");
   m_parser = parser;
 
-  //qDeleteAll(m_texts);
-  //m_texts.clear();
-
   qDeleteAll(m_turns);
   m_turns.clear();
-  
-  QList m_texts = QList<DialogText*>();
-  QList m_transitions = QList<DialogCommand*>();
-
-  QDomElement text = elem.firstChildElement("text");
-  do
-  {
-    m_texts << new DialogText(parser, text.text());
-    text = text.nextSiblingElement("text");
-  } while (!text.isNull());
-  
-  updateRandomTextSelection();
-  
-  QDomElement textOptions = elem.firstChildElement("textOptions");
-  QDomElement textSilenceOption = textOptions.firstChildElement("silence");
-  QDomElement textAnnounceRepeatOption = \
                textOptions.firstChildElement("announceRepeat");
-  
-  m_silence = (textSilenceOption.text() == "1");
-  m_announceRepeat = (textAnnounceRepeatOption.text() == "1");
-  
-  QDomElement avatarElem = elem.firstChildElement("avatar");
-  m_displayAvatar = (avatarElem.attribute("enabled") == "1");
-  m_avatarId = avatarElem.text().toInt();
 
-  QDomElement transitions = elem.firstChildElement("transitions");
-  QDomElement transition = transitions.firstChildElement("command");
+  QDomElement turns = elem.firstChildElement("turns");
+  QDomElement turn = turns.firstChildElement("turn");
 
-  QList<DialogCommand*> commands;
-    kDebug() << "Deserializing transition: setup";
-  while (!transition.isNull())
+  kDebug() << "Deserializing turn: setup";
+  while (!turn.isNull())
   {
-    kDebug() << "Deserializing transition";
-    DialogCommand *c = DialogCommand::createInstance(transition);
-    if (c)
+    kDebug() << "Deserializing turn";
+    DialogTurn* t = DialogTurn::createInstance(parser, turn);
+    if (t)
     {
-      connect(c, SIGNAL(requestDialogState(int)), this, \
                SIGNAL(requestDialogState(int)));
-      connect(c, SIGNAL(changed()), this, SIGNAL(changed()));
-      commands << c;
+      connect(t, SIGNAL(requestDialogState(int)), this, \
SIGNAL(requestDialogState(int))); +      connect(t, SIGNAL(changed()), this, \
SIGNAL(changed())); +      m_turns << t;
     } else 
       kDebug() << "FAILED";
 
-    transition = transition.nextSiblingElement("command");
+    turn = turn.nextSiblingElement("turn");
   }
 
-  m_transitions = commands;
   return true;
-  */
 }
 
 QDomElement DialogState::serialize(QDomDocument *doc)
 {
-  /*
+  
   QDomElement elem = doc->createElement("state");
   elem.setAttribute("name", m_name);
 
-  foreach (DialogText *t, m_texts)
-  {
-    QDomElement textElem = doc->createElement("text");
-    textElem.appendChild(doc->createTextNode(t->source()));
-    elem.appendChild(textElem);
-  }
-  QDomElement textOptions = doc->createElement("textOptions");
-  QDomElement textSilenceOption = doc->createElement("silence");
-  QDomElement textAnnounceOption = doc->createElement("announceRepeat");
-
-  textSilenceOption.appendChild(doc->createTextNode(m_silence ? "1" : "0"));
-  textAnnounceOption.appendChild(doc->createTextNode(m_announceRepeat ? "1" : "0"));
-
-  textOptions.appendChild(textSilenceOption);
-  textOptions.appendChild(textAnnounceOption);
-  
-  QDomElement avatarElem = doc->createElement("avatar");
-  avatarElem.setAttribute("enabled", m_displayAvatar ? "1" : "0");
-  avatarElem.appendChild(doc->createTextNode(QString::number(m_avatarId)));
-
-  QDomElement transitionsElem = doc->createElement("transitions");
+  QDomElement turnsElem = doc->createElement("turns");
   
-  foreach (DialogCommand *c, m_transitions)
-    transitionsElem.appendChild(c->serialize(doc));
+  foreach (DialogTurn* t, m_turns)
+    turnsElem.appendChild(t->serialize(doc));
 
-  elem.appendChild(textOptions);
-  elem.appendChild(avatarElem);
-  elem.appendChild(transitionsElem);
+  elem.appendChild(turnsElem);
 
   return elem;
-  */
-  // return m_turns.at(0)->serialize(doc);
-  return currentDialogTurn->serialize(doc);
 }
 
 void DialogState::addTransition(DialogCommand* command)
diff --git a/simonlib/simondialogengine/dialogstate.h \
b/simonlib/simondialogengine/dialogstate.h index cbfafdc..6cf24d5 100644
--- a/simonlib/simondialogengine/dialogstate.h
+++ b/simonlib/simondialogengine/dialogstate.h
@@ -95,6 +95,7 @@ class SIMONDIALOGENGINE_EXPORT DialogState : public \
QAbstractItemModel  DialogTurn* getCurrentTurn() { return currentDialogTurn; }
     DialogTurn* createTurn();
     void addTurn(DialogTurn* turn);
+    void removeTurn(int index);
     void setTurn(DialogTurn* turn, int index);
     void bindStateCommands(QList<Command*> commands);
 


[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic