OpenMW
apps/opencs/model/world/idtableproxymodel.hpp
Go to the documentation of this file.
00001 #ifndef CSM_WOLRD_IDTABLEPROXYMODEL_H
00002 #define CSM_WOLRD_IDTABLEPROXYMODEL_H
00003 
00004 #include <string>
00005 
00006 #include <boost/shared_ptr.hpp>
00007 
00008 #include <map>
00009 
00010 #include <QSortFilterProxyModel>
00011 
00012 #include "../filter/node.hpp"
00013 
00014 namespace CSMWorld
00015 {
00016     class IdTableProxyModel : public QSortFilterProxyModel
00017     {
00018             Q_OBJECT
00019 
00020             boost::shared_ptr<CSMFilter::Node> mFilter;
00021             std::map<int, int> mColumnMap; // column ID, column index in this model (or -1)
00022 
00023         private:
00024 
00025             void updateColumnMap();
00026 
00027             bool filterAcceptsRow (int sourceRow, const QModelIndex& sourceParent) const;
00028 
00029         public:
00030 
00031             IdTableProxyModel (QObject *parent = 0);
00032 
00033             virtual QModelIndex getModelIndex (const std::string& id, int column) const;
00034 
00035             void setFilter (const boost::shared_ptr<CSMFilter::Node>& filter);
00036     };
00037 }
00038 
00039 #endif