telutils/dialpad/tsrc/dialpadtest/dialpadtestview.cpp
changeset 52 d841fb1cc818
parent 50 2313cb430f28
--- a/telutils/dialpad/tsrc/dialpadtest/dialpadtestview.cpp	Fri Sep 17 08:33:29 2010 +0300
+++ b/telutils/dialpad/tsrc/dialpadtest/dialpadtestview.cpp	Mon Oct 04 00:54:29 2010 +0300
@@ -16,6 +16,15 @@
 */
 
 #include <QtGui>
+
+//#define DIALPAD_ENABLE_TESTABILITY
+#ifdef DIALPAD_ENABLE_TESTABILITY
+    #include <QtPlugin>
+    #include <QPluginLoader>
+    #include <QLibraryInfo>
+    #include "testabilityinterface.h"
+#endif
+
 #include <hbtoolbar.h>
 #include <hbaction.h>
 #include <hblabel.h>
@@ -83,6 +92,9 @@
 DialpadTestView::~DialpadTestView()
 {
     delete mDialpad;
+#ifdef DIALPAD_ENABLE_TESTABILITY
+    delete mTestabilityInterface;
+#endif
 }
 
 void DialpadTestView::openDialpad()
@@ -255,3 +267,34 @@
     }
 }
 
+void DialpadTestView::loadTestabilityPlugin()
+{
+#ifdef DIALPAD_ENABLE_TESTABILITY
+    QString testabilityPlugin = "testability/testability";
+    QString testabilityPluginPostfix = ".dll";
+
+    testabilityPlugin = QLibraryInfo::location(QLibraryInfo::PluginsPath) +
+                                               QObject::tr("/") + testabilityPlugin +
+                                               testabilityPluginPostfix;
+
+    QPluginLoader loader(testabilityPlugin.toLatin1().data());
+
+    QObject *plugin = loader.instance();
+    if (plugin) {
+            qDebug("Testability plugin loaded successfully!");
+            mTestabilityInterface = qobject_cast<TestabilityInterface *>(plugin);
+
+            if (mTestabilityInterface) {
+                    qDebug("Testability interface obtained!");
+                    mTestabilityInterface->Initialize();
+            } else {
+                    qDebug("Failed to get testability interface!");
+            }
+    } else {
+            qDebug("Testability plugin %s load failed with error:%s",
+                   testabilityPlugin.toLatin1().data(),
+                   loader.errorString().toLatin1().data());
+    }
+#endif
+}
+