gnunet-svn
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[GNUnet-SVN] r36655 - in gnunet-qt/secushare: . core core/gnunet core/id


From: gnunet
Subject: [GNUnet-SVN] r36655 - in gnunet-qt/secushare: . core core/gnunet core/identity core/social models preferences qml utils
Date: Thu, 12 Nov 2015 19:30:38 +0100

Author: tg
Date: 2015-11-12 19:30:37 +0100 (Thu, 12 Nov 2015)
New Revision: 36655

Modified:
   gnunet-qt/secushare/README.txt
   gnunet-qt/secushare/core/gnunet/gnunet.cpp
   gnunet-qt/secushare/core/gnunet/gnunet.h
   gnunet-qt/secushare/core/gnunet/gnunet_includes.h
   gnunet-qt/secushare/core/identity/identity.cpp
   gnunet-qt/secushare/core/identity/identity.h
   gnunet-qt/secushare/core/identity/identityService.cpp
   gnunet-qt/secushare/core/identity/identityService.h
   gnunet-qt/secushare/core/psyccore.cpp
   gnunet-qt/secushare/core/psyccore.h
   gnunet-qt/secushare/core/social/place.cpp
   gnunet-qt/secushare/core/social/place.h
   gnunet-qt/secushare/core/social/socialservice.cpp
   gnunet-qt/secushare/core/social/socialservice.h
   gnunet-qt/secushare/deployment.pri
   gnunet-qt/secushare/main.cpp
   gnunet-qt/secushare/models/IdentityModel.cpp
   gnunet-qt/secushare/models/IdentityModel.h
   gnunet-qt/secushare/models/PlacesModel.cpp
   gnunet-qt/secushare/models/PlacesModel.h
   gnunet-qt/secushare/models/models.cpp
   gnunet-qt/secushare/models/models.h
   gnunet-qt/secushare/preferences/preferences.cpp
   gnunet-qt/secushare/preferences/preferences.h
   gnunet-qt/secushare/psyc.cpp
   gnunet-qt/secushare/psyc.h
   gnunet-qt/secushare/qml/About.qml
   gnunet-qt/secushare/qml/ConversationWindow.qml
   gnunet-qt/secushare/qml/CreateRoom.qml
   gnunet-qt/secushare/qml/ExportEgo.qml
   gnunet-qt/secushare/qml/GroupConversation.qml
   gnunet-qt/secushare/qml/ImportEgo.qml
   gnunet-qt/secushare/qml/JoinRoom.qml
   gnunet-qt/secushare/qml/NewEgo.qml
   gnunet-qt/secushare/qml/Profile.qml
   gnunet-qt/secushare/qml/QrReader.qml
   gnunet-qt/secushare/qml/Settings.qml
   gnunet-qt/secushare/qml/SingleConversation.qml
   gnunet-qt/secushare/qml/Splash.qml
   gnunet-qt/secushare/qml/ThreadChat.qml
   gnunet-qt/secushare/qml/main.qml
   gnunet-qt/secushare/secushare.pro
   gnunet-qt/secushare/utils/helpers.cpp
   gnunet-qt/secushare/utils/helpers.h
   gnunet-qt/secushare/utils/qrimageprovider.cpp
   gnunet-qt/secushare/utils/qrimageprovider.h
Log:
dos2unix

Modified: gnunet-qt/secushare/README.txt
===================================================================
--- gnunet-qt/secushare/README.txt      2015-11-12 18:30:33 UTC (rev 36654)
+++ gnunet-qt/secushare/README.txt      2015-11-12 18:30:37 UTC (rev 36655)
@@ -1,9 +1,9 @@
-This project needs the following libraries:
-
-    - Qt >= 5.3
-    - libqrencode
-    - qzxing from https://github.com/bratao/qzxing
-
-If 'qmake' says 'unknown QT: qml' you are
-using the qt4 qmake. Gentoo has the correct
-qmake in /usr/lib/qt5/bin/qmake.
+This project needs the following libraries:
+
+    - Qt >= 5.3
+    - libqrencode
+    - qzxing from https://github.com/bratao/qzxing
+
+If 'qmake' says 'unknown QT: qml' you are
+using the qt4 qmake. Gentoo has the correct
+qmake in /usr/lib/qt5/bin/qmake.

Modified: gnunet-qt/secushare/core/gnunet/gnunet.cpp
===================================================================
--- gnunet-qt/secushare/core/gnunet/gnunet.cpp  2015-11-12 18:30:33 UTC (rev 
36654)
+++ gnunet-qt/secushare/core/gnunet/gnunet.cpp  2015-11-12 18:30:37 UTC (rev 
36655)
@@ -1,191 +1,191 @@
-/*
-     This file is part of secushare
-     (C) 2013 Bruno Cabral (and other contributing authors)
-
-     secushare is free software; you can redistribute it and/or modify
-     it under the terms of the GNU General Public License as published
-     by the Free Software Foundation; either version 3, or (at your
-     option) any later version.
-
-     SecureShare is distributed in the hope that it will be useful, but
-     WITHOUT ANY WARRANTY; without even the implied warranty of
-     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-     General Public License for more details.
-
-     You should have received a copy of the GNU General Public License
-     along with SecureShare; see the file COPYING.  If not, write to the
-     Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
-     Boston, MA 02110-1301, USA.
-*/
-
-#include "gnunet.h"
-
-#include "psyc.h"
-#include "core/psyccore.h"
-#include "preferences/preferences.h"
-#include "core/identity/identityService.h"
-#include "core/social/socialservice.h"
-
-#include <math.h>
-#include <QElapsedTimer>
-#include <QWaitCondition>
-
-
-/***********************************
- * START STATIC CALLBACKS
- ***********************************/
-
-/**
- * Static function.
- * The first function executed when GNUNet is running.
- */
-void GNUNet::mainLoopCallback(void *cls, char *const *args, const char 
*cfgfile,
-                              const struct GNUNET_CONFIGURATION_Handle *cfg)
-{
-    //Retrive our main funtion
-    GNUNet* gnunetInstance = (GNUNet*)cls;
-    Q_ASSERT(gnunetInstance);
-
-    //Call our main loop
-    gnunetInstance->mainLoop(args,cfgfile,cfg);
-}
-
-
-/**
- * Static function
- * Called to process our internal messages
- */
-void GNUNet::keepaliveTaskCallback (void *cls, const struct 
GNUNET_SCHEDULER_TaskContext *tc)
-{
-    Q_UNUSED(tc);
-
-    //Retrive our main funtion
-    Q_ASSERT(cls);
-    GNUNet* gnunetInstance = (GNUNet*)cls;
-
-    //Process the events
-    gnunetInstance->processEvents();
-
-    //Call again in 500 millisecond.
-    GNUNET_SCHEDULER_add_delayed (GNUNET_TIME_relative_multiply 
(GNUNET_TIME_UNIT_MILLISECONDS, 500), &keepaliveTaskCallback, gnunetInstance);
-}
-
-
-/***********************************
- * END STATIC CALLBACKS
- ***********************************/
-
-
-GNUNet::GNUNet(QObject *parent) :
-    QObject(parent)
-{
-
-    m_connected = false;
-    m_myPeer = new GNUNET_PeerIdentity;
-
-
-}
-
-GNUNet::~GNUNet()
-{
-    delete m_myPeer;
-}
-
-/**
- * Start GNUnet
- */
-
-void GNUNet::start()
-{
-    m_identity = new IdentityService(this);
-
-    m_social = new SocialService(this);
-
-    static struct GNUNET_GETOPT_CommandLineOption options[] = {
-        GNUNET_GETOPT_OPTION_END
-    };
-
-    const char *const argv[] = {
-        "secushare",
-        NULL
-    };
-
-    GNUNET_PROGRAM_run ((sizeof (argv) / sizeof (char *)) - 1,(char 
*const*)argv,
-                        "secushare", "secushare helper", options,
-                        mainLoopCallback, this);
-}
-
-/**
- * It's the first function executed when GNUNet is running.
- */
-void GNUNet::mainLoop(char *const *args, const char *cfgfile,
-                      const struct GNUNET_CONFIGURATION_Handle *cfg)
-{
-    Q_UNUSED(args);
-    Q_UNUSED(cfgfile);
-    Q_UNUSED(cfg);
-
-    char *privateKeyFileName;
-
-    //Create our configuration
-    m_config = GNUNET_CONFIGURATION_create ();
-    GNUNET_CONFIGURATION_load (m_config, cfgfile);
-
-    //Get my information
-
-    //load private key
-    if (GNUNET_OK !=
-            GNUNET_CONFIGURATION_get_value_filename (m_config, "PEER", 
"PRIVATE_KEY",
-                                                     &privateKeyFileName))
-    {
-        qWarning() << QString("Could not find option `GNUNETD:HOSTKEYFILE' in 
configuration.\n");
-        return;
-    }
-
-
-    //Get my own peer
-    GNUNET_CRYPTO_get_peer_identity(m_config,m_myPeer);
-
-    char* str = 
GNUNET_CRYPTO_eddsa_public_key_to_string(&m_myPeer->public_key);
-    setMyPublicKeyStr(QString(str));
-    GNUNET_free (str);
-
-
-    //A update function to process our messages
-    GNUNET_SCHEDULER_add_now ( keepaliveTaskCallback, this);
-
-
-    //Start arm
-    startServices();
-}
-
-
-/**
- * Start the services such as filesharing
- */
-
-void GNUNet::startServices()
-{
-    m_identity->start(m_config);
-
-    emit gnunetStarted();
-}
-
-
-void GNUNet::identitySetSlot(){
-    m_social->start(m_config);
-}
-
-/**
- * Process our internal pending messages.
- */
-void GNUNet::processEvents()
-{
-    QCoreApplication::processEvents();
-}
-
-
-GNUNET_PeerIdentity* GNUNet::myPeer() const
-{
-    return m_myPeer;
-}
+/*
+     This file is part of secushare
+     (C) 2013 Bruno Cabral (and other contributing authors)
+
+     secushare is free software; you can redistribute it and/or modify
+     it under the terms of the GNU General Public License as published
+     by the Free Software Foundation; either version 3, or (at your
+     option) any later version.
+
+     SecureShare is distributed in the hope that it will be useful, but
+     WITHOUT ANY WARRANTY; without even the implied warranty of
+     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+     General Public License for more details.
+
+     You should have received a copy of the GNU General Public License
+     along with SecureShare; see the file COPYING.  If not, write to the
+     Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
+     Boston, MA 02110-1301, USA.
+*/
+
+#include "gnunet.h"
+
+#include "psyc.h"
+#include "core/psyccore.h"
+#include "preferences/preferences.h"
+#include "core/identity/identityService.h"
+#include "core/social/socialservice.h"
+
+#include <math.h>
+#include <QElapsedTimer>
+#include <QWaitCondition>
+
+
+/***********************************
+ * START STATIC CALLBACKS
+ ***********************************/
+
+/**
+ * Static function.
+ * The first function executed when GNUNet is running.
+ */
+void GNUNet::mainLoopCallback(void *cls, char *const *args, const char 
*cfgfile,
+                              const struct GNUNET_CONFIGURATION_Handle *cfg)
+{
+    //Retrive our main funtion
+    GNUNet* gnunetInstance = (GNUNet*)cls;
+    Q_ASSERT(gnunetInstance);
+
+    //Call our main loop
+    gnunetInstance->mainLoop(args,cfgfile,cfg);
+}
+
+
+/**
+ * Static function
+ * Called to process our internal messages
+ */
+void GNUNet::keepaliveTaskCallback (void *cls, const struct 
GNUNET_SCHEDULER_TaskContext *tc)
+{
+    Q_UNUSED(tc);
+
+    //Retrive our main funtion
+    Q_ASSERT(cls);
+    GNUNet* gnunetInstance = (GNUNet*)cls;
+
+    //Process the events
+    gnunetInstance->processEvents();
+
+    //Call again in 500 millisecond.
+    GNUNET_SCHEDULER_add_delayed (GNUNET_TIME_relative_multiply 
(GNUNET_TIME_UNIT_MILLISECONDS, 500), &keepaliveTaskCallback, gnunetInstance);
+}
+
+
+/***********************************
+ * END STATIC CALLBACKS
+ ***********************************/
+
+
+GNUNet::GNUNet(QObject *parent) :
+    QObject(parent)
+{
+
+    m_connected = false;
+    m_myPeer = new GNUNET_PeerIdentity;
+
+
+}
+
+GNUNet::~GNUNet()
+{
+    delete m_myPeer;
+}
+
+/**
+ * Start GNUnet
+ */
+
+void GNUNet::start()
+{
+    m_identity = new IdentityService(this);
+
+    m_social = new SocialService(this);
+
+    static struct GNUNET_GETOPT_CommandLineOption options[] = {
+        GNUNET_GETOPT_OPTION_END
+    };
+
+    const char *const argv[] = {
+        "secushare",
+        NULL
+    };
+
+    GNUNET_PROGRAM_run ((sizeof (argv) / sizeof (char *)) - 1,(char 
*const*)argv,
+                        "secushare", "secushare helper", options,
+                        mainLoopCallback, this);
+}
+
+/**
+ * It's the first function executed when GNUNet is running.
+ */
+void GNUNet::mainLoop(char *const *args, const char *cfgfile,
+                      const struct GNUNET_CONFIGURATION_Handle *cfg)
+{
+    Q_UNUSED(args);
+    Q_UNUSED(cfgfile);
+    Q_UNUSED(cfg);
+
+    char *privateKeyFileName;
+
+    //Create our configuration
+    m_config = GNUNET_CONFIGURATION_create ();
+    GNUNET_CONFIGURATION_load (m_config, cfgfile);
+
+    //Get my information
+
+    //load private key
+    if (GNUNET_OK !=
+            GNUNET_CONFIGURATION_get_value_filename (m_config, "PEER", 
"PRIVATE_KEY",
+                                                     &privateKeyFileName))
+    {
+        qWarning() << QString("Could not find option `GNUNETD:HOSTKEYFILE' in 
configuration.\n");
+        return;
+    }
+
+
+    //Get my own peer
+    GNUNET_CRYPTO_get_peer_identity(m_config,m_myPeer);
+
+    char* str = 
GNUNET_CRYPTO_eddsa_public_key_to_string(&m_myPeer->public_key);
+    setMyPublicKeyStr(QString(str));
+    GNUNET_free (str);
+
+
+    //A update function to process our messages
+    GNUNET_SCHEDULER_add_now ( keepaliveTaskCallback, this);
+
+
+    //Start arm
+    startServices();
+}
+
+
+/**
+ * Start the services such as filesharing
+ */
+
+void GNUNet::startServices()
+{
+    m_identity->start(m_config);
+
+    emit gnunetStarted();
+}
+
+
+void GNUNet::identitySetSlot(){
+    m_social->start(m_config);
+}
+
+/**
+ * Process our internal pending messages.
+ */
+void GNUNet::processEvents()
+{
+    QCoreApplication::processEvents();
+}
+
+
+GNUNET_PeerIdentity* GNUNet::myPeer() const
+{
+    return m_myPeer;
+}

Modified: gnunet-qt/secushare/core/gnunet/gnunet.h
===================================================================
--- gnunet-qt/secushare/core/gnunet/gnunet.h    2015-11-12 18:30:33 UTC (rev 
36654)
+++ gnunet-qt/secushare/core/gnunet/gnunet.h    2015-11-12 18:30:37 UTC (rev 
36655)
@@ -1,165 +1,165 @@
-/*
-     This file is part of SecureShare
-     (C) 2013 Bruno Cabral (and other contributing authors)
-
-     SecureShare is free software; you can redistribute it and/or modify
-     it under the terms of the GNU General Public License as published
-     by the Free Software Foundation; either version 3, or (at your
-     option) any later version.
-
-     SecureShare is distributed in the hope that it will be useful, but
-     WITHOUT ANY WARRANTY; without even the implied warranty of
-     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-     General Public License for more details.
-
-     You should have received a copy of the GNU General Public License
-     along with SecureShare; see the file COPYING.  If not, write to the
-     Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
-     Boston, MA 02110-1301, USA.
-*/
-
-
-#ifndef GNUNET_H
-#define GNUNET_H
-#include <QtCore>
-#include <QString>
-
-
-#include "gnunet_includes.h"
-
-
-class IdentityService;
-class SocialService;
-class GNUNet : public QObject
-{
-  Q_OBJECT
-  Q_PROPERTY(IdentityService * identity READ identity CONSTANT)
-  Q_PROPERTY(SocialService * social READ social CONSTANT)
-
-  Q_PROPERTY(GNUNET_CONFIGURATION_Handle * config READ config)
-
-  Q_PROPERTY(bool connected READ isConnected WRITE setConnected NOTIFY 
connectedChanged)
-
-  Q_PROPERTY(QString myPublicKeyStr READ myPublicKeyStr WRITE 
setMyPublicKeyStr NOTIFY myPublicKeyStrChanged)
-
-
-
-public:
-  explicit GNUNet(QObject *parent = 0);
-  ~GNUNet();
-
-  IdentityService* identity() const
-  { return m_identity; }
-
-  SocialService* social() const
-  { return m_social; }
-
-
-  GNUNET_CONFIGURATION_Handle* config() const
-  { return m_config; }
-
-
-
-  bool isConnected() const
-  { return m_connected; }
-
-  void setConnected(bool connected)
-  {
-    m_connected = connected;
-    emit connectedChanged(m_connected);
-  }
-
-
-
-  //Public Key Str
-  QString myPublicKeyStr() const
-  { return m_myPublicKeyStr; }
-  void setMyPublicKeyStr(QString key)
-  {
-    m_myPublicKeyStr = key;
-    emit myPublicKeyStrChanged(key);
-  }
-
-
-
-  GNUNET_PeerIdentity* myPeer() const;
-
-
-
-private:
-
-  /**
-      Static Definitions
-     */
-  static void mainLoopCallback(void *cls, char *const *args, const char 
*cfgfile,
-                               const struct GNUNET_CONFIGURATION_Handle *cfg);
-
-  static void keepaliveTaskCallback (void *cls, const struct 
GNUNET_SCHEDULER_TaskContext *tc);
-
-public:
-  void armConnectionStateChange(int connected);
-
-
-signals:
-  void gnunetStarted();
-  void gnunetConnected();
-  void connectedChanged(bool connected);
-
-  void myPublicKeyStrChanged(QString key);
-
-
-public slots:
-  void start();
-
-  void identitySetSlot();
-private slots:
-  void startServices();
-
-private:
-
-  /**
-     * Pointer to GNUnet Identity Service.
-     */
-  IdentityService* m_identity;
-
-
-  /**
-     * Pointer to GNUnet Social Service.
-     */
-  SocialService* m_social;
-
-
-
-  /**
-     * @brief m_config
-     */
-  struct GNUNET_CONFIGURATION_Handle *m_config;
-
-  /**
-     * @brief m_connected
-     */
-  bool m_connected;
-
-
-
-  /**
-     * My peer.
-     */
-
-  struct GNUNET_PeerIdentity* m_myPeer;
-
-  /**
-     * My public key.
-     */
-  QString m_myPublicKeyStr;
-
-
-
-
-
-  void processEvents();
-  void mainLoop(char *const*args, const char *cfgfile, const 
GNUNET_CONFIGURATION_Handle *cfg);
-
-};
-
-#endif // GNUNET_H
+/*
+     This file is part of SecureShare
+     (C) 2013 Bruno Cabral (and other contributing authors)
+
+     SecureShare is free software; you can redistribute it and/or modify
+     it under the terms of the GNU General Public License as published
+     by the Free Software Foundation; either version 3, or (at your
+     option) any later version.
+
+     SecureShare is distributed in the hope that it will be useful, but
+     WITHOUT ANY WARRANTY; without even the implied warranty of
+     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+     General Public License for more details.
+
+     You should have received a copy of the GNU General Public License
+     along with SecureShare; see the file COPYING.  If not, write to the
+     Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
+     Boston, MA 02110-1301, USA.
+*/
+
+
+#ifndef GNUNET_H
+#define GNUNET_H
+#include <QtCore>
+#include <QString>
+
+
+#include "gnunet_includes.h"
+
+
+class IdentityService;
+class SocialService;
+class GNUNet : public QObject
+{
+  Q_OBJECT
+  Q_PROPERTY(IdentityService * identity READ identity CONSTANT)
+  Q_PROPERTY(SocialService * social READ social CONSTANT)
+
+  Q_PROPERTY(GNUNET_CONFIGURATION_Handle * config READ config)
+
+  Q_PROPERTY(bool connected READ isConnected WRITE setConnected NOTIFY 
connectedChanged)
+
+  Q_PROPERTY(QString myPublicKeyStr READ myPublicKeyStr WRITE 
setMyPublicKeyStr NOTIFY myPublicKeyStrChanged)
+
+
+
+public:
+  explicit GNUNet(QObject *parent = 0);
+  ~GNUNet();
+
+  IdentityService* identity() const
+  { return m_identity; }
+
+  SocialService* social() const
+  { return m_social; }
+
+
+  GNUNET_CONFIGURATION_Handle* config() const
+  { return m_config; }
+
+
+
+  bool isConnected() const
+  { return m_connected; }
+
+  void setConnected(bool connected)
+  {
+    m_connected = connected;
+    emit connectedChanged(m_connected);
+  }
+
+
+
+  //Public Key Str
+  QString myPublicKeyStr() const
+  { return m_myPublicKeyStr; }
+  void setMyPublicKeyStr(QString key)
+  {
+    m_myPublicKeyStr = key;
+    emit myPublicKeyStrChanged(key);
+  }
+
+
+
+  GNUNET_PeerIdentity* myPeer() const;
+
+
+
+private:
+
+  /**
+      Static Definitions
+     */
+  static void mainLoopCallback(void *cls, char *const *args, const char 
*cfgfile,
+                               const struct GNUNET_CONFIGURATION_Handle *cfg);
+
+  static void keepaliveTaskCallback (void *cls, const struct 
GNUNET_SCHEDULER_TaskContext *tc);
+
+public:
+  void armConnectionStateChange(int connected);
+
+
+signals:
+  void gnunetStarted();
+  void gnunetConnected();
+  void connectedChanged(bool connected);
+
+  void myPublicKeyStrChanged(QString key);
+
+
+public slots:
+  void start();
+
+  void identitySetSlot();
+private slots:
+  void startServices();
+
+private:
+
+  /**
+     * Pointer to GNUnet Identity Service.
+     */
+  IdentityService* m_identity;
+
+
+  /**
+     * Pointer to GNUnet Social Service.
+     */
+  SocialService* m_social;
+
+
+
+  /**
+     * @brief m_config
+     */
+  struct GNUNET_CONFIGURATION_Handle *m_config;
+
+  /**
+     * @brief m_connected
+     */
+  bool m_connected;
+
+
+
+  /**
+     * My peer.
+     */
+
+  struct GNUNET_PeerIdentity* m_myPeer;
+
+  /**
+     * My public key.
+     */
+  QString m_myPublicKeyStr;
+
+
+
+
+
+  void processEvents();
+  void mainLoop(char *const*args, const char *cfgfile, const 
GNUNET_CONFIGURATION_Handle *cfg);
+
+};
+
+#endif // GNUNET_H

Modified: gnunet-qt/secushare/core/gnunet/gnunet_includes.h
===================================================================
--- gnunet-qt/secushare/core/gnunet/gnunet_includes.h   2015-11-12 18:30:33 UTC 
(rev 36654)
+++ gnunet-qt/secushare/core/gnunet/gnunet_includes.h   2015-11-12 18:30:37 UTC 
(rev 36655)
@@ -1,49 +1,49 @@
-/*
-     This file is part of SecureShare
-     (C) 2013 Bruno Cabral (and other contributing authors)
-
-     SecureShare is free software; you can redistribute it and/or modify
-     it under the terms of the GNU General Public License as published
-     by the Free Software Foundation; either version 3, or (at your
-     option) any later version.
-
-     SecureShare is distributed in the hope that it will be useful, but
-     WITHOUT ANY WARRANTY; without even the implied warranty of
-     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-     General Public License for more details.
-
-     You should have received a copy of the GNU General Public License
-     along with SecureShare; see the file COPYING.  If not, write to the
-     Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
-     Boston, MA 02110-1301, USA.
-*/
-
-#ifndef GNUNET_INCLUDES_H
-#define GNUNET_INCLUDES_H
-
-
-#ifndef HAVE_USED_CONFIG_H
-#define HAVE_USED_CONFIG_H
-#include <gnunet/gnunet_config.h>
-#endif
-
-#include <gnunet/platform.h>
-#include <gnunet/gnunet_util_lib.h>
-
-#include <gnunet/gnunet_peerinfo_service.h>
-#include <gnunet/gnunet_transport_service.h>
-#include <gnunet/gnunet_ats_service.h>
-#include <gnunet/gnunet_fs_service.h>
-#include <gnunet/gnunet_nse_service.h>
-#include <gnunet/gnunet_core_service.h>
-#include <gnunet/gnunet_arm_service.h>
-#include <gnunet/gnunet_transport_plugin.h>
-#include <gnunet/gnunet_hello_lib.h>
-#include <gnunet/gnunet_identity_service.h>
-#include <gnunet/gnunet_friends_lib.h>
-#include <gnunet/gnunet_social_service.h>
-#include <gnunet/gnunet_psyc_util_lib.h>
-#include <gnunet/gnunet_env_lib.h>
-
-
-#endif // GNUNET_INCLUDES_H
+/*
+     This file is part of SecureShare
+     (C) 2013 Bruno Cabral (and other contributing authors)
+
+     SecureShare is free software; you can redistribute it and/or modify
+     it under the terms of the GNU General Public License as published
+     by the Free Software Foundation; either version 3, or (at your
+     option) any later version.
+
+     SecureShare is distributed in the hope that it will be useful, but
+     WITHOUT ANY WARRANTY; without even the implied warranty of
+     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+     General Public License for more details.
+
+     You should have received a copy of the GNU General Public License
+     along with SecureShare; see the file COPYING.  If not, write to the
+     Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
+     Boston, MA 02110-1301, USA.
+*/
+
+#ifndef GNUNET_INCLUDES_H
+#define GNUNET_INCLUDES_H
+
+
+#ifndef HAVE_USED_CONFIG_H
+#define HAVE_USED_CONFIG_H
+#include <gnunet/gnunet_config.h>
+#endif
+
+#include <gnunet/platform.h>
+#include <gnunet/gnunet_util_lib.h>
+
+#include <gnunet/gnunet_peerinfo_service.h>
+#include <gnunet/gnunet_transport_service.h>
+#include <gnunet/gnunet_ats_service.h>
+#include <gnunet/gnunet_fs_service.h>
+#include <gnunet/gnunet_nse_service.h>
+#include <gnunet/gnunet_core_service.h>
+#include <gnunet/gnunet_arm_service.h>
+#include <gnunet/gnunet_transport_plugin.h>
+#include <gnunet/gnunet_hello_lib.h>
+#include <gnunet/gnunet_identity_service.h>
+#include <gnunet/gnunet_friends_lib.h>
+#include <gnunet/gnunet_social_service.h>
+#include <gnunet/gnunet_psyc_util_lib.h>
+#include <gnunet/gnunet_env_lib.h>
+
+
+#endif // GNUNET_INCLUDES_H

Modified: gnunet-qt/secushare/core/identity/identity.cpp
===================================================================
--- gnunet-qt/secushare/core/identity/identity.cpp      2015-11-12 18:30:33 UTC 
(rev 36654)
+++ gnunet-qt/secushare/core/identity/identity.cpp      2015-11-12 18:30:37 UTC 
(rev 36655)
@@ -1,7 +1,7 @@
-#include "identity.h"
-
-Identity::Identity(QString key, QObject *parent) :
-    QObject(parent)
-{
-     m_key = key;
-}
+#include "identity.h"
+
+Identity::Identity(QString key, QObject *parent) :
+    QObject(parent)
+{
+     m_key = key;
+}

Modified: gnunet-qt/secushare/core/identity/identity.h
===================================================================
--- gnunet-qt/secushare/core/identity/identity.h        2015-11-12 18:30:33 UTC 
(rev 36654)
+++ gnunet-qt/secushare/core/identity/identity.h        2015-11-12 18:30:37 UTC 
(rev 36655)
@@ -1,59 +1,59 @@
-#ifndef IDENTITY_H
-#define IDENTITY_H
-
-#include <QObject>
-#include "core/gnunet/gnunet_includes.h"
-
-class Identity : public QObject
-{
-    Q_OBJECT
-    Q_PROPERTY(QString name READ name WRITE setName NOTIFY nameChanged)
-    Q_PROPERTY(QString url READ url CONSTANT)
-
-public:
-    explicit Identity(QString key, QObject *parent = 0);
-
-    //Index
-    int getIndex() const
-    { return m_index; }
-    void setIndex(int index)
-    {
-        m_index = index;
-    }
-
-
-    QString name(){
-        return m_name;
-    }
-    void setName(QString name){
-        m_name = name;
-        emit nameChanged(name);
-        emit modifiedSignal(m_index);
-    }
-
-    QString url(){
-        return QString("GNUNET://GNS/%1/").arg(m_key);
-    }
-
-    GNUNET_IDENTITY_Ego* ego(){
-        return m_ego;
-    }
-    void setEgo(GNUNET_IDENTITY_Ego* ego){
-        m_ego = ego;
-    }
-
-private:
-    int m_index;
-    QString m_name;
-    QString m_key;
-    GNUNET_IDENTITY_Ego * m_ego;
-
-signals:
-    void modifiedSignal(int index);
-    void nameChanged(QString name);
-
-public slots:
-
-};
-
-#endif // IDENTITY_H
+#ifndef IDENTITY_H
+#define IDENTITY_H
+
+#include <QObject>
+#include "core/gnunet/gnunet_includes.h"
+
+class Identity : public QObject
+{
+    Q_OBJECT
+    Q_PROPERTY(QString name READ name WRITE setName NOTIFY nameChanged)
+    Q_PROPERTY(QString url READ url CONSTANT)
+
+public:
+    explicit Identity(QString key, QObject *parent = 0);
+
+    //Index
+    int getIndex() const
+    { return m_index; }
+    void setIndex(int index)
+    {
+        m_index = index;
+    }
+
+
+    QString name(){
+        return m_name;
+    }
+    void setName(QString name){
+        m_name = name;
+        emit nameChanged(name);
+        emit modifiedSignal(m_index);
+    }
+
+    QString url(){
+        return QString("GNUNET://GNS/%1/").arg(m_key);
+    }
+
+    GNUNET_IDENTITY_Ego* ego(){
+        return m_ego;
+    }
+    void setEgo(GNUNET_IDENTITY_Ego* ego){
+        m_ego = ego;
+    }
+
+private:
+    int m_index;
+    QString m_name;
+    QString m_key;
+    GNUNET_IDENTITY_Ego * m_ego;
+
+signals:
+    void modifiedSignal(int index);
+    void nameChanged(QString name);
+
+public slots:
+
+};
+
+#endif // IDENTITY_H

Modified: gnunet-qt/secushare/core/identity/identityService.cpp
===================================================================
--- gnunet-qt/secushare/core/identity/identityService.cpp       2015-11-12 
18:30:33 UTC (rev 36654)
+++ gnunet-qt/secushare/core/identity/identityService.cpp       2015-11-12 
18:30:37 UTC (rev 36655)
@@ -1,123 +1,123 @@
-#include "identityService.h"
-#include "psyc.h"
-#include "core/psyccore.h"
-#include "models/models.h"
-#include "models/IdentityModel.h"
-#include "core/identity/identity.h"
-
-
-IdentityService::IdentityService(QObject *parent) :
-    QObject(parent)
-{
-}
-
-
-/**
- * @brief Identity::start
- * @param config
- */
-void IdentityService::start(struct GNUNET_CONFIGURATION_Handle *config)
-{
-    this->m_config = config;
-
-    QObject::connect(this, &IdentityService::createEgoSignal, this,
-                     &IdentityService::createEgoSlot, Qt::QueuedConnection);
-
-
-    m_identityHandle = GNUNET_IDENTITY_connect (config,
-                                                &addEgoCallback,
-                                                this);
-}
-
-
-/**
- * Add all updateable entries of the current namespace to the
- * tree store.
- *
- * @param cls our 'struct MainPublishingDialogContext'
- * @param ego identity of the namespace to add
- * @param ego_ctx where to store context data
- * @param name name of the namespace to add
- */
-void
-IdentityService::addEgoCallback (void *cls,
-                            struct GNUNET_IDENTITY_Ego *ego,
-                            void **ego_ctx,
-                            const char *name)
-{
-    IdentityService* classPointer = (IdentityService*)cls;
-    classPointer->addEgo(ego,ego_ctx,name);
-
-
-}
-
-/**
- * Identity operation was finished, clean up.
- *
- * @param cls the 'struct OperationContext'
- * @param emsg error message (NULL on success)
- */
-void
-IdentityService::operationFinished (void *cls,
-            const char *emsg)
-{
-
-    Q_UNUSED(cls);
-    Q_UNUSED(emsg);
-    //NOP
-}
-
-
-void
-IdentityService::createEgo(QString ego)
-{
-    emit createEgoSignal(ego);
-}
-
-void
-IdentityService::createEgoSlot(QString ego)
-{
-    QByteArray byteArray = ego.toUtf8();
-    const char* cString = byteArray.constData();
-
-    GNUNET_IDENTITY_create (m_identityHandle,
-                         cString,
-                         &operationFinished,
-                         NULL);
-}
-
-
-void
-IdentityService::addEgo(struct GNUNET_IDENTITY_Ego *ego,
-                        void **ego_ctx,
-                        const char *name)
-{
-    Identity* identity;
-    struct GNUNET_CRYPTO_EcdsaPublicKey pub;
-
-    if (NULL == ego)
-      return; /* nothing to be done */
-
-    identity = (Identity*)*ego_ctx;
-
-    if(identity == NULL) // Its a new identity
-    {
-        GNUNET_IDENTITY_ego_get_public_key (ego, &pub);
-        char* id = GNUNET_CRYPTO_ecdsa_public_key_to_string (&pub);
-        QString strId = QString::fromLatin1(id);
-        QString strName = QString::fromLatin1(name);
-
-        identity = theApp->models()->identityModel()->add(strId,strName,ego);
-
-        *ego_ctx = identity;
-    }
-    else if (NULL == name) // Delete
-    {
-
-    }
-    else // Rename
-    {
-        QString strName = QString::fromLatin1(name);
-        identity->setName(strName);
-    }
-}
+#include "identityService.h"
+#include "psyc.h"
+#include "core/psyccore.h"
+#include "models/models.h"
+#include "models/IdentityModel.h"
+#include "core/identity/identity.h"
+
+
+IdentityService::IdentityService(QObject *parent) :
+    QObject(parent)
+{
+}
+
+
+/**
+ * @brief Identity::start
+ * @param config
+ */
+void IdentityService::start(struct GNUNET_CONFIGURATION_Handle *config)
+{
+    this->m_config = config;
+
+    QObject::connect(this, &IdentityService::createEgoSignal, this,
+                     &IdentityService::createEgoSlot, Qt::QueuedConnection);
+
+
+    m_identityHandle = GNUNET_IDENTITY_connect (config,
+                                                &addEgoCallback,
+                                                this);
+}
+
+
+/**
+ * Add all updateable entries of the current namespace to the
+ * tree store.
+ *
+ * @param cls our 'struct MainPublishingDialogContext'
+ * @param ego identity of the namespace to add
+ * @param ego_ctx where to store context data
+ * @param name name of the namespace to add
+ */
+void
+IdentityService::addEgoCallback (void *cls,
+                            struct GNUNET_IDENTITY_Ego *ego,
+                            void **ego_ctx,
+                            const char *name)
+{
+    IdentityService* classPointer = (IdentityService*)cls;
+    classPointer->addEgo(ego,ego_ctx,name);
+
+
+}
+
+/**
+ * Identity operation was finished, clean up.
+ *
+ * @param cls the 'struct OperationContext'
+ * @param emsg error message (NULL on success)
+ */
+void
+IdentityService::operationFinished (void *cls,
+            const char *emsg)
+{
+
+    Q_UNUSED(cls);
+    Q_UNUSED(emsg);
+    //NOP
+}
+
+
+void
+IdentityService::createEgo(QString ego)
+{
+    emit createEgoSignal(ego);
+}
+
+void
+IdentityService::createEgoSlot(QString ego)
+{
+    QByteArray byteArray = ego.toUtf8();
+    const char* cString = byteArray.constData();
+
+    GNUNET_IDENTITY_create (m_identityHandle,
+                         cString,
+                         &operationFinished,
+                         NULL);
+}
+
+
+void
+IdentityService::addEgo(struct GNUNET_IDENTITY_Ego *ego,
+                        void **ego_ctx,
+                        const char *name)
+{
+    Identity* identity;
+    struct GNUNET_CRYPTO_EcdsaPublicKey pub;
+
+    if (NULL == ego)
+      return; /* nothing to be done */
+
+    identity = (Identity*)*ego_ctx;
+
+    if(identity == NULL) // Its a new identity
+    {
+        GNUNET_IDENTITY_ego_get_public_key (ego, &pub);
+        char* id = GNUNET_CRYPTO_ecdsa_public_key_to_string (&pub);
+        QString strId = QString::fromLatin1(id);
+        QString strName = QString::fromLatin1(name);
+
+        identity = theApp->models()->identityModel()->add(strId,strName,ego);
+
+        *ego_ctx = identity;
+    }
+    else if (NULL == name) // Delete
+    {
+
+    }
+    else // Rename
+    {
+        QString strName = QString::fromLatin1(name);
+        identity->setName(strName);
+    }
+}

Modified: gnunet-qt/secushare/core/identity/identityService.h
===================================================================
--- gnunet-qt/secushare/core/identity/identityService.h 2015-11-12 18:30:33 UTC 
(rev 36654)
+++ gnunet-qt/secushare/core/identity/identityService.h 2015-11-12 18:30:37 UTC 
(rev 36655)
@@ -1,33 +1,33 @@
-#ifndef IDENTITYSERVICE_H
-#define IDENTITYSERVICE_H
-
-#include <QObject>
-#include "core/gnunet/gnunet_includes.h"
-
-class IdentityService : public QObject
-{
-    Q_OBJECT
-public:
-    explicit IdentityService(QObject *parent = 0);
-
-    void start(GNUNET_CONFIGURATION_Handle *config);
-    static void addEgoCallback(void *cls, struct GNUNET_IDENTITY_Ego *ego, 
void **ego_ctx, const char *name);
-
-    void addEgo(GNUNET_IDENTITY_Ego *ego, void **ego_ctx, const char *name);
-    Q_INVOKABLE void createEgo(QString ego);
-    static void operationFinished(void *cls, const char *emsg);
-signals:
-    void createEgoSignal(QString ego);
-public slots:
-    void createEgoSlot(QString ego);
-
-private:
-    struct GNUNET_CONFIGURATION_Handle *m_config;
-    /**
-         * Handle to IDENTITY service.
-         */
-    struct GNUNET_IDENTITY_Handle *m_identityHandle;
-
-};
-
-#endif // IDENTITYSERVICE_H
+#ifndef IDENTITYSERVICE_H
+#define IDENTITYSERVICE_H
+
+#include <QObject>
+#include "core/gnunet/gnunet_includes.h"
+
+class IdentityService : public QObject
+{
+    Q_OBJECT
+public:
+    explicit IdentityService(QObject *parent = 0);
+
+    void start(GNUNET_CONFIGURATION_Handle *config);
+    static void addEgoCallback(void *cls, struct GNUNET_IDENTITY_Ego *ego, 
void **ego_ctx, const char *name);
+
+    void addEgo(GNUNET_IDENTITY_Ego *ego, void **ego_ctx, const char *name);
+    Q_INVOKABLE void createEgo(QString ego);
+    static void operationFinished(void *cls, const char *emsg);
+signals:
+    void createEgoSignal(QString ego);
+public slots:
+    void createEgoSlot(QString ego);
+
+private:
+    struct GNUNET_CONFIGURATION_Handle *m_config;
+    /**
+         * Handle to IDENTITY service.
+         */
+    struct GNUNET_IDENTITY_Handle *m_identityHandle;
+
+};
+
+#endif // IDENTITYSERVICE_H

Modified: gnunet-qt/secushare/core/psyccore.cpp
===================================================================
--- gnunet-qt/secushare/core/psyccore.cpp       2015-11-12 18:30:33 UTC (rev 
36654)
+++ gnunet-qt/secushare/core/psyccore.cpp       2015-11-12 18:30:37 UTC (rev 
36655)
@@ -1,149 +1,149 @@
-#include "psyccore.h"
-#include "psyc.h"
-
-
-#include "models/models.h"
-#include "gnunet/gnunet.h"
-#include "utils/helpers.h"
-#include "utils/qrimageprovider.h"
-
-#include <QApplication>
-#include <QQuickWindow>
-#include <QMenu>
-
-
-/* Static member variables */
-PsycCore* theApp;
-
-PsycCore::PsycCore(QObject *parent) :
-    QObject(parent)
-{
-    theApp = this;
-    m_models = new Models(this);
-
-    m_helpers = new Helpers(this);
-
-    m_qrProvider = new QrImageProvider();
-
-    m_identity = NULL;
-
-    //Finally start gnunet
-    startGNUNet();
-
-}
-
-/**
- * @brief CangoteCore::startGNUNet Start the GNUNet part. It need to run in a 
different thread
- */
-void PsycCore::startGNUNet()
-{
-    //Create the Gnunet object
-    m_gnunet = new GNUNet();
-
-    //New thread where the Gnunet will be run on.
-    m_gnunetThread = new QThread();
-
-    m_gnunet->moveToThread(m_gnunetThread);
-
-    // Call the start function after our thread is ready to run
-    connect(m_gnunetThread,
-            &QThread::started,
-            m_gnunet,
-            &GNUNet::start);
-
-    m_gnunetThread->start();
-
-    connect(m_gnunet, &GNUNet::connectedChanged, this, 
&PsycCore::setConnected, Qt::QueuedConnection);
-
-    connect(this, &PsycCore::setIdentitySignal, m_gnunet, 
&GNUNet::identitySetSlot, Qt::QueuedConnection);
-
-}
-
-
-void PsycCore::setupTray()
-{
-    // create the menu
-    m_trayMenu = new QMenu( QCoreApplication::instance()->applicationName() );
-    // add a horizontal line to the menu
-
-    m_trayMenu->addSeparator();
-    m_trayCloseAction = m_trayMenu->addAction("Close");
-    connect(m_trayCloseAction, &QAction::triggered, this, &PsycCore::close);
-
-
-
-    m_tray = new QSystemTrayIcon(QIcon(":/assets/icon.ico"),theWindow); //Same 
as above
-    m_tray->setContextMenu(m_trayMenu);
-    m_tray->setVisible(true);
-
-    QObject::connect(m_tray, &QSystemTrayIcon::activated,this, 
&PsycCore::trayActivated );
-
-}
-
-
-void PsycCore::trayActivated(QSystemTrayIcon::ActivationReason reason)
-{
-    if(reason == QSystemTrayIcon::DoubleClick){
-        if(!theWindow->isVisible()){
-
-            theWindow->show();
-
-        }else{
-            onClose();
-        }
-    }
-}
-
-
-void PsycCore::setConnected(bool connected)
-{
-    m_connected = connected;
-
-    emit connectedChanged(m_connected);
-}
-
-
-/**
- * @brief PsycCore::onClose
- * Recivied close signal
- */
-void PsycCore::onClose()
-{
-    theWindow->hide();
-
-}
-
-/**
- * @brief PsycCore::close
- * Actually close the applciation
- */
-void PsycCore::close(){
-    //setAlive(false);
-    QApplication::quit();
-}
-
-
-void PsycCore::setIdentity(Identity* identity)
-{
-    m_identity = identity;
-    emit setIdentitySignal();
-
-}
-
-
-/**
- * @brief PsycCore::setTrayMessage , will only show if the Window is hidden
- * @param message
- */
-void PsycCore::setTrayMessage(QString room, QString message)
-{
-
-
-    if(!theWindow->isVisible()){
-
-        m_tray->showMessage(room, message);
-
-    }
-
-
-}
+#include "psyccore.h"
+#include "psyc.h"
+
+
+#include "models/models.h"
+#include "gnunet/gnunet.h"
+#include "utils/helpers.h"
+#include "utils/qrimageprovider.h"
+
+#include <QApplication>
+#include <QQuickWindow>
+#include <QMenu>
+
+
+/* Static member variables */
+PsycCore* theApp;
+
+PsycCore::PsycCore(QObject *parent) :
+    QObject(parent)
+{
+    theApp = this;
+    m_models = new Models(this);
+
+    m_helpers = new Helpers(this);
+
+    m_qrProvider = new QrImageProvider();
+
+    m_identity = NULL;
+
+    //Finally start gnunet
+    startGNUNet();
+
+}
+
+/**
+ * @brief CangoteCore::startGNUNet Start the GNUNet part. It need to run in a 
different thread
+ */
+void PsycCore::startGNUNet()
+{
+    //Create the Gnunet object
+    m_gnunet = new GNUNet();
+
+    //New thread where the Gnunet will be run on.
+    m_gnunetThread = new QThread();
+
+    m_gnunet->moveToThread(m_gnunetThread);
+
+    // Call the start function after our thread is ready to run
+    connect(m_gnunetThread,
+            &QThread::started,
+            m_gnunet,
+            &GNUNet::start);
+
+    m_gnunetThread->start();
+
+    connect(m_gnunet, &GNUNet::connectedChanged, this, 
&PsycCore::setConnected, Qt::QueuedConnection);
+
+    connect(this, &PsycCore::setIdentitySignal, m_gnunet, 
&GNUNet::identitySetSlot, Qt::QueuedConnection);
+
+}
+
+
+void PsycCore::setupTray()
+{
+    // create the menu
+    m_trayMenu = new QMenu( QCoreApplication::instance()->applicationName() );
+    // add a horizontal line to the menu
+
+    m_trayMenu->addSeparator();
+    m_trayCloseAction = m_trayMenu->addAction("Close");
+    connect(m_trayCloseAction, &QAction::triggered, this, &PsycCore::close);
+
+
+
+    m_tray = new QSystemTrayIcon(QIcon(":/assets/icon.ico"),theWindow); //Same 
as above
+    m_tray->setContextMenu(m_trayMenu);
+    m_tray->setVisible(true);
+
+    QObject::connect(m_tray, &QSystemTrayIcon::activated,this, 
&PsycCore::trayActivated );
+
+}
+
+
+void PsycCore::trayActivated(QSystemTrayIcon::ActivationReason reason)
+{
+    if(reason == QSystemTrayIcon::DoubleClick){
+        if(!theWindow->isVisible()){
+
+            theWindow->show();
+
+        }else{
+            onClose();
+        }
+    }
+}
+
+
+void PsycCore::setConnected(bool connected)
+{
+    m_connected = connected;
+
+    emit connectedChanged(m_connected);
+}
+
+
+/**
+ * @brief PsycCore::onClose
+ * Recivied close signal
+ */
+void PsycCore::onClose()
+{
+    theWindow->hide();
+
+}
+
+/**
+ * @brief PsycCore::close
+ * Actually close the applciation
+ */
+void PsycCore::close(){
+    //setAlive(false);
+    QApplication::quit();
+}
+
+
+void PsycCore::setIdentity(Identity* identity)
+{
+    m_identity = identity;
+    emit setIdentitySignal();
+
+}
+
+
+/**
+ * @brief PsycCore::setTrayMessage , will only show if the Window is hidden
+ * @param message
+ */
+void PsycCore::setTrayMessage(QString room, QString message)
+{
+
+
+    if(!theWindow->isVisible()){
+
+        m_tray->showMessage(room, message);
+
+    }
+
+
+}

Modified: gnunet-qt/secushare/core/psyccore.h
===================================================================
--- gnunet-qt/secushare/core/psyccore.h 2015-11-12 18:30:33 UTC (rev 36654)
+++ gnunet-qt/secushare/core/psyccore.h 2015-11-12 18:30:37 UTC (rev 36655)
@@ -1,89 +1,89 @@
-#ifndef PSYCCORE_H
-#define PSYCCORE_H
-
-#include <QObject>
-#include <QSystemTrayIcon>
-#include <QAction>
-
-class GNUNet;
-class Models;
-class Helpers;
-class Identity;
-class QrImageProvider;
-class PsycCore : public QObject
-{
-    Q_OBJECT
-    Q_PROPERTY(Models * models READ models CONSTANT)
-    Q_PROPERTY(GNUNet * gnunet READ gnunet CONSTANT)
-    Q_PROPERTY(Helpers * helpers READ helpers CONSTANT)
-    Q_PROPERTY(QrImageProvider* qrProvider READ qrProvider CONSTANT)
-    Q_PROPERTY(Identity * identity READ identity WRITE setIdentity)
-    Q_PROPERTY(bool connected READ isConnected WRITE setConnected NOTIFY 
connectedChanged)
-
-public:
-    explicit PsycCore(QObject *parent = 0);
-
-
-
-    GNUNet* gnunet() const
-    { return m_gnunet; }
-
-    Models* models() const
-    { return m_models; }
-
-    Helpers* helpers() const
-    { return m_helpers; }
-
-    QrImageProvider* qrProvider() const
-    { return m_qrProvider; }
-
-    Identity* identity() const
-    { return m_identity; }
-
-    Q_INVOKABLE void setIdentity(Identity* identity);
-
-
-    void setupTray();
-    Q_INVOKABLE void onClose();
-
-    void setConnected(bool connected);
-
-    bool isConnected() const
-    { return m_connected; }
-
-
-private:
-    Models* m_models;
-
-    Helpers* m_helpers;
-
-    QrImageProvider* m_qrProvider;
-
-    Identity* m_identity;
-
-    GNUNet* m_gnunet;
-    QThread *m_gnunetThread;
-
-    QMenu* m_trayMenu;
-    QSystemTrayIcon* m_tray;
-    QAction* m_trayCloseAction;
-
-    //Store if the GNUNet service is connected
-    bool m_connected;
-
-
-    void close();
-    void startGNUNet();
-signals:
-    void connectedChanged(bool connected);
-    void setIdentitySignal();
-
-public slots:
-    void trayActivated(QSystemTrayIcon::ActivationReason reason);
-    void setTrayMessage(QString room, QString message);
-};
-
-//Those are the externals visible to the whole application ( globals)
-
-extern PsycCore* theApp;
-#endif // PSYCCORE_H
+#ifndef PSYCCORE_H
+#define PSYCCORE_H
+
+#include <QObject>
+#include <QSystemTrayIcon>
+#include <QAction>
+
+class GNUNet;
+class Models;
+class Helpers;
+class Identity;
+class QrImageProvider;
+class PsycCore : public QObject
+{
+    Q_OBJECT
+    Q_PROPERTY(Models * models READ models CONSTANT)
+    Q_PROPERTY(GNUNet * gnunet READ gnunet CONSTANT)
+    Q_PROPERTY(Helpers * helpers READ helpers CONSTANT)
+    Q_PROPERTY(QrImageProvider* qrProvider READ qrProvider CONSTANT)
+    Q_PROPERTY(Identity * identity READ identity WRITE setIdentity)
+    Q_PROPERTY(bool connected READ isConnected WRITE setConnected NOTIFY 
connectedChanged)
+
+public:
+    explicit PsycCore(QObject *parent = 0);
+
+
+
+    GNUNet* gnunet() const
+    { return m_gnunet; }
+
+    Models* models() const
+    { return m_models; }
+
+    Helpers* helpers() const
+    { return m_helpers; }
+
+    QrImageProvider* qrProvider() const
+    { return m_qrProvider; }
+
+    Identity* identity() const
+    { return m_identity; }
+
+    Q_INVOKABLE void setIdentity(Identity* identity);
+
+
+    void setupTray();
+    Q_INVOKABLE void onClose();
+
+    void setConnected(bool connected);
+
+    bool isConnected() const
+    { return m_connected; }
+
+
+private:
+    Models* m_models;
+
+    Helpers* m_helpers;
+
+    QrImageProvider* m_qrProvider;
+
+    Identity* m_identity;
+
+    GNUNet* m_gnunet;
+    QThread *m_gnunetThread;
+
+    QMenu* m_trayMenu;
+    QSystemTrayIcon* m_tray;
+    QAction* m_trayCloseAction;
+
+    //Store if the GNUNet service is connected
+    bool m_connected;
+
+
+    void close();
+    void startGNUNet();
+signals:
+    void connectedChanged(bool connected);
+    void setIdentitySignal();
+
+public slots:
+    void trayActivated(QSystemTrayIcon::ActivationReason reason);
+    void setTrayMessage(QString room, QString message);
+};
+
+//Those are the externals visible to the whole application ( globals)
+
+extern PsycCore* theApp;
+#endif // PSYCCORE_H

Modified: gnunet-qt/secushare/core/social/place.cpp
===================================================================
--- gnunet-qt/secushare/core/social/place.cpp   2015-11-12 18:30:33 UTC (rev 
36654)
+++ gnunet-qt/secushare/core/social/place.cpp   2015-11-12 18:30:37 UTC (rev 
36655)
@@ -1,86 +1,86 @@
-#include "place.h"
-
-#include "core/psyccore.h"
-
-#include <QApplication>
-#include <QClipboard>
-#include <QTime>
-
-/**
- * @brief Place::Place , constructor should receive the public key as title
- * @param key
- * @param parent
- */
-Place::Place(QString key, QObject *parent) :
-    QObject(parent)
-{
-    m_key = key;
-    m_status = "No status";
-    m_name = "No name";
-    m_type = "group";//thread;group;contact
-    m_isHost = false;
-
-    connect(this,&Place::addConversationSignal,
-            this,&Place::addConversationSlot, Qt::QueuedConnection);
-
-    connect(this,&Place::setTrayMessageSignal,
-            theApp,&PsycCore::setTrayMessage, Qt::QueuedConnection);
-}
-
-/**
- * @brief Place::copyToClipboard , copy the key to clipboard
- */
-void Place::copyToClipboard()
-{
-    QClipboard *clipboard = QApplication::clipboard();
-
-    clipboard->setText(m_key);
-}
-
-/**
- * @brief Place::talk , talk in the room
- * @param text
- */
-void Place::talk(QString text)
-{
-    if(m_isHost)
-    {
-        emit hostTalkSignal(this,text);
-    }
-    else
-    {
-        emit guestTalkSignal(this,text);
-    }
-}
-
-/**
- * @brief Place::addConversation , signal to the slot to add the conversation 
to place
- * @param text
- */
-void Place::addConversation(QString text)
-{
-    emit addConversationSignal(text);
-
-    //Set tray message
-    if(text.length() > 1)
-        emit setTrayMessageSignal(m_key,text);
-}
-
-
-/**
- * @brief Place::addConversationSlot , Slot to add the conversation to place
- * @param text
- */
-void Place::addConversationSlot(QString text)
-{
-
-    if(text.length() < 1)
-        return;
-
-    //Add Ttimestamp befor text
-    QString current = QTime::currentTime().toString("hh:mm:ss ap");
-
-    m_content += "<small>("+ current + ")</small> : " + text + "<br/>";
-
-    emit contentChanged(m_content);
-}
+#include "place.h"
+
+#include "core/psyccore.h"
+
+#include <QApplication>
+#include <QClipboard>
+#include <QTime>
+
+/**
+ * @brief Place::Place , constructor should receive the public key as title
+ * @param key
+ * @param parent
+ */
+Place::Place(QString key, QObject *parent) :
+    QObject(parent)
+{
+    m_key = key;
+    m_status = "No status";
+    m_name = "No name";
+    m_type = "group";//thread;group;contact
+    m_isHost = false;
+
+    connect(this,&Place::addConversationSignal,
+            this,&Place::addConversationSlot, Qt::QueuedConnection);
+
+    connect(this,&Place::setTrayMessageSignal,
+            theApp,&PsycCore::setTrayMessage, Qt::QueuedConnection);
+}
+
+/**
+ * @brief Place::copyToClipboard , copy the key to clipboard
+ */
+void Place::copyToClipboard()
+{
+    QClipboard *clipboard = QApplication::clipboard();
+
+    clipboard->setText(m_key);
+}
+
+/**
+ * @brief Place::talk , talk in the room
+ * @param text
+ */
+void Place::talk(QString text)
+{
+    if(m_isHost)
+    {
+        emit hostTalkSignal(this,text);
+    }
+    else
+    {
+        emit guestTalkSignal(this,text);
+    }
+}
+
+/**
+ * @brief Place::addConversation , signal to the slot to add the conversation 
to place
+ * @param text
+ */
+void Place::addConversation(QString text)
+{
+    emit addConversationSignal(text);
+
+    //Set tray message
+    if(text.length() > 1)
+        emit setTrayMessageSignal(m_key,text);
+}
+
+
+/**
+ * @brief Place::addConversationSlot , Slot to add the conversation to place
+ * @param text
+ */
+void Place::addConversationSlot(QString text)
+{
+
+    if(text.length() < 1)
+        return;
+
+    //Add Ttimestamp befor text
+    QString current = QTime::currentTime().toString("hh:mm:ss ap");
+
+    m_content += "<small>("+ current + ")</small> : " + text + "<br/>";
+
+    emit contentChanged(m_content);
+}

Modified: gnunet-qt/secushare/core/social/place.h
===================================================================
--- gnunet-qt/secushare/core/social/place.h     2015-11-12 18:30:33 UTC (rev 
36654)
+++ gnunet-qt/secushare/core/social/place.h     2015-11-12 18:30:37 UTC (rev 
36655)
@@ -1,154 +1,154 @@
-#ifndef PLACE_H
-#define PLACE_H
-
-#include <QObject>
-
-class Place : public QObject
-{
-    Q_OBJECT
-    Q_PROPERTY(QString name READ name WRITE setName NOTIFY nameChanged)
-    Q_PROPERTY(QString content READ content NOTIFY contentChanged)
-public:
-    explicit Place(QString key, QObject *parent = 0);
-
-    //Index
-    int getIndex() const
-    { return m_index; }
-    void setIndex(int index)
-    {
-        m_index = index;
-    }
-
-    //Name
-    QString name() const
-    { return m_name; }
-    void setName(QString name)
-    {
-        m_name = name;
-        emit nameChanged(name);
-    }
-
-    //Type
-    QString type() const
-    { return m_type; }
-    void setType(QString type)
-    {
-        m_type = type;
-        emit typeChanged(type);
-    }
-
-    //Status
-    QString status() const
-    { return m_status; }
-    void setStatus(QString status)
-    {
-        m_status = status;
-        emit statusChanged(status);
-    }
-
-    //Social Guest
-    struct GNUNET_SOCIAL_Guest* socialGuest() const
-    { return m_gst; }
-    void setSocialGuest(struct GNUNET_SOCIAL_Guest* guest)
-    {
-        m_gst = guest;
-    }
-
-    //Content
-    QString content() const
-    { return m_content; }
-
-
-    //Slicer
-    struct GNUNET_SOCIAL_Slicer* slicer() const
-    { return m_slicer; }
-    void setSlicer(struct GNUNET_SOCIAL_Slicer* slicer)
-    {
-        m_slicer = slicer;
-    }
-
-    //Host
-    struct GNUNET_SOCIAL_Host* host() const
-    { return m_hst; }
-    void setHost(struct GNUNET_SOCIAL_Host* host)
-    {
-        m_hst = host;
-        m_isHost = true;
-    }
-
-    //Is Host ?
-    bool isHost() const
-    { return m_isHost; }
-
-    //Private Key
-    struct GNUNET_CRYPTO_EddsaPrivateKey* privateKey() const
-    { return m_placeKey; }
-
-
-    void setPrivateKey(struct GNUNET_CRYPTO_EddsaPrivateKey* key)
-    {
-        m_placeKey = key;
-    }
-
-    //Public Key
-    struct GNUNET_CRYPTO_EddsaPublicKey* publicKey() const
-    { return m_placePubKey; }
-    void setPublicKey(struct GNUNET_CRYPTO_EddsaPublicKey* key)
-    {
-        m_placePubKey = key;
-    }
-
-
-
-    Q_INVOKABLE void copyToClipboard();
-    Q_INVOKABLE void talk(QString text);
-
-    void addConversation(QString text);
-
-private:
-    int m_index;
-    QString m_name;
-    QString m_type;
-    QString m_status;
-
-
-    QString m_content;
-
-    struct GNUNET_CRYPTO_EddsaPrivateKey *m_placeKey;
-    QString m_key;
-    //For guests
-    struct GNUNET_SOCIAL_Guest * m_gst;
-
-    //For hosts
-    bool m_isHost;
-    struct GNUNET_SOCIAL_Slicer* m_slicer;
-    struct GNUNET_SOCIAL_Host *m_hst;
-
-
-    struct GNUNET_CRYPTO_EddsaPublicKey* m_placePubKey;
-
-    //The peer got his inscrition approved ?
-    bool m_approved;
-
-signals:
-    void modifiedSignal(int index);
-    void nameChanged(QString name);
-    void typeChanged(QString type);
-    void statusChanged(QString status);
-
-    void contentChanged(QString content);
-
-    void guestTalkSignal (Place* place, QString text);
-    void hostTalkSignal (Place* place, QString text);
-
-    void addConversationSignal(QString text);
-    void setTrayMessageSignal (QString room, QString text);
-
-
-public slots:
-
-    void addConversationSlot(QString text);
-
-};
-
-#endif // PLACE_H
+#ifndef PLACE_H
+#define PLACE_H
+
+#include <QObject>
+
+class Place : public QObject
+{
+    Q_OBJECT
+    Q_PROPERTY(QString name READ name WRITE setName NOTIFY nameChanged)
+    Q_PROPERTY(QString content READ content NOTIFY contentChanged)
+public:
+    explicit Place(QString key, QObject *parent = 0);
+
+    //Index
+    int getIndex() const
+    { return m_index; }
+    void setIndex(int index)
+    {
+        m_index = index;
+    }
+
+    //Name
+    QString name() const
+    { return m_name; }
+    void setName(QString name)
+    {
+        m_name = name;
+        emit nameChanged(name);
+    }
+
+    //Type
+    QString type() const
+    { return m_type; }
+    void setType(QString type)
+    {
+        m_type = type;
+        emit typeChanged(type);
+    }
+
+    //Status
+    QString status() const
+    { return m_status; }
+    void setStatus(QString status)
+    {
+        m_status = status;
+        emit statusChanged(status);
+    }
+
+    //Social Guest
+    struct GNUNET_SOCIAL_Guest* socialGuest() const
+    { return m_gst; }
+    void setSocialGuest(struct GNUNET_SOCIAL_Guest* guest)
+    {
+        m_gst = guest;
+    }
+
+    //Content
+    QString content() const
+    { return m_content; }
+
+
+    //Slicer
+    struct GNUNET_SOCIAL_Slicer* slicer() const
+    { return m_slicer; }
+    void setSlicer(struct GNUNET_SOCIAL_Slicer* slicer)
+    {
+        m_slicer = slicer;
+    }
+
+    //Host
+    struct GNUNET_SOCIAL_Host* host() const
+    { return m_hst; }
+    void setHost(struct GNUNET_SOCIAL_Host* host)
+    {
+        m_hst = host;
+        m_isHost = true;
+    }
+
+    //Is Host ?
+    bool isHost() const
+    { return m_isHost; }
+
+    //Private Key
+    struct GNUNET_CRYPTO_EddsaPrivateKey* privateKey() const
+    { return m_placeKey; }
+
+
+    void setPrivateKey(struct GNUNET_CRYPTO_EddsaPrivateKey* key)
+    {
+        m_placeKey = key;
+    }
+
+    //Public Key
+    struct GNUNET_CRYPTO_EddsaPublicKey* publicKey() const
+    { return m_placePubKey; }
+    void setPublicKey(struct GNUNET_CRYPTO_EddsaPublicKey* key)
+    {
+        m_placePubKey = key;
+    }
+
+
+
+    Q_INVOKABLE void copyToClipboard();
+    Q_INVOKABLE void talk(QString text);
+
+    void addConversation(QString text);
+
+private:
+    int m_index;
+    QString m_name;
+    QString m_type;
+    QString m_status;
+
+
+    QString m_content;
+
+    struct GNUNET_CRYPTO_EddsaPrivateKey *m_placeKey;
+    QString m_key;
+    //For guests
+    struct GNUNET_SOCIAL_Guest * m_gst;
+
+    //For hosts
+    bool m_isHost;
+    struct GNUNET_SOCIAL_Slicer* m_slicer;
+    struct GNUNET_SOCIAL_Host *m_hst;
+
+
+    struct GNUNET_CRYPTO_EddsaPublicKey* m_placePubKey;
+
+    //The peer got his inscrition approved ?
+    bool m_approved;
+
+signals:
+    void modifiedSignal(int index);
+    void nameChanged(QString name);
+    void typeChanged(QString type);
+    void statusChanged(QString status);
+
+    void contentChanged(QString content);
+
+    void guestTalkSignal (Place* place, QString text);
+    void hostTalkSignal (Place* place, QString text);
+
+    void addConversationSignal(QString text);
+    void setTrayMessageSignal (QString room, QString text);
+
+
+public slots:
+
+    void addConversationSlot(QString text);
+
+};
+
+#endif // PLACE_H

Modified: gnunet-qt/secushare/core/social/socialservice.cpp
===================================================================
--- gnunet-qt/secushare/core/social/socialservice.cpp   2015-11-12 18:30:33 UTC 
(rev 36654)
+++ gnunet-qt/secushare/core/social/socialservice.cpp   2015-11-12 18:30:37 UTC 
(rev 36655)
@@ -1,486 +1,486 @@
-#include "socialservice.h"
-#include "core/psyccore.h"
-
-#include "core/identity/identity.h"
-#include "models/models.h"
-#include "models/PlacesModel.h"
-
-#include "core/gnunet/gnunet.h"
-#include "psyc.h"
-#include "preferences/preferences.h"
-
-#include "core/social/place.h"
-
-
-#define DATA2ARG(data) data, sizeof (data)
-
-
-SocialService::SocialService(QObject *parent) :
-    QObject(parent)
-{
-    
-
-    //Connect slots
-    connect(this,&SocialService::createPlaceSignal,
-            this,&SocialService::createPlaceSlot, Qt::QueuedConnection);
-
-    connect(this,&SocialService::enterRoomSignal,
-            this,&SocialService::enterRoomSlot, Qt::QueuedConnection);
-    
-}
-
-
-
-
-/**
- * @brief Should be called when the GNUnet service is connected to start 
everything
- * @param config
- */
-void SocialService::start(struct GNUNET_CONFIGURATION_Handle *config)
-{
-
-
-    this->m_config = config;
-
-    //Grab selected identity at home screen
-    Identity* iden = theApp->identity();
-    m_hostEgo = iden->ego();
-
-    //Load rooms
-    theApp->models()->placesModel()->load();
-
-}
-
-
-void SocialService::createPlace(QString name)
-{
-    emit createPlaceSignal(name);
-}
-
-void SocialService::createPlaceSlot(QString name)
-{
-    GNUNET_log (GNUNET_ERROR_TYPE_WARNING, "Creating a New Place.\n");
-
-
-    QString filename = thePrefs->getFolder() + "/places/" + name + ".private";
-
-    GNUNET_CRYPTO_EddsaPrivateKey *placeKey = 
GNUNET_CRYPTO_eddsa_key_create_from_file(filename.toStdString().c_str());
-    GNUNET_CRYPTO_EddsaPublicKey *placePubKey= new 
GNUNET_CRYPTO_EddsaPublicKey;
-
-    GNUNET_CRYPTO_eddsa_key_get_public (placeKey, placePubKey);
-
-    char* id = GNUNET_CRYPTO_eddsa_public_key_to_string (placePubKey);
-    QString strId = QString::fromLatin1(id);
-
-    Place* newPlace = theApp->models()->placesModel()->add(strId);
-
-    newPlace->setName(strId);
-    newPlace->setPrivateKey(placeKey);
-    newPlace->setPublicKey(placePubKey);
-
-    GNUNET_SOCIAL_Slicer* slicer = GNUNET_SOCIAL_slicer_create ();
-    GNUNET_SOCIAL_slicer_method_add (slicer, "",
-                                     &hostRecvMethodCallback,
-                                     &hostRecvModifierCallback,
-                                     &hostRecvDataCallback,
-                                     &hostRecvEomCallback,
-                                     newPlace);
-    newPlace->setSlicer(slicer);
-
-    GNUNET_SOCIAL_Host *
-        host = GNUNET_SOCIAL_host_enter (m_config, m_hostEgo, placeKey,
-                                         GNUNET_PSYC_CHANNEL_PRIVATE,
-                                         slicer,
-                                         &hostEnteredCallback,
-                                         &hostAnswerDoorCallback,
-                                         &hostFarewellCallback,
-                                         newPlace);
-    newPlace->setHost(host);
-
-    connect(newPlace,&Place::hostTalkSignal,
-            this,&SocialService::hostTalk, Qt::QueuedConnection);
-
-    //Save hosts
-    theApp->models()->placesModel()->save();
-
-}
-
-
-void
-SocialService::hostRecvMethodCallback (void *cls,
-                                       const struct GNUNET_PSYC_MessageMethod 
*meth,
-                                       uint64_t message_id,
-                                       uint32_t flags,
-                                       const struct GNUNET_SOCIAL_Nym *nym,
-                                       const char *method_name)
-{
-    GNUNET_log (GNUNET_ERROR_TYPE_WARNING,
-                "Test #: Host received method for message ID %i:\n"
-                "%s\n",
-                message_id, method_name);
-    /* FIXME: check message */
-}
-
-
-void
-SocialService::hostRecvModifierCallback (void *cls,
-                                         const struct GNUNET_MessageHeader 
*msg,
-                                         uint64_t message_id,
-                                         enum GNUNET_ENV_Operator oper,
-                                         const char *name,
-                                         const void *value,
-                                         uint16_t value_size,
-                                         uint16_t full_value_size)
-{
-    /* GNUNET_log (GNUNET_ERROR_TYPE_WARNING,
-                "Test #: Host received modifier for message ID %i:\n"
-                "%i %s: %i %s\n",
-                message_id, oper, name, value_size, value);
-    */
-
-
-    QString str = QString::fromLatin1((char *)value);
-
-    qWarning() << "Host received modifier for message ID" << message_id << 
oper << name << value_size << str;
-}
-
-
-void
-SocialService::hostRecvDataCallback (void *cls,
-                                     const struct GNUNET_MessageHeader *msg,
-                                     uint64_t message_id,
-                                     uint64_t data_offset,
-                                     const void *data,
-                                     uint16_t data_size)
-{
-    /*GNUNET_log (GNUNET_ERROR_TYPE_WARNING,
-                "Test #: Host received data for message ID %i:\n"
-                "%.*s\n",
-                message_id, data_size, data);*/
-
-    QString str = QString::fromLatin1((char *)data);
-
-    Place* place = (Place*)cls;
-
-    qWarning() << "Host received data for message ID" << message_id << 
data_size << str;
-
-    place->addConversation(str);
-}
-
-
-void
-SocialService::hostRecvEomCallback (void *cls,
-                                    const struct GNUNET_MessageHeader *msg,
-                                    uint64_t message_id,
-                                    uint8_t cancelled)
-{
-    GNUNET_log (GNUNET_ERROR_TYPE_WARNING,
-                "Test #: Host received end of message ID %i, cancelled: %u\n",
-                message_id, cancelled);
-    /*
-  switch (test)
-  {
-  case TEST_HOST_ANNOUNCE:
-    test = TEST_HOST_ANNOUNCE_END;
-    //host_announce2 ();
-    break;
-
-  case TEST_HOST_ANNOUNCE_END:
-    guest_talk ();
-    break;
-
-  case TEST_GUEST_TALK:
-    guest_leave ();
-    break;
-
-  default:
-    GNUNET_assert (0);
-  }*/
-}
-
-
-void
-SocialService::hostAnswerDoorCallback (void *cls,
-                                       struct GNUNET_SOCIAL_Nym *nym,
-                                       const char *method_name,
-                                       struct GNUNET_ENV_Environment *env,
-                                       size_t data_size,
-                                       const void *data)
-{
-
-    
theApp->gnunet()->social()->hostAnswerDoor(cls,nym,method_name,env,data_size,data);
-
-
-
-}
-
-void
-SocialService::hostAnswerDoor (void *cls,
-                               struct GNUNET_SOCIAL_Nym *nym,
-                               const char *method_name,
-                               struct GNUNET_ENV_Environment *env,
-                               size_t data_size,
-                               const void *data)
-{
-
-    GNUNET_log (GNUNET_ERROR_TYPE_WARNING,
-                "Host received entry request from guest .\n"
-                );
-    GNUNET_log (GNUNET_ERROR_TYPE_WARNING,
-                "%s\n%.*s\n",
-                method_name, data_size, data);
-
-    Place* place = (Place*)cls;
-
-
-    //TODO: Give option to deny
-
-    GNUNET_PSYC_Message *join_resp = GNUNET_PSYC_message_create ("_admit_nym", 
env,
-                                                                 DATA2ARG 
("Welcome, nym!"));
-    GNUNET_SOCIAL_host_entry_decision (place->host(), nym, GNUNET_YES, 
join_resp);
-
-
-    /*
-  switch (test)
-  {
-  case TEST_HOST_ANSWER_DOOR_REFUSE:
-    test = TEST_GUEST_RECV_ENTRY_DCSN_REFUSE;
-    join_resp = GNUNET_PSYC_message_create ("_refuse_nym", env,
-                                            DATA2ARG ("Go away!"));
-    GNUNET_SOCIAL_host_entry_decision (hst, nym, GNUNET_NO, join_resp);
-    break;
-
-  case TEST_HOST_ANSWER_DOOR_ADMIT:
-    test = TEST_GUEST_RECV_ENTRY_DCSN_ADMIT;
-    join_resp = GNUNET_PSYC_message_create ("_admit_nym", env,
-                                            DATA2ARG ("Welcome, nym!"));
-    GNUNET_SOCIAL_host_entry_decision (hst, nym, GNUNET_YES, join_resp);
-    break;
-
-  default:
-    GNUNET_assert (0);
-  }*/
-}
-
-
-void SocialService::hostEnteredCallback (void *cls, int result,
-                                         uint64_t max_message_id)
-{
-    GNUNET_log (GNUNET_ERROR_TYPE_WARNING, "Host entered to place.\n");
-
-    //GNUNET_IDENTITY_create (id, guest_name, &id_guest_created, NULL);
-}
-
-void
-SocialService::hostFarewellCallback (void *cls,
-                                     const struct GNUNET_SOCIAL_Nym *nym,
-                                     struct GNUNET_ENV_Environment *env)
-{
-    // FIXME: this function is not called yet
-
-    const struct GNUNET_CRYPTO_EcdsaPublicKey *
-        nym_key = GNUNET_SOCIAL_nym_get_key (nym);
-    GNUNET_log (GNUNET_ERROR_TYPE_WARNING,
-                "Nym %s has left the place.\n",
-                GNUNET_CRYPTO_ecdsa_public_key_to_string (nym_key));
-
-    /*
-  GNUNET_assert (0 == memcmp (&guest_pub_key, nym_key, sizeof (*nym_key)));
-
-  GNUNET_SCHEDULER_add_now (&schedule_host_leave, NULL);*/
-}
-
-
-void
-SocialService::guestRecvLocalEnterCallback (void *cls, int result, uint64_t 
max_message_id)
-{
-
-    theApp->gnunet()->social()->guestRecvLocalEnter(cls,result,max_message_id);
-
-}
-
-void
-SocialService::guestRecvLocalEnter (void *cls, int result, uint64_t 
max_message_id)
-{
-    GNUNET_log (GNUNET_ERROR_TYPE_WARNING, "Guest entered to local place, 
result : %i.\n",result);
-
-
-
-}
-
-void
-SocialService::guestRecvEntryDecisionCallback (void *cls,
-                                               int is_admitted,
-                                               const struct 
GNUNET_PSYC_Message *entry_msg)
-{
-    GNUNET_log (GNUNET_ERROR_TYPE_WARNING,
-                "Guest received entry decision: %d.\n",
-                is_admitted);
-
-    if (NULL != entry_msg)
-    {
-        struct GNUNET_ENV_Environment *env = GNUNET_ENV_environment_create ();
-        const char *method_name = NULL;
-        const void *data = NULL;
-        uint16_t data_size = 0;
-
-        struct GNUNET_PSYC_MessageHeader *
-            pmsg = GNUNET_PSYC_message_header_create_from_psyc (entry_msg);
-        GNUNET_PSYC_message_parse (pmsg, &method_name, env, &data, &data_size);
-
-        GNUNET_log (GNUNET_ERROR_TYPE_DEBUG,
-                    "%s\n%.*s\n",
-                    method_name, data_size, data);
-        GNUNET_free (pmsg);
-        /* FIXME: check response message */
-    }
-
-    /*
-  switch (test)
-  {
-  case TEST_GUEST_RECV_ENTRY_DCSN_REFUSE:
-    GNUNET_assert (GNUNET_NO == is_admitted);
-    guest_enter ();
-    break;
-
-  case TEST_GUEST_RECV_ENTRY_DCSN_ADMIT:
-    GNUNET_assert (GNUNET_YES == is_admitted);
-    host_announce ();
-    break;
-
-  default:
-    GNUNET_assert (0);
-  }*/
-}
-
-
-
-void
-SocialService::enterRoom(QString pubKey, QString peerIdentity)
-{
-    emit enterRoomSignal(pubKey,peerIdentity);
-}
-
-void
-SocialService::enterRoomSlot(QString pubKey, QString peerIdentity)
-{
-    GNUNET_log (GNUNET_ERROR_TYPE_WARNING, "Entering to place %s as 
guest.\n",pubKey.toStdString().c_str() );
-
-    GuestEnterMessage emsg;
-
-    emsg.method_name = "_request_enter";
-    emsg.env = GNUNET_ENV_environment_create ();
-    GNUNET_ENV_environment_add (emsg.env, GNUNET_ENV_OP_ASSIGN,
-                                "_abc", "abc def", 7);
-    GNUNET_ENV_environment_add (emsg.env, GNUNET_ENV_OP_ASSIGN,
-                                "_abc_def", "abc def ghi", 11);
-    emsg.data = "let me in";
-    emsg.data_size = strlen (emsg.data) + 1;
-    emsg.msg = GNUNET_PSYC_message_create (emsg.method_name, emsg.env,
-                                           emsg.data, emsg.data_size);
-
-    GNUNET_CRYPTO_EddsaPublicKey* convertedRoomKey = new 
GNUNET_CRYPTO_EddsaPublicKey;
-
-    int result = GNUNET_CRYPTO_eddsa_public_key_from_string 
(pubKey.toStdString().c_str(),
-                                                             pubKey.length(),
-                                                             convertedRoomKey);
-
-
-
-    if(result != GNUNET_OK) // Failed conversion
-        return;
-
-
-    Place* newPlace = theApp->models()->placesModel()->add(pubKey);
-
-    newPlace->setName(pubKey);
-    newPlace->setPublicKey(convertedRoomKey);
-
-    GNUNET_SOCIAL_Slicer* slicer = GNUNET_SOCIAL_slicer_create ();
-    GNUNET_SOCIAL_slicer_method_add (slicer, "",
-                                     &hostRecvMethodCallback,
-                                     &hostRecvModifierCallback,
-                                     &hostRecvDataCallback,
-                                     &hostRecvEomCallback,
-                                     newPlace);
-
-    newPlace->setSlicer(slicer);
-
-
-    //TODO change place pub key to arbitrary value
-    GNUNET_SOCIAL_Guest *gst = GNUNET_SOCIAL_guest_enter (m_config, m_hostEgo, 
convertedRoomKey,
-                                                          
theApp->gnunet()->myPeer(), 0, NULL, emsg.msg,
-                                                          slicer, 
&guestRecvLocalEnterCallback,
-                                                          
&guestRecvEntryDecisionCallback, newPlace);
-    newPlace->setSocialGuest(gst);
-
-    connect(newPlace,&Place::guestTalkSignal,
-            this,&SocialService::guestTalk, Qt::QueuedConnection);
-
-
-
-
-}
-
-static void
-transmit_resume (void *cls, const struct GNUNET_SCHEDULER_TaskContext *tc)
-{
-    GNUNET_log (GNUNET_ERROR_TYPE_DEBUG, "Transmission resumed.\n");
-    TransmitClosure *tmit = (TransmitClosure *)cls;
-    if (NULL != tmit->host_ann)
-        GNUNET_SOCIAL_host_announce_resume (tmit->host_ann);
-    else
-        GNUNET_SOCIAL_guest_talk_resume (tmit->guest_talk);
-}
-
-
-int
-notify_data (void *cls, uint16_t *data_size, void *data)
-{
-    TransmitClosure *tmit = (TransmitClosure *)cls;
-    if (NULL != tmit->env)
-    {
-        GNUNET_ENV_environment_destroy (tmit->env);
-        tmit->env = NULL;
-    }
-    GNUNET_log (GNUNET_ERROR_TYPE_DEBUG, "data_sent: %z, data_size: %u\n",
-                tmit->data_sent, *data_size);
-    std::string sub = tmit->data.substr (tmit->data_sent, *data_size);
-    *data_size = sub.size ();
-    GNUNET_log (GNUNET_ERROR_TYPE_DEBUG, "data_size: %u\n", *data_size);
-    memcpy (data, sub.c_str (), *data_size);
-    tmit->data_sent += *data_size;
-
-    return (tmit->data.size () <= tmit->data_sent)
-        ? GNUNET_YES : GNUNET_NO;
-}
-
-void
-SocialService::guestTalk (Place* place, QString text)
-{
-    TransmitClosure* tmit = new TransmitClosure;
-    tmit->env = NULL;
-    tmit->data = text.toStdString();
-    tmit->data_sent = 0;
-    GNUNET_log (GNUNET_ERROR_TYPE_DEBUG, "data: %s\n", tmit->data.c_str ());
-    tmit->guest_talk
-            = GNUNET_SOCIAL_guest_talk (place->socialGuest(), 
"_message_guest", NULL,
-                                        &notify_data, tmit,
-                                        GNUNET_SOCIAL_TALK_NONE);
-    place->addConversation(text);
-}
-
-void
-SocialService::hostTalk(Place* place, QString text)
-{
-
-  TransmitClosure* tmit = new TransmitClosure();
-  tmit->env = NULL;
-  tmit->data = text.toStdString();
-  tmit->data_sent = 0;
-  GNUNET_log (GNUNET_ERROR_TYPE_DEBUG, "data: %s\n", tmit->data.c_str ());
-  tmit->host_ann
-    = GNUNET_SOCIAL_host_announce (place->host(), "_message_host", tmit->env,
-                                   &notify_data, tmit,
-                                   GNUNET_SOCIAL_ANNOUNCE_NONE);
-}
+#include "socialservice.h"
+#include "core/psyccore.h"
+
+#include "core/identity/identity.h"
+#include "models/models.h"
+#include "models/PlacesModel.h"
+
+#include "core/gnunet/gnunet.h"
+#include "psyc.h"
+#include "preferences/preferences.h"
+
+#include "core/social/place.h"
+
+
+#define DATA2ARG(data) data, sizeof (data)
+
+
+SocialService::SocialService(QObject *parent) :
+    QObject(parent)
+{
+    
+
+    //Connect slots
+    connect(this,&SocialService::createPlaceSignal,
+            this,&SocialService::createPlaceSlot, Qt::QueuedConnection);
+
+    connect(this,&SocialService::enterRoomSignal,
+            this,&SocialService::enterRoomSlot, Qt::QueuedConnection);
+    
+}
+
+
+
+
+/**
+ * @brief Should be called when the GNUnet service is connected to start 
everything
+ * @param config
+ */
+void SocialService::start(struct GNUNET_CONFIGURATION_Handle *config)
+{
+
+
+    this->m_config = config;
+
+    //Grab selected identity at home screen
+    Identity* iden = theApp->identity();
+    m_hostEgo = iden->ego();
+
+    //Load rooms
+    theApp->models()->placesModel()->load();
+
+}
+
+
+void SocialService::createPlace(QString name)
+{
+    emit createPlaceSignal(name);
+}
+
+void SocialService::createPlaceSlot(QString name)
+{
+    GNUNET_log (GNUNET_ERROR_TYPE_WARNING, "Creating a New Place.\n");
+
+
+    QString filename = thePrefs->getFolder() + "/places/" + name + ".private";
+
+    GNUNET_CRYPTO_EddsaPrivateKey *placeKey = 
GNUNET_CRYPTO_eddsa_key_create_from_file(filename.toStdString().c_str());
+    GNUNET_CRYPTO_EddsaPublicKey *placePubKey= new 
GNUNET_CRYPTO_EddsaPublicKey;
+
+    GNUNET_CRYPTO_eddsa_key_get_public (placeKey, placePubKey);
+
+    char* id = GNUNET_CRYPTO_eddsa_public_key_to_string (placePubKey);
+    QString strId = QString::fromLatin1(id);
+
+    Place* newPlace = theApp->models()->placesModel()->add(strId);
+
+    newPlace->setName(strId);
+    newPlace->setPrivateKey(placeKey);
+    newPlace->setPublicKey(placePubKey);
+
+    GNUNET_SOCIAL_Slicer* slicer = GNUNET_SOCIAL_slicer_create ();
+    GNUNET_SOCIAL_slicer_method_add (slicer, "",
+                                     &hostRecvMethodCallback,
+                                     &hostRecvModifierCallback,
+                                     &hostRecvDataCallback,
+                                     &hostRecvEomCallback,
+                                     newPlace);
+    newPlace->setSlicer(slicer);
+
+    GNUNET_SOCIAL_Host *
+        host = GNUNET_SOCIAL_host_enter (m_config, m_hostEgo, placeKey,
+                                         GNUNET_PSYC_CHANNEL_PRIVATE,
+                                         slicer,
+                                         &hostEnteredCallback,
+                                         &hostAnswerDoorCallback,
+                                         &hostFarewellCallback,
+                                         newPlace);
+    newPlace->setHost(host);
+
+    connect(newPlace,&Place::hostTalkSignal,
+            this,&SocialService::hostTalk, Qt::QueuedConnection);
+
+    //Save hosts
+    theApp->models()->placesModel()->save();
+
+}
+
+
+void
+SocialService::hostRecvMethodCallback (void *cls,
+                                       const struct GNUNET_PSYC_MessageMethod 
*meth,
+                                       uint64_t message_id,
+                                       uint32_t flags,
+                                       const struct GNUNET_SOCIAL_Nym *nym,
+                                       const char *method_name)
+{
+    GNUNET_log (GNUNET_ERROR_TYPE_WARNING,
+                "Test #: Host received method for message ID %i:\n"
+                "%s\n",
+                message_id, method_name);
+    /* FIXME: check message */
+}
+
+
+void
+SocialService::hostRecvModifierCallback (void *cls,
+                                         const struct GNUNET_MessageHeader 
*msg,
+                                         uint64_t message_id,
+                                         enum GNUNET_ENV_Operator oper,
+                                         const char *name,
+                                         const void *value,
+                                         uint16_t value_size,
+                                         uint16_t full_value_size)
+{
+    /* GNUNET_log (GNUNET_ERROR_TYPE_WARNING,
+                "Test #: Host received modifier for message ID %i:\n"
+                "%i %s: %i %s\n",
+                message_id, oper, name, value_size, value);
+    */
+
+
+    QString str = QString::fromLatin1((char *)value);
+
+    qWarning() << "Host received modifier for message ID" << message_id << 
oper << name << value_size << str;
+}
+
+
+void
+SocialService::hostRecvDataCallback (void *cls,
+                                     const struct GNUNET_MessageHeader *msg,
+                                     uint64_t message_id,
+                                     uint64_t data_offset,
+                                     const void *data,
+                                     uint16_t data_size)
+{
+    /*GNUNET_log (GNUNET_ERROR_TYPE_WARNING,
+                "Test #: Host received data for message ID %i:\n"
+                "%.*s\n",
+                message_id, data_size, data);*/
+
+    QString str = QString::fromLatin1((char *)data);
+
+    Place* place = (Place*)cls;
+
+    qWarning() << "Host received data for message ID" << message_id << 
data_size << str;
+
+    place->addConversation(str);
+}
+
+
+void
+SocialService::hostRecvEomCallback (void *cls,
+                                    const struct GNUNET_MessageHeader *msg,
+                                    uint64_t message_id,
+                                    uint8_t cancelled)
+{
+    GNUNET_log (GNUNET_ERROR_TYPE_WARNING,
+                "Test #: Host received end of message ID %i, cancelled: %u\n",
+                message_id, cancelled);
+    /*
+  switch (test)
+  {
+  case TEST_HOST_ANNOUNCE:
+    test = TEST_HOST_ANNOUNCE_END;
+    //host_announce2 ();
+    break;
+
+  case TEST_HOST_ANNOUNCE_END:
+    guest_talk ();
+    break;
+
+  case TEST_GUEST_TALK:
+    guest_leave ();
+    break;
+
+  default:
+    GNUNET_assert (0);
+  }*/
+}
+
+
+void
+SocialService::hostAnswerDoorCallback (void *cls,
+                                       struct GNUNET_SOCIAL_Nym *nym,
+                                       const char *method_name,
+                                       struct GNUNET_ENV_Environment *env,
+                                       size_t data_size,
+                                       const void *data)
+{
+
+    
theApp->gnunet()->social()->hostAnswerDoor(cls,nym,method_name,env,data_size,data);
+
+
+
+}
+
+void
+SocialService::hostAnswerDoor (void *cls,
+                               struct GNUNET_SOCIAL_Nym *nym,
+                               const char *method_name,
+                               struct GNUNET_ENV_Environment *env,
+                               size_t data_size,
+                               const void *data)
+{
+
+    GNUNET_log (GNUNET_ERROR_TYPE_WARNING,
+                "Host received entry request from guest .\n"
+                );
+    GNUNET_log (GNUNET_ERROR_TYPE_WARNING,
+                "%s\n%.*s\n",
+                method_name, data_size, data);
+
+    Place* place = (Place*)cls;
+
+
+    //TODO: Give option to deny
+
+    GNUNET_PSYC_Message *join_resp = GNUNET_PSYC_message_create ("_admit_nym", 
env,
+                                                                 DATA2ARG 
("Welcome, nym!"));
+    GNUNET_SOCIAL_host_entry_decision (place->host(), nym, GNUNET_YES, 
join_resp);
+
+
+    /*
+  switch (test)
+  {
+  case TEST_HOST_ANSWER_DOOR_REFUSE:
+    test = TEST_GUEST_RECV_ENTRY_DCSN_REFUSE;
+    join_resp = GNUNET_PSYC_message_create ("_refuse_nym", env,
+                                            DATA2ARG ("Go away!"));
+    GNUNET_SOCIAL_host_entry_decision (hst, nym, GNUNET_NO, join_resp);
+    break;
+
+  case TEST_HOST_ANSWER_DOOR_ADMIT:
+    test = TEST_GUEST_RECV_ENTRY_DCSN_ADMIT;
+    join_resp = GNUNET_PSYC_message_create ("_admit_nym", env,
+                                            DATA2ARG ("Welcome, nym!"));
+    GNUNET_SOCIAL_host_entry_decision (hst, nym, GNUNET_YES, join_resp);
+    break;
+
+  default:
+    GNUNET_assert (0);
+  }*/
+}
+
+
+void SocialService::hostEnteredCallback (void *cls, int result,
+                                         uint64_t max_message_id)
+{
+    GNUNET_log (GNUNET_ERROR_TYPE_WARNING, "Host entered to place.\n");
+
+    //GNUNET_IDENTITY_create (id, guest_name, &id_guest_created, NULL);
+}
+
+void
+SocialService::hostFarewellCallback (void *cls,
+                                     const struct GNUNET_SOCIAL_Nym *nym,
+                                     struct GNUNET_ENV_Environment *env)
+{
+    // FIXME: this function is not called yet
+
+    const struct GNUNET_CRYPTO_EcdsaPublicKey *
+        nym_key = GNUNET_SOCIAL_nym_get_key (nym);
+    GNUNET_log (GNUNET_ERROR_TYPE_WARNING,
+                "Nym %s has left the place.\n",
+                GNUNET_CRYPTO_ecdsa_public_key_to_string (nym_key));
+
+    /*
+  GNUNET_assert (0 == memcmp (&guest_pub_key, nym_key, sizeof (*nym_key)));
+
+  GNUNET_SCHEDULER_add_now (&schedule_host_leave, NULL);*/
+}
+
+
+void
+SocialService::guestRecvLocalEnterCallback (void *cls, int result, uint64_t 
max_message_id)
+{
+
+    theApp->gnunet()->social()->guestRecvLocalEnter(cls,result,max_message_id);
+
+}
+
+void
+SocialService::guestRecvLocalEnter (void *cls, int result, uint64_t 
max_message_id)
+{
+    GNUNET_log (GNUNET_ERROR_TYPE_WARNING, "Guest entered to local place, 
result : %i.\n",result);
+
+
+
+}
+
+void
+SocialService::guestRecvEntryDecisionCallback (void *cls,
+                                               int is_admitted,
+                                               const struct 
GNUNET_PSYC_Message *entry_msg)
+{
+    GNUNET_log (GNUNET_ERROR_TYPE_WARNING,
+                "Guest received entry decision: %d.\n",
+                is_admitted);
+
+    if (NULL != entry_msg)
+    {
+        struct GNUNET_ENV_Environment *env = GNUNET_ENV_environment_create ();
+        const char *method_name = NULL;
+        const void *data = NULL;
+        uint16_t data_size = 0;
+
+        struct GNUNET_PSYC_MessageHeader *
+            pmsg = GNUNET_PSYC_message_header_create_from_psyc (entry_msg);
+        GNUNET_PSYC_message_parse (pmsg, &method_name, env, &data, &data_size);
+
+        GNUNET_log (GNUNET_ERROR_TYPE_DEBUG,
+                    "%s\n%.*s\n",
+                    method_name, data_size, data);
+        GNUNET_free (pmsg);
+        /* FIXME: check response message */
+    }
+
+    /*
+  switch (test)
+  {
+  case TEST_GUEST_RECV_ENTRY_DCSN_REFUSE:
+    GNUNET_assert (GNUNET_NO == is_admitted);
+    guest_enter ();
+    break;
+
+  case TEST_GUEST_RECV_ENTRY_DCSN_ADMIT:
+    GNUNET_assert (GNUNET_YES == is_admitted);
+    host_announce ();
+    break;
+
+  default:
+    GNUNET_assert (0);
+  }*/
+}
+
+
+
+void
+SocialService::enterRoom(QString pubKey, QString peerIdentity)
+{
+    emit enterRoomSignal(pubKey,peerIdentity);
+}
+
+void
+SocialService::enterRoomSlot(QString pubKey, QString peerIdentity)
+{
+    GNUNET_log (GNUNET_ERROR_TYPE_WARNING, "Entering to place %s as 
guest.\n",pubKey.toStdString().c_str() );
+
+    GuestEnterMessage emsg;
+
+    emsg.method_name = "_request_enter";
+    emsg.env = GNUNET_ENV_environment_create ();
+    GNUNET_ENV_environment_add (emsg.env, GNUNET_ENV_OP_ASSIGN,
+                                "_abc", "abc def", 7);
+    GNUNET_ENV_environment_add (emsg.env, GNUNET_ENV_OP_ASSIGN,
+                                "_abc_def", "abc def ghi", 11);
+    emsg.data = "let me in";
+    emsg.data_size = strlen (emsg.data) + 1;
+    emsg.msg = GNUNET_PSYC_message_create (emsg.method_name, emsg.env,
+                                           emsg.data, emsg.data_size);
+
+    GNUNET_CRYPTO_EddsaPublicKey* convertedRoomKey = new 
GNUNET_CRYPTO_EddsaPublicKey;
+
+    int result = GNUNET_CRYPTO_eddsa_public_key_from_string 
(pubKey.toStdString().c_str(),
+                                                             pubKey.length(),
+                                                             convertedRoomKey);
+
+
+
+    if(result != GNUNET_OK) // Failed conversion
+        return;
+
+
+    Place* newPlace = theApp->models()->placesModel()->add(pubKey);
+
+    newPlace->setName(pubKey);
+    newPlace->setPublicKey(convertedRoomKey);
+
+    GNUNET_SOCIAL_Slicer* slicer = GNUNET_SOCIAL_slicer_create ();
+    GNUNET_SOCIAL_slicer_method_add (slicer, "",
+                                     &hostRecvMethodCallback,
+                                     &hostRecvModifierCallback,
+                                     &hostRecvDataCallback,
+                                     &hostRecvEomCallback,
+                                     newPlace);
+
+    newPlace->setSlicer(slicer);
+
+
+    //TODO change place pub key to arbitrary value
+    GNUNET_SOCIAL_Guest *gst = GNUNET_SOCIAL_guest_enter (m_config, m_hostEgo, 
convertedRoomKey,
+                                                          
theApp->gnunet()->myPeer(), 0, NULL, emsg.msg,
+                                                          slicer, 
&guestRecvLocalEnterCallback,
+                                                          
&guestRecvEntryDecisionCallback, newPlace);
+    newPlace->setSocialGuest(gst);
+
+    connect(newPlace,&Place::guestTalkSignal,
+            this,&SocialService::guestTalk, Qt::QueuedConnection);
+
+
+
+
+}
+
+static void
+transmit_resume (void *cls, const struct GNUNET_SCHEDULER_TaskContext *tc)
+{
+    GNUNET_log (GNUNET_ERROR_TYPE_DEBUG, "Transmission resumed.\n");
+    TransmitClosure *tmit = (TransmitClosure *)cls;
+    if (NULL != tmit->host_ann)
+        GNUNET_SOCIAL_host_announce_resume (tmit->host_ann);
+    else
+        GNUNET_SOCIAL_guest_talk_resume (tmit->guest_talk);
+}
+
+
+int
+notify_data (void *cls, uint16_t *data_size, void *data)
+{
+    TransmitClosure *tmit = (TransmitClosure *)cls;
+    if (NULL != tmit->env)
+    {
+        GNUNET_ENV_environment_destroy (tmit->env);
+        tmit->env = NULL;
+    }
+    GNUNET_log (GNUNET_ERROR_TYPE_DEBUG, "data_sent: %z, data_size: %u\n",
+                tmit->data_sent, *data_size);
+    std::string sub = tmit->data.substr (tmit->data_sent, *data_size);
+    *data_size = sub.size ();
+    GNUNET_log (GNUNET_ERROR_TYPE_DEBUG, "data_size: %u\n", *data_size);
+    memcpy (data, sub.c_str (), *data_size);
+    tmit->data_sent += *data_size;
+
+    return (tmit->data.size () <= tmit->data_sent)
+        ? GNUNET_YES : GNUNET_NO;
+}
+
+void
+SocialService::guestTalk (Place* place, QString text)
+{
+    TransmitClosure* tmit = new TransmitClosure;
+    tmit->env = NULL;
+    tmit->data = text.toStdString();
+    tmit->data_sent = 0;
+    GNUNET_log (GNUNET_ERROR_TYPE_DEBUG, "data: %s\n", tmit->data.c_str ());
+    tmit->guest_talk
+            = GNUNET_SOCIAL_guest_talk (place->socialGuest(), 
"_message_guest", NULL,
+                                        &notify_data, tmit,
+                                        GNUNET_SOCIAL_TALK_NONE);
+    place->addConversation(text);
+}
+
+void
+SocialService::hostTalk(Place* place, QString text)
+{
+
+  TransmitClosure* tmit = new TransmitClosure();
+  tmit->env = NULL;
+  tmit->data = text.toStdString();
+  tmit->data_sent = 0;
+  GNUNET_log (GNUNET_ERROR_TYPE_DEBUG, "data: %s\n", tmit->data.c_str ());
+  tmit->host_ann
+    = GNUNET_SOCIAL_host_announce (place->host(), "_message_host", tmit->env,
+                                   &notify_data, tmit,
+                                   GNUNET_SOCIAL_ANNOUNCE_NONE);
+}

Modified: gnunet-qt/secushare/core/social/socialservice.h
===================================================================
--- gnunet-qt/secushare/core/social/socialservice.h     2015-11-12 18:30:33 UTC 
(rev 36654)
+++ gnunet-qt/secushare/core/social/socialservice.h     2015-11-12 18:30:37 UTC 
(rev 36655)
@@ -1,118 +1,118 @@
-#ifndef SOCIALSERVICE_H
-#define SOCIALSERVICE_H
-
-#include <QObject>
-#include "core/gnunet/gnunet_includes.h"
-
-
-typedef struct GuestEnterMessage
-{
-  struct GNUNET_PSYC_Message *msg;
-  const char *method_name;
-  struct GNUNET_ENV_Environment *env;
-  char *data;
-  uint16_t data_size;
-} GuestEnterMessage;
-
-
-typedef struct TransmitClosure
-{
-  struct GNUNET_SOCIAL_Announcement *host_ann;
-  struct GNUNET_SOCIAL_TalkRequest *guest_talk;
-  struct GNUNET_ENV_Environment *env;
-  std::string data;
-  size_t data_sent;
-} TransmitClosure;
-
-class Place;
-class SocialService : public QObject
-{
-    Q_OBJECT
-public:
-    explicit SocialService(QObject *parent = 0);
-
-    static void
-    hostRecvMethodCallback (void *cls,
-                      const struct GNUNET_PSYC_MessageMethod *meth,
-                      uint64_t message_id,
-                      uint32_t flags,
-                      const struct GNUNET_SOCIAL_Nym *nym,
-                      const char *method_name);
-
-    static void
-    hostRecvModifierCallback (void *cls,
-                              const struct GNUNET_MessageHeader *msg,
-                              uint64_t message_id,
-                              enum GNUNET_ENV_Operator oper,
-                              const char *name,
-                              const void *value,
-                              uint16_t value_size,
-                              uint16_t full_value_size);
-
-    static void
-    hostRecvDataCallback (void *cls,
-                    const struct GNUNET_MessageHeader *msg,
-                    uint64_t message_id,
-                    uint64_t data_offset,
-                    const void *data,
-                    uint16_t data_size);
-    static void
-    hostRecvEomCallback (void *cls,
-                   const struct GNUNET_MessageHeader *msg,
-                   uint64_t message_id,
-                   uint8_t cancelled);
-    static void
-    hostAnswerDoorCallback (void *cls,
-                      struct GNUNET_SOCIAL_Nym *nym,
-                      const char *method_name,
-                      struct GNUNET_ENV_Environment *env,
-                      size_t data_size,
-                      const void *data);
-    void
-    hostAnswerDoor (void *cls,
-                      struct GNUNET_SOCIAL_Nym *nym,
-                      const char *method_name,
-                      struct GNUNET_ENV_Environment *env,
-                      size_t data_size,
-                      const void *data);
-    static void hostEnteredCallback (void *cls, int result,
-                                      uint64_t max_message_id);
-    static void
-    hostFarewellCallback (void *cls,
-                          const struct GNUNET_SOCIAL_Nym *nym,
-                          struct GNUNET_ENV_Environment *env);
-
-
-    static void
-    guestRecvEntryDecisionCallback (void *cls,
-                               int is_admitted,
-                               const struct GNUNET_PSYC_Message *entry_resp);
-
-    static void
-    guestRecvLocalEnterCallback (void *cls, int result, uint64_t 
max_message_id);
-    void
-    guestRecvLocalEnter(void *cls, int result, uint64_t max_message_id);
-
-
-    void start(GNUNET_CONFIGURATION_Handle *config);
-    Q_INVOKABLE void createPlace(QString name);
-    void createPlaceSlot(QString name);
-    Q_INVOKABLE void enterRoom(QString pubKey, QString peerIdentity);
-
-
-signals:
-    void createPlaceSignal(QString name);
-    void enterRoomSignal(QString pubKey, QString peerIdentity);
-public slots:
-
-    void enterRoomSlot(QString pubKey, QString peerIdentity);
-    void guestTalk(Place *place, QString text);
-    void hostTalk(Place *place, QString text);
-private:
-    GNUNET_IDENTITY_Ego* m_hostEgo;
-
-    GNUNET_CONFIGURATION_Handle *m_config;
-
-};
-
-#endif // SOCIALSERVICE_H
+#ifndef SOCIALSERVICE_H
+#define SOCIALSERVICE_H
+
+#include <QObject>
+#include "core/gnunet/gnunet_includes.h"
+
+
+typedef struct GuestEnterMessage
+{
+  struct GNUNET_PSYC_Message *msg;
+  const char *method_name;
+  struct GNUNET_ENV_Environment *env;
+  char *data;
+  uint16_t data_size;
+} GuestEnterMessage;
+
+
+typedef struct TransmitClosure
+{
+  struct GNUNET_SOCIAL_Announcement *host_ann;
+  struct GNUNET_SOCIAL_TalkRequest *guest_talk;
+  struct GNUNET_ENV_Environment *env;
+  std::string data;
+  size_t data_sent;
+} TransmitClosure;
+
+class Place;
+class SocialService : public QObject
+{
+    Q_OBJECT
+public:
+    explicit SocialService(QObject *parent = 0);
+
+    static void
+    hostRecvMethodCallback (void *cls,
+                      const struct GNUNET_PSYC_MessageMethod *meth,
+                      uint64_t message_id,
+                      uint32_t flags,
+                      const struct GNUNET_SOCIAL_Nym *nym,
+                      const char *method_name);
+
+    static void
+    hostRecvModifierCallback (void *cls,
+                              const struct GNUNET_MessageHeader *msg,
+                              uint64_t message_id,
+                              enum GNUNET_ENV_Operator oper,
+                              const char *name,
+                              const void *value,
+                              uint16_t value_size,
+                              uint16_t full_value_size);
+
+    static void
+    hostRecvDataCallback (void *cls,
+                    const struct GNUNET_MessageHeader *msg,
+                    uint64_t message_id,
+                    uint64_t data_offset,
+                    const void *data,
+                    uint16_t data_size);
+    static void
+    hostRecvEomCallback (void *cls,
+                   const struct GNUNET_MessageHeader *msg,
+                   uint64_t message_id,
+                   uint8_t cancelled);
+    static void
+    hostAnswerDoorCallback (void *cls,
+                      struct GNUNET_SOCIAL_Nym *nym,
+                      const char *method_name,
+                      struct GNUNET_ENV_Environment *env,
+                      size_t data_size,
+                      const void *data);
+    void
+    hostAnswerDoor (void *cls,
+                      struct GNUNET_SOCIAL_Nym *nym,
+                      const char *method_name,
+                      struct GNUNET_ENV_Environment *env,
+                      size_t data_size,
+                      const void *data);
+    static void hostEnteredCallback (void *cls, int result,
+                                      uint64_t max_message_id);
+    static void
+    hostFarewellCallback (void *cls,
+                          const struct GNUNET_SOCIAL_Nym *nym,
+                          struct GNUNET_ENV_Environment *env);
+
+
+    static void
+    guestRecvEntryDecisionCallback (void *cls,
+                               int is_admitted,
+                               const struct GNUNET_PSYC_Message *entry_resp);
+
+    static void
+    guestRecvLocalEnterCallback (void *cls, int result, uint64_t 
max_message_id);
+    void
+    guestRecvLocalEnter(void *cls, int result, uint64_t max_message_id);
+
+
+    void start(GNUNET_CONFIGURATION_Handle *config);
+    Q_INVOKABLE void createPlace(QString name);
+    void createPlaceSlot(QString name);
+    Q_INVOKABLE void enterRoom(QString pubKey, QString peerIdentity);
+
+
+signals:
+    void createPlaceSignal(QString name);
+    void enterRoomSignal(QString pubKey, QString peerIdentity);
+public slots:
+
+    void enterRoomSlot(QString pubKey, QString peerIdentity);
+    void guestTalk(Place *place, QString text);
+    void hostTalk(Place *place, QString text);
+private:
+    GNUNET_IDENTITY_Ego* m_hostEgo;
+
+    GNUNET_CONFIGURATION_Handle *m_config;
+
+};
+
+#endif // SOCIALSERVICE_H

Modified: gnunet-qt/secushare/deployment.pri
===================================================================
--- gnunet-qt/secushare/deployment.pri  2015-11-12 18:30:33 UTC (rev 36654)
+++ gnunet-qt/secushare/deployment.pri  2015-11-12 18:30:37 UTC (rev 36655)
@@ -1,27 +1,27 @@
-android-no-sdk {
-    target.path = /data/user/qt
-    export(target.path)
-    INSTALLS += target
-} else:android {
-    x86 {
-        target.path = /libs/x86
-    } else: armeabi-v7a {
-        target.path = /libs/armeabi-v7a
-    } else {
-        target.path = /libs/armeabi
-    }
-    export(target.path)
-    INSTALLS += target
-} else:unix {
-    isEmpty(target.path) {
-        qnx {
-            target.path = /tmp/$${TARGET}/bin
-        } else {
-            target.path = /usr/local/bin
-        }
-        export(target.path)
-    }
-    INSTALLS += target
-}
-
-export(INSTALLS)
+android-no-sdk {
+    target.path = /data/user/qt
+    export(target.path)
+    INSTALLS += target
+} else:android {
+    x86 {
+        target.path = /libs/x86
+    } else: armeabi-v7a {
+        target.path = /libs/armeabi-v7a
+    } else {
+        target.path = /libs/armeabi
+    }
+    export(target.path)
+    INSTALLS += target
+} else:unix {
+    isEmpty(target.path) {
+        qnx {
+            target.path = /tmp/$${TARGET}/bin
+        } else {
+            target.path = /usr/local/bin
+        }
+        export(target.path)
+    }
+    INSTALLS += target
+}
+
+export(INSTALLS)

Modified: gnunet-qt/secushare/main.cpp
===================================================================
--- gnunet-qt/secushare/main.cpp        2015-11-12 18:30:33 UTC (rev 36654)
+++ gnunet-qt/secushare/main.cpp        2015-11-12 18:30:37 UTC (rev 36655)
@@ -1,40 +1,40 @@
-#include <QApplication>
-#include <QQmlApplicationEngine>
-#include <QtQml>
-#include <QtQuick/QQuickView>
-
-#include "psyc.h"
-#include "core/psyccore.h"
-
-int main(int argc, char *argv[])
-{
-    QApplication app(argc, argv);
-    qWarning("Starting PSYC");
-
-    //Start our core object
-    Psyc psyc;
-
-    QQmlApplicationEngine engine(QUrl(QStringLiteral("qrc:///qml/main.qml")));
-
-    //Connect Window to quit signal
-    QObject *topLevel = engine.rootObjects().value(0);
-    theWindow = qobject_cast<QQuickWindow *>(topLevel);
-    if ( !theWindow ) {
-        qWarning("Error: Your root item has to be a Window.");
-        return -1;
-    }
-
-    QObject::connect(&engine, SIGNAL(quit()), &app, SLOT(quit()));
-
-    psyc.registerImageProvider(&engine);
-
-    //Create the tray icon
-    theApp->setupTray();
-
-    theWindow->setTitle(QString("secushare 0.1"));
-    theWindow->setIcon(QIcon(":/assets/icon.ico"));
-
-    theWindow->show();
-
-    return app.exec();
-}
+#include <QApplication>
+#include <QQmlApplicationEngine>
+#include <QtQml>
+#include <QtQuick/QQuickView>
+
+#include "psyc.h"
+#include "core/psyccore.h"
+
+int main(int argc, char *argv[])
+{
+    QApplication app(argc, argv);
+    qWarning("Starting PSYC");
+
+    //Start our core object
+    Psyc psyc;
+
+    QQmlApplicationEngine engine(QUrl(QStringLiteral("qrc:///qml/main.qml")));
+
+    //Connect Window to quit signal
+    QObject *topLevel = engine.rootObjects().value(0);
+    theWindow = qobject_cast<QQuickWindow *>(topLevel);
+    if ( !theWindow ) {
+        qWarning("Error: Your root item has to be a Window.");
+        return -1;
+    }
+
+    QObject::connect(&engine, SIGNAL(quit()), &app, SLOT(quit()));
+
+    psyc.registerImageProvider(&engine);
+
+    //Create the tray icon
+    theApp->setupTray();
+
+    theWindow->setTitle(QString("secushare 0.1"));
+    theWindow->setIcon(QIcon(":/assets/icon.ico"));
+
+    theWindow->show();
+
+    return app.exec();
+}

Modified: gnunet-qt/secushare/models/IdentityModel.cpp
===================================================================
--- gnunet-qt/secushare/models/IdentityModel.cpp        2015-11-12 18:30:33 UTC 
(rev 36654)
+++ gnunet-qt/secushare/models/IdentityModel.cpp        2015-11-12 18:30:37 UTC 
(rev 36655)
@@ -1,181 +1,181 @@
-/*
-     This file is part of SecureShare
-     (C) 2013 Bruno Cabral (and other contributing authors)
-
-     SecureShare is free software; you can redistribute it and/or modify
-     it under the terms of the GNU General Public License as published
-     by the Free Software Foundation; either version 3, or (at your
-     option) any later version.
-
-     SecureShare is distributed in the hope that it will be useful, but
-     WITHOUT ANY WARRANTY; without even the implied warranty of
-     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-     General Public License for more details.
-
-     You should have received a copy of the GNU General Public License
-     along with SecureShare; see the file COPYING.  If not, write to the
-     Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
-     Boston, MA 02110-1301, USA.
-*/
-
-
-#include <sstream>
-
-#include "models/IdentityModel.h"
-#include "core/identity/identity.h"
-
-#include <QQmlEngine>
-
-
-IdentityModel::IdentityModel(QObject *parent) :
-    QAbstractListModel(parent)
-{
-    //connect(this, &IdentityModel::addNewPeerSignal, this, 
&IdentityModel::addNewPeerSlot, Qt::BlockingQueuedConnection);
-    connect(this, &IdentityModel::addNewIdentitySignal, this, 
&IdentityModel::addNewIdentitySlot, Qt::BlockingQueuedConnection);
-}
-
-
-int IdentityModel::rowCount(const QModelIndex& parent) const
-{
-    Q_UNUSED(parent);
-    return m_data.size()+1; // PLus one is because the last one is a "<CREATE>"
-}
-
-
-bool IdentityModel::contains(QString id)
-{
-    return m_lookupIndex.contains(id);
-}
-
-
-QVariant IdentityModel::data(const QModelIndex& index, int role) const
-{
-    if (index.row() < 0 || index.row() > m_data.count())
-        return QVariant();
-    else if ( index.row() == m_data.count())
-        return QString("<Create>");
-
-
-    Identity* iden = m_data[index.row()];
-
-
-    switch(role)
-    {
-    case NAME:
-        return iden->name();
-        break;
-    default:
-        return QVariant::Invalid;
-    }
-
-
-    return QVariant::Invalid;
-}
-
-QHash<int, QByteArray> IdentityModel::roleNames() const {
-    QHash<int, QByteArray> roles;
-    roles[NAME]                   = "name";
-
-
-    return roles;
-}
-
-
-void IdentityModel::modifiedSlot(int indexRow)
-{
-    QModelIndex modelIndex = this->index(indexRow);
-
-    emit dataChanged(modelIndex, modelIndex);
-}
-
-/**
- * @brief PlacesModel::add, add a new place to the model.
- * @param key
- * @return Return the new created place
- */
-Identity* IdentityModel::add(QString key, QString name, struct 
GNUNET_IDENTITY_Ego *ego)
-{
-    Identity* iden = new Identity(key);
-    iden->setName(name);
-    iden->setEgo(ego);
-
-    iden->moveToThread(this->thread());
-    emit addNewIdentitySignal(iden,key);
-    return iden;
-}
-
-
-/**
- * @brief PlacesModel::addNewPeerSlot
- * @param key, the place ID.
- * @return return the same place as item
- */
-Identity* IdentityModel::addNewIdentitySlot(Identity* item, QString key)
-{
-
-    //Search if already exists
-    if (m_lookupIndex.contains(key))
-    {
-        return NULL;
-    }
-    else
-    {
-        int index = m_data.count();
-        beginInsertRows(QModelIndex(), index, index);
-        m_data.append(item);
-        item->setIndex(index);
-
-        //Notify modifications
-        connect(item, &Identity::modifiedSignal,this, 
&IdentityModel::modifiedSlot);
-
-        m_lookupIndex[key] = index;
-        endInsertRows();
-        return item;
-    }
-
-
-}
-
-Identity* IdentityModel::get(QString key)
-{
-    if (m_lookupIndex.contains(key))
-    {
-        Identity* iden = m_data[m_lookupIndex[key]];
-        return iden;
-
-    }
-    else
-        return NULL;
-}
-
-Identity* IdentityModel::get(QModelIndex index)
-{
-
-    if(getCount() <= index.row())
-        return NULL;
-
-    return m_data[index.row()];
-}
-
-Identity* IdentityModel::get(int index)
-{
-
-    if(getCount() <= index)
-        return NULL;
-
-    Identity *iden = m_data[index];
-
-    //Set he ownership so QML don't delete it.
-    QQmlEngine::setObjectOwnership(iden, QQmlEngine::CppOwnership);
-
-    return iden;
-}
-
-int IdentityModel::getCount()
-{
-    return m_data.count();
-}
-
-
-
-
+/*
+     This file is part of SecureShare
+     (C) 2013 Bruno Cabral (and other contributing authors)
+
+     SecureShare is free software; you can redistribute it and/or modify
+     it under the terms of the GNU General Public License as published
+     by the Free Software Foundation; either version 3, or (at your
+     option) any later version.
+
+     SecureShare is distributed in the hope that it will be useful, but
+     WITHOUT ANY WARRANTY; without even the implied warranty of
+     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+     General Public License for more details.
+
+     You should have received a copy of the GNU General Public License
+     along with SecureShare; see the file COPYING.  If not, write to the
+     Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
+     Boston, MA 02110-1301, USA.
+*/
+
+
+#include <sstream>
+
+#include "models/IdentityModel.h"
+#include "core/identity/identity.h"
+
+#include <QQmlEngine>
+
+
+IdentityModel::IdentityModel(QObject *parent) :
+    QAbstractListModel(parent)
+{
+    //connect(this, &IdentityModel::addNewPeerSignal, this, 
&IdentityModel::addNewPeerSlot, Qt::BlockingQueuedConnection);
+    connect(this, &IdentityModel::addNewIdentitySignal, this, 
&IdentityModel::addNewIdentitySlot, Qt::BlockingQueuedConnection);
+}
+
+
+int IdentityModel::rowCount(const QModelIndex& parent) const
+{
+    Q_UNUSED(parent);
+    return m_data.size()+1; // PLus one is because the last one is a "<CREATE>"
+}
+
+
+bool IdentityModel::contains(QString id)
+{
+    return m_lookupIndex.contains(id);
+}
+
+
+QVariant IdentityModel::data(const QModelIndex& index, int role) const
+{
+    if (index.row() < 0 || index.row() > m_data.count())
+        return QVariant();
+    else if ( index.row() == m_data.count())
+        return QString("<Create>");
+
+
+    Identity* iden = m_data[index.row()];
+
+
+    switch(role)
+    {
+    case NAME:
+        return iden->name();
+        break;
+    default:
+        return QVariant::Invalid;
+    }
+
+
+    return QVariant::Invalid;
+}
+
+QHash<int, QByteArray> IdentityModel::roleNames() const {
+    QHash<int, QByteArray> roles;
+    roles[NAME]                   = "name";
+
+
+    return roles;
+}
+
+
+void IdentityModel::modifiedSlot(int indexRow)
+{
+    QModelIndex modelIndex = this->index(indexRow);
+
+    emit dataChanged(modelIndex, modelIndex);
+}
+
+/**
+ * @brief PlacesModel::add, add a new place to the model.
+ * @param key
+ * @return Return the new created place
+ */
+Identity* IdentityModel::add(QString key, QString name, struct 
GNUNET_IDENTITY_Ego *ego)
+{
+    Identity* iden = new Identity(key);
+    iden->setName(name);
+    iden->setEgo(ego);
+
+    iden->moveToThread(this->thread());
+    emit addNewIdentitySignal(iden,key);
+    return iden;
+}
+
+
+/**
+ * @brief PlacesModel::addNewPeerSlot
+ * @param key, the place ID.
+ * @return return the same place as item
+ */
+Identity* IdentityModel::addNewIdentitySlot(Identity* item, QString key)
+{
+
+    //Search if already exists
+    if (m_lookupIndex.contains(key))
+    {
+        return NULL;
+    }
+    else
+    {
+        int index = m_data.count();
+        beginInsertRows(QModelIndex(), index, index);
+        m_data.append(item);
+        item->setIndex(index);
+
+        //Notify modifications
+        connect(item, &Identity::modifiedSignal,this, 
&IdentityModel::modifiedSlot);
+
+        m_lookupIndex[key] = index;
+        endInsertRows();
+        return item;
+    }
+
+
+}
+
+Identity* IdentityModel::get(QString key)
+{
+    if (m_lookupIndex.contains(key))
+    {
+        Identity* iden = m_data[m_lookupIndex[key]];
+        return iden;
+
+    }
+    else
+        return NULL;
+}
+
+Identity* IdentityModel::get(QModelIndex index)
+{
+
+    if(getCount() <= index.row())
+        return NULL;
+
+    return m_data[index.row()];
+}
+
+Identity* IdentityModel::get(int index)
+{
+
+    if(getCount() <= index)
+        return NULL;
+
+    Identity *iden = m_data[index];
+
+    //Set he ownership so QML don't delete it.
+    QQmlEngine::setObjectOwnership(iden, QQmlEngine::CppOwnership);
+
+    return iden;
+}
+
+int IdentityModel::getCount()
+{
+    return m_data.count();
+}
+
+
+
+

Modified: gnunet-qt/secushare/models/IdentityModel.h
===================================================================
--- gnunet-qt/secushare/models/IdentityModel.h  2015-11-12 18:30:33 UTC (rev 
36654)
+++ gnunet-qt/secushare/models/IdentityModel.h  2015-11-12 18:30:37 UTC (rev 
36655)
@@ -1,72 +1,72 @@
-/*
-     This file is part of SecureShare
-     (C) 2013 Bruno Cabral (and other contributing authors)
-
-     SecureShare is free software; you can redistribute it and/or modify
-     it under the terms of the GNU General Public License as published
-     by the Free Software Foundation; either version 3, or (at your
-     option) any later version.
-
-     SecureShare is distributed in the hope that it will be useful, but
-     WITHOUT ANY WARRANTY; without even the implied warranty of
-     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-     General Public License for more details.
-
-     You should have received a copy of the GNU General Public License
-     along with SecureShare; see the file COPYING.  If not, write to the
-     Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
-     Boston, MA 02110-1301, USA.
-*/
-
-#ifndef IDENTITYSMODEL_H
-#define IDENTITYMODEL_H
-
-#include <QAbstractTableModel>
-#include <QTimer>
-
-
-class Identity;
-class IdentityModel : public QAbstractListModel
-{
-    Q_OBJECT
-
-
-public:
-    enum IdentityRoles { NAME  = Qt::UserRole + 1, NB_PLACE_COLUMNS };
-
-
-public:
-    explicit IdentityModel(QObject *parent = 0);
-
-
-    Identity *add(QString key, QString name, struct GNUNET_IDENTITY_Ego *ego);
-    Q_INVOKABLE int getCount();
-    bool contains(QString id);
-
-    Q_INVOKABLE Identity *get(int index);
-    Identity *get(QModelIndex index);
-    Identity *get(QString key);
-
-signals:
-    void addNewIdentitySignal(Identity* item, QString key);
-    
-public slots:
-    void modifiedSlot(int indexRow);
-private slots:
-    Identity *addNewIdentitySlot(Identity* item, QString name);
-
-
-private:
-    int rowCount(const QModelIndex& parent) const;
-    QVariant data(const QModelIndex& index, int role) const;
-    QHash<int, QByteArray> roleNames() const;
-
-private:
-    QHash<QString, int> m_lookupIndex;
-    QList<Identity*> m_data;
-
-    
-
-};
-
-#endif // PLACESMODEL_H
+/*
+     This file is part of SecureShare
+     (C) 2013 Bruno Cabral (and other contributing authors)
+
+     SecureShare is free software; you can redistribute it and/or modify
+     it under the terms of the GNU General Public License as published
+     by the Free Software Foundation; either version 3, or (at your
+     option) any later version.
+
+     SecureShare is distributed in the hope that it will be useful, but
+     WITHOUT ANY WARRANTY; without even the implied warranty of
+     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+     General Public License for more details.
+
+     You should have received a copy of the GNU General Public License
+     along with SecureShare; see the file COPYING.  If not, write to the
+     Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
+     Boston, MA 02110-1301, USA.
+*/
+
+#ifndef IDENTITYSMODEL_H
+#define IDENTITYMODEL_H
+
+#include <QAbstractTableModel>
+#include <QTimer>
+
+
+class Identity;
+class IdentityModel : public QAbstractListModel
+{
+    Q_OBJECT
+
+
+public:
+    enum IdentityRoles { NAME  = Qt::UserRole + 1, NB_PLACE_COLUMNS };
+
+
+public:
+    explicit IdentityModel(QObject *parent = 0);
+
+
+    Identity *add(QString key, QString name, struct GNUNET_IDENTITY_Ego *ego);
+    Q_INVOKABLE int getCount();
+    bool contains(QString id);
+
+    Q_INVOKABLE Identity *get(int index);
+    Identity *get(QModelIndex index);
+    Identity *get(QString key);
+
+signals:
+    void addNewIdentitySignal(Identity* item, QString key);
+    
+public slots:
+    void modifiedSlot(int indexRow);
+private slots:
+    Identity *addNewIdentitySlot(Identity* item, QString name);
+
+
+private:
+    int rowCount(const QModelIndex& parent) const;
+    QVariant data(const QModelIndex& index, int role) const;
+    QHash<int, QByteArray> roleNames() const;
+
+private:
+    QHash<QString, int> m_lookupIndex;
+    QList<Identity*> m_data;
+
+    
+
+};
+
+#endif // PLACESMODEL_H

Modified: gnunet-qt/secushare/models/PlacesModel.cpp
===================================================================
--- gnunet-qt/secushare/models/PlacesModel.cpp  2015-11-12 18:30:33 UTC (rev 
36654)
+++ gnunet-qt/secushare/models/PlacesModel.cpp  2015-11-12 18:30:37 UTC (rev 
36655)
@@ -1,249 +1,249 @@
-/*
-     This file is part of SecureShare
-     (C) 2013 Bruno Cabral (and other contributing authors)
-
-     SecureShare is free software; you can redistribute it and/or modify
-     it under the terms of the GNU General Public License as published
-     by the Free Software Foundation; either version 3, or (at your
-     option) any later version.
-
-     SecureShare is distributed in the hope that it will be useful, but
-     WITHOUT ANY WARRANTY; without even the implied warranty of
-     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-     General Public License for more details.
-
-     You should have received a copy of the GNU General Public License
-     along with SecureShare; see the file COPYING.  If not, write to the
-     Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
-     Boston, MA 02110-1301, USA.
-*/
-
-
-#include <sstream>
-
-#include "models/PlacesModel.h"
-#include "core/social/place.h"
-
-#include "core/psyccore.h"
-#include "psyc.h"
-#include "preferences/preferences.h"
-#include "core/social/socialservice.h"
-
-#include "core/gnunet/gnunet.h"
-
-#include <QQmlEngine>
-
-
-PlacesModel::PlacesModel(QObject *parent) :
-    QAbstractListModel(parent)
-{
-    //connect(this, &PlacesModel::addNewPeerSignal, this, 
&PlacesModel::addNewPeerSlot, Qt::BlockingQueuedConnection);
-    connect(this, &PlacesModel::addNewPeerSignal, this, 
&PlacesModel::addNewPeerSlot);
-}
-
-
-PlacesModel::~PlacesModel()
-{
-
-}
-
-
-/**
- * @brief PlacesModel::save, will save the list of places
- */
-void PlacesModel::save(){
-    QString filename = thePrefs->getFolder() + "/rooms.keys";
-    QFile file(filename);
-
-    if(!file.open(QIODevice::WriteOnly))
-    {
-        qDebug() << "Could not open " << filename;
-        return;
-    }
-
-    QDataStream out(&file);
-    //out.setVersion(QDataStream::Qt_5_1);
-
-
-    foreach (Place* place, m_data) {
-        out << place->name();
-        out << place->isHost();
-
-    }
-}
-
-
-void PlacesModel::load()
-{
-    QString filename = thePrefs->getFolder() + "/rooms.keys";
-    QFile file(filename);
-
-    if(!file.open(QIODevice::ReadOnly))
-    {
-        qDebug() << "Could not open " << filename;
-        return;
-    }
-
-    QDataStream in(&file);
-    //out.setVersion(QDataStream::Qt_5_1);
-
-
-    while (!in.atEnd()) {
-        QString publicKey;
-        bool isHost;
-
-        in >> publicKey >> isHost;
-
-
-        qWarning() << publicKey << "  Is host:" << isHost ;
-
-        theApp->gnunet()->social()->enterRoom(publicKey,"");
-    }
-
-}
-
-
-int PlacesModel::rowCount(const QModelIndex& parent) const
-{
-    Q_UNUSED(parent);
-    return m_data.size();
-}
-
-
-bool PlacesModel::contains(QString id)
-{
-    return m_lookupIndex.contains(id);
-}
-
-
-QVariant PlacesModel::data(const QModelIndex& index, int role) const
-{
-    if (index.row() < 0 || index.row() >= m_data.count())
-        return QVariant();
-
-    Place* peer = m_data[index.row()];
-
-    switch(role)
-    {
-    case NAME:
-        return peer->name();
-        break;
-    case TYPE:
-        return peer->type();
-        break;
-    case STATUS:
-        return peer->status();
-        break;
-    default:
-        return QVariant::Invalid;
-    }
-
-    return QVariant::Invalid;
-}
-
-
-QHash<int, QByteArray> PlacesModel::roleNames() const {
-    QHash<int, QByteArray> roles;
-    roles[NAME]                   = "name";
-    roles[TYPE]                   = "type";
-    roles[STATUS]                 = "status";
-
-    return roles;
-}
-
-
-void PlacesModel::modifiedSlot(int indexRow)
-{
-    QModelIndex modelIndex = this->index(indexRow);
-
-    emit dataChanged(modelIndex, modelIndex);
-}
-
-
-/**
- * @brief PlacesModel::add, add a new place to the model.
- * @param key
- * @return Return the new created place
- */
-Place* PlacesModel::add(QString key)
-{
-    Place* peer = new Place(key);
-    peer->moveToThread(this->thread());
-    emit addNewPeerSignal(peer,key);
-    return peer;
-}
-
-
-/**
- * @brief PlacesModel::addNewPeerSlot
- * @param key, the place ID.
- * @return return the same place as item
- */
-Place* PlacesModel::addNewPeerSlot(Place* item, QString key)
-{
-
-    //Search if already exists
-    if (m_lookupIndex.contains(key))
-    {
-        return NULL;
-    }
-    else
-    {
-        int index = m_data.count();
-        beginInsertRows(QModelIndex(), index, index);
-        m_data.append(item);
-        item->setIndex(index);
-
-        //Notify modifications
-        connect(item, &Place::modifiedSignal,this, &PlacesModel::modifiedSlot);
-
-        m_lookupIndex[key] = index;
-        endInsertRows();
-        save();
-        return item;
-    }
-
-
-}
-
-
-Place* PlacesModel::get(QString key)
-{
-    if (m_lookupIndex.contains(key))
-    {
-        Place* peer = m_data[m_lookupIndex[key]];
-        return peer;
-
-    }
-    else
-        return NULL;
-}
-
-
-Place* PlacesModel::get(QModelIndex index)
-{
-    if(getCount() < index.row())
-        return NULL;
-
-    return m_data[index.row()];
-}
-
-
-Place* PlacesModel::get(int index)
-{
-    if(getCount() < index)
-        return NULL;
-
-    Place *peer = m_data[index];
-
-    //Set he ownership so QML don't delete it.
-    QQmlEngine::setObjectOwnership(peer, QQmlEngine::CppOwnership);
-
-    return peer;
-}
-
-
-int PlacesModel::getCount()
-{
-    return m_data.count();
-}
+/*
+     This file is part of SecureShare
+     (C) 2013 Bruno Cabral (and other contributing authors)
+
+     SecureShare is free software; you can redistribute it and/or modify
+     it under the terms of the GNU General Public License as published
+     by the Free Software Foundation; either version 3, or (at your
+     option) any later version.
+
+     SecureShare is distributed in the hope that it will be useful, but
+     WITHOUT ANY WARRANTY; without even the implied warranty of
+     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+     General Public License for more details.
+
+     You should have received a copy of the GNU General Public License
+     along with SecureShare; see the file COPYING.  If not, write to the
+     Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
+     Boston, MA 02110-1301, USA.
+*/
+
+
+#include <sstream>
+
+#include "models/PlacesModel.h"
+#include "core/social/place.h"
+
+#include "core/psyccore.h"
+#include "psyc.h"
+#include "preferences/preferences.h"
+#include "core/social/socialservice.h"
+
+#include "core/gnunet/gnunet.h"
+
+#include <QQmlEngine>
+
+
+PlacesModel::PlacesModel(QObject *parent) :
+    QAbstractListModel(parent)
+{
+    //connect(this, &PlacesModel::addNewPeerSignal, this, 
&PlacesModel::addNewPeerSlot, Qt::BlockingQueuedConnection);
+    connect(this, &PlacesModel::addNewPeerSignal, this, 
&PlacesModel::addNewPeerSlot);
+}
+
+
+PlacesModel::~PlacesModel()
+{
+
+}
+
+
+/**
+ * @brief PlacesModel::save, will save the list of places
+ */
+void PlacesModel::save(){
+    QString filename = thePrefs->getFolder() + "/rooms.keys";
+    QFile file(filename);
+
+    if(!file.open(QIODevice::WriteOnly))
+    {
+        qDebug() << "Could not open " << filename;
+        return;
+    }
+
+    QDataStream out(&file);
+    //out.setVersion(QDataStream::Qt_5_1);
+
+
+    foreach (Place* place, m_data) {
+        out << place->name();
+        out << place->isHost();
+
+    }
+}
+
+
+void PlacesModel::load()
+{
+    QString filename = thePrefs->getFolder() + "/rooms.keys";
+    QFile file(filename);
+
+    if(!file.open(QIODevice::ReadOnly))
+    {
+        qDebug() << "Could not open " << filename;
+        return;
+    }
+
+    QDataStream in(&file);
+    //out.setVersion(QDataStream::Qt_5_1);
+
+
+    while (!in.atEnd()) {
+        QString publicKey;
+        bool isHost;
+
+        in >> publicKey >> isHost;
+
+
+        qWarning() << publicKey << "  Is host:" << isHost ;
+
+        theApp->gnunet()->social()->enterRoom(publicKey,"");
+    }
+
+}
+
+
+int PlacesModel::rowCount(const QModelIndex& parent) const
+{
+    Q_UNUSED(parent);
+    return m_data.size();
+}
+
+
+bool PlacesModel::contains(QString id)
+{
+    return m_lookupIndex.contains(id);
+}
+
+
+QVariant PlacesModel::data(const QModelIndex& index, int role) const
+{
+    if (index.row() < 0 || index.row() >= m_data.count())
+        return QVariant();
+
+    Place* peer = m_data[index.row()];
+
+    switch(role)
+    {
+    case NAME:
+        return peer->name();
+        break;
+    case TYPE:
+        return peer->type();
+        break;
+    case STATUS:
+        return peer->status();
+        break;
+    default:
+        return QVariant::Invalid;
+    }
+
+    return QVariant::Invalid;
+}
+
+
+QHash<int, QByteArray> PlacesModel::roleNames() const {
+    QHash<int, QByteArray> roles;
+    roles[NAME]                   = "name";
+    roles[TYPE]                   = "type";
+    roles[STATUS]                 = "status";
+
+    return roles;
+}
+
+
+void PlacesModel::modifiedSlot(int indexRow)
+{
+    QModelIndex modelIndex = this->index(indexRow);
+
+    emit dataChanged(modelIndex, modelIndex);
+}
+
+
+/**
+ * @brief PlacesModel::add, add a new place to the model.
+ * @param key
+ * @return Return the new created place
+ */
+Place* PlacesModel::add(QString key)
+{
+    Place* peer = new Place(key);
+    peer->moveToThread(this->thread());
+    emit addNewPeerSignal(peer,key);
+    return peer;
+}
+
+
+/**
+ * @brief PlacesModel::addNewPeerSlot
+ * @param key, the place ID.
+ * @return return the same place as item
+ */
+Place* PlacesModel::addNewPeerSlot(Place* item, QString key)
+{
+
+    //Search if already exists
+    if (m_lookupIndex.contains(key))
+    {
+        return NULL;
+    }
+    else
+    {
+        int index = m_data.count();
+        beginInsertRows(QModelIndex(), index, index);
+        m_data.append(item);
+        item->setIndex(index);
+
+        //Notify modifications
+        connect(item, &Place::modifiedSignal,this, &PlacesModel::modifiedSlot);
+
+        m_lookupIndex[key] = index;
+        endInsertRows();
+        save();
+        return item;
+    }
+
+
+}
+
+
+Place* PlacesModel::get(QString key)
+{
+    if (m_lookupIndex.contains(key))
+    {
+        Place* peer = m_data[m_lookupIndex[key]];
+        return peer;
+
+    }
+    else
+        return NULL;
+}
+
+
+Place* PlacesModel::get(QModelIndex index)
+{
+    if(getCount() < index.row())
+        return NULL;
+
+    return m_data[index.row()];
+}
+
+
+Place* PlacesModel::get(int index)
+{
+    if(getCount() < index)
+        return NULL;
+
+    Place *peer = m_data[index];
+
+    //Set he ownership so QML don't delete it.
+    QQmlEngine::setObjectOwnership(peer, QQmlEngine::CppOwnership);
+
+    return peer;
+}
+
+
+int PlacesModel::getCount()
+{
+    return m_data.count();
+}

Modified: gnunet-qt/secushare/models/PlacesModel.h
===================================================================
--- gnunet-qt/secushare/models/PlacesModel.h    2015-11-12 18:30:33 UTC (rev 
36654)
+++ gnunet-qt/secushare/models/PlacesModel.h    2015-11-12 18:30:37 UTC (rev 
36655)
@@ -1,75 +1,75 @@
-/*
-     This file is part of SecureShare
-     (C) 2013 Bruno Cabral (and other contributing authors)
-
-     SecureShare is free software; you can redistribute it and/or modify
-     it under the terms of the GNU General Public License as published
-     by the Free Software Foundation; either version 3, or (at your
-     option) any later version.
-
-     SecureShare is distributed in the hope that it will be useful, but
-     WITHOUT ANY WARRANTY; without even the implied warranty of
-     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-     General Public License for more details.
-
-     You should have received a copy of the GNU General Public License
-     along with SecureShare; see the file COPYING.  If not, write to the
-     Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
-     Boston, MA 02110-1301, USA.
-*/
-
-#ifndef PLACESMODEL_H
-#define PLACESMODEL_H
-
-#include <QAbstractTableModel>
-#include <QTimer>
-
-
-class Place;
-class PlacesModel : public QAbstractListModel
-{
-    Q_OBJECT
-
-
-public:
-    enum PlaceRoles { NAME  = Qt::UserRole + 1, TYPE, STATUS, NB_PLACE_COLUMNS 
};
-
-
-public:
-    explicit PlacesModel(QObject *parent = 0);
-    struct Bandwidth_Info_Struct *getTotalBandwidth();
-
-    Place *add(QString key);
-    int getCount();
-    bool contains(QString id);
-
-    Q_INVOKABLE Place *get(int index);
-    Place *get(QModelIndex index);
-    Place *get(QString key);
-
-    void save();
-    void load();
-    ~PlacesModel();
-signals:
-    void addNewPeerSignal(Place* item, QString key);
-    
-public slots:
-    void modifiedSlot(int indexRow);
-private slots:
-    Place *addNewPeerSlot(Place* item, QString name);
-
-
-private:
-    int rowCount(const QModelIndex& parent) const;
-    QVariant data(const QModelIndex& index, int role) const;
-    QHash<int, QByteArray> roleNames() const;
-
-private:
-    QHash<QString, int> m_lookupIndex;
-    QList<Place*> m_data;
-
-    
-
-};
-
-#endif // PLACESMODEL_H
+/*
+     This file is part of SecureShare
+     (C) 2013 Bruno Cabral (and other contributing authors)
+
+     SecureShare is free software; you can redistribute it and/or modify
+     it under the terms of the GNU General Public License as published
+     by the Free Software Foundation; either version 3, or (at your
+     option) any later version.
+
+     SecureShare is distributed in the hope that it will be useful, but
+     WITHOUT ANY WARRANTY; without even the implied warranty of
+     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+     General Public License for more details.
+
+     You should have received a copy of the GNU General Public License
+     along with SecureShare; see the file COPYING.  If not, write to the
+     Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
+     Boston, MA 02110-1301, USA.
+*/
+
+#ifndef PLACESMODEL_H
+#define PLACESMODEL_H
+
+#include <QAbstractTableModel>
+#include <QTimer>
+
+
+class Place;
+class PlacesModel : public QAbstractListModel
+{
+    Q_OBJECT
+
+
+public:
+    enum PlaceRoles { NAME  = Qt::UserRole + 1, TYPE, STATUS, NB_PLACE_COLUMNS 
};
+
+
+public:
+    explicit PlacesModel(QObject *parent = 0);
+    struct Bandwidth_Info_Struct *getTotalBandwidth();
+
+    Place *add(QString key);
+    int getCount();
+    bool contains(QString id);
+
+    Q_INVOKABLE Place *get(int index);
+    Place *get(QModelIndex index);
+    Place *get(QString key);
+
+    void save();
+    void load();
+    ~PlacesModel();
+signals:
+    void addNewPeerSignal(Place* item, QString key);
+    
+public slots:
+    void modifiedSlot(int indexRow);
+private slots:
+    Place *addNewPeerSlot(Place* item, QString name);
+
+
+private:
+    int rowCount(const QModelIndex& parent) const;
+    QVariant data(const QModelIndex& index, int role) const;
+    QHash<int, QByteArray> roleNames() const;
+
+private:
+    QHash<QString, int> m_lookupIndex;
+    QList<Place*> m_data;
+
+    
+
+};
+
+#endif // PLACESMODEL_H

Modified: gnunet-qt/secushare/models/models.cpp
===================================================================
--- gnunet-qt/secushare/models/models.cpp       2015-11-12 18:30:33 UTC (rev 
36654)
+++ gnunet-qt/secushare/models/models.cpp       2015-11-12 18:30:37 UTC (rev 
36655)
@@ -1,49 +1,49 @@
-/**************************************************************************
-** This file is part of SecureShare
-** (C)2/24/2013 2013 Bruno Cabral (and other contributing authors)
-**
-** SecureShare is free software; you can redistribute it and/or modify
-** it under the terms of the GNU General Public License as published
-** by the Free Software Foundation; either version 3, or (at your
-** option) any later version.
-**
-** SecureShare is distributed in the hope that it will be useful, but
-** WITHOUT ANY WARRANTY; without even the implied warranty of
-** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-** General Public License for more details.
-**
-** You should have received a copy of the GNU General Public License
-** along with SecureShare; see the file COPYING.  If not, write to the
-** Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
-** Boston, MA 02110-1301, USA.
-**************************************************************************/
-
-#include "models.h"
-#include "models/PlacesModel.h"
-#include "core/social/place.h"
-#include "models/IdentityModel.h"
-
-Models::Models(QObject *parent) :
-    QObject(parent)
-{
-
-    m_places = new PlacesModel(this);
-    m_identities = new IdentityModel(this);
-
-    test();
-}
-
-Models::~Models()
-{
-    delete m_places;
-    m_places = NULL;
-}
-
-
-void Models::test()
-{
-/*
-    Place* place = m_places->add("test");
-    place->setName("#test");*/
-
-}
+/**************************************************************************
+** This file is part of SecureShare
+** (C)2/24/2013 2013 Bruno Cabral (and other contributing authors)
+**
+** SecureShare is free software; you can redistribute it and/or modify
+** it under the terms of the GNU General Public License as published
+** by the Free Software Foundation; either version 3, or (at your
+** option) any later version.
+**
+** SecureShare is distributed in the hope that it will be useful, but
+** WITHOUT ANY WARRANTY; without even the implied warranty of
+** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+** General Public License for more details.
+**
+** You should have received a copy of the GNU General Public License
+** along with SecureShare; see the file COPYING.  If not, write to the
+** Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
+** Boston, MA 02110-1301, USA.
+**************************************************************************/
+
+#include "models.h"
+#include "models/PlacesModel.h"
+#include "core/social/place.h"
+#include "models/IdentityModel.h"
+
+Models::Models(QObject *parent) :
+    QObject(parent)
+{
+
+    m_places = new PlacesModel(this);
+    m_identities = new IdentityModel(this);
+
+    test();
+}
+
+Models::~Models()
+{
+    delete m_places;
+    m_places = NULL;
+}
+
+
+void Models::test()
+{
+/*
+    Place* place = m_places->add("test");
+    place->setName("#test");*/
+
+}

Modified: gnunet-qt/secushare/models/models.h
===================================================================
--- gnunet-qt/secushare/models/models.h 2015-11-12 18:30:33 UTC (rev 36654)
+++ gnunet-qt/secushare/models/models.h 2015-11-12 18:30:37 UTC (rev 36655)
@@ -1,60 +1,60 @@
-/**************************************************************************
-** This file is part of SecureShare
-** (C)2/24/2013 2013 Bruno Cabral (and other contributing authors)
-**
-** SecureShare is free software; you can redistribute it and/or modify
-** it under the terms of the GNU General Public License as published
-** by the Free Software Foundation; either version 3, or (at your
-** option) any later version.
-**
-** SecureShare is distributed in the hope that it will be useful, but
-** WITHOUT ANY WARRANTY; without even the implied warranty of
-** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-** General Public License for more details.
-**
-** You should have received a copy of the GNU General Public License
-** along with SecureShare; see the file COPYING.  If not, write to the
-** Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
-** Boston, MA 02110-1301, USA.
-**************************************************************************/
-
-#ifndef MODELS_H
-#define MODELS_H
-
-#include <QObject>
-
-
-class PlacesModel;
-class IdentityModel;
-class Models : public QObject
-{
-    Q_OBJECT
-    Q_PROPERTY(PlacesModel * placesModel READ placesModel NOTIFY 
placesModelChanged)
-    Q_PROPERTY(IdentityModel * identityModel READ identityModel NOTIFY 
identityModelChanged)
-
-public:
-    explicit Models(QObject *parent = 0);
-    ~Models();
-
-    PlacesModel* placesModel() const
-    { return m_places; }
-
-    IdentityModel* identityModel() const
-    { return m_identities; }
-
-    void test();
-signals:
-    void placesModelChanged(PlacesModel*);
-    void identityModelChanged(IdentityModel*);
-public slots:
-
-private:
-
-    PlacesModel* m_places;
-    IdentityModel* m_identities;
-
-};
-
-#endif // MODELS_H
-
-
+/**************************************************************************
+** This file is part of SecureShare
+** (C)2/24/2013 2013 Bruno Cabral (and other contributing authors)
+**
+** SecureShare is free software; you can redistribute it and/or modify
+** it under the terms of the GNU General Public License as published
+** by the Free Software Foundation; either version 3, or (at your
+** option) any later version.
+**
+** SecureShare is distributed in the hope that it will be useful, but
+** WITHOUT ANY WARRANTY; without even the implied warranty of
+** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+** General Public License for more details.
+**
+** You should have received a copy of the GNU General Public License
+** along with SecureShare; see the file COPYING.  If not, write to the
+** Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
+** Boston, MA 02110-1301, USA.
+**************************************************************************/
+
+#ifndef MODELS_H
+#define MODELS_H
+
+#include <QObject>
+
+
+class PlacesModel;
+class IdentityModel;
+class Models : public QObject
+{
+    Q_OBJECT
+    Q_PROPERTY(PlacesModel * placesModel READ placesModel NOTIFY 
placesModelChanged)
+    Q_PROPERTY(IdentityModel * identityModel READ identityModel NOTIFY 
identityModelChanged)
+
+public:
+    explicit Models(QObject *parent = 0);
+    ~Models();
+
+    PlacesModel* placesModel() const
+    { return m_places; }
+
+    IdentityModel* identityModel() const
+    { return m_identities; }
+
+    void test();
+signals:
+    void placesModelChanged(PlacesModel*);
+    void identityModelChanged(IdentityModel*);
+public slots:
+
+private:
+
+    PlacesModel* m_places;
+    IdentityModel* m_identities;
+
+};
+
+#endif // MODELS_H
+
+

Modified: gnunet-qt/secushare/preferences/preferences.cpp
===================================================================
--- gnunet-qt/secushare/preferences/preferences.cpp     2015-11-12 18:30:33 UTC 
(rev 36654)
+++ gnunet-qt/secushare/preferences/preferences.cpp     2015-11-12 18:30:37 UTC 
(rev 36655)
@@ -1,54 +1,54 @@
-/*
-     This file is part of secushare
-     (C) 2014 Bruno Cabral (and other contributing authors)
-     
-     secushare is free software; you can redistribute it and/or modify
-     it under the terms of the GNU General Public License as published
-     by the Free Software Foundation; either version 3, or (at your
-     option) any later version.
-     
-     secushare is distributed in the hope that it will be useful, but
-     WITHOUT ANY WARRANTY; without even the implied warranty of
-     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-     General Public License for more details.
-     
-     You should have received a copy of the GNU General Public License
-     along with SecureShare; see the file COPYING.  If not, write to the
-     Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
-     Boston, MA 02110-1301, USA.
-*/
-
-#include "preferences.h"
-#include <QSettings>
-#include <QFile>
-#include <QFileInfo>
-#include <QDir>
-
-#include "core/psyccore.h"
-#include "psyc.h"
-#include "core/identity/identity.h"
-
-Preferences::Preferences(QObject *parent)
-  : QSettings(QSettings::IniFormat, QSettings::UserScope,
-              "gnunet", "secushare", parent)
-{
-  sync();
-}
-
-void Preferences::save()
-{
-  sync();
-}
-
-QString Preferences::getFolder()
-{
-  QString filepath = fileName();
-  QFileInfo fi(filepath);
-
-  QDir fileDir = fi.dir();
-  QString fileDirStr = fileDir.absolutePath();
-
-  Identity* iden = theApp->identity();
-
-  return fileDirStr + "/" + applicationName() + "/" + iden->name();
-}
+/*
+     This file is part of secushare
+     (C) 2014 Bruno Cabral (and other contributing authors)
+     
+     secushare is free software; you can redistribute it and/or modify
+     it under the terms of the GNU General Public License as published
+     by the Free Software Foundation; either version 3, or (at your
+     option) any later version.
+     
+     secushare is distributed in the hope that it will be useful, but
+     WITHOUT ANY WARRANTY; without even the implied warranty of
+     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+     General Public License for more details.
+     
+     You should have received a copy of the GNU General Public License
+     along with SecureShare; see the file COPYING.  If not, write to the
+     Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
+     Boston, MA 02110-1301, USA.
+*/
+
+#include "preferences.h"
+#include <QSettings>
+#include <QFile>
+#include <QFileInfo>
+#include <QDir>
+
+#include "core/psyccore.h"
+#include "psyc.h"
+#include "core/identity/identity.h"
+
+Preferences::Preferences(QObject *parent)
+  : QSettings(QSettings::IniFormat, QSettings::UserScope,
+              "gnunet", "secushare", parent)
+{
+  sync();
+}
+
+void Preferences::save()
+{
+  sync();
+}
+
+QString Preferences::getFolder()
+{
+  QString filepath = fileName();
+  QFileInfo fi(filepath);
+
+  QDir fileDir = fi.dir();
+  QString fileDirStr = fileDir.absolutePath();
+
+  Identity* iden = theApp->identity();
+
+  return fileDirStr + "/" + applicationName() + "/" + iden->name();
+}

Modified: gnunet-qt/secushare/preferences/preferences.h
===================================================================
--- gnunet-qt/secushare/preferences/preferences.h       2015-11-12 18:30:33 UTC 
(rev 36654)
+++ gnunet-qt/secushare/preferences/preferences.h       2015-11-12 18:30:37 UTC 
(rev 36655)
@@ -1,116 +1,116 @@
-/*
-     This file is part of secushare
-     (C) 2014 Bruno Cabral (and other contributing authors)
-     
-     secushare is free software; you can redistribute it and/or modify
-     it under the terms of the GNU General Public License as published
-     by the Free Software Foundation; either version 3, or (at your
-     option) any later version.
-     
-     SecureShare is distributed in the hope that it will be useful, but
-     WITHOUT ANY WARRANTY; without even the implied warranty of
-     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-     General Public License for more details.
-     
-     You should have received a copy of the GNU General Public License
-     along with SecureShare; see the file COPYING.  If not, write to the
-     Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
-     Boston, MA 02110-1301, USA.
-*/
-
-#ifndef PREFERENCES_H
-#define PREFERENCES_H
-
-#include <QObject>
-#include <QDebug>
-#include <QSettings>
-#include <QStandardPaths>
-#include <QDir>
-
-class Preferences : public QSettings
-{
-    Q_OBJECT
-    Q_DISABLE_COPY (Preferences)
-
-    /*
-     * GENERAL
-     */
-    Q_PROPERTY(bool minimizeToTray READ minimizeToTray WRITE setMinimizeToTray 
NOTIFY minimizeToTrayChangedSignal)
-
-    Q_PROPERTY(QString name READ name WRITE setName NOTIFY nameChangedSignal)
-    Q_PROPERTY(QString status READ status WRITE setStatus NOTIFY 
statusChangedSignal)
-
-    Q_PROPERTY(bool saveRoom READ saveRoom WRITE setSaveRoom NOTIFY 
saveRoomChangedSignal)
-
-public:
-    explicit Preferences(QObject *parent = 0);
-
-    /*
-     * GENERAL
-     */
-
-    bool minimizeToTray()
-    {
-        return value("core/minimizeToTray",true).toBool();
-    }
-
-    void setMinimizeToTray(bool flag)
-    {
-        setValue("core/minimizeToTray",flag);
-        emit minimizeToTrayChangedSignal(flag);
-    }
-
-    QString name()
-    {
-      return value("core/name","My Username").toString();
-    }
-
-    void setName(QString name)
-    {
-      setValue("core/name",name);
-      emit nameChangedSignal(name);
-    }
-
-    QString status()
-    {
-      return value("core/status","My Status").toString();
-    }
-
-    void setStatus(QString status)
-    {
-
-      setValue("core/status",status);
-      emit statusChangedSignal(status);
-    }
-
-    bool saveRoom()
-    {
-        return value("core/saveRoom",true).toBool();
-    }
-
-    void setSaveRoom(bool flag)
-    {
-        setValue("core/saveRoom",flag);
-        emit saveRoomChangedSignal(flag);
-    }
-
-
-    Q_INVOKABLE void save();
-
-    QString getFolder();
-signals:
-    /*
-     * GENERAL
-     */
-
-    void minimizeToTrayChangedSignal(bool flag);
-    void nameChangedSignal(QString name);
-    void statusChangedSignal(QString status);
-    void saveRoomChangedSignal(bool flag);
-
-public slots:
-
-
-};
-
-#endif // PREFERENCES_H
+/*
+     This file is part of secushare
+     (C) 2014 Bruno Cabral (and other contributing authors)
+     
+     secushare is free software; you can redistribute it and/or modify
+     it under the terms of the GNU General Public License as published
+     by the Free Software Foundation; either version 3, or (at your
+     option) any later version.
+     
+     SecureShare is distributed in the hope that it will be useful, but
+     WITHOUT ANY WARRANTY; without even the implied warranty of
+     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+     General Public License for more details.
+     
+     You should have received a copy of the GNU General Public License
+     along with SecureShare; see the file COPYING.  If not, write to the
+     Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
+     Boston, MA 02110-1301, USA.
+*/
+
+#ifndef PREFERENCES_H
+#define PREFERENCES_H
+
+#include <QObject>
+#include <QDebug>
+#include <QSettings>
+#include <QStandardPaths>
+#include <QDir>
+
+class Preferences : public QSettings
+{
+    Q_OBJECT
+    Q_DISABLE_COPY (Preferences)
+
+    /*
+     * GENERAL
+     */
+    Q_PROPERTY(bool minimizeToTray READ minimizeToTray WRITE setMinimizeToTray 
NOTIFY minimizeToTrayChangedSignal)
+
+    Q_PROPERTY(QString name READ name WRITE setName NOTIFY nameChangedSignal)
+    Q_PROPERTY(QString status READ status WRITE setStatus NOTIFY 
statusChangedSignal)
+
+    Q_PROPERTY(bool saveRoom READ saveRoom WRITE setSaveRoom NOTIFY 
saveRoomChangedSignal)
+
+public:
+    explicit Preferences(QObject *parent = 0);
+
+    /*
+     * GENERAL
+     */
+
+    bool minimizeToTray()
+    {
+        return value("core/minimizeToTray",true).toBool();
+    }
+
+    void setMinimizeToTray(bool flag)
+    {
+        setValue("core/minimizeToTray",flag);
+        emit minimizeToTrayChangedSignal(flag);
+    }
+
+    QString name()
+    {
+      return value("core/name","My Username").toString();
+    }
+
+    void setName(QString name)
+    {
+      setValue("core/name",name);
+      emit nameChangedSignal(name);
+    }
+
+    QString status()
+    {
+      return value("core/status","My Status").toString();
+    }
+
+    void setStatus(QString status)
+    {
+
+      setValue("core/status",status);
+      emit statusChangedSignal(status);
+    }
+
+    bool saveRoom()
+    {
+        return value("core/saveRoom",true).toBool();
+    }
+
+    void setSaveRoom(bool flag)
+    {
+        setValue("core/saveRoom",flag);
+        emit saveRoomChangedSignal(flag);
+    }
+
+
+    Q_INVOKABLE void save();
+
+    QString getFolder();
+signals:
+    /*
+     * GENERAL
+     */
+
+    void minimizeToTrayChangedSignal(bool flag);
+    void nameChangedSignal(QString name);
+    void statusChangedSignal(QString status);
+    void saveRoomChangedSignal(bool flag);
+
+public slots:
+
+
+};
+
+#endif // PREFERENCES_H

Modified: gnunet-qt/secushare/psyc.cpp
===================================================================
--- gnunet-qt/secushare/psyc.cpp        2015-11-12 18:30:33 UTC (rev 36654)
+++ gnunet-qt/secushare/psyc.cpp        2015-11-12 18:30:37 UTC (rev 36655)
@@ -1,83 +1,83 @@
-#include "psyc.h"
-
-#include "preferences/preferences.h"
-#include "core/psyccore.h"
-#include "models/models.h"
-#include "models/PlacesModel.h"
-#include "models/IdentityModel.h"
-#include "utils/helpers.h"
-
-#include "core/gnunet/gnunet.h"
-#include "core/identity/identityService.h"
-#include "core/identity/identity.h"
-
-#include "core/social/socialservice.h"
-#include "core/social/place.h"
-
-#include "utils/qrimageprovider.h"
-
-#include <QQmlEngine>
-#include <QtQml/qqml.h>
-
-
-/* Static member variables */
-Preferences* thePrefs;
-QQuickWindow* theWindow;
-
-
-#define URI "Psyc"
-
-Psyc::Psyc(QObject *parent) :
-    QObject(parent)
-{
-    thePrefs = new Preferences(this);
-    m_core = new PsycCore(this);
-    registerQmlTypes();
-}
-
-
-//Define the theApp singleton type provider.
-static QObject *theApp_provider(QQmlEngine *engine, QJSEngine *scriptEngine)
-{
-    Q_UNUSED(engine);
-    Q_UNUSED(scriptEngine);
-
-    return theApp;
-}
-
-
-static QObject *thePrefs_provider(QQmlEngine *engine, QJSEngine *scriptEngine)
-{
-    Q_UNUSED(engine);
-    Q_UNUSED(scriptEngine);
-
-    return thePrefs;
-}
-
-
-void Psyc::registerQmlTypes()
-{
-    qmlRegisterSingletonType<PsycCore>(URI, 1, 0, "Preferences", 
thePrefs_provider);
-    qmlRegisterSingletonType<PsycCore>(URI, 1, 0, "Psyc", theApp_provider);
-
-    qmlRegisterUncreatableType<Models>(URI, 1, 0, "Models", QLatin1String("Use 
calling the psyc method."));
-    qmlRegisterUncreatableType<PlacesModel>(URI, 1, 0, "PlacesModel", 
QLatin1String("Use calling the psyc method."));
-    qmlRegisterUncreatableType<IdentityModel>(URI, 1, 0, "IdentityModel", 
QLatin1String("Use calling the psyc method."));
-
-    qmlRegisterUncreatableType<GNUNet>(URI, 1, 0, "GNUNet", QLatin1String("Use 
calling the psyc method."));
-    qmlRegisterUncreatableType<Helpers>(URI, 1, 0, "Helpers", 
QLatin1String("Use calling the psyc method."));
-
-    qmlRegisterUncreatableType<IdentityService>(URI, 1, 0, "IdentityService", 
QLatin1String("Use calling the psyc method."));
-    qmlRegisterUncreatableType<Identity>(URI, 1, 0, "Identity", 
QLatin1String("Use calling the psyc method."));
-    qmlRegisterUncreatableType<SocialService>(URI, 1, 0, "SocialService", 
QLatin1String("Use calling the psyc method."));
-    qmlRegisterUncreatableType<Place>(URI, 1, 0, "Place", QLatin1String("Use 
calling the psyc method."));
-}
-
-/**
- * @brief Psyc::registerImageProvider , registers image handlers to QML engine
- * @param engine
- */
-void Psyc::registerImageProvider(QQmlEngine *engine)
-{
-    engine->addImageProvider("qrProvider",theApp->qrProvider());
-}
+#include "psyc.h"
+
+#include "preferences/preferences.h"
+#include "core/psyccore.h"
+#include "models/models.h"
+#include "models/PlacesModel.h"
+#include "models/IdentityModel.h"
+#include "utils/helpers.h"
+
+#include "core/gnunet/gnunet.h"
+#include "core/identity/identityService.h"
+#include "core/identity/identity.h"
+
+#include "core/social/socialservice.h"
+#include "core/social/place.h"
+
+#include "utils/qrimageprovider.h"
+
+#include <QQmlEngine>
+#include <QtQml/qqml.h>
+
+
+/* Static member variables */
+Preferences* thePrefs;
+QQuickWindow* theWindow;
+
+
+#define URI "Psyc"
+
+Psyc::Psyc(QObject *parent) :
+    QObject(parent)
+{
+    thePrefs = new Preferences(this);
+    m_core = new PsycCore(this);
+    registerQmlTypes();
+}
+
+
+//Define the theApp singleton type provider.
+static QObject *theApp_provider(QQmlEngine *engine, QJSEngine *scriptEngine)
+{
+    Q_UNUSED(engine);
+    Q_UNUSED(scriptEngine);
+
+    return theApp;
+}
+
+
+static QObject *thePrefs_provider(QQmlEngine *engine, QJSEngine *scriptEngine)
+{
+    Q_UNUSED(engine);
+    Q_UNUSED(scriptEngine);
+
+    return thePrefs;
+}
+
+
+void Psyc::registerQmlTypes()
+{
+    qmlRegisterSingletonType<PsycCore>(URI, 1, 0, "Preferences", 
thePrefs_provider);
+    qmlRegisterSingletonType<PsycCore>(URI, 1, 0, "Psyc", theApp_provider);
+
+    qmlRegisterUncreatableType<Models>(URI, 1, 0, "Models", QLatin1String("Use 
calling the psyc method."));
+    qmlRegisterUncreatableType<PlacesModel>(URI, 1, 0, "PlacesModel", 
QLatin1String("Use calling the psyc method."));
+    qmlRegisterUncreatableType<IdentityModel>(URI, 1, 0, "IdentityModel", 
QLatin1String("Use calling the psyc method."));
+
+    qmlRegisterUncreatableType<GNUNet>(URI, 1, 0, "GNUNet", QLatin1String("Use 
calling the psyc method."));
+    qmlRegisterUncreatableType<Helpers>(URI, 1, 0, "Helpers", 
QLatin1String("Use calling the psyc method."));
+
+    qmlRegisterUncreatableType<IdentityService>(URI, 1, 0, "IdentityService", 
QLatin1String("Use calling the psyc method."));
+    qmlRegisterUncreatableType<Identity>(URI, 1, 0, "Identity", 
QLatin1String("Use calling the psyc method."));
+    qmlRegisterUncreatableType<SocialService>(URI, 1, 0, "SocialService", 
QLatin1String("Use calling the psyc method."));
+    qmlRegisterUncreatableType<Place>(URI, 1, 0, "Place", QLatin1String("Use 
calling the psyc method."));
+}
+
+/**
+ * @brief Psyc::registerImageProvider , registers image handlers to QML engine
+ * @param engine
+ */
+void Psyc::registerImageProvider(QQmlEngine *engine)
+{
+    engine->addImageProvider("qrProvider",theApp->qrProvider());
+}

Modified: gnunet-qt/secushare/psyc.h
===================================================================
--- gnunet-qt/secushare/psyc.h  2015-11-12 18:30:33 UTC (rev 36654)
+++ gnunet-qt/secushare/psyc.h  2015-11-12 18:30:37 UTC (rev 36655)
@@ -1,27 +1,27 @@
-#ifndef PSYC_H
-#define PSYC_H
-
-#include <QObject>
-
-class Preferences;
-class QQuickWindow;
-class PsycCore;
-class QQmlEngine;
-class Psyc : public QObject
-{
-    Q_OBJECT
-public:
-    explicit Psyc(QObject *parent = 0);
-    void registerQmlTypes();
-    void registerImageProvider(QQmlEngine *engine);
-private:
-    PsycCore *m_core;
-
-signals:
-
-public slots:
-
-};
-extern Preferences* thePrefs;
-extern QQuickWindow* theWindow;
-#endif // PSYC_H
+#ifndef PSYC_H
+#define PSYC_H
+
+#include <QObject>
+
+class Preferences;
+class QQuickWindow;
+class PsycCore;
+class QQmlEngine;
+class Psyc : public QObject
+{
+    Q_OBJECT
+public:
+    explicit Psyc(QObject *parent = 0);
+    void registerQmlTypes();
+    void registerImageProvider(QQmlEngine *engine);
+private:
+    PsycCore *m_core;
+
+signals:
+
+public slots:
+
+};
+extern Preferences* thePrefs;
+extern QQuickWindow* theWindow;
+#endif // PSYC_H

Modified: gnunet-qt/secushare/qml/About.qml
===================================================================
--- gnunet-qt/secushare/qml/About.qml   2015-11-12 18:30:33 UTC (rev 36654)
+++ gnunet-qt/secushare/qml/About.qml   2015-11-12 18:30:37 UTC (rev 36655)
@@ -1,40 +1,40 @@
-import QtQuick.Window 2.1;
-import QtQuick 2.2
-import QtQuick.Controls 1.1
-import QtQuick.Layouts 1.1
-import Psyc 1.0
-
-Window {
-    title: "About";
-    width: 800;
-    height: 400;
-    id: aboutWnd
-
-
-    RowLayout{
-        anchors.fill: parent
-        anchors.margins: 10
-        spacing: 5
-        Label {
-            text: "Entrance designed by Stefan Parnarov from the Noun Project
-            Add designed by Factorio.us collective from the Noun Project
-            Send designed by Javier Sánchez - javyliu from the 
thenounproject.com
-            Gear designed by P.J. Onori from the thenounproject.com
-            GLYPHICONS FREE are released under the Creative Commons 
Attribution 3.0 Unported (CC BY 3.0) (http://glyphicons.com/).
-"
-
-        }
-
-
-        Button{
-            text: "Ok"
-            onPressedChanged: {
-                aboutWnd.close();
-            }
-        }
-    }
-
-}
-
-
-
+import QtQuick.Window 2.1;
+import QtQuick 2.2
+import QtQuick.Controls 1.1
+import QtQuick.Layouts 1.1
+import Psyc 1.0
+
+Window {
+    title: "About";
+    width: 800;
+    height: 400;
+    id: aboutWnd
+
+
+    RowLayout{
+        anchors.fill: parent
+        anchors.margins: 10
+        spacing: 5
+        Label {
+            text: "Entrance designed by Stefan Parnarov from the Noun Project
+            Add designed by Factorio.us collective from the Noun Project
+            Send designed by Javier Sánchez - javyliu from the 
thenounproject.com
+            Gear designed by P.J. Onori from the thenounproject.com
+            GLYPHICONS FREE are released under the Creative Commons 
Attribution 3.0 Unported (CC BY 3.0) (http://glyphicons.com/).
+"
+
+        }
+
+
+        Button{
+            text: "Ok"
+            onPressedChanged: {
+                aboutWnd.close();
+            }
+        }
+    }
+
+}
+
+
+

Modified: gnunet-qt/secushare/qml/ConversationWindow.qml
===================================================================
--- gnunet-qt/secushare/qml/ConversationWindow.qml      2015-11-12 18:30:33 UTC 
(rev 36654)
+++ gnunet-qt/secushare/qml/ConversationWindow.qml      2015-11-12 18:30:37 UTC 
(rev 36655)
@@ -1,67 +1,67 @@
-// FIXME/deprecated: Conversations happen in a TOPIC in ThreadChat.
-
-
-import QtQuick 2.1
-import QtQuick.Window 2.1
-import QtQuick.Controls 1.2
-import QtQuick.Layouts 1.1
-import QtQuick.Controls.Styles 1.2
-
-import Psyc 1.0
-
-ApplicationWindow {
-    id: conversationWnd
-    width: 950
-    height: 600
-    color: "lightgrey"
-    title: "All conversations"
-
-    menuBar: MenuBar {
-        Menu {
-            title: qsTr("Conversation")
-            MenuItem {
-                text: qsTr("Quit")
-            }
-        }
-        Menu {
-            title: qsTr("Options")
-            MenuItem {
-                text: qsTr("Quit")
-            }
-        }
-    }
-
-
-
-    TabView{
-        id: conversationTab
-        anchors.fill: parent
-
-        ConversationTab{
-            title: "test"
-
-        }
-
-        style: TabViewStyle {
-                frameOverlap: 1
-                tab: Rectangle {
-                    color: styleData.selected ? "steelblue" :"lightsteelblue"
-                    border.color:  "steelblue"
-                    implicitWidth: Math.max(text.width + 4, 80)
-                    implicitHeight: 20
-                    radius: 2
-                    Text {
-                        id: text
-                        anchors.centerIn: parent
-                        text: styleData.title
-                        color: styleData.selected ? "white" : "black"
-                    }
-                }
-                frame: Rectangle { color: "steelblue" }
-            }
-
-
-    }
-
-
-}
+// FIXME/deprecated: Conversations happen in a TOPIC in ThreadChat.
+
+
+import QtQuick 2.1
+import QtQuick.Window 2.1
+import QtQuick.Controls 1.2
+import QtQuick.Layouts 1.1
+import QtQuick.Controls.Styles 1.2
+
+import Psyc 1.0
+
+ApplicationWindow {
+    id: conversationWnd
+    width: 950
+    height: 600
+    color: "lightgrey"
+    title: "All conversations"
+
+    menuBar: MenuBar {
+        Menu {
+            title: qsTr("Conversation")
+            MenuItem {
+                text: qsTr("Quit")
+            }
+        }
+        Menu {
+            title: qsTr("Options")
+            MenuItem {
+                text: qsTr("Quit")
+            }
+        }
+    }
+
+
+
+    TabView{
+        id: conversationTab
+        anchors.fill: parent
+
+        ConversationTab{
+            title: "test"
+
+        }
+
+        style: TabViewStyle {
+                frameOverlap: 1
+                tab: Rectangle {
+                    color: styleData.selected ? "steelblue" :"lightsteelblue"
+                    border.color:  "steelblue"
+                    implicitWidth: Math.max(text.width + 4, 80)
+                    implicitHeight: 20
+                    radius: 2
+                    Text {
+                        id: text
+                        anchors.centerIn: parent
+                        text: styleData.title
+                        color: styleData.selected ? "white" : "black"
+                    }
+                }
+                frame: Rectangle { color: "steelblue" }
+            }
+
+
+    }
+
+
+}

Modified: gnunet-qt/secushare/qml/CreateRoom.qml
===================================================================
--- gnunet-qt/secushare/qml/CreateRoom.qml      2015-11-12 18:30:33 UTC (rev 
36654)
+++ gnunet-qt/secushare/qml/CreateRoom.qml      2015-11-12 18:30:37 UTC (rev 
36655)
@@ -1,189 +1,189 @@
-import QtQuick.Window 2.1;
-import QtQuick 2.2
-import QtQuick.Controls 1.1
-import QtQuick.Layouts 1.1
-import Psyc 1.0
-
-Rectangle {
-    anchors.fill: parent
-    id: createRoomWnd
-
-    property var selected: 0
-
-
-    FontLoader { id: ubuntuFont; source: "fonts/Ubuntu-R.ttf" }
-
-    Rectangle{
-        id:headerBanner
-        anchors.top: parent.top
-        anchors.left: parent.left
-        anchors.right: parent.right
-        height: 60
-        color: "white"
-
-
-        Image {
-            id: imageBanner
-            source: "images/new.png"
-            anchors.top: parent.top
-            anchors.left: parent.left
-            anchors.margins: 5
-            height: 42
-            width: 42
-            fillMode: Image.PreserveAspectFit
-
-        }
-
-        Label{
-            text: "Create Chat"
-            anchors.left: imageBanner.right
-            anchors.leftMargin: 5
-            anchors.top: parent.top
-            anchors.topMargin: 10
-            font.family: ubuntuFont.name
-            font.pointSize: 22
-            wrapMode : Text.Wrap
-            elide : Text.ElideRight
-        }
-
-    }
-    Rectangle{
-        anchors.top: headerBanner.bottom
-        anchors.left: parent.left
-        anchors.right: parent.right
-        height: 1
-        color: "#D1D1D1"
-
-    }
-
-
-    Item {
-        id: container
-        anchors.top: headerBanner.bottom
-        anchors.left: parent.left
-        anchors.right: parent.right
-        anchors.bottom: parent.bottom
-
-        Item{
-            id:infoRow
-            anchors.top: parent.top
-            anchors.left: parent.left
-            anchors.right: parent.right
-            anchors.margins: 10
-            height:  infoLabel.height
-
-
-
-            Label {
-                id: infoLabel
-                anchors.top: parent.top
-                anchors.left: parent.left
-                anchors.right: parent.right
-                wrapMode : Text.Wrap
-                text: "Please enter the appropriate information about the room 
you would like to create."
-            }
-
-
-        }
-
-
-
-        ColumnLayout{
-            id:dataRow
-            anchors.top: infoRow.bottom
-            anchors.left: infoRow.left
-            anchors.right: infoRow.right
-            anchors.topMargin: 10
-
-            Row{
-                spacing: 2
-                Label {
-                    id: nameLabel
-                    text: "Name:"
-                    width: 80
-                }
-
-                TextField{
-                    id: nameField
-                    height: 20
-                    width: 150
-
-                }
-            }
-
-            Row{
-                spacing: 2
-                Label {
-                    id: expirationLabel
-                    text: "Expiration:"
-                    width: 80
-                }
-
-                TextField{
-                    id: expirationField
-                    height: 20
-                    width: 150
-                    inputMethodHints: Qt.ImhDigitsOnly
-
-                }
-            }
-            Row{
-                spacing: 2
-                Label {
-                    id: policyLabel
-                    text: "Policy:"
-                    width: 100
-                }
-
-                ComboBox {
-                     id: policyCombo
-                    currentIndex: 2
-                    model: ListModel {
-                        id: cbItems
-                        ListElement { text: "Anonymous channel";}
-                        ListElement { text: "Private channel"; }
-                        ListElement { text: "Closed channel";}
-                        ListElement { text: "Public channel";}
-                    }
-                    width: 200
-                 }
-            }
-            Row{
-                spacing: 2
-                Label {
-                    id: passwordLabel
-                    text: "Password:"
-                    width: 100
-                }
-
-                TextField{
-                    id: passwordField
-                    echoMode :TextInput.Password
-                    height: 20
-                    width: 200
-
-                }
-            }
-
-
-        }
-
-
-
-        Row{
-            anchors.top: dataRow.bottom
-            anchors.left: parent.left
-            spacing: 2
-
-            Button{
-                text: "Create"
-                width: 200
-
-                onClicked: {
-                    Psyc.gnunet.social.createPlace(nameField.text)
-                }
-            }
-        }
-    }
-
-}
+import QtQuick.Window 2.1;
+import QtQuick 2.2
+import QtQuick.Controls 1.1
+import QtQuick.Layouts 1.1
+import Psyc 1.0
+
+Rectangle {
+    anchors.fill: parent
+    id: createRoomWnd
+
+    property var selected: 0
+
+
+    FontLoader { id: ubuntuFont; source: "fonts/Ubuntu-R.ttf" }
+
+    Rectangle{
+        id:headerBanner
+        anchors.top: parent.top
+        anchors.left: parent.left
+        anchors.right: parent.right
+        height: 60
+        color: "white"
+
+
+        Image {
+            id: imageBanner
+            source: "images/new.png"
+            anchors.top: parent.top
+            anchors.left: parent.left
+            anchors.margins: 5
+            height: 42
+            width: 42
+            fillMode: Image.PreserveAspectFit
+
+        }
+
+        Label{
+            text: "Create Chat"
+            anchors.left: imageBanner.right
+            anchors.leftMargin: 5
+            anchors.top: parent.top
+            anchors.topMargin: 10
+            font.family: ubuntuFont.name
+            font.pointSize: 22
+            wrapMode : Text.Wrap
+            elide : Text.ElideRight
+        }
+
+    }
+    Rectangle{
+        anchors.top: headerBanner.bottom
+        anchors.left: parent.left
+        anchors.right: parent.right
+        height: 1
+        color: "#D1D1D1"
+
+    }
+
+
+    Item {
+        id: container
+        anchors.top: headerBanner.bottom
+        anchors.left: parent.left
+        anchors.right: parent.right
+        anchors.bottom: parent.bottom
+
+        Item{
+            id:infoRow
+            anchors.top: parent.top
+            anchors.left: parent.left
+            anchors.right: parent.right
+            anchors.margins: 10
+            height:  infoLabel.height
+
+
+
+            Label {
+                id: infoLabel
+                anchors.top: parent.top
+                anchors.left: parent.left
+                anchors.right: parent.right
+                wrapMode : Text.Wrap
+                text: "Please enter the appropriate information about the room 
you would like to create."
+            }
+
+
+        }
+
+
+
+        ColumnLayout{
+            id:dataRow
+            anchors.top: infoRow.bottom
+            anchors.left: infoRow.left
+            anchors.right: infoRow.right
+            anchors.topMargin: 10
+
+            Row{
+                spacing: 2
+                Label {
+                    id: nameLabel
+                    text: "Name:"
+                    width: 80
+                }
+
+                TextField{
+                    id: nameField
+                    height: 20
+                    width: 150
+
+                }
+            }
+
+            Row{
+                spacing: 2
+                Label {
+                    id: expirationLabel
+                    text: "Expiration:"
+                    width: 80
+                }
+
+                TextField{
+                    id: expirationField
+                    height: 20
+                    width: 150
+                    inputMethodHints: Qt.ImhDigitsOnly
+
+                }
+            }
+            Row{
+                spacing: 2
+                Label {
+                    id: policyLabel
+                    text: "Policy:"
+                    width: 100
+                }
+
+                ComboBox {
+                     id: policyCombo
+                    currentIndex: 2
+                    model: ListModel {
+                        id: cbItems
+                        ListElement { text: "Anonymous channel";}
+                        ListElement { text: "Private channel"; }
+                        ListElement { text: "Closed channel";}
+                        ListElement { text: "Public channel";}
+                    }
+                    width: 200
+                 }
+            }
+            Row{
+                spacing: 2
+                Label {
+                    id: passwordLabel
+                    text: "Password:"
+                    width: 100
+                }
+
+                TextField{
+                    id: passwordField
+                    echoMode :TextInput.Password
+                    height: 20
+                    width: 200
+
+                }
+            }
+
+
+        }
+
+
+
+        Row{
+            anchors.top: dataRow.bottom
+            anchors.left: parent.left
+            spacing: 2
+
+            Button{
+                text: "Create"
+                width: 200
+
+                onClicked: {
+                    Psyc.gnunet.social.createPlace(nameField.text)
+                }
+            }
+        }
+    }
+
+}

Modified: gnunet-qt/secushare/qml/ExportEgo.qml
===================================================================
--- gnunet-qt/secushare/qml/ExportEgo.qml       2015-11-12 18:30:33 UTC (rev 
36654)
+++ gnunet-qt/secushare/qml/ExportEgo.qml       2015-11-12 18:30:37 UTC (rev 
36655)
@@ -1,89 +1,89 @@
-import QtQuick.Window 2.1;
-import QtQuick 2.2
-import QtQuick.Controls 1.1
-import QtQuick.Layouts 1.1
-import Psyc 1.0
-import QtQuick.Dialogs 1.2
-
-Window {
-    title: "Export Ego";
-    width: 300;
-    height: 400;
-    id: exportEgoWnd
-
-
-    FileDialog {
-        id: fileDialog
-        title: "Please choose a file"
-        selectExisting: false
-        nameFilters: [ "Image files (*.png *.jpg)" ]
-        onAccepted: {
-            console.log("You chose: " + fileDialog.fileUrls)
-            var orginal = fileDialog.fileUrl.toString()
-
-            Psyc.helpers.saveQrAsFile(orginal.replace("file:///",""));
-
-
-        }
-        onRejected: {
-            console.log("Canceled")
-        }
-    }
-
-
-    Item{
-        anchors.fill: parent
-        anchors.margins: 10
-        Label {
-            id: exportLabel
-            text: "Export your Identity"
-            font.pointSize: 22
-        }
-
-
-        Image {
-            anchors.top: exportLabel.bottom
-            anchors.left: parent.left
-
-            id: qrImage
-            width: 250; height: 250
-            source: "image://qrProvider/image.jpg"
-        }
-        Button{
-            id: saveImageButton
-            anchors.top: qrImage.bottom
-            anchors.left: qrImage.left
-            text: "Save as Image"
-
-            onClicked: {
-                fileDialog.open();
-            }
-
-        }
-
-
-        TextField{
-            anchors.top: saveImageButton.bottom
-            anchors.topMargin: 15
-            anchors.left: parent.left
-            anchors.right: parent.right
-
-            id:newName
-
-            text: Psyc.identity.url
-        }
-
-        Row{
-            anchors.bottom: parent.bottom
-            anchors.right: parent.right
-            spacing: 2
-            Button{
-                text: "Close"
-                onClicked: {
-                    exportEgoWnd.close();
-                }
-            }
-        }
-    }
-
-}
+import QtQuick.Window 2.1;
+import QtQuick 2.2
+import QtQuick.Controls 1.1
+import QtQuick.Layouts 1.1
+import Psyc 1.0
+import QtQuick.Dialogs 1.2
+
+Window {
+    title: "Export Ego";
+    width: 300;
+    height: 400;
+    id: exportEgoWnd
+
+
+    FileDialog {
+        id: fileDialog
+        title: "Please choose a file"
+        selectExisting: false
+        nameFilters: [ "Image files (*.png *.jpg)" ]
+        onAccepted: {
+            console.log("You chose: " + fileDialog.fileUrls)
+            var orginal = fileDialog.fileUrl.toString()
+
+            Psyc.helpers.saveQrAsFile(orginal.replace("file:///",""));
+
+
+        }
+        onRejected: {
+            console.log("Canceled")
+        }
+    }
+
+
+    Item{
+        anchors.fill: parent
+        anchors.margins: 10
+        Label {
+            id: exportLabel
+            text: "Export your Identity"
+            font.pointSize: 22
+        }
+
+
+        Image {
+            anchors.top: exportLabel.bottom
+            anchors.left: parent.left
+
+            id: qrImage
+            width: 250; height: 250
+            source: "image://qrProvider/image.jpg"
+        }
+        Button{
+            id: saveImageButton
+            anchors.top: qrImage.bottom
+            anchors.left: qrImage.left
+            text: "Save as Image"
+
+            onClicked: {
+                fileDialog.open();
+            }
+
+        }
+
+
+        TextField{
+            anchors.top: saveImageButton.bottom
+            anchors.topMargin: 15
+            anchors.left: parent.left
+            anchors.right: parent.right
+
+            id:newName
+
+            text: Psyc.identity.url
+        }
+
+        Row{
+            anchors.bottom: parent.bottom
+            anchors.right: parent.right
+            spacing: 2
+            Button{
+                text: "Close"
+                onClicked: {
+                    exportEgoWnd.close();
+                }
+            }
+        }
+    }
+
+}

Modified: gnunet-qt/secushare/qml/GroupConversation.qml
===================================================================
--- gnunet-qt/secushare/qml/GroupConversation.qml       2015-11-12 18:30:33 UTC 
(rev 36654)
+++ gnunet-qt/secushare/qml/GroupConversation.qml       2015-11-12 18:30:37 UTC 
(rev 36655)
@@ -1,203 +1,203 @@
-import QtQuick 2.1
-import QtQuick.Window 2.1
-import QtQuick.Controls 1.2
-import QtQuick.Layouts 1.1
-import QtQuick.Controls.Styles 1.2
-
-
-
-Rectangle {
-    anchors.fill: parent
-    color: "steelblue"
-
-    property var place: null
-
-    FontLoader { id: ubuntuFont; source: "fonts/Ubuntu-R.ttf" }
-
-    Rectangle{
-        id:headerBanner
-        anchors.top: parent.top
-        anchors.left: parent.left
-        anchors.right: parent.right
-        height: 60
-        color: "white"
-
-
-        Image {
-            id: imageBanner
-            source: "images/group_dark.png"
-            anchors.top: parent.top
-            anchors.left: parent.left
-            anchors.margins: 10
-            height: 32
-            width: 32
-            fillMode: Image.PreserveAspectFit
-
-        }
-
-        Label{
-            id:name
-            text: place.name
-            anchors.left: imageBanner.right
-            anchors.leftMargin: 5
-            anchors.top: parent.top
-            anchors.topMargin: 5
-            font.family: ubuntuFont.name
-            font.pointSize: 16
-            wrapMode : Text.Wrap
-            elide : Text.ElideRight
-        }
-
-        Label {
-            id: description
-            anchors.left: name.left
-            anchors.top: name.bottom
-            text: qsTr("Look at my group, my group is amazing !")
-            font.pointSize: 10
-            color: "darkgrey"
-        }
-
-    }
-    Rectangle{
-        id:headerLine
-        anchors.top: headerBanner.bottom
-        anchors.left: parent.left
-        anchors.right: parent.right
-        height: 1
-        color: "#D1D1D1"
-
-    }
-
-
-    ColumnLayout{
-        anchors.top: headerLine.bottom
-        anchors.left: parent.left
-        anchors.right: parent.right
-        anchors.bottom: parent.bottom
-
-
-        SplitView {
-            Layout.fillWidth: true
-            Layout.fillHeight: true
-            orientation: Qt.Horizontal
-
-
-
-
-            TextArea {
-                id: centerItem
-                Layout.minimumWidth: 50
-                Layout.fillWidth: true
-                textFormat: TextEdit.RichText
-                readOnly: true
-                frameVisible: false
-                text: place.content
-            }
-
-
-
-
-            Rectangle {
-                width: 200
-                color: "gray"
-                ColumnLayout{
-                    anchors.fill:parent
-                    Label {
-                        id: peopleNumber
-                        anchors.horizontalCenter: parent.horizontalCenter
-                        text: qsTr("3 people in room")
-                        color: "white"
-                    }
-                    TableView{
-                        id:users
-                        Layout.fillWidth: true
-                        Layout.fillHeight: true
-                        headerVisible:false
-
-                        TableViewColumn{ role: "title"  ; title: "Title" ; 
width: 100 }
-                        model:
-                            ListModel {
-                            ListElement{ title: "bratao1" }
-                            ListElement{ title: "lynX" }
-                            ListElement{ title: "tg"  }
-                        }
-
-                    }
-
-                }
-
-            }
-        }
-
-        RowLayout{
-            Layout.fillWidth: true
-            spacing: 5
-            TextArea{
-                id: textField
-                Layout.fillWidth: true
-                Layout.minimumHeight: 70
-                Layout.preferredHeight: 70
-
-            }
-            Button{
-
-                style: touchStyle
-
-                text: "Send"
-                onClicked: {
-                    place.talk(textField.text)
-                    textField.text = ""
-                }
-            }
-
-            Component {
-                id: touchStyle
-                ButtonStyle {
-                    panel: Item {
-                        implicitHeight: 40
-                        implicitWidth: 100
-                        BorderImage {
-                            anchors.fill: parent
-                            anchors.rightMargin: 5
-                            antialiasing: true
-                            border.bottom: 8
-                            border.top: 8
-                            border.left: 8
-                            border.right: 8
-                            anchors.margins: control.pressed ? -4 : 0
-
-                            Image {
-                                id: icon
-                                source: "images/send.png"
-                                height: 28
-                                width: 28
-                                fillMode: Image.PreserveAspectFit
-                                anchors.verticalCenter: parent.verticalCenter
-
-                                anchors.left: parent.left
-                                anchors.leftMargin: 5
-
-                            }
-
-
-                            source: control.pressed ? 
"images/button_pressed.png" : "images/button_default.png"
-                            Text {
-                                text: control.text
-                                anchors.verticalCenter: parent.verticalCenter
-
-                                anchors.left: icon.right
-                                anchors.leftMargin: 5
-                                color: "white"
-                                font.pixelSize: 20
-                                renderType: Text.NativeRendering
-                            }
-                        }
-                    }
-                }
-            }
-        }
-
-
-
-    }
-}
+import QtQuick 2.1
+import QtQuick.Window 2.1
+import QtQuick.Controls 1.2
+import QtQuick.Layouts 1.1
+import QtQuick.Controls.Styles 1.2
+
+
+
+Rectangle {
+    anchors.fill: parent
+    color: "steelblue"
+
+    property var place: null
+
+    FontLoader { id: ubuntuFont; source: "fonts/Ubuntu-R.ttf" }
+
+    Rectangle{
+        id:headerBanner
+        anchors.top: parent.top
+        anchors.left: parent.left
+        anchors.right: parent.right
+        height: 60
+        color: "white"
+
+
+        Image {
+            id: imageBanner
+            source: "images/group_dark.png"
+            anchors.top: parent.top
+            anchors.left: parent.left
+            anchors.margins: 10
+            height: 32
+            width: 32
+            fillMode: Image.PreserveAspectFit
+
+        }
+
+        Label{
+            id:name
+            text: place.name
+            anchors.left: imageBanner.right
+            anchors.leftMargin: 5
+            anchors.top: parent.top
+            anchors.topMargin: 5
+            font.family: ubuntuFont.name
+            font.pointSize: 16
+            wrapMode : Text.Wrap
+            elide : Text.ElideRight
+        }
+
+        Label {
+            id: description
+            anchors.left: name.left
+            anchors.top: name.bottom
+            text: qsTr("Look at my group, my group is amazing !")
+            font.pointSize: 10
+            color: "darkgrey"
+        }
+
+    }
+    Rectangle{
+        id:headerLine
+        anchors.top: headerBanner.bottom
+        anchors.left: parent.left
+        anchors.right: parent.right
+        height: 1
+        color: "#D1D1D1"
+
+    }
+
+
+    ColumnLayout{
+        anchors.top: headerLine.bottom
+        anchors.left: parent.left
+        anchors.right: parent.right
+        anchors.bottom: parent.bottom
+
+
+        SplitView {
+            Layout.fillWidth: true
+            Layout.fillHeight: true
+            orientation: Qt.Horizontal
+
+
+
+
+            TextArea {
+                id: centerItem
+                Layout.minimumWidth: 50
+                Layout.fillWidth: true
+                textFormat: TextEdit.RichText
+                readOnly: true
+                frameVisible: false
+                text: place.content
+            }
+
+
+
+
+            Rectangle {
+                width: 200
+                color: "gray"
+                ColumnLayout{
+                    anchors.fill:parent
+                    Label {
+                        id: peopleNumber
+                        anchors.horizontalCenter: parent.horizontalCenter
+                        text: qsTr("3 people in room")
+                        color: "white"
+                    }
+                    TableView{
+                        id:users
+                        Layout.fillWidth: true
+                        Layout.fillHeight: true
+                        headerVisible:false
+
+                        TableViewColumn{ role: "title"  ; title: "Title" ; 
width: 100 }
+                        model:
+                            ListModel {
+                            ListElement{ title: "bratao1" }
+                            ListElement{ title: "lynX" }
+                            ListElement{ title: "tg"  }
+                        }
+
+                    }
+
+                }
+
+            }
+        }
+
+        RowLayout{
+            Layout.fillWidth: true
+            spacing: 5
+            TextArea{
+                id: textField
+                Layout.fillWidth: true
+                Layout.minimumHeight: 70
+                Layout.preferredHeight: 70
+
+            }
+            Button{
+
+                style: touchStyle
+
+                text: "Send"
+                onClicked: {
+                    place.talk(textField.text)
+                    textField.text = ""
+                }
+            }
+
+            Component {
+                id: touchStyle
+                ButtonStyle {
+                    panel: Item {
+                        implicitHeight: 40
+                        implicitWidth: 100
+                        BorderImage {
+                            anchors.fill: parent
+                            anchors.rightMargin: 5
+                            antialiasing: true
+                            border.bottom: 8
+                            border.top: 8
+                            border.left: 8
+                            border.right: 8
+                            anchors.margins: control.pressed ? -4 : 0
+
+                            Image {
+                                id: icon
+                                source: "images/send.png"
+                                height: 28
+                                width: 28
+                                fillMode: Image.PreserveAspectFit
+                                anchors.verticalCenter: parent.verticalCenter
+
+                                anchors.left: parent.left
+                                anchors.leftMargin: 5
+
+                            }
+
+
+                            source: control.pressed ? 
"images/button_pressed.png" : "images/button_default.png"
+                            Text {
+                                text: control.text
+                                anchors.verticalCenter: parent.verticalCenter
+
+                                anchors.left: icon.right
+                                anchors.leftMargin: 5
+                                color: "white"
+                                font.pixelSize: 20
+                                renderType: Text.NativeRendering
+                            }
+                        }
+                    }
+                }
+            }
+        }
+
+
+
+    }
+}

Modified: gnunet-qt/secushare/qml/ImportEgo.qml
===================================================================
--- gnunet-qt/secushare/qml/ImportEgo.qml       2015-11-12 18:30:33 UTC (rev 
36654)
+++ gnunet-qt/secushare/qml/ImportEgo.qml       2015-11-12 18:30:37 UTC (rev 
36655)
@@ -1,95 +1,95 @@
-import QtQuick.Window 2.1;
-import QtQuick 2.2
-import QtQuick.Controls 1.1
-import QtQuick.Layouts 1.1
-import QtQuick.Dialogs 1.2
-
-
-
-import Psyc 1.0
-
-Window {
-    title: "Import Ego";
-    width: 500;
-    height: 130;
-    id: importEgoWnd
-
-    FileDialog {
-        id: fileDialog
-        title: "Please choose a file"
-        onAccepted: {
-            console.log("You chose: " + fileDialog.fileUrls)
-            var orginal = fileDialog.fileUrl.toString()
-
-            qrReader.decode.decodeImageFromFile(orginal.replace("file:///",""))
-        }
-        onRejected: {
-            console.log("Canceled")
-        }
-    }
-
-    QrReader{
-        id:qrReader
-
-        onCaptured: {
-            egoTextField.text = str
-        }
-    }
-
-
-    ColumnLayout{
-
-        anchors.fill: parent
-        anchors.margins: 10
-
-        spacing: 5
-        Label{
-
-            text: "Enter the ego you want to import:"
-        }
-
-        RowLayout{
-            spacing: 5
-            TextField{
-                id: egoTextField
-                Layout.fillWidth: true
-                height: 20
-            }
-            Button{
-                text: "Import qr from File"
-
-                onClicked: {
-                    fileDialog.open()
-                }
-            }
-            Button{
-                text: "Import qr from Camera"
-
-                onClicked: {
-                    /*var reader = 
Qt.createComponent("qrc:///qml/QrReader.qml");
-                    var readerWnd = reader.createObject();
-                    readerWnd.show();*/
-                    qrReader.startCamera();
-                    qrReader.show()
-                }
-            }
-        }
-        Row{
-            Layout.alignment: Qt.AlignRight
-            spacing: 2
-            Button{
-                text: "Cancel"
-                onClicked: {
-                    importEgoWnd.close();
-                }
-            }
-            Button{
-                text: "Add"
-                onClicked: {
-                    importEgoWnd.close();
-                }
-            }
-        }
-    }
-
-}
+import QtQuick.Window 2.1;
+import QtQuick 2.2
+import QtQuick.Controls 1.1
+import QtQuick.Layouts 1.1
+import QtQuick.Dialogs 1.2
+
+
+
+import Psyc 1.0
+
+Window {
+    title: "Import Ego";
+    width: 500;
+    height: 130;
+    id: importEgoWnd
+
+    FileDialog {
+        id: fileDialog
+        title: "Please choose a file"
+        onAccepted: {
+            console.log("You chose: " + fileDialog.fileUrls)
+            var orginal = fileDialog.fileUrl.toString()
+
+            qrReader.decode.decodeImageFromFile(orginal.replace("file:///",""))
+        }
+        onRejected: {
+            console.log("Canceled")
+        }
+    }
+
+    QrReader{
+        id:qrReader
+
+        onCaptured: {
+            egoTextField.text = str
+        }
+    }
+
+
+    ColumnLayout{
+
+        anchors.fill: parent
+        anchors.margins: 10
+
+        spacing: 5
+        Label{
+
+            text: "Enter the ego you want to import:"
+        }
+
+        RowLayout{
+            spacing: 5
+            TextField{
+                id: egoTextField
+                Layout.fillWidth: true
+                height: 20
+            }
+            Button{
+                text: "Import qr from File"
+
+                onClicked: {
+                    fileDialog.open()
+                }
+            }
+            Button{
+                text: "Import qr from Camera"
+
+                onClicked: {
+                    /*var reader = 
Qt.createComponent("qrc:///qml/QrReader.qml");
+                    var readerWnd = reader.createObject();
+                    readerWnd.show();*/
+                    qrReader.startCamera();
+                    qrReader.show()
+                }
+            }
+        }
+        Row{
+            Layout.alignment: Qt.AlignRight
+            spacing: 2
+            Button{
+                text: "Cancel"
+                onClicked: {
+                    importEgoWnd.close();
+                }
+            }
+            Button{
+                text: "Add"
+                onClicked: {
+                    importEgoWnd.close();
+                }
+            }
+        }
+    }
+
+}

Modified: gnunet-qt/secushare/qml/JoinRoom.qml
===================================================================
--- gnunet-qt/secushare/qml/JoinRoom.qml        2015-11-12 18:30:33 UTC (rev 
36654)
+++ gnunet-qt/secushare/qml/JoinRoom.qml        2015-11-12 18:30:37 UTC (rev 
36655)
@@ -1,228 +1,228 @@
-import QtQuick.Window 2.1;
-import QtQuick 2.2
-import QtQuick.Controls 1.1
-import QtQuick.Layouts 1.1
-import Psyc 1.0
-
-
-
-Rectangle {
-
-    anchors.fill: parent
-    id: joinRoomWnd
-
-    property var selected: 0
-
-
-
-    FontLoader { id: ubuntuFont; source: "fonts/Ubuntu-R.ttf" }
-
-    Rectangle{
-        id:headerBanner
-        anchors.top: parent.top
-        anchors.left: parent.left
-        anchors.right: parent.right
-        height: 60
-        color: "white"
-
-
-        Image {
-            id: imageBanner
-            source: "images/enter.png"
-            anchors.top: parent.top
-            anchors.left: parent.left
-            anchors.margins: 5
-            height: 42
-            width: 42
-            fillMode: Image.PreserveAspectFit
-
-        }
-
-        Label{
-            text: "Join Chat"
-            anchors.left: imageBanner.right
-            anchors.leftMargin: 5
-            anchors.top: parent.top
-            anchors.topMargin: 10
-            font.family: ubuntuFont.name
-            font.pointSize: 22
-            wrapMode : Text.Wrap
-            elide : Text.ElideRight
-        }
-
-    }
-    Rectangle{
-        anchors.top: headerBanner.bottom
-        anchors.left: parent.left
-        anchors.right: parent.right
-        height: 1
-        color: "#D1D1D1"
-
-    }
-
-    Item {
-        id: container
-        anchors.top: headerBanner.bottom
-        anchors.left: parent.left
-        anchors.right: parent.right
-        anchors.bottom: parent.bottom
-
-        Item{
-            id:infoRow
-            anchors.top: parent.top
-            anchors.left: parent.left
-            anchors.right: parent.right
-            anchors.margins: 10
-            height: infoLabel.height
-
-
-            Label {
-                id: infoLabel
-                anchors.top: parent.top
-                anchors.left: parent.left
-                anchors.right: parent.right
-                wrapMode : Text.Wrap
-                text: "Please enter the appropriate information about the chat 
you would like to join."
-            }
-
-
-        }
-
-
-        Row{
-            id:typeRow
-            anchors.top: infoRow.bottom
-            anchors.left: infoRow.left
-            anchors.right: infoRow.right
-            anchors.topMargin: 10
-            spacing: 5
-
-
-            ExclusiveGroup { id: group
-
-            }
-
-
-            Label {
-                id: typeLabel
-                text: "Type: "
-            }
-
-            RadioButton {
-                text: qsTr("GNS")
-                exclusiveGroup: group
-                checked: true
-
-
-                onCheckedChanged: {
-                    if(checked)
-                        selected = 0
-                    else
-                        selected = 1
-                }
-            }
-            RadioButton {
-                text: qsTr("List of peers")
-                exclusiveGroup: group
-            }
-        }
-
-
-
-        ColumnLayout{
-            id:dataRow
-            anchors.top: typeRow.bottom
-            anchors.left: typeRow.left
-            anchors.right: typeRow.right
-            anchors.topMargin: 10
-
-            Row{
-                visible: (selected == 0) ? true : false
-                spacing: 2
-                Label {
-                    id: gnsLabel
-                    text: "GNS address:"
-                    width: 80
-                }
-
-                TextField{
-                    id: gnsField
-                    height: 20
-                    width: 150
-
-                }
-            }
-            Row{
-                visible: (selected == 1) ? true : false
-                spacing: 2
-                Label {
-                    id: publicKeyLabel
-                    text: "Public Key:"
-                    width: 100
-                }
-
-                TextField{
-                    id: publicKeyField
-                    height: 20
-                    width: 200
-
-                }
-            }
-            Row{
-                visible: (selected == 1) ? true : false
-                spacing: 2
-                Label {
-                    id: originLabel
-                    text: "Origin (Empty will join local peer):"
-                    width: 100
-                }
-
-                TextField{
-                    id: originField
-                    height: 20
-                    width: 200
-
-                }
-            }
-
-            Row{
-                visible: (selected == 1) ? true : false
-                spacing: 2
-                Label {
-                    id: relaysLabel
-                    text: "Relays:"
-                    width: 100
-                }
-
-                TextArea{
-                    id: relaysField
-                    height: 100
-                    width: 200
-
-                }
-            }
-
-
-        }
-
-
-
-        Row{
-            anchors.top: dataRow.bottom
-            anchors.topMargin: 10
-            anchors.right: parent.right
-            anchors.left: parent.left
-            spacing: 2
-
-            Button{
-                text: "Join"
-                width: 200
-
-                onClicked: {
-                    Psyc.gnunet.social.enterRoom(publicKeyField.text, "bla")
-                }
-            }
-        }
-    }
-
-}
+import QtQuick.Window 2.1;
+import QtQuick 2.2
+import QtQuick.Controls 1.1
+import QtQuick.Layouts 1.1
+import Psyc 1.0
+
+
+
+Rectangle {
+
+    anchors.fill: parent
+    id: joinRoomWnd
+
+    property var selected: 0
+
+
+
+    FontLoader { id: ubuntuFont; source: "fonts/Ubuntu-R.ttf" }
+
+    Rectangle{
+        id:headerBanner
+        anchors.top: parent.top
+        anchors.left: parent.left
+        anchors.right: parent.right
+        height: 60
+        color: "white"
+
+
+        Image {
+            id: imageBanner
+            source: "images/enter.png"
+            anchors.top: parent.top
+            anchors.left: parent.left
+            anchors.margins: 5
+            height: 42
+            width: 42
+            fillMode: Image.PreserveAspectFit
+
+        }
+
+        Label{
+            text: "Join Chat"
+            anchors.left: imageBanner.right
+            anchors.leftMargin: 5
+            anchors.top: parent.top
+            anchors.topMargin: 10
+            font.family: ubuntuFont.name
+            font.pointSize: 22
+            wrapMode : Text.Wrap
+            elide : Text.ElideRight
+        }
+
+    }
+    Rectangle{
+        anchors.top: headerBanner.bottom
+        anchors.left: parent.left
+        anchors.right: parent.right
+        height: 1
+        color: "#D1D1D1"
+
+    }
+
+    Item {
+        id: container
+        anchors.top: headerBanner.bottom
+        anchors.left: parent.left
+        anchors.right: parent.right
+        anchors.bottom: parent.bottom
+
+        Item{
+            id:infoRow
+            anchors.top: parent.top
+            anchors.left: parent.left
+            anchors.right: parent.right
+            anchors.margins: 10
+            height: infoLabel.height
+
+
+            Label {
+                id: infoLabel
+                anchors.top: parent.top
+                anchors.left: parent.left
+                anchors.right: parent.right
+                wrapMode : Text.Wrap
+                text: "Please enter the appropriate information about the chat 
you would like to join."
+            }
+
+
+        }
+
+
+        Row{
+            id:typeRow
+            anchors.top: infoRow.bottom
+            anchors.left: infoRow.left
+            anchors.right: infoRow.right
+            anchors.topMargin: 10
+            spacing: 5
+
+
+            ExclusiveGroup { id: group
+
+            }
+
+
+            Label {
+                id: typeLabel
+                text: "Type: "
+            }
+
+            RadioButton {
+                text: qsTr("GNS")
+                exclusiveGroup: group
+                checked: true
+
+
+                onCheckedChanged: {
+                    if(checked)
+                        selected = 0
+                    else
+                        selected = 1
+                }
+            }
+            RadioButton {
+                text: qsTr("List of peers")
+                exclusiveGroup: group
+            }
+        }
+
+
+
+        ColumnLayout{
+            id:dataRow
+            anchors.top: typeRow.bottom
+            anchors.left: typeRow.left
+            anchors.right: typeRow.right
+            anchors.topMargin: 10
+
+            Row{
+                visible: (selected == 0) ? true : false
+                spacing: 2
+                Label {
+                    id: gnsLabel
+                    text: "GNS address:"
+                    width: 80
+                }
+
+                TextField{
+                    id: gnsField
+                    height: 20
+                    width: 150
+
+                }
+            }
+            Row{
+                visible: (selected == 1) ? true : false
+                spacing: 2
+                Label {
+                    id: publicKeyLabel
+                    text: "Public Key:"
+                    width: 100
+                }
+
+                TextField{
+                    id: publicKeyField
+                    height: 20
+                    width: 200
+
+                }
+            }
+            Row{
+                visible: (selected == 1) ? true : false
+                spacing: 2
+                Label {
+                    id: originLabel
+                    text: "Origin (Empty will join local peer):"
+                    width: 100
+                }
+
+                TextField{
+                    id: originField
+                    height: 20
+                    width: 200
+
+                }
+            }
+
+            Row{
+                visible: (selected == 1) ? true : false
+                spacing: 2
+                Label {
+                    id: relaysLabel
+                    text: "Relays:"
+                    width: 100
+                }
+
+                TextArea{
+                    id: relaysField
+                    height: 100
+                    width: 200
+
+                }
+            }
+
+
+        }
+
+
+
+        Row{
+            anchors.top: dataRow.bottom
+            anchors.topMargin: 10
+            anchors.right: parent.right
+            anchors.left: parent.left
+            spacing: 2
+
+            Button{
+                text: "Join"
+                width: 200
+
+                onClicked: {
+                    Psyc.gnunet.social.enterRoom(publicKeyField.text, "bla")
+                }
+            }
+        }
+    }
+
+}

Modified: gnunet-qt/secushare/qml/NewEgo.qml
===================================================================
--- gnunet-qt/secushare/qml/NewEgo.qml  2015-11-12 18:30:33 UTC (rev 36654)
+++ gnunet-qt/secushare/qml/NewEgo.qml  2015-11-12 18:30:37 UTC (rev 36655)
@@ -1,35 +1,35 @@
-import QtQuick.Window 2.1;
-import QtQuick 2.2
-import QtQuick.Controls 1.1
-import QtQuick.Layouts 1.1
-import Psyc 1.0
-
-Window {
-    title: "Create Ego";
-    width: 300;
-    height: 60;
-    id: newEgoWnd
-
-
-    RowLayout{
-        anchors.fill: parent
-        anchors.margins: 10
-        spacing: 5
-        Label {
-            text: "Ego Name"
-        }
-
-        TextField{
-            id:newName
-
-        }
-        Button{
-            text: "Ok"
-            onClicked: {
-                Psyc.gnunet.identity.createEgo(newName.text)
-                newEgoWnd.close();
-            }
-        }
-    }
-
-}
+import QtQuick.Window 2.1;
+import QtQuick 2.2
+import QtQuick.Controls 1.1
+import QtQuick.Layouts 1.1
+import Psyc 1.0
+
+Window {
+    title: "Create Ego";
+    width: 300;
+    height: 60;
+    id: newEgoWnd
+
+
+    RowLayout{
+        anchors.fill: parent
+        anchors.margins: 10
+        spacing: 5
+        Label {
+            text: "Ego Name"
+        }
+
+        TextField{
+            id:newName
+
+        }
+        Button{
+            text: "Ok"
+            onClicked: {
+                Psyc.gnunet.identity.createEgo(newName.text)
+                newEgoWnd.close();
+            }
+        }
+    }
+
+}

Modified: gnunet-qt/secushare/qml/Profile.qml
===================================================================
--- gnunet-qt/secushare/qml/Profile.qml 2015-11-12 18:30:33 UTC (rev 36654)
+++ gnunet-qt/secushare/qml/Profile.qml 2015-11-12 18:30:37 UTC (rev 36655)
@@ -1,529 +1,529 @@
-import QtQuick 2.1
-import QtQuick.Window 2.1
-import QtQuick.Controls 1.2
-import QtQuick.Layouts 1.1
-import QtQuick.Controls.Styles 1.1
-
-import Psyc 1.0
-
-Window {
-    id: profileWnd
-    width: 1000
-    height: 700
-    color: "white"
-    title: "Profile"
-
-
-    FontLoader { id: bebasFont; source: "fonts/BebasNeue.otf" }
-    FontLoader { id: ubuntuFont; source: "fonts/Ubuntu-R.ttf" }
-    FontLoader { id: ubuntuBIFont; source: "fonts/Ubuntu-BI.ttf" }
-    FontLoader { id: ubuntuBFont; source: "fonts/Ubuntu-B.ttf" }
-    FontLoader { id: ubuntuLFont; source: "fonts/Ubuntu-L.ttf" }
-
-
-
-    QtObject {
-        id: person
-        property string name : "Maria da Silva"
-        property string nick : "Bailadora"
-        property string address : "1243 Your Sr. Town, XX 54321"
-        property string telephone : "(555)123-4567"
-        property string site : "mysite.com"
-        property string email : "address@hidden"
-        property string image: "images/demo/baila.jpg"
-        property string description: "Augusta Ada King, Countess of Lovelace, 
born Augusta Ada Byron and now commonly known as Ada Lovelace, was an English 
mathematician and writer chiefly known for her work on Charles Babbage's early 
mechanical general-purpose computer, the Analytical Engine."
-        property var extraInfo :
-            ListModel {
-            id: extraInfoModel
-
-            ListElement {
-                name: "Favorite Animals"
-                value: "Dogs and Cats"
-            }
-            ListElement {
-                name: "Favorite Music"
-                value: "Madonna; Psy"
-            }
-            ListElement {
-                name: "Language"
-                value: "Portuguese"
-            }
-            ListElement {
-                name: "Wedding date"
-                value: "27/11/1989"
-            }
-        }
-        property var community :
-            ListModel {
-            id: communityModel
-
-            ListElement {
-                name: "GNUnet"
-                image: "images/demo/gnunet.png"
-            }
-            ListElement {
-                name: "PSYC"
-                image: "images/demo/secushare.png"
-            }
-            ListElement {
-                name: "Brazil"
-                image: "images/demo/brazil.png"
-            }
-            ListElement {
-                name: "lynX Fanclub"
-                image: "images/demo/arp.jpg"
-            }
-        }
-    }
-
-    RowLayout{
-        anchors.fill: parent
-
-        Rectangle{
-            Layout.fillHeight: true
-            Layout.minimumWidth: 290
-            Layout.maximumWidth: 290
-            color: "white"
-
-            Rectangle{
-                id: profilePhotoRectangle
-                anchors.top: parent.top
-                anchors.left: parent.left
-                anchors.topMargin: 20
-                anchors.leftMargin: 20
-                width: 250; height: 380
-                color: "#CBCBCB"
-
-                Image {
-                    id: profilePhoto
-                    anchors.fill: parent
-                    anchors.margins: 1
-                    source: person.image
-
-                    fillMode: Image.PreserveAspectCrop
-
-                }
-            }
-
-
-            Label{
-                id: nickLine
-                anchors.top: profilePhotoRectangle.bottom
-                anchors.topMargin: 15
-                anchors.left: profilePhotoRectangle.left
-                anchors.leftMargin: 15
-                text: person.nick
-                font.pointSize: 22
-                font.family: ubuntuFont.name
-            }
-            Label{
-                id: phraseLine
-                anchors.top: nickLine.bottom
-                anchors.left: nickLine.left
-                text: person.nick
-                font.pointSize: 12
-                font.family: ubuntuFont.name
-            }
-
-            Row{
-                id:addressLine
-                anchors.top: phraseLine.bottom
-                anchors.topMargin: 10
-                anchors.left: phraseLine.left
-                spacing: 5
-
-                Image {
-                    id: addressIcon
-                    source: "images/location.png"
-                    fillMode: Image.PreserveAspectFit
-                    height: 15
-                    width: 15
-                }
-
-                Label{
-
-                    text: person.address
-                    anchors.verticalCenter: addressIcon.verticalCenter
-                    font.pointSize: 12
-                    font.family: ubuntuFont.name
-                }
-            }
-
-
-            Row{
-                id:phoneLine
-
-                anchors.top: addressLine.bottom
-                anchors.topMargin: 10
-                anchors.left: addressLine.left
-                spacing: 5
-
-                Image {
-                    id: phoneIcon
-                    source: "images/phone.png"
-                    fillMode: Image.PreserveAspectFit
-                    height: 15
-                    width: 15
-                }
-
-                Label{
-
-                    text: person.telephone
-                    anchors.verticalCenter: phoneIcon.verticalCenter
-                    font.pointSize: 12
-                    font.family: ubuntuFont.name
-                }
-            }
-
-            Row{
-                id:websiteLine
-
-                anchors.top: phoneLine.bottom
-                anchors.topMargin: 10
-                anchors.left: phoneLine.left
-                spacing: 5
-
-                Image {
-                    id: websiteIcon
-                    source: "images/home.png"
-                    fillMode: Image.PreserveAspectFit
-                    height: 15
-                    width: 15
-                }
-
-                Label{
-
-                    text: person.site
-                    anchors.verticalCenter: websiteIcon.verticalCenter
-                    font.pointSize: 12
-                    font.family: ubuntuFont.name
-                }
-            }
-
-            Row{
-                id:emailLine
-
-                anchors.top: websiteLine.bottom
-                anchors.topMargin: 10
-                anchors.left: websiteLine.left
-                spacing: 5
-
-                Image {
-                    id: emailIcon
-                    source: "images/email.png"
-                    fillMode: Image.PreserveAspectFit
-                    height: 15
-                    width: 15
-                }
-
-                Label{
-
-                    text: person.email
-                    anchors.verticalCenter: emailIcon.verticalCenter
-                    font.pointSize: 12
-                    font.family: ubuntuFont.name
-                }
-            }
-
-        }
-
-        Rectangle{
-            Layout.fillHeight: true
-            Layout.fillWidth: true
-            color: "white"
-
-
-
-            Label {
-                id: title
-                anchors.top: parent.top
-                anchors.left: parent.left
-                anchors.right: trustRect.left
-
-                anchors.topMargin: 20
-                height: 60
-                width: 200
-                text: "About " + person.name
-                font.pixelSize: 32
-                font.family: ubuntuFont.name
-                wrapMode : Text.Wrap
-                elide : Text.ElideRight
-            }
-
-            Rectangle{
-                id: trustRect
-
-                anchors.top: parent.top
-                anchors.topMargin: 20
-                anchors.right: parent.right
-                anchors.rightMargin: 20
-
-                width: 150
-                height: 50
-                color: "#CBCBCB"
-
-                Label{
-                    id: trustLabel
-                    text: "Trust level:"
-
-                }
-
-                Slider {
-                    id: slider1
-                    anchors.top : trustLabel.bottom
-                    value: 0.5
-                    style: SliderStyle { }
-                    implicitWidth: 150
-                }
-
-
-            }
-
-
-
-
-            Rectangle{
-                id: descriptionRect
-                anchors.top: title.bottom
-                anchors.left: parent.left
-                anchors.right: parent.right
-                anchors.rightMargin: 10
-                height: descriptionText.contentHeight +20
-
-                color: "#f1f1f1"
-
-                Label{
-                    id: descriptionText
-                    anchors.fill: parent
-                    anchors.leftMargin: 20
-                    anchors.rightMargin: 20
-                    anchors.topMargin: 10
-                    wrapMode : Text.Wrap
-                    //elide : Text.ElideRight
-                    color: "black"
-                    font.family: ubuntuLFont.name
-                    font.pixelSize: 16
-                    //font.letterSpacing : -2
-
-                    text: person.description
-                }
-            }
-
-            ListView {
-                id: moreList
-                anchors.top: descriptionRect.bottom
-
-                anchors.topMargin: 20
-
-                anchors.left: parent.left
-                anchors.right: parent.right
-                anchors.rightMargin: 20
-                state: "HIDDEN"
-
-                clip: true
-
-
-                model: person.extraInfo
-                delegate: Rectangle {
-                    Rectangle{
-                        color: "#DDDDDD"
-                        height : 1
-                        anchors.top: parent.top
-                        anchors.left: parent.left
-                        anchors.right: parent.right
-                    }
-
-                    objectName: "delegate"
-                    width: parent.width
-                    height: 25
-                    color: index % 2 ? "#F9F9F9" : "white"
-
-                    Row{
-                        anchors.verticalCenter: parent.verticalCenter
-                        spacing: 5
-
-                        Label {
-                            color: "black"
-                            text: name + ": "
-                            font.family: ubuntuBFont.name
-                            font.pixelSize: 14
-                        }
-                        Label {
-                            color: "black"
-                            text: value
-                            font.family: ubuntuFont.name
-                            font.pixelSize: 14
-                        }
-
-                    }
-
-
-                }
-
-                Behavior on height { PropertyAnimation {} }
-
-                states: [
-                    State {
-                        name: "SHOWN"
-                        PropertyChanges { target: moreList; height: 110; 
visible:true}
-                    },
-                    State {
-                        name: "HIDDEN"
-                        PropertyChanges { target: moreList; height: 0; 
visible:false}
-                    }
-                ]
-
-            }
-
-            Label{
-                id: showmoreLabel
-                anchors.top:moreList.bottom
-                anchors.topMargin: 10
-                text:"Show more information..."
-                color: "blue"
-
-                MouseArea{
-                    id: ma
-                    anchors.fill: parent
-                    hoverEnabled: true
-
-
-                    onContainsMouseChanged: {
-                        if(containsMouse){
-                            showmoreLabel.font.underline = true
-                            cursorShape: Qt.PointingHandCursor
-                        }
-                        else
-                        {
-                            showmoreLabel.font.underline = false
-                            cursorShape: Qt.ArrowCursor
-                        }
-                    }
-
-                    onClicked: {
-                        if(moreList.state == "HIDDEN")
-                        {
-                            moreList.state = "SHOWN"
-                            showmoreLabel.text = "Hide more information..."
-                        }
-                        else
-                        {
-                            moreList.state = "HIDDEN"
-                            showmoreLabel.text = "Show more information..."
-                        }
-                    }
-
-                }
-            }
-
-            Label{
-                id: channelsLabel
-                anchors.top:showmoreLabel.bottom
-                anchors.topMargin: 10
-                text: "Channels"
-                font.family: ubuntuLFont.name
-                font.pixelSize: 16
-            }
-            Rectangle{
-                color: "#DDDDDD"
-                height : 1
-                anchors.top: channelsLabel.bottom
-                anchors.topMargin: 5
-                anchors.left: parent.left
-                anchors.right: parent.right
-                anchors.rightMargin: 5
-            }
-
-            ListView {
-                id: channelsList
-                anchors.top: channelsLabel.bottom
-
-                anchors.topMargin: 20
-
-                anchors.left: parent.left
-                anchors.right: parent.right
-                anchors.rightMargin: 20
-
-                anchors.bottom: parent.bottom
-
-                clip: true
-
-                model: person.community
-                delegate: Rectangle {
-
-                    id: rectItem
-                    objectName: "delegate"
-                    width: parent.width
-                    height: 50
-
-
-
-                    Image {
-                        id: channelImage
-                        source: image
-                        fillMode: Image.PreserveAspectCrop
-                        height: 45
-                        width: 45
-                    }
-                    Label {
-                        color: "black"
-                        text: name
-                        anchors.left: channelImage.right
-                        anchors.leftMargin: 10
-                        font.family: ubuntuFont.name
-                        font.pixelSize: 16
-                    }
-
-                    Rectangle{
-                        id:buttonRect
-                        border.color: "#A7C9A1"
-                        border.width: 1
-                        height: 30
-                        width: 80
-                        anchors.right: parent.right
-                        anchors.verticalCenter: parent.verticalCenter
-                        anchors.rightMargin: 10
-                        visible: false
-
-                        Text {
-                            id: labelEnter
-                            anchors.centerIn: parent
-                            text: qsTr("Enter")
-                            color: "#81A87B"
-                        }
-                    }
-
-                    MouseArea{
-                        id: maItem
-                        anchors.fill: parent
-                        hoverEnabled: true
-
-
-                        onContainsMouseChanged: {
-                            if(containsMouse){
-                                rectItem.color = "#F9F9F9"
-                                buttonRect.visible = true
-                            }
-                            else
-                            {
-                                rectItem.color = "white"
-                                buttonRect.visible = false
-                            }
-                        }
-
-                    }
-
-
-                }
-
-
-            }
-
-
-
-
-        }
-
-
-    }
-}
+import QtQuick 2.1
+import QtQuick.Window 2.1
+import QtQuick.Controls 1.2
+import QtQuick.Layouts 1.1
+import QtQuick.Controls.Styles 1.1
+
+import Psyc 1.0
+
+Window {
+    id: profileWnd
+    width: 1000
+    height: 700
+    color: "white"
+    title: "Profile"
+
+
+    FontLoader { id: bebasFont; source: "fonts/BebasNeue.otf" }
+    FontLoader { id: ubuntuFont; source: "fonts/Ubuntu-R.ttf" }
+    FontLoader { id: ubuntuBIFont; source: "fonts/Ubuntu-BI.ttf" }
+    FontLoader { id: ubuntuBFont; source: "fonts/Ubuntu-B.ttf" }
+    FontLoader { id: ubuntuLFont; source: "fonts/Ubuntu-L.ttf" }
+
+
+
+    QtObject {
+        id: person
+        property string name : "Maria da Silva"
+        property string nick : "Bailadora"
+        property string address : "1243 Your Sr. Town, XX 54321"
+        property string telephone : "(555)123-4567"
+        property string site : "mysite.com"
+        property string email : "address@hidden"
+        property string image: "images/demo/baila.jpg"
+        property string description: "Augusta Ada King, Countess of Lovelace, 
born Augusta Ada Byron and now commonly known as Ada Lovelace, was an English 
mathematician and writer chiefly known for her work on Charles Babbage's early 
mechanical general-purpose computer, the Analytical Engine."
+        property var extraInfo :
+            ListModel {
+            id: extraInfoModel
+
+            ListElement {
+                name: "Favorite Animals"
+                value: "Dogs and Cats"
+            }
+            ListElement {
+                name: "Favorite Music"
+                value: "Madonna; Psy"
+            }
+            ListElement {
+                name: "Language"
+                value: "Portuguese"
+            }
+            ListElement {
+                name: "Wedding date"
+                value: "27/11/1989"
+            }
+        }
+        property var community :
+            ListModel {
+            id: communityModel
+
+            ListElement {
+                name: "GNUnet"
+                image: "images/demo/gnunet.png"
+            }
+            ListElement {
+                name: "PSYC"
+                image: "images/demo/secushare.png"
+            }
+            ListElement {
+                name: "Brazil"
+                image: "images/demo/brazil.png"
+            }
+            ListElement {
+                name: "lynX Fanclub"
+                image: "images/demo/arp.jpg"
+            }
+        }
+    }
+
+    RowLayout{
+        anchors.fill: parent
+
+        Rectangle{
+            Layout.fillHeight: true
+            Layout.minimumWidth: 290
+            Layout.maximumWidth: 290
+            color: "white"
+
+            Rectangle{
+                id: profilePhotoRectangle
+                anchors.top: parent.top
+                anchors.left: parent.left
+                anchors.topMargin: 20
+                anchors.leftMargin: 20
+                width: 250; height: 380
+                color: "#CBCBCB"
+
+                Image {
+                    id: profilePhoto
+                    anchors.fill: parent
+                    anchors.margins: 1
+                    source: person.image
+
+                    fillMode: Image.PreserveAspectCrop
+
+                }
+            }
+
+
+            Label{
+                id: nickLine
+                anchors.top: profilePhotoRectangle.bottom
+                anchors.topMargin: 15
+                anchors.left: profilePhotoRectangle.left
+                anchors.leftMargin: 15
+                text: person.nick
+                font.pointSize: 22
+                font.family: ubuntuFont.name
+            }
+            Label{
+                id: phraseLine
+                anchors.top: nickLine.bottom
+                anchors.left: nickLine.left
+                text: person.nick
+                font.pointSize: 12
+                font.family: ubuntuFont.name
+            }
+
+            Row{
+                id:addressLine
+                anchors.top: phraseLine.bottom
+                anchors.topMargin: 10
+                anchors.left: phraseLine.left
+                spacing: 5
+
+                Image {
+                    id: addressIcon
+                    source: "images/location.png"
+                    fillMode: Image.PreserveAspectFit
+                    height: 15
+                    width: 15
+                }
+
+                Label{
+
+                    text: person.address
+                    anchors.verticalCenter: addressIcon.verticalCenter
+                    font.pointSize: 12
+                    font.family: ubuntuFont.name
+                }
+            }
+
+
+            Row{
+                id:phoneLine
+
+                anchors.top: addressLine.bottom
+                anchors.topMargin: 10
+                anchors.left: addressLine.left
+                spacing: 5
+
+                Image {
+                    id: phoneIcon
+                    source: "images/phone.png"
+                    fillMode: Image.PreserveAspectFit
+                    height: 15
+                    width: 15
+                }
+
+                Label{
+
+                    text: person.telephone
+                    anchors.verticalCenter: phoneIcon.verticalCenter
+                    font.pointSize: 12
+                    font.family: ubuntuFont.name
+                }
+            }
+
+            Row{
+                id:websiteLine
+
+                anchors.top: phoneLine.bottom
+                anchors.topMargin: 10
+                anchors.left: phoneLine.left
+                spacing: 5
+
+                Image {
+                    id: websiteIcon
+                    source: "images/home.png"
+                    fillMode: Image.PreserveAspectFit
+                    height: 15
+                    width: 15
+                }
+
+                Label{
+
+                    text: person.site
+                    anchors.verticalCenter: websiteIcon.verticalCenter
+                    font.pointSize: 12
+                    font.family: ubuntuFont.name
+                }
+            }
+
+            Row{
+                id:emailLine
+
+                anchors.top: websiteLine.bottom
+                anchors.topMargin: 10
+                anchors.left: websiteLine.left
+                spacing: 5
+
+                Image {
+                    id: emailIcon
+                    source: "images/email.png"
+                    fillMode: Image.PreserveAspectFit
+                    height: 15
+                    width: 15
+                }
+
+                Label{
+
+                    text: person.email
+                    anchors.verticalCenter: emailIcon.verticalCenter
+                    font.pointSize: 12
+                    font.family: ubuntuFont.name
+                }
+            }
+
+        }
+
+        Rectangle{
+            Layout.fillHeight: true
+            Layout.fillWidth: true
+            color: "white"
+
+
+
+            Label {
+                id: title
+                anchors.top: parent.top
+                anchors.left: parent.left
+                anchors.right: trustRect.left
+
+                anchors.topMargin: 20
+                height: 60
+                width: 200
+                text: "About " + person.name
+                font.pixelSize: 32
+                font.family: ubuntuFont.name
+                wrapMode : Text.Wrap
+                elide : Text.ElideRight
+            }
+
+            Rectangle{
+                id: trustRect
+
+                anchors.top: parent.top
+                anchors.topMargin: 20
+                anchors.right: parent.right
+                anchors.rightMargin: 20
+
+                width: 150
+                height: 50
+                color: "#CBCBCB"
+
+                Label{
+                    id: trustLabel
+                    text: "Trust level:"
+
+                }
+
+                Slider {
+                    id: slider1
+                    anchors.top : trustLabel.bottom
+                    value: 0.5
+                    style: SliderStyle { }
+                    implicitWidth: 150
+                }
+
+
+            }
+
+
+
+
+            Rectangle{
+                id: descriptionRect
+                anchors.top: title.bottom
+                anchors.left: parent.left
+                anchors.right: parent.right
+                anchors.rightMargin: 10
+                height: descriptionText.contentHeight +20
+
+                color: "#f1f1f1"
+
+                Label{
+                    id: descriptionText
+                    anchors.fill: parent
+                    anchors.leftMargin: 20
+                    anchors.rightMargin: 20
+                    anchors.topMargin: 10
+                    wrapMode : Text.Wrap
+                    //elide : Text.ElideRight
+                    color: "black"
+                    font.family: ubuntuLFont.name
+                    font.pixelSize: 16
+                    //font.letterSpacing : -2
+
+                    text: person.description
+                }
+            }
+
+            ListView {
+                id: moreList
+                anchors.top: descriptionRect.bottom
+
+                anchors.topMargin: 20
+
+                anchors.left: parent.left
+                anchors.right: parent.right
+                anchors.rightMargin: 20
+                state: "HIDDEN"
+
+                clip: true
+
+
+                model: person.extraInfo
+                delegate: Rectangle {
+                    Rectangle{
+                        color: "#DDDDDD"
+                        height : 1
+                        anchors.top: parent.top
+                        anchors.left: parent.left
+                        anchors.right: parent.right
+                    }
+
+                    objectName: "delegate"
+                    width: parent.width
+                    height: 25
+                    color: index % 2 ? "#F9F9F9" : "white"
+
+                    Row{
+                        anchors.verticalCenter: parent.verticalCenter
+                        spacing: 5
+
+                        Label {
+                            color: "black"
+                            text: name + ": "
+                            font.family: ubuntuBFont.name
+                            font.pixelSize: 14
+                        }
+                        Label {
+                            color: "black"
+                            text: value
+                            font.family: ubuntuFont.name
+                            font.pixelSize: 14
+                        }
+
+                    }
+
+
+                }
+
+                Behavior on height { PropertyAnimation {} }
+
+                states: [
+                    State {
+                        name: "SHOWN"
+                        PropertyChanges { target: moreList; height: 110; 
visible:true}
+                    },
+                    State {
+                        name: "HIDDEN"
+                        PropertyChanges { target: moreList; height: 0; 
visible:false}
+                    }
+                ]
+
+            }
+
+            Label{
+                id: showmoreLabel
+                anchors.top:moreList.bottom
+                anchors.topMargin: 10
+                text:"Show more information..."
+                color: "blue"
+
+                MouseArea{
+                    id: ma
+                    anchors.fill: parent
+                    hoverEnabled: true
+
+
+                    onContainsMouseChanged: {
+                        if(containsMouse){
+                            showmoreLabel.font.underline = true
+                            cursorShape: Qt.PointingHandCursor
+                        }
+                        else
+                        {
+                            showmoreLabel.font.underline = false
+                            cursorShape: Qt.ArrowCursor
+                        }
+                    }
+
+                    onClicked: {
+                        if(moreList.state == "HIDDEN")
+                        {
+                            moreList.state = "SHOWN"
+                            showmoreLabel.text = "Hide more information..."
+                        }
+                        else
+                        {
+                            moreList.state = "HIDDEN"
+                            showmoreLabel.text = "Show more information..."
+                        }
+                    }
+
+                }
+            }
+
+            Label{
+                id: channelsLabel
+                anchors.top:showmoreLabel.bottom
+                anchors.topMargin: 10
+                text: "Channels"
+                font.family: ubuntuLFont.name
+                font.pixelSize: 16
+            }
+            Rectangle{
+                color: "#DDDDDD"
+                height : 1
+                anchors.top: channelsLabel.bottom
+                anchors.topMargin: 5
+                anchors.left: parent.left
+                anchors.right: parent.right
+                anchors.rightMargin: 5
+            }
+
+            ListView {
+                id: channelsList
+                anchors.top: channelsLabel.bottom
+
+                anchors.topMargin: 20
+
+                anchors.left: parent.left
+                anchors.right: parent.right
+                anchors.rightMargin: 20
+
+                anchors.bottom: parent.bottom
+
+                clip: true
+
+                model: person.community
+                delegate: Rectangle {
+
+                    id: rectItem
+                    objectName: "delegate"
+                    width: parent.width
+                    height: 50
+
+
+
+                    Image {
+                        id: channelImage
+                        source: image
+                        fillMode: Image.PreserveAspectCrop
+                        height: 45
+                        width: 45
+                    }
+                    Label {
+                        color: "black"
+                        text: name
+                        anchors.left: channelImage.right
+                        anchors.leftMargin: 10
+                        font.family: ubuntuFont.name
+                        font.pixelSize: 16
+                    }
+
+                    Rectangle{
+                        id:buttonRect
+                        border.color: "#A7C9A1"
+                        border.width: 1
+                        height: 30
+                        width: 80
+                        anchors.right: parent.right
+                        anchors.verticalCenter: parent.verticalCenter
+                        anchors.rightMargin: 10
+                        visible: false
+
+                        Text {
+                            id: labelEnter
+                            anchors.centerIn: parent
+                            text: qsTr("Enter")
+                            color: "#81A87B"
+                        }
+                    }
+
+                    MouseArea{
+                        id: maItem
+                        anchors.fill: parent
+                        hoverEnabled: true
+
+
+                        onContainsMouseChanged: {
+                            if(containsMouse){
+                                rectItem.color = "#F9F9F9"
+                                buttonRect.visible = true
+                            }
+                            else
+                            {
+                                rectItem.color = "white"
+                                buttonRect.visible = false
+                            }
+                        }
+
+                    }
+
+
+                }
+
+
+            }
+
+
+
+
+        }
+
+
+    }
+}

Modified: gnunet-qt/secushare/qml/QrReader.qml
===================================================================
--- gnunet-qt/secushare/qml/QrReader.qml        2015-11-12 18:30:33 UTC (rev 
36654)
+++ gnunet-qt/secushare/qml/QrReader.qml        2015-11-12 18:30:37 UTC (rev 
36655)
@@ -1,97 +1,97 @@
-import QtQuick.Window 2.1;
-import QtQuick 2.2
-import QtQuick.Controls 1.1
-import QtQuick.Layouts 1.1
-import QZXing 1.3
-import QtMultimedia 5.3
-
-
-
-import Psyc 1.0
-
-Window {
-    title: "Camera Qr Reader";
-    width: 640;
-    height: 360;
-    id: newEgoWnd
-
-    property var decode: decoder
-
-    signal captured(string str)
-
-    function startCamera(){
-        camera.cameraState = Camera.ActiveState
-        camera.start()
-        camera.imageCapture.captureToLocation(Psyc.helpers.importLocation());
-    }
-
-    onClosing:{
-        camera.stop()
-        newEgoWnd.close()
-
-    }
-
-
-
-        Camera {
-            id: camera
-            cameraState : Camera.LoadedState
-
-
-            imageProcessing.whiteBalanceMode: 
CameraImageProcessing.WhiteBalanceFlash
-
-            exposure {
-                exposureCompensation: -1.0
-                exposureMode: Camera.ExposurePortrait
-            }
-
-            flash.mode: Camera.FlashRedEyeReduction
-
-            imageCapture {
-                onImageSaved:{
-                    console.log(path)
-                    decoder.decodeImageFromFile(path)
-                }
-
-
-            }
-
-
-        }
-
-        VideoOutput {
-            source: camera
-            anchors.fill: parent
-            focus : visible // to receive focus and capture key events when 
visible
-
-        }
-        Image {
-            id: photoPreview
-        }
-        QZXing{
-                id: decoder
-
-                onDecodingStarted: console.log("Decoding of image started...")
-
-                onTagFound: {
-
-                    console.log("Barcode data: " + tag)
-                    newEgoWnd.captured(tag)
-                    camera.stop()
-                    newEgoWnd.close()
-
-                }
-
-                onDecodingFinished:
-                {
-                    console.log("Decoding finished " + (succeeded==true ? 
"successfully" : "unsuccessfully") )
-
-                    if(succeeded == false)
-                    {
-                        
camera.imageCapture.captureToLocation(Psyc.helpers.importLocation());
-                    }
-                }
-        }
-
-
-}
+import QtQuick.Window 2.1;
+import QtQuick 2.2
+import QtQuick.Controls 1.1
+import QtQuick.Layouts 1.1
+import QZXing 1.3
+import QtMultimedia 5.3
+
+
+
+import Psyc 1.0
+
+Window {
+    title: "Camera Qr Reader";
+    width: 640;
+    height: 360;
+    id: newEgoWnd
+
+    property var decode: decoder
+
+    signal captured(string str)
+
+    function startCamera(){
+        camera.cameraState = Camera.ActiveState
+        camera.start()
+        camera.imageCapture.captureToLocation(Psyc.helpers.importLocation());
+    }
+
+    onClosing:{
+        camera.stop()
+        newEgoWnd.close()
+
+    }
+
+
+
+        Camera {
+            id: camera
+            cameraState : Camera.LoadedState
+
+
+            imageProcessing.whiteBalanceMode: 
CameraImageProcessing.WhiteBalanceFlash
+
+            exposure {
+                exposureCompensation: -1.0
+                exposureMode: Camera.ExposurePortrait
+            }
+
+            flash.mode: Camera.FlashRedEyeReduction
+
+            imageCapture {
+                onImageSaved:{
+                    console.log(path)
+                    decoder.decodeImageFromFile(path)
+                }
+
+
+            }
+
+
+        }
+
+        VideoOutput {
+            source: camera
+            anchors.fill: parent
+            focus : visible // to receive focus and capture key events when 
visible
+
+        }
+        Image {
+            id: photoPreview
+        }
+        QZXing{
+                id: decoder
+
+                onDecodingStarted: console.log("Decoding of image started...")
+
+                onTagFound: {
+
+                    console.log("Barcode data: " + tag)
+                    newEgoWnd.captured(tag)
+                    camera.stop()
+                    newEgoWnd.close()
+
+                }
+
+                onDecodingFinished:
+                {
+                    console.log("Decoding finished " + (succeeded==true ? 
"successfully" : "unsuccessfully") )
+
+                    if(succeeded == false)
+                    {
+                        
camera.imageCapture.captureToLocation(Psyc.helpers.importLocation());
+                    }
+                }
+        }
+
+
+}

Modified: gnunet-qt/secushare/qml/Settings.qml
===================================================================
--- gnunet-qt/secushare/qml/Settings.qml        2015-11-12 18:30:33 UTC (rev 
36654)
+++ gnunet-qt/secushare/qml/Settings.qml        2015-11-12 18:30:37 UTC (rev 
36655)
@@ -1,134 +1,134 @@
-import QtQuick 2.1
-import QtQuick.Window 2.1
-import QtQuick.Controls 1.2
-import QtQuick.Layouts 1.1
-import QtQuick.Controls.Styles 1.2
-import Psyc 1.0
-
-Rectangle {
-    anchors.fill: parent
-
-
-
-    FontLoader { id: ubuntuFont; source: "fonts/Ubuntu-R.ttf" }
-
-    Rectangle{
-        id:headerBanner
-        anchors.top: parent.top
-        anchors.left: parent.left
-        anchors.right: parent.right
-        height: 60
-        color: "white"
-
-
-        Image {
-            id: imageBanner
-            source: "images/settings_dark.png"
-            anchors.top: parent.top
-            anchors.left: parent.left
-            anchors.margins: 5
-            height: 42
-            width: 42
-            fillMode: Image.PreserveAspectFit
-        }
-        Label{
-            text: "Settings"
-            anchors.left: imageBanner.right
-            anchors.leftMargin: 5
-            anchors.top: parent.top
-            anchors.topMargin: 10
-            font.family: ubuntuFont.name
-            font.pointSize: 22
-            wrapMode : Text.Wrap
-            elide : Text.ElideRight
-        }
-
-    }
-    Rectangle{
-        anchors.top: headerBanner.bottom
-        anchors.left: parent.left
-        anchors.right: parent.right
-        height: 1
-        color: "#D1D1D1"
-
-    }
-
-    Rectangle{
-        id: content
-        anchors.top: headerBanner.bottom
-        anchors.left: parent.left
-        anchors.right: parent.right
-        anchors.margins: 10
-        ColumnLayout{
-            anchors.fill: parent
-            anchors.rightMargin: 30
-            Label{
-                id:nameLabel
-                text: "Name:"
-            }
-            TextField{
-                id:nameField
-                anchors.left: parent.left
-                anchors.right: parent.right
-                height: 20
-                text:Preferences.name
-                onTextChanged: {
-                    Preferences.name = text
-                }
-
-            }
-            Label{
-                id:statusLabel
-                text: "Status:"
-            }
-            TextField{
-                id:statusField
-                anchors.left: parent.left
-                anchors.right: parent.right
-                height: 20
-                text:Preferences.status
-                onTextChanged: {
-                    Preferences.status = text
-                }
-
-            }
-
-            Label{
-                id:saveRoomLabel
-                text: "Save created rooms ( The private key will be saved as 
clear text):"
-            }
-            CheckBox{
-                id:saveRoomCheckBox
-                anchors.left: parent.left
-                anchors.right: parent.right
-                height: 20
-                checked: Preferences.saveRoom
-                onCheckedChanged: {
-                    Preferences.saveRoom = checked
-                }
-
-            }
-
-            Label{
-                id:closeToTrayLabel
-                text: "Close to tray:"
-            }
-            CheckBox{
-                id:closeToTrayCheckBox
-                anchors.left: parent.left
-                anchors.right: parent.right
-                height: 20
-                checked: Preferences.minimizeToTray
-                onCheckedChanged: {
-                    Preferences.minimizeToTray = checked
-                }
-
-            }
-
-        }
-    }
-
-
-
-
-}
+import QtQuick 2.1
+import QtQuick.Window 2.1
+import QtQuick.Controls 1.2
+import QtQuick.Layouts 1.1
+import QtQuick.Controls.Styles 1.2
+import Psyc 1.0
+
+Rectangle {
+    anchors.fill: parent
+
+
+
+    FontLoader { id: ubuntuFont; source: "fonts/Ubuntu-R.ttf" }
+
+    Rectangle{
+        id:headerBanner
+        anchors.top: parent.top
+        anchors.left: parent.left
+        anchors.right: parent.right
+        height: 60
+        color: "white"
+
+
+        Image {
+            id: imageBanner
+            source: "images/settings_dark.png"
+            anchors.top: parent.top
+            anchors.left: parent.left
+            anchors.margins: 5
+            height: 42
+            width: 42
+            fillMode: Image.PreserveAspectFit
+        }
+        Label{
+            text: "Settings"
+            anchors.left: imageBanner.right
+            anchors.leftMargin: 5
+            anchors.top: parent.top
+            anchors.topMargin: 10
+            font.family: ubuntuFont.name
+            font.pointSize: 22
+            wrapMode : Text.Wrap
+            elide : Text.ElideRight
+        }
+
+    }
+    Rectangle{
+        anchors.top: headerBanner.bottom
+        anchors.left: parent.left
+        anchors.right: parent.right
+        height: 1
+        color: "#D1D1D1"
+
+    }
+
+    Rectangle{
+        id: content
+        anchors.top: headerBanner.bottom
+        anchors.left: parent.left
+        anchors.right: parent.right
+        anchors.margins: 10
+        ColumnLayout{
+            anchors.fill: parent
+            anchors.rightMargin: 30
+            Label{
+                id:nameLabel
+                text: "Name:"
+            }
+            TextField{
+                id:nameField
+                anchors.left: parent.left
+                anchors.right: parent.right
+                height: 20
+                text:Preferences.name
+                onTextChanged: {
+                    Preferences.name = text
+                }
+
+            }
+            Label{
+                id:statusLabel
+                text: "Status:"
+            }
+            TextField{
+                id:statusField
+                anchors.left: parent.left
+                anchors.right: parent.right
+                height: 20
+                text:Preferences.status
+                onTextChanged: {
+                    Preferences.status = text
+                }
+
+            }
+
+            Label{
+                id:saveRoomLabel
+                text: "Save created rooms ( The private key will be saved as 
clear text):"
+            }
+            CheckBox{
+                id:saveRoomCheckBox
+                anchors.left: parent.left
+                anchors.right: parent.right
+                height: 20
+                checked: Preferences.saveRoom
+                onCheckedChanged: {
+                    Preferences.saveRoom = checked
+                }
+
+            }
+
+            Label{
+                id:closeToTrayLabel
+                text: "Close to tray:"
+            }
+            CheckBox{
+                id:closeToTrayCheckBox
+                anchors.left: parent.left
+                anchors.right: parent.right
+                height: 20
+                checked: Preferences.minimizeToTray
+                onCheckedChanged: {
+                    Preferences.minimizeToTray = checked
+                }
+
+            }
+
+        }
+    }
+
+
+
+
+}

Modified: gnunet-qt/secushare/qml/SingleConversation.qml
===================================================================
--- gnunet-qt/secushare/qml/SingleConversation.qml      2015-11-12 18:30:33 UTC 
(rev 36654)
+++ gnunet-qt/secushare/qml/SingleConversation.qml      2015-11-12 18:30:37 UTC 
(rev 36655)
@@ -1,115 +1,115 @@
-// FIXME/deprecated: Conversations happen in a TOPIC in ThreadChat.
-
-
-import QtQuick 2.1
-import QtQuick.Window 2.1
-import QtQuick.Controls 1.2
-import QtQuick.Layouts 1.1
-import QtQuick.Controls.Styles 1.2
-
-
-
-Window {
-    //anchors.fill: parent
-    color: "steelblue"
-    width: 1000
-    height: 700
-
-    FontLoader { id: ubuntuFont; source: "fonts/Ubuntu-R.ttf" }
-
-    Rectangle{
-        id:headerBanner
-        anchors.top: parent.top
-        anchors.left: parent.left
-        anchors.right: parent.right
-        height: 60
-        color: "white"
-
-
-        Image {
-            id: imageBanner
-            source: "images/contact_dark.png"
-            anchors.top: parent.top
-            anchors.left: parent.left
-            anchors.margins: 10
-            height: 32
-            width: 32
-            fillMode: Image.PreserveAspectFit
-
-        }
-
-        Label{
-            id:name
-            text: "tg"
-            anchors.left: imageBanner.right
-            anchors.leftMargin: 5
-            anchors.top: parent.top
-            anchors.topMargin: 5
-            font.family: ubuntuFont.name
-            font.pointSize: 16
-            wrapMode : Text.Wrap
-            elide : Text.ElideRight
-        }
-
-        Label {
-            id: description
-            anchors.left: name.left
-            anchors.top: name.bottom
-            text: qsTr("I like to move, move !")
-            font.pointSize: 10
-            color: "darkgrey"
-        }
-
-    }
-    Rectangle{
-        id:headerLine
-        anchors.top: headerBanner.bottom
-        anchors.left: parent.left
-        anchors.right: parent.right
-        height: 1
-        color: "#D1D1D1"
-
-    }
-
-
-    ColumnLayout{
-        anchors.top: headerLine.bottom
-        anchors.left: parent.left
-        anchors.right: parent.right
-        anchors.bottom: parent.bottom
-
-
-        SplitView {
-            Layout.fillWidth: true
-            Layout.fillHeight: true
-            orientation: Qt.Horizontal
-
-
-
-
-                TextArea {
-                    id: centerItem
-                    Layout.minimumWidth: 50
-                    Layout.fillWidth: true
-                    textFormat: TextEdit.RichText
-                    readOnly: true
-                    frameVisible: false
-                    text: "
-(12:23:22 PM) <b>lynX:</b> like me<br/>"+
-"(12:23:26 PM) <b>tg:</b> if you know qml it's easier to do it directly in qml"
-                }
-
-
-
-
-        }
-
-        TextArea{
-            Layout.fillWidth: true
-            Layout.minimumHeight: 70
-            Layout.preferredHeight: 70
-
-        }
-
-    }
-}
+// FIXME/deprecated: Conversations happen in a TOPIC in ThreadChat.
+
+
+import QtQuick 2.1
+import QtQuick.Window 2.1
+import QtQuick.Controls 1.2
+import QtQuick.Layouts 1.1
+import QtQuick.Controls.Styles 1.2
+
+
+
+Window {
+    //anchors.fill: parent
+    color: "steelblue"
+    width: 1000
+    height: 700
+
+    FontLoader { id: ubuntuFont; source: "fonts/Ubuntu-R.ttf" }
+
+    Rectangle{
+        id:headerBanner
+        anchors.top: parent.top
+        anchors.left: parent.left
+        anchors.right: parent.right
+        height: 60
+        color: "white"
+
+
+        Image {
+            id: imageBanner
+            source: "images/contact_dark.png"
+            anchors.top: parent.top
+            anchors.left: parent.left
+            anchors.margins: 10
+            height: 32
+            width: 32
+            fillMode: Image.PreserveAspectFit
+
+        }
+
+        Label{
+            id:name
+            text: "tg"
+            anchors.left: imageBanner.right
+            anchors.leftMargin: 5
+            anchors.top: parent.top
+            anchors.topMargin: 5
+            font.family: ubuntuFont.name
+            font.pointSize: 16
+            wrapMode : Text.Wrap
+            elide : Text.ElideRight
+        }
+
+        Label {
+            id: description
+            anchors.left: name.left
+            anchors.top: name.bottom
+            text: qsTr("I like to move, move !")
+            font.pointSize: 10
+            color: "darkgrey"
+        }
+
+    }
+    Rectangle{
+        id:headerLine
+        anchors.top: headerBanner.bottom
+        anchors.left: parent.left
+        anchors.right: parent.right
+        height: 1
+        color: "#D1D1D1"
+
+    }
+
+
+    ColumnLayout{
+        anchors.top: headerLine.bottom
+        anchors.left: parent.left
+        anchors.right: parent.right
+        anchors.bottom: parent.bottom
+
+
+        SplitView {
+            Layout.fillWidth: true
+            Layout.fillHeight: true
+            orientation: Qt.Horizontal
+
+
+
+
+                TextArea {
+                    id: centerItem
+                    Layout.minimumWidth: 50
+                    Layout.fillWidth: true
+                    textFormat: TextEdit.RichText
+                    readOnly: true
+                    frameVisible: false
+                    text: "
+(12:23:22 PM) <b>lynX:</b> like me<br/>"+
+"(12:23:26 PM) <b>tg:</b> if you know qml it's easier to do it directly in qml"
+                }
+
+
+
+
+        }
+
+        TextArea{
+            Layout.fillWidth: true
+            Layout.minimumHeight: 70
+            Layout.preferredHeight: 70
+
+        }
+
+    }
+}

Modified: gnunet-qt/secushare/qml/Splash.qml
===================================================================
--- gnunet-qt/secushare/qml/Splash.qml  2015-11-12 18:30:33 UTC (rev 36654)
+++ gnunet-qt/secushare/qml/Splash.qml  2015-11-12 18:30:37 UTC (rev 36655)
@@ -1,73 +1,73 @@
-import QtQuick 2.2
-import QtQuick.Controls 1.1
-import QtQuick.Layouts 1.1
-import QtQuick.Window 2.1
-import Psyc 1.0
-
-Window {
-    visible: true
-    width: 444
-    height: 400
-    id:splashWnd
-    flags: Qt.Window
-
-
-    /*onActiveChanged: {
-        mainWnd.visible = false;
-    }*/
-
-
-
-
-
-    ColumnLayout{
-        Image {
-            id: imageSplash
-            source: "qrc:///assets/banner.png"
-        }
-
-        RowLayout{
-            Layout.fillWidth: true
-
-            anchors.horizontalCenter: parent.horizontalCenter
-            Label{
-                text: "Select your ego"
-            }
-
-            ComboBox {
-                id: egoCombo
-                width: 200
-                model: Psyc.models.identityModel
-                textRole: "name"
-                currentIndex: -1
-
-
-                onCurrentIndexChanged: {
-                    if(currentIndex === model.getCount()){
-                        var newego = 
Qt.createComponent("qrc:///qml/NewEgo.qml");
-                        var newegoWnd = newego.createObject();
-                        newegoWnd.show();
-                    }
-                }
-
-            }
-        }
-
-        Button{
-            text: "Enter"
-            anchors.horizontalCenter: parent.horizontalCenter
-
-            onClicked: {
-
-                var selectedIdentity = Psyc.models.identityModel.get 
(egoCombo.currentIndex)
-                Psyc.setIdentity(selectedIdentity)
-
-                splashWnd.close();
-                mainWnd.visible = true;
-            }
-        }
-
-    }
-
-
-}
+import QtQuick 2.2
+import QtQuick.Controls 1.1
+import QtQuick.Layouts 1.1
+import QtQuick.Window 2.1
+import Psyc 1.0
+
+Window {
+    visible: true
+    width: 444
+    height: 400
+    id:splashWnd
+    flags: Qt.Window
+
+
+    /*onActiveChanged: {
+        mainWnd.visible = false;
+    }*/
+
+
+
+
+
+    ColumnLayout{
+        Image {
+            id: imageSplash
+            source: "qrc:///assets/banner.png"
+        }
+
+        RowLayout{
+            Layout.fillWidth: true
+
+            anchors.horizontalCenter: parent.horizontalCenter
+            Label{
+                text: "Select your ego"
+            }
+
+            ComboBox {
+                id: egoCombo
+                width: 200
+                model: Psyc.models.identityModel
+                textRole: "name"
+                currentIndex: -1
+
+
+                onCurrentIndexChanged: {
+                    if(currentIndex === model.getCount()){
+                        var newego = 
Qt.createComponent("qrc:///qml/NewEgo.qml");
+                        var newegoWnd = newego.createObject();
+                        newegoWnd.show();
+                    }
+                }
+
+            }
+        }
+
+        Button{
+            text: "Enter"
+            anchors.horizontalCenter: parent.horizontalCenter
+
+            onClicked: {
+
+                var selectedIdentity = Psyc.models.identityModel.get 
(egoCombo.currentIndex)
+                Psyc.setIdentity(selectedIdentity)
+
+                splashWnd.close();
+                mainWnd.visible = true;
+            }
+        }
+
+    }
+
+
+}

Modified: gnunet-qt/secushare/qml/ThreadChat.qml
===================================================================
--- gnunet-qt/secushare/qml/ThreadChat.qml      2015-11-12 18:30:33 UTC (rev 
36654)
+++ gnunet-qt/secushare/qml/ThreadChat.qml      2015-11-12 18:30:37 UTC (rev 
36655)
@@ -1,560 +1,560 @@
-import QtQuick 2.1
-import QtQuick.Window 2.1
-import QtQuick.Controls 1.2
-import QtQuick.Layouts 1.1
-import QtQuick.Controls.Styles 1.2
-
-import Psyc 1.0
-
-Window {
-    id: threadChatWnd
-    width: 1000
-    height: 700
-    color: "white"
-
-    //anchors.fill: parent
-
-    property var selectedItem: null
-
-    FontLoader { id: bebasFont; source: "fonts/BebasNeue.otf" }
-    FontLoader { id: ubuntuFont; source: "fonts/Ubuntu-R.ttf" }
-    FontLoader { id: ubuntuBIFont; source: "fonts/Ubuntu-BI.ttf" }
-
-    RowLayout{
-        anchors.fill: parent
-
-        ColumnLayout{
-            height: parent.height
-            width: 230
-
-            Image {
-                Layout.maximumWidth: 180
-                id: logoSecureShare
-                anchors.horizontalCenter: parent.horizontalCenter
-                width: 16
-                height: 100
-                source: "images/logo.png"
-                fillMode: Image.PreserveAspectFit
-            }
-
-            Rectangle{
-                Layout.fillHeight: true
-                width: 200;
-                anchors.left: parent.left
-                anchors.leftMargin: 8
-                color: "#EB0C60"
-
-                Rectangle{
-                    id: topicsTitle
-                    color: "white"
-                    height: 30
-
-                    anchors.top: parent.top
-                    anchors.topMargin: 15
-                    anchors.left: parent.left
-                    anchors.leftMargin: 5
-                    anchors.right: parent.right
-                    anchors.rightMargin: 5
-
-                    Text {
-                        id: topicsTitleText
-                        text: qsTr("TOPICS")
-                        anchors.centerIn: parent
-                        font.pointSize: 22
-                        //font.bold :true
-                        font.family: bebasFont.name
-                    }
-                }
-
-                ListModel {
-                    id: topicsModel
-                   //
-                   // FIXME: These topics are just mock-ups, they
-                   //      should actually be coming from the
-                   //      user's subscribed channels!     -lynX
-                   //
-                    ListElement {
-                        name: "Things you knew this morning"
-                        image: "images/demo/Conffeti-background.jpg"
-                    }
-                    ListElement {
-                        name: "Did you see the NSA graffiti"
-                        image: "images/demo/ubuntu-wallpaper.jpg"
-                    }
-                    ListElement {
-                        name: "Popcorn"
-                        image: "images/demo/popcorn-background.jpg"
-                    }
-                }
-
-                ListView {
-                    id: topicList
-                    anchors.top: topicsTitle.bottom
-                    anchors.topMargin: 30
-                    anchors.bottom: parent.bottom
-                    anchors.right: parent.right
-
-                    anchors.left: parent.left
-                    anchors.leftMargin: 15
-
-                    spacing: 15
-                    clip: true
-
-                    Component {
-                        id: topicsDelegate
-
-                        Item {
-                            id: wrapper
-                            width: wrapper.ListView.isCurrentItem ? 186 : 170
-                            height: 170
-
-                            Rectangle {
-                                id: wrapperInside
-                                anchors.fill: parent
-                                anchors.topMargin: 20
-                                opacity: 1.0
-
-                                color: wrapper.ListView.isCurrentItem ? 
"white" : "black"
-
-                                Image {
-                                    id: threadMiniImage
-                                    source: image
-                                    fillMode: Image.PreserveAspectCrop
-                                    height: 60
-                                    width: 160
-                                    anchors.left: parent.left
-                                    anchors.leftMargin: 5
-                                    anchors.top: parent.top
-                                    anchors.topMargin: 5
-                                }
-
-                                Text {
-                                    anchors.top: threadMiniImage.bottom
-                                    id: contactInfo
-                                    text: name
-                                    width: 160
-                                    height: 80
-                                    anchors.left: parent.left
-                                    anchors.leftMargin: 5
-
-                                    wrapMode : Text.Wrap
-                                    elide : Text.ElideRight
-                                    color: wrapper.ListView.isCurrentItem ? 
"black" : "white"
-
-                                    font.family: ubuntuBIFont.name
-                                    font.pointSize: 18
-                                    font.letterSpacing : -2
-                                }
-
-                                MouseArea{
-                                    id:ma
-                                    anchors.fill: parent
-                                    onClicked: {
-                                        topicList.currentIndex = index
-                                    }
-                                }
-                            }
-                            Rectangle{
-                                id:indicator
-
-                                radius: 35
-                                color: "#EFC208"
-                                anchors.left: wrapperInside.left
-                                anchors.leftMargin: 125
-                                anchors.top: parent.top
-                                anchors.topMargin: 10
-                                border.color: "black"
-                                border.width: 3
-                                height: 35
-                                width: 35
-                                visible: wrapper.ListView.isCurrentItem ? 
false: true
-
-                                Text {
-                                    anchors.centerIn: parent
-                                    id: numberNewTopics
-                                    text: "12"
-                                    font.family: ubuntuFont.name
-                                    font.pointSize: 14
-                                }
-                            }
-                        }
-                    }
-                    model: topicsModel
-                    delegate: topicsDelegate
-                    focus: true
-
-                    onCurrentIndexChanged: {
-                        selectedItem = model.get(currentIndex)
-                    }
-                }
-            }
-        }
-
-        ColumnLayout{
-            Layout.fillWidth: true
-
-            Rectangle{
-                anchors.fill: parent
-                anchors.leftMargin: 20
-                anchors.rightMargin: 20
-                anchors.topMargin: 20
-                color: "white"
-
-                Image {
-                    id: topicBackgroundImage
-                    anchors.fill: parent
-                    opacity: 0.5
-                    fillMode: Image.Tile
-                    clip: true
-                    source: selectedItem.image
-                }
-
-                Rectangle{
-                    id: forumTitleRectangle
-                    color: "black"
-                    height: 50
-                    width: 500
-                    opacity: 0.9
-                    anchors.top: parent.top
-                    anchors.topMargin: 20
-                    Text {
-                        id: forumTitleText
-                        anchors.verticalCenter: parent.verticalCenter
-                        anchors.left: parent.left
-                        anchors.leftMargin: 20
-                        text: qsTr("Forum for clandestine urban art")
-                        wrapMode : Text.Wrap
-                        elide : Text.ElideRight
-                        color: "white"
-                        //font.bold: true
-                        font.pointSize: 22
-                        font.family: bebasFont.name
-                    }
-                }
-
-                ListModel {
-                    id: messagesModel
-                   //
-                   // FIXME: These users are just mock-ups, they
-                   //      should actually be coming from the
-                   //      channel's participant list!     -lynX
-                   //
-                    ListElement {
-                        name: "Bailadora"
-                        image: "images/demo/baila.jpg"
-                        messagecontent: "Did you see that NSA graffiti on the 
corner of Chaussestr. and Torstr. not only does it look amazing, it's algo such 
a strong message !!"
-                    }
-                    ListElement {
-                        name: "La Doll"
-                        image: "images/demo/doll.jpg"
-
-                        messagecontent: "Oh yeah, totally awesome! Was about 
time somebody said that! And with style!"
-                    }
-                    ListElement {
-                        name: "Arpeggio"
-                        image: "images/demo/arp.jpg"
-                        messagecontent: "What! What ? Guess I'll take an extra 
detour on the bike to see that!"
-                    }
-                }
-
-                ListView {
-                    id: messagesList
-                    anchors.top: forumTitleRectangle.bottom
-                    anchors.topMargin: 30
-                    anchors.bottom: replyField.top
-                    anchors.right: parent.right
-
-                    anchors.left: parent.left
-                    anchors.leftMargin: 15
-
-                    spacing: 15
-                    clip: true
-
-                    Component {
-                        id: messagesDelegate
-                        Item  {
-                            id: wrapper
-                            width:  parent.width - 100
-                            height: (contentWrapper.height > 
userWrapper.height)  ? contentWrapper.height : userWrapper.height
-
-                            Rectangle {
-                                id: userWrapper
-                                width:  (index == 0) ? 140 : 90
-                                height: (index == 0) ? 140 : 90
-                                anchors.left: parent.left
-                                anchors.leftMargin: (index == 0) ? 0 : 50
-
-                                color: "black"
-                                opacity: 1.0
-
-                                Image {
-                                    id: messageMiniImage
-                                    source: image
-                                    fillMode: Image.PreserveAspectCrop
-                                    height: (index == 0) ? 100 : 60
-                                    width: (index == 0) ? 130 : 80
-                                    anchors.left: parent.left
-                                    anchors.leftMargin: 5
-                                    anchors.top: parent.top
-                                    anchors.topMargin: 5
-                                }
-
-                                Text {
-                                    anchors.top: messageMiniImage.bottom
-                                    id: contactText
-                                    text: name
-
-                                    width: (index == 0) ? 135 : 85
-                                    height: 30
-                                    anchors.left: parent.left
-                                    anchors.leftMargin: 10
-
-                                    wrapMode : Text.Wrap
-                                    elide : Text.ElideRight
-                                    color: "white"
-                                    font.family: ubuntuBIFont.name
-                                    font.pointSize: (index == 0) ? 16 : 12
-                                    font.letterSpacing : -2
-                                }
-
-                                MouseArea{
-                                    id:ma
-                                    anchors.fill: parent
-                                    onClicked: {
-                                        messagesList.currentIndex = index
-                                    }
-                                }
-                            }
-
-                            Rectangle{
-                                id: contentWrapper
-
-                                anchors.left: userWrapper.right
-                                anchors.right: parent.right
-                                anchors.top: parent.top
-                                anchors.leftMargin: 10
-                                anchors.rightMargin: 10
-                                anchors.topMargin: 0
-
-                                height: content.contentHeight + 20
-
-                                Text {
-                                    id: content
-                                    anchors.fill: parent
-                                    anchors.margins: 10
-
-                                    text: messagecontent
-                                    font.pointSize: 12
-                                    wrapMode : Text.Wrap
-
-                                    font.family: ubuntuFont.name
-                                }
-                            }
-                        }
-                    }
-
-                    model: messagesModel
-                    delegate: messagesDelegate
-                }
-
-                Item{
-                    id: replyField
-                    height: 70
-                    anchors.left: parent.left
-                    anchors.right: parent.right
-                    anchors.bottom: parent.bottom
-
-                    Rectangle {
-                        id: userWrapper
-                        width:  60
-                        height: 60
-                        color: "black"
-                        opacity: 1.0
-
-                        anchors.left: parent.left
-                        anchors.leftMargin: 5
-                        anchors.top: parent.top
-
-                        Image {
-                            id: messageMiniImage
-                            source: "images/demo/lynX.jpg"
-                            fillMode: Image.PreserveAspectCrop
-                            height: 40
-                            width: 48
-                            anchors.left: parent.left
-                            anchors.top: parent.top
-                            anchors.margins: 3
-                        }
-
-                        Text {
-                            anchors.top: messageMiniImage.bottom
-                            id: contactText
-                            text: "lynX"
-                            font.pointSize: 10
-                            width: 55
-                            height: 15
-                            anchors.left: parent.left
-                            anchors.leftMargin: 5
-
-                            wrapMode : Text.Wrap
-                            elide : Text.ElideRight
-                            color: "white"
-
-                            font.family: ubuntuBIFont.name
-                            font.letterSpacing : -1
-                        }
-                    }
-
-                    TextArea{
-                        anchors.left: userWrapper.right
-                        anchors.right: parent.right
-                        anchors.top: userWrapper.top
-                        anchors.bottom: userWrapper.bottom
-                        anchors.rightMargin: 10
-                        anchors.leftMargin: 10
-                    }
-
-                    /*Rectangle{
-                        anchors.left: userWrapper.right
-                        anchors.right: parent.right
-                        anchors.top: parent.top
-                        anchors.bottom: parent.bottom
-                        anchors.leftMargin: 5
-
-                        TextArea{
-
-                            anchors.fill: parent
-                            anchors.margins: 10
-
-                        }
-                    }*/
-                }
-            }
-        }
-
-        ColumnLayout{
-            Rectangle{
-                Layout.fillHeight: true
-                width: 200;
-                anchors.right: parent.right
-                anchors.rightMargin: 8
-                anchors.top: parent.top
-                anchors.topMargin: 20
-
-                color: "#EFC208"
-
-                Rectangle{
-                    id: participantsTitle
-                    color: "white"
-                    height: 30
-
-                    anchors.top: parent.top
-                    anchors.topMargin: 15
-                    anchors.left: parent.left
-                    anchors.leftMargin: 5
-                    anchors.right: parent.right
-                    anchors.rightMargin: 5
-
-                    Text {
-                        id: participantsTitleText
-                        text: qsTr("PARTICIPANTS")
-                        anchors.centerIn: parent
-                        font.pointSize: 22
-                        //font.bold :true
-                        font.family: bebasFont.name
-                    }
-                }
-
-                ListModel {
-                    id: participantsModel
-
-                   // FIXME: again, mock-up data here
-                    ListElement {
-                        name: "Bailadora"
-                        image: "images/demo/baila.jpg"
-                    }
-                    ListElement {
-                        name: "Arpeggio"
-                        image: "images/demo/arp.jpg"
-                    }
-                    ListElement {
-                        name: "La Doll"
-                        image: "images/demo/doll.jpg"
-                    }
-                    ListElement {
-                        name: "lynX"
-                        image: "images/demo/lynX.jpg"
-                    }
-                }
-
-                ListView {
-                    id: participantsList
-                    anchors.top: participantsTitle.bottom
-                    anchors.topMargin: 30
-                    anchors.bottom: parent.bottom
-                    anchors.right: parent.right
-
-                    anchors.left: parent.left
-                    anchors.leftMargin: 15
-
-                    spacing: 15
-                    clip: true
-
-                    Component {
-                        id: participantsDelegate
-                        Rectangle {
-                            id: wrapper
-                            width:  170
-                            height: 150
-                            color: ListView.isCurrentItem ? "white" : "black"
-
-                            Image {
-                                id: threadMiniImage
-                                source: image
-                                fillMode: Image.PreserveAspectCrop
-                                height: 110
-                                width: 160
-                                anchors.left: parent.left
-                                anchors.leftMargin: 5
-                                anchors.top: parent.top
-                                anchors.topMargin: 5
-                            }
-
-                            Text {
-                                anchors.top: threadMiniImage.bottom
-                                id: contactInfo
-                                text: name
-
-                                width: 160
-                                height: 40
-                                anchors.left: parent.left
-                                anchors.leftMargin: 5
-
-                                wrapMode : Text.Wrap
-                                elide : Text.ElideRight
-                                color: wrapper.ListView.isCurrentItem ? 
"black" : "white"
-
-                                font.family: ubuntuBIFont.name
-                                font.pointSize: 18
-                                font.letterSpacing : -2
-
-                            }
-
-                            MouseArea{
-                                id:ma
-                                anchors.fill: parent
-                                onClicked: {
-                                    participantsList.currentIndex = index
-                                }
-                            }
-                        }
-                    }
-
-                    model: participantsModel
-                    delegate: participantsDelegate
-                    focus: true
-                }
-            }
-        }
-    }
-}
+import QtQuick 2.1
+import QtQuick.Window 2.1
+import QtQuick.Controls 1.2
+import QtQuick.Layouts 1.1
+import QtQuick.Controls.Styles 1.2
+
+import Psyc 1.0
+
+Window {
+    id: threadChatWnd
+    width: 1000
+    height: 700
+    color: "white"
+
+    //anchors.fill: parent
+
+    property var selectedItem: null
+
+    FontLoader { id: bebasFont; source: "fonts/BebasNeue.otf" }
+    FontLoader { id: ubuntuFont; source: "fonts/Ubuntu-R.ttf" }
+    FontLoader { id: ubuntuBIFont; source: "fonts/Ubuntu-BI.ttf" }
+
+    RowLayout{
+        anchors.fill: parent
+
+        ColumnLayout{
+            height: parent.height
+            width: 230
+
+            Image {
+                Layout.maximumWidth: 180
+                id: logoSecureShare
+                anchors.horizontalCenter: parent.horizontalCenter
+                width: 16
+                height: 100
+                source: "images/logo.png"
+                fillMode: Image.PreserveAspectFit
+            }
+
+            Rectangle{
+                Layout.fillHeight: true
+                width: 200;
+                anchors.left: parent.left
+                anchors.leftMargin: 8
+                color: "#EB0C60"
+
+                Rectangle{
+                    id: topicsTitle
+                    color: "white"
+                    height: 30
+
+                    anchors.top: parent.top
+                    anchors.topMargin: 15
+                    anchors.left: parent.left
+                    anchors.leftMargin: 5
+                    anchors.right: parent.right
+                    anchors.rightMargin: 5
+
+                    Text {
+                        id: topicsTitleText
+                        text: qsTr("TOPICS")
+                        anchors.centerIn: parent
+                        font.pointSize: 22
+                        //font.bold :true
+                        font.family: bebasFont.name
+                    }
+                }
+
+                ListModel {
+                    id: topicsModel
+                   //
+                   // FIXME: These topics are just mock-ups, they
+                   //      should actually be coming from the
+                   //      user's subscribed channels!     -lynX
+                   //
+                    ListElement {
+                        name: "Things you knew this morning"
+                        image: "images/demo/Conffeti-background.jpg"
+                    }
+                    ListElement {
+                        name: "Did you see the NSA graffiti"
+                        image: "images/demo/ubuntu-wallpaper.jpg"
+                    }
+                    ListElement {
+                        name: "Popcorn"
+                        image: "images/demo/popcorn-background.jpg"
+                    }
+                }
+
+                ListView {
+                    id: topicList
+                    anchors.top: topicsTitle.bottom
+                    anchors.topMargin: 30
+                    anchors.bottom: parent.bottom
+                    anchors.right: parent.right
+
+                    anchors.left: parent.left
+                    anchors.leftMargin: 15
+
+                    spacing: 15
+                    clip: true
+
+                    Component {
+                        id: topicsDelegate
+
+                        Item {
+                            id: wrapper
+                            width: wrapper.ListView.isCurrentItem ? 186 : 170
+                            height: 170
+
+                            Rectangle {
+                                id: wrapperInside
+                                anchors.fill: parent
+                                anchors.topMargin: 20
+                                opacity: 1.0
+
+                                color: wrapper.ListView.isCurrentItem ? 
"white" : "black"
+
+                                Image {
+                                    id: threadMiniImage
+                                    source: image
+                                    fillMode: Image.PreserveAspectCrop
+                                    height: 60
+                                    width: 160
+                                    anchors.left: parent.left
+                                    anchors.leftMargin: 5
+                                    anchors.top: parent.top
+                                    anchors.topMargin: 5
+                                }
+
+                                Text {
+                                    anchors.top: threadMiniImage.bottom
+                                    id: contactInfo
+                                    text: name
+                                    width: 160
+                                    height: 80
+                                    anchors.left: parent.left
+                                    anchors.leftMargin: 5
+
+                                    wrapMode : Text.Wrap
+                                    elide : Text.ElideRight
+                                    color: wrapper.ListView.isCurrentItem ? 
"black" : "white"
+
+                                    font.family: ubuntuBIFont.name
+                                    font.pointSize: 18
+                                    font.letterSpacing : -2
+                                }
+
+                                MouseArea{
+                                    id:ma
+                                    anchors.fill: parent
+                                    onClicked: {
+                                        topicList.currentIndex = index
+                                    }
+                                }
+                            }
+                            Rectangle{
+                                id:indicator
+
+                                radius: 35
+                                color: "#EFC208"
+                                anchors.left: wrapperInside.left
+                                anchors.leftMargin: 125
+                                anchors.top: parent.top
+                                anchors.topMargin: 10
+                                border.color: "black"
+                                border.width: 3
+                                height: 35
+                                width: 35
+                                visible: wrapper.ListView.isCurrentItem ? 
false: true
+
+                                Text {
+                                    anchors.centerIn: parent
+                                    id: numberNewTopics
+                                    text: "12"
+                                    font.family: ubuntuFont.name
+                                    font.pointSize: 14
+                                }
+                            }
+                        }
+                    }
+                    model: topicsModel
+                    delegate: topicsDelegate
+                    focus: true
+
+                    onCurrentIndexChanged: {
+                        selectedItem = model.get(currentIndex)
+                    }
+                }
+            }
+        }
+
+        ColumnLayout{
+            Layout.fillWidth: true
+
+            Rectangle{
+                anchors.fill: parent
+                anchors.leftMargin: 20
+                anchors.rightMargin: 20
+                anchors.topMargin: 20
+                color: "white"
+
+                Image {
+                    id: topicBackgroundImage
+                    anchors.fill: parent
+                    opacity: 0.5
+                    fillMode: Image.Tile
+                    clip: true
+                    source: selectedItem.image
+                }
+
+                Rectangle{
+                    id: forumTitleRectangle
+                    color: "black"
+                    height: 50
+                    width: 500
+                    opacity: 0.9
+                    anchors.top: parent.top
+                    anchors.topMargin: 20
+                    Text {
+                        id: forumTitleText
+                        anchors.verticalCenter: parent.verticalCenter
+                        anchors.left: parent.left
+                        anchors.leftMargin: 20
+                        text: qsTr("Forum for clandestine urban art")
+                        wrapMode : Text.Wrap
+                        elide : Text.ElideRight
+                        color: "white"
+                        //font.bold: true
+                        font.pointSize: 22
+                        font.family: bebasFont.name
+                    }
+                }
+
+                ListModel {
+                    id: messagesModel
+                   //
+                   // FIXME: These users are just mock-ups, they
+                   //      should actually be coming from the
+                   //      channel's participant list!     -lynX
+                   //
+                    ListElement {
+                        name: "Bailadora"
+                        image: "images/demo/baila.jpg"
+                        messagecontent: "Did you see that NSA graffiti on the 
corner of Chaussestr. and Torstr. not only does it look amazing, it's algo such 
a strong message !!"
+                    }
+                    ListElement {
+                        name: "La Doll"
+                        image: "images/demo/doll.jpg"
+
+                        messagecontent: "Oh yeah, totally awesome! Was about 
time somebody said that! And with style!"
+                    }
+                    ListElement {
+                        name: "Arpeggio"
+                        image: "images/demo/arp.jpg"
+                        messagecontent: "What! What ? Guess I'll take an extra 
detour on the bike to see that!"
+                    }
+                }
+
+                ListView {
+                    id: messagesList
+                    anchors.top: forumTitleRectangle.bottom
+                    anchors.topMargin: 30
+                    anchors.bottom: replyField.top
+                    anchors.right: parent.right
+
+                    anchors.left: parent.left
+                    anchors.leftMargin: 15
+
+                    spacing: 15
+                    clip: true
+
+                    Component {
+                        id: messagesDelegate
+                        Item  {
+                            id: wrapper
+                            width:  parent.width - 100
+                            height: (contentWrapper.height > 
userWrapper.height)  ? contentWrapper.height : userWrapper.height
+
+                            Rectangle {
+                                id: userWrapper
+                                width:  (index == 0) ? 140 : 90
+                                height: (index == 0) ? 140 : 90
+                                anchors.left: parent.left
+                                anchors.leftMargin: (index == 0) ? 0 : 50
+
+                                color: "black"
+                                opacity: 1.0
+
+                                Image {
+                                    id: messageMiniImage
+                                    source: image
+                                    fillMode: Image.PreserveAspectCrop
+                                    height: (index == 0) ? 100 : 60
+                                    width: (index == 0) ? 130 : 80
+                                    anchors.left: parent.left
+                                    anchors.leftMargin: 5
+                                    anchors.top: parent.top
+                                    anchors.topMargin: 5
+                                }
+
+                                Text {
+                                    anchors.top: messageMiniImage.bottom
+                                    id: contactText
+                                    text: name
+
+                                    width: (index == 0) ? 135 : 85
+                                    height: 30
+                                    anchors.left: parent.left
+                                    anchors.leftMargin: 10
+
+                                    wrapMode : Text.Wrap
+                                    elide : Text.ElideRight
+                                    color: "white"
+                                    font.family: ubuntuBIFont.name
+                                    font.pointSize: (index == 0) ? 16 : 12
+                                    font.letterSpacing : -2
+                                }
+
+                                MouseArea{
+                                    id:ma
+                                    anchors.fill: parent
+                                    onClicked: {
+                                        messagesList.currentIndex = index
+                                    }
+                                }
+                            }
+
+                            Rectangle{
+                                id: contentWrapper
+
+                                anchors.left: userWrapper.right
+                                anchors.right: parent.right
+                                anchors.top: parent.top
+                                anchors.leftMargin: 10
+                                anchors.rightMargin: 10
+                                anchors.topMargin: 0
+
+                                height: content.contentHeight + 20
+
+                                Text {
+                                    id: content
+                                    anchors.fill: parent
+                                    anchors.margins: 10
+
+                                    text: messagecontent
+                                    font.pointSize: 12
+                                    wrapMode : Text.Wrap
+
+                                    font.family: ubuntuFont.name
+                                }
+                            }
+                        }
+                    }
+
+                    model: messagesModel
+                    delegate: messagesDelegate
+                }
+
+                Item{
+                    id: replyField
+                    height: 70
+                    anchors.left: parent.left
+                    anchors.right: parent.right
+                    anchors.bottom: parent.bottom
+
+                    Rectangle {
+                        id: userWrapper
+                        width:  60
+                        height: 60
+                        color: "black"
+                        opacity: 1.0
+
+                        anchors.left: parent.left
+                        anchors.leftMargin: 5
+                        anchors.top: parent.top
+
+                        Image {
+                            id: messageMiniImage
+                            source: "images/demo/lynX.jpg"
+                            fillMode: Image.PreserveAspectCrop
+                            height: 40
+                            width: 48
+                            anchors.left: parent.left
+                            anchors.top: parent.top
+                            anchors.margins: 3
+                        }
+
+                        Text {
+                            anchors.top: messageMiniImage.bottom
+                            id: contactText
+                            text: "lynX"
+                            font.pointSize: 10
+                            width: 55
+                            height: 15
+                            anchors.left: parent.left
+                            anchors.leftMargin: 5
+
+                            wrapMode : Text.Wrap
+                            elide : Text.ElideRight
+                            color: "white"
+
+                            font.family: ubuntuBIFont.name
+                            font.letterSpacing : -1
+                        }
+                    }
+
+                    TextArea{
+                        anchors.left: userWrapper.right
+                        anchors.right: parent.right
+                        anchors.top: userWrapper.top
+                        anchors.bottom: userWrapper.bottom
+                        anchors.rightMargin: 10
+                        anchors.leftMargin: 10
+                    }
+
+                    /*Rectangle{
+                        anchors.left: userWrapper.right
+                        anchors.right: parent.right
+                        anchors.top: parent.top
+                        anchors.bottom: parent.bottom
+                        anchors.leftMargin: 5
+
+                        TextArea{
+
+                            anchors.fill: parent
+                            anchors.margins: 10
+
+                        }
+                    }*/
+                }
+            }
+        }
+
+        ColumnLayout{
+            Rectangle{
+                Layout.fillHeight: true
+                width: 200;
+                anchors.right: parent.right
+                anchors.rightMargin: 8
+                anchors.top: parent.top
+                anchors.topMargin: 20
+
+                color: "#EFC208"
+
+                Rectangle{
+                    id: participantsTitle
+                    color: "white"
+                    height: 30
+
+                    anchors.top: parent.top
+                    anchors.topMargin: 15
+                    anchors.left: parent.left
+                    anchors.leftMargin: 5
+                    anchors.right: parent.right
+                    anchors.rightMargin: 5
+
+                    Text {
+                        id: participantsTitleText
+                        text: qsTr("PARTICIPANTS")
+                        anchors.centerIn: parent
+                        font.pointSize: 22
+                        //font.bold :true
+                        font.family: bebasFont.name
+                    }
+                }
+
+                ListModel {
+                    id: participantsModel
+
+                   // FIXME: again, mock-up data here
+                    ListElement {
+                        name: "Bailadora"
+                        image: "images/demo/baila.jpg"
+                    }
+                    ListElement {
+                        name: "Arpeggio"
+                        image: "images/demo/arp.jpg"
+                    }
+                    ListElement {
+                        name: "La Doll"
+                        image: "images/demo/doll.jpg"
+                    }
+                    ListElement {
+                        name: "lynX"
+                        image: "images/demo/lynX.jpg"
+                    }
+                }
+
+                ListView {
+                    id: participantsList
+                    anchors.top: participantsTitle.bottom
+                    anchors.topMargin: 30
+                    anchors.bottom: parent.bottom
+                    anchors.right: parent.right
+
+                    anchors.left: parent.left
+                    anchors.leftMargin: 15
+
+                    spacing: 15
+                    clip: true
+
+                    Component {
+                        id: participantsDelegate
+                        Rectangle {
+                            id: wrapper
+                            width:  170
+                            height: 150
+                            color: ListView.isCurrentItem ? "white" : "black"
+
+                            Image {
+                                id: threadMiniImage
+                                source: image
+                                fillMode: Image.PreserveAspectCrop
+                                height: 110
+                                width: 160
+                                anchors.left: parent.left
+                                anchors.leftMargin: 5
+                                anchors.top: parent.top
+                                anchors.topMargin: 5
+                            }
+
+                            Text {
+                                anchors.top: threadMiniImage.bottom
+                                id: contactInfo
+                                text: name
+
+                                width: 160
+                                height: 40
+                                anchors.left: parent.left
+                                anchors.leftMargin: 5
+
+                                wrapMode : Text.Wrap
+                                elide : Text.ElideRight
+                                color: wrapper.ListView.isCurrentItem ? 
"black" : "white"
+
+                                font.family: ubuntuBIFont.name
+                                font.pointSize: 18
+                                font.letterSpacing : -2
+
+                            }
+
+                            MouseArea{
+                                id:ma
+                                anchors.fill: parent
+                                onClicked: {
+                                    participantsList.currentIndex = index
+                                }
+                            }
+                        }
+                    }
+
+                    model: participantsModel
+                    delegate: participantsDelegate
+                    focus: true
+                }
+            }
+        }
+    }
+}

Modified: gnunet-qt/secushare/qml/main.qml
===================================================================
--- gnunet-qt/secushare/qml/main.qml    2015-11-12 18:30:33 UTC (rev 36654)
+++ gnunet-qt/secushare/qml/main.qml    2015-11-12 18:30:37 UTC (rev 36655)
@@ -1,595 +1,595 @@
-import QtQuick 2.2
-import QtQuick.Controls 1.1
-import QtQuick.Layouts 1.1
-import QtQuick.Window 2.0
-
-import Psyc 1.0
-
-ApplicationWindow {
-    width: 1200
-    height: 600
-    id: mainWnd
-
-    property var firstRun: true
-    property var splashWnd
-    property var selectedPlace
-
-
-    FontLoader { id: ubuntuFont; source: "fonts/Ubuntu-R.ttf" }
-    FontLoader { id: ubuntuBIFont; source: "fonts/Ubuntu-BI.ttf" }
-
-    onClosing: {
-
-        if(Preferences.minimizeToTray){
-            close.accepted = false;
-            Psyc.onClose();
-        }
-    }
-
-
-    Action {
-        id: copyLink
-        text: "Copy Link"
-        onTriggered: selectedPlace.copyToClipboard()
-    }
-
-    Menu {
-        id: contextMenu
-        MenuItem { action: copyLink }
-
-    }
-
-    menuBar: MenuBar {
-        Menu {
-            title: qsTr("File")
-            MenuItem {
-                text: qsTr("Exit")
-                onTriggered: Qt.quit();
-            }
-
-
-            MenuItem {
-                text: qsTr("Import Ego")
-                onTriggered: {
-                    var importEgo = 
Qt.createComponent("qrc:///qml/ImportEgo.qml");
-                    var importEgoWnd = importEgo.createObject();
-                    importEgoWnd.show();
-                }
-            }
-            MenuItem {
-                text: qsTr("Export Ego")
-                onTriggered: {
-                    var reader = 
Qt.createComponent("qrc:///qml/ExportEgo.qml");
-                    var readerWnd = reader.createObject();
-                    readerWnd.show();
-                }
-            }
-
-            MenuItem {
-                text: qsTr("Profile")
-                onTriggered: {
-                    var profile = Qt.createComponent("qrc:///qml/Profile.qml");
-                    var profileWnd = profile.createObject();
-                    profileWnd.show();
-                }
-            }
-
-            MenuItem {
-                text: qsTr("Single Chat")
-                onTriggered: {
-                    var single = 
Qt.createComponent("qrc:///qml/SingleConversation.qml");
-                    var singleWnd = single.createObject();
-                    singleWnd.show();
-                }
-            }
-
-            MenuItem {
-                text: qsTr("Threaded Chat")
-                onTriggered: {
-                    var threaded = 
Qt.createComponent("qrc:///qml/ThreadChat.qml");
-                    var threadedWnd = threaded.createObject();
-                    threadedWnd.show();
-                }
-            }
-
-            MenuItem {
-                text: qsTr("About")
-                onTriggered: {
-                    var threaded = Qt.createComponent("qrc:///qml/About.qml");
-                    var threadedWnd = threaded.createObject();
-                    threadedWnd.show();
-                }
-            }
-
-
-        }
-    }
-
-
-
-
-
-    onActiveChanged: {
-        if(firstRun){
-            visible = false;
-            firstRun= false;
-            //splashWnd.visible = true
-            var splash = Qt.createComponent("qrc:///qml/Splash.qml");
-            splashWnd = splash.createObject();
-            splashWnd.show();
-        }
-    }
-
-
-
-    /*
-    ListModel {
-        id: contactsModel
-        ListElement {
-            name: "Thread Chat"
-            type: "thread"
-            status: "My awesome status message"
-        }
-        ListElement {
-            name: "lynX group"
-            type: "group"
-            status: "Look at my group, my group is amazing!"
-        }
-        ListElement {
-            name: "tg"
-            type: "contact"
-            status: "I like to move, move !"
-        }
-    }
-    */
-
-
-
-    Rectangle{
-        id: container
-        anchors.fill: parent
-
-        Rectangle{
-            id: sidebar
-            color: "#1C1C1C"
-            anchors.left: parent.left
-            anchors.top:parent.top
-            anchors.bottom: parent.bottom
-
-            width: 220
-
-            Rectangle{
-                id:topBar
-                anchors.left: parent.left
-                anchors.right: parent.right
-                color: "#1C1C1C"
-                height: 60
-
-                Image {
-                    id: contact
-                    source: "images/contact.png"
-                    anchors.left: parent.left
-                    anchors.leftMargin: 10
-                    anchors.top: parent.top
-                    anchors.topMargin: 10
-                }
-                Label{
-                    id: myName
-                    anchors.left: contact.right
-                    anchors.leftMargin: 10
-                    anchors.top: contact.top
-                    text: Preferences.name
-                    color: "white"
-                    font.pixelSize: 14
-                    font.family: ubuntuFont.name
-                }
-                Label{
-                    id: myStatus
-                    anchors.top: myName.bottom
-                    anchors.topMargin: 1
-                    anchors.left: contact.right
-                    anchors.leftMargin: 10
-                    text: Preferences.status
-                    color: "white"
-                    font.pixelSize: 12
-                    font.family: ubuntuFont.name
-                }
-
-                Rectangle{
-                    id:statusButton
-                    radius: 5
-                    color: "#414141"
-                    width: 22
-                    height: 40
-                    anchors.right: parent.right
-                    anchors.top: parent.top
-                    anchors.rightMargin: 10
-                    anchors.topMargin: 10
-
-                    Image {
-                        id: imageStatus
-                        source: "images/status/dot_online.png"
-                        anchors.centerIn: parent
-                    }
-
-                    MouseArea{
-                        id:statusMa
-                        anchors.fill: parent
-                        hoverEnabled: true
-
-                        onClicked: setStatusMenu.popup()
-
-                        Menu {
-                            id: setStatusMenu
-                            title: "Set Status"
-
-                            MenuItem {
-                                iconSource : "images/status/dot_online.png"
-                                text: qsTr("Online")
-                                onTriggered: imageStatus.source = 
"images/status/dot_online.png"
-                            }
-                            MenuItem {
-                                iconSource : "images/status/dot_away.png"
-                                text: qsTr("Away")
-                                onTriggered: imageStatus.source = 
"images/status/dot_away.png"
-                            }
-                            MenuItem {
-                                iconSource : "images/status/dot_busy.png"
-                                text: qsTr("Busy")
-                                onTriggered: imageStatus.source = 
"images/status/dot_busy.png"
-                            }
-                        }
-
-                        onContainsMouseChanged: {
-                            if(containsMouse){
-                                statusButton.color = "#4B4B4B"
-                                cursorShape: Qt.PointingHandCursor
-                            }
-                            else
-                            {
-                                statusButton.color = "#414141"
-                                cursorShape: Qt.ArrowCursor
-                            }
-                        }
-
-
-                    }
-                }
-
-            }
-
-            //The contact list
-            Rectangle {
-                id:rectContactList
-
-                anchors.top: topBar.bottom
-                anchors.left: parent.left
-                anchors.right: parent.right
-                anchors.bottom: bottonBar.top
-                color: "#414141"
-
-                ListView {
-                    id:contactList
-                    anchors.fill: parent
-                    model: Psyc.models.placesModel
-                    delegate: contactDelegate
-                    focus: true
-
-                    Component {
-                        id: contactDelegate
-
-
-                        Item {
-                            id: wrapper
-                            width: 220
-
-                            height: 48
-                            Rectangle{
-                                id: contactBackground
-                                anchors.fill: parent
-                                color: "#414141"
-                                state: "NORMAL"
-
-                                states: [
-                                    State {
-                                        name: "NORMAL"
-                                        when:((!ma.containsMouse) && 
(main.currentIndex !==  3+index))
-                                        PropertyChanges { target: 
contactBackground; color: "#414141"}
-                                        PropertyChanges { target: contactName; 
color: "white"}
-                                        PropertyChanges { target: 
contactStatus; color: "white"}
-                                        PropertyChanges { target: contactPic; 
source: "images/" + type + ".png"}
-                                    },
-                                    State {
-                                        name: "HOVER"
-                                        when: ((ma.containsMouse) && 
(main.currentIndex !==  3+index))
-                                        PropertyChanges { target: 
contactBackground; color: "#505050"}
-                                        PropertyChanges { target: contactName; 
color: "white"}
-                                        PropertyChanges { target: 
contactStatus; color: "white"}
-                                        PropertyChanges { target: contactPic; 
source: "images/" + type + ".png"}
-                                    },
-                                    State {
-                                        name: "PRESSED"
-                                        when: (main.currentIndex == 3+index)
-                                        PropertyChanges { target: 
contactBackground; color: "#FFFFFF"}
-                                        PropertyChanges { target: contactName; 
color: "#1C1C1C"}
-                                        PropertyChanges { target: 
contactStatus; color: "#1C1C1C"}
-                                        PropertyChanges { target: contactPic; 
source: "images/" + type + "_dark.png"}
-
-                                    }
-                                ]
-
-                                Image {
-                                    id: contactPic
-                                    anchors.top: parent.top
-                                    anchors.left: parent.left
-                                    anchors.topMargin: 9
-                                    anchors.leftMargin: 14
-                                    source: "images/" + type + "_dark.png"
-
-
-
-                                }
-
-                                Label{
-                                    id: contactName
-                                    anchors.left: contactPic.right
-                                    anchors.top: contactPic.top
-                                    width: 175
-                                    height: 15
-                                    anchors.leftMargin: 5
-                                    text: name
-                                    font.family: ubuntuFont.name
-                                    font.pointSize: 10
-                                    wrapMode : Text.Wrap
-                                    elide : Text.ElideRight
-                                    color: "white"
-
-                                }
-                                Label{
-                                    id: contactStatus
-                                    anchors.left: contactName.left
-                                    anchors.top: contactName.bottom
-                                    width: contactBackground.width
-                                    text: status
-                                    font.family: ubuntuFont.name
-                                    font.pointSize: 8
-                                    wrapMode : Text.Wrap
-                                    elide : Text.ElideRight
-                                    color: "white"
-
-                                }
-
-
-                                MouseArea{
-                                    id:ma
-                                    anchors.fill: parent
-
-                                    hoverEnabled: true
-                                    acceptedButtons: Qt.LeftButton | 
Qt.RightButton
-
-                                    onClicked: {
-
-                                        if (mouse.button == Qt.RightButton)
-                                        {
-                                            selectedPlace = 
Psyc.models.placesModel.get(index)
-                                            contextMenu.popup()
-                                        }
-                                        else
-                                            main.currentIndex =  3+index
-                                    }
-
-
-
-
-                                }
-                            }
-                        }
-
-                    }
-                }
-            }
-
-            Rectangle{
-                id:bottonBar
-                color: "#1C1C1C"
-                height: 35
-                anchors.bottom: parent.bottom
-                anchors.left: parent.left
-                anchors.right: parent.right
-
-                Rectangle{
-                    id:addButton
-                    anchors.left: parent.left
-                    anchors.top: parent.top
-                    width: 54
-                    height: parent.height
-                    color: "#1C1C1C"
-                    state: "NORMAL"
-
-                    states: [
-                        State {
-                            name: "NORMAL"
-                            when:((!addButtonMa.containsMouse) && 
(main.currentIndex !== 0))
-                            PropertyChanges { target: addButton; color: 
"#1C1C1C"}
-                        },
-                        State {
-                            name: "HOVER"
-                            when: ((addButtonMa.containsMouse) && 
(main.currentIndex !== 0))
-                            PropertyChanges { target: addButton; color: 
"#282828"}
-                        },
-                        State {
-                            name: "PRESSED"
-                            when: (main.currentIndex == 0)
-                            PropertyChanges { target: addButton; color: 
"#414141"}
-                        }
-                    ]
-
-                    Image {
-                        id: addButtonImage
-                        source: "images/add.png"
-                        anchors.centerIn: parent
-                    }
-                    MouseArea{
-                        id:addButtonMa
-                        anchors.fill: parent
-                        hoverEnabled: true
-
-                        onClicked: main.currentIndex = 0
-
-                    }
-                }
-                Rectangle{
-                    id:createButton
-                    anchors.left: addButton.right
-                    anchors.top: parent.top
-                    width: 54
-                    height: parent.height
-                    color: "#1C1C1C"
-                    state: "NORMAL"
-
-                    states: [
-                        State {
-                            name: "NORMAL"
-                            when:((!createButtonMa.containsMouse) && 
(main.currentIndex !== 1))
-                            PropertyChanges { target: createButton; color: 
"#1C1C1C"}
-                        },
-                        State {
-                            name: "HOVER"
-                            when: ((createButtonMa.containsMouse) && 
(main.currentIndex !== 1))
-                            PropertyChanges { target: createButton; color: 
"#282828"}
-                        },
-                        State {
-                            name: "PRESSED"
-                            when: (main.currentIndex == 1)
-                            PropertyChanges { target: createButton; color: 
"#414141"}
-                        }
-                    ]
-
-                    Image {
-                        id: createButtonImage
-                        source: "images/create_room.png"
-                        anchors.centerIn: parent
-                    }
-                    MouseArea{
-                        id:createButtonMa
-                        anchors.fill: parent
-                        hoverEnabled: true
-
-                        onClicked: main.currentIndex = 1
-
-                    }
-                }
-                Rectangle{
-                    id:configButton
-                    anchors.left: createButton.right
-                    anchors.top: parent.top
-                    width: 54
-                    height: parent.height
-                    color: "#1C1C1C"
-                    state: "NORMAL"
-
-                    states: [
-                        State {
-                            name: "NORMAL"
-                            when:((!configButtonMa.containsMouse) && 
(main.currentIndex !== 2))
-                            PropertyChanges { target: configButton; color: 
"#1C1C1C"}
-                        },
-                        State {
-                            name: "HOVER"
-                            when: ((configButtonMa.containsMouse) && 
(main.currentIndex !== 2))
-                            PropertyChanges { target: configButton; color: 
"#282828"}
-                        },
-                        State {
-                            name: "PRESSED"
-                            when: (main.currentIndex == 2)
-                            PropertyChanges { target: configButton; color: 
"#414141"}
-                        }
-                    ]
-
-                    Image {
-                        id: configButtonImage
-                        source: "images/settings.png"
-                        anchors.centerIn: parent
-                    }
-                    MouseArea{
-                        id:configButtonMa
-                        anchors.fill: parent
-                        hoverEnabled: true
-
-                        onClicked: main.currentIndex = 2
-
-                    }
-                }
-            }
-
-        }
-
-
-        Repeater
-        {
-            id: repeater
-            model : Psyc.models.placesModel
-            Item
-            {
-                property string title: "My Title"
-
-            }
-            onItemAdded: {
-                var component = Qt.createComponent("GroupConversation.qml");
-                var tab = main.addTab(item.title, component)
-                tab.active = true
-                tab.item.place = Psyc.models.placesModel.get(index)
-
-            }
-            onItemRemoved: {
-                var component = main.getTab(index).item
-                //component.searchResultModel = null
-                main.removeTab(index)
-
-            }
-        }
-
-
-        TabView {
-            id: main
-            anchors.left: sidebar.right
-            anchors.top: parent.top
-            anchors.bottom: parent.bottom
-            anchors.right: parent.right
-            // Implements back key navigation
-            focus: true
-            tabsVisible: false
-            frameVisible: false
-
-
-            Tab{
-                title: "Join Room"
-                JoinRoom{
-                    //anchors.fill: parent
-                }
-            }
-
-            Tab{
-                title: "CreateRoom"
-                CreateRoom{
-                    //anchors.fill: parent
-                }
-            }
-
-
-            Tab{
-                title: "Settings"
-                Settings{
-                    //anchors.fill: parent
-                }
-            }
-
-
-        }
-
-
-
-    }
-
-
-}
+import QtQuick 2.2
+import QtQuick.Controls 1.1
+import QtQuick.Layouts 1.1
+import QtQuick.Window 2.0
+
+import Psyc 1.0
+
+ApplicationWindow {
+    width: 1200
+    height: 600
+    id: mainWnd
+
+    property var firstRun: true
+    property var splashWnd
+    property var selectedPlace
+
+
+    FontLoader { id: ubuntuFont; source: "fonts/Ubuntu-R.ttf" }
+    FontLoader { id: ubuntuBIFont; source: "fonts/Ubuntu-BI.ttf" }
+
+    onClosing: {
+
+        if(Preferences.minimizeToTray){
+            close.accepted = false;
+            Psyc.onClose();
+        }
+    }
+
+
+    Action {
+        id: copyLink
+        text: "Copy Link"
+        onTriggered: selectedPlace.copyToClipboard()
+    }
+
+    Menu {
+        id: contextMenu
+        MenuItem { action: copyLink }
+
+    }
+
+    menuBar: MenuBar {
+        Menu {
+            title: qsTr("File")
+            MenuItem {
+                text: qsTr("Exit")
+                onTriggered: Qt.quit();
+            }
+
+
+            MenuItem {
+                text: qsTr("Import Ego")
+                onTriggered: {
+                    var importEgo = 
Qt.createComponent("qrc:///qml/ImportEgo.qml");
+                    var importEgoWnd = importEgo.createObject();
+                    importEgoWnd.show();
+                }
+            }
+            MenuItem {
+                text: qsTr("Export Ego")
+                onTriggered: {
+                    var reader = 
Qt.createComponent("qrc:///qml/ExportEgo.qml");
+                    var readerWnd = reader.createObject();
+                    readerWnd.show();
+                }
+            }
+
+            MenuItem {
+                text: qsTr("Profile")
+                onTriggered: {
+                    var profile = Qt.createComponent("qrc:///qml/Profile.qml");
+                    var profileWnd = profile.createObject();
+                    profileWnd.show();
+                }
+            }
+
+            MenuItem {
+                text: qsTr("Single Chat")
+                onTriggered: {
+                    var single = 
Qt.createComponent("qrc:///qml/SingleConversation.qml");
+                    var singleWnd = single.createObject();
+                    singleWnd.show();
+                }
+            }
+
+            MenuItem {
+                text: qsTr("Threaded Chat")
+                onTriggered: {
+                    var threaded = 
Qt.createComponent("qrc:///qml/ThreadChat.qml");
+                    var threadedWnd = threaded.createObject();
+                    threadedWnd.show();
+                }
+            }
+
+            MenuItem {
+                text: qsTr("About")
+                onTriggered: {
+                    var threaded = Qt.createComponent("qrc:///qml/About.qml");
+                    var threadedWnd = threaded.createObject();
+                    threadedWnd.show();
+                }
+            }
+
+
+        }
+    }
+
+
+
+
+
+    onActiveChanged: {
+        if(firstRun){
+            visible = false;
+            firstRun= false;
+            //splashWnd.visible = true
+            var splash = Qt.createComponent("qrc:///qml/Splash.qml");
+            splashWnd = splash.createObject();
+            splashWnd.show();
+        }
+    }
+
+
+
+    /*
+    ListModel {
+        id: contactsModel
+        ListElement {
+            name: "Thread Chat"
+            type: "thread"
+            status: "My awesome status message"
+        }
+        ListElement {
+            name: "lynX group"
+            type: "group"
+            status: "Look at my group, my group is amazing!"
+        }
+        ListElement {
+            name: "tg"
+            type: "contact"
+            status: "I like to move, move !"
+        }
+    }
+    */
+
+
+
+    Rectangle{
+        id: container
+        anchors.fill: parent
+
+        Rectangle{
+            id: sidebar
+            color: "#1C1C1C"
+            anchors.left: parent.left
+            anchors.top:parent.top
+            anchors.bottom: parent.bottom
+
+            width: 220
+
+            Rectangle{
+                id:topBar
+                anchors.left: parent.left
+                anchors.right: parent.right
+                color: "#1C1C1C"
+                height: 60
+
+                Image {
+                    id: contact
+                    source: "images/contact.png"
+                    anchors.left: parent.left
+                    anchors.leftMargin: 10
+                    anchors.top: parent.top
+                    anchors.topMargin: 10
+                }
+                Label{
+                    id: myName
+                    anchors.left: contact.right
+                    anchors.leftMargin: 10
+                    anchors.top: contact.top
+                    text: Preferences.name
+                    color: "white"
+                    font.pixelSize: 14
+                    font.family: ubuntuFont.name
+                }
+                Label{
+                    id: myStatus
+                    anchors.top: myName.bottom
+                    anchors.topMargin: 1
+                    anchors.left: contact.right
+                    anchors.leftMargin: 10
+                    text: Preferences.status
+                    color: "white"
+                    font.pixelSize: 12
+                    font.family: ubuntuFont.name
+                }
+
+                Rectangle{
+                    id:statusButton
+                    radius: 5
+                    color: "#414141"
+                    width: 22
+                    height: 40
+                    anchors.right: parent.right
+                    anchors.top: parent.top
+                    anchors.rightMargin: 10
+                    anchors.topMargin: 10
+
+                    Image {
+                        id: imageStatus
+                        source: "images/status/dot_online.png"
+                        anchors.centerIn: parent
+                    }
+
+                    MouseArea{
+                        id:statusMa
+                        anchors.fill: parent
+                        hoverEnabled: true
+
+                        onClicked: setStatusMenu.popup()
+
+                        Menu {
+                            id: setStatusMenu
+                            title: "Set Status"
+
+                            MenuItem {
+                                iconSource : "images/status/dot_online.png"
+                                text: qsTr("Online")
+                                onTriggered: imageStatus.source = 
"images/status/dot_online.png"
+                            }
+                            MenuItem {
+                                iconSource : "images/status/dot_away.png"
+                                text: qsTr("Away")
+                                onTriggered: imageStatus.source = 
"images/status/dot_away.png"
+                            }
+                            MenuItem {
+                                iconSource : "images/status/dot_busy.png"
+                                text: qsTr("Busy")
+                                onTriggered: imageStatus.source = 
"images/status/dot_busy.png"
+                            }
+                        }
+
+                        onContainsMouseChanged: {
+                            if(containsMouse){
+                                statusButton.color = "#4B4B4B"
+                                cursorShape: Qt.PointingHandCursor
+                            }
+                            else
+                            {
+                                statusButton.color = "#414141"
+                                cursorShape: Qt.ArrowCursor
+                            }
+                        }
+
+
+                    }
+                }
+
+            }
+
+            //The contact list
+            Rectangle {
+                id:rectContactList
+
+                anchors.top: topBar.bottom
+                anchors.left: parent.left
+                anchors.right: parent.right
+                anchors.bottom: bottonBar.top
+                color: "#414141"
+
+                ListView {
+                    id:contactList
+                    anchors.fill: parent
+                    model: Psyc.models.placesModel
+                    delegate: contactDelegate
+                    focus: true
+
+                    Component {
+                        id: contactDelegate
+
+
+                        Item {
+                            id: wrapper
+                            width: 220
+
+                            height: 48
+                            Rectangle{
+                                id: contactBackground
+                                anchors.fill: parent
+                                color: "#414141"
+                                state: "NORMAL"
+
+                                states: [
+                                    State {
+                                        name: "NORMAL"
+                                        when:((!ma.containsMouse) && 
(main.currentIndex !==  3+index))
+                                        PropertyChanges { target: 
contactBackground; color: "#414141"}
+                                        PropertyChanges { target: contactName; 
color: "white"}
+                                        PropertyChanges { target: 
contactStatus; color: "white"}
+                                        PropertyChanges { target: contactPic; 
source: "images/" + type + ".png"}
+                                    },
+                                    State {
+                                        name: "HOVER"
+                                        when: ((ma.containsMouse) && 
(main.currentIndex !==  3+index))
+                                        PropertyChanges { target: 
contactBackground; color: "#505050"}
+                                        PropertyChanges { target: contactName; 
color: "white"}
+                                        PropertyChanges { target: 
contactStatus; color: "white"}
+                                        PropertyChanges { target: contactPic; 
source: "images/" + type + ".png"}
+                                    },
+                                    State {
+                                        name: "PRESSED"
+                                        when: (main.currentIndex == 3+index)
+                                        PropertyChanges { target: 
contactBackground; color: "#FFFFFF"}
+                                        PropertyChanges { target: contactName; 
color: "#1C1C1C"}
+                                        PropertyChanges { target: 
contactStatus; color: "#1C1C1C"}
+                                        PropertyChanges { target: contactPic; 
source: "images/" + type + "_dark.png"}
+
+                                    }
+                                ]
+
+                                Image {
+                                    id: contactPic
+                                    anchors.top: parent.top
+                                    anchors.left: parent.left
+                                    anchors.topMargin: 9
+                                    anchors.leftMargin: 14
+                                    source: "images/" + type + "_dark.png"
+
+
+
+                                }
+
+                                Label{
+                                    id: contactName
+                                    anchors.left: contactPic.right
+                                    anchors.top: contactPic.top
+                                    width: 175
+                                    height: 15
+                                    anchors.leftMargin: 5
+                                    text: name
+                                    font.family: ubuntuFont.name
+                                    font.pointSize: 10
+                                    wrapMode : Text.Wrap
+                                    elide : Text.ElideRight
+                                    color: "white"
+
+                                }
+                                Label{
+                                    id: contactStatus
+                                    anchors.left: contactName.left
+                                    anchors.top: contactName.bottom
+                                    width: contactBackground.width
+                                    text: status
+                                    font.family: ubuntuFont.name
+                                    font.pointSize: 8
+                                    wrapMode : Text.Wrap
+                                    elide : Text.ElideRight
+                                    color: "white"
+
+                                }
+
+
+                                MouseArea{
+                                    id:ma
+                                    anchors.fill: parent
+
+                                    hoverEnabled: true
+                                    acceptedButtons: Qt.LeftButton | 
Qt.RightButton
+
+                                    onClicked: {
+
+                                        if (mouse.button == Qt.RightButton)
+                                        {
+                                            selectedPlace = 
Psyc.models.placesModel.get(index)
+                                            contextMenu.popup()
+                                        }
+                                        else
+                                            main.currentIndex =  3+index
+                                    }
+
+
+
+
+                                }
+                            }
+                        }
+
+                    }
+                }
+            }
+
+            Rectangle{
+                id:bottonBar
+                color: "#1C1C1C"
+                height: 35
+                anchors.bottom: parent.bottom
+                anchors.left: parent.left
+                anchors.right: parent.right
+
+                Rectangle{
+                    id:addButton
+                    anchors.left: parent.left
+                    anchors.top: parent.top
+                    width: 54
+                    height: parent.height
+                    color: "#1C1C1C"
+                    state: "NORMAL"
+
+                    states: [
+                        State {
+                            name: "NORMAL"
+                            when:((!addButtonMa.containsMouse) && 
(main.currentIndex !== 0))
+                            PropertyChanges { target: addButton; color: 
"#1C1C1C"}
+                        },
+                        State {
+                            name: "HOVER"
+                            when: ((addButtonMa.containsMouse) && 
(main.currentIndex !== 0))
+                            PropertyChanges { target: addButton; color: 
"#282828"}
+                        },
+                        State {
+                            name: "PRESSED"
+                            when: (main.currentIndex == 0)
+                            PropertyChanges { target: addButton; color: 
"#414141"}
+                        }
+                    ]
+
+                    Image {
+                        id: addButtonImage
+                        source: "images/add.png"
+                        anchors.centerIn: parent
+                    }
+                    MouseArea{
+                        id:addButtonMa
+                        anchors.fill: parent
+                        hoverEnabled: true
+
+                        onClicked: main.currentIndex = 0
+
+                    }
+                }
+                Rectangle{
+                    id:createButton
+                    anchors.left: addButton.right
+                    anchors.top: parent.top
+                    width: 54
+                    height: parent.height
+                    color: "#1C1C1C"
+                    state: "NORMAL"
+
+                    states: [
+                        State {
+                            name: "NORMAL"
+                            when:((!createButtonMa.containsMouse) && 
(main.currentIndex !== 1))
+                            PropertyChanges { target: createButton; color: 
"#1C1C1C"}
+                        },
+                        State {
+                            name: "HOVER"
+                            when: ((createButtonMa.containsMouse) && 
(main.currentIndex !== 1))
+                            PropertyChanges { target: createButton; color: 
"#282828"}
+                        },
+                        State {
+                            name: "PRESSED"
+                            when: (main.currentIndex == 1)
+                            PropertyChanges { target: createButton; color: 
"#414141"}
+                        }
+                    ]
+
+                    Image {
+                        id: createButtonImage
+                        source: "images/create_room.png"
+                        anchors.centerIn: parent
+                    }
+                    MouseArea{
+                        id:createButtonMa
+                        anchors.fill: parent
+                        hoverEnabled: true
+
+                        onClicked: main.currentIndex = 1
+
+                    }
+                }
+                Rectangle{
+                    id:configButton
+                    anchors.left: createButton.right
+                    anchors.top: parent.top
+                    width: 54
+                    height: parent.height
+                    color: "#1C1C1C"
+                    state: "NORMAL"
+
+                    states: [
+                        State {
+                            name: "NORMAL"
+                            when:((!configButtonMa.containsMouse) && 
(main.currentIndex !== 2))
+                            PropertyChanges { target: configButton; color: 
"#1C1C1C"}
+                        },
+                        State {
+                            name: "HOVER"
+                            when: ((configButtonMa.containsMouse) && 
(main.currentIndex !== 2))
+                            PropertyChanges { target: configButton; color: 
"#282828"}
+                        },
+                        State {
+                            name: "PRESSED"
+                            when: (main.currentIndex == 2)
+                            PropertyChanges { target: configButton; color: 
"#414141"}
+                        }
+                    ]
+
+                    Image {
+                        id: configButtonImage
+                        source: "images/settings.png"
+                        anchors.centerIn: parent
+                    }
+                    MouseArea{
+                        id:configButtonMa
+                        anchors.fill: parent
+                        hoverEnabled: true
+
+                        onClicked: main.currentIndex = 2
+
+                    }
+                }
+            }
+
+        }
+
+
+        Repeater
+        {
+            id: repeater
+            model : Psyc.models.placesModel
+            Item
+            {
+                property string title: "My Title"
+
+            }
+            onItemAdded: {
+                var component = Qt.createComponent("GroupConversation.qml");
+                var tab = main.addTab(item.title, component)
+                tab.active = true
+                tab.item.place = Psyc.models.placesModel.get(index)
+
+            }
+            onItemRemoved: {
+                var component = main.getTab(index).item
+                //component.searchResultModel = null
+                main.removeTab(index)
+
+            }
+        }
+
+
+        TabView {
+            id: main
+            anchors.left: sidebar.right
+            anchors.top: parent.top
+            anchors.bottom: parent.bottom
+            anchors.right: parent.right
+            // Implements back key navigation
+            focus: true
+            tabsVisible: false
+            frameVisible: false
+
+
+            Tab{
+                title: "Join Room"
+                JoinRoom{
+                    //anchors.fill: parent
+                }
+            }
+
+            Tab{
+                title: "CreateRoom"
+                CreateRoom{
+                    //anchors.fill: parent
+                }
+            }
+
+
+            Tab{
+                title: "Settings"
+                Settings{
+                    //anchors.fill: parent
+                }
+            }
+
+
+        }
+
+
+
+    }
+
+
+}

Modified: gnunet-qt/secushare/secushare.pro
===================================================================
--- gnunet-qt/secushare/secushare.pro   2015-11-12 18:30:33 UTC (rev 36654)
+++ gnunet-qt/secushare/secushare.pro   2015-11-12 18:30:37 UTC (rev 36655)
@@ -1,50 +1,50 @@
-TEMPLATE = app
-
-QT += qml quick widgets
-
-INCLUDEPATH += /usr/depot/include
-
-LIBS += -lgnunetutil -lgnunetcore -lgnunetidentity -lgnunetarm -lgnunetsocial 
-lgnunetenv -lgnunetpsycutil -lgnunetfriends -lextractor -lqrencode 
-L/usr/depot/lib
-
-#include(3rdParty/qzxing-master/QZXing.pro)
-
-SOURCES += main.cpp \
-    core/psyccore.cpp \
-    preferences/preferences.cpp \
-    psyc.cpp \
-    models/models.cpp \
-    models/PlacesModel.cpp \
-    core/gnunet/gnunet.cpp \
-    core/identity/identityService.cpp \
-    core/identity/identity.cpp \
-    models/IdentityModel.cpp \
-    utils/helpers.cpp \
-    utils/qrimageprovider.cpp \
-    core/social/socialservice.cpp \
-    core/social/place.cpp
-
-RESOURCES += qml.qrc
-
-# Additional import path used to resolve QML modules in Qt Creator's code model
-QML_IMPORT_PATH =
-
-# Default rules for deployment.
-include(deployment.pri)
-
-HEADERS += \
-    core/psyccore.h \
-    preferences/preferences.h \
-    psyc.h \
-    models/models.h \
-    models/PlacesModel.h \
-    core/gnunet/gnunet.h \
-    core/gnunet/gnunet_includes.h \
-    core/identity/identityService.h \
-    core/identity/identity.h \
-    models/IdentityModel.h \
-    utils/helpers.h \
-    utils/qrimageprovider.h \
-    core/social/socialservice.h \
-    core/social/place.h
-
-CONFIG += debug
+TEMPLATE = app
+
+QT += qml quick widgets
+
+INCLUDEPATH += /usr/depot/include
+
+LIBS += -lgnunetutil -lgnunetcore -lgnunetidentity -lgnunetarm -lgnunetsocial 
-lgnunetenv -lgnunetpsycutil -lgnunetfriends -lextractor -lqrencode 
-L/usr/depot/lib
+
+#include(3rdParty/qzxing-master/QZXing.pro)
+
+SOURCES += main.cpp \
+    core/psyccore.cpp \
+    preferences/preferences.cpp \
+    psyc.cpp \
+    models/models.cpp \
+    models/PlacesModel.cpp \
+    core/gnunet/gnunet.cpp \
+    core/identity/identityService.cpp \
+    core/identity/identity.cpp \
+    models/IdentityModel.cpp \
+    utils/helpers.cpp \
+    utils/qrimageprovider.cpp \
+    core/social/socialservice.cpp \
+    core/social/place.cpp
+
+RESOURCES += qml.qrc
+
+# Additional import path used to resolve QML modules in Qt Creator's code model
+QML_IMPORT_PATH =
+
+# Default rules for deployment.
+include(deployment.pri)
+
+HEADERS += \
+    core/psyccore.h \
+    preferences/preferences.h \
+    psyc.h \
+    models/models.h \
+    models/PlacesModel.h \
+    core/gnunet/gnunet.h \
+    core/gnunet/gnunet_includes.h \
+    core/identity/identityService.h \
+    core/identity/identity.h \
+    models/IdentityModel.h \
+    utils/helpers.h \
+    utils/qrimageprovider.h \
+    core/social/socialservice.h \
+    core/social/place.h
+
+CONFIG += debug

Modified: gnunet-qt/secushare/utils/helpers.cpp
===================================================================
--- gnunet-qt/secushare/utils/helpers.cpp       2015-11-12 18:30:33 UTC (rev 
36654)
+++ gnunet-qt/secushare/utils/helpers.cpp       2015-11-12 18:30:37 UTC (rev 
36655)
@@ -1,90 +1,90 @@
-#include "helpers.h"
-
-#include <QtQml>
-#include "core/psyccore.h"
-#include "core/identity/identity.h"
-#include <QtQuick/QQuickImageProvider>
-#include <qrencode.h>
-
-Helpers::Helpers(QObject *parent) :
-    QObject(parent)
-{
-}
-
-QImage Helpers::convertQmlToImage( const QString& path)
-{
-    QUrl imageUrl(path);
-    QQmlEngine* engine = QQmlEngine::contextForObject(this)->engine();
-    QQmlImageProviderBase* imageProviderBase = engine->imageProvider(
-                imageUrl.host());
-    QQuickImageProvider* imageProvider = static_cast<QQuickImageProvider*>
-            (imageProviderBase);
-
-    QSize imageSize;
-    QString imageId = imageUrl.path().remove(0,1);
-    QImage image = imageProvider->requestImage(imageId, &imageSize, imageSize);
-
-    return image;
-
-}
-
-QImage Helpers::convertQrToImage(QString str)
-{
-    QString uri = str;
-    //qDebug() << "Encoding:" << uri.toUtf8().constData();
-
-
-    QRcode *code = QRcode_encodeString(uri.toUtf8().constData(), 0, 
QR_ECLEVEL_L, QR_MODE_8, 1);
-    QImage myImage = QImage(code->width + 2, code->width + 2, 
QImage::Format_RGB32);
-    myImage.fill(0xffffff);
-    unsigned char *p = code->data;
-    for(int y = 0; y < code->width; y++) {
-        for(int x = 0; x < code->width; x++) {
-            myImage.setPixel(x + 1, y + 1, ((*p & 1) ? 0x0 : 0xffffff));
-            p++;
-        }
-    }
-
-
-    QRcode_free(code);
-
-    return myImage;
-}
-
-void Helpers::saveQrAsFile(QString path)
-{
-
-    QImage image = convertQrToImage(theApp->identity()->url());
-
-    int width = 200;
-    int height = 200;
-
-
-    QSize size = QSize(width, height);
-
-    QImage scaledImage = image.scaled(size);
-
-    if(!scaledImage.save(path))
-    {
-        qDebug() << "Fail saving QR code";
-    }
-}
-
-
-
-QString Helpers::importLocation() const
-{
-    QString imageLocation = 
QStandardPaths::writableLocation(QStandardPaths::TempLocation);
-
-    return  imageLocation + "/tempQrImage.jpg";
-}
-
-
-bool Helpers::removeTemp()
-{
-    const char* location = importLocation().toUtf8();
-    if(QFile::remove(location) != true ) {
-        qWarning() << "Error deleting temporary image";
-    }
-    return 0;
-}
+#include "helpers.h"
+
+#include <QtQml>
+#include "core/psyccore.h"
+#include "core/identity/identity.h"
+#include <QtQuick/QQuickImageProvider>
+#include <qrencode.h>
+
+Helpers::Helpers(QObject *parent) :
+    QObject(parent)
+{
+}
+
+QImage Helpers::convertQmlToImage( const QString& path)
+{
+    QUrl imageUrl(path);
+    QQmlEngine* engine = QQmlEngine::contextForObject(this)->engine();
+    QQmlImageProviderBase* imageProviderBase = engine->imageProvider(
+                imageUrl.host());
+    QQuickImageProvider* imageProvider = static_cast<QQuickImageProvider*>
+            (imageProviderBase);
+
+    QSize imageSize;
+    QString imageId = imageUrl.path().remove(0,1);
+    QImage image = imageProvider->requestImage(imageId, &imageSize, imageSize);
+
+    return image;
+
+}
+
+QImage Helpers::convertQrToImage(QString str)
+{
+    QString uri = str;
+    //qDebug() << "Encoding:" << uri.toUtf8().constData();
+
+
+    QRcode *code = QRcode_encodeString(uri.toUtf8().constData(), 0, 
QR_ECLEVEL_L, QR_MODE_8, 1);
+    QImage myImage = QImage(code->width + 2, code->width + 2, 
QImage::Format_RGB32);
+    myImage.fill(0xffffff);
+    unsigned char *p = code->data;
+    for(int y = 0; y < code->width; y++) {
+        for(int x = 0; x < code->width; x++) {
+            myImage.setPixel(x + 1, y + 1, ((*p & 1) ? 0x0 : 0xffffff));
+            p++;
+        }
+    }
+
+
+    QRcode_free(code);
+
+    return myImage;
+}
+
+void Helpers::saveQrAsFile(QString path)
+{
+
+    QImage image = convertQrToImage(theApp->identity()->url());
+
+    int width = 200;
+    int height = 200;
+
+
+    QSize size = QSize(width, height);
+
+    QImage scaledImage = image.scaled(size);
+
+    if(!scaledImage.save(path))
+    {
+        qDebug() << "Fail saving QR code";
+    }
+}
+
+
+
+QString Helpers::importLocation() const
+{
+    QString imageLocation = 
QStandardPaths::writableLocation(QStandardPaths::TempLocation);
+
+    return  imageLocation + "/tempQrImage.jpg";
+}
+
+
+bool Helpers::removeTemp()
+{
+    const char* location = importLocation().toUtf8();
+    if(QFile::remove(location) != true ) {
+        qWarning() << "Error deleting temporary image";
+    }
+    return 0;
+}

Modified: gnunet-qt/secushare/utils/helpers.h
===================================================================
--- gnunet-qt/secushare/utils/helpers.h 2015-11-12 18:30:33 UTC (rev 36654)
+++ gnunet-qt/secushare/utils/helpers.h 2015-11-12 18:30:37 UTC (rev 36655)
@@ -1,24 +1,24 @@
-#ifndef HELPERS_H
-#define HELPERS_H
-
-#include <QObject>
-#include <QImage>
-
-class Helpers : public QObject
-{
-    Q_OBJECT
-public:
-    explicit Helpers(QObject *parent = 0);
-
-    Q_INVOKABLE QImage convertQmlToImage(const QString &path);
-    Q_INVOKABLE QString importLocation() const;
-    Q_INVOKABLE bool removeTemp();
-    QImage convertQrToImage(QString str);
-    Q_INVOKABLE void saveQrAsFile(QString path);
-signals:
-
-public slots:
-
-};
-
-#endif // HELPERS_H
+#ifndef HELPERS_H
+#define HELPERS_H
+
+#include <QObject>
+#include <QImage>
+
+class Helpers : public QObject
+{
+    Q_OBJECT
+public:
+    explicit Helpers(QObject *parent = 0);
+
+    Q_INVOKABLE QImage convertQmlToImage(const QString &path);
+    Q_INVOKABLE QString importLocation() const;
+    Q_INVOKABLE bool removeTemp();
+    QImage convertQrToImage(QString str);
+    Q_INVOKABLE void saveQrAsFile(QString path);
+signals:
+
+public slots:
+
+};
+
+#endif // HELPERS_H

Modified: gnunet-qt/secushare/utils/qrimageprovider.cpp
===================================================================
--- gnunet-qt/secushare/utils/qrimageprovider.cpp       2015-11-12 18:30:33 UTC 
(rev 36654)
+++ gnunet-qt/secushare/utils/qrimageprovider.cpp       2015-11-12 18:30:37 UTC 
(rev 36655)
@@ -1,28 +1,28 @@
-#include "qrimageprovider.h"
-#include "core/psyccore.h"
-#include "core/identity/identity.h"
-
-#include "utils/helpers.h"
-
-#include <QImage>
-
-QrImageProvider::QrImageProvider(): 
QQuickImageProvider(QQuickImageProvider::Image)
-{
-}
-
-QImage QrImageProvider::requestImage(const QString &id, QSize *size, const 
QSize& requestedSize)
-{
-
-    QImage image = 
theApp->helpers()->convertQrToImage(theApp->identity()->url());
-
-    int width = 200;
-    int height = 200;
-
-
-    if (size)
-         *size = QSize(width, height);
-
-    QImage scaledImage = image.scaled(*size);
-
-    return scaledImage;
-}
+#include "qrimageprovider.h"
+#include "core/psyccore.h"
+#include "core/identity/identity.h"
+
+#include "utils/helpers.h"
+
+#include <QImage>
+
+QrImageProvider::QrImageProvider(): 
QQuickImageProvider(QQuickImageProvider::Image)
+{
+}
+
+QImage QrImageProvider::requestImage(const QString &id, QSize *size, const 
QSize& requestedSize)
+{
+
+    QImage image = 
theApp->helpers()->convertQrToImage(theApp->identity()->url());
+
+    int width = 200;
+    int height = 200;
+
+
+    if (size)
+         *size = QSize(width, height);
+
+    QImage scaledImage = image.scaled(*size);
+
+    return scaledImage;
+}

Modified: gnunet-qt/secushare/utils/qrimageprovider.h
===================================================================
--- gnunet-qt/secushare/utils/qrimageprovider.h 2015-11-12 18:30:33 UTC (rev 
36654)
+++ gnunet-qt/secushare/utils/qrimageprovider.h 2015-11-12 18:30:37 UTC (rev 
36655)
@@ -1,19 +1,19 @@
-#ifndef QRIMAGEPROVIDER_H
-#define QRIMAGEPROVIDER_H
-
-
-#include <QQuickImageProvider>
-
-class QrImageProvider : public QQuickImageProvider
-{
-public:
-    explicit QrImageProvider();
-
-    virtual QImage requestImage(const QString &id, QSize *size, const QSize& 
requestedSize);
-signals:
-
-public slots:
-
-};
-
-#endif // QRIMAGEPROVIDER_H
+#ifndef QRIMAGEPROVIDER_H
+#define QRIMAGEPROVIDER_H
+
+
+#include <QQuickImageProvider>
+
+class QrImageProvider : public QQuickImageProvider
+{
+public:
+    explicit QrImageProvider();
+
+    virtual QImage requestImage(const QString &id, QSize *size, const QSize& 
requestedSize);
+signals:
+
+public slots:
+
+};
+
+#endif // QRIMAGEPROVIDER_H




reply via email to

[Prev in Thread] Current Thread [Next in Thread]