qtinternetradio/ui/src/irsettingsview.cpp
changeset 3 ee64f059b8e1
parent 0 09774dfdd46b
child 5 0930554dc389
equal deleted inserted replaced
2:2e1adbfc62af 3:ee64f059b8e1
    15  *
    15  *
    16  */
    16  */
    17 #include <hbdataform.h>
    17 #include <hbdataform.h>
    18 #include <hbdataformmodelitem.h>
    18 #include <hbdataformmodelitem.h>
    19 #include <QGraphicsLinearLayout>
    19 #include <QGraphicsLinearLayout>
    20 #include <hbdataformviewitem.h>
       
    21 #include <hbdataformmodel.h>
    20 #include <hbdataformmodel.h>
    22 #include <hbradiobuttonlist.h>
    21 #include <HbGroupBox>
    23 
    22 
    24 #include "irapplication.h"
    23 #include "irapplication.h"
    25 #include "irsettingsview.h"
    24 #include "irsettingsview.h"
    26 #include "irqsettings.h"
    25 #include "irqsettings.h"
    27 #include "irqenums.h"
    26 #include "irqenums.h"
    28 #include "irlastplayedstationinfo.h"
       
    29 
       
    30 const QString KStartingViewGroupLabelKeyWord = QObject::tr("Choose Starting View");
       
    31 const QString KPreferredQualityGroupLabelKeyWord = QObject::tr(
       
    32         "Choose Preferred Quality");
       
    33 
    27 
    34 IRSettingsView::IRSettingsView(IRApplication *aApplication, TIRViewId aViewId) :
    28 IRSettingsView::IRSettingsView(IRApplication *aApplication, TIRViewId aViewId) :
    35     IRBaseView(aApplication, aViewId), iForm(NULL),iModel(NULL)
    29     IRBaseView(aApplication, aViewId), iForm(NULL),iModel(NULL)
    36 {
    30 {
    37     iStartingViews << tr("Browse by Genre") << tr("Browse by Language") << tr(
    31     //this view won't be starting view, don't need lazy init
    38             "Browse by Country") << tr("Collections view") << tr(
    32     IRBaseView::lazyInit();
    39             "Favorite stations") << tr("Last played station") << tr(
    33     setInitCompleted(true);
    40             "Last exit view");
    34     
    41     iPreferredQuality<<tr("Normal")<<tr("High");
    35     iPreferredQuality<<hbTrId("txt_irad_setlabel_download_quality_val_standard")<<hbTrId("txt_irad_setlabel_download_quality_val_high");
    42     initView();
    36     initView();
    43 }
    37 }
    44 
    38 
    45 IRSettingsView::~IRSettingsView()
    39 IRSettingsView::~IRSettingsView()
    46 {
    40 {
    47 }
    41 }
    48 
       
    49 void IRSettingsView::startingViewSelected(int aIndex)
       
    50 {
       
    51     if (iStartingViews.indexOf(tr("Last exit view")) != aIndex)
       
    52     {
       
    53         iSettings->setStickyViewFlag(false);
       
    54     }
       
    55 
       
    56     switch (aIndex)
       
    57     {
       
    58     case 0:
       
    59         iSettings->setStartingViewId(EIRView_CategoryView);
       
    60         iSettings->setStartingViewParameter(EIRViewPara_Genre);
       
    61         break;
       
    62     case 1:
       
    63         iSettings->setStartingViewId(EIRView_CategoryView);
       
    64         iSettings->setStartingViewParameter(EIRViewPara_Language);
       
    65         break;
       
    66     case 2:
       
    67         iSettings->setStartingViewId(EIRView_CategoryView);
       
    68         iSettings->setStartingViewParameter(EIRViewPara_Country);
       
    69         break;
       
    70     case 3:
       
    71         iSettings->setStartingViewId(EIRView_MainView);
       
    72         break;
       
    73     case 4:
       
    74         iSettings->setStartingViewId(EIRView_FavoritesView);
       
    75         break;
       
    76     case 5:
       
    77         if (iApplication->getLastPlayedStationInfo()->getLastPlayedStation())
       
    78         {
       
    79             iSettings->setStartingViewId(EIRView_PlayingView);
       
    80         }
       
    81         else
       
    82         {
       
    83             iSettings->setStickyViewFlag(true);
       
    84         }
       
    85         break;
       
    86     case 6:
       
    87         iSettings->setStickyViewFlag(true);
       
    88         break;
       
    89     default:
       
    90         iSettings->setStartingViewId(EIRView_CategoryView);
       
    91         iSettings->setStartingViewParameter(EIRViewPara_Genre);
       
    92         break;
       
    93     }
       
    94 }
       
    95 
       
    96 
    42 
    97 void IRSettingsView::preferredQualitySelected(int aIndex)
    43 void IRSettingsView::preferredQualitySelected(int aIndex)
    98 {
    44 {
    99     if (0 == aIndex)
    45     if (0 == aIndex)
   100     {
    46     {
   106     }
    52     }
   107 }
    53 }
   108 
    54 
   109 void IRSettingsView::initView()
    55 void IRSettingsView::initView()
   110 {
    56 {
   111     QGraphicsLinearLayout *layout = new QGraphicsLinearLayout(Qt::Vertical,
    57     QGraphicsLinearLayout *layout = new QGraphicsLinearLayout(Qt::Vertical, this);
   112             this);
       
   113     setLayout(layout);
    58     setLayout(layout);
       
    59 
       
    60     HbGroupBox * titleText = new HbGroupBox();
       
    61     titleText->setHeading( hbTrId("txt_irad_subtitle_network_setting") ); 
       
    62     layout->addItem(titleText);
       
    63 
   114     iForm = new HbDataForm();
    64     iForm = new HbDataForm();
   115     layout->addItem(iForm);
    65     layout->addItem(iForm);
       
    66 
       
    67 		
   116     iModel = new HbDataFormModel();
    68     iModel = new HbDataFormModel();
   117     //set the starting view list
    69     
   118     setStartingViewList();
       
   119     //set the preferred quality
    70     //set the preferred quality
   120     setPreferredQuality();
    71     setPreferredQuality();
   121     iForm->setModel(iModel);
    72     iForm->setModel(iModel);
   122 }
    73 }
   123 
    74 
   124 void IRSettingsView::setStartingViewList()
       
   125 {
       
   126     if (NULL == iApplication->getLastPlayedStationInfo()->getLastPlayedStation())
       
   127     {
       
   128         iStartingViews.removeAt(iStartingViews.count() - 2);
       
   129     }
       
   130     HbDataFormModelItem *startViewItemGroup = new HbDataFormModelItem(
       
   131             HbDataFormModelItem::GroupItem, KStartingViewGroupLabelKeyWord);
       
   132     iModel->appendDataFormItem(startViewItemGroup);
       
   133     HbDataFormModelItem *startViewModelItem = iModel->appendDataFormItem(
       
   134             HbDataFormModelItem::RadioButtonListItem, tr("StartView"),
       
   135             startViewItemGroup);
       
   136     startViewModelItem->setContentWidgetData(QString("items"), iStartingViews);
       
   137     startViewModelItem->setData(HbDataFormModelItem::KeyRole, tr("Choose Startview"));
       
   138     startViewModelItem->setContentWidgetData(QString("selected"),getStartingViewSelection());
       
   139     iForm->addConnection(startViewModelItem,SIGNAL(itemSelected(int)),this,SLOT(startingViewSelected(int)));
       
   140 }
       
   141 
       
   142 void IRSettingsView::setPreferredQuality()
    75 void IRSettingsView::setPreferredQuality()
   143 {
    76 {
   144     HbDataFormModelItem *preferredQualityItemGroup = new HbDataFormModelItem(
    77     HbDataFormModelItem *preferredQualityItem = new HbDataFormModelItem(
   145             HbDataFormModelItem::GroupItem, KPreferredQualityGroupLabelKeyWord);
    78             HbDataFormModelItem::RadioButtonListItem, hbTrId("txt_irad_setlabel_download_quality"));
   146     iModel->appendDataFormItem(preferredQualityItemGroup);
    79     iModel->appendDataFormItem(preferredQualityItem);
   147     HbDataFormModelItem *preferredQualityItem = iModel->appendDataFormItem(
    80 	
   148             HbDataFormModelItem::RadioButtonListItem, tr("Network Quality"),
       
   149             preferredQualityItemGroup);
       
   150     preferredQualityItem->setContentWidgetData(QString("items"), iPreferredQuality);
    81     preferredQualityItem->setContentWidgetData(QString("items"), iPreferredQuality);
   151     preferredQualityItem->setData(HbDataFormModelItem::KeyRole, tr("Choose Preferred Quality"));
       
   152     IRQPreferredQuality settingValue = iSettings->getPreferredQuality();
    82     IRQPreferredQuality settingValue = iSettings->getPreferredQuality();
   153     preferredQualityItem->setContentWidgetData(QString("selected"), settingValue);
    83     preferredQualityItem->setContentWidgetData(QString("selected"), settingValue);
       
    84 	
   154     iForm->addConnection(preferredQualityItem,SIGNAL(itemSelected(int)),this,SLOT(preferredQualitySelected(int)));
    85     iForm->addConnection(preferredQualityItem,SIGNAL(itemSelected(int)),this,SLOT(preferredQualitySelected(int)));
   155 }
    86 }
   156 
    87 
   157 int IRSettingsView::getStartingViewSelection()
       
   158 {
       
   159     bool flag = false;
       
   160     iSettings->getStickyViewFlag(flag);
       
   161     if (flag)
       
   162     {
       
   163         return iStartingViews.indexOf(tr("Last exit view"));
       
   164     }
       
   165 
       
   166     TIRViewId startingViewId = EIRView_InvalidId;
       
   167     iSettings->getStartingViewId(startingViewId);
       
   168     int selected = 0;
       
   169     switch (startingViewId)
       
   170     {
       
   171     case EIRView_CategoryView:
       
   172         TIRViewParameter parameter;
       
   173         iSettings->getStartingViewParameter(parameter);
       
   174         switch (parameter)
       
   175         {
       
   176         case EIRViewPara_Genre:
       
   177             selected = 0;
       
   178             break;
       
   179         case EIRViewPara_Language:
       
   180             selected = 1;
       
   181             break;
       
   182         case EIRViewPara_Country:
       
   183             selected = 2;
       
   184             break;
       
   185         default:
       
   186             selected = 0;
       
   187             break;
       
   188         }
       
   189         break;
       
   190     case EIRView_MainView:
       
   191         selected = 3;
       
   192         break;
       
   193     case EIRView_FavoritesView:
       
   194         selected = 4;
       
   195         break;
       
   196     case EIRView_PlayingView:
       
   197         selected = 5;
       
   198         break;
       
   199     default:
       
   200         selected = 0;
       
   201         break;
       
   202     }
       
   203     return selected;
       
   204 }
       
   205