Finalizing initial qt5 version

Change-Id: Ib77cd8bffc8edeeaf4bfe81c8893a9de1d96de16
diff --git a/qt5/tray-menu.cpp b/qt5/tray-menu.cpp
index 43c5727..386a64f 100644
--- a/qt5/tray-menu.cpp
+++ b/qt5/tray-menu.cpp
@@ -39,18 +39,21 @@
 
 namespace ndn {
 
-TrayMenu::TrayMenu()
+TrayMenu::TrayMenu(QQmlContext* context)
+  : m_context(context)
+  , m_isNfdRunning(false)
 {
   menu = new QMenu(this);
   pref = new QAction("Preferences...", menu);
   quit = new QAction("Quit", menu);
 
-  // connect(start, SIGNAL(triggered()), this, SLOT(startNfd()));
-  // connect(stop, SIGNAL(triggered()), this, SLOT(stopNfd()));
   connect(pref, SIGNAL(triggered()), this, SIGNAL(showApp()));
   connect(quit, SIGNAL(triggered()), this, SLOT(quitApp()));
 
-  connect(this, SIGNAL(nfdActivityUpdate(bool)), this, SLOT(updateNfdActivityIcon(bool)));
+  connect(this, SIGNAL(nfdActivityUpdate(bool)), this, SLOT(updateNfdActivityIcon(bool)),
+          Qt::QueuedConnection);
+
+  m_context->setContextProperty("startStopButtonText", QVariant::fromValue(QString("Start NFD")));
 
   // menu->addAction(start);
   // menu->addAction(stop);
@@ -69,25 +72,11 @@
 }
 
 Q_INVOKABLE void
-TrayMenu::checkNfdRunning()
-{
-  // Face face;
-  // Interest interest("/localhost/nfd/status");
-  // face.expressInterest(interest, 0, 0);
-  // try {
-  //   face.processEvents();
-  //   tray->setIcon(QIcon(CONNECT_ICON));
-  // } catch (Tlv::Error) {
-  //   tray->setIcon(QIcon(DISCONNECT_ICON));
-  // }
-}
-
-Q_INVOKABLE void
 TrayMenu::autoConfig()
 {
-  std::cout << "auto config" <<std::endl;
+  std::cout << "auto config" << std::endl;
   QProcess* proc = new QProcess();
-  connect(proc,SIGNAL(finished(int)), proc, SLOT(deleteLater()));
+  connect(proc, SIGNAL(finished(int)), proc, SLOT(deleteLater()));
   proc->start(NFD_AUTOCONFIG_COMMAND);
 }
 
@@ -111,6 +100,17 @@
   }
 }
 
+Q_INVOKABLE void
+TrayMenu::startStopNfd()
+{
+  if (!m_isNfdRunning) {
+    startNfd();
+  }
+  else {
+    stopNfd();
+  }
+}
+
 void
 TrayMenu::startNfd()
 {
@@ -142,11 +142,15 @@
 void
 TrayMenu::updateNfdActivityIcon(bool isActive)
 {
+  m_isNfdRunning = isActive;
+
   if (isActive) {
     tray->setIcon(QIcon(CONNECT_ICON));
+    m_context->setContextProperty("startStopButtonText", QVariant::fromValue(QString("Stop NFD")));
   }
   else {
     tray->setIcon(QIcon(DISCONNECT_ICON));
+    m_context->setContextProperty("startStopButtonText", QVariant::fromValue(QString("Start NFD")));
   }
 }