diff -r 819e59dfc032 -r 2d9cac8919d3 utilityapps/filebrowser/ui/src/fbattributesview.cpp --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/utilityapps/filebrowser/ui/src/fbattributesview.cpp Mon Oct 18 16:30:05 2010 +0300 @@ -0,0 +1,210 @@ +/* +* Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies). +* All rights reserved. +* This component and the accompanying materials are made available +* under the terms of "Eclipse Public License v1.0" +* which accompanies this distribution, and is available +* at the URL "http://www.eclipse.org/legal/epl-v10.html". +* +* Initial Contributors: +* Nokia Corporation - initial contribution. +* +* Contributors: +* +* Description: +* +*/ + +#include "fbattributesview.h" + +#include +#include +#include +#include +#include +#include + +#include + +#include + +const QStringList AttributesChoices = QStringList() << "Skip" << "On" << "Off"; +const QStringList RecurseChoices = QStringList() << "Recursive" << "Non-recursive"; +const QString acceptActionText = "OK"; +const QString rejectActionText = "Cancel"; +const int AttributeOn = 1; +const int AttributeOff = 2; +const int AttributeEnableRecursion = 0; +const int AttributeDisableRecursion = 1; + +FbAttributesView::FbAttributesView(quint32 &aSetAttMask, quint32 &aClearAttMask, bool &aRecurse) : + mSetAttributesMask(aSetAttMask), + mClearAttributesMask(aClearAttMask), + mRecurse(aRecurse), + mForm(0), + mArchiveItem(0), + mHiddenItem(0), + mReadOnlyItem(0), + mSystemItem(0), + mRecurseItem(0) +{ + setTitle("Set attributes"); + + // Override back navigation action + HbAction *leaveViewAction = new HbAction(Hb::BackNaviAction, this); + connect(leaveViewAction, SIGNAL(triggered()), this, SLOT(reject())); + setNavigationAction(leaveViewAction); + + initDataForm(); + createToolbar(); +} + +FbAttributesView::~FbAttributesView() +{ +} + +void FbAttributesView::initDataForm() +{ + mForm = new HbDataForm(this); + HbDataFormModel *model = new HbDataFormModel(); + + // Create Group for sequential image components + //mGroupSeguantialCapture = model->appendDataFormGroup(QString("Archive"), parent); + + mArchiveItem = new HbDataFormModelItem(HbDataFormModelItem::RadioButtonListItem); + mArchiveItem->setLabel("Archive"); + mArchiveItem->setContentWidgetData(QString("items"), AttributesChoices); + mArchiveItem->setContentWidgetData(QString("displayMode"), QString("embedded")); + + mHiddenItem = new HbDataFormModelItem(HbDataFormModelItem::RadioButtonListItem); + mHiddenItem->setLabel("Hidden"); + mHiddenItem->setContentWidgetData(QString("items"), AttributesChoices); + mHiddenItem->setContentWidgetData(QString("displayMode"), QString("embedded")); + + mReadOnlyItem = new HbDataFormModelItem(HbDataFormModelItem::RadioButtonListItem); + mReadOnlyItem->setLabel("Read only"); + mReadOnlyItem->setContentWidgetData(QString("items"), AttributesChoices); + mReadOnlyItem->setContentWidgetData(QString("displayMode"), QString("embedded")); + + mSystemItem = new HbDataFormModelItem(HbDataFormModelItem::RadioButtonListItem); + mSystemItem->setLabel("System"); + mSystemItem->setContentWidgetData(QString("items"), AttributesChoices); + mSystemItem->setContentWidgetData(QString("displayMode"), QString("embedded")); + + mRecurseItem = new HbDataFormModelItem(HbDataFormModelItem::RadioButtonListItem); + mRecurseItem->setLabel("Recurse"); + mRecurseItem->setContentWidgetData(QString("items"), RecurseChoices); + mRecurseItem->setContentWidgetData(QString("displayMode"), QString("embedded")); + + // load file search attribute values from FB engine: + loadSettings(); + + model->appendDataFormItem(mArchiveItem); + model->appendDataFormItem(mHiddenItem); + model->appendDataFormItem(mReadOnlyItem); + model->appendDataFormItem(mSystemItem); + model->appendDataFormItem(mRecurseItem); + + mForm->setModel(model); + + QGraphicsLinearLayout* layout = new QGraphicsLinearLayout(Qt::Vertical,this); + layout->addItem(mForm); + setLayout(layout); +} + +void FbAttributesView::createToolbar() +{ + HbToolBar *toolBar = new HbToolBar(this); + HbAction *acceptAction = new HbAction(acceptActionText); + connect(acceptAction, SIGNAL(triggered()), this, SLOT(accept())); + toolBar->addAction(acceptAction); + + HbAction *rejectAction = new HbAction(rejectActionText); + connect(rejectAction, SIGNAL(triggered()), this, SLOT(reject())); + toolBar->addAction(rejectAction); + + setToolBar(toolBar); +} + +/** + Set form item values from settings \a settings. + */ +void FbAttributesView::loadSettings() +{ + if (mSetAttributesMask & KEntryAttArchive) + mArchiveItem->setContentWidgetData(QString("selected"), AttributeOn); + else if (mClearAttributesMask & KEntryAttArchive) + mArchiveItem->setContentWidgetData(QString("selected"), AttributeOff); + + if (mSetAttributesMask & KEntryAttHidden) + mHiddenItem->setContentWidgetData(QString("selected"), AttributeOn); + else if (mClearAttributesMask & KEntryAttHidden) + mHiddenItem->setContentWidgetData(QString("selected"), AttributeOff); + + if (mSetAttributesMask & KEntryAttReadOnly) + mReadOnlyItem->setContentWidgetData(QString("selected"), AttributeOn); + else if (mClearAttributesMask & KEntryAttReadOnly) + mReadOnlyItem->setContentWidgetData(QString("selected"), AttributeOff); + + if (mSetAttributesMask & KEntryAttSystem) + mSystemItem->setContentWidgetData(QString("selected"), AttributeOn); + else if (mClearAttributesMask & KEntryAttSystem) + mSystemItem->setContentWidgetData(QString("selected"), AttributeOff); + + if (mRecurse) + mRecurseItem->setContentWidgetData(QString("selected"), AttributeEnableRecursion); + else + mRecurseItem->setContentWidgetData(QString("selected"), AttributeDisableRecursion); +} + +/** + Store form item data into \a settings + */ +void FbAttributesView::saveSettings() +{ + mSetAttributesMask = 0; + mClearAttributesMask = 0; + + int archive = mArchiveItem->contentWidgetData(QString("selected")).toInt(); + if (archive == AttributeOn) + mSetAttributesMask |= KEntryAttArchive; + else if (archive == AttributeOff) + mClearAttributesMask |= KEntryAttArchive; + + int hidden = mHiddenItem->contentWidgetData(QString("selected")).toInt(); + if (hidden == AttributeOn) + mSetAttributesMask |= KEntryAttHidden; + else if (hidden == AttributeOff) + mClearAttributesMask |= KEntryAttHidden; + + int readOnly = mReadOnlyItem->contentWidgetData(QString("selected")).toInt(); + if (readOnly == AttributeOn) + mSetAttributesMask |= KEntryAttReadOnly; + else if (readOnly == AttributeOff) + mClearAttributesMask |= KEntryAttReadOnly; + + int system = mSystemItem->contentWidgetData(QString("selected")).toInt(); + if (system == AttributeOn) + mSetAttributesMask |= KEntryAttSystem; + else if (system == AttributeOff) + mClearAttributesMask |= KEntryAttSystem; + + int recurse = mRecurseItem->contentWidgetData(QString("selected")).toInt(); + if (recurse == AttributeEnableRecursion) + mRecurse = ETrue; + else if (recurse == AttributeDisableRecursion) + mRecurse = EFalse; +} + +void FbAttributesView::accept() +{ + saveSettings(); + emit finished(true); +} + +void FbAttributesView::reject() +{ + emit finished(false); +} + +// End of file