securitydialogs/SecUi/SecUiTestQt/contentwidget.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
#ifndef CONTENTWIDGET_H
hgs
parents:
diff changeset
     2
#define CONTENTWIDGET_H
hgs
parents:
diff changeset
     3
hgs
parents:
diff changeset
     4
#include <hbview.h>
hgs
parents:
diff changeset
     5
#include <hbradiobuttonlist.h>
hgs
parents:
diff changeset
     6
hgs
parents:
diff changeset
     7
#include <QPersistentModelIndex>
hgs
parents:
diff changeset
     8
hgs
parents:
diff changeset
     9
QT_BEGIN_NAMESPACE
hgs
parents:
diff changeset
    10
hgs
parents:
diff changeset
    11
class QFileSystemWatcher;
hgs
parents:
diff changeset
    12
class QGraphicsTextItem;
hgs
parents:
diff changeset
    13
class QGraphicsLinearLayout;
hgs
parents:
diff changeset
    14
class QItemSelection;
hgs
parents:
diff changeset
    15
class QStandardItem;
hgs
parents:
diff changeset
    16
hgs
parents:
diff changeset
    17
QT_END_NAMESPACE
hgs
parents:
diff changeset
    18
hgs
parents:
diff changeset
    19
class HbMenuItem;
hgs
parents:
diff changeset
    20
class HbMainWindow;
hgs
parents:
diff changeset
    21
class HbListView;
hgs
parents:
diff changeset
    22
class HbMenu;
hgs
parents:
diff changeset
    23
class HbAction;
hgs
parents:
diff changeset
    24
class HbIcon;
hgs
parents:
diff changeset
    25
class HbAbstractViewItem;
hgs
parents:
diff changeset
    26
class HbLabel;
hgs
parents:
diff changeset
    27
class HbListViewItem;
hgs
parents:
diff changeset
    28
class HbTreeView;
hgs
parents:
diff changeset
    29
class TreeDataForm;
hgs
parents:
diff changeset
    30
hgs
parents:
diff changeset
    31
class ContentWidget : public HbView
hgs
parents:
diff changeset
    32
{
hgs
parents:
diff changeset
    33
    Q_OBJECT
hgs
parents:
diff changeset
    34
hgs
parents:
diff changeset
    35
public:
hgs
parents:
diff changeset
    36
    ContentWidget(QString& imagesDir, HbMainWindow *mainWindow);
hgs
parents:
diff changeset
    37
    virtual ~ContentWidget();
hgs
parents:
diff changeset
    38
hgs
parents:
diff changeset
    39
public slots:
hgs
parents:
diff changeset
    40
    void selectionChanged(const QItemSelection &selected, const QItemSelection &deselected);
hgs
parents:
diff changeset
    41
    void onLongPressed(HbAbstractViewItem *index, const QPointF &coords);
hgs
parents:
diff changeset
    42
    void aboutToClose();
hgs
parents:
diff changeset
    43
    void launchInPopup();
hgs
parents:
diff changeset
    44
    void setRootItemActionTriggered();
hgs
parents:
diff changeset
    45
    void setTargetItemActionTriggered();
hgs
parents:
diff changeset
    46
hgs
parents:
diff changeset
    47
    void addOneToModel();
hgs
parents:
diff changeset
    48
    void addOneToModelExt();
hgs
parents:
diff changeset
    49
    void removeFromModel();
hgs
parents:
diff changeset
    50
hgs
parents:
diff changeset
    51
protected:
hgs
parents:
diff changeset
    52
    void keyPressEvent(QKeyEvent *event);
hgs
parents:
diff changeset
    53
hgs
parents:
diff changeset
    54
private slots:
hgs
parents:
diff changeset
    55
    // refreshes model
hgs
parents:
diff changeset
    56
    void refresh();
hgs
parents:
diff changeset
    57
    void populateDirModel();
hgs
parents:
diff changeset
    58
    void populateFileSystemModel();
hgs
parents:
diff changeset
    59
    void populateGreenOddBrownEvenModel();
hgs
parents:
diff changeset
    60
    void showSettings();
hgs
parents:
diff changeset
    61
    void removeModel();
hgs
parents:
diff changeset
    62
    void changeModel(HbAction* action);
hgs
parents:
diff changeset
    63
    void editItem(HbAction* action);
hgs
parents:
diff changeset
    64
    
hgs
parents:
diff changeset
    65
    void insertItemAboveTarget();
hgs
parents:
diff changeset
    66
    void insertItemBelowTarget();
hgs
parents:
diff changeset
    67
hgs
parents:
diff changeset
    68
    void setMainMenu();
hgs
parents:
diff changeset
    69
    void resetItemManagementMenu();  
hgs
parents:
diff changeset
    70
    void doCommand(int index);
hgs
parents:
diff changeset
    71
    void itemActivated(const QModelIndex& index);
hgs
parents:
diff changeset
    72
    void backButtonClicked();
hgs
parents:
diff changeset
    73
    void confirmDelete();
hgs
parents:
diff changeset
    74
hgs
parents:
diff changeset
    75
    void addItem();
hgs
parents:
diff changeset
    76
    void changeItem();
hgs
parents:
diff changeset
    77
hgs
parents:
diff changeset
    78
    void removeItems();
hgs
parents:
diff changeset
    79
    void removeAllItems();
hgs
parents:
diff changeset
    80
hgs
parents:
diff changeset
    81
    void expandAll();
hgs
parents:
diff changeset
    82
    void collapseAll();
hgs
parents:
diff changeset
    83
hgs
parents:
diff changeset
    84
    void changeMirroring();
hgs
parents:
diff changeset
    85
    void scrollToTarget();
hgs
parents:
diff changeset
    86
    void changeOrientation();
hgs
parents:
diff changeset
    87
hgs
parents:
diff changeset
    88
    void populateTreeModelDefault();
hgs
parents:
diff changeset
    89
    void populateTreeModelSimple();
hgs
parents:
diff changeset
    90
    void populateTreeModelDeep();
hgs
parents:
diff changeset
    91
    void populateTreeModelFlat();
hgs
parents:
diff changeset
    92
    //void populateTreeModelMail();
hgs
parents:
diff changeset
    93
    void populateTreeModelMixed();
hgs
parents:
diff changeset
    94
hgs
parents:
diff changeset
    95
    void autoInsertOne();
hgs
parents:
diff changeset
    96
    void autoRemoveOne();
hgs
parents:
diff changeset
    97
    void simulateMultipleFastInserts();
hgs
parents:
diff changeset
    98
    void simulateMultipleFastRemovals();
hgs
parents:
diff changeset
    99
    void timerReadyForInsert();
hgs
parents:
diff changeset
   100
    void timerReadyForRemoval();
hgs
parents:
diff changeset
   101
hgs
parents:
diff changeset
   102
    void insertItemAboveTargetClosed(int  action);
hgs
parents:
diff changeset
   103
    void insertItemBelowTargetClosed(int action);
hgs
parents:
diff changeset
   104
    void expandTargetItem();
hgs
parents:
diff changeset
   105
    void collapseTargetItem();
hgs
parents:
diff changeset
   106
hgs
parents:
diff changeset
   107
private:
hgs
parents:
diff changeset
   108
    void doAddItem();
hgs
parents:
diff changeset
   109
    void doAddItem(int pos, QStandardItem *item);
hgs
parents:
diff changeset
   110
    void doSettings();
hgs
parents:
diff changeset
   111
    void doRemoveItems();
hgs
parents:
diff changeset
   112
hgs
parents:
diff changeset
   113
    void createAndInitTreeView(int newModelType); 
hgs
parents:
diff changeset
   114
    void initTreeView();
hgs
parents:
diff changeset
   115
    void resetTreeView();
hgs
parents:
diff changeset
   116
hgs
parents:
diff changeset
   117
    void updateTextLabel(int count);
hgs
parents:
diff changeset
   118
hgs
parents:
diff changeset
   119
    // Calculates the item's depth in the tree. Topmost items are on depth 1. 
hgs
parents:
diff changeset
   120
    // This information is needed only for debug purposes.
hgs
parents:
diff changeset
   121
    int calculateDepth(QModelIndex m) const;
hgs
parents:
diff changeset
   122
    void expand(const QAbstractItemModel *model,
hgs
parents:
diff changeset
   123
                const QModelIndex &parent, 
hgs
parents:
diff changeset
   124
                int level );
hgs
parents:
diff changeset
   125
    void expandUpwards( const QAbstractItemModel *model,
hgs
parents:
diff changeset
   126
                        const QModelIndex &parent );
hgs
parents:
diff changeset
   127
    void collapse(  const QAbstractItemModel *model,
hgs
parents:
diff changeset
   128
                    const QModelIndex &parent, 
hgs
parents:
diff changeset
   129
                    int  depth );
hgs
parents:
diff changeset
   130
    void postEvents();
hgs
parents:
diff changeset
   131
hgs
parents:
diff changeset
   132
private:
hgs
parents:
diff changeset
   133
    // submenu items for selecting model
hgs
parents:
diff changeset
   134
    enum modelType {
hgs
parents:
diff changeset
   135
        noModel = 0,
hgs
parents:
diff changeset
   136
        treeModelDefault,
hgs
parents:
diff changeset
   137
        treeModelSimple,
hgs
parents:
diff changeset
   138
        treeModelDeep,
hgs
parents:
diff changeset
   139
        treeModelFlat,
hgs
parents:
diff changeset
   140
        //treeModelMail,
hgs
parents:
diff changeset
   141
        treeModelMixed,
hgs
parents:
diff changeset
   142
        dirModel,
hgs
parents:
diff changeset
   143
        fileSystemModel,
hgs
parents:
diff changeset
   144
        greenOddBrownEvenModel,
hgs
parents:
diff changeset
   145
    };
hgs
parents:
diff changeset
   146
hgs
parents:
diff changeset
   147
    // submenu items for list item operation
hgs
parents:
diff changeset
   148
    enum itemOperation {
hgs
parents:
diff changeset
   149
        addItemOperation,
hgs
parents:
diff changeset
   150
        changeItemOperation,
hgs
parents:
diff changeset
   151
        removeItemOperation,
hgs
parents:
diff changeset
   152
        removeAllItemsOperation,
hgs
parents:
diff changeset
   153
        expandAllOperation,
hgs
parents:
diff changeset
   154
        collapseAllOperation,
hgs
parents:
diff changeset
   155
        autoInsertOneOperation,
hgs
parents:
diff changeset
   156
        autoRemoveOneOperation,
hgs
parents:
diff changeset
   157
        simulateVisible,
hgs
parents:
diff changeset
   158
        resetDuringSimulation,
hgs
parents:
diff changeset
   159
        simulateMultipleFastInsertsOperation,
hgs
parents:
diff changeset
   160
        simulateMultipleFastRemovalsOperation,
hgs
parents:
diff changeset
   161
        selectAll,
hgs
parents:
diff changeset
   162
        unselect
hgs
parents:
diff changeset
   163
    };
hgs
parents:
diff changeset
   164
hgs
parents:
diff changeset
   165
    // submenu items for list item operation
hgs
parents:
diff changeset
   166
    enum orientationOperation {
hgs
parents:
diff changeset
   167
        toggleOrientationOperation,
hgs
parents:
diff changeset
   168
        customOrientationOperation
hgs
parents:
diff changeset
   169
    };
hgs
parents:
diff changeset
   170
hgs
parents:
diff changeset
   171
    // submenu items for list item operation
hgs
parents:
diff changeset
   172
    enum optionsOperation {
hgs
parents:
diff changeset
   173
        optionsOperationLast // not in use 
hgs
parents:
diff changeset
   174
    };
hgs
parents:
diff changeset
   175
hgs
parents:
diff changeset
   176
    QString&                mImagesDir;
hgs
parents:
diff changeset
   177
    HbMainWindow            *mWindow;
hgs
parents:
diff changeset
   178
    HbTreeView              *mTreeView;
hgs
parents:
diff changeset
   179
                            
hgs
parents:
diff changeset
   180
    HbAction                *mRemoveModelAction;
hgs
parents:
diff changeset
   181
    HbAction                *mOrientationSwitch;
hgs
parents:
diff changeset
   182
    HbAction                *mMirroring;
hgs
parents:
diff changeset
   183
hgs
parents:
diff changeset
   184
    HbAction                *mScrollToAction;
hgs
parents:
diff changeset
   185
    HbAction                *mInsertAboveTargetAction;
hgs
parents:
diff changeset
   186
    HbAction                *mInsertBelowTargetAction;
hgs
parents:
diff changeset
   187
hgs
parents:
diff changeset
   188
    HbMenu                  *mItemSubMenu;
hgs
parents:
diff changeset
   189
    HbMenu                  *mTargetActionsSubMenu;
hgs
parents:
diff changeset
   190
                            
hgs
parents:
diff changeset
   191
    QFileSystemWatcher      *mFileWatcher;
hgs
parents:
diff changeset
   192
    int                     mModelType;
hgs
parents:
diff changeset
   193
                            
hgs
parents:
diff changeset
   194
    HbMenu                  *mMainMenu;
hgs
parents:
diff changeset
   195
    int                     mCountAdded;
hgs
parents:
diff changeset
   196
    bool                    mMute;
hgs
parents:
diff changeset
   197
    HbAction                *mSoftKeyQuitAction;
hgs
parents:
diff changeset
   198
    HbAction                *mSoftKeyConfirmAction;
hgs
parents:
diff changeset
   199
    HbAction                *mSoftKeyBackAction;
hgs
parents:
diff changeset
   200
    HbAction                *mSoftKeyDoneAction;
hgs
parents:
diff changeset
   201
    HbLabel                 *mInfoLabel;
hgs
parents:
diff changeset
   202
    QGraphicsLinearLayout   *mMainlayout;
hgs
parents:
diff changeset
   203
    TreeDataForm            *mForm;
hgs
parents:
diff changeset
   204
    HbView                  *mDetailView;
hgs
parents:
diff changeset
   205
    QPersistentModelIndex   mTarget;
hgs
parents:
diff changeset
   206
hgs
parents:
diff changeset
   207
    QString                 mTextOfNewItem;
hgs
parents:
diff changeset
   208
    HbAbstractItemView::ScrollHint mScrollHint;
hgs
parents:
diff changeset
   209
    int                     mDepth;
hgs
parents:
diff changeset
   210
    QAbstractItemModel      *mPopupModel;
hgs
parents:
diff changeset
   211
hgs
parents:
diff changeset
   212
    QModelIndexList mItemsToRemove;
hgs
parents:
diff changeset
   213
    QTimer *mTimer;
hgs
parents:
diff changeset
   214
    int mItemsToAdd;
hgs
parents:
diff changeset
   215
    QTimer *mTimerExt;
hgs
parents:
diff changeset
   216
    int mItemsToAddExt;
hgs
parents:
diff changeset
   217
hgs
parents:
diff changeset
   218
    QMap<int, HbAction*>    mCheckableItemActions;
hgs
parents:
diff changeset
   219
};
hgs
parents:
diff changeset
   220
hgs
parents:
diff changeset
   221
#endif // CONTENTWIDGET_H