Add contact panel
diff --git a/.gitignore b/.gitignore
index 5853b18..530be1d 100644
--- a/.gitignore
+++ b/.gitignore
@@ -1,12 +1,8 @@
-.DS_Store
-*.app
-Makefile
-*.o
-ui_*
-moc_*
-*.pb.*
-qrc*
-gdb-target
-.waf*
-.lock*
+.waf-1*
+**/*.pyc
 build/
+.lock*
+*.o
+*.DS_Store
+*~
+tmp/
diff --git a/src/contactpanel.cpp b/src/contactpanel.cpp
new file mode 100644
index 0000000..17d019f
--- /dev/null
+++ b/src/contactpanel.cpp
@@ -0,0 +1,30 @@
+/* -*- 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 "contactpanel.h"
+#include "ui_contactpanel.h"
+
+ContactPanel::ContactPanel(QWidget *parent) :
+    QDialog(parent),
+    ui(new Ui::ContactPanel)
+{
+    ui->setupUi(this);
+}
+
+ContactPanel::~ContactPanel()
+{
+    delete ui;
+}
+
+
+#if WAF
+#include "contactpanel.moc"
+#include "contactpanel.cpp.moc"
+#endif
diff --git a/src/contactpanel.h b/src/contactpanel.h
new file mode 100644
index 0000000..f017d6d
--- /dev/null
+++ b/src/contactpanel.h
@@ -0,0 +1,32 @@
+/* -*- 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>
+ */
+
+#ifndef CONTACTPANEL_H
+#define CONTACTPANEL_H
+
+#include <QDialog>
+
+namespace Ui {
+class ContactPanel;
+}
+
+class ContactPanel : public QDialog
+{
+    Q_OBJECT
+
+public:
+    explicit ContactPanel(QWidget *parent = 0);
+    ~ContactPanel();
+
+private:
+    Ui::ContactPanel *ui;
+};
+
+#endif // CONTACTPANEL_H
diff --git a/src/contactpanel.ui b/src/contactpanel.ui
new file mode 100644
index 0000000..ec4ba9f
--- /dev/null
+++ b/src/contactpanel.ui
@@ -0,0 +1,138 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<ui version="4.0">
+ <class>ContactPanel</class>
+ <widget class="QDialog" name="ContactPanel">
+  <property name="geometry">
+   <rect>
+    <x>0</x>
+    <y>0</y>
+    <width>600</width>
+    <height>450</height>
+   </rect>
+  </property>
+  <property name="windowTitle">
+   <string>Dialog</string>
+  </property>
+  <widget class="QWidget" name="">
+   <property name="geometry">
+    <rect>
+     <x>10</x>
+     <y>10</y>
+     <width>581</width>
+     <height>431</height>
+    </rect>
+   </property>
+   <layout class="QHBoxLayout" name="ContactPanelLayout" stretch="3,7">
+    <property name="spacing">
+     <number>10</number>
+    </property>
+    <item>
+     <widget class="QListWidget" name="ContactList"/>
+    </item>
+    <item>
+     <widget class="QTabWidget" name="ContactInfo">
+      <property name="currentIndex">
+       <number>0</number>
+      </property>
+      <widget class="QWidget" name="General">
+       <attribute name="title">
+        <string>General</string>
+       </attribute>
+       <widget class="QGraphicsView" name="Avatar">
+        <property name="geometry">
+         <rect>
+          <x>130</x>
+          <y>10</y>
+          <width>128</width>
+          <height>128</height>
+         </rect>
+        </property>
+       </widget>
+       <widget class="QWidget" name="">
+        <property name="geometry">
+         <rect>
+          <x>30</x>
+          <y>160</y>
+          <width>331</width>
+          <height>124</height>
+         </rect>
+        </property>
+        <layout class="QVBoxLayout" name="verticalLayout">
+         <item>
+          <layout class="QHBoxLayout" name="horizontalLayout" stretch="35,100">
+           <property name="spacing">
+            <number>-1</number>
+           </property>
+           <item>
+            <widget class="QLabel" name="label">
+             <property name="text">
+              <string>Name space</string>
+             </property>
+            </widget>
+           </item>
+           <item>
+            <widget class="QLineEdit" name="lineEdit">
+             <property name="readOnly">
+              <bool>true</bool>
+             </property>
+            </widget>
+           </item>
+          </layout>
+         </item>
+         <item>
+          <layout class="QHBoxLayout" name="horizontalLayout_2" stretch="35,100">
+           <item>
+            <widget class="QLabel" name="label_2">
+             <property name="text">
+              <string>Name</string>
+             </property>
+            </widget>
+           </item>
+           <item>
+            <widget class="QLineEdit" name="lineEdit_2">
+             <property name="readOnly">
+              <bool>true</bool>
+             </property>
+            </widget>
+           </item>
+          </layout>
+         </item>
+         <item>
+          <layout class="QHBoxLayout" name="horizontalLayout_3" stretch="35,100">
+           <item>
+            <widget class="QLabel" name="label_3">
+             <property name="text">
+              <string>Institution   </string>
+             </property>
+            </widget>
+           </item>
+           <item>
+            <widget class="QLineEdit" name="lineEdit_3">
+             <property name="readOnly">
+              <bool>true</bool>
+             </property>
+            </widget>
+           </item>
+          </layout>
+         </item>
+        </layout>
+       </widget>
+      </widget>
+      <widget class="QWidget" name="TrustLevel">
+       <attribute name="title">
+        <string>Trust Level</string>
+       </attribute>
+      </widget>
+      <widget class="QWidget" name="Endorse">
+       <attribute name="title">
+        <string>Endorse</string>
+       </attribute>
+      </widget>
+     </widget>
+    </item>
+   </layout>
+  </widget>
+ </widget>
+ <resources/>
+ <connections/>
+</ui>
diff --git a/src/main.cpp b/src/main.cpp
index 6c2ff22..83212d2 100644
--- a/src/main.cpp
+++ b/src/main.cpp
@@ -1,31 +1,34 @@
-#include<QApplication>
-#include "chatdialog.h"
-#include <QMessageBox>
+/* -*- 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 <QApplication>
+#include <QSystemTrayIcon>
+
+#include "chronochat.h"
+#include "contactpanel.h"
 
 int main(int argc, char *argv[])
 {
-  // Q_INIT_RESOURCE(demo);
   QApplication app(argc, argv);
 
-  if (!QSystemTrayIcon::isSystemTrayAvailable()) {
-    QMessageBox::critical(0, QObject::tr("Systray"),
-			  QObject::tr("I couldn't detect any system tray "
-				      "on this system."));
-    return 1;
-  }
-  QApplication::setQuitOnLastWindowClosed (false);
 
-#ifdef __APPLE__
-	app.setWindowIcon(QIcon(":/demo.icns"));
-#else
-	app.setWindowIcon(QIcon(":/images/icon_large.png"));
-#endif
+//   app.setWindowIcon(QIcon("/Users/yuyingdi/Develop/QT/demo.icns"));
+// // #else
+// // 	app.setWindowIcon(QIcon("/Users/yuyingdi/Develop/QT/images/icon_large.png"));
+// // #endif
 
-  ChatDialog dialog;
+  ContactPanel contactPanel;
 
-  dialog.show ();
-  dialog.activateWindow ();
-  dialog.raise ();
-
+  contactPanel.show ();
+  contactPanel.activateWindow ();
+  contactPanel.raise ();
+  
   return app.exec();
 }
diff --git a/waf b/waf
index 911b4ab..79e5e69 100755
--- a/waf
+++ b/waf
Binary files differ
diff --git a/wscript b/wscript
index 3e754e5..e60e569 100644
--- a/wscript
+++ b/wscript
@@ -2,13 +2,15 @@
 VERSION='0.1'
 APPNAME='QT-Test'
 
+from waflib import Configure
+
 def options(opt):
     opt.load('compiler_c compiler_cxx boost protoc qt4')
     
 def configure(conf):
     conf.load("compiler_c compiler_cxx")
 
-#    conf.add_supported_cxxflags (cxxflags = ['-O3', '-g'])
+    conf.add_supported_cxxflags (cxxflags = ['-O3', '-g'])
 
     conf.load('protoc')
 
@@ -17,3 +19,42 @@
     conf.load('boost')
 
     conf.check_boost(lib='system random thread')
+
+    conf.write_config_header('config.h')
+
+		
+def build (bld):
+    qt = bld (
+        target = "ChronoChat",
+        features = "qt4 cxx cxxprogram",
+        defines = "WAF",
+        source = bld.path.ant_glob(['src/*.cpp', 'src/*.ui']),
+        includes = ".",
+        use = "QTCORE QTGUI",
+        )   
+
+
+@Configure.conf
+def add_supported_cxxflags(self, cxxflags):
+    """
+    Check which cxxflags are supported by compiler and add them to env.CXXFLAGS variable
+    """
+    self.start_msg('Checking allowed flags for c++ compiler')
+
+    supportedFlags = []
+    for flag in cxxflags:
+        if self.check_cxx (cxxflags=[flag], mandatory=False):
+            supportedFlags += [flag]
+
+    self.end_msg (' '.join (supportedFlags))
+    self.env.CXXFLAGS += supportedFlags
+
+from waflib.TaskGen import feature, before_method, after_method
+@feature('cxx')
+@after_method('process_source')
+@before_method('apply_incpaths')
+def add_includes_paths(self):
+    incs = set(self.to_list(getattr(self, 'includes', '')))
+    for x in self.compiled_tasks:
+        incs.add(x.inputs[0].parent.path_from(self.path))
+        self.includes = list(incs)