gnunet-svn
[Top][All Lists]
Advanced

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

[GNUnet-SVN] r36382 - in gnunet-qt: . SecureShare SecureShare/assets Sec


From: gnunet
Subject: [GNUnet-SVN] r36382 - in gnunet-qt: . SecureShare SecureShare/assets SecureShare/core SecureShare/core/gnunet SecureShare/core/identity SecureShare/core/social SecureShare/models SecureShare/preferences SecureShare/qml SecureShare/qml/fonts SecureShare/qml/images SecureShare/qml/images/demo SecureShare/qml/images/status SecureShare/utils secushare secushare/assets secushare/core secushare/core/gnunet secushare/core/identity secushare/core/social secushare/models secushare/preferences secushare/qml secushare/qml/fonts secushare/qml/images secushare/qml/images/demo secushare/qml/images/status secushare/utils
Date: Mon, 28 Sep 2015 19:40:08 +0200

Author: tg
Date: 2015-09-28 19:40:08 +0200 (Mon, 28 Sep 2015)
New Revision: 36382

Added:
   gnunet-qt/secushare/
   gnunet-qt/secushare/assets/
   gnunet-qt/secushare/assets/banner.png
   gnunet-qt/secushare/assets/icon.ico
   gnunet-qt/secushare/assets/icon.png
   gnunet-qt/secushare/core/
   gnunet-qt/secushare/core/gnunet/
   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/
   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/
   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/
   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/
   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.qrc
   gnunet-qt/secushare/qml/
   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/fonts/
   gnunet-qt/secushare/qml/fonts/BebasNeue.otf
   gnunet-qt/secushare/qml/fonts/Ubuntu-B.ttf
   gnunet-qt/secushare/qml/fonts/Ubuntu-BI.ttf
   gnunet-qt/secushare/qml/fonts/Ubuntu-L.ttf
   gnunet-qt/secushare/qml/fonts/Ubuntu-R.ttf
   gnunet-qt/secushare/qml/images/
   gnunet-qt/secushare/qml/images/add.png
   gnunet-qt/secushare/qml/images/button_default.png
   gnunet-qt/secushare/qml/images/button_pressed.png
   gnunet-qt/secushare/qml/images/chat.png
   gnunet-qt/secushare/qml/images/contact.png
   gnunet-qt/secushare/qml/images/contact_dark.png
   gnunet-qt/secushare/qml/images/create_room.png
   gnunet-qt/secushare/qml/images/demo/
   gnunet-qt/secushare/qml/images/demo/Conffeti-background.jpg
   gnunet-qt/secushare/qml/images/demo/arp.jpg
   gnunet-qt/secushare/qml/images/demo/baila.jpg
   gnunet-qt/secushare/qml/images/demo/brazil.png
   gnunet-qt/secushare/qml/images/demo/doll.jpg
   gnunet-qt/secushare/qml/images/demo/gnunet.png
   gnunet-qt/secushare/qml/images/demo/lynX.jpg
   gnunet-qt/secushare/qml/images/demo/popcorn-background.jpg
   gnunet-qt/secushare/qml/images/demo/secushare.png
   gnunet-qt/secushare/qml/images/demo/ubuntu-wallpaper.jpg
   gnunet-qt/secushare/qml/images/email.png
   gnunet-qt/secushare/qml/images/enter.png
   gnunet-qt/secushare/qml/images/group.png
   gnunet-qt/secushare/qml/images/group_dark.png
   gnunet-qt/secushare/qml/images/home.png
   gnunet-qt/secushare/qml/images/join.png
   gnunet-qt/secushare/qml/images/location.png
   gnunet-qt/secushare/qml/images/logo.png
   gnunet-qt/secushare/qml/images/new.png
   gnunet-qt/secushare/qml/images/person.png
   gnunet-qt/secushare/qml/images/phone.png
   gnunet-qt/secushare/qml/images/send.png
   gnunet-qt/secushare/qml/images/settings.png
   gnunet-qt/secushare/qml/images/settings_dark.png
   gnunet-qt/secushare/qml/images/share.png
   gnunet-qt/secushare/qml/images/status/
   gnunet-qt/secushare/qml/images/status/dot_away.png
   gnunet-qt/secushare/qml/images/status/dot_busy.png
   gnunet-qt/secushare/qml/images/status/dot_idle.png
   gnunet-qt/secushare/qml/images/status/dot_online.png
   gnunet-qt/secushare/qml/images/thread.png
   gnunet-qt/secushare/qml/images/threadChat.png
   gnunet-qt/secushare/qml/images/thread_dark.png
   gnunet-qt/secushare/qml/images/transfer.png
   gnunet-qt/secushare/qml/main.qml
   gnunet-qt/secushare/readme
   gnunet-qt/secushare/secushare.pro
   gnunet-qt/secushare/utils/
   gnunet-qt/secushare/utils/helpers.cpp
   gnunet-qt/secushare/utils/helpers.h
   gnunet-qt/secushare/utils/qrimageprovider.cpp
   gnunet-qt/secushare/utils/qrimageprovider.h
Removed:
   gnunet-qt/SecureShare/SecureShare.pro
   gnunet-qt/SecureShare/assets/banner.png
   gnunet-qt/SecureShare/assets/icon.ico
   gnunet-qt/SecureShare/assets/icon.png
   gnunet-qt/SecureShare/core/gnunet/gnunet.cpp
   gnunet-qt/SecureShare/core/gnunet/gnunet.h
   gnunet-qt/SecureShare/core/gnunet/gnunet_includes.h
   gnunet-qt/SecureShare/core/identity/identity.cpp
   gnunet-qt/SecureShare/core/identity/identity.h
   gnunet-qt/SecureShare/core/identity/identityService.cpp
   gnunet-qt/SecureShare/core/identity/identityService.h
   gnunet-qt/SecureShare/core/psyccore.cpp
   gnunet-qt/SecureShare/core/psyccore.h
   gnunet-qt/SecureShare/core/social/place.cpp
   gnunet-qt/SecureShare/core/social/place.h
   gnunet-qt/SecureShare/core/social/socialservice.cpp
   gnunet-qt/SecureShare/core/social/socialservice.h
   gnunet-qt/SecureShare/deployment.pri
   gnunet-qt/SecureShare/main.cpp
   gnunet-qt/SecureShare/models/IdentityModel.cpp
   gnunet-qt/SecureShare/models/IdentityModel.h
   gnunet-qt/SecureShare/models/PlacesModel.cpp
   gnunet-qt/SecureShare/models/PlacesModel.h
   gnunet-qt/SecureShare/models/models.cpp
   gnunet-qt/SecureShare/models/models.h
   gnunet-qt/SecureShare/preferences/preferences.cpp
   gnunet-qt/SecureShare/preferences/preferences.h
   gnunet-qt/SecureShare/psyc.cpp
   gnunet-qt/SecureShare/psyc.h
   gnunet-qt/SecureShare/qml.qrc
   gnunet-qt/SecureShare/qml/About.qml
   gnunet-qt/SecureShare/qml/ConversationWindow.qml
   gnunet-qt/SecureShare/qml/CreateRoom.qml
   gnunet-qt/SecureShare/qml/ExportEgo.qml
   gnunet-qt/SecureShare/qml/GroupConversation.qml
   gnunet-qt/SecureShare/qml/ImportEgo.qml
   gnunet-qt/SecureShare/qml/JoinRoom.qml
   gnunet-qt/SecureShare/qml/NewEgo.qml
   gnunet-qt/SecureShare/qml/Profile.qml
   gnunet-qt/SecureShare/qml/QrReader.qml
   gnunet-qt/SecureShare/qml/Settings.qml
   gnunet-qt/SecureShare/qml/SingleConversation.qml
   gnunet-qt/SecureShare/qml/Splash.qml
   gnunet-qt/SecureShare/qml/ThreadChat.qml
   gnunet-qt/SecureShare/qml/fonts/BebasNeue.otf
   gnunet-qt/SecureShare/qml/fonts/Ubuntu-B.ttf
   gnunet-qt/SecureShare/qml/fonts/Ubuntu-BI.ttf
   gnunet-qt/SecureShare/qml/fonts/Ubuntu-L.ttf
   gnunet-qt/SecureShare/qml/fonts/Ubuntu-R.ttf
   gnunet-qt/SecureShare/qml/images/add.png
   gnunet-qt/SecureShare/qml/images/button_default.png
   gnunet-qt/SecureShare/qml/images/button_pressed.png
   gnunet-qt/SecureShare/qml/images/chat.png
   gnunet-qt/SecureShare/qml/images/contact.png
   gnunet-qt/SecureShare/qml/images/contact_dark.png
   gnunet-qt/SecureShare/qml/images/create_room.png
   gnunet-qt/SecureShare/qml/images/demo/Conffeti-background.jpg
   gnunet-qt/SecureShare/qml/images/demo/arp.jpg
   gnunet-qt/SecureShare/qml/images/demo/baila.jpg
   gnunet-qt/SecureShare/qml/images/demo/brazil.png
   gnunet-qt/SecureShare/qml/images/demo/doll.jpg
   gnunet-qt/SecureShare/qml/images/demo/gnunet.png
   gnunet-qt/SecureShare/qml/images/demo/lynX.jpg
   gnunet-qt/SecureShare/qml/images/demo/popcorn-background.jpg
   gnunet-qt/SecureShare/qml/images/demo/secushare.png
   gnunet-qt/SecureShare/qml/images/demo/ubuntu-wallpaper.jpg
   gnunet-qt/SecureShare/qml/images/email.png
   gnunet-qt/SecureShare/qml/images/enter.png
   gnunet-qt/SecureShare/qml/images/group.png
   gnunet-qt/SecureShare/qml/images/group_dark.png
   gnunet-qt/SecureShare/qml/images/home.png
   gnunet-qt/SecureShare/qml/images/join.png
   gnunet-qt/SecureShare/qml/images/location.png
   gnunet-qt/SecureShare/qml/images/logo.png
   gnunet-qt/SecureShare/qml/images/new.png
   gnunet-qt/SecureShare/qml/images/person.png
   gnunet-qt/SecureShare/qml/images/phone.png
   gnunet-qt/SecureShare/qml/images/send.png
   gnunet-qt/SecureShare/qml/images/settings.png
   gnunet-qt/SecureShare/qml/images/settings_dark.png
   gnunet-qt/SecureShare/qml/images/share.png
   gnunet-qt/SecureShare/qml/images/status/dot_away.png
   gnunet-qt/SecureShare/qml/images/status/dot_busy.png
   gnunet-qt/SecureShare/qml/images/status/dot_idle.png
   gnunet-qt/SecureShare/qml/images/status/dot_online.png
   gnunet-qt/SecureShare/qml/images/thread.png
   gnunet-qt/SecureShare/qml/images/threadChat.png
   gnunet-qt/SecureShare/qml/images/thread_dark.png
   gnunet-qt/SecureShare/qml/images/transfer.png
   gnunet-qt/SecureShare/qml/main.qml
   gnunet-qt/SecureShare/readme
   gnunet-qt/SecureShare/utils/helpers.cpp
   gnunet-qt/SecureShare/utils/helpers.h
   gnunet-qt/SecureShare/utils/qrimageprovider.cpp
   gnunet-qt/SecureShare/utils/qrimageprovider.h
Log:
mv

Deleted: gnunet-qt/SecureShare/SecureShare.pro
===================================================================
--- gnunet-qt/SecureShare/SecureShare.pro       2015-09-28 13:22:21 UTC (rev 
36381)
+++ gnunet-qt/SecureShare/SecureShare.pro       2015-09-28 17:40:08 UTC (rev 
36382)
@@ -1,50 +0,0 @@
-TEMPLATE = app
-
-QT += qml quick widgets
-
-LIBS += -lgnunetutil -lgnunetcore -lgnunetidentity -lgnunetarm -lgnunetsocial 
-lgnunetenv -lgnunetpsycutil -lgnunetfriends -lextractor -lqrencode
-
-
-
-
-
-#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

Deleted: gnunet-qt/SecureShare/assets/banner.png
===================================================================
(Binary files differ)

Deleted: gnunet-qt/SecureShare/assets/icon.ico
===================================================================
(Binary files differ)

Deleted: gnunet-qt/SecureShare/assets/icon.png
===================================================================
(Binary files differ)

Deleted: gnunet-qt/SecureShare/core/gnunet/gnunet.cpp
===================================================================
--- gnunet-qt/SecureShare/core/gnunet/gnunet.cpp        2015-09-28 13:22:21 UTC 
(rev 36381)
+++ gnunet-qt/SecureShare/core/gnunet/gnunet.cpp        2015-09-28 17:40:08 UTC 
(rev 36382)
@@ -1,215 +0,0 @@
-/*
-     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 "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
-    };
-
-
-    /*
-    QString gnunetConfig = thePrefs->getGNUNetConfig();
-    QByteArray byteArray = gnunetConfig.toUtf8();
-    const char* cString = byteArray.constData();
-*/
-
-    const char *const argv[] = {
-        "SecureShare",
-        // "-c", cString,
-        NULL
-    };
-
-    GNUNET_PROGRAM_run ((sizeof (argv) / sizeof (char *)) - 1,(char 
*const*)argv,
-                        "SecureShare", "SecureShare 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;
-}
-

Deleted: gnunet-qt/SecureShare/core/gnunet/gnunet.h
===================================================================
--- gnunet-qt/SecureShare/core/gnunet/gnunet.h  2015-09-28 13:22:21 UTC (rev 
36381)
+++ gnunet-qt/SecureShare/core/gnunet/gnunet.h  2015-09-28 17:40:08 UTC (rev 
36382)
@@ -1,165 +0,0 @@
-/*
-     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

Deleted: gnunet-qt/SecureShare/core/gnunet/gnunet_includes.h
===================================================================
--- gnunet-qt/SecureShare/core/gnunet/gnunet_includes.h 2015-09-28 13:22:21 UTC 
(rev 36381)
+++ gnunet-qt/SecureShare/core/gnunet/gnunet_includes.h 2015-09-28 17:40:08 UTC 
(rev 36382)
@@ -1,49 +0,0 @@
-/*
-     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

Deleted: gnunet-qt/SecureShare/core/identity/identity.cpp
===================================================================
--- gnunet-qt/SecureShare/core/identity/identity.cpp    2015-09-28 13:22:21 UTC 
(rev 36381)
+++ gnunet-qt/SecureShare/core/identity/identity.cpp    2015-09-28 17:40:08 UTC 
(rev 36382)
@@ -1,7 +0,0 @@
-#include "identity.h"
-
-Identity::Identity(QString key, QObject *parent) :
-    QObject(parent)
-{
-     m_key = key;
-}

Deleted: gnunet-qt/SecureShare/core/identity/identity.h
===================================================================
--- gnunet-qt/SecureShare/core/identity/identity.h      2015-09-28 13:22:21 UTC 
(rev 36381)
+++ gnunet-qt/SecureShare/core/identity/identity.h      2015-09-28 17:40:08 UTC 
(rev 36382)
@@ -1,59 +0,0 @@
-#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

Deleted: gnunet-qt/SecureShare/core/identity/identityService.cpp
===================================================================
--- gnunet-qt/SecureShare/core/identity/identityService.cpp     2015-09-28 
13:22:21 UTC (rev 36381)
+++ gnunet-qt/SecureShare/core/identity/identityService.cpp     2015-09-28 
17:40:08 UTC (rev 36382)
@@ -1,132 +0,0 @@
-#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);
-    }
-
-}

Deleted: gnunet-qt/SecureShare/core/identity/identityService.h
===================================================================
--- gnunet-qt/SecureShare/core/identity/identityService.h       2015-09-28 
13:22:21 UTC (rev 36381)
+++ gnunet-qt/SecureShare/core/identity/identityService.h       2015-09-28 
17:40:08 UTC (rev 36382)
@@ -1,33 +0,0 @@
-#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

Deleted: gnunet-qt/SecureShare/core/psyccore.cpp
===================================================================
--- gnunet-qt/SecureShare/core/psyccore.cpp     2015-09-28 13:22:21 UTC (rev 
36381)
+++ gnunet-qt/SecureShare/core/psyccore.cpp     2015-09-28 17:40:08 UTC (rev 
36382)
@@ -1,149 +0,0 @@
-#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);
-
-    }
-
-
-}

Deleted: gnunet-qt/SecureShare/core/psyccore.h
===================================================================
--- gnunet-qt/SecureShare/core/psyccore.h       2015-09-28 13:22:21 UTC (rev 
36381)
+++ gnunet-qt/SecureShare/core/psyccore.h       2015-09-28 17:40:08 UTC (rev 
36382)
@@ -1,89 +0,0 @@
-#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

Deleted: gnunet-qt/SecureShare/core/social/place.cpp
===================================================================
--- gnunet-qt/SecureShare/core/social/place.cpp 2015-09-28 13:22:21 UTC (rev 
36381)
+++ gnunet-qt/SecureShare/core/social/place.cpp 2015-09-28 17:40:08 UTC (rev 
36382)
@@ -1,90 +0,0 @@
-#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);
-}

Deleted: gnunet-qt/SecureShare/core/social/place.h
===================================================================
--- gnunet-qt/SecureShare/core/social/place.h   2015-09-28 13:22:21 UTC (rev 
36381)
+++ gnunet-qt/SecureShare/core/social/place.h   2015-09-28 17:40:08 UTC (rev 
36382)
@@ -1,154 +0,0 @@
-#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

Deleted: gnunet-qt/SecureShare/core/social/socialservice.cpp
===================================================================
--- gnunet-qt/SecureShare/core/social/socialservice.cpp 2015-09-28 13:22:21 UTC 
(rev 36381)
+++ gnunet-qt/SecureShare/core/social/socialservice.cpp 2015-09-28 17:40:08 UTC 
(rev 36382)
@@ -1,552 +0,0 @@
-#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_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_PSYC_MessageModifier *mod,
-                                         uint64_t message_id,
-                                         enum GNUNET_ENV_Operator oper,
-                                         const char *name,
-                                         const void *value,
-                                         uint16_t 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,
-                                     struct GNUNET_SOCIAL_Nym *nym,
-                                     struct GNUNET_ENV_Environment *env,
-                                     size_t variable_count,
-                                     struct GNUNET_ENV_Modifier *variables)
-{
-    // FIXME: this function is not called yet
-
-    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_resp)
-{
-    GNUNET_log (GNUNET_ERROR_TYPE_WARNING,
-                "Guest received entry decision: %d.\n",
-                is_admitted);
-
-    if (NULL != entry_resp)
-    {
-        struct GNUNET_ENV_Environment *env = GNUNET_ENV_environment_create ();
-        const char *method_name = NULL;
-        const void *data = NULL;
-        uint16_t data_size = 0;
-        GNUNET_PSYC_message_parse (entry_resp, &method_name, env, &data, 
&data_size);
-
-        GNUNET_log (GNUNET_ERROR_TYPE_DEBUG,
-                    "%s\n%.*s\n",
-                    method_name, data_size, data);
-        /* 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_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;
-    }
-    if (0 == tmit->data_count)
-    {
-        *data_size = 0;
-        return GNUNET_YES;
-    }
-
-    uint16_t size = strlen (tmit->data[tmit->n]) + 1;
-    GNUNET_log (GNUNET_ERROR_TYPE_WARNING,
-                "Transmit notify data: %u bytes available, "
-                "processing fragment %u/%u (size %u).\n",
-                *data_size, tmit->n + 1, tmit->data_count, size);
-    if (*data_size < size)
-    {
-        *data_size = 0;
-        //GNUNET_assert (0);
-        return GNUNET_SYSERR;
-    }
-
-   /*if (GNUNET_YES != tmit->paused && 0 < tmit->data_delay[tmit->n])
-    {
-        GNUNET_log (GNUNET_ERROR_TYPE_WARNING, "Transmission paused.\n");
-        tmit->paused = GNUNET_YES;
-        GNUNET_SCHEDULER_add_delayed (
-                    GNUNET_TIME_relative_multiply (GNUNET_TIME_UNIT_SECONDS,
-                                                   tmit->data_delay[tmit->n]),
-                &transmit_resume, tmit);
-        *data_size = 0;
-        return GNUNET_NO;
-    }*/
-    tmit->paused = GNUNET_NO;
-
-    *data_size = size;
-    memcpy (data, tmit->data[tmit->n], size);
-
-    return ++tmit->n < tmit->data_count ? GNUNET_NO : GNUNET_YES;
-}
-
-void
-SocialService::guestTalk (Place* place, QString text)
-{
-
-    TransmitClosure* tmit = new TransmitClosure;
-
-
-
-    tmit->env = NULL;
-
-    /*
-    tmit->data[0] = "zzz xxx yyy";
-    tmit->data[1] = "zyx wvu tsr qpo";
-    tmit->data[2] = "testing ten nine eight";
-    tmit->data_count = 3;*/
-
-    std::string stdText = text.toStdString();
-
-    tmit->data[0] = new char[stdText.size()+1];
-    //tmit->data[1] = new char[1];
-    tmit->data[1] = "";
-
-    strcpy( tmit->data[0], stdText.c_str() );
-    //strcpy( tmit->data[1], stdText.c_str() );
-
-    tmit->data_count = 2;
-
-
-    place->addConversation(text);
-
-
-    tmit->guest_talk
-            = GNUNET_SOCIAL_guest_talk (place->socialGuest(), 
"_message_guest", NULL,
-                                        &notify_data, tmit,
-                                        GNUNET_SOCIAL_TALK_NONE);
-
-}
-
-void
-SocialService::hostTalk(Place* place, QString text)
-{
-
-  TransmitClosure* tmit = new TransmitClosure();
-  tmit->env = NULL;
-
-  /*
-  tmit->data[0] = "aaa bbb ccc";
-  tmit->data[1] = "abc def ghi jkl";
-  tmit->data[2] = "testing one two three";
-  tmit->data[3] = "four five";
-  tmit->data_count = 4;*/
-
-
-  std::string stdText = text.toStdString();
-
-
-
-  tmit->data[0] = new char[stdText.size()+1];
-  //tmit->data[1] = new char[1];
-  tmit->data[1] = "";
-
-  strcpy( tmit->data[0], stdText.c_str() );
-  //strcpy( tmit->data[1], stdText.c_str() );
-
-  tmit->data_count = 2;
-
-  tmit->host_ann
-    = GNUNET_SOCIAL_host_announce (place->host(), "_message_host", tmit->env,
-                                   &notify_data, tmit,
-                                   GNUNET_SOCIAL_ANNOUNCE_NONE);
-}

Deleted: gnunet-qt/SecureShare/core/social/socialservice.h
===================================================================
--- gnunet-qt/SecureShare/core/social/socialservice.h   2015-09-28 13:22:21 UTC 
(rev 36381)
+++ gnunet-qt/SecureShare/core/social/socialservice.h   2015-09-28 17:40:08 UTC 
(rev 36382)
@@ -1,122 +0,0 @@
-#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;
-  char *data[16];
-  uint8_t data_delay[16];
-  uint8_t data_count;
-  uint8_t paused;
-  uint8_t n;
-} 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_PSYC_MessageModifier *mod,
-                        uint64_t message_id,
-                        enum GNUNET_ENV_Operator oper,
-                        const char *name,
-                        const void *value,
-                        uint16_t 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,
-                   struct GNUNET_SOCIAL_Nym *nym,
-                   struct GNUNET_ENV_Environment *env,
-                   size_t variable_count,
-                          struct GNUNET_ENV_Modifier *variables);
-
-
-    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

Deleted: gnunet-qt/SecureShare/deployment.pri
===================================================================
--- gnunet-qt/SecureShare/deployment.pri        2015-09-28 13:22:21 UTC (rev 
36381)
+++ gnunet-qt/SecureShare/deployment.pri        2015-09-28 17:40:08 UTC (rev 
36382)
@@ -1,27 +0,0 @@
-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 = /opt/$${TARGET}/bin
-        }
-        export(target.path)
-    }
-    INSTALLS += target
-}
-
-export(INSTALLS)

Deleted: gnunet-qt/SecureShare/main.cpp
===================================================================
--- gnunet-qt/SecureShare/main.cpp      2015-09-28 13:22:21 UTC (rev 36381)
+++ gnunet-qt/SecureShare/main.cpp      2015-09-28 17:40:08 UTC (rev 36382)
@@ -1,52 +0,0 @@
-#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("SecureShare 1.0"));
-    theWindow->setIcon(QIcon(":/assets/icon.ico"));
-
-
-    theWindow->show();
-
-
-
-    return app.exec();
-
-
-
-
-
-}

Deleted: gnunet-qt/SecureShare/models/IdentityModel.cpp
===================================================================
--- gnunet-qt/SecureShare/models/IdentityModel.cpp      2015-09-28 13:22:21 UTC 
(rev 36381)
+++ gnunet-qt/SecureShare/models/IdentityModel.cpp      2015-09-28 17:40:08 UTC 
(rev 36382)
@@ -1,181 +0,0 @@
-/*
-     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();
-}
-
-
-
-

Deleted: gnunet-qt/SecureShare/models/IdentityModel.h
===================================================================
--- gnunet-qt/SecureShare/models/IdentityModel.h        2015-09-28 13:22:21 UTC 
(rev 36381)
+++ gnunet-qt/SecureShare/models/IdentityModel.h        2015-09-28 17:40:08 UTC 
(rev 36382)
@@ -1,72 +0,0 @@
-/*
-     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

Deleted: gnunet-qt/SecureShare/models/PlacesModel.cpp
===================================================================
--- gnunet-qt/SecureShare/models/PlacesModel.cpp        2015-09-28 13:22:21 UTC 
(rev 36381)
+++ gnunet-qt/SecureShare/models/PlacesModel.cpp        2015-09-28 17:40:08 UTC 
(rev 36382)
@@ -1,249 +0,0 @@
-/*
-     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();
-}
-
-
-
-
-

Deleted: gnunet-qt/SecureShare/models/PlacesModel.h
===================================================================
--- gnunet-qt/SecureShare/models/PlacesModel.h  2015-09-28 13:22:21 UTC (rev 
36381)
+++ gnunet-qt/SecureShare/models/PlacesModel.h  2015-09-28 17:40:08 UTC (rev 
36382)
@@ -1,75 +0,0 @@
-/*
-     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

Deleted: gnunet-qt/SecureShare/models/models.cpp
===================================================================
--- gnunet-qt/SecureShare/models/models.cpp     2015-09-28 13:22:21 UTC (rev 
36381)
+++ gnunet-qt/SecureShare/models/models.cpp     2015-09-28 17:40:08 UTC (rev 
36382)
@@ -1,49 +0,0 @@
-/**************************************************************************
-** 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");*/
-
-}

Deleted: gnunet-qt/SecureShare/models/models.h
===================================================================
--- gnunet-qt/SecureShare/models/models.h       2015-09-28 13:22:21 UTC (rev 
36381)
+++ gnunet-qt/SecureShare/models/models.h       2015-09-28 17:40:08 UTC (rev 
36382)
@@ -1,60 +0,0 @@
-/**************************************************************************
-** 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
-
-

Deleted: gnunet-qt/SecureShare/preferences/preferences.cpp
===================================================================
--- gnunet-qt/SecureShare/preferences/preferences.cpp   2015-09-28 13:22:21 UTC 
(rev 36381)
+++ gnunet-qt/SecureShare/preferences/preferences.cpp   2015-09-28 17:40:08 UTC 
(rev 36382)
@@ -1,65 +0,0 @@
-/*
-     This file is part of PYSC
-     (C) 2014 Bruno Cabral (and other contributing authors)
-     
-     PYSC 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.
-     
-     PYSC 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,"PYSC","PYSC", 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 + iden->name();
-}
-
-
-
-
-
-
-

Deleted: gnunet-qt/SecureShare/preferences/preferences.h
===================================================================
--- gnunet-qt/SecureShare/preferences/preferences.h     2015-09-28 13:22:21 UTC 
(rev 36381)
+++ gnunet-qt/SecureShare/preferences/preferences.h     2015-09-28 17:40:08 UTC 
(rev 36382)
@@ -1,142 +0,0 @@
-/*
-     This file is part of PYSC
-     (C) 2014 Bruno Cabral (and other contributing authors)
-     
-     PYSC 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

Deleted: gnunet-qt/SecureShare/psyc.cpp
===================================================================
--- gnunet-qt/SecureShare/psyc.cpp      2015-09-28 13:22:21 UTC (rev 36381)
+++ gnunet-qt/SecureShare/psyc.cpp      2015-09-28 17:40:08 UTC (rev 36382)
@@ -1,92 +0,0 @@
-#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());
-
-
-}

Deleted: gnunet-qt/SecureShare/psyc.h
===================================================================
--- gnunet-qt/SecureShare/psyc.h        2015-09-28 13:22:21 UTC (rev 36381)
+++ gnunet-qt/SecureShare/psyc.h        2015-09-28 17:40:08 UTC (rev 36382)
@@ -1,27 +0,0 @@
-#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

Deleted: gnunet-qt/SecureShare/qml/About.qml
===================================================================
--- gnunet-qt/SecureShare/qml/About.qml 2015-09-28 13:22:21 UTC (rev 36381)
+++ gnunet-qt/SecureShare/qml/About.qml 2015-09-28 17:40:08 UTC (rev 36382)
@@ -1,40 +0,0 @@
-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();
-            }
-        }
-    }
-
-}
-
-
-

Deleted: gnunet-qt/SecureShare/qml/ConversationWindow.qml
===================================================================
--- gnunet-qt/SecureShare/qml/ConversationWindow.qml    2015-09-28 13:22:21 UTC 
(rev 36381)
+++ gnunet-qt/SecureShare/qml/ConversationWindow.qml    2015-09-28 17:40:08 UTC 
(rev 36382)
@@ -1,64 +0,0 @@
-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" }
-            }
-
-
-    }
-
-
-}

Deleted: gnunet-qt/SecureShare/qml/CreateRoom.qml
===================================================================
--- gnunet-qt/SecureShare/qml/CreateRoom.qml    2015-09-28 13:22:21 UTC (rev 
36381)
+++ gnunet-qt/SecureShare/qml/CreateRoom.qml    2015-09-28 17:40:08 UTC (rev 
36382)
@@ -1,189 +0,0 @@
-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)
-                }
-            }
-        }
-    }
-
-}

Deleted: gnunet-qt/SecureShare/qml/ExportEgo.qml
===================================================================
--- gnunet-qt/SecureShare/qml/ExportEgo.qml     2015-09-28 13:22:21 UTC (rev 
36381)
+++ gnunet-qt/SecureShare/qml/ExportEgo.qml     2015-09-28 17:40:08 UTC (rev 
36382)
@@ -1,89 +0,0 @@
-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();
-                }
-            }
-        }
-    }
-
-}

Deleted: gnunet-qt/SecureShare/qml/GroupConversation.qml
===================================================================
--- gnunet-qt/SecureShare/qml/GroupConversation.qml     2015-09-28 13:22:21 UTC 
(rev 36381)
+++ gnunet-qt/SecureShare/qml/GroupConversation.qml     2015-09-28 17:40:08 UTC 
(rev 36382)
@@ -1,203 +0,0 @@
-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
-                            }
-                        }
-                    }
-                }
-            }
-        }
-
-
-
-    }
-}

Deleted: gnunet-qt/SecureShare/qml/ImportEgo.qml
===================================================================
--- gnunet-qt/SecureShare/qml/ImportEgo.qml     2015-09-28 13:22:21 UTC (rev 
36381)
+++ gnunet-qt/SecureShare/qml/ImportEgo.qml     2015-09-28 17:40:08 UTC (rev 
36382)
@@ -1,95 +0,0 @@
-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();
-                }
-            }
-        }
-    }
-
-}

Deleted: gnunet-qt/SecureShare/qml/JoinRoom.qml
===================================================================
--- gnunet-qt/SecureShare/qml/JoinRoom.qml      2015-09-28 13:22:21 UTC (rev 
36381)
+++ gnunet-qt/SecureShare/qml/JoinRoom.qml      2015-09-28 17:40:08 UTC (rev 
36382)
@@ -1,228 +0,0 @@
-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")
-                }
-            }
-        }
-    }
-
-}

Deleted: gnunet-qt/SecureShare/qml/NewEgo.qml
===================================================================
--- gnunet-qt/SecureShare/qml/NewEgo.qml        2015-09-28 13:22:21 UTC (rev 
36381)
+++ gnunet-qt/SecureShare/qml/NewEgo.qml        2015-09-28 17:40:08 UTC (rev 
36382)
@@ -1,35 +0,0 @@
-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();
-            }
-        }
-    }
-
-}

Deleted: gnunet-qt/SecureShare/qml/Profile.qml
===================================================================
--- gnunet-qt/SecureShare/qml/Profile.qml       2015-09-28 13:22:21 UTC (rev 
36381)
+++ gnunet-qt/SecureShare/qml/Profile.qml       2015-09-28 17:40:08 UTC (rev 
36382)
@@ -1,529 +0,0 @@
-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
-                            }
-                        }
-
-                    }
-
-
-                }
-
-
-            }
-
-
-
-
-        }
-
-
-    }
-}

Deleted: gnunet-qt/SecureShare/qml/QrReader.qml
===================================================================
--- gnunet-qt/SecureShare/qml/QrReader.qml      2015-09-28 13:22:21 UTC (rev 
36381)
+++ gnunet-qt/SecureShare/qml/QrReader.qml      2015-09-28 17:40:08 UTC (rev 
36382)
@@ -1,97 +0,0 @@
-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());
-                    }
-                }
-        }
-
-
-}

Deleted: gnunet-qt/SecureShare/qml/Settings.qml
===================================================================
--- gnunet-qt/SecureShare/qml/Settings.qml      2015-09-28 13:22:21 UTC (rev 
36381)
+++ gnunet-qt/SecureShare/qml/Settings.qml      2015-09-28 17:40:08 UTC (rev 
36382)
@@ -1,134 +0,0 @@
-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
-                }
-
-            }
-
-        }
-    }
-
-
-
-
-}

Deleted: gnunet-qt/SecureShare/qml/SingleConversation.qml
===================================================================
--- gnunet-qt/SecureShare/qml/SingleConversation.qml    2015-09-28 13:22:21 UTC 
(rev 36381)
+++ gnunet-qt/SecureShare/qml/SingleConversation.qml    2015-09-28 17:40:08 UTC 
(rev 36382)
@@ -1,112 +0,0 @@
-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
-
-        }
-
-    }
-}

Deleted: gnunet-qt/SecureShare/qml/Splash.qml
===================================================================
--- gnunet-qt/SecureShare/qml/Splash.qml        2015-09-28 13:22:21 UTC (rev 
36381)
+++ gnunet-qt/SecureShare/qml/Splash.qml        2015-09-28 17:40:08 UTC (rev 
36382)
@@ -1,73 +0,0 @@
-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;
-            }
-        }
-
-    }
-
-
-}

Deleted: gnunet-qt/SecureShare/qml/ThreadChat.qml
===================================================================
--- gnunet-qt/SecureShare/qml/ThreadChat.qml    2015-09-28 13:22:21 UTC (rev 
36381)
+++ gnunet-qt/SecureShare/qml/ThreadChat.qml    2015-09-28 17:40:08 UTC (rev 
36382)
@@ -1,645 +0,0 @@
-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
-                    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
-                    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
-                    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
-                }
-
-
-
-            }
-        }
-
-
-
-
-    }
-
-
-}

Deleted: gnunet-qt/SecureShare/qml/fonts/BebasNeue.otf
===================================================================
(Binary files differ)

Deleted: gnunet-qt/SecureShare/qml/fonts/Ubuntu-B.ttf
===================================================================
(Binary files differ)

Deleted: gnunet-qt/SecureShare/qml/fonts/Ubuntu-BI.ttf
===================================================================
(Binary files differ)

Deleted: gnunet-qt/SecureShare/qml/fonts/Ubuntu-L.ttf
===================================================================
(Binary files differ)

Deleted: gnunet-qt/SecureShare/qml/fonts/Ubuntu-R.ttf
===================================================================
(Binary files differ)

Deleted: gnunet-qt/SecureShare/qml/images/add.png
===================================================================
(Binary files differ)

Deleted: gnunet-qt/SecureShare/qml/images/button_default.png
===================================================================
(Binary files differ)

Deleted: gnunet-qt/SecureShare/qml/images/button_pressed.png
===================================================================
(Binary files differ)

Deleted: gnunet-qt/SecureShare/qml/images/chat.png
===================================================================
(Binary files differ)

Deleted: gnunet-qt/SecureShare/qml/images/contact.png
===================================================================
(Binary files differ)

Deleted: gnunet-qt/SecureShare/qml/images/contact_dark.png
===================================================================
(Binary files differ)

Deleted: gnunet-qt/SecureShare/qml/images/create_room.png
===================================================================
(Binary files differ)

Deleted: gnunet-qt/SecureShare/qml/images/demo/Conffeti-background.jpg
===================================================================
(Binary files differ)

Deleted: gnunet-qt/SecureShare/qml/images/demo/arp.jpg
===================================================================
(Binary files differ)

Deleted: gnunet-qt/SecureShare/qml/images/demo/baila.jpg
===================================================================
(Binary files differ)

Deleted: gnunet-qt/SecureShare/qml/images/demo/brazil.png
===================================================================
(Binary files differ)

Deleted: gnunet-qt/SecureShare/qml/images/demo/doll.jpg
===================================================================
(Binary files differ)

Deleted: gnunet-qt/SecureShare/qml/images/demo/gnunet.png
===================================================================
(Binary files differ)

Deleted: gnunet-qt/SecureShare/qml/images/demo/lynX.jpg
===================================================================
(Binary files differ)

Deleted: gnunet-qt/SecureShare/qml/images/demo/popcorn-background.jpg
===================================================================
(Binary files differ)

Deleted: gnunet-qt/SecureShare/qml/images/demo/secushare.png
===================================================================
(Binary files differ)

Deleted: gnunet-qt/SecureShare/qml/images/demo/ubuntu-wallpaper.jpg
===================================================================
(Binary files differ)

Deleted: gnunet-qt/SecureShare/qml/images/email.png
===================================================================
(Binary files differ)

Deleted: gnunet-qt/SecureShare/qml/images/enter.png
===================================================================
(Binary files differ)

Deleted: gnunet-qt/SecureShare/qml/images/group.png
===================================================================
(Binary files differ)

Deleted: gnunet-qt/SecureShare/qml/images/group_dark.png
===================================================================
(Binary files differ)

Deleted: gnunet-qt/SecureShare/qml/images/home.png
===================================================================
(Binary files differ)

Deleted: gnunet-qt/SecureShare/qml/images/join.png
===================================================================
(Binary files differ)

Deleted: gnunet-qt/SecureShare/qml/images/location.png
===================================================================
(Binary files differ)

Deleted: gnunet-qt/SecureShare/qml/images/logo.png
===================================================================
(Binary files differ)

Deleted: gnunet-qt/SecureShare/qml/images/new.png
===================================================================
(Binary files differ)

Deleted: gnunet-qt/SecureShare/qml/images/person.png
===================================================================
(Binary files differ)

Deleted: gnunet-qt/SecureShare/qml/images/phone.png
===================================================================
(Binary files differ)

Deleted: gnunet-qt/SecureShare/qml/images/send.png
===================================================================
(Binary files differ)

Deleted: gnunet-qt/SecureShare/qml/images/settings.png
===================================================================
(Binary files differ)

Deleted: gnunet-qt/SecureShare/qml/images/settings_dark.png
===================================================================
(Binary files differ)

Deleted: gnunet-qt/SecureShare/qml/images/share.png
===================================================================
(Binary files differ)

Deleted: gnunet-qt/SecureShare/qml/images/status/dot_away.png
===================================================================
(Binary files differ)

Deleted: gnunet-qt/SecureShare/qml/images/status/dot_busy.png
===================================================================
(Binary files differ)

Deleted: gnunet-qt/SecureShare/qml/images/status/dot_idle.png
===================================================================
(Binary files differ)

Deleted: gnunet-qt/SecureShare/qml/images/status/dot_online.png
===================================================================
(Binary files differ)

Deleted: gnunet-qt/SecureShare/qml/images/thread.png
===================================================================
(Binary files differ)

Deleted: gnunet-qt/SecureShare/qml/images/threadChat.png
===================================================================
(Binary files differ)

Deleted: gnunet-qt/SecureShare/qml/images/thread_dark.png
===================================================================
(Binary files differ)

Deleted: gnunet-qt/SecureShare/qml/images/transfer.png
===================================================================
(Binary files differ)

Deleted: gnunet-qt/SecureShare/qml/main.qml
===================================================================
--- gnunet-qt/SecureShare/qml/main.qml  2015-09-28 13:22:21 UTC (rev 36381)
+++ gnunet-qt/SecureShare/qml/main.qml  2015-09-28 17:40:08 UTC (rev 36382)
@@ -1,595 +0,0 @@
-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
-                }
-            }
-
-
-        }
-
-
-
-    }
-
-
-}

Deleted: gnunet-qt/SecureShare/qml.qrc
===================================================================
--- gnunet-qt/SecureShare/qml.qrc       2015-09-28 13:22:21 UTC (rev 36381)
+++ gnunet-qt/SecureShare/qml.qrc       2015-09-28 17:40:08 UTC (rev 36382)
@@ -1,64 +0,0 @@
-<RCC>
-    <qresource prefix="/">
-        <file>qml/main.qml</file>
-        <file>qml/images/chat.png</file>
-        <file>qml/images/person.png</file>
-        <file>qml/ConversationWindow.qml</file>
-        <file>qml/GroupConversation.qml</file>
-        <file>qml/Splash.qml</file>
-        <file>assets/banner.png</file>
-        <file>qml/NewEgo.qml</file>
-        <file>assets/icon.png</file>
-        <file>assets/icon.ico</file>
-        <file>qml/JoinRoom.qml</file>
-        <file>qml/CreateRoom.qml</file>
-        <file>qml/About.qml</file>
-        <file>qml/images/enter.png</file>
-        <file>qml/images/new.png</file>
-        <file>qml/QrReader.qml</file>
-        <file>qml/ExportEgo.qml</file>
-        <file>qml/ImportEgo.qml</file>
-        <file>qml/fonts/BebasNeue.otf</file>
-        <file>qml/fonts/Ubuntu-BI.ttf</file>
-        <file>qml/fonts/Ubuntu-R.ttf</file>
-        <file>qml/images/logo.png</file>
-        <file>qml/images/demo/arp.jpg</file>
-        <file>qml/images/demo/baila.jpg</file>
-        <file>qml/images/demo/Conffeti-background.jpg</file>
-        <file>qml/images/demo/doll.jpg</file>
-        <file>qml/images/demo/lynX.jpg</file>
-        <file>qml/images/demo/popcorn-background.jpg</file>
-        <file>qml/images/demo/ubuntu-wallpaper.jpg</file>
-        <file>qml/ThreadChat.qml</file>
-        <file>qml/Profile.qml</file>
-        <file>qml/fonts/Ubuntu-L.ttf</file>
-        <file>qml/images/email.png</file>
-        <file>qml/images/home.png</file>
-        <file>qml/images/location.png</file>
-        <file>qml/images/phone.png</file>
-        <file>qml/images/share.png</file>
-        <file>qml/fonts/Ubuntu-B.ttf</file>
-        <file>qml/images/demo/brazil.png</file>
-        <file>qml/images/demo/gnunet.png</file>
-        <file>qml/images/demo/secushare.png</file>
-        <file>qml/images/contact.png</file>
-        <file>qml/images/status/dot_away.png</file>
-        <file>qml/images/status/dot_busy.png</file>
-        <file>qml/images/status/dot_idle.png</file>
-        <file>qml/images/status/dot_online.png</file>
-        <file>qml/images/add.png</file>
-        <file>qml/images/settings.png</file>
-        <file>qml/Settings.qml</file>
-        <file>qml/images/thread.png</file>
-        <file>qml/images/thread_dark.png</file>
-        <file>qml/images/group.png</file>
-        <file>qml/images/group_dark.png</file>
-        <file>qml/images/create_room.png</file>
-        <file>qml/SingleConversation.qml</file>
-        <file>qml/images/contact_dark.png</file>
-        <file>qml/images/settings_dark.png</file>
-        <file>qml/images/send.png</file>
-        <file>qml/images/button_default.png</file>
-        <file>qml/images/button_pressed.png</file>
-    </qresource>
-</RCC>

Deleted: gnunet-qt/SecureShare/readme
===================================================================
--- gnunet-qt/SecureShare/readme        2015-09-28 13:22:21 UTC (rev 36381)
+++ gnunet-qt/SecureShare/readme        2015-09-28 17:40:08 UTC (rev 36382)
@@ -1,4 +0,0 @@
-This project needs the following library
-- Qt  >= 5.3
-- libqrencode
-- qzing from https://github.com/bratao/qzxing
\ No newline at end of file

Deleted: gnunet-qt/SecureShare/utils/helpers.cpp
===================================================================
--- gnunet-qt/SecureShare/utils/helpers.cpp     2015-09-28 13:22:21 UTC (rev 
36381)
+++ gnunet-qt/SecureShare/utils/helpers.cpp     2015-09-28 17:40:08 UTC (rev 
36382)
@@ -1,90 +0,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;
-}

Deleted: gnunet-qt/SecureShare/utils/helpers.h
===================================================================
--- gnunet-qt/SecureShare/utils/helpers.h       2015-09-28 13:22:21 UTC (rev 
36381)
+++ gnunet-qt/SecureShare/utils/helpers.h       2015-09-28 17:40:08 UTC (rev 
36382)
@@ -1,24 +0,0 @@
-#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

Deleted: gnunet-qt/SecureShare/utils/qrimageprovider.cpp
===================================================================
--- gnunet-qt/SecureShare/utils/qrimageprovider.cpp     2015-09-28 13:22:21 UTC 
(rev 36381)
+++ gnunet-qt/SecureShare/utils/qrimageprovider.cpp     2015-09-28 17:40:08 UTC 
(rev 36382)
@@ -1,28 +0,0 @@
-#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;
-}

Deleted: gnunet-qt/SecureShare/utils/qrimageprovider.h
===================================================================
--- gnunet-qt/SecureShare/utils/qrimageprovider.h       2015-09-28 13:22:21 UTC 
(rev 36381)
+++ gnunet-qt/SecureShare/utils/qrimageprovider.h       2015-09-28 17:40:08 UTC 
(rev 36382)
@@ -1,19 +0,0 @@
-#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

Copied: gnunet-qt/secushare/assets/banner.png (from rev 36043, 
gnunet-qt/SecureShare/assets/banner.png)
===================================================================
(Binary files differ)

Copied: gnunet-qt/secushare/assets/icon.ico (from rev 36043, 
gnunet-qt/SecureShare/assets/icon.ico)
===================================================================
(Binary files differ)

Copied: gnunet-qt/secushare/assets/icon.png (from rev 36043, 
gnunet-qt/SecureShare/assets/icon.png)
===================================================================
(Binary files differ)

Copied: gnunet-qt/secushare/core/gnunet/gnunet.cpp (from rev 36043, 
gnunet-qt/SecureShare/core/gnunet/gnunet.cpp)
===================================================================
--- gnunet-qt/secushare/core/gnunet/gnunet.cpp                          (rev 0)
+++ gnunet-qt/secushare/core/gnunet/gnunet.cpp  2015-09-28 17:40:08 UTC (rev 
36382)
@@ -0,0 +1,215 @@
+/*
+     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 "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
+    };
+
+
+    /*
+    QString gnunetConfig = thePrefs->getGNUNetConfig();
+    QByteArray byteArray = gnunetConfig.toUtf8();
+    const char* cString = byteArray.constData();
+*/
+
+    const char *const argv[] = {
+        "SecureShare",
+        // "-c", cString,
+        NULL
+    };
+
+    GNUNET_PROGRAM_run ((sizeof (argv) / sizeof (char *)) - 1,(char 
*const*)argv,
+                        "SecureShare", "SecureShare 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;
+}
+

Copied: gnunet-qt/secushare/core/gnunet/gnunet.h (from rev 36043, 
gnunet-qt/SecureShare/core/gnunet/gnunet.h)
===================================================================
--- gnunet-qt/secushare/core/gnunet/gnunet.h                            (rev 0)
+++ gnunet-qt/secushare/core/gnunet/gnunet.h    2015-09-28 17:40:08 UTC (rev 
36382)
@@ -0,0 +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

Copied: gnunet-qt/secushare/core/gnunet/gnunet_includes.h (from rev 36043, 
gnunet-qt/SecureShare/core/gnunet/gnunet_includes.h)
===================================================================
--- gnunet-qt/secushare/core/gnunet/gnunet_includes.h                           
(rev 0)
+++ gnunet-qt/secushare/core/gnunet/gnunet_includes.h   2015-09-28 17:40:08 UTC 
(rev 36382)
@@ -0,0 +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

Copied: gnunet-qt/secushare/core/identity/identity.cpp (from rev 36043, 
gnunet-qt/SecureShare/core/identity/identity.cpp)
===================================================================
--- gnunet-qt/secushare/core/identity/identity.cpp                              
(rev 0)
+++ gnunet-qt/secushare/core/identity/identity.cpp      2015-09-28 17:40:08 UTC 
(rev 36382)
@@ -0,0 +1,7 @@
+#include "identity.h"
+
+Identity::Identity(QString key, QObject *parent) :
+    QObject(parent)
+{
+     m_key = key;
+}

Copied: gnunet-qt/secushare/core/identity/identity.h (from rev 36043, 
gnunet-qt/SecureShare/core/identity/identity.h)
===================================================================
--- gnunet-qt/secushare/core/identity/identity.h                                
(rev 0)
+++ gnunet-qt/secushare/core/identity/identity.h        2015-09-28 17:40:08 UTC 
(rev 36382)
@@ -0,0 +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

Copied: gnunet-qt/secushare/core/identity/identityService.cpp (from rev 36043, 
gnunet-qt/SecureShare/core/identity/identityService.cpp)
===================================================================
--- gnunet-qt/secushare/core/identity/identityService.cpp                       
        (rev 0)
+++ gnunet-qt/secushare/core/identity/identityService.cpp       2015-09-28 
17:40:08 UTC (rev 36382)
@@ -0,0 +1,132 @@
+#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);
+    }
+
+}

Copied: gnunet-qt/secushare/core/identity/identityService.h (from rev 36043, 
gnunet-qt/SecureShare/core/identity/identityService.h)
===================================================================
--- gnunet-qt/secushare/core/identity/identityService.h                         
(rev 0)
+++ gnunet-qt/secushare/core/identity/identityService.h 2015-09-28 17:40:08 UTC 
(rev 36382)
@@ -0,0 +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

Copied: gnunet-qt/secushare/core/psyccore.cpp (from rev 36043, 
gnunet-qt/SecureShare/core/psyccore.cpp)
===================================================================
--- gnunet-qt/secushare/core/psyccore.cpp                               (rev 0)
+++ gnunet-qt/secushare/core/psyccore.cpp       2015-09-28 17:40:08 UTC (rev 
36382)
@@ -0,0 +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);
+
+    }
+
+
+}

Copied: gnunet-qt/secushare/core/psyccore.h (from rev 36043, 
gnunet-qt/SecureShare/core/psyccore.h)
===================================================================
--- gnunet-qt/secushare/core/psyccore.h                         (rev 0)
+++ gnunet-qt/secushare/core/psyccore.h 2015-09-28 17:40:08 UTC (rev 36382)
@@ -0,0 +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

Copied: gnunet-qt/secushare/core/social/place.cpp (from rev 36043, 
gnunet-qt/SecureShare/core/social/place.cpp)
===================================================================
--- gnunet-qt/secushare/core/social/place.cpp                           (rev 0)
+++ gnunet-qt/secushare/core/social/place.cpp   2015-09-28 17:40:08 UTC (rev 
36382)
@@ -0,0 +1,90 @@
+#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);
+}

Copied: gnunet-qt/secushare/core/social/place.h (from rev 36043, 
gnunet-qt/SecureShare/core/social/place.h)
===================================================================
--- gnunet-qt/secushare/core/social/place.h                             (rev 0)
+++ gnunet-qt/secushare/core/social/place.h     2015-09-28 17:40:08 UTC (rev 
36382)
@@ -0,0 +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

Copied: gnunet-qt/secushare/core/social/socialservice.cpp (from rev 36043, 
gnunet-qt/SecureShare/core/social/socialservice.cpp)
===================================================================
--- gnunet-qt/secushare/core/social/socialservice.cpp                           
(rev 0)
+++ gnunet-qt/secushare/core/social/socialservice.cpp   2015-09-28 17:40:08 UTC 
(rev 36382)
@@ -0,0 +1,552 @@
+#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_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_PSYC_MessageModifier *mod,
+                                         uint64_t message_id,
+                                         enum GNUNET_ENV_Operator oper,
+                                         const char *name,
+                                         const void *value,
+                                         uint16_t 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,
+                                     struct GNUNET_SOCIAL_Nym *nym,
+                                     struct GNUNET_ENV_Environment *env,
+                                     size_t variable_count,
+                                     struct GNUNET_ENV_Modifier *variables)
+{
+    // FIXME: this function is not called yet
+
+    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_resp)
+{
+    GNUNET_log (GNUNET_ERROR_TYPE_WARNING,
+                "Guest received entry decision: %d.\n",
+                is_admitted);
+
+    if (NULL != entry_resp)
+    {
+        struct GNUNET_ENV_Environment *env = GNUNET_ENV_environment_create ();
+        const char *method_name = NULL;
+        const void *data = NULL;
+        uint16_t data_size = 0;
+        GNUNET_PSYC_message_parse (entry_resp, &method_name, env, &data, 
&data_size);
+
+        GNUNET_log (GNUNET_ERROR_TYPE_DEBUG,
+                    "%s\n%.*s\n",
+                    method_name, data_size, data);
+        /* 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_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;
+    }
+    if (0 == tmit->data_count)
+    {
+        *data_size = 0;
+        return GNUNET_YES;
+    }
+
+    uint16_t size = strlen (tmit->data[tmit->n]) + 1;
+    GNUNET_log (GNUNET_ERROR_TYPE_WARNING,
+                "Transmit notify data: %u bytes available, "
+                "processing fragment %u/%u (size %u).\n",
+                *data_size, tmit->n + 1, tmit->data_count, size);
+    if (*data_size < size)
+    {
+        *data_size = 0;
+        //GNUNET_assert (0);
+        return GNUNET_SYSERR;
+    }
+
+   /*if (GNUNET_YES != tmit->paused && 0 < tmit->data_delay[tmit->n])
+    {
+        GNUNET_log (GNUNET_ERROR_TYPE_WARNING, "Transmission paused.\n");
+        tmit->paused = GNUNET_YES;
+        GNUNET_SCHEDULER_add_delayed (
+                    GNUNET_TIME_relative_multiply (GNUNET_TIME_UNIT_SECONDS,
+                                                   tmit->data_delay[tmit->n]),
+                &transmit_resume, tmit);
+        *data_size = 0;
+        return GNUNET_NO;
+    }*/
+    tmit->paused = GNUNET_NO;
+
+    *data_size = size;
+    memcpy (data, tmit->data[tmit->n], size);
+
+    return ++tmit->n < tmit->data_count ? GNUNET_NO : GNUNET_YES;
+}
+
+void
+SocialService::guestTalk (Place* place, QString text)
+{
+
+    TransmitClosure* tmit = new TransmitClosure;
+
+
+
+    tmit->env = NULL;
+
+    /*
+    tmit->data[0] = "zzz xxx yyy";
+    tmit->data[1] = "zyx wvu tsr qpo";
+    tmit->data[2] = "testing ten nine eight";
+    tmit->data_count = 3;*/
+
+    std::string stdText = text.toStdString();
+
+    tmit->data[0] = new char[stdText.size()+1];
+    //tmit->data[1] = new char[1];
+    tmit->data[1] = "";
+
+    strcpy( tmit->data[0], stdText.c_str() );
+    //strcpy( tmit->data[1], stdText.c_str() );
+
+    tmit->data_count = 2;
+
+
+    place->addConversation(text);
+
+
+    tmit->guest_talk
+            = GNUNET_SOCIAL_guest_talk (place->socialGuest(), 
"_message_guest", NULL,
+                                        &notify_data, tmit,
+                                        GNUNET_SOCIAL_TALK_NONE);
+
+}
+
+void
+SocialService::hostTalk(Place* place, QString text)
+{
+
+  TransmitClosure* tmit = new TransmitClosure();
+  tmit->env = NULL;
+
+  /*
+  tmit->data[0] = "aaa bbb ccc";
+  tmit->data[1] = "abc def ghi jkl";
+  tmit->data[2] = "testing one two three";
+  tmit->data[3] = "four five";
+  tmit->data_count = 4;*/
+
+
+  std::string stdText = text.toStdString();
+
+
+
+  tmit->data[0] = new char[stdText.size()+1];
+  //tmit->data[1] = new char[1];
+  tmit->data[1] = "";
+
+  strcpy( tmit->data[0], stdText.c_str() );
+  //strcpy( tmit->data[1], stdText.c_str() );
+
+  tmit->data_count = 2;
+
+  tmit->host_ann
+    = GNUNET_SOCIAL_host_announce (place->host(), "_message_host", tmit->env,
+                                   &notify_data, tmit,
+                                   GNUNET_SOCIAL_ANNOUNCE_NONE);
+}

Copied: gnunet-qt/secushare/core/social/socialservice.h (from rev 36043, 
gnunet-qt/SecureShare/core/social/socialservice.h)
===================================================================
--- gnunet-qt/secushare/core/social/socialservice.h                             
(rev 0)
+++ gnunet-qt/secushare/core/social/socialservice.h     2015-09-28 17:40:08 UTC 
(rev 36382)
@@ -0,0 +1,122 @@
+#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;
+  char *data[16];
+  uint8_t data_delay[16];
+  uint8_t data_count;
+  uint8_t paused;
+  uint8_t n;
+} 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_PSYC_MessageModifier *mod,
+                        uint64_t message_id,
+                        enum GNUNET_ENV_Operator oper,
+                        const char *name,
+                        const void *value,
+                        uint16_t 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,
+                   struct GNUNET_SOCIAL_Nym *nym,
+                   struct GNUNET_ENV_Environment *env,
+                   size_t variable_count,
+                          struct GNUNET_ENV_Modifier *variables);
+
+
+    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

Copied: gnunet-qt/secushare/deployment.pri (from rev 36043, 
gnunet-qt/SecureShare/deployment.pri)
===================================================================
--- gnunet-qt/secushare/deployment.pri                          (rev 0)
+++ gnunet-qt/secushare/deployment.pri  2015-09-28 17:40:08 UTC (rev 36382)
@@ -0,0 +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 = /opt/$${TARGET}/bin
+        }
+        export(target.path)
+    }
+    INSTALLS += target
+}
+
+export(INSTALLS)

Copied: gnunet-qt/secushare/main.cpp (from rev 36043, 
gnunet-qt/SecureShare/main.cpp)
===================================================================
--- gnunet-qt/secushare/main.cpp                                (rev 0)
+++ gnunet-qt/secushare/main.cpp        2015-09-28 17:40:08 UTC (rev 36382)
@@ -0,0 +1,52 @@
+#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("SecureShare 1.0"));
+    theWindow->setIcon(QIcon(":/assets/icon.ico"));
+
+
+    theWindow->show();
+
+
+
+    return app.exec();
+
+
+
+
+
+}

Copied: gnunet-qt/secushare/models/IdentityModel.cpp (from rev 36043, 
gnunet-qt/SecureShare/models/IdentityModel.cpp)
===================================================================
--- gnunet-qt/secushare/models/IdentityModel.cpp                                
(rev 0)
+++ gnunet-qt/secushare/models/IdentityModel.cpp        2015-09-28 17:40:08 UTC 
(rev 36382)
@@ -0,0 +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();
+}
+
+
+
+

Copied: gnunet-qt/secushare/models/IdentityModel.h (from rev 36043, 
gnunet-qt/SecureShare/models/IdentityModel.h)
===================================================================
--- gnunet-qt/secushare/models/IdentityModel.h                          (rev 0)
+++ gnunet-qt/secushare/models/IdentityModel.h  2015-09-28 17:40:08 UTC (rev 
36382)
@@ -0,0 +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

Copied: gnunet-qt/secushare/models/PlacesModel.cpp (from rev 36043, 
gnunet-qt/SecureShare/models/PlacesModel.cpp)
===================================================================
--- gnunet-qt/secushare/models/PlacesModel.cpp                          (rev 0)
+++ gnunet-qt/secushare/models/PlacesModel.cpp  2015-09-28 17:40:08 UTC (rev 
36382)
@@ -0,0 +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();
+}
+
+
+
+
+

Copied: gnunet-qt/secushare/models/PlacesModel.h (from rev 36043, 
gnunet-qt/SecureShare/models/PlacesModel.h)
===================================================================
--- gnunet-qt/secushare/models/PlacesModel.h                            (rev 0)
+++ gnunet-qt/secushare/models/PlacesModel.h    2015-09-28 17:40:08 UTC (rev 
36382)
@@ -0,0 +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

Copied: gnunet-qt/secushare/models/models.cpp (from rev 36043, 
gnunet-qt/SecureShare/models/models.cpp)
===================================================================
--- gnunet-qt/secushare/models/models.cpp                               (rev 0)
+++ gnunet-qt/secushare/models/models.cpp       2015-09-28 17:40:08 UTC (rev 
36382)
@@ -0,0 +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");*/
+
+}

Copied: gnunet-qt/secushare/models/models.h (from rev 36043, 
gnunet-qt/SecureShare/models/models.h)
===================================================================
--- gnunet-qt/secushare/models/models.h                         (rev 0)
+++ gnunet-qt/secushare/models/models.h 2015-09-28 17:40:08 UTC (rev 36382)
@@ -0,0 +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
+
+

Copied: gnunet-qt/secushare/preferences/preferences.cpp (from rev 36043, 
gnunet-qt/SecureShare/preferences/preferences.cpp)
===================================================================
--- gnunet-qt/secushare/preferences/preferences.cpp                             
(rev 0)
+++ gnunet-qt/secushare/preferences/preferences.cpp     2015-09-28 17:40:08 UTC 
(rev 36382)
@@ -0,0 +1,65 @@
+/*
+     This file is part of PYSC
+     (C) 2014 Bruno Cabral (and other contributing authors)
+     
+     PYSC 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.
+     
+     PYSC 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,"PYSC","PYSC", 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 + iden->name();
+}
+
+
+
+
+
+
+

Copied: gnunet-qt/secushare/preferences/preferences.h (from rev 36043, 
gnunet-qt/SecureShare/preferences/preferences.h)
===================================================================
--- gnunet-qt/secushare/preferences/preferences.h                               
(rev 0)
+++ gnunet-qt/secushare/preferences/preferences.h       2015-09-28 17:40:08 UTC 
(rev 36382)
@@ -0,0 +1,142 @@
+/*
+     This file is part of PYSC
+     (C) 2014 Bruno Cabral (and other contributing authors)
+     
+     PYSC 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

Copied: gnunet-qt/secushare/psyc.cpp (from rev 36043, 
gnunet-qt/SecureShare/psyc.cpp)
===================================================================
--- gnunet-qt/secushare/psyc.cpp                                (rev 0)
+++ gnunet-qt/secushare/psyc.cpp        2015-09-28 17:40:08 UTC (rev 36382)
@@ -0,0 +1,92 @@
+#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());
+
+
+}

Copied: gnunet-qt/secushare/psyc.h (from rev 36043, 
gnunet-qt/SecureShare/psyc.h)
===================================================================
--- gnunet-qt/secushare/psyc.h                          (rev 0)
+++ gnunet-qt/secushare/psyc.h  2015-09-28 17:40:08 UTC (rev 36382)
@@ -0,0 +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

Copied: gnunet-qt/secushare/qml/About.qml (from rev 36043, 
gnunet-qt/SecureShare/qml/About.qml)
===================================================================
--- gnunet-qt/secushare/qml/About.qml                           (rev 0)
+++ gnunet-qt/secushare/qml/About.qml   2015-09-28 17:40:08 UTC (rev 36382)
@@ -0,0 +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();
+            }
+        }
+    }
+
+}
+
+
+

Copied: gnunet-qt/secushare/qml/ConversationWindow.qml (from rev 36043, 
gnunet-qt/SecureShare/qml/ConversationWindow.qml)
===================================================================
--- gnunet-qt/secushare/qml/ConversationWindow.qml                              
(rev 0)
+++ gnunet-qt/secushare/qml/ConversationWindow.qml      2015-09-28 17:40:08 UTC 
(rev 36382)
@@ -0,0 +1,64 @@
+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" }
+            }
+
+
+    }
+
+
+}

Copied: gnunet-qt/secushare/qml/CreateRoom.qml (from rev 36043, 
gnunet-qt/SecureShare/qml/CreateRoom.qml)
===================================================================
--- gnunet-qt/secushare/qml/CreateRoom.qml                              (rev 0)
+++ gnunet-qt/secushare/qml/CreateRoom.qml      2015-09-28 17:40:08 UTC (rev 
36382)
@@ -0,0 +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)
+                }
+            }
+        }
+    }
+
+}

Copied: gnunet-qt/secushare/qml/ExportEgo.qml (from rev 36043, 
gnunet-qt/SecureShare/qml/ExportEgo.qml)
===================================================================
--- gnunet-qt/secushare/qml/ExportEgo.qml                               (rev 0)
+++ gnunet-qt/secushare/qml/ExportEgo.qml       2015-09-28 17:40:08 UTC (rev 
36382)
@@ -0,0 +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();
+                }
+            }
+        }
+    }
+
+}

Copied: gnunet-qt/secushare/qml/GroupConversation.qml (from rev 36043, 
gnunet-qt/SecureShare/qml/GroupConversation.qml)
===================================================================
--- gnunet-qt/secushare/qml/GroupConversation.qml                               
(rev 0)
+++ gnunet-qt/secushare/qml/GroupConversation.qml       2015-09-28 17:40:08 UTC 
(rev 36382)
@@ -0,0 +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
+                            }
+                        }
+                    }
+                }
+            }
+        }
+
+
+
+    }
+}

Copied: gnunet-qt/secushare/qml/ImportEgo.qml (from rev 36043, 
gnunet-qt/SecureShare/qml/ImportEgo.qml)
===================================================================
--- gnunet-qt/secushare/qml/ImportEgo.qml                               (rev 0)
+++ gnunet-qt/secushare/qml/ImportEgo.qml       2015-09-28 17:40:08 UTC (rev 
36382)
@@ -0,0 +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();
+                }
+            }
+        }
+    }
+
+}

Copied: gnunet-qt/secushare/qml/JoinRoom.qml (from rev 36043, 
gnunet-qt/SecureShare/qml/JoinRoom.qml)
===================================================================
--- gnunet-qt/secushare/qml/JoinRoom.qml                                (rev 0)
+++ gnunet-qt/secushare/qml/JoinRoom.qml        2015-09-28 17:40:08 UTC (rev 
36382)
@@ -0,0 +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")
+                }
+            }
+        }
+    }
+
+}

Copied: gnunet-qt/secushare/qml/NewEgo.qml (from rev 36043, 
gnunet-qt/SecureShare/qml/NewEgo.qml)
===================================================================
--- gnunet-qt/secushare/qml/NewEgo.qml                          (rev 0)
+++ gnunet-qt/secushare/qml/NewEgo.qml  2015-09-28 17:40:08 UTC (rev 36382)
@@ -0,0 +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();
+            }
+        }
+    }
+
+}

Copied: gnunet-qt/secushare/qml/Profile.qml (from rev 36043, 
gnunet-qt/SecureShare/qml/Profile.qml)
===================================================================
--- gnunet-qt/secushare/qml/Profile.qml                         (rev 0)
+++ gnunet-qt/secushare/qml/Profile.qml 2015-09-28 17:40:08 UTC (rev 36382)
@@ -0,0 +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
+                            }
+                        }
+
+                    }
+
+
+                }
+
+
+            }
+
+
+
+
+        }
+
+
+    }
+}

Copied: gnunet-qt/secushare/qml/QrReader.qml (from rev 36043, 
gnunet-qt/SecureShare/qml/QrReader.qml)
===================================================================
--- gnunet-qt/secushare/qml/QrReader.qml                                (rev 0)
+++ gnunet-qt/secushare/qml/QrReader.qml        2015-09-28 17:40:08 UTC (rev 
36382)
@@ -0,0 +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());
+                    }
+                }
+        }
+
+
+}

Copied: gnunet-qt/secushare/qml/Settings.qml (from rev 36043, 
gnunet-qt/SecureShare/qml/Settings.qml)
===================================================================
--- gnunet-qt/secushare/qml/Settings.qml                                (rev 0)
+++ gnunet-qt/secushare/qml/Settings.qml        2015-09-28 17:40:08 UTC (rev 
36382)
@@ -0,0 +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
+                }
+
+            }
+
+        }
+    }
+
+
+
+
+}

Copied: gnunet-qt/secushare/qml/SingleConversation.qml (from rev 36043, 
gnunet-qt/SecureShare/qml/SingleConversation.qml)
===================================================================
--- gnunet-qt/secushare/qml/SingleConversation.qml                              
(rev 0)
+++ gnunet-qt/secushare/qml/SingleConversation.qml      2015-09-28 17:40:08 UTC 
(rev 36382)
@@ -0,0 +1,112 @@
+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
+
+        }
+
+    }
+}

Copied: gnunet-qt/secushare/qml/Splash.qml (from rev 36043, 
gnunet-qt/SecureShare/qml/Splash.qml)
===================================================================
--- gnunet-qt/secushare/qml/Splash.qml                          (rev 0)
+++ gnunet-qt/secushare/qml/Splash.qml  2015-09-28 17:40:08 UTC (rev 36382)
@@ -0,0 +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;
+            }
+        }
+
+    }
+
+
+}

Copied: gnunet-qt/secushare/qml/ThreadChat.qml (from rev 36043, 
gnunet-qt/SecureShare/qml/ThreadChat.qml)
===================================================================
--- gnunet-qt/secushare/qml/ThreadChat.qml                              (rev 0)
+++ gnunet-qt/secushare/qml/ThreadChat.qml      2015-09-28 17:40:08 UTC (rev 
36382)
@@ -0,0 +1,645 @@
+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
+                    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
+                    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
+                    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
+                }
+
+
+
+            }
+        }
+
+
+
+
+    }
+
+
+}

Copied: gnunet-qt/secushare/qml/fonts/BebasNeue.otf (from rev 36043, 
gnunet-qt/SecureShare/qml/fonts/BebasNeue.otf)
===================================================================
(Binary files differ)

Copied: gnunet-qt/secushare/qml/fonts/Ubuntu-B.ttf (from rev 36043, 
gnunet-qt/SecureShare/qml/fonts/Ubuntu-B.ttf)
===================================================================
(Binary files differ)

Copied: gnunet-qt/secushare/qml/fonts/Ubuntu-BI.ttf (from rev 36043, 
gnunet-qt/SecureShare/qml/fonts/Ubuntu-BI.ttf)
===================================================================
(Binary files differ)

Copied: gnunet-qt/secushare/qml/fonts/Ubuntu-L.ttf (from rev 36043, 
gnunet-qt/SecureShare/qml/fonts/Ubuntu-L.ttf)
===================================================================
(Binary files differ)

Copied: gnunet-qt/secushare/qml/fonts/Ubuntu-R.ttf (from rev 36043, 
gnunet-qt/SecureShare/qml/fonts/Ubuntu-R.ttf)
===================================================================
(Binary files differ)

Copied: gnunet-qt/secushare/qml/images/add.png (from rev 36043, 
gnunet-qt/SecureShare/qml/images/add.png)
===================================================================
(Binary files differ)

Copied: gnunet-qt/secushare/qml/images/button_default.png (from rev 36043, 
gnunet-qt/SecureShare/qml/images/button_default.png)
===================================================================
(Binary files differ)

Copied: gnunet-qt/secushare/qml/images/button_pressed.png (from rev 36043, 
gnunet-qt/SecureShare/qml/images/button_pressed.png)
===================================================================
(Binary files differ)

Copied: gnunet-qt/secushare/qml/images/chat.png (from rev 36043, 
gnunet-qt/SecureShare/qml/images/chat.png)
===================================================================
(Binary files differ)

Copied: gnunet-qt/secushare/qml/images/contact.png (from rev 36043, 
gnunet-qt/SecureShare/qml/images/contact.png)
===================================================================
(Binary files differ)

Copied: gnunet-qt/secushare/qml/images/contact_dark.png (from rev 36043, 
gnunet-qt/SecureShare/qml/images/contact_dark.png)
===================================================================
(Binary files differ)

Copied: gnunet-qt/secushare/qml/images/create_room.png (from rev 36043, 
gnunet-qt/SecureShare/qml/images/create_room.png)
===================================================================
(Binary files differ)

Copied: gnunet-qt/secushare/qml/images/demo/Conffeti-background.jpg (from rev 
36043, gnunet-qt/SecureShare/qml/images/demo/Conffeti-background.jpg)
===================================================================
(Binary files differ)

Copied: gnunet-qt/secushare/qml/images/demo/arp.jpg (from rev 36043, 
gnunet-qt/SecureShare/qml/images/demo/arp.jpg)
===================================================================
(Binary files differ)

Copied: gnunet-qt/secushare/qml/images/demo/baila.jpg (from rev 36043, 
gnunet-qt/SecureShare/qml/images/demo/baila.jpg)
===================================================================
(Binary files differ)

Copied: gnunet-qt/secushare/qml/images/demo/brazil.png (from rev 36043, 
gnunet-qt/SecureShare/qml/images/demo/brazil.png)
===================================================================
(Binary files differ)

Copied: gnunet-qt/secushare/qml/images/demo/doll.jpg (from rev 36043, 
gnunet-qt/SecureShare/qml/images/demo/doll.jpg)
===================================================================
(Binary files differ)

Copied: gnunet-qt/secushare/qml/images/demo/gnunet.png (from rev 36043, 
gnunet-qt/SecureShare/qml/images/demo/gnunet.png)
===================================================================
(Binary files differ)

Copied: gnunet-qt/secushare/qml/images/demo/lynX.jpg (from rev 36043, 
gnunet-qt/SecureShare/qml/images/demo/lynX.jpg)
===================================================================
(Binary files differ)

Copied: gnunet-qt/secushare/qml/images/demo/popcorn-background.jpg (from rev 
36043, gnunet-qt/SecureShare/qml/images/demo/popcorn-background.jpg)
===================================================================
(Binary files differ)

Copied: gnunet-qt/secushare/qml/images/demo/secushare.png (from rev 36043, 
gnunet-qt/SecureShare/qml/images/demo/secushare.png)
===================================================================
(Binary files differ)

Copied: gnunet-qt/secushare/qml/images/demo/ubuntu-wallpaper.jpg (from rev 
36043, gnunet-qt/SecureShare/qml/images/demo/ubuntu-wallpaper.jpg)
===================================================================
(Binary files differ)

Copied: gnunet-qt/secushare/qml/images/email.png (from rev 36043, 
gnunet-qt/SecureShare/qml/images/email.png)
===================================================================
(Binary files differ)

Copied: gnunet-qt/secushare/qml/images/enter.png (from rev 36043, 
gnunet-qt/SecureShare/qml/images/enter.png)
===================================================================
(Binary files differ)

Copied: gnunet-qt/secushare/qml/images/group.png (from rev 36043, 
gnunet-qt/SecureShare/qml/images/group.png)
===================================================================
(Binary files differ)

Copied: gnunet-qt/secushare/qml/images/group_dark.png (from rev 36043, 
gnunet-qt/SecureShare/qml/images/group_dark.png)
===================================================================
(Binary files differ)

Copied: gnunet-qt/secushare/qml/images/home.png (from rev 36043, 
gnunet-qt/SecureShare/qml/images/home.png)
===================================================================
(Binary files differ)

Copied: gnunet-qt/secushare/qml/images/join.png (from rev 36043, 
gnunet-qt/SecureShare/qml/images/join.png)
===================================================================
(Binary files differ)

Copied: gnunet-qt/secushare/qml/images/location.png (from rev 36043, 
gnunet-qt/SecureShare/qml/images/location.png)
===================================================================
(Binary files differ)

Copied: gnunet-qt/secushare/qml/images/logo.png (from rev 36043, 
gnunet-qt/SecureShare/qml/images/logo.png)
===================================================================
(Binary files differ)

Copied: gnunet-qt/secushare/qml/images/new.png (from rev 36043, 
gnunet-qt/SecureShare/qml/images/new.png)
===================================================================
(Binary files differ)

Copied: gnunet-qt/secushare/qml/images/person.png (from rev 36043, 
gnunet-qt/SecureShare/qml/images/person.png)
===================================================================
(Binary files differ)

Copied: gnunet-qt/secushare/qml/images/phone.png (from rev 36043, 
gnunet-qt/SecureShare/qml/images/phone.png)
===================================================================
(Binary files differ)

Copied: gnunet-qt/secushare/qml/images/send.png (from rev 36043, 
gnunet-qt/SecureShare/qml/images/send.png)
===================================================================
(Binary files differ)

Copied: gnunet-qt/secushare/qml/images/settings.png (from rev 36043, 
gnunet-qt/SecureShare/qml/images/settings.png)
===================================================================
(Binary files differ)

Copied: gnunet-qt/secushare/qml/images/settings_dark.png (from rev 36043, 
gnunet-qt/SecureShare/qml/images/settings_dark.png)
===================================================================
(Binary files differ)

Copied: gnunet-qt/secushare/qml/images/share.png (from rev 36043, 
gnunet-qt/SecureShare/qml/images/share.png)
===================================================================
(Binary files differ)

Copied: gnunet-qt/secushare/qml/images/status/dot_away.png (from rev 36043, 
gnunet-qt/SecureShare/qml/images/status/dot_away.png)
===================================================================
(Binary files differ)

Copied: gnunet-qt/secushare/qml/images/status/dot_busy.png (from rev 36043, 
gnunet-qt/SecureShare/qml/images/status/dot_busy.png)
===================================================================
(Binary files differ)

Copied: gnunet-qt/secushare/qml/images/status/dot_idle.png (from rev 36043, 
gnunet-qt/SecureShare/qml/images/status/dot_idle.png)
===================================================================
(Binary files differ)

Copied: gnunet-qt/secushare/qml/images/status/dot_online.png (from rev 36043, 
gnunet-qt/SecureShare/qml/images/status/dot_online.png)
===================================================================
(Binary files differ)

Copied: gnunet-qt/secushare/qml/images/thread.png (from rev 36043, 
gnunet-qt/SecureShare/qml/images/thread.png)
===================================================================
(Binary files differ)

Copied: gnunet-qt/secushare/qml/images/threadChat.png (from rev 36043, 
gnunet-qt/SecureShare/qml/images/threadChat.png)
===================================================================
(Binary files differ)

Copied: gnunet-qt/secushare/qml/images/thread_dark.png (from rev 36043, 
gnunet-qt/SecureShare/qml/images/thread_dark.png)
===================================================================
(Binary files differ)

Copied: gnunet-qt/secushare/qml/images/transfer.png (from rev 36043, 
gnunet-qt/SecureShare/qml/images/transfer.png)
===================================================================
(Binary files differ)

Copied: gnunet-qt/secushare/qml/main.qml (from rev 36043, 
gnunet-qt/SecureShare/qml/main.qml)
===================================================================
--- gnunet-qt/secushare/qml/main.qml                            (rev 0)
+++ gnunet-qt/secushare/qml/main.qml    2015-09-28 17:40:08 UTC (rev 36382)
@@ -0,0 +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
+                }
+            }
+
+
+        }
+
+
+
+    }
+
+
+}

Copied: gnunet-qt/secushare/qml.qrc (from rev 36043, 
gnunet-qt/SecureShare/qml.qrc)
===================================================================
--- gnunet-qt/secushare/qml.qrc                         (rev 0)
+++ gnunet-qt/secushare/qml.qrc 2015-09-28 17:40:08 UTC (rev 36382)
@@ -0,0 +1,64 @@
+<RCC>
+    <qresource prefix="/">
+        <file>qml/main.qml</file>
+        <file>qml/images/chat.png</file>
+        <file>qml/images/person.png</file>
+        <file>qml/ConversationWindow.qml</file>
+        <file>qml/GroupConversation.qml</file>
+        <file>qml/Splash.qml</file>
+        <file>assets/banner.png</file>
+        <file>qml/NewEgo.qml</file>
+        <file>assets/icon.png</file>
+        <file>assets/icon.ico</file>
+        <file>qml/JoinRoom.qml</file>
+        <file>qml/CreateRoom.qml</file>
+        <file>qml/About.qml</file>
+        <file>qml/images/enter.png</file>
+        <file>qml/images/new.png</file>
+        <file>qml/QrReader.qml</file>
+        <file>qml/ExportEgo.qml</file>
+        <file>qml/ImportEgo.qml</file>
+        <file>qml/fonts/BebasNeue.otf</file>
+        <file>qml/fonts/Ubuntu-BI.ttf</file>
+        <file>qml/fonts/Ubuntu-R.ttf</file>
+        <file>qml/images/logo.png</file>
+        <file>qml/images/demo/arp.jpg</file>
+        <file>qml/images/demo/baila.jpg</file>
+        <file>qml/images/demo/Conffeti-background.jpg</file>
+        <file>qml/images/demo/doll.jpg</file>
+        <file>qml/images/demo/lynX.jpg</file>
+        <file>qml/images/demo/popcorn-background.jpg</file>
+        <file>qml/images/demo/ubuntu-wallpaper.jpg</file>
+        <file>qml/ThreadChat.qml</file>
+        <file>qml/Profile.qml</file>
+        <file>qml/fonts/Ubuntu-L.ttf</file>
+        <file>qml/images/email.png</file>
+        <file>qml/images/home.png</file>
+        <file>qml/images/location.png</file>
+        <file>qml/images/phone.png</file>
+        <file>qml/images/share.png</file>
+        <file>qml/fonts/Ubuntu-B.ttf</file>
+        <file>qml/images/demo/brazil.png</file>
+        <file>qml/images/demo/gnunet.png</file>
+        <file>qml/images/demo/secushare.png</file>
+        <file>qml/images/contact.png</file>
+        <file>qml/images/status/dot_away.png</file>
+        <file>qml/images/status/dot_busy.png</file>
+        <file>qml/images/status/dot_idle.png</file>
+        <file>qml/images/status/dot_online.png</file>
+        <file>qml/images/add.png</file>
+        <file>qml/images/settings.png</file>
+        <file>qml/Settings.qml</file>
+        <file>qml/images/thread.png</file>
+        <file>qml/images/thread_dark.png</file>
+        <file>qml/images/group.png</file>
+        <file>qml/images/group_dark.png</file>
+        <file>qml/images/create_room.png</file>
+        <file>qml/SingleConversation.qml</file>
+        <file>qml/images/contact_dark.png</file>
+        <file>qml/images/settings_dark.png</file>
+        <file>qml/images/send.png</file>
+        <file>qml/images/button_default.png</file>
+        <file>qml/images/button_pressed.png</file>
+    </qresource>
+</RCC>

Copied: gnunet-qt/secushare/readme (from rev 36043, 
gnunet-qt/SecureShare/readme)
===================================================================
--- gnunet-qt/secushare/readme                          (rev 0)
+++ gnunet-qt/secushare/readme  2015-09-28 17:40:08 UTC (rev 36382)
@@ -0,0 +1,4 @@
+This project needs the following library
+- Qt  >= 5.3
+- libqrencode
+- qzing from https://github.com/bratao/qzxing
\ No newline at end of file

Copied: gnunet-qt/secushare/secushare.pro (from rev 36043, 
gnunet-qt/SecureShare/SecureShare.pro)
===================================================================
--- gnunet-qt/secushare/secushare.pro                           (rev 0)
+++ gnunet-qt/secushare/secushare.pro   2015-09-28 17:40:08 UTC (rev 36382)
@@ -0,0 +1,50 @@
+TEMPLATE = app
+
+QT += qml quick widgets
+
+LIBS += -lgnunetutil -lgnunetcore -lgnunetidentity -lgnunetarm -lgnunetsocial 
-lgnunetenv -lgnunetpsycutil -lgnunetfriends -lextractor -lqrencode
+
+
+
+
+
+#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

Copied: gnunet-qt/secushare/utils/helpers.cpp (from rev 36043, 
gnunet-qt/SecureShare/utils/helpers.cpp)
===================================================================
--- gnunet-qt/secushare/utils/helpers.cpp                               (rev 0)
+++ gnunet-qt/secushare/utils/helpers.cpp       2015-09-28 17:40:08 UTC (rev 
36382)
@@ -0,0 +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;
+}

Copied: gnunet-qt/secushare/utils/helpers.h (from rev 36043, 
gnunet-qt/SecureShare/utils/helpers.h)
===================================================================
--- gnunet-qt/secushare/utils/helpers.h                         (rev 0)
+++ gnunet-qt/secushare/utils/helpers.h 2015-09-28 17:40:08 UTC (rev 36382)
@@ -0,0 +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

Copied: gnunet-qt/secushare/utils/qrimageprovider.cpp (from rev 36043, 
gnunet-qt/SecureShare/utils/qrimageprovider.cpp)
===================================================================
--- gnunet-qt/secushare/utils/qrimageprovider.cpp                               
(rev 0)
+++ gnunet-qt/secushare/utils/qrimageprovider.cpp       2015-09-28 17:40:08 UTC 
(rev 36382)
@@ -0,0 +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;
+}

Copied: gnunet-qt/secushare/utils/qrimageprovider.h (from rev 36043, 
gnunet-qt/SecureShare/utils/qrimageprovider.h)
===================================================================
--- gnunet-qt/secushare/utils/qrimageprovider.h                         (rev 0)
+++ gnunet-qt/secushare/utils/qrimageprovider.h 2015-09-28 17:40:08 UTC (rev 
36382)
@@ -0,0 +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




reply via email to

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