Allow changing alias
diff --git a/src/setaliasdialog.cpp b/src/setaliasdialog.cpp
new file mode 100644
index 0000000..38e70d9
--- /dev/null
+++ b/src/setaliasdialog.cpp
@@ -0,0 +1,68 @@
+/* -*- Mode:C++; c-file-style:"gnu"; indent-tabs-mode:nil -*- */
+/*
+ * Copyright (c) 2013, Regents of the University of California
+ * Yingdi Yu
+ *
+ * BSD license, See the LICENSE file for more information
+ *
+ * Author: Yingdi Yu <yingdi@cs.ucla.edu>
+ */
+
+#include "setaliasdialog.h"
+#include "ui_setaliasdialog.h"
+
+
+using namespace ndn;
+using namespace std;
+
+SetAliasDialog::SetAliasDialog(Ptr<ContactManager> contactManager,
+ QWidget *parent)
+ : QDialog(parent)
+ , ui(new Ui::SetAliasDialog)
+ , m_contactManager(contactManager)
+{
+ ui->setupUi(this);
+
+ connect(ui->okButton, SIGNAL(clicked()),
+ this, SLOT(onOkClicked()));
+ connect(ui->cancelButton, SIGNAL(clicked()),
+ this, SLOT(onCancelClicked()));
+}
+
+SetAliasDialog::~SetAliasDialog()
+{
+ delete ui;
+}
+
+void
+SetAliasDialog::onOkClicked()
+{
+ QString text = ui->aliasInput->text();
+ string alias = text.toUtf8().constData();
+
+ m_contactManager->getContactStorage()->updateAlias(Name(m_target), alias);
+
+ emit aliasChanged();
+
+ this->close();
+}
+
+void
+SetAliasDialog::onCancelClicked()
+{ this->close(); }
+
+void
+SetAliasDialog::setTargetIdentity(const string& name)
+{
+ m_target = name;
+ string msg("Set alias for ");
+ msg.append(name).append(":");
+ ui->introLabel->setText(QString::fromUtf8(msg.c_str()));
+ ui->aliasInput->clear();
+}
+
+
+#if WAF
+#include "setaliasdialog.moc"
+#include "setaliasdialog.cpp.moc"
+#endif