homescreenapp/hsdomainmodel/src/hscontentservice.cpp
changeset 39 4e8ebe173323
parent 36 cdae8c6c3876
child 55 03646e8da489
equal deleted inserted replaced
36:cdae8c6c3876 39:4e8ebe173323
    62         return NULL;
    62         return NULL;
    63     }
    63     }
    64 
    64 
    65     return widget;
    65     return widget;
    66 }
    66 }
       
    67 
       
    68 /*!
       
    69 
       
    70 */
       
    71 bool HsContentService::addWidget(const QString &uri, const QVariantHash &preferences)
       
    72 {
       
    73     HsWidgetData widgetData;
       
    74     widgetData.uri = uri;
       
    75 
       
    76     QScopedPointer<HsWidgetHost> widget(HsWidgetHost::createInstance(widgetData, preferences));
       
    77     if (!widget.data()) {
       
    78         return false;
       
    79     }
       
    80 
       
    81     HsPage *activePage = HsScene::instance()->activePage();
       
    82     if (!widget->load() || !activePage->addNewWidget(widget.data())) {
       
    83         widget->deleteFromDatabase();
       
    84         return false;
       
    85     }
       
    86 
       
    87     HsWidgetHost *taken = widget.take();
       
    88     taken->initializeWidget();
       
    89     taken->showWidget();
       
    90     activePage->layoutNewWidgets();
       
    91     return true;
       
    92 }
       
    93 
       
    94 /*!
       
    95 
       
    96 */
       
    97 HsContentService *HsContentService::instance()
       
    98 {
       
    99     if (!mInstance) {
       
   100         mInstance.reset(new HsContentService);
       
   101     }
       
   102     return mInstance.data();
       
   103 }
       
   104 
       
   105 /*!
       
   106     Points to the content service instance.
       
   107 */
       
   108 QScopedPointer<HsContentService> HsContentService::mInstance(0);