taskswitcherapp/tsdevicedialogplugin/src/tstasksgriditem.cpp
changeset 60 30f14686fb04
parent 39 4e8ebe173323
equal deleted inserted replaced
55:03646e8da489 60:30f14686fb04
    14 * Description:
    14 * Description:
    15 *
    15 *
    16 */
    16 */
    17 #include "tstasksgriditem.h"
    17 #include "tstasksgriditem.h"
    18 
    18 
    19 #include <hblabel.h>
    19 #include <HbPushButton>
    20 #include <hbpushbutton.h>
    20 #include <HbAbstractItemView>
    21 #include <hbabstractitemview.h>
    21 #include <HbFrameItem>
    22 #include <hbanchorlayout.h>
    22 #include <HbTextItem>
       
    23 #include <HbIconItem>
       
    24 #include <HbStyleLoader>
       
    25 
    23 #include "tsdataroles.h"
    26 #include "tsdataroles.h"
    24 
    27 
    25 /*!
    28 /*!
    26     \class TsTasksGridItem
    29     \class TsTasksGridItem
    27     \ingroup group_tsdevicedialogplugin
    30     \ingroup group_tsdevicedialogplugin
    28     \brief Item that should be presented in grid.
    31     \brief Item that should be presented in grid.
    29 */
    32 */
    30 
    33 
    31 
    34 
    32 TsTasksGridItem::TsTasksGridItem() : HbAbstractViewItem(), mScreenshotLabel(0), mApplicationNameLabel(0), mDeleteButton(0)
    35 TsTasksGridItem::TsTasksGridItem() : HbAbstractViewItem(), mScreenshotLabel(0), mApplicationNameLabel(0), mDeleteButton(0), mActiveLabelFrame(0), mActiveLabel(0)
    33 {
    36 {
       
    37     // Register the custom docml and css to provide our own style to the list items
       
    38     bool widgetmlLoaded = HbStyleLoader::registerFilePath(":/resource/tstasksgriditem.widgetml");
       
    39     Q_ASSERT(widgetmlLoaded);
       
    40     bool cssLoaded = HbStyleLoader::registerFilePath(":/resource/tstasksgriditem.css");
       
    41     Q_ASSERT(cssLoaded);
    34 }
    42 }
    35 
    43 
    36 TsTasksGridItem::TsTasksGridItem(const TsTasksGridItem &item) : HbAbstractViewItem(item)
    44 TsTasksGridItem::TsTasksGridItem(const TsTasksGridItem &item) : HbAbstractViewItem(item)
    37 {
    45 {
    38     // add screenshot
    46     mScreenshotLabel = new HbIconItem(this);
    39     mScreenshotLabel = new HbLabel();
    47     mApplicationNameLabel = new HbTextItem(this);
    40     mScreenshotLabel->setAlignment(Qt::AlignHCenter);
    48     mDeleteButton = new HbPushButton(this);
       
    49     HbFrameItem *screenshotFrame = new HbFrameItem(this);    
       
    50     screenshotFrame->frameDrawer().setFrameType(HbFrameDrawer::NinePieces);
       
    51     screenshotFrame->frameDrawer().setFrameGraphicsName("qtg_fr_multimedia_trans");
    41 
    52 
    42     // add application name label
    53     HbFrameItem *applicationLabelFrame = new HbFrameItem(this);
    43     mApplicationNameLabel = new HbLabel();
    54     applicationLabelFrame->frameDrawer().setFrameType(HbFrameDrawer::NinePieces);
    44     mApplicationNameLabel->setAlignment(Qt::AlignCenter);
    55     applicationLabelFrame->frameDrawer().setFrameGraphicsName("qtg_fr_multimedia_trans");
    45 
    56 
    46     // add close app button
    57     mActiveLabel = new HbTextItem(hbTrId("txt_tsw_label_active"), this);
    47     HbIcon deleteIcon(":/resource/delete.png");
    58     mActiveLabelFrame = new HbFrameItem(this);
    48     mDeleteButton = new HbPushButton();
    59     mActiveLabelFrame->frameDrawer().setFrameType(HbFrameDrawer::NinePieces);
    49     mDeleteButton->setIcon(deleteIcon);
    60     mActiveLabelFrame->frameDrawer().setFrameGraphicsName("qtg_fr_multimedia_trans");
    50     mDeleteButton->setPreferredSize(48, 48);
    61 
    51     mDeleteButton->setSizePolicy(QSizePolicy::Maximum, QSizePolicy::Maximum);
    62     mDeleteButton->setIcon(HbIcon("qtg_mono_exit"));
    52     mDeleteButton->setEnabled(true);
    63 
       
    64     HbStyle::setItemName(mScreenshotLabel, "screenshot");
       
    65     HbStyle::setItemName(mApplicationNameLabel, "appname");
       
    66     HbStyle::setItemName(mDeleteButton, "closebadge");
       
    67     mDeleteButton->setObjectName("closebadge");
       
    68     HbStyle::setItemName(screenshotFrame, "screenshotFrame");
       
    69     HbStyle::setItemName(applicationLabelFrame, "applicationLabelFrame");
       
    70     HbStyle::setItemName(mActiveLabel, "activeLabel");
       
    71     HbStyle::setItemName(mActiveLabelFrame, "activeLabelFrame");
    53     connect(mDeleteButton, SIGNAL(clicked()), this, SLOT(handleDeleteClicked()));
    72     connect(mDeleteButton, SIGNAL(clicked()), this, SLOT(handleDeleteClicked()));
    54     mDeleteButton->hide();
       
    55 
       
    56     setContentsMargins(5, 5, 5, 5);
       
    57 
       
    58     // add all items to layout
       
    59     HbAnchorLayout *anchorLayout = new HbAnchorLayout();
       
    60     anchorLayout->setAnchor(mApplicationNameLabel, Hb::LeftEdge, anchorLayout, Hb::LeftEdge, 0);
       
    61     anchorLayout->setAnchor(mApplicationNameLabel, Hb::TopEdge, anchorLayout, Hb::TopEdge, 0);
       
    62     anchorLayout->setAnchor(mApplicationNameLabel, Hb::RightEdge, anchorLayout, Hb::RightEdge, 0);
       
    63 
       
    64     anchorLayout->setAnchor(mScreenshotLabel, Hb::TopEdge, mApplicationNameLabel, Hb::BottomEdge, 0);
       
    65     anchorLayout->setAnchor(mScreenshotLabel, Hb::LeftEdge, anchorLayout, Hb::LeftEdge, 0);
       
    66     anchorLayout->setAnchor(mScreenshotLabel, Hb::RightEdge, anchorLayout, Hb::RightEdge, 0);
       
    67     anchorLayout->setAnchor(mScreenshotLabel, Hb::BottomEdge, anchorLayout, Hb::BottomEdge, 0);
       
    68 
       
    69     anchorLayout->setAnchor(mDeleteButton, Hb::RightEdge, mScreenshotLabel, Hb::RightEdge, 0);
       
    70     anchorLayout->setAnchor(mDeleteButton, Hb::TopEdge, mScreenshotLabel, Hb::TopEdge, 0);
       
    71 
       
    72     setLayout(anchorLayout);
       
    73 }
       
    74 
       
    75 TsTasksGridItem::~TsTasksGridItem()
       
    76 {
       
    77 }
    73 }
    78 
    74 
    79 HbAbstractViewItem *TsTasksGridItem::createItem()
    75 HbAbstractViewItem *TsTasksGridItem::createItem()
    80 {
    76 {
    81     TsTasksGridItem *newItem = new TsTasksGridItem(*this);
    77     TsTasksGridItem *newItem = new TsTasksGridItem(*this);
    89 }
    85 }
    90 
    86 
    91 void TsTasksGridItem::updateChildItems()
    87 void TsTasksGridItem::updateChildItems()
    92 {
    88 {
    93     mScreenshotLabel->setIcon(modelIndex().data(Qt::DecorationRole).value<HbIcon>());
    89     mScreenshotLabel->setIcon(modelIndex().data(Qt::DecorationRole).value<HbIcon>());
    94     mApplicationNameLabel->setPlainText(modelIndex().data(Qt::DisplayRole).toString());
    90     mApplicationNameLabel->setText(modelIndex().data(Qt::DisplayRole).toString());
    95     QVariant status(modelIndex().data(TsDataRoles::Closable));
    91     QVariant status(modelIndex().data(TsDataRoles::Closable));
    96     const bool isRunning(status.isValid() && status.toBool());
    92     const bool isRunning(status.isValid() && status.toBool());
    97     if (isRunning) {
    93     if (isRunning) {
    98         mDeleteButton->show();
    94         mDeleteButton->show();
       
    95         mActiveLabel->show();
       
    96         mActiveLabelFrame->show();
    99     } else {
    97     } else {
   100         mDeleteButton->hide();
    98         mDeleteButton->hide();
       
    99         mActiveLabel->hide();
       
   100         mActiveLabelFrame->hide();
   101     }
   101     }
   102 }
   102 }