ftuapplication/src/ftufirsttimeuse.cpp
changeset 9 aa22d2c19e57
parent 7 446dc0e90e84
equal deleted inserted replaced
7:446dc0e90e84 9:aa22d2c19e57
    41 
    41 
    42 FtuFirstTimeUse::FtuFirstTimeUse(QObject* aParent) : 
    42 FtuFirstTimeUse::FtuFirstTimeUse(QObject* aParent) : 
    43     QObject(aParent),
    43     QObject(aParent),
    44     mRuntime(NULL)
    44     mRuntime(NULL)
    45 {  
    45 {  
    46     FTUTEST_FUNC_ENTRY("FTU::FtuFirstTimeUse::FtuFirstTimeUse");
    46     QDEBUG("FTU::FtuFirstTimeUse::FtuFirstTimeUse");
    47     
    47     
    48     registerServicePlugins();
    48     registerServicePlugins();
    49 
    49 
    50     QServiceManager manager;
    50     QServiceManager manager;
    51     QServiceFilter filter(ftuRuntimeUri);
    51     QServiceFilter filter(ftuRuntimeUri);
    52     QList<QServiceInterfaceDescriptor> interfaces = manager.findInterfaces(
    52     QList<QServiceInterfaceDescriptor> interfaces = manager.findInterfaces(
    53                                                                     filter);
    53                                                                     filter);
    54     
    54     
    55     qDebug() << "ftu: found " << interfaces.count() 
    55     QDEBUG("ftu: found " << interfaces.count() 
    56              << " instances of runtime";
    56              << " instances of runtime";)
    57     
    57     
    58     if(interfaces.count() > 0){
    58     if(interfaces.count() > 0){
    59         mRuntime = (QStateMachine*)(manager.loadInterface(
    59         mRuntime = (QStateMachine*)(manager.loadInterface(
    60                                         interfaces.first().interfaceName()));
    60                                         interfaces.first().interfaceName()));
    61     }
    61     }
    67         connect(mRuntime, SIGNAL(started()), SLOT(handleRuntimeStarted()));
    67         connect(mRuntime, SIGNAL(started()), SLOT(handleRuntimeStarted()));
    68         connect(mRuntime, SIGNAL(stopped()), SLOT(handleRuntimeStopped()));
    68         connect(mRuntime, SIGNAL(stopped()), SLOT(handleRuntimeStopped()));
    69         connect(mRuntime, SIGNAL(faulted()), SLOT(handleRuntimeFaulted()));    
    69         connect(mRuntime, SIGNAL(faulted()), SLOT(handleRuntimeFaulted()));    
    70     }
    70     }
    71     
    71     
    72     FTUTEST_FUNC_EXIT("FTU::FtuFirstTimeUse::FtuFirstTimeUse");
    72     QDEBUG("FTU::FtuFirstTimeUse::FtuFirstTimeUse");
    73      
    73      
    74 }
    74 }
    75 
    75 
    76 // ---------------------------------------------------------------------------
    76 // ---------------------------------------------------------------------------
    77 // FtuFirstTimeUse::~FtuFirstTimeUse()
    77 // FtuFirstTimeUse::~FtuFirstTimeUse()
    93 // FtuFirstTimeUse::start()
    93 // FtuFirstTimeUse::start()
    94 // ---------------------------------------------------------------------------
    94 // ---------------------------------------------------------------------------
    95 //
    95 //
    96 void FtuFirstTimeUse::start()
    96 void FtuFirstTimeUse::start()
    97 {
    97 {
    98     FTUTEST_FUNC_ENTRY("FTU::FtuFirstTimeUse::start");
    98     QDEBUG("FTU::FtuFirstTimeUse::start");
    99     
    99     
   100     if(mRuntime) {
   100     if(mRuntime) {
   101         mRuntime->start();
   101         mRuntime->start();
   102     } else {
   102     } else {
   103         emit exit();
   103         emit exit();
   104     }
   104     }
   105     
   105     
   106     FTUTEST_FUNC_EXIT("FTU::FtuFirstTimeUse::start");
   106     QDEBUG("FTU::FtuFirstTimeUse::start");
   107 }
   107 }
   108 
   108 
   109 // ---------------------------------------------------------------------------
   109 // ---------------------------------------------------------------------------
   110 // FtuFirstTimeUse::stop()
   110 // FtuFirstTimeUse::stop()
   111 // ---------------------------------------------------------------------------
   111 // ---------------------------------------------------------------------------
   112 //
   112 //
   113 void FtuFirstTimeUse::stop()
   113 void FtuFirstTimeUse::stop()
   114 {
   114 {
   115     FTUTEST_FUNC_ENTRY("FTU::FtuFirstTimeUse::stop");
   115     QDEBUG("FTU::FtuFirstTimeUse::stop");
   116     
   116     
   117     
   117     
   118     if (mRuntime && mRuntime->isRunning()) {
   118     if (mRuntime && mRuntime->isRunning()) {
   119             QMetaObject::invokeMethod(mRuntime, "event_exit");
   119             QMetaObject::invokeMethod(mRuntime, "event_exit");
   120         }
   120         }
   121 
   121 
   122     
   122     
   123     FTUTEST_FUNC_EXIT("FTU::FtuFirstTimeUse::stop");
   123     QDEBUG("FTU::FtuFirstTimeUse::stop");
   124 }
   124 }
   125 
   125 
   126 // ---------------------------------------------------------------------------
   126 // ---------------------------------------------------------------------------
   127 // FtuFirstTimeUse::handleRuntimeStarted()
   127 // FtuFirstTimeUse::handleRuntimeStarted()
   128 // ---------------------------------------------------------------------------
   128 // ---------------------------------------------------------------------------
   152 // FtuFirstTimeUse::registerServicePlugins()
   152 // FtuFirstTimeUse::registerServicePlugins()
   153 // ---------------------------------------------------------------------------
   153 // ---------------------------------------------------------------------------
   154 //
   154 //
   155 void FtuFirstTimeUse::registerServicePlugins()
   155 void FtuFirstTimeUse::registerServicePlugins()
   156 {
   156 {
   157     FTUTEST_FUNC_ENTRY("FTU::FtuFirstTimeUse::registerServicePlugins()");
   157     QDEBUG("FTU::FtuFirstTimeUse::registerServicePlugins()");
   158     QStringList pluginPaths;
   158     QStringList pluginPaths;
   159 
   159 
   160     pluginPaths << "fturesources/plugins";
   160     pluginPaths << "fturesources/plugins";
   161 
   161 
   162     QFileInfoList drives = QDir::drives();
   162     QFileInfoList drives = QDir::drives();
   174         //Check plugin path relative to current dir
   174         //Check plugin path relative to current dir
   175         if(QDir(pluginPath).exists()) {
   175         if(QDir(pluginPath).exists()) {
   176             registerServicePlugins(pluginPath);
   176             registerServicePlugins(pluginPath);
   177         }
   177         }
   178     }
   178     }
   179     FTUTEST_FUNC_EXIT("FTU::FtuFirstTimeUse::registerServicePlugins()");
   179     QDEBUG("FTU::FtuFirstTimeUse::registerServicePlugins()");
   180 }
   180 }
   181 
   181 
   182 // ---------------------------------------------------------------------------
   182 // ---------------------------------------------------------------------------
   183 // FtuFirstTimeUse::registerServicePlugins()
   183 // FtuFirstTimeUse::registerServicePlugins()
   184 // ---------------------------------------------------------------------------
   184 // ---------------------------------------------------------------------------
   185 //
   185 //
   186 void FtuFirstTimeUse::registerServicePlugins(const QString &root)
   186 void FtuFirstTimeUse::registerServicePlugins(const QString &root)
   187 {
   187 {
   188     FTUTEST_FUNC_ENTRY("FTU::FtuFirstTimeUse::registerServicePlugins(const QString &)");
   188     QDEBUG("FTU::FtuFirstTimeUse::registerServicePlugins(const QString &)");
   189     qDebug() << "FTU: root: " << root;
   189     QDEBUG("FTU: root: " << root;)
   190     QDir dir = QDir(root);
   190     QDir dir = QDir(root);
   191     QFileInfoList fileInfos = dir.entryInfoList(QDir::AllDirs | QDir::NoDotAndDotDot);
   191     QFileInfoList fileInfos = dir.entryInfoList(QDir::AllDirs | QDir::NoDotAndDotDot);
   192 
   192 
   193     foreach (QFileInfo fileInfo, fileInfos) {
   193     foreach (QFileInfo fileInfo, fileInfos) {
   194         registerServicePlugins(fileInfo.absoluteFilePath());
   194         registerServicePlugins(fileInfo.absoluteFilePath());
   197     fileInfos = dir.entryInfoList(QStringList("*.xml"));
   197     fileInfos = dir.entryInfoList(QStringList("*.xml"));
   198 
   198 
   199     if (!fileInfos.isEmpty()) {
   199     if (!fileInfos.isEmpty()) {
   200         //Plugin dll and xml are in the same directory
   200         //Plugin dll and xml are in the same directory
   201         QApplication::addLibraryPath(root);
   201         QApplication::addLibraryPath(root);
   202         qDebug() << QString("FTU::FtuFirstTimeUse::registerServicePlugins - Directory added to application's library paths: ")
   202         QDEBUG("FTU::FtuFirstTimeUse::registerServicePlugins - Directory added to application's library paths: "
   203                  << root;
   203                  << root;)
   204         QServiceManager manager;
   204         QServiceManager manager;
   205         foreach(QFileInfo fileInfo, fileInfos) {
   205         foreach(QFileInfo fileInfo, fileInfos) {
   206             manager.addService(fileInfo.absoluteFilePath());
   206             manager.addService(fileInfo.absoluteFilePath());
   207             qDebug() << QString("FTU::FtuFirstTimeUse::registerServicePlugins - Plugin registered: ") + fileInfo.fileName();
   207             QDEBUG("FTU::FtuFirstTimeUse::registerServicePlugins - Plugin registered: " << fileInfo.fileName();)
   208         }
   208         }
   209     }
   209     }
   210     FTUTEST_FUNC_EXIT("FTU::FtuFirstTimeUse::registerServicePlugins(const QString &)");
   210     QDEBUG("FTU::FtuFirstTimeUse::registerServicePlugins(const QString &)");
   211 }
   211 }