videocollection/videocollectionwrapper/tsrc/testvideothumbnaildata_p/stub/inc/videoproxymodelgeneric.h
author hgs
Fri, 03 Sep 2010 12:37:43 +0300
changeset 58 d2b028fd1f7d
permissions -rw-r--r--
201035
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
58
hgs
parents:
diff changeset
     1
/*
hgs
parents:
diff changeset
     2
* Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).
hgs
parents:
diff changeset
     3
* All rights reserved.
hgs
parents:
diff changeset
     4
* This component and the accompanying materials are made available
hgs
parents:
diff changeset
     5
* under the terms of "Eclipse Public License v1.0"
hgs
parents:
diff changeset
     6
* which accompanies this distribution, and is available
hgs
parents:
diff changeset
     7
* at the URL "http://www.eclipse.org/legal/epl-v10.html".
hgs
parents:
diff changeset
     8
*
hgs
parents:
diff changeset
     9
* Initial Contributors:
hgs
parents:
diff changeset
    10
* Nokia Corporation - initial contribution.
hgs
parents:
diff changeset
    11
*
hgs
parents:
diff changeset
    12
* Contributors:
hgs
parents:
diff changeset
    13
*
hgs
parents:
diff changeset
    14
* Description:   Videolist sort filter proxy stub implementation
hgs
parents:
diff changeset
    15
*
hgs
parents:
diff changeset
    16
*/
hgs
parents:
diff changeset
    17
hgs
parents:
diff changeset
    18
#ifndef VIDEOPROXYMODELGENERIC_H
hgs
parents:
diff changeset
    19
#define VIDEOPROXYMODELGENERIC_H
hgs
parents:
diff changeset
    20
hgs
parents:
diff changeset
    21
#include <qsortfilterproxymodel.h>
hgs
parents:
diff changeset
    22
#include <QString>
hgs
parents:
diff changeset
    23
#include <QList>
hgs
parents:
diff changeset
    24
#include <mpxitemid.h>
hgs
parents:
diff changeset
    25
hgs
parents:
diff changeset
    26
class VideoProxyModelGeneric : public QSortFilterProxyModel
hgs
parents:
diff changeset
    27
{
hgs
parents:
diff changeset
    28
    Q_OBJECT
hgs
parents:
diff changeset
    29
hgs
parents:
diff changeset
    30
public:
hgs
parents:
diff changeset
    31
hgs
parents:
diff changeset
    32
    /**
hgs
parents:
diff changeset
    33
     * Contructor.
hgs
parents:
diff changeset
    34
     *
hgs
parents:
diff changeset
    35
     * @param parent parent of this widget
hgs
parents:
diff changeset
    36
     */
hgs
parents:
diff changeset
    37
    VideoProxyModelGeneric(QObject *parent=0);
hgs
parents:
diff changeset
    38
hgs
parents:
diff changeset
    39
    /**
hgs
parents:
diff changeset
    40
     * Destructor.
hgs
parents:
diff changeset
    41
     *
hgs
parents:
diff changeset
    42
     */
hgs
parents:
diff changeset
    43
    virtual ~VideoProxyModelGeneric();
hgs
parents:
diff changeset
    44
    
hgs
parents:
diff changeset
    45
public:
hgs
parents:
diff changeset
    46
hgs
parents:
diff changeset
    47
    /**
hgs
parents:
diff changeset
    48
     * Method checks that model exists and asks for mpx id from
hgs
parents:
diff changeset
    49
     * given object.
hgs
parents:
diff changeset
    50
     *
hgs
parents:
diff changeset
    51
     * @param index index of the item.
hgs
parents:
diff changeset
    52
     * @return int mpx id if succeeds, -1 in case of error
hgs
parents:
diff changeset
    53
     *
hgs
parents:
diff changeset
    54
     */
hgs
parents:
diff changeset
    55
    TMPXItemId getMediaIdAtIndex(QModelIndex index);
hgs
parents:
diff changeset
    56
hgs
parents:
diff changeset
    57
    /**
hgs
parents:
diff changeset
    58
     * Returns filepath.
hgs
parents:
diff changeset
    59
     * 
hgs
parents:
diff changeset
    60
     * @param mediaId id for the item, only iId1 is used.
hgs
parents:
diff changeset
    61
     * @returns file path for the item.
hgs
parents:
diff changeset
    62
     */
hgs
parents:
diff changeset
    63
    QString getMediaFilePathForId(TMPXItemId mediaId);
hgs
parents:
diff changeset
    64
hgs
parents:
diff changeset
    65
    /**
hgs
parents:
diff changeset
    66
    * Return to collection level
hgs
parents:
diff changeset
    67
    *
hgs
parents:
diff changeset
    68
    */
hgs
parents:
diff changeset
    69
    void back();
hgs
parents:
diff changeset
    70
    
hgs
parents:
diff changeset
    71
    /**
hgs
parents:
diff changeset
    72
     * Return source model.
hgs
parents:
diff changeset
    73
     * 
hgs
parents:
diff changeset
    74
     */
hgs
parents:
diff changeset
    75
    VideoProxyModelGeneric* sourceModel();    
hgs
parents:
diff changeset
    76
hgs
parents:
diff changeset
    77
public: // Simplified data access.
hgs
parents:
diff changeset
    78
    /**
hgs
parents:
diff changeset
    79
    * Return count of filenames.
hgs
parents:
diff changeset
    80
    *
hgs
parents:
diff changeset
    81
    */
hgs
parents:
diff changeset
    82
    int rowCount(const QModelIndex & parent = QModelIndex()) const;
hgs
parents:
diff changeset
    83
hgs
parents:
diff changeset
    84
    /**
hgs
parents:
diff changeset
    85
     * Return specified index.
hgs
parents:
diff changeset
    86
     *
hgs
parents:
diff changeset
    87
     */
hgs
parents:
diff changeset
    88
    QModelIndex index(int row, int column, const QModelIndex &parent = QModelIndex()) const;
hgs
parents:
diff changeset
    89
hgs
parents:
diff changeset
    90
    /**
hgs
parents:
diff changeset
    91
     * Returns copy of the given index.
hgs
parents:
diff changeset
    92
     *
hgs
parents:
diff changeset
    93
     */
hgs
parents:
diff changeset
    94
    QModelIndex mapToSource(const QModelIndex &proxyIndex) const;
hgs
parents:
diff changeset
    95
hgs
parents:
diff changeset
    96
signals:
hgs
parents:
diff changeset
    97
hgs
parents:
diff changeset
    98
    /**
hgs
parents:
diff changeset
    99
     * Signals that the model is ready, ie. that all data has been
hgs
parents:
diff changeset
   100
     * loaded from myvideoscollection.
hgs
parents:
diff changeset
   101
     */
hgs
parents:
diff changeset
   102
    void modelReady();
hgs
parents:
diff changeset
   103
    
hgs
parents:
diff changeset
   104
    /**
hgs
parents:
diff changeset
   105
     * notifies that model's physical data structure has changed:
hgs
parents:
diff changeset
   106
     * - item inserted
hgs
parents:
diff changeset
   107
     * - item removed 
hgs
parents:
diff changeset
   108
     */
hgs
parents:
diff changeset
   109
    void modelChanged();    
hgs
parents:
diff changeset
   110
    
hgs
parents:
diff changeset
   111
public: // Test helper methods.
hgs
parents:
diff changeset
   112
hgs
parents:
diff changeset
   113
    static void reset();
hgs
parents:
diff changeset
   114
hgs
parents:
diff changeset
   115
    void appendData(QString fileName);
hgs
parents:
diff changeset
   116
hgs
parents:
diff changeset
   117
protected: // from QSortFilterProxyModel
hgs
parents:
diff changeset
   118
hgs
parents:
diff changeset
   119
    /**
hgs
parents:
diff changeset
   120
     * Compares items based in the role setted before sorting.
hgs
parents:
diff changeset
   121
     *
hgs
parents:
diff changeset
   122
     */
hgs
parents:
diff changeset
   123
    bool lessThan ( const QModelIndex & left, const QModelIndex & right ) const;
hgs
parents:
diff changeset
   124
hgs
parents:
diff changeset
   125
public:
hgs
parents:
diff changeset
   126
hgs
parents:
diff changeset
   127
    // Incremented at rowCount calls.
hgs
parents:
diff changeset
   128
    static int mRowCountCallCount;
hgs
parents:
diff changeset
   129
hgs
parents:
diff changeset
   130
    // If true index() returns invalid indexes.
hgs
parents:
diff changeset
   131
    static bool mReturnInvalidIndexes;
hgs
parents:
diff changeset
   132
hgs
parents:
diff changeset
   133
    // Model items.
hgs
parents:
diff changeset
   134
    QList<QString> mFileNames;
hgs
parents:
diff changeset
   135
};
hgs
parents:
diff changeset
   136
hgs
parents:
diff changeset
   137
#endif // VIDEOPROXYMODELGENERIC_H