securitydialogs/SecUi/SecUiTestQt/viewfutedataform.h
author hgs
Wed, 20 Oct 2010 14:51:23 +0300
changeset 66 67b3e3c1fc87
permissions -rw-r--r--
201041
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
66
hgs
parents:
diff changeset
     1
/*
hgs
parents:
diff changeset
     2
* ====================================================
hgs
parents:
diff changeset
     3
*  Name        : viewfutedataform.h
hgs
parents:
diff changeset
     4
*  Part of     : fute/listdemo
hgs
parents:
diff changeset
     5
*  Description : Provides DataForm for general settings 
hgs
parents:
diff changeset
     6
*                or add item data form of an itemview application. 
hgs
parents:
diff changeset
     7
*                One instance of this class even supports 
hgs
parents:
diff changeset
     8
*                populating both forms if operations are done sequentially one after another. 
hgs
parents:
diff changeset
     9
*                In this case application should get handle to HbDataFormModel after populating data form
hgs
parents:
diff changeset
    10
*                (as HbDataFormModel is cleared only in populate* function).
hgs
parents:
diff changeset
    11
*              
hgs
parents:
diff changeset
    12
*  Version     : %version: 1 %
hgs
parents:
diff changeset
    13
*
hgs
parents:
diff changeset
    14
*  Copyright (c) 2009 Nokia.  All rights reserved.
hgs
parents:
diff changeset
    15
*  This material, including documentation and any related computer
hgs
parents:
diff changeset
    16
*  programs, is protected by copyright controlled by Nokia.  All
hgs
parents:
diff changeset
    17
*  rights are reserved.  Copying, including reproducing, storing,
hgs
parents:
diff changeset
    18
*  adapting or translating, any or all of this material requires the
hgs
parents:
diff changeset
    19
*  prior written consent of Nokia.  This material also contains
hgs
parents:
diff changeset
    20
*  confidential information which may not be disclosed to others
hgs
parents:
diff changeset
    21
*  without the prior written consent of Nokia.
hgs
parents:
diff changeset
    22
* ====================================================
hgs
parents:
diff changeset
    23
*/
hgs
parents:
diff changeset
    24
hgs
parents:
diff changeset
    25
#ifndef VIEWFUTEDATAFORM_H
hgs
parents:
diff changeset
    26
#define VIEWFUTEDATAFORM_H
hgs
parents:
diff changeset
    27
hgs
parents:
diff changeset
    28
#include <QObject>
hgs
parents:
diff changeset
    29
#include <hbdataform.h>
hgs
parents:
diff changeset
    30
hgs
parents:
diff changeset
    31
#include <hbabstractitemview.h>
hgs
parents:
diff changeset
    32
#include <hbscrollarea.h>
hgs
parents:
diff changeset
    33
#include <hbdataformviewitem.h>
hgs
parents:
diff changeset
    34
#include <hblistviewitem.h>
hgs
parents:
diff changeset
    35
hgs
parents:
diff changeset
    36
class HbDataFormModel;
hgs
parents:
diff changeset
    37
class HbListWidgetItem;
hgs
parents:
diff changeset
    38
class HbIndexFeedback;
hgs
parents:
diff changeset
    39
class QStandardItem;
hgs
parents:
diff changeset
    40
hgs
parents:
diff changeset
    41
class ViewFuteDataForm : public HbDataForm
hgs
parents:
diff changeset
    42
{
hgs
parents:
diff changeset
    43
    Q_OBJECT
hgs
parents:
diff changeset
    44
hgs
parents:
diff changeset
    45
public:
hgs
parents:
diff changeset
    46
hgs
parents:
diff changeset
    47
    enum Activity {
hgs
parents:
diff changeset
    48
        None,
hgs
parents:
diff changeset
    49
        Settings,
hgs
parents:
diff changeset
    50
        AddItem
hgs
parents:
diff changeset
    51
    };
hgs
parents:
diff changeset
    52
hgs
parents:
diff changeset
    53
    enum SettingsIndex {
hgs
parents:
diff changeset
    54
        LaunchInPopup,
hgs
parents:
diff changeset
    55
        Frame,
hgs
parents:
diff changeset
    56
        Recycling,
hgs
parents:
diff changeset
    57
        UniformItem,
hgs
parents:
diff changeset
    58
        RichText,
hgs
parents:
diff changeset
    59
        SelectionMode,
hgs
parents:
diff changeset
    60
        ArrangeMode,
hgs
parents:
diff changeset
    61
        ScrollingStyle,
hgs
parents:
diff changeset
    62
        ClampingStyle,
hgs
parents:
diff changeset
    63
        FrictionEnabled,
hgs
parents:
diff changeset
    64
        Orientation,
hgs
parents:
diff changeset
    65
        Mirroring,
hgs
parents:
diff changeset
    66
        ScrollHint,
hgs
parents:
diff changeset
    67
        GraphicsSize,
hgs
parents:
diff changeset
    68
        StretchingStyle,
hgs
parents:
diff changeset
    69
        MaximumRowCount,
hgs
parents:
diff changeset
    70
        MinimumRowCount,
hgs
parents:
diff changeset
    71
        InteractiveScrollBar,
hgs
parents:
diff changeset
    72
        IndexFeedbackPolicy,
hgs
parents:
diff changeset
    73
        Animations,
hgs
parents:
diff changeset
    74
        PixmapCache,
hgs
parents:
diff changeset
    75
        IconLoadPolicy,
hgs
parents:
diff changeset
    76
        SettingsIndexLast
hgs
parents:
diff changeset
    77
    };
hgs
parents:
diff changeset
    78
hgs
parents:
diff changeset
    79
    enum AddItemIndex {
hgs
parents:
diff changeset
    80
        PrimaryText,
hgs
parents:
diff changeset
    81
        SecondaryText,
hgs
parents:
diff changeset
    82
        ThirdText,
hgs
parents:
diff changeset
    83
        LeftColumn,
hgs
parents:
diff changeset
    84
        RightColumn,
hgs
parents:
diff changeset
    85
        Type,
hgs
parents:
diff changeset
    86
        Background,
hgs
parents:
diff changeset
    87
        ItemCount,
hgs
parents:
diff changeset
    88
        AddItemIndexLast
hgs
parents:
diff changeset
    89
    };
hgs
parents:
diff changeset
    90
hgs
parents:
diff changeset
    91
hgs
parents:
diff changeset
    92
    explicit ViewFuteDataForm(HbAbstractItemView &view,
hgs
parents:
diff changeset
    93
                              QGraphicsItem *parent = 0);
hgs
parents:
diff changeset
    94
    virtual ~ViewFuteDataForm();
hgs
parents:
diff changeset
    95
hgs
parents:
diff changeset
    96
    HbDataFormModel *dataModel() const;
hgs
parents:
diff changeset
    97
hgs
parents:
diff changeset
    98
    // Returns next free index
hgs
parents:
diff changeset
    99
    int nextIndex() const;
hgs
parents:
diff changeset
   100
hgs
parents:
diff changeset
   101
    // resets internal state of this object including model
hgs
parents:
diff changeset
   102
    virtual void initialise();  // reset() is reserved by base class
hgs
parents:
diff changeset
   103
hgs
parents:
diff changeset
   104
    Activity action() const;
hgs
parents:
diff changeset
   105
hgs
parents:
diff changeset
   106
    // S E T T I N G S
hgs
parents:
diff changeset
   107
    virtual void populateSettings();
hgs
parents:
diff changeset
   108
hgs
parents:
diff changeset
   109
    // Setting default input data. item: enum value of SettingsIndex or AddItemIndex, if not custom item
hgs
parents:
diff changeset
   110
    virtual void setInputData(  Activity    action,
hgs
parents:
diff changeset
   111
                                int         item, 
hgs
parents:
diff changeset
   112
                                QVariant    data);
hgs
parents:
diff changeset
   113
hgs
parents:
diff changeset
   114
    void populateLaunchInPopup();
hgs
parents:
diff changeset
   115
    void populateStretchingStyle();
hgs
parents:
diff changeset
   116
    void populateGraphicsSize();
hgs
parents:
diff changeset
   117
    void populateMaximumRowCount();
hgs
parents:
diff changeset
   118
    void populateMinimumRowCount();
hgs
parents:
diff changeset
   119
    void populateFrame();
hgs
parents:
diff changeset
   120
    void populateRecycling();
hgs
parents:
diff changeset
   121
    void populateUniformItem();
hgs
parents:
diff changeset
   122
    void populateRichText();
hgs
parents:
diff changeset
   123
    virtual void populateSelectionMode();
hgs
parents:
diff changeset
   124
    void populateArrangeMode();
hgs
parents:
diff changeset
   125
    void populateScrollingStyle();
hgs
parents:
diff changeset
   126
    void populateClampingStyle();
hgs
parents:
diff changeset
   127
    void populateFrictionEnabled();
hgs
parents:
diff changeset
   128
    // needs Qt::Orientation as input data. Data type int. Default value Qt:Portrait
hgs
parents:
diff changeset
   129
    void populateOrientation();
hgs
parents:
diff changeset
   130
    // needs Qt::LayoutDirection as input data. Data type int. Default value Qt:LeftToRight
hgs
parents:
diff changeset
   131
    void populateMirroring();
hgs
parents:
diff changeset
   132
    // needs HbAbstractItemView::ScrollHint as input data. Data type int. 
hgs
parents:
diff changeset
   133
    //  Default value HbAbstractItemView::EnsureVisible
hgs
parents:
diff changeset
   134
    void populateScrollHint();
hgs
parents:
diff changeset
   135
    void populateInteractiveScrollBar();
hgs
parents:
diff changeset
   136
    void populateIndexFeedbackPolicy();
hgs
parents:
diff changeset
   137
    void populateEnabledAnimations();
hgs
parents:
diff changeset
   138
    void populatePixmapCacheEnabled();
hgs
parents:
diff changeset
   139
    void populateIconLoadPolicy();
hgs
parents:
diff changeset
   140
hgs
parents:
diff changeset
   141
    // S E T T I N G S  results
hgs
parents:
diff changeset
   142
    // Pushes results to prototype and view
hgs
parents:
diff changeset
   143
    virtual void resolveSettingsResults();
hgs
parents:
diff changeset
   144
hgs
parents:
diff changeset
   145
    bool getLaunchInPopup();
hgs
parents:
diff changeset
   146
    // true: default layout
hgs
parents:
diff changeset
   147
    HbListViewItem::GraphicsSize getGraphicsSize();
hgs
parents:
diff changeset
   148
    HbListViewItem::StretchingStyle getStretchingStyle();
hgs
parents:
diff changeset
   149
    int getMaximumRowCount();
hgs
parents:
diff changeset
   150
    int getMinimumRowCount();
hgs
parents:
diff changeset
   151
hgs
parents:
diff changeset
   152
    bool getFrame();
hgs
parents:
diff changeset
   153
    bool getRecycling();
hgs
parents:
diff changeset
   154
    bool getUniformItem();
hgs
parents:
diff changeset
   155
    Qt::TextFormat getRichText();
hgs
parents:
diff changeset
   156
    virtual HbAbstractItemView::SelectionMode getSelectionMode();
hgs
parents:
diff changeset
   157
    bool getArrangeMode();
hgs
parents:
diff changeset
   158
    HbScrollArea::ScrollingStyle getScrollingStyle();
hgs
parents:
diff changeset
   159
    HbScrollArea::ClampingStyle getClampingStyle();
hgs
parents:
diff changeset
   160
    bool getFrictionEnabled();
hgs
parents:
diff changeset
   161
    Qt::Orientation getOrientation();
hgs
parents:
diff changeset
   162
    Qt::LayoutDirection getMirroring();
hgs
parents:
diff changeset
   163
    HbAbstractItemView::ScrollHint getScrollHint();
hgs
parents:
diff changeset
   164
    bool getInteractiveScrollBar();
hgs
parents:
diff changeset
   165
    int getIndexFeedbackPolicy();
hgs
parents:
diff changeset
   166
    HbAbstractItemView::ItemAnimations getEnabledAnimations();
hgs
parents:
diff changeset
   167
    bool getPixmapCacheEnaled();
hgs
parents:
diff changeset
   168
    HbAbstractItemView::IconLoadPolicy getIconLoadPolicy();
hgs
parents:
diff changeset
   169
hgs
parents:
diff changeset
   170
    // A D D  I T E M
hgs
parents:
diff changeset
   171
    virtual void populateAddItem();
hgs
parents:
diff changeset
   172
hgs
parents:
diff changeset
   173
    void populatePrimaryText();
hgs
parents:
diff changeset
   174
    void populateSecondaryText();
hgs
parents:
diff changeset
   175
    void populateThirdText();
hgs
parents:
diff changeset
   176
    void populateLeftColumn();
hgs
parents:
diff changeset
   177
    void populateRightColumn();
hgs
parents:
diff changeset
   178
    void populateType();
hgs
parents:
diff changeset
   179
    void populateBackground();
hgs
parents:
diff changeset
   180
hgs
parents:
diff changeset
   181
    // needs input data as int: default 1
hgs
parents:
diff changeset
   182
    void populateAddItemCount();
hgs
parents:
diff changeset
   183
hgs
parents:
diff changeset
   184
    // A D D  I T E M  results: new item created. 
hgs
parents:
diff changeset
   185
    // Returns 0, if any data not set
hgs
parents:
diff changeset
   186
    virtual QList <HbListWidgetItem *> getListWidgetItems();
hgs
parents:
diff changeset
   187
    // or 
hgs
parents:
diff changeset
   188
    virtual QList <QStandardItem *> getStandardItems();
hgs
parents:
diff changeset
   189
hgs
parents:
diff changeset
   190
    QString getPrimaryText();
hgs
parents:
diff changeset
   191
    QString getSecondaryText();
hgs
parents:
diff changeset
   192
    QString getThirdText();
hgs
parents:
diff changeset
   193
    QVariant getLeftColumn();
hgs
parents:
diff changeset
   194
    QVariant getRightColumn();
hgs
parents:
diff changeset
   195
    Hb::ModelItemType getType();
hgs
parents:
diff changeset
   196
    QVariant getBackground();
hgs
parents:
diff changeset
   197
    int getAddItemCount();
hgs
parents:
diff changeset
   198
hgs
parents:
diff changeset
   199
    void setIndexFeedback(HbIndexFeedback* indexFeedback);
hgs
parents:
diff changeset
   200
hgs
parents:
diff changeset
   201
private slots:
hgs
parents:
diff changeset
   202
    void formatTriggered();
hgs
parents:
diff changeset
   203
    void addFormating();
hgs
parents:
diff changeset
   204
hgs
parents:
diff changeset
   205
protected:
hgs
parents:
diff changeset
   206
    // Return count of items added. previousItem: 1 or SettingsIndex
hgs
parents:
diff changeset
   207
    virtual int populateCustomSettingsItem(int previousItem);
hgs
parents:
diff changeset
   208
hgs
parents:
diff changeset
   209
    Activity            activity;
hgs
parents:
diff changeset
   210
    HbDataFormModel     *settingsFormModel;
hgs
parents:
diff changeset
   211
    HbAbstractItemView  *view;
hgs
parents:
diff changeset
   212
    HbListWidgetItem    *item;
hgs
parents:
diff changeset
   213
    int                 counter;
hgs
parents:
diff changeset
   214
    int                 settingsIndexes[SettingsIndexLast];
hgs
parents:
diff changeset
   215
    int                 addItemIndexes[AddItemIndexLast];
hgs
parents:
diff changeset
   216
    QVariant            settingsData[SettingsIndexLast];
hgs
parents:
diff changeset
   217
    QVariant            addItemData[AddItemIndexLast];
hgs
parents:
diff changeset
   218
    HbIndexFeedback     *mIndexFeedback;
hgs
parents:
diff changeset
   219
};
hgs
parents:
diff changeset
   220
hgs
parents:
diff changeset
   221
#endif // VIEWFUTEDATAFORM_H