activityfw/activitylauncher/activitylauncherview.cpp
changeset 66 32469d7d46ff
parent 61 8e5041d13c84
equal deleted inserted replaced
61:8e5041d13c84 66:32469d7d46ff
     9 * Initial Contributors:
     9 * Initial Contributors:
    10 * Nokia Corporation - initial contribution.
    10 * Nokia Corporation - initial contribution.
    11 *
    11 *
    12 * Contributors:
    12 * Contributors:
    13 *
    13 *
    14 * Description: 
    14 * Description:
    15 *
    15 *
    16 */
    16 */
    17 #include "activitylauncherview.h"
    17 #include "activitylauncherview.h"
    18 
    18 
    19 #include <QGraphicsLinearLayout>
    19 #include <QGraphicsLinearLayout>
    33 
    33 
    34 ActivityLauncherView::ActivityLauncherView(QGraphicsItem *parent) : HbView(parent), mModel(NULL), mActivityManager(NULL)
    34 ActivityLauncherView::ActivityLauncherView(QGraphicsItem *parent) : HbView(parent), mModel(NULL), mActivityManager(NULL)
    35 {
    35 {
    36     QServiceManager serviceManager;
    36     QServiceManager serviceManager;
    37     mActivityManager = serviceManager.loadInterface("com.nokia.qt.activities.ActivityManager");
    37     mActivityManager = serviceManager.loadInterface("com.nokia.qt.activities.ActivityManager");
    38     
    38 
    39     if (!mActivityManager) {
    39     if (!mActivityManager) {
    40         qFatal("Cannot initialize critical com.nokia.qt.activities.ActivityManager service");
    40         qFatal("Cannot initialize critical com.nokia.qt.activities.ActivityManager service");
    41     }
    41     }
    42 
    42 
    43     // create UI
    43     // create UI
    44     setTitle(tr("Activity launcher"));
    44     setTitle(tr("Activity launcher"));
    45     QGraphicsLinearLayout* layout = new QGraphicsLinearLayout(Qt::Vertical);
    45     QGraphicsLinearLayout *layout = new QGraphicsLinearLayout(Qt::Vertical);
    46     QGraphicsLinearLayout* statusLayout = new QGraphicsLinearLayout(Qt::Horizontal);
    46     QGraphicsLinearLayout *statusLayout = new QGraphicsLinearLayout(Qt::Horizontal);
    47     mStatusLabel = new HbLabel(this);
    47     mStatusLabel = new HbLabel(this);
    48     mStatusLabel->setAlignment(Qt::AlignLeft);
    48     mStatusLabel->setAlignment(Qt::AlignLeft);
    49     statusLayout->setMaximumHeight(15);
    49     statusLayout->setMaximumHeight(15);
    50 
    50 
    51     HbLabel* statusHeader = new HbLabel("Status: ");
    51     HbLabel *statusHeader = new HbLabel("Status: ");
    52     statusHeader->setSizePolicy(QSizePolicy::Maximum, QSizePolicy::Maximum);
    52     statusHeader->setSizePolicy(QSizePolicy::Maximum, QSizePolicy::Maximum);
    53     statusLayout->addItem(statusHeader);
    53     statusLayout->addItem(statusHeader);
    54     statusLayout->addItem(mStatusLabel);
    54     statusLayout->addItem(mStatusLabel);
    55 
    55 
    56     HbGridView* activities = new HbGridView();
    56     HbGridView *activities = new HbGridView();
    57     connect(activities, SIGNAL(activated(QModelIndex)), this, SLOT(itemPressed(QModelIndex)));
    57     connect(activities, SIGNAL(activated(QModelIndex)), this, SLOT(itemPressed(QModelIndex)));
    58     activities->setRowCount(1);
    58     activities->setRowCount(1);
    59     activities->setColumnCount(1);
    59     activities->setColumnCount(1);
    60 
    60 
    61     activities->setScrollDirections(Qt::Horizontal);
    61     activities->setScrollDirections(Qt::Horizontal);
    71     getActivitiesList();
    71     getActivitiesList();
    72 }
    72 }
    73 
    73 
    74 ActivityLauncherView::~ActivityLauncherView()
    74 ActivityLauncherView::~ActivityLauncherView()
    75 {
    75 {
    76 	delete mActivityManager;
    76     delete mActivityManager;
    77 }
    77 }
    78 
    78 
    79 void ActivityLauncherView::getActivitiesList()
    79 void ActivityLauncherView::getActivitiesList()
    80 {
    80 {
    81     mStatusLabel->setPlainText("Fetching activities");
    81     mStatusLabel->setPlainText("Fetching activities");
    82     mCurrentActivities.clear();
    82     mCurrentActivities.clear();
    83     QMetaObject::invokeMethod(mActivityManager, "activitiesList", Q_RETURN_ARG(QList<QVariantHash>, mCurrentActivities));
    83     QMetaObject::invokeMethod(mActivityManager, "activitiesList", Q_RETURN_ARG(QList<QVariantHash>, mCurrentActivities));
    84     mModel->clear();
    84     mModel->clear();
    85 
    85 
    86     foreach(const QVariantHash& activityEntry, mCurrentActivities) {
    86     foreach(const QVariantHash& activityEntry, mCurrentActivities) {
    87         QStandardItem* newItem = new QStandardItem(QIcon(activityEntry.value("screenshot").value<QPixmap>()), QString("%1").arg(activityEntry.value(ActivityActivityKeyword).toInt()));
    87         QStandardItem *newItem = new QStandardItem(QIcon(activityEntry.value("screenshot").value<QPixmap>()), QString("%1").arg(activityEntry.value(ActivityActivityKeyword).toInt()));
    88         mModel->invisibleRootItem()->appendRow(newItem);
    88         mModel->invisibleRootItem()->appendRow(newItem);
    89     }
    89     }
    90     mStatusLabel->setPlainText(QString("Ready (%1 activities)").arg(mCurrentActivities.count()));
    90     mStatusLabel->setPlainText(QString("Ready (%1 activities)").arg(mCurrentActivities.count()));
    91 }
    91 }
    92 
    92 
    93 bool ActivityLauncherView::eventFilter(QObject* obj, QEvent* event)
    93 bool ActivityLauncherView::eventFilter(QObject *obj, QEvent *event)
    94 {
    94 {
    95     if (event->type() == QEvent::ApplicationActivate) {
    95     if (event->type() == QEvent::ApplicationActivate) {
    96         getActivitiesList();
    96         getActivitiesList();
    97     }
    97     }
    98     return QObject::eventFilter(obj, event);
    98     return QObject::eventFilter(obj, event);
    99 }
    99 }
   100 
   100 
   101 void ActivityLauncherView::itemPressed(const QModelIndex& index)
   101 void ActivityLauncherView::itemPressed(const QModelIndex &index)
   102 {
   102 {
   103     QVariantHash activity = mCurrentActivities.at(index.row());
   103     QVariantHash activity = mCurrentActivities.at(index.row());
   104     int applicationId = activity.value(ActivityApplicationKeyword).toInt();
   104     int applicationId = activity.value(ActivityApplicationKeyword).toInt();
   105     QString activityName = activity.value(ActivityActivityKeyword).toString();
   105     QString activityName = activity.value(ActivityActivityKeyword).toString();
   106     QMetaObject::invokeMethod(mActivityManager, "launchActivity", Q_ARG(int, applicationId), Q_ARG(QString, activityName));
   106     QMetaObject::invokeMethod(mActivityManager, "launchActivity", Q_ARG(int, applicationId), Q_ARG(QString, activityName));