QGIS API Documentation  3.18.1-Zürich (202f1bf7e5)
qgsdataitem.h
Go to the documentation of this file.
1 /***************************************************************************
2  qgsdataitem.h - Items representing data
3  -------------------
4  begin : 2011-04-01
5  copyright : (C) 2011 Radim Blazek
6  email : radim dot blazek at gmail dot com
7  ***************************************************************************/
8 
9 /***************************************************************************
10  * *
11  * This program is free software; you can redistribute it and/or modify *
12  * it under the terms of the GNU General Public License as published by *
13  * the Free Software Foundation; either version 2 of the License, or *
14  * (at your option) any later version. *
15  * *
16  ***************************************************************************/
17 #ifndef QGSDATAITEM_H
18 #define QGSDATAITEM_H
19 
20 #include "qgis_sip.h"
21 #include "qgis_core.h"
22 #include <QFileSystemWatcher>
23 #include <QFutureWatcher>
24 #include <QIcon>
25 #include <QObject>
26 #include <QPixmap>
27 #include <QString>
28 #include <QTreeWidget>
29 #include <QVector>
30 #include <QDateTime>
31 
32 #include "qgsmaplayer.h"
34 #include "qgsmimedatautils.h"
35 #include "qgswkbtypes.h"
37 
38 class QgsDataProvider;
39 class QgsDataItem;
40 class QgsAnimatedIcon;
41 class QgsBookmarkManager;
42 
43 typedef QgsDataItem *dataItem_t( QString, QgsDataItem * ) SIP_SKIP;
44 
51 class CORE_EXPORT QgsDataItem : public QObject
52 {
53 
54 #ifdef SIP_RUN
56  if ( qobject_cast<QgsLayerItem *>( sipCpp ) )
57  sipType = sipType_QgsLayerItem;
58  else if ( qobject_cast<QgsErrorItem *>( sipCpp ) )
59  sipType = sipType_QgsErrorItem;
60  else if ( qobject_cast<QgsDirectoryItem *>( sipCpp ) )
61  sipType = sipType_QgsDirectoryItem;
62  else if ( qobject_cast<QgsFavoritesItem *>( sipCpp ) )
63  sipType = sipType_QgsFavoritesItem;
64  else if ( qobject_cast<QgsZipItem *>( sipCpp ) )
65  sipType = sipType_QgsZipItem;
66  else if ( qobject_cast<QgsDataCollectionItem *>( sipCpp ) )
67  sipType = sipType_QgsDataCollectionItem;
68  else if ( qobject_cast<QgsProjectItem *>( sipCpp ) )
69  sipType = sipType_QgsProjectItem;
70  else
71  sipType = 0;
72  SIP_END
73 #endif
74 
75  Q_OBJECT
76 
77  public:
78  enum Type
79  {
89  };
90 
91  Q_ENUM( Type )
92 
93 
104  QgsDataItem( QgsDataItem::Type type, QgsDataItem *parent SIP_TRANSFERTHIS, const QString &name, const QString &path, const QString &providerKey = QString() );
105 
106  ~QgsDataItem() override;
107 
108  bool hasChildren();
109 
115  virtual bool layerCollection() const;
116 
117  int rowCount();
118 
123  virtual QVector<QgsDataItem *> createChildren() SIP_TRANSFERBACK;
124 #ifdef SIP_RUN
126  PyObject *sipResObj = sipCallMethod( 0, sipMethod, "" );
127  // H = Convert a Python object to a mapped type instance.
128  // 5 = 1 (disallows the conversion of Py_None to NULL) + 4 (returns a copy of the C/C++ instance)
129  sipIsErr = !sipResObj || sipParseResult( 0, sipMethod, sipResObj, "H5", sipType_QVector_0101QgsDataItem, &sipRes ) < 0;
130  if ( !sipIsErr )
131  {
132  for ( QgsDataItem *item : sipRes )
133  {
134  PyObject *pyItem = sipGetPyObject( item, sipType_QgsDataItem );
135  if ( pyItem != NULL )
136  {
137  // pyItem is given an extra reference which is removed when the C++ instance’s destructor is called.
138  sipTransferTo( pyItem, Py_None );
139  }
140  }
141  }
142  if ( sipResObj != NULL )
143  {
144  Py_DECREF( sipResObj );
145  }
146  SIP_END
147 #endif
148 
149  enum State
150  {
153  Populated
154  };
155  Q_ENUM( State )
156 
157 
158  State state() const;
159 
165  virtual void setState( State state );
166 
173  virtual void addChildItem( QgsDataItem *child SIP_TRANSFER, bool refresh = false );
174 
180  virtual void deleteChildItem( QgsDataItem *child );
181 
187  virtual QgsDataItem *removeChildItem( QgsDataItem *child ) SIP_TRANSFERBACK;
188 
192  virtual bool equal( const QgsDataItem *other );
193 
201  Q_DECL_DEPRECATED virtual QWidget *paramWidget() SIP_FACTORY SIP_DEPRECATED { return nullptr; }
202 
210  virtual QList<QAction *> actions( QWidget *parent );
211 
220  virtual QList<QMenu *> menus( QWidget *parent );
221 
230  Q_DECL_DEPRECATED virtual bool acceptDrop() SIP_DEPRECATED { return false; }
231 
240  Q_DECL_DEPRECATED virtual bool handleDrop( const QMimeData * /*data*/, Qt::DropAction /*action*/ ) SIP_DEPRECATED { return false; }
241 
248  virtual bool handleDoubleClick();
249 
257  virtual bool hasDragEnabled() const { return false; }
258 
266  Q_DECL_DEPRECATED virtual QgsMimeDataUtils::Uri mimeUri() const SIP_DEPRECATED;
267 
276  virtual QgsMimeDataUtils::UriList mimeUris() const { return QgsMimeDataUtils::UriList(); }
277 
279  {
280  NoCapabilities = 0,
281  SetCrs = 1 << 0,
282  Fertile = 1 << 1,
283  Fast = 1 << 2,
284  Collapse = 1 << 3,
285  Rename = 1 << 4,
286  Delete = 1 << 5,
287  };
288  Q_DECLARE_FLAGS( Capabilities, Capability )
289 
290 
296  Q_DECL_DEPRECATED virtual bool setCrs( const QgsCoordinateReferenceSystem &crs ) SIP_DEPRECATED
297  {
298  Q_UNUSED( crs )
299  return false;
300  }
301 
314  Q_DECL_DEPRECATED virtual bool rename( const QString &name ) SIP_DEPRECATED;
315 
316  // ### QGIS 4 - rename to capabilities()
317 
323  virtual Capabilities capabilities2() const { return mCapabilities; }
324 
330  virtual void setCapabilities( Capabilities capabilities ) { mCapabilities = capabilities; }
331 
332  // static methods
333 
334  // Find child index in vector of items using '==' operator
335  static int findItem( QVector<QgsDataItem *> items, QgsDataItem *item );
336 
337  // members
338 
339  Type type() const { return mType; }
340 
345  QgsDataItem *parent() const { return mParent; }
346 
351  void setParent( QgsDataItem *parent );
352  QVector<QgsDataItem *> children() const { return mChildren; }
353  virtual QIcon icon();
354 
360  QString name() const { return mName; }
361 
367  void setName( const QString &name );
368 
369  QString path() const { return mPath; }
370  void setPath( const QString &path ) { mPath = path; }
371 
380  QString providerKey() const;
381 
390  void setProviderKey( const QString &value );
391 
393  static QString pathComponent( const QString &component );
394 
405  virtual QVariant sortKey() const;
406 
412  void setSortKey( const QVariant &key );
413 
414 
415  // Because QIcon (QPixmap) must not be used in outside the GUI thread, it is
416  // not possible to set mIcon in constructor. Either use mIconName/setIconName()
417  // or implement icon().
418  void setIcon( const QIcon &icon ) { mIcon = icon; }
419  void setIconName( const QString &iconName ) { mIconName = iconName; }
420 
421  void setToolTip( const QString &msg ) { mToolTip = msg; }
422  QString toolTip() const { return mToolTip; }
423 
424  // deleteLater() items and clear the vector
425  static void deleteLater( QVector<QgsDataItem *> &items );
426 
428  void moveToThread( QThread *targetThread );
429 
439  virtual QgsAbstractDatabaseProviderConnection *databaseConnection() const SIP_FACTORY;
440 
441  protected:
442  virtual void populate( const QVector<QgsDataItem *> &children );
443 
447  virtual void refresh( const QVector<QgsDataItem *> &children );
448 
457  bool deferredDelete() { return mDeferredDelete; }
458 
460  Capabilities mCapabilities;
461  QgsDataItem *mParent = nullptr;
462  QVector<QgsDataItem *> mChildren; // easier to have it always
464  QString mName;
465  QString mProviderKey;
466  // Path is slash ('/') separated chain of item identifiers which are usually item names, but may be different if it is
467  // necessary to distinguish paths of two providers to the same source (e.g GRASS location and standard directory have the same
468  // name but different paths). Identifiers in path must not contain '/' characters.
469  // The path is used to identify item in tree.
470  QString mPath;
471  QString mToolTip;
472  QString mIconName;
473  QIcon mIcon;
474  QMap<QString, QIcon> mIconMap;
475 
477  QVariant mSortKey;
478 
479  public slots:
480 
490  virtual void deleteLater();
491 
492  // Populate children using children vector created by createChildren()
493  // \param foreground run createChildren in foreground
494  virtual void populate( bool foreground = false );
495 
497  virtual void depopulate();
498 
499  virtual void refresh();
500 
507  virtual void refreshConnections( const QString &providerKey = QString() );
508 
509  virtual void childrenCreated();
510 
511  signals:
512  void beginInsertItems( QgsDataItem *parent, int first, int last );
514  void beginRemoveItems( QgsDataItem *parent, int first, int last );
516  void dataChanged( QgsDataItem *item );
517  void stateChanged( QgsDataItem *item, QgsDataItem::State oldState );
518 
526  void connectionsChanged( const QString &providerKey = QString() );
527 
528  protected slots:
529 
535  void updateIcon();
536 
537  private:
538  static QVector<QgsDataItem *> runCreateChildren( QgsDataItem *item );
539 
540  // Set to true if object has to be deleted when possible (nothing running in threads)
541  bool mDeferredDelete;
542  QFutureWatcher< QVector <QgsDataItem *> > *mFutureWatcher;
543  // number of items currently in loading (populating) state
544  static QgsAnimatedIcon *sPopulatingIcon;
545 };
546 
547 Q_DECLARE_OPERATORS_FOR_FLAGS( QgsDataItem::Capabilities )
548 
549 
553 class CORE_EXPORT QgsLayerItem : public QgsDataItem
554 {
555  Q_OBJECT
556 
557  public:
559  {
572  PointCloud
573  };
574 
575  Q_ENUM( LayerType )
576 
577  QgsLayerItem( QgsDataItem *parent, const QString &name, const QString &path, const QString &uri, LayerType layerType, const QString &providerKey );
578 
579  // --- reimplemented from QgsDataItem ---
580 
581  bool equal( const QgsDataItem *other ) override;
582 
583  bool hasDragEnabled() const override { return true; }
584 
585  QgsMimeDataUtils::UriList mimeUris() const override;
586 
587  // --- New virtual methods for layer item derived classes ---
588 
590  QgsMapLayerType mapLayerType() const;
591 
596  static LayerType typeFromMapLayer( QgsMapLayer *layer );
597 
599  QString uri() const { return mUri; }
600 
602  QString providerKey() const { return mProviderKey; }
603 
608  QStringList supportedCrs() const { return mSupportedCRS; }
609 
614  QStringList supportedFormats() const { return mSupportFormats; }
615 
620  virtual QString comments() const { return QString(); }
621 
626  static QString layerTypeAsString( LayerType layerType );
627 
632  static QString iconName( LayerType layerType );
633 
640  Q_DECL_DEPRECATED virtual bool deleteLayer() SIP_DEPRECATED;
641 
642  protected:
644  QString mUri;
646  LayerType mLayerType;
648  QStringList mSupportedCRS;
650  QStringList mSupportFormats;
651 
652  public:
653 
658  static QIcon iconForWkbType( QgsWkbTypes::Type type );
659 
660  static QIcon iconPoint();
661  static QIcon iconLine();
662  static QIcon iconPolygon();
663  static QIcon iconTable();
664  static QIcon iconRaster();
665  static QIcon iconDefault();
667  static QIcon iconMesh();
669  static QIcon iconVectorTile();
671  static QIcon iconPointCloud();
673  virtual QString layerName() const { return name(); }
674 
675 };
676 
677 
682 class CORE_EXPORT QgsDataCollectionItem : public QgsDataItem
683 {
684  Q_OBJECT
685  public:
686 
698  QgsDataCollectionItem( QgsDataItem *parent SIP_TRANSFERTHIS, const QString &name, const QString &path = QString(), const QString &providerKey = QString() );
699 
700  ~QgsDataCollectionItem() override;
701 
702  void addChild( QgsDataItem *item SIP_TRANSFER ) { mChildren.append( item ); }
703 
708  static QIcon iconDir();
709 
714  static QIcon iconDataCollection();
715 
716  QgsAbstractDatabaseProviderConnection *databaseConnection() const override;
717 
718  protected:
719 
724  static QIcon openDirIcon();
725 
730  static QIcon homeDirIcon();
731 
732 };
733 
734 
741 {
742  Q_OBJECT
743  public:
744 
756  QgsDatabaseSchemaItem( QgsDataItem *parent SIP_TRANSFERTHIS, const QString &name, const QString &path = QString(), const QString &providerKey = QString() );
757 
758  ~QgsDatabaseSchemaItem() override;
759 
760  QgsAbstractDatabaseProviderConnection *databaseConnection() const override;
761 
766  static QIcon iconDataCollection();
767 
768 };
769 
770 
771 
778 {
779  Q_OBJECT
780  public:
781 
793  QgsConnectionsRootItem( QgsDataItem *parent SIP_TRANSFERTHIS, const QString &name, const QString &path = QString(), const QString &providerKey = QString() );
794 
795  ~QgsConnectionsRootItem() override = default;
796 };
797 
798 
803 class CORE_EXPORT QgsDirectoryItem : public QgsDataCollectionItem
804 {
805  Q_OBJECT
806  public:
807 
818  QgsDirectoryItem( QgsDataItem *parent SIP_TRANSFERTHIS, const QString &name, const QString &path );
819 
820 
821  // TODO QGIS 4.0 -- rename "name" to "title" or "text" or something more descriptive, and "path" to something
822  // else to clarify the role of dirPath vs path
823 
840  QgsDirectoryItem( QgsDataItem *parent SIP_TRANSFERTHIS, const QString &name, const QString &dirPath, const QString &path, const QString &providerKey = QString() );
841 
842  void setState( State state ) override;
843 
844  QVector<QgsDataItem *> createChildren() override;
845 
849  QString dirPath() const { return mDirPath; }
850 
851  bool equal( const QgsDataItem *other ) override;
852  QIcon icon() override;
853  Q_DECL_DEPRECATED QWidget *paramWidget() override SIP_FACTORY SIP_DEPRECATED;
854  bool hasDragEnabled() const override { return true; }
855  QgsMimeDataUtils::UriList mimeUris() const override;
856 
858  static bool hiddenPath( const QString &path );
859 
860  public slots:
861  void childrenCreated() override;
862  void directoryChanged();
863 
864  protected:
865  void init();
866  QString mDirPath;
867 
868  private:
869  QFileSystemWatcher *mFileSystemWatcher = nullptr;
870  bool mRefreshLater;
871  QDateTime mLastScan;
872 };
873 
878 class CORE_EXPORT QgsProjectItem : public QgsDataItem
879 {
880  Q_OBJECT
881  public:
882 
890  QgsProjectItem( QgsDataItem *parent, const QString &name, const QString &path, const QString &providerKey = QString() );
891 
892  bool hasDragEnabled() const override { return true; }
893 
894  QgsMimeDataUtils::UriList mimeUris() const override;
895 
896 };
897 
902 class CORE_EXPORT QgsErrorItem : public QgsDataItem
903 {
904  Q_OBJECT
905  public:
906 
907  QgsErrorItem( QgsDataItem *parent, const QString &error, const QString &path );
908 
909 };
910 
911 // ---------
912 
913 // TODO: move to qgis_gui for QGIS 4
914 
921 class CORE_EXPORT QgsDirectoryParamWidget : public QTreeWidget
922 {
923  Q_OBJECT
924 
925  public:
926  QgsDirectoryParamWidget( const QString &path, QWidget *parent SIP_TRANSFERTHIS = nullptr );
927 
928  protected:
929  void mousePressEvent( QMouseEvent *event ) override;
930 
931  public slots:
932  void showHideColumn();
933 };
934 
940 class CORE_EXPORT QgsFavoritesItem : public QgsDataCollectionItem
941 {
942  Q_OBJECT
943  public:
944 
949  QgsFavoritesItem( QgsDataItem *parent, const QString &name, const QString &path = QString() );
950 
951  QVector<QgsDataItem *> createChildren() override;
952 
961  void addDirectory( const QString &directory, const QString &name = QString() );
962 
967  void removeDirectory( QgsDirectoryItem *item );
968 
972  void renameFavorite( const QString &path, const QString &name );
973 
975  static QIcon iconFavorites();
976 
977  QVariant sortKey() const override;
978 
979  private:
980  QVector<QgsDataItem *> createChildren( const QString &favDir, const QString &name );
981 };
982 
987 class CORE_EXPORT QgsZipItem : public QgsDataCollectionItem
988 {
989  Q_OBJECT
990 
991  protected:
992  QString mFilePath;
993  QString mVsiPrefix;
994  QStringList mZipFileList;
995 
996  public:
998  QgsZipItem( QgsDataItem *parent, const QString &name, const QString &path );
999 
1001  QgsZipItem( QgsDataItem *parent, const QString &name, const QString &filePath, const QString &path, const QString &providerKey = QString() );
1002 
1003  QVector<QgsDataItem *> createChildren() override;
1004  QStringList getZipFileList();
1005 
1007  static QVector<dataItem_t *> sDataItemPtr SIP_SKIP;
1008  static QStringList sProviderNames;
1009 
1010  static QString vsiPrefix( const QString &uri ) { return qgsVsiPrefix( uri ); }
1011 
1015  static QgsDataItem *itemFromPath( QgsDataItem *parent, const QString &path, const QString &name ) SIP_FACTORY;
1016 
1021  static QgsDataItem *itemFromPath( QgsDataItem *parent, const QString &filePath, const QString &name, const QString &path ) SIP_FACTORY SIP_PYNAME( itemFromFilePath );
1022 
1023  static QIcon iconZip();
1024 
1025  private:
1026  void init();
1027 };
1028 
1029 
1037 class CORE_EXPORT QgsFieldsItem : public QgsDataItem
1038 {
1039  Q_OBJECT
1040 
1041  public:
1042 
1054  const QString &path,
1055  const QString &connectionUri,
1056  const QString &providerKey,
1057  const QString &schema,
1058  const QString &tableName );
1059 
1060  ~QgsFieldsItem() override;
1061 
1062  QVector<QgsDataItem *> createChildren() override;
1063 
1064  QIcon icon() override;
1065 
1069  QString schema() const;
1070 
1074  QString tableName() const;
1075 
1079  QString connectionUri() const;
1080 
1084  QgsVectorLayer *layer() SIP_FACTORY;
1085 
1091 
1092  private:
1093 
1094  QString mSchema;
1095  QString mTableName;
1096  QString mConnectionUri;
1097  std::unique_ptr<QgsAbstractDatabaseProviderConnection::TableProperty> mTableProperty;
1098 
1099 };
1100 
1101 
1109 class CORE_EXPORT QgsFieldItem : public QgsDataItem
1110 {
1111  Q_OBJECT
1112  public:
1113 
1119  const QgsField &field );
1120 
1121  ~QgsFieldItem() override;
1122 
1123  QIcon icon() override;
1124 
1125  //QgsField field() const;
1126 
1127 
1128  private:
1129 
1130  const QgsField mField;
1131 
1132 };
1133 
1134 
1135 
1137 #ifndef SIP_RUN
1138 
1144 class CORE_EXPORT QgsProjectHomeItem : public QgsDirectoryItem
1145 {
1146  Q_OBJECT
1147 
1148  public:
1149 
1150  QgsProjectHomeItem( QgsDataItem *parent, const QString &name, const QString &dirPath, const QString &path );
1151 
1152  QIcon icon() override;
1153  QVariant sortKey() const override;
1154 
1155 };
1156 
1162 Q_NOWARN_DEPRECATED_PUSH // rename is deprecated
1163 class CORE_EXPORT QgsFavoriteItem : public QgsDirectoryItem
1164 {
1165  Q_OBJECT
1166 
1167  public:
1168 
1169  QgsFavoriteItem( QgsFavoritesItem *parent, const QString &name, const QString &dirPath, const QString &path );
1170 
1171  bool rename( const QString &name ) override;
1172 
1173  private:
1174 
1175  QgsFavoritesItem *mFavorites = nullptr;
1176 };
1178 
1179 #endif
1181 
1182 #endif // QGSDATAITEM_H
1183 
1184 
The QgsAbstractDatabaseProviderConnection class provides common functionality for DB based connection...
Animated icon is keeping an animation running if there are listeners connected to frameChanged.
Manages storage of a set of bookmarks.
A Collection that represents a root group of connections from a single data provider.
Definition: qgsdataitem.h:778
~QgsConnectionsRootItem() override=default
This class represents a coordinate reference system (CRS).
A Collection: logical collection of layers or subcollections, e.g.
Definition: qgsdataitem.h:683
void addChild(QgsDataItem *item)
Definition: qgsdataitem.h:702
Base class for all items in the model.
Definition: qgsdataitem.h:52
QString mToolTip
Definition: qgsdataitem.h:471
virtual Capabilities capabilities2() const
Returns the capabilities for the data item.
Definition: qgsdataitem.h:323
QString mName
Definition: qgsdataitem.h:464
QVector< QgsDataItem * > mChildren
Definition: qgsdataitem.h:462
@ Populating
Creating children in separate thread (populating or refreshing)
Definition: qgsdataitem.h:152
@ NotPopulated
Children not yet created.
Definition: qgsdataitem.h:151
Capabilities mCapabilities
Definition: qgsdataitem.h:460
void setToolTip(const QString &msg)
Definition: qgsdataitem.h:421
virtual Q_DECL_DEPRECATED bool handleDrop(const QMimeData *, Qt::DropAction)
Attempts to process the mime data dropped on this item.
Definition: qgsdataitem.h:240
void dataChanged(QgsDataItem *item)
Type type() const
Definition: qgsdataitem.h:339
void endRemoveItems()
QString mPath
Definition: qgsdataitem.h:470
QVector< QgsDataItem * > children() const
Definition: qgsdataitem.h:352
void beginRemoveItems(QgsDataItem *parent, int first, int last)
QgsDataItem * parent() const
Gets item parent.
Definition: qgsdataitem.h:345
virtual Q_DECL_DEPRECATED bool acceptDrop()
Returns whether the item accepts drag and dropped layers - e.g.
Definition: qgsdataitem.h:230
QString mIconName
Definition: qgsdataitem.h:472
QMap< QString, QIcon > mIconMap
Definition: qgsdataitem.h:474
virtual bool hasDragEnabled() const
Returns true if the item may be dragged.
Definition: qgsdataitem.h:257
@ Custom
Custom item type.
Definition: qgsdataitem.h:86
@ Favorites
Represents a favorite item.
Definition: qgsdataitem.h:84
@ Project
Represents a QGIS project.
Definition: qgsdataitem.h:85
@ Field
Vector layer field.
Definition: qgsdataitem.h:88
@ Fields
Collection of fields.
Definition: qgsdataitem.h:87
QVariant mSortKey
Custom sort key. If invalid, name() will be used for sorting instead.
Definition: qgsdataitem.h:477
void connectionsChanged(const QString &providerKey=QString())
Emitted when the connections of the provider with the specified providerKey have changed.
QString name() const
Returns the name of the item (the displayed text for the item).
Definition: qgsdataitem.h:360
QString path() const
Definition: qgsdataitem.h:369
void beginInsertItems(QgsDataItem *parent, int first, int last)
virtual void setCapabilities(Capabilities capabilities)
Sets the capabilities for the data item.
Definition: qgsdataitem.h:330
virtual Q_DECL_DEPRECATED QWidget * paramWidget()
Returns source widget from data item for QgsBrowserPropertiesWidget.
Definition: qgsdataitem.h:201
QString toolTip() const
Definition: qgsdataitem.h:422
void stateChanged(QgsDataItem *item, QgsDataItem::State oldState)
void setIcon(const QIcon &icon)
Definition: qgsdataitem.h:418
void setIconName(const QString &iconName)
Definition: qgsdataitem.h:419
void setPath(const QString &path)
Definition: qgsdataitem.h:370
void endInsertItems()
State mState
Definition: qgsdataitem.h:463
QString mProviderKey
Definition: qgsdataitem.h:465
Abstract base class for spatial data provider implementations.
A Collection that represents a database schema item.
Definition: qgsdataitem.h:741
A directory: contains subdirectories and layers.
Definition: qgsdataitem.h:804
QString dirPath() const
Returns the full path to the directory the item represents.
Definition: qgsdataitem.h:849
Browser parameter widget implementation for directory items.
Definition: qgsdataitem.h:922
Data item that can be used to report problems (e.g.
Definition: qgsdataitem.h:903
Contains various Favorites directories.
Definition: qgsdataitem.h:941
A layer field item, information about the connection URI, the schema and the table as well as the lay...
Definition: qgsdataitem.h:1110
Encapsulate a field in an attribute table or data source.
Definition: qgsfield.h:51
A collection of field items with some internal logic to retrieve the fields and a the vector layer in...
Definition: qgsdataitem.h:1038
Item that represents a layer that can be opened with one of the providers.
Definition: qgsdataitem.h:554
QStringList supportedFormats() const
Returns the supported formats.
Definition: qgsdataitem.h:614
QString uri() const
Returns layer uri or empty string if layer cannot be created.
Definition: qgsdataitem.h:599
QStringList supportedCrs() const
Returns the supported CRS.
Definition: qgsdataitem.h:608
virtual QString comments() const
Returns comments of the layer.
Definition: qgsdataitem.h:620
QString providerKey() const
Returns provider key.
Definition: qgsdataitem.h:602
bool hasDragEnabled() const override
Returns true if the item may be dragged.
Definition: qgsdataitem.h:583
@ Mesh
Added in 3.2.
Definition: qgsdataitem.h:570
@ Plugin
Added in 2.10.
Definition: qgsdataitem.h:569
@ VectorTile
Added in 3.14.
Definition: qgsdataitem.h:571
Base class for all map layer types.
Definition: qgsmaplayer.h:85
QList< QgsMimeDataUtils::Uri > UriList
Data item that can be used to represent QGIS projects.
Definition: qgsdataitem.h:879
bool hasDragEnabled() const override
Returns true if the item may be dragged.
Definition: qgsdataitem.h:892
Represents a vector layer which manages a vector based data sets.
Handles storage of information regarding WKB types and their properties.
Definition: qgswkbtypes.h:42
A zip file: contains layers, using GDAL/OGR VSIFILE mechanism.
Definition: qgsdataitem.h:988
QStringList mZipFileList
Definition: qgsdataitem.h:994
QString mFilePath
Definition: qgsdataitem.h:992
QString mVsiPrefix
Definition: qgsdataitem.h:993
static QString vsiPrefix(const QString &uri)
Definition: qgsdataitem.h:1010
static QStringList sProviderNames
Definition: qgsdataitem.h:1008
QgsMapLayerType
Types of layers that can be added to a map.
Definition: qgsmaplayer.h:69
QString qgsVsiPrefix(const QString &path)
Definition: qgis.cpp:194
#define Q_NOWARN_DEPRECATED_POP
Definition: qgis.h:798
#define Q_NOWARN_DEPRECATED_PUSH
Definition: qgis.h:797
#define SIP_CONVERT_TO_SUBCLASS_CODE(code)
Definition: qgis_sip.h:177
#define SIP_DEPRECATED
Definition: qgis_sip.h:106
#define SIP_TRANSFERTHIS
Definition: qgis_sip.h:53
#define SIP_SKIP
Definition: qgis_sip.h:126
#define SIP_PYNAME(name)
Definition: qgis_sip.h:81
#define SIP_TRANSFER
Definition: qgis_sip.h:36
#define SIP_TRANSFERBACK
Definition: qgis_sip.h:48
#define SIP_FACTORY
Definition: qgis_sip.h:76
#define SIP_VIRTUAL_CATCHER_CODE(code)
Definition: qgis_sip.h:204
#define SIP_END
Definition: qgis_sip.h:194
QgsDataItem * dataItem_t(QString, QgsDataItem *)
Definition: qgsdataitem.h:43
const QgsField & field
Definition: qgsfield.h:472
Q_DECLARE_OPERATORS_FOR_FLAGS(QgsField::ConfigurationFlags) CORE_EXPORT QDataStream &operator<<(QDataStream &out
Writes the field to stream out. QGIS version compatibility is not guaranteed.
const QgsCoordinateReferenceSystem & crs
The TableProperty class represents a database table or view.