|
QGIS API Documentation
master-6227475
|
00001 /*************************************************************************** 00002 qgsfeaturerequest.h 00003 --------------------- 00004 begin : Mai 2012 00005 copyright : (C) 2012 by Martin Dobias 00006 email : wonder dot sk at gmail dot com 00007 *************************************************************************** 00008 * * 00009 * This program is free software; you can redistribute it and/or modify * 00010 * it under the terms of the GNU General Public License as published by * 00011 * the Free Software Foundation; either version 2 of the License, or * 00012 * (at your option) any later version. * 00013 * * 00014 ***************************************************************************/ 00015 #ifndef QGSFEATUREREQUEST_H 00016 #define QGSFEATUREREQUEST_H 00017 00018 #include <QFlags> 00019 00020 #include "qgsfeature.h" 00021 #include "qgsrectangle.h" 00022 00023 #include <QList> 00024 typedef QList<int> QgsAttributeList; 00025 00055 class CORE_EXPORT QgsFeatureRequest 00056 { 00057 public: 00058 enum Flag 00059 { 00060 NoFlags = 0, 00061 NoGeometry = 1, 00062 SubsetOfAttributes = 2, 00063 ExactIntersect = 4 00064 }; 00065 Q_DECLARE_FLAGS( Flags, Flag ) 00066 00067 enum FilterType 00068 { 00069 FilterNone, 00070 FilterRect, 00071 FilterFid 00072 }; 00073 00075 QgsFeatureRequest(); 00077 explicit QgsFeatureRequest( QgsFeatureId fid ); 00079 explicit QgsFeatureRequest( const QgsRectangle& rect ); 00081 QgsFeatureRequest( const QgsFeatureRequest& rh ); 00082 00083 FilterType filterType() const { return mFilter; } 00084 00087 QgsFeatureRequest& setFilterRect( const QgsRectangle& rect ); 00088 const QgsRectangle& filterRect() const { return mFilterRect; } 00089 00091 QgsFeatureRequest& setFilterFid( QgsFeatureId fid ); 00092 const QgsFeatureId& filterFid() const { return mFilterFid; } 00093 00095 QgsFeatureRequest& setFlags( Flags flags ); 00096 const Flags& flags() const { return mFlags; } 00097 00100 QgsFeatureRequest& setSubsetOfAttributes( const QgsAttributeList& attrs ); 00101 const QgsAttributeList& subsetOfAttributes() const { return mAttrs; } 00102 00104 QgsFeatureRequest& setSubsetOfAttributes( const QStringList& attrNames, const QgsFields& fields ); 00105 00106 // TODO: in future 00107 // void setFilterExpression(const QString& expression); // using QgsExpression 00108 // void setFilterNativeExpression(con QString& expr); // using provider's SQL (if supported) 00109 // void setLimit(int limit); 00110 00111 protected: 00112 FilterType mFilter; 00113 QgsRectangle mFilterRect; 00114 QgsFeatureId mFilterFid; 00115 Flags mFlags; 00116 QgsAttributeList mAttrs; 00117 }; 00118 00119 Q_DECLARE_OPERATORS_FOR_FLAGS( QgsFeatureRequest::Flags ) 00120 00121 00122 #endif // QGSFEATUREREQUEST_H