hgwidgets_plat/hgcacheproxymodel_api/inc/hgcacheproxymodel.h
changeset 2 49c70dcc3f17
parent 1 e48454f237ca
child 3 c863538fcbb6
--- a/hgwidgets_plat/hgcacheproxymodel_api/inc/hgcacheproxymodel.h	Mon May 03 13:32:54 2010 +0300
+++ b/hgwidgets_plat/hgcacheproxymodel_api/inc/hgcacheproxymodel.h	Fri May 14 16:57:01 2010 +0300
@@ -13,7 +13,7 @@
 *
 * Description:
 *
-*  Version     : %version: 2 %
+*  Version     : %version: 5 %
 */
 
 #ifndef HGCACHEPROXYMODEL_H_
@@ -47,69 +47,69 @@
     virtual void request(int start, int end, HgRequestOrder order = HgRequestOrderAscending) = 0;  
 };
 
-class HgCacheProxyModel : public QAbstractItemModel, public HgBufferManagerObserver, public HgDataProviderModelObserver
+class CACHEPROXYMODEL_EXPORT HgCacheProxyModel : public QAbstractItemModel, public HgBufferManagerObserver, public HgDataProviderModelObserver
 {
     Q_OBJECT
 public:
-    CACHEPROXYMODEL_EXPORT HgCacheProxyModel(QObject *parent = 0);
-    CACHEPROXYMODEL_EXPORT ~HgCacheProxyModel();   
+    HgCacheProxyModel(QObject *parent = 0);
+    ~HgCacheProxyModel();   
     
-    CACHEPROXYMODEL_EXPORT void setDataProvider(HgDataProviderModel *dataProvider, int cacheSize = KDefaultCacheSize, int cacheTreshold = KDefaultCacheTreshold);
-    CACHEPROXYMODEL_EXPORT HgDataProviderModel* DataProvider();
-    CACHEPROXYMODEL_EXPORT void resizeCache(int newSize, int newTreshold);
+    void setDataProvider(HgDataProviderModel *dataProvider, int cacheSize = KDefaultCacheSize, int cacheTreshold = KDefaultCacheTreshold);
+    HgDataProviderModel* DataProvider();
+    void resizeCache(int newSize, int newTreshold);
     
 //from QAbstractItemModel
-    CACHEPROXYMODEL_EXPORT virtual QModelIndex index(int row, int column, const QModelIndex &parent = QModelIndex()) const;
-    CACHEPROXYMODEL_EXPORT virtual QModelIndex parent(const QModelIndex &child) const;
-    CACHEPROXYMODEL_EXPORT virtual int rowCount(const QModelIndex &parent = QModelIndex()) const;
-    CACHEPROXYMODEL_EXPORT virtual int columnCount(const QModelIndex &parent = QModelIndex()) const;
-    CACHEPROXYMODEL_EXPORT virtual bool hasChildren(const QModelIndex &parent = QModelIndex()) const;
-    CACHEPROXYMODEL_EXPORT virtual QVariant data(const QModelIndex &index, int role = Qt::DisplayRole) const;
-    CACHEPROXYMODEL_EXPORT virtual bool setData(const QModelIndex &index, const QVariant &value, int role = Qt::EditRole);
-    CACHEPROXYMODEL_EXPORT virtual QVariant headerData(int section, Qt::Orientation orientation, int role = Qt::DisplayRole) const;
-    CACHEPROXYMODEL_EXPORT virtual bool setHeaderData(int section, Qt::Orientation orientation, const QVariant &value, int role = Qt::EditRole);
-    CACHEPROXYMODEL_EXPORT virtual QMap<int, QVariant> itemData(const QModelIndex &index) const;
-    CACHEPROXYMODEL_EXPORT virtual bool setItemData(const QModelIndex &index, const QMap<int, QVariant> &roles);
-    CACHEPROXYMODEL_EXPORT virtual QStringList mimeTypes() const;
-    CACHEPROXYMODEL_EXPORT virtual QMimeData *mimeData(const QModelIndexList &indexes) const;
-    CACHEPROXYMODEL_EXPORT virtual bool dropMimeData(const QMimeData *data, Qt::DropAction action, int row, int column, const QModelIndex &parent);
-    CACHEPROXYMODEL_EXPORT virtual Qt::DropActions supportedDropActions() const;
-    CACHEPROXYMODEL_EXPORT virtual bool insertRows(int row, int count, const QModelIndex &parent = QModelIndex());
-    CACHEPROXYMODEL_EXPORT virtual bool insertColumns(int column, int count, const QModelIndex &parent = QModelIndex());
-    CACHEPROXYMODEL_EXPORT virtual bool removeRows(int row, int count, const QModelIndex &parent = QModelIndex());
-    CACHEPROXYMODEL_EXPORT virtual bool removeColumns(int column, int count, const QModelIndex &parent = QModelIndex());
-    CACHEPROXYMODEL_EXPORT virtual void fetchMore(const QModelIndex &parent);
-    CACHEPROXYMODEL_EXPORT virtual bool canFetchMore(const QModelIndex &parent) const;
-    CACHEPROXYMODEL_EXPORT virtual Qt::ItemFlags flags(const QModelIndex &index) const;
-    CACHEPROXYMODEL_EXPORT virtual void sort(int column, Qt::SortOrder order = Qt::AscendingOrder);
-    CACHEPROXYMODEL_EXPORT virtual QModelIndex buddy(const QModelIndex &index) const;
-    CACHEPROXYMODEL_EXPORT virtual QModelIndexList match(const QModelIndex &start, int role,
+    virtual QModelIndex index(int row, int column, const QModelIndex &parent = QModelIndex()) const;
+    virtual QModelIndex parent(const QModelIndex &child) const;
+    virtual int rowCount(const QModelIndex &parent = QModelIndex()) const;
+    virtual int columnCount(const QModelIndex &parent = QModelIndex()) const;
+    virtual bool hasChildren(const QModelIndex &parent = QModelIndex()) const;
+    virtual QVariant data(const QModelIndex &index, int role = Qt::DisplayRole) const;
+    virtual bool setData(const QModelIndex &index, const QVariant &value, int role = Qt::EditRole);
+    virtual QVariant headerData(int section, Qt::Orientation orientation, int role = Qt::DisplayRole) const;
+    virtual bool setHeaderData(int section, Qt::Orientation orientation, const QVariant &value, int role = Qt::EditRole);
+    virtual QMap<int, QVariant> itemData(const QModelIndex &index) const;
+    virtual bool setItemData(const QModelIndex &index, const QMap<int, QVariant> &roles);
+    virtual QStringList mimeTypes() const;
+    virtual QMimeData *mimeData(const QModelIndexList &indexes) const;
+    virtual bool dropMimeData(const QMimeData *data, Qt::DropAction action, int row, int column, const QModelIndex &parent);
+    virtual Qt::DropActions supportedDropActions() const;
+    virtual bool insertRows(int row, int count, const QModelIndex &parent = QModelIndex());
+    virtual bool insertColumns(int column, int count, const QModelIndex &parent = QModelIndex());
+    virtual bool removeRows(int row, int count, const QModelIndex &parent = QModelIndex());
+    virtual bool removeColumns(int column, int count, const QModelIndex &parent = QModelIndex());
+    virtual void fetchMore(const QModelIndex &parent);
+    virtual bool canFetchMore(const QModelIndex &parent) const;
+    virtual Qt::ItemFlags flags(const QModelIndex &index) const;
+    virtual void sort(int column, Qt::SortOrder order = Qt::AscendingOrder);
+    virtual QModelIndex buddy(const QModelIndex &index) const;
+    virtual QModelIndexList match(const QModelIndex &start, int role,
                                   const QVariant &value, int hits = 1,
                                   Qt::MatchFlags flags =
                                   Qt::MatchFlags(Qt::MatchStartsWith|Qt::MatchWrap)) const;
-    CACHEPROXYMODEL_EXPORT virtual QSize span(const QModelIndex &index) const;
+    virtual QSize span(const QModelIndex &index) const;
 
 // for sorting
-    CACHEPROXYMODEL_EXPORT Qt::CaseSensitivity sortCaseSensitivity() const;
-    CACHEPROXYMODEL_EXPORT void setSortCaseSensitivity(Qt::CaseSensitivity cs);
-    CACHEPROXYMODEL_EXPORT bool isSortLocaleAware() const;
-    CACHEPROXYMODEL_EXPORT void setSortLocaleAware(bool on);
-    CACHEPROXYMODEL_EXPORT int sortColumn() const;
-    CACHEPROXYMODEL_EXPORT Qt::SortOrder sortOrder() const;
-    CACHEPROXYMODEL_EXPORT bool dynamicSortFilter() const;
-    CACHEPROXYMODEL_EXPORT void setDynamicSortFilter(bool enable);
-    CACHEPROXYMODEL_EXPORT int sortRole() const;
-    CACHEPROXYMODEL_EXPORT void setSortRole(int role);
+    Qt::CaseSensitivity sortCaseSensitivity() const;
+    void setSortCaseSensitivity(Qt::CaseSensitivity cs);
+    bool isSortLocaleAware() const;
+    void setSortLocaleAware(bool on);
+    int sortColumn() const;
+    Qt::SortOrder sortOrder() const;
+    bool dynamicSortFilter() const;
+    void setDynamicSortFilter(bool enable);
+    int sortRole() const;
+    void setSortRole(int role);
 
 //for filtering
-//    CACHEPROXYMODEL_EXPORT QRegExp filterRegExp() const;
-//    CACHEPROXYMODEL_EXPORT void setFilterRegExp(const QRegExp &regExp);
-//    CACHEPROXYMODEL_EXPORT int filterKeyColumn() const;
-//    CACHEPROXYMODEL_EXPORT void setFilterKeyColumn(int column);
-//    CACHEPROXYMODEL_EXPORT Qt::CaseSensitivity filterCaseSensitivity() const;
-//    CACHEPROXYMODEL_EXPORT void setFilterCaseSensitivity(Qt::CaseSensitivity cs);
-//    CACHEPROXYMODEL_EXPORT int filterRole() const;
-//    CACHEPROXYMODEL_EXPORT void setFilterRole(int role);
+    QRegExp filterRegExp() const;
+    void setFilterRegExp(const QRegExp &regExp);
+    int filterKeyColumn() const;
+    void setFilterKeyColumn(int column);
+    Qt::CaseSensitivity filterCaseSensitivity() const;
+    void setFilterCaseSensitivity(Qt::CaseSensitivity cs);
+    int filterRole() const;
+    void setFilterRole(int role);
     
 public slots:
     virtual bool submit();
@@ -117,8 +117,8 @@
     
 public:
 //from HgBufferManagerObserver
-    CACHEPROXYMODEL_EXPORT virtual void release(int start, int end);
-    CACHEPROXYMODEL_EXPORT virtual void request(int start, int end, HgRequestOrder order = HgRequestOrderAscending);  
+    virtual void release(int start, int end);
+    virtual void request(int start, int end, HgRequestOrder order = HgRequestOrderAscending);  
     
 private:
     int count()const;
@@ -126,32 +126,41 @@
     QModelIndex mapToSource(int row, int col) const;
     int mapToDataProviderIndex(int myIndex) const;
     int mapFromDataProviderIndex(int myIndex) const;
-    void cleanupForBMResetIfNeeded();
-    void resetBMIfNeeded();
+    void cleanupForBMReset();
+    void resetBM();
     void releaseAll();
     void setBufferPosition(int pos) const;
     
 private slots:
-    void sourceReset();
-    void sourceAboutToBeReset();
-    void sourceRowsInserted(const QModelIndex &source_parent, int start, int end);
-    void sourceRowsRemoved(const QModelIndex &source_parent, int start, int end);
-    void dataUpdated(QModelIndex from, QModelIndex to);
+    void sourceColumnsAboutToBeInserted( const QModelIndex & parent, int start, int end);
+    void sourceColumnsAboutToBeMoved( const QModelIndex & sourceParent, int sourceStart, int sourceEnd, const QModelIndex & destinationParent, int destinationColumn );
+    void sourceColumnsAboutToBeRemoved( const QModelIndex & parent, int start, int end);
+    void sourceColumnsInserted( const QModelIndex & parent, int start, int end );
+    void sourceColumnsMoved( const QModelIndex & sourceParent, int sourceStart, int sourceEnd, const QModelIndex & destinationParent, int destinationColumn );
+    void sourceColumnsRemoved( const QModelIndex & parent, int start, int end );
+    void sourceDataChanged( const QModelIndex & topLeft, const QModelIndex & bottomRight );
+    void sourceHeaderDataChanged( Qt::Orientation orientation, int first, int last );
+    void sourceLayoutAboutToBeChanged();
+    void sourceLayoutChanged();
+    void sourceModelAboutToBeReset();
+    void sourceModelReset();
+    void sourceRowsAboutToBeInserted( const QModelIndex & parent, int start, int end );
+    void sourceRowsAboutToBeMoved( const QModelIndex & sourceParent, int sourceStart, int sourceEnd, const QModelIndex & destinationParent, int destinationRow );
+    void sourceRowsAboutToBeRemoved( const QModelIndex & parent, int start, int end );
+    void sourceRowsInserted( const QModelIndex & parent, int start, int end );
+    void sourceRowsMoved( const QModelIndex & sourceParent, int sourceStart, int sourceEnd, const QModelIndex & destinationParent, int destinationRow );
+    void sourceRowsRemoved( const QModelIndex & parent, int start, int end );
     
 //from HgDataProviderModelObserver    
 public:
-    CACHEPROXYMODEL_EXPORT virtual void dataUpdated(int from, int to);
+    virtual void dataUpdated(int from, int to);
     
 private:
     HgBufferManager* mBufferManager;
     QSortFilterProxyModel* mSortFilterProxyModel;
     HgDataProviderModel* mDataProviderModel;
-    mutable bool mResetNeeded;
     mutable bool mSupressBM;
     mutable int mCurrentPos;
-    bool mSortParameterChanged;
-    bool mFilterParameterChanged;
-    
 };
 
 #endif // HGCACHEPROXYMODEL_H_