ActivityTsModel::ActivityTsModel(QObject *parent) : QObject(parent), mMonitor(0), mAfManager(0) , mMaxItems(10) { { QServiceManager serviceManager; mAfManager = serviceManager.loadInterface(KActivityManager); if (mAfManager) { mAfManager->setParent(this); } else { throw std::runtime_error("Cannot create critical com.nokia.qt.activities.ActivityManager service"); } } { XQSettingsManager crManager; QVariant itemsNumberVariant = crManager.readItemValue(XQCentralRepositorySettingsKey(KTsDeviceDialogUid, KItemsLimit), XQSettingsManager::TypeInt); if (!itemsNumberVariant.isNull()) { int number = itemsNumberVariant.toInt(); if (number > 0) { mMaxItems = number; } } } connect(mAfManager, SIGNAL(dataChanged()), SLOT(getActivities())); connect(mAfManager, SIGNAL(thumbnailReady(QPixmap,void*)), SLOT(convertScreenshotToThumbnail(QPixmap,void*))); getActivities(); }
QTM_USE_NAMESPACE void unregisterExampleService() { QServiceManager m; m.removeService("LandlineDialer"); m.removeService("VoipDialer"); }
void ServiceBrowser::reloadInterfaceImplementationsList() { QString serviceName; if (servicesListWidget->currentItem() && servicesListWidget->currentItem() != showAllServicesItem) { serviceName = servicesListWidget->currentItem()->text(); interfacesGroup->setTitle(tr("Interfaces implemented by %1").arg(serviceName)); } else { interfacesGroup->setTitle(tr("All interface implementations")); } QServiceManager *manager = serviceManager; if (serviceName.endsWith(" (system)")) { serviceName.chop(9); manager = systemManager; } QList<QServiceInterfaceDescriptor> descriptors = manager->findInterfaces(serviceName); attributesListWidget->clear(); interfacesListWidget->clear(); for (int i=0; i<descriptors.count(); i++) { if (descriptors[i].scope() != manager->scope() && !serviceName.isEmpty()) continue; QString text = QString("%1 %2.%3") .arg(descriptors[i].interfaceName()) .arg(descriptors[i].majorVersion()) .arg(descriptors[i].minorVersion()); QServiceInterfaceDescriptor defaultInterfaceImpl = manager->interfaceDefault(descriptors[i].interfaceName()); if (serviceName.isEmpty()) { text += " (" + descriptors[i].serviceName() + ")"; if (descriptors[i].scope() == QService::SystemScope) { text += tr(" (system"); defaultInterfaceImpl = systemManager->interfaceDefault(descriptors[i].interfaceName()); if (descriptors[i] == defaultInterfaceImpl) text += tr(" default)"); else text += ")"; defaultInterfaceImpl = QServiceInterfaceDescriptor(); } } if (descriptors[i] == defaultInterfaceImpl) text += tr(" (default)"); QListWidgetItem *item = new QListWidgetItem(text); item->setData(Qt::UserRole, qVariantFromValue(descriptors[i])); interfacesListWidget->addItem(item); } defaultInterfaceButton->setEnabled(false); }
void registerExampleService() { unregisterExampleService(); QServiceManager m; QStringList exampleXmlFiles; exampleXmlFiles << "landlinedialerservice.xml" << "voipdialerservice.xml" << "remotedialerservice.xml"; foreach (const QString &fileName, exampleXmlFiles) { const QString path = QCoreApplication::applicationDirPath() + "/xmldata/" + fileName; m.addService(path); } }
int main(int argc, char *argv[]) { QCoreApplication app(argc, argv); QServiceManager s; if (QFile::exists(xml)) { s.removeService("calendarwidgetplugin"); s.addService(xml); } else { s.removeService("calendarwidgetplugin"); } }
/*! Adds widget \a widgetUri utilizing service interface and invokeMethod call */ int HsBookmarkPublishClient::addWidget(QString Title, QString Url) { // find interface IHomeScreenClient from service hshomescreenclientplugin QServiceManager manager; QServiceFilter filter("com.nokia.symbian.IHomeScreenClient"); filter.setServiceName("hshomescreenclientplugin"); QList<QServiceInterfaceDescriptor> interfaces = manager.findInterfaces(filter); QVariantHash params; QString iconFileName; params["bookmarkTitle"] = Title; params["bookmarkUrl"] = Url; params["faviconPath"] = BEDROCK_PROVISIONING::BedrockProvisioning::createBedrockProvisioning()->valueAsString("DataBaseDirectory"); if(interfaces.isEmpty()) { QServiceManager::Error error = manager.error(); return FAILURE; } // Retrieve the favicon and check its exsistance QIcon icon = QWebSettings::iconForUrl(Url); if (!icon.isNull()) iconFileName = getIconFileName(Url); params["faviconFileName"] = iconFileName; saveFavicon(Url, iconFileName); QObject* service = manager.loadInterface(interfaces.first()); // access service's addWidget function bool retVal = false; bool ret = QMetaObject::invokeMethod( service, "addWidget", Qt::DirectConnection, Q_RETURN_ARG(bool, retVal), Q_ARG(QString,mWidgetUri), Q_ARG(QVariantHash,params)); if(!ret){ // invokeMethod returned error return FAILURE; } if(!retVal){ // addWidget returned error return FAILURE; } return SUCCESS; }
QTM_USE_NAMESPACE int main(int argc, char *argv[]) { QCoreApplication app(argc, argv); QServiceManager manager; if (QFile::exists("c:/private/2002DD16/import/nmregister.xml")) { manager.removeService("nmregister"); manager.addService("c:/private/2002DD16/import/nmregister.xml"); } else { manager.removeService("nmregister"); } }
tst_QContactActions::~tst_QContactActions() { QString path = QApplication::applicationDirPath() + "/dummyplugin/plugins"; QApplication::removeLibraryPath(path); // clean up any actions/services. QServiceManager sm; QStringList allServices = sm.findServices(); foreach(const QString& serv, allServices) { if (serv.startsWith("tst_qcontact")) { if (!sm.removeService(serv)) { qDebug() << " tst_qca: ctor: cleaning up test service" << serv << "failed:" << sm.error(); } } } }
/* * This is the slot for Invoke Button, which loads the OOP service * and then invokes the Remote Method provided by the service. */ void sfwtestclient::invokeButtonClicked() { ui.textEditBox->clear(); QServiceManager serviceManager; QServiceFilter serviceFilter; serviceFilter.setServiceName("SfwTestService"); serviceFilter.setInterface("com.nokia.qt.SfwTest"); QList<QServiceInterfaceDescriptor> interfaceList; interfaceList = serviceManager.findInterfaces(serviceFilter); if(!interfaceList.count()) { ui.textEditBox->setText("No Interfaces Found\n"); return; } if(interfaceList.count() > 1) { ui.textEditBox->setText("Multiple Interfaces Found\n"); return; } ui.textEditBox->setText("Loading Interface...\n"); QObject *sfwTestService = NULL; sfwTestService = serviceManager.loadInterface(interfaceList.at(0)); if (sfwTestService) { ui.textEditBox->setText("Loading Interface: Success\n"); ui.textEditBox->setText("Invoking Interface Method: getServiceCount...\n"); int result = 0; QMetaObject::invokeMethod(sfwTestService, "getServiceCount", Q_RETURN_ARG(int, result)); if (!result) { ui.textEditBox->setText("Invoke Interface Method getServiceCount: No Services Found\n"); } else { QString fmtString; ui.textEditBox->setText(fmtString.sprintf("Invoke Interface Method getServiceCount: Found %d Services\n",result)); } delete sfwTestService; sfwTestService = NULL; } else {
FtuFirstTimeUse::FtuFirstTimeUse(QObject* aParent) : QObject(aParent), mRuntime(NULL) { QDEBUG("FTU::FtuFirstTimeUse::FtuFirstTimeUse"); registerServicePlugins(); QServiceManager manager; QServiceFilter filter(ftuRuntimeUri); QList<QServiceInterfaceDescriptor> interfaces = manager.findInterfaces( filter); QDEBUG("ftu: found " << interfaces.count() << " instances of runtime";) if(interfaces.count() > 0){
/* * This is the method which clients can invoke remotely * using service framework. This method return the total * number of services available in service framework. */ int SfwTestService::getServiceCount() { QServiceManager serviceManager; QStringList serviceList = serviceManager.findServices(); //Below code simulates long running event to make this method //time consuming. #ifdef ENABLE_LONG_RUNNING_EVENT QEventLoop* loop = new QEventLoop( this ); QTimer::singleShot(10000, loop, SLOT(quit())); loop->exec(); delete loop; #endif return serviceList.count(); }
/* * This is a slot for Add Service Button, it adds the OOP sfwtest service. */ void sfwtestclient::addServiceButtonClicked() { ui.textEditBox->clear(); QFileInfo fileInfo(sfwtestservicefile); QString filePath = fileInfo.absoluteFilePath(); QServiceManager serviceManager; if (QFile::exists(filePath)) { if (serviceManager.addService(filePath)) { ui.textEditBox->setText("Add Service: Success\n"); } else { ui.textEditBox->setText("Add Service: Service Exists Already\n"); } } else { ui.textEditBox->setText("Removing Service\n"); serviceManager.removeService("SfwTestService\n"); } }
void ServiceBrowser::setDefaultInterfaceImplementation() { QListWidgetItem *item = interfacesListWidget->currentItem(); if (!item) return; QServiceInterfaceDescriptor descriptor = item->data(Qt::UserRole).value<QServiceInterfaceDescriptor>(); if (descriptor.isValid()) { QServiceManager *manager = serviceManager; if (descriptor.scope() == QService::SystemScope) manager = systemManager; if (manager->setInterfaceDefault(descriptor)) { int currentIndex = interfacesListWidget->row(item); reloadInterfaceImplementationsList(); interfacesListWidget->setCurrentRow(currentIndex); } else { qWarning() << "Unable to set default service for interface:" << descriptor.interfaceName(); } } }
void ToDoTool::init() { bool ok; QString interfaceName = QInputDialog::getText(this, tr("ToDoTool"), tr("Specify Notes Manager interface:"), QLineEdit::Normal, "com.nokia.qt.examples.NotesManager", &ok); if (ok) { QServiceInterfaceDescriptor desc = serviceManager->interfaceDefault(interfaceName); if (desc.isValid()) { QServiceManager mgr; notesManager = mgr.loadInterface(desc); if (notesManager) notesManager->setParent(this); bool connect; QMetaObject::invokeMethod(notesManager, "init", Q_RETURN_ARG(bool, connect)); if (connect) { currentNote = 1; searchWord = ""; refreshList(); addButton->setEnabled(true); deleteButton->setEnabled(true); searchButton->setEnabled(true); nextButton->setEnabled(true); prevButton->setEnabled(true); QObject::connect(notesManager, SIGNAL(soundAlarm(QDateTime)), this, SLOT(soundAlarm(QDateTime))); } else { QMessageBox msgBox; msgBox.setWindowTitle(tr("ToDoTool")); msgBox.setText("Unable to access notes manager database\n in current or home directory"); msgBox.exec(); } } else {
tst_QContactActions::tst_QContactActions() { // set the correct path to look for plugins QString path = QApplication::applicationDirPath() + "/dummyplugin/plugins"; QApplication::addLibraryPath(path); // and add the sendemail + call actions to the service framework QServiceManager sm; // clean up any actions/services. QStringList allServices = sm.findServices(); foreach(const QString& serv, allServices) { if (serv.startsWith("tst_qcontact")) { if (!sm.removeService(serv)) { qDebug() << " tst_qca: ctor: cleaning up test service" << serv << "failed:" << sm.error(); } } } if (!sm.addService(QCoreApplication::applicationDirPath() + "/plugins/contacts/xmldata/sendemailactionservice.xml")) qDebug() << " tst_qca: ctor: unable to add SendEmail service:" << sm.error(); if (!sm.addService(QCoreApplication::applicationDirPath() + "/plugins/contacts/xmldata/multiactionservice.xml")) qDebug() << " tst_qca: ctor: unable to add MultiAction service:" << sm.error(); }
int main(int argc, char *argv[]) { QCoreApplication app(argc, argv); QServiceManager s; if (QFile::exists(filemanagerxml)) { s.addService(filemanagerxml); } else { s.removeService("FileManagerService"); } if (QFile::exists(bluetoothxml)) { s.addService(bluetoothxml); } else { s.removeService("BluetoothTransferService"); } if (QFile::exists(notemanagerxml)) { s.addService(notemanagerxml); } else { s.removeService("NotesManagerService"); } }