diff --git a/demo/settingdialog.cpp b/demo/settingdialog.cpp
index be0bb42..d9640dc 100644
--- a/demo/settingdialog.cpp
+++ b/demo/settingdialog.cpp
@@ -1,4 +1,6 @@
 #include "settingdialog.h"
+#include <QRegExp>
+#include <QValidator>
 
 SettingDialog::SettingDialog(QWidget *parent, QString nick, QString chatroom, QString prefix)
   : QDialog(parent)
@@ -7,6 +9,14 @@
   nickEdit->setPlaceholderText(nick);
   roomEdit->setPlaceholderText(chatroom);
   prefixEdit->setPlaceholderText(prefix);
+
+  // simple validator for ccnx prefix
+  QRegExp rx("(^(/[^/]+)+$)|(^/$)");
+  QValidator *validator = new QRegExpValidator(rx, this);
+  prefixEdit->setValidator(validator);
+
+  cancelButton->setDefault(true);
+
   connect(cancelButton, SIGNAL(clicked()), this, SLOT(reject()));
   connect(okButton, SIGNAL(clicked()), this, SLOT(update()));
 }
@@ -17,3 +27,15 @@
   emit updated(nickEdit->text(), roomEdit->text(), prefixEdit->text()); 
   accept();
 }
+
+void
+SettingDialog::keyPressEvent(QKeyEvent *e)
+{
+  switch(e->key()) {
+    case Qt::Key_Enter:
+      update();
+      break;
+    default:
+      QDialog::keyPressEvent(e);
+  }
+}
diff --git a/demo/settingdialog.h b/demo/settingdialog.h
index ac63777..f9fc31c 100644
--- a/demo/settingdialog.h
+++ b/demo/settingdialog.h
@@ -1,6 +1,7 @@
 #ifndef SETTINGDIALOG_H
 #define SETTINGDIALOG_H
 #include "ui_settingdialog.h"
+#include <QKeyEvent>
 
 class SettingDialog : public QDialog, private Ui::SettingDialog
 {
@@ -8,6 +9,7 @@
 
 public:
   SettingDialog(QWidget *parent = 0, QString nick = QString("NULL"), QString chatroom = QString("NULL"), QString prefix = QString("NULL"));
+  virtual void keyPressEvent(QKeyEvent *e);
 
 private slots:
   void update();
