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(); }
/*! 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; }
/* * 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 {
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 {