From 052b4e286c51af499cda1740c6d61a0d58bd745e Mon Sep 17 00:00:00 2001
From: Alexandre Lision <alexandre.lision@savoirfairelinux.com>
Date: Mon, 19 Jan 2015 16:13:11 -0500
Subject: [PATCH] Fix initilization issues

Bug in cmake.in template on OSX:
   ${VAR} does not expand when generating final file
Solution
   @VAR@
---
 cmake/LibRingClientConfig.cmake.in |  2 +-
 src/accountmodel.cpp               |  3 ++-
 src/callmodel.cpp                  | 12 +++++++-----
 src/dbus/instancemanager.cpp       |  2 ++
 src/qtwrapper/instancemanager.cpp  |  5 ++++-
 5 files changed, 16 insertions(+), 8 deletions(-)

diff --git a/cmake/LibRingClientConfig.cmake.in b/cmake/LibRingClientConfig.cmake.in
index 1b494642..ad3d74f4 100644
--- a/cmake/LibRingClientConfig.cmake.in
+++ b/cmake/LibRingClientConfig.cmake.in
@@ -2,7 +2,7 @@
 
 INCLUDE(GNUInstallDirs)
 
-SET(LIB_RING_CLIENT_INCLUDE_DIR ${INCLUDE_INSTALL_DIR}/libringclient/)
+SET(LIB_RING_CLIENT_INCLUDE_DIR @INCLUDE_INSTALL_DIR@/libringclient)
 
 STRING(REPLACE "${CMAKE_LIBRARY_ARCHITECTURE}" "" SANE_LIBRARY_PATH "${CMAKE_INSTALL_FULL_LIBDIR}" )
 
diff --git a/src/accountmodel.cpp b/src/accountmodel.cpp
index e980d816..e4c37102 100644
--- a/src/accountmodel.cpp
+++ b/src/accountmodel.cpp
@@ -26,6 +26,7 @@
 //Ring library
 #include "dbus/configurationmanager.h"
 #include "dbus/callmanager.h"
+#include "dbus/instancemanager.h"
 #include "visitors/accountlistcolorvisitor.h"
 
 class AccountModelPrivate : public QObject
@@ -96,7 +97,7 @@ m_pColorVisitor(nullptr),m_pIP2IP(nullptr)
 AccountModel::AccountModel() : QAbstractListModel(QCoreApplication::instance())
 ,d_ptr(new AccountModelPrivate(this))
 {
-
+   InstanceInterface& instance = DBus::InstanceManager::instance();
 }
 
 ///Prevent constructor loop
diff --git a/src/callmodel.cpp b/src/callmodel.cpp
index c7e516e1..e3655750 100644
--- a/src/callmodel.cpp
+++ b/src/callmodel.cpp
@@ -132,10 +132,6 @@ CallModel::CallModel() : QAbstractItemModel(QCoreApplication::instance()),d_ptr(
 {
    //Register with the daemon
    InstanceInterface& instance = DBus::InstanceManager::instance();
-#ifndef ENABLE_LIBWRAP
-   QDBusPendingReply<QString> reply = instance.Register(getpid(), "Ring KDE Client");
-   reply.waitForFinished();
-#endif
    setObjectName("CallModel");
 } //CallModel
 
@@ -402,7 +398,13 @@ Call* CallModel::dialingCall(const QString& peerName, Account* account)
 
    //No dialing call found, creating one
    Account* acc = (account)?account:AccountModel::currentAccount();
-   return (!acc)?nullptr:d_ptr->addCall(CallPrivate::buildDialingCall(QString::number(qrand()), peerName, acc));
+
+   if (!acc) {
+      qWarning() << "No account is available, cannot call" << DBus::ConfigurationManager::instance().getAccountList();
+      return nullptr;
+   }
+
+   return d_ptr->addCall(CallPrivate::buildDialingCall(QString::number(qrand()), peerName, acc));
 }  //dialingCall
 
 ///Create a new incoming call when the daemon is being called
diff --git a/src/dbus/instancemanager.cpp b/src/dbus/instancemanager.cpp
index e2ea0455..c1d76a19 100644
--- a/src/dbus/instancemanager.cpp
+++ b/src/dbus/instancemanager.cpp
@@ -33,6 +33,8 @@ InstanceInterface& DBus::InstanceManager::instance()
    if(!interface->connection().isConnected()) {
       throw "Error : dring not connected. Service " + interface->service() + " not connected. From instance interface.";
    }
+   QDBusPendingReply<QString> reply = instance.Register(getpid(), "Ring KDE Client");
+   reply.waitForFinished();
 #endif
    return *interface;
 }
diff --git a/src/qtwrapper/instancemanager.cpp b/src/qtwrapper/instancemanager.cpp
index 7178f451..1feb9f3e 100644
--- a/src/qtwrapper/instancemanager.cpp
+++ b/src/qtwrapper/instancemanager.cpp
@@ -26,11 +26,14 @@
 
 static int ringFlags = 0;
 
+void pollEvents();
+
 InstanceInterface::InstanceInterface() : m_pTimer(nullptr)
 {
    m_pTimer = new QTimer(this);
    m_pTimer->setInterval(50);
-   connect(m_pTimer,SIGNAL(timeout()),this,SLOT(pollEvents()));
+   connect(m_pTimer,&QTimer::timeout,this,&pollEvents);
+   m_pTimer->start();
    ringFlags |= RING_FLAG_DEBUG;
    ringFlags |= RING_FLAG_CONSOLE_LOG;
 
-- 
GitLab