コード例 #1
0
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();
}
コード例 #2
0
ファイル: qmldialer.cpp プロジェクト: KDE/android-qt-mobility
QTM_USE_NAMESPACE

void unregisterExampleService()
{
    QServiceManager m;
    m.removeService("LandlineDialer");
    m.removeService("VoipDialer");
}
コード例 #3
0
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);
}
コード例 #4
0
ファイル: qmldialer.cpp プロジェクト: KDE/android-qt-mobility
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);
    }
}
コード例 #5
0
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");
    }
}
コード例 #6
0
/*!
    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;
}
コード例 #7
0
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");
    }  
}
コード例 #8
0
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();
            }
        }
    }
}
コード例 #9
0
/*
 * 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 {
コード例 #10
0
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){
コード例 #11
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();
}
コード例 #12
0
/*
 * 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");
    }

}
コード例 #13
0
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();
        }
    }
}
コード例 #14
0
ファイル: sfwnotes.cpp プロジェクト: Esclapion/qt-mobility
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 {
コード例 #15
0
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();
}
コード例 #16
0
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");
	}
}