hfdialer has been made a singleton and will only start one
authorBrian Jones <brian.j.jones@intel.com>
Fri, 20 Apr 2012 19:40:31 +0000 (12:40 -0700)
committerBrian Jones <brian.j.jones@intel.com>
Fri, 20 Apr 2012 19:40:31 +0000 (12:40 -0700)
instance of itself. Further calls will simply raise the existing
process. hfdialer can also now be started without the UI showing
by calling "hfdialer noshow"

13 files changed:
dialer.service
projects.pro
qml/DialNumPad.qml
qml/main.qml
src/dbus/com.hfdialer.xml [moved from src/dbus/com.tizen.hfdialer.xml with 82% similarity]
src/dbusdialeradapter.h
src/dialerapplication.cpp
src/dialerapplication.h
src/main.cpp
src/qmldialer.h
src/qmlmainwindow.cpp
src/qmlmainwindow.h
src/src.pro

index 8352dfd..b9ea896 100644 (file)
@@ -1,3 +1,3 @@
 [D-BUS Service]
-Name=com.tizen.hfdialer
+Name=com.hfdialer
 Exec=/usr/bin/dialer -prestart
index 218a571..21f7a7c 100644 (file)
@@ -1,4 +1,4 @@
-VERSION = 0.3.0
+VERSION = 0.3.1
 CONFIG += link_pkgconfig network opengl
 
 TEMPLATE = subdirs
index ca5630b..a4d8b68 100644 (file)
@@ -30,25 +30,6 @@ Item
         }
     }
 
-    function show()
-    {
-        height = 72 * 5 + 4;
-        numPadShown = true;
-    }
-
-    function hide()
-    {
-        height = 72;
-        numPadShown = false;
-    }
-
-    function toggle()
-    {
-        if(numPadShown == true) {hide()} else {show()}
-    }
-
-    Behavior on height {PropertyAnimation {duration: 500; easing.type: Easing.OutBounce}}
-
     Image
     {
         id: numpad
@@ -255,7 +236,6 @@ Item
                 {
                     id: closeButton
                     source: "/usr/share/hfdialer/images/ivi_btn-close.png"
-                    //anchors { left: parent.left; top: parent.top;}
                     height: parent.height   
                     width: (parent.width / 7) - 5
 
@@ -265,6 +245,7 @@ Item
 
                     onClicked: {
                         console.log("CLOSE BUTTON CLICKED")
+
                         Qt.quit()
                         }
                     }
index c8cfddd..694dd09 100644 (file)
@@ -7,7 +7,7 @@
  */
 
 import Qt 4.7
-import com.tizen.hfdialer 1.0
+import com.hfdialer 1.0
 
 import 'javascripts/framework.js' as Support
 
similarity index 82%
rename from src/dbus/com.tizen.hfdialer.xml
rename to src/dbus/com.hfdialer.xml
index 70a08a7..e78a08e 100644 (file)
@@ -1,10 +1,11 @@
 <!DOCTYPE node PUBLIC "-//freedesktop//DTD D-BUS Object Introspection 1.0//EN"
  "http://www.freedesktop.org/standards/dbus/1.0/introspect.dtd">
 <node>
-       <interface name="com.tizen.hfdialer" >
+       <interface name="com.hfdialer" >
                <method name="call" >
                        <arg direction="in" type="s" name="" />
                </method>
                <method name="accept"/>
+               <method name="raise"/>
        </interface>
 </node>
index 6345b21..8c851e4 100644 (file)
@@ -15,7 +15,7 @@
 class DBusDialerAdapter : public QDBusAbstractAdaptor
 {
     Q_OBJECT;
-    Q_CLASSINFO("D-Bus Interface", "com.tizen.hfdialer");
+    Q_CLASSINFO("D-Bus Interface", "com.hfdialer");
 
 public:
     explicit DBusDialerAdapter(DialerApplication *application);
index 36bd002..98d6793 100644 (file)
@@ -13,6 +13,7 @@
 #include "dialerapplication.h"
 #include "dialercontext.h"
 #include "dbusdialeradapter.h"
+#include "hfdialer_adaptor.h"
 #include "pacontrol.h"
 #include "qmlmainwindow.h"
 #include <QtGui>
@@ -136,7 +137,7 @@ void DialerApplication::init()
     else
         m_connected = true;
 
-    DBusDialerAdapter *adapter = new DBusDialerAdapter(this);
+    HfdialerAdaptor *adapter = new HfdialerAdaptor(this);
     if(!adapter)
     {
         qWarning() << "DBus adapter instantiation failed.";
@@ -158,6 +159,8 @@ void DialerApplication::init()
 
    this->connectAll();
 
+   m_mainWindow = QMLMainWindow::instance();
+   connect(m_mainWindow, SIGNAL(closeWindow()),this, SLOT(closeWindow()));
 }
 
 void DialerApplication::modemChanged()
@@ -277,6 +280,18 @@ void DialerApplication::onCallsChanged()
     QMLMainWindow::instance()->tryToShow();
 }
 
+void DialerApplication::raise()
+{
+    TRACE;
+    QMLMainWindow::instance()->tryToShow();
+}
+
+void DialerApplication::closeWindow()
+{
+    TRACE;
+    m_mainWindow->hide();
+}
+
 /* Local Variables:      */
 /* mode:c++              */
 /* c-basic-offset:4      */
index bffac22..756cb29 100644 (file)
@@ -12,6 +12,7 @@
 #define DIALERAPPLICATION_h
 
 #include "managerproxy.h"
+#include "qmlmainwindow.h"
 #include <QSortFilterProxyModel>
 #include <QApplication>
 
@@ -40,7 +41,9 @@ public:
 Q_SIGNALS:
     void showUi();
     void hideUi();
-
+public Q_SLOTS:
+    void closeWindow();
+    void raise();
 private Q_SLOTS:
     void connectAll();
     void messagesWaitingChanged();
@@ -67,7 +70,8 @@ private:
 
     bool          m_connected;
     QString       m_lastError;
-
+    QMLMainWindow *m_mainWindow;
+    QDBusConnection *m_bus;
     Q_DISABLE_COPY(DialerApplication);
 };
 
index f6f322d..dfe2f0b 100644 (file)
 int main(int argc, char *argv[])
 {
     TRACE;
+    QDBusConnection bus = QDBusConnection::systemBus();
+    QStringList serviceNames = bus.interface()->registeredServiceNames();
+       
+    if (serviceNames.contains("com.hfdialer"))
+    {
+        QDBusMessage message = QDBusMessage::createMethodCall("com.hfdialer","/com/dialer","com.hfdialer", "raise");
+       bus.call(message,QDBus::NoBlock);
+       
+       return 0;
+    }
+
     DialerApplication app(argc, argv);  
 
     QMLMainWindow *qmw = QMLMainWindow::instance();
-    qmw->tryToShow();
+    
+    QString argString(argv[1]); 
+
+    if (argString != "noshow")
+       qmw->tryToShow();
 
     return app.exec();
 }
index ea02204..c7a93fa 100644 (file)
@@ -42,32 +42,24 @@ Q_SIGNALS:
 public Q_SLOTS:
     void setMailbox(const QString &number);
     void setModemOnline(bool online);
-
     QString speedDial(int index) const;
     void setSpeedDial(int index, const QString &number);
-
     void dial(const QString &msisdn);
     void hangupAll();
-
     void silenceRingtone();
-
     void sendTones(const QString &tones);
-
     void transfer();
     void swapCalls();
     void releaseAndAnswer();
     void holdAndAnswer();
-
     void createMultiparty();
     void hangupMultiparty();
     void privateChat(const QMLCallItem &callitem);
 
 protected Q_SLOTS:
     void connectAll();
-
     void onCallsChanged();
     void onIncomingCall(CallItem *callitem);
-
     void onCallManagerChanged();
 
 private:
index aa6dfc9..fbdf401 100644 (file)
@@ -43,9 +43,9 @@ public:
 static void registerDataTypes()
 {
     TRACE;
-    qmlRegisterType<QMLDialer>("com.tizen.hfdialer", 1, 0, "Dialer");
+    qmlRegisterType<QMLDialer>("com.hfdialer", 1, 0, "Dialer");
 
-    qmlRegisterUncreatableType<QMLCallItem>("com.tizen.hfdialer", 1, 0, "CallItem", "");
+    qmlRegisterUncreatableType<QMLCallItem>("com.hfdialer", 1, 0, "CallItem", "");
 }
 
 QMLMainWindow::QMLMainWindow(QWidget *parent)
@@ -62,9 +62,7 @@ QMLMainWindow::QMLMainWindow(QWidget *parent)
 
     this->setupUi();
 
-    da->setActiveWindow(this);
-
-    connect(this->engine(), SIGNAL(quit()), this, SLOT(close()));
+    connect(this->engine(), SIGNAL(quit()), this, SLOT(closeEvent()));
 }
 
 QMLMainWindow::~QMLMainWindow()
@@ -109,8 +107,6 @@ void QMLMainWindow::setupUi()
 
     d->engine = new QDeclarativeEngine(this);
 
-    d->engine->addImportPath("/usr/share/hfdialer/qml/base");
-
     d->engine->rootContext()->setContextProperty("controller", this); //TODO: Remove
     this->setSource(QUrl::fromLocalFile("/usr/share/hfdialer/qml/main.qml"));
     d->component = new QDeclarativeComponent(d->engine, this);
@@ -137,25 +133,17 @@ void QMLMainWindow::tryToShow()
     if (d->component->isReady())
         {
             DialerApplication *da = DialerApplication::instance();
-            da->setActiveWindow(this);
+           da->setActiveWindow(this);
             da->activeWindow()->show();
             da->activeWindow()->activateWindow();
-            da->activeWindow()->raise();
             this->show();
         }
  
 }
-void QMLMainWindow::hide()
+void QMLMainWindow::closeEvent() 
 {
     TRACE;
-    QGraphicsView::hide();
-}
-
-void QMLMainWindow::closeEvent(QCloseEvent *event)
-{
-    TRACE;
-    event->accept();
-
+    emit closeWindow();
 }
 
 void QMLMainWindow::onGeometryChanged()
index 54353da..62a07b8 100644 (file)
@@ -27,10 +27,12 @@ public:
     static   QMLMainWindow* instanceP(QWidget* parent);
     ~QMLMainWindow();
 
+Q_SIGNALS:
+    void closeWindow();
+
 public Q_SLOTS:
-    void hide();
     void tryToShow();
-    
+    void closeEvent(); 
     void setAdapter(QMLDialer *adapter); //TODO: Refactor out
 
 protected Q_SLOTS:
@@ -38,9 +40,6 @@ protected Q_SLOTS:
 
     void onGeometryChanged();
 
-protected:
-    virtual void closeEvent(QCloseEvent *event);
-
 private:
     explicit QMLMainWindow(QWidget *parent = 0);
     QMLMainWindowPrivate *d;
index 4555332..23d6e89 100644 (file)
@@ -8,8 +8,8 @@ MOC_DIR = .moc
 OBJECTS_DIR = .obj
 MGEN_OUTDIR = .gen
 
-DEFINES += DBUS_SERVICE_PATH=\\\"/com/tizen/${QMAKE_TARGET}\\\"
-DEFINES += DBUS_SERVICE=\\\"com.tizen.${QMAKE_TARGET}\\\"
+DEFINES += DBUS_SERVICE_PATH=\\\"/com/${QMAKE_TARGET}\\\"
+DEFINES += DBUS_SERVICE=\\\"com.${QMAKE_TARGET}\\\"
 
 verbose {
     DEFINES += VERBOSE 
@@ -76,7 +76,7 @@ HEADERS += \
 
 system(qdbusxml2cpp -p voicecall_interface dbus/org.ofono.voicecall.xml)
 system(qdbusxml2cpp -p operator_interface dbus/org.ofono.operator.xml)
-system(qdbusxml2cpp -a hfdialer_adaptor dbus/com.tizen.hfdialer.xml)
+system(qdbusxml2cpp -a hfdialer_adaptor dbus/com.hfdialer.xml)
 system(qdbusxml2cpp -i dbustypes.h -p manager_interface dbus/org.ofono.manager.xml)
 system(qdbusxml2cpp -i dbustypes.h -p modem_interface dbus/org.ofono.modem.xml)