contentstorage/caclient/src/caqtsfhandlerloader.cpp
changeset 127 7b66bc3c6dc9
parent 107 b34d53f6acdf
equal deleted inserted replaced
126:efda7c0771b9 127:7b66bc3c6dc9
    24 #include <qstringlist.h>
    24 #include <qstringlist.h>
    25 #include <qservicemanager.h>
    25 #include <qservicemanager.h>
    26 
    26 
    27 #include "cahandler.h"
    27 #include "cahandler.h"
    28 #include "caqtsfhandlerloader.h"
    28 #include "caqtsfhandlerloader.h"
    29 #include "caclient_defines.h"
       
    30 
    29 
    31 QTM_USE_NAMESPACE
    30 QTM_USE_NAMESPACE
    32 
    31 
    33 /*!
    32 /*!
    34     \class CaQtSfHandlerLoader
    33     \class CaQtSfHandlerLoader
    74         }
    73         }
    75     }
    74     }
    76 }
    75 }
    77 
    76 
    78 /*!
    77 /*!
    79     Loads handler implementations appropriate for the requested entry type name and command.
    78     Loads handler implementations appropriate for the requested
       
    79     entry type name and command.
    80 
    80 
    81     The caller takes ownership of the returned pointer.
    81     The caller takes ownership of the returned pointer.
    82 
    82 
    83     \param entryTypeName Entry type name.
    83     \param entryTypeName Entry type name.
    84     \param commandName Name of the command to be handled.
    84     \param commandName Name of the command to be handled (unused).
    85     \return A pointer to handler serving the entry type and command if found, NULL otherwise.
    85     \return A pointer to handler serving the entry type and command
       
    86     if found, NULL otherwise.
    86 */
    87 */
    87 CaHandler *CaQtSfHandlerLoader::loadHandler(const QString &entryTypeName,
    88 CaHandler *CaQtSfHandlerLoader::loadHandler(const QString &entryTypeName)
    88         const QString &commandName)
       
    89 {
    89 {
    90     Q_UNUSED(commandName);
       
    91 
       
    92     QString typeName(entryTypeName);
       
    93     if (entryTypeName == WIDGET_ENTRY_TYPE_NAME
       
    94         || entryTypeName == PACKAGE_ENTRY_TYPE_NAME) {
       
    95         typeName = QString(APPLICATION_ENTRY_TYPE_NAME);
       
    96     }
       
    97 
       
    98     QServiceManager serviceManager;
    90     QServiceManager serviceManager;
    99     QServiceFilter serviceFilter("com.nokia.homescreen.ICommandHandler");
    91     QServiceFilter serviceFilter("com.nokia.homescreen.ICommandHandler");
   100     serviceFilter.setCustomAttribute("entryTypeName", typeName);
    92     serviceFilter.setCustomAttribute("entryTypeName", entryTypeName);
   101     QList<QServiceInterfaceDescriptor> serviceInterfaceDescriptorList =
    93     QList<QServiceInterfaceDescriptor> serviceInterfaceDescriptorList =
   102         serviceManager.findInterfaces(serviceFilter);
    94         serviceManager.findInterfaces(serviceFilter);
   103     CaHandler *interfaceHandler = NULL;
    95     CaHandler *interfaceHandler = NULL;
   104     if (!serviceInterfaceDescriptorList.isEmpty()) {
    96     if (!serviceInterfaceDescriptorList.isEmpty()) {
   105         QServiceInterfaceDescriptor serviceInterfaceDescriptor =
    97         QServiceInterfaceDescriptor serviceInterfaceDescriptor =
   108             serviceManager.loadInterface(serviceInterfaceDescriptor);
   100             serviceManager.loadInterface(serviceInterfaceDescriptor);
   109          interfaceHandler = qobject_cast<CaHandler *>(handler);
   101          interfaceHandler = qobject_cast<CaHandler *>(handler);
   110     }
   102     }
   111     return interfaceHandler;
   103     return interfaceHandler;
   112 }
   104 }
   113 
       
   114