OpenMW
|
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