QGIS API Documentation  3.4.15-Madeira (e83d02e274)
qgsbrowserdockwidget_p.h
Go to the documentation of this file.
1 /***************************************************************************
2  qgsbrowserdockwidget_p.h
3 
4  Private classes for QgsBrowserDockWidget
5 
6  ---------------------
7  begin : May 2017
8  copyright : (C) 2017 by Alessandro Pasotti
9  real work done by : (C) 2011 by Martin Dobias
10  email : a dot pasotti at itopen dot it
11  ***************************************************************************
12  * *
13  * This program is free software; you can redistribute it and/or modify *
14  * it under the terms of the GNU General Public License as published by *
15  * the Free Software Foundation; either version 2 of the License, or *
16  * (at your option) any later version. *
17  * *
18  ***************************************************************************/
19 
20 
21 #ifndef QGSBROWSERDOCKWIDGET_P_H
22 #define QGSBROWSERDOCKWIDGET_P_H
23 
25 
26 //
27 // W A R N I N G
28 // -------------
29 //
30 // This file is not part of the QGIS API. It exists purely as an
31 // implementation detail. This header file may change from version to
32 // version without notice, or even be removed.
33 //
34 
35 
36 #include "ui_qgsbrowserdockwidgetbase.h"
37 #include "ui_qgsbrowserlayerpropertiesbase.h"
38 #include "ui_qgsbrowserdirectorypropertiesbase.h"
39 #include "ui_qgsbrowserpropertiesdialogbase.h"
40 
41 #include "qgsdataitem.h"
42 #include "qgsbrowsertreeview.h"
43 #include "qgsdockwidget.h"
44 #include <QSortFilterProxyModel>
45 
46 class QgsBrowserModel;
47 class QModelIndex;
48 class QgsDockBrowserTreeView;
49 class QgsLayerItem;
50 class QgsDataItem;
51 
52 #define SIP_NO_FILE
53 
57 class QgsBrowserPropertiesWrapLabel : public QTextEdit
58 {
59  Q_OBJECT
60  public:
61 
67  QgsBrowserPropertiesWrapLabel( const QString &text, QWidget *parent = nullptr );
68 
69  private slots:
70  void adjustHeight( QSizeF size );
71 };
72 
76 class QgsBrowserPropertiesWidget : public QWidget
77 {
78  Q_OBJECT
79  public:
80 
85  explicit QgsBrowserPropertiesWidget( QWidget *parent = nullptr );
87  static QgsBrowserPropertiesWidget *createWidget( QgsDataItem *item, QWidget *parent = nullptr );
89  virtual void setItem( QgsDataItem *item ) { Q_UNUSED( item ) }
91  virtual void setWidget( QWidget *widget );
92 
99  virtual void setCondensedMode( bool condensedMode ) { Q_UNUSED( condensedMode ); }
100 };
101 
105 class QgsBrowserLayerProperties : public QgsBrowserPropertiesWidget, private Ui::QgsBrowserLayerPropertiesBase
106 {
107  Q_OBJECT
108  public:
109 
114  explicit QgsBrowserLayerProperties( QWidget *parent = nullptr );
116  void setItem( QgsDataItem *item ) override;
117 
124  void setCondensedMode( bool condensedMode ) override;
125 
126  private slots:
127 
128  void urlClicked( const QUrl &url );
129 
130  private:
131 
132  void loadAttributeTable();
133 
134  std::unique_ptr<QgsMapLayer> mLayer;
135  QgsAttributeTableFilterModel *mAttributeTableFilterModel = nullptr;
136 
137 };
138 
142 class QgsBrowserDirectoryProperties : public QgsBrowserPropertiesWidget, private Ui::QgsBrowserDirectoryPropertiesBase
143 {
144  Q_OBJECT
145  public:
146 
151  explicit QgsBrowserDirectoryProperties( QWidget *parent = nullptr );
152 
154  void setItem( QgsDataItem *item ) override;
155  private:
156  QgsDirectoryParamWidget *mDirectoryWidget = nullptr;
157  QgsBrowserPropertiesWrapLabel *mPathLabel = nullptr;
158 };
159 
163 class QgsBrowserPropertiesDialog : public QDialog, private Ui::QgsBrowserPropertiesDialogBase
164 {
165  Q_OBJECT
166  public:
167 
173  QgsBrowserPropertiesDialog( const QString &settingsSection, QWidget *parent = nullptr );
174  ~QgsBrowserPropertiesDialog() override;
175 
177  void setItem( QgsDataItem *item );
178 
179  private:
180  QgsBrowserPropertiesWidget *mPropertiesWidget = nullptr;
181  QString mSettingsSection;
182 };
183 
184 
193 class QgsDockBrowserTreeView : public QgsBrowserTreeView
194 {
195  Q_OBJECT
196 
197  public:
198 
203  explicit QgsDockBrowserTreeView( QWidget *parent );
205  void dragEnterEvent( QDragEnterEvent *e ) override;
207  void dragMoveEvent( QDragMoveEvent *e ) override;
209  void dropEvent( QDropEvent *e ) override;
210 
211  private:
212  void setAction( QDropEvent *e );
213 };
214 
216 
217 #endif // QGSBROWSERDOCKWIDGET_P_H
The QgsBrowserTreeView class extends QTreeView with save/restore tree state functionality.
Base class for all items in the model.
Definition: qgsdataitem.h:49
A model for showing available data sources and other items in a structured tree.
Item that represents a layer that can be opened with one of the providers.
Definition: qgsdataitem.h:435