filebrowser/ui/src/fbattributesview.cpp
changeset 55 2d9cac8919d3
parent 53 819e59dfc032
child 56 392f7045e621
equal deleted inserted replaced
53:819e59dfc032 55:2d9cac8919d3
     1 /*
       
     2 * Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies).
       
     3 * All rights reserved.
       
     4 * This component and the accompanying materials are made available
       
     5 * under the terms of "Eclipse Public License v1.0"
       
     6 * which accompanies this distribution, and is available
       
     7 * at the URL "http://www.eclipse.org/legal/epl-v10.html".
       
     8 *
       
     9 * Initial Contributors:
       
    10 * Nokia Corporation - initial contribution.
       
    11 *
       
    12 * Contributors:
       
    13 *
       
    14 * Description:
       
    15 *
       
    16 */
       
    17 
       
    18 #include "fbattributesview.h"
       
    19 
       
    20 #include <HbView>
       
    21 #include <HbDataForm>
       
    22 #include <HbDataFormModel>
       
    23 #include <HbDataFormModelItem>
       
    24 #include <HbAction>
       
    25 #include <HbToolBar>
       
    26 
       
    27 #include <QGraphicsLinearLayout>
       
    28 
       
    29 #include <f32file.h>
       
    30 
       
    31 const QStringList AttributesChoices = QStringList() << "Skip" << "On" << "Off";
       
    32 const QStringList RecurseChoices = QStringList() << "Recursive" << "Non-recursive";
       
    33 const QString acceptActionText = "OK";
       
    34 const QString rejectActionText = "Cancel";
       
    35 const int AttributeOn = 1;
       
    36 const int AttributeOff = 2;
       
    37 const int AttributeEnableRecursion = 0;
       
    38 const int AttributeDisableRecursion = 1;
       
    39 
       
    40 FbAttributesView::FbAttributesView(quint32 &aSetAttMask, quint32 &aClearAttMask, bool &aRecurse) :
       
    41     mSetAttributesMask(aSetAttMask),
       
    42     mClearAttributesMask(aClearAttMask),
       
    43     mRecurse(aRecurse),
       
    44     mForm(0),
       
    45     mArchiveItem(0),
       
    46     mHiddenItem(0),
       
    47     mReadOnlyItem(0),
       
    48     mSystemItem(0),
       
    49     mRecurseItem(0)
       
    50 {
       
    51     setTitle("Set attributes");
       
    52 
       
    53     // Override back navigation action
       
    54     HbAction *leaveViewAction = new HbAction(Hb::BackNaviAction, this);
       
    55     connect(leaveViewAction, SIGNAL(triggered()), this, SLOT(reject()));
       
    56     setNavigationAction(leaveViewAction);
       
    57 
       
    58     initDataForm();
       
    59     createToolbar();
       
    60 }
       
    61 
       
    62 FbAttributesView::~FbAttributesView()
       
    63 {
       
    64 }
       
    65 
       
    66 void FbAttributesView::initDataForm()
       
    67 {
       
    68     mForm = new HbDataForm(this);
       
    69     HbDataFormModel *model = new HbDataFormModel();
       
    70 
       
    71     // Create Group for sequential image components
       
    72     //mGroupSeguantialCapture = model->appendDataFormGroup(QString("Archive"), parent);
       
    73 
       
    74     mArchiveItem = new HbDataFormModelItem(HbDataFormModelItem::RadioButtonListItem);
       
    75     mArchiveItem->setLabel("Archive");
       
    76     mArchiveItem->setContentWidgetData(QString("items"), AttributesChoices);
       
    77     mArchiveItem->setContentWidgetData(QString("displayMode"), QString("embedded"));
       
    78 
       
    79     mHiddenItem = new HbDataFormModelItem(HbDataFormModelItem::RadioButtonListItem);
       
    80     mHiddenItem->setLabel("Hidden");
       
    81     mHiddenItem->setContentWidgetData(QString("items"), AttributesChoices);
       
    82     mHiddenItem->setContentWidgetData(QString("displayMode"), QString("embedded"));
       
    83 
       
    84     mReadOnlyItem = new HbDataFormModelItem(HbDataFormModelItem::RadioButtonListItem);
       
    85     mReadOnlyItem->setLabel("Read only");
       
    86     mReadOnlyItem->setContentWidgetData(QString("items"), AttributesChoices);
       
    87     mReadOnlyItem->setContentWidgetData(QString("displayMode"), QString("embedded"));
       
    88 
       
    89     mSystemItem = new HbDataFormModelItem(HbDataFormModelItem::RadioButtonListItem);
       
    90     mSystemItem->setLabel("System");
       
    91     mSystemItem->setContentWidgetData(QString("items"), AttributesChoices);
       
    92     mSystemItem->setContentWidgetData(QString("displayMode"), QString("embedded"));
       
    93 
       
    94     mRecurseItem = new HbDataFormModelItem(HbDataFormModelItem::RadioButtonListItem);
       
    95     mRecurseItem->setLabel("Recurse");
       
    96     mRecurseItem->setContentWidgetData(QString("items"), RecurseChoices);
       
    97     mRecurseItem->setContentWidgetData(QString("displayMode"), QString("embedded"));
       
    98 
       
    99     // load file search attribute values from FB engine:
       
   100     loadSettings();
       
   101 
       
   102     model->appendDataFormItem(mArchiveItem);
       
   103     model->appendDataFormItem(mHiddenItem);
       
   104     model->appendDataFormItem(mReadOnlyItem);
       
   105     model->appendDataFormItem(mSystemItem);
       
   106     model->appendDataFormItem(mRecurseItem);
       
   107 
       
   108     mForm->setModel(model);
       
   109 
       
   110     QGraphicsLinearLayout* layout = new QGraphicsLinearLayout(Qt::Vertical,this);
       
   111     layout->addItem(mForm);
       
   112     setLayout(layout);
       
   113 }
       
   114 
       
   115 void FbAttributesView::createToolbar()
       
   116 {
       
   117     HbToolBar *toolBar = new HbToolBar(this);
       
   118     HbAction *acceptAction = new HbAction(acceptActionText);
       
   119     connect(acceptAction, SIGNAL(triggered()), this, SLOT(accept()));
       
   120     toolBar->addAction(acceptAction);
       
   121 
       
   122     HbAction *rejectAction = new HbAction(rejectActionText);
       
   123     connect(rejectAction, SIGNAL(triggered()), this, SLOT(reject()));
       
   124     toolBar->addAction(rejectAction);
       
   125 
       
   126     setToolBar(toolBar);
       
   127 }
       
   128 
       
   129 /**
       
   130   Set form item values from settings \a settings.
       
   131  */
       
   132 void FbAttributesView::loadSettings()
       
   133 {
       
   134     if (mSetAttributesMask & KEntryAttArchive)
       
   135         mArchiveItem->setContentWidgetData(QString("selected"), AttributeOn);
       
   136     else if (mClearAttributesMask & KEntryAttArchive)
       
   137         mArchiveItem->setContentWidgetData(QString("selected"), AttributeOff);
       
   138 
       
   139     if (mSetAttributesMask & KEntryAttHidden)
       
   140         mHiddenItem->setContentWidgetData(QString("selected"), AttributeOn);
       
   141     else if (mClearAttributesMask & KEntryAttHidden)
       
   142         mHiddenItem->setContentWidgetData(QString("selected"), AttributeOff);
       
   143 
       
   144     if (mSetAttributesMask & KEntryAttReadOnly)
       
   145         mReadOnlyItem->setContentWidgetData(QString("selected"), AttributeOn);
       
   146     else if (mClearAttributesMask & KEntryAttReadOnly)
       
   147         mReadOnlyItem->setContentWidgetData(QString("selected"), AttributeOff);
       
   148 
       
   149     if (mSetAttributesMask & KEntryAttSystem)
       
   150         mSystemItem->setContentWidgetData(QString("selected"), AttributeOn);
       
   151     else if (mClearAttributesMask & KEntryAttSystem)
       
   152         mSystemItem->setContentWidgetData(QString("selected"), AttributeOff);
       
   153 
       
   154     if (mRecurse)
       
   155         mRecurseItem->setContentWidgetData(QString("selected"), AttributeEnableRecursion);
       
   156     else
       
   157         mRecurseItem->setContentWidgetData(QString("selected"), AttributeDisableRecursion);
       
   158 }
       
   159 
       
   160 /**
       
   161   Store form item data into \a settings
       
   162  */
       
   163 void FbAttributesView::saveSettings()
       
   164 {
       
   165     mSetAttributesMask = 0;
       
   166     mClearAttributesMask = 0;
       
   167 
       
   168     int archive = mArchiveItem->contentWidgetData(QString("selected")).toInt();
       
   169     if (archive == AttributeOn)
       
   170         mSetAttributesMask |= KEntryAttArchive;
       
   171     else if (archive == AttributeOff)
       
   172         mClearAttributesMask |= KEntryAttArchive;
       
   173 
       
   174     int hidden = mHiddenItem->contentWidgetData(QString("selected")).toInt();
       
   175     if (hidden == AttributeOn)
       
   176         mSetAttributesMask |= KEntryAttHidden;
       
   177     else if (hidden == AttributeOff)
       
   178         mClearAttributesMask |= KEntryAttHidden;
       
   179 
       
   180     int readOnly = mReadOnlyItem->contentWidgetData(QString("selected")).toInt();
       
   181     if (readOnly == AttributeOn)
       
   182         mSetAttributesMask |= KEntryAttReadOnly;
       
   183     else if (readOnly == AttributeOff)
       
   184         mClearAttributesMask |= KEntryAttReadOnly;
       
   185 
       
   186     int system = mSystemItem->contentWidgetData(QString("selected")).toInt();
       
   187     if (system == AttributeOn)
       
   188         mSetAttributesMask |= KEntryAttSystem;
       
   189     else if (system == AttributeOff)
       
   190         mClearAttributesMask |= KEntryAttSystem;
       
   191 
       
   192     int recurse = mRecurseItem->contentWidgetData(QString("selected")).toInt();
       
   193     if (recurse == AttributeEnableRecursion)
       
   194         mRecurse = ETrue;
       
   195     else if (recurse == AttributeDisableRecursion)
       
   196         mRecurse = EFalse;
       
   197 }
       
   198 
       
   199 void FbAttributesView::accept()
       
   200 {
       
   201     saveSettings();
       
   202     emit finished(true);
       
   203 }
       
   204 
       
   205 void FbAttributesView::reject()
       
   206 {
       
   207     emit finished(false);
       
   208 }
       
   209 
       
   210 // End of file