93 } |
93 } |
94 |
94 |
95 // |
95 // |
96 // The rest |
96 // The rest |
97 // |
97 // |
98 if (mUtilities == NULL) |
98 mErrorCode = XQService::EArgumentError; |
99 mUtilities = new XQAiwUtils(); |
99 mErrorMsg = XQAiwUtils::createErrorMessage(mErrorCode, "XQAiwUriDriver:Not custom handler for", mUri.toString()); |
100 if (mUtilities == NULL) |
100 |
101 { |
101 return false; |
102 XQSERVICE_DEBUG_PRINT("XQAiwUriDriver::Can not create aiw utils"); |
102 |
103 return false; |
|
104 } |
|
105 |
|
106 int applicationId = 0; |
|
107 if (mUtilities->findApplication(mUri, applicationId) != XQService::ENoError) |
|
108 { |
|
109 // Not found |
|
110 mErrorCode = XQService::EServerNotFound; |
|
111 mErrorMsg = XQAiwUtils::createErrorMessage(mErrorCode, "XQAiwUriDriver", mUri.toString()); |
|
112 return false; // No application registered for uri |
|
113 } |
|
114 XQSERVICE_DEBUG_PRINT("Application id %x", applicationId); |
|
115 |
|
116 // Create space separated command line args |
|
117 QString args = mUtilities->createCmdlineArgs(mArguments); |
|
118 XQSERVICE_DEBUG_PRINT("args %s", qPrintable(args)); |
|
119 |
|
120 mErrorCode = mUtilities->launchApplication(applicationId, args); |
|
121 XQSERVICE_DEBUG_PRINT("XQAiwUriDriver::errorCode %d", mErrorCode); |
|
122 |
|
123 QVariant ret(!mErrorCode); |
|
124 retValue = ret; |
|
125 |
|
126 return (!mErrorCode); |
|
127 } |
103 } |
128 |
104 |
129 const QString& XQAiwUriDriver::lastErrorMessage() const |
105 const QString& XQAiwUriDriver::lastErrorMessage() const |
130 { |
106 { |
131 XQSERVICE_DEBUG_PRINT("XQAiwUriDriver::lastErrorMessage: %s", qPrintable(mErrorMsg)); |
107 XQSERVICE_DEBUG_PRINT("XQAiwUriDriver::lastErrorMessage: %s", qPrintable(mErrorMsg)); |
248 { |
224 { |
249 mErrorCode = serviceManager.error(); |
225 mErrorCode = serviceManager.error(); |
250 return false; |
226 return false; |
251 } |
227 } |
252 |
228 |
253 QMetaObject::invokeMethod(activityManager, "launchActivity", Q_ARG(QString, uri.toString())); |
229 QMetaObject::invokeMethod(activityManager, "launchActivity", Q_ARG(QUrl,uri)); |
254 mErrorCode = serviceManager.error(); |
230 mErrorCode = serviceManager.error(); |
255 |
231 |
256 XQSERVICE_DEBUG_PRINT("\tinvokeMethod=%d", mErrorCode); |
232 XQSERVICE_DEBUG_PRINT("\tinvokeMethod=%d", mErrorCode); |
257 delete activityManager; |
233 delete activityManager; |
258 |
234 |