Half of invitation works
diff --git a/src/contactpanel.h b/src/contactpanel.h
index dff0e56..9803a6a 100644
--- a/src/contactpanel.h
+++ b/src/contactpanel.h
@@ -20,11 +20,14 @@
 #include "addcontactpanel.h"
 #include "setaliasdialog.h"
 #include "startchatdialog.h"
+#include "invitationdialog.h"
+#include "settingdialog.h"
 
 #ifndef Q_MOC_RUN
 #include "contact-manager.h"
 #endif
 
+
 namespace Ui {
 class ContactPanel;
 }
@@ -35,14 +38,60 @@
 
 public:
   explicit ContactPanel(ndn::Ptr<ContactManager> contactManager, QWidget *parent = 0);
+
   ~ContactPanel();
 
+private:
+  void
+  openDB();
+
+  void
+  setKeychain();
+
+  void
+  setLocalPrefix();
+
+  void
+  onLocalPrefixVerified(ndn::Ptr<ndn::Data> data);
+  
+  void
+  onLocalPrefixTimeout(ndn::Ptr<ndn::Closure> closure, ndn::Ptr<ndn::Interest> interest);
+
+  void
+  onUnverified(ndn::Ptr<ndn::Data> data);
+  
+  void
+  onTimeout(ndn::Ptr<ndn::Closure> closure, ndn::Ptr<ndn::Interest> interest);
+    
+  void
+  setInvitationListener();
+
+  void
+  onInvitation(ndn::Ptr<ndn::Interest> interest);
+
+  void
+  onInvitationCertVerified(ndn::Ptr<ndn::Data> data,
+                           const ndn::Name& interestName,
+                           int inviterIndex);
+
+  std::string
+  getRandomString();
+
+  void
+  popChatInvitation(const ndn::Name& interestName,
+                    int inviterIndex,
+                    const ndn::Name& inviterNameSpace,
+                    ndn::Ptr<ndn::security::IdentityCertificate> certificate);
+
 private slots:
   void
   updateSelection(const QItemSelection &selected,
                   const QItemSelection &deselected);
 
   void
+  updateDefaultIdentity(const QString& identity);
+
+  void
   openProfileEditor();
 
   void
@@ -55,6 +104,9 @@
   openStartChatDialog();
 
   void
+  openSettingDialog();
+
+  void
   refreshContactList();
 
   void
@@ -63,6 +115,18 @@
   void
   startChatroom(const QString& chatroom, const QString& invitee, bool isIntroducer);
 
+  void 
+  startChatroom2(const QString& chatroom, const QString& inviter);
+
+  void
+  acceptInvitation(const ndn::Name& interestName, 
+                   const ndn::security::IdentityCertificate& identityCertificate, 
+                   QString inviter, 
+                   QString chatroom);
+
+  void
+  rejectInvitation(const ndn::Name& interestName);
+
 private:
   Ui::ContactPanel *ui;
   ndn::Ptr<ContactManager> m_contactManager;
@@ -71,14 +135,22 @@
   AddContactPanel* m_addContactPanel;
   SetAliasDialog* m_setAliasDialog;
   StartChatDialog* m_startChatDialog;
+  InvitationDialog* m_invitationDialog;
+  SettingDialog* m_settingDialog;
   QAction* m_menuInvite;
   QAction* m_menuAlias;
-
-
   std::vector<ndn::Ptr<ContactItem> > m_contactList;
 
+  ndn::Ptr<ndn::security::Keychain> m_keychain;
+  ndn::Ptr<ndn::Wrapper> m_handler;
+
+  ndn::Name m_defaultIdentity;
+  ndn::Name m_localPrefix;
+
   std::string m_currentSelectedContactAlias;
   std::string m_currentSelectedContactNamespace;
+
+
 };
 
 #endif // CONTACTPANEL_H