QGIS API Documentation 3.37.0-Master (fdefdf9c27f)
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#include <QSortFilterProxyModel>
36
37#include "ui_qgsbrowserlayerpropertiesbase.h"
38#include "ui_qgsbrowserdirectorypropertiesbase.h"
39#include "ui_qgsbrowserpropertiesdialogbase.h"
40
41#include "qgsbrowsertreeview.h"
42#include "qgsdockwidget.h"
44
46class QModelIndex;
47class QgsDockBrowserTreeView;
48class QgsLayerItem;
49class QgsDataItem;
51
52#define SIP_NO_FILE
53
57class 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
76class QgsBrowserPropertiesWidget : public QWidget
77{
78 Q_OBJECT
79 public:
80
85 explicit QgsBrowserPropertiesWidget( QWidget *parent = nullptr );
87 static QgsBrowserPropertiesWidget *createWidget( QgsDataItem *item, const QgsDataItemGuiContext &context, QWidget *parent = nullptr );
89 virtual void setItem( QgsDataItem *item ) { Q_UNUSED( item ); }
91 virtual void setWidget( QWidget *widget );
92
98 virtual void setCondensedMode( bool condensedMode ) { Q_UNUSED( condensedMode ) }
99};
100
104class QgsBrowserLayerProperties : public QgsBrowserPropertiesWidget, private Ui::QgsBrowserLayerPropertiesBase
105{
106 Q_OBJECT
107 public:
108
113 explicit QgsBrowserLayerProperties( QWidget *parent = nullptr );
115 void setItem( QgsDataItem *item ) override;
116
122 void setCondensedMode( bool condensedMode ) override;
123
124 private slots:
125
126 void urlClicked( const QUrl &url );
127
128 private:
129
130 void loadAttributeTable();
131
132 std::unique_ptr<QgsMapLayer> mLayer;
133 QgsAttributeTableFilterModel *mAttributeTableFilterModel = nullptr;
134
135};
136
140class QgsBrowserDirectoryProperties : public QgsBrowserPropertiesWidget, private Ui::QgsBrowserDirectoryPropertiesBase
141{
142 Q_OBJECT
143 public:
144
149 explicit QgsBrowserDirectoryProperties( QWidget *parent = nullptr );
150
152 void setItem( QgsDataItem *item ) override;
153 private:
154 QgsDirectoryParamWidget *mDirectoryWidget = nullptr;
155 QgsBrowserPropertiesWrapLabel *mPathLabel = nullptr;
156};
157
161class GUI_EXPORT QgsBrowserPropertiesDialog : public QDialog, private Ui::QgsBrowserPropertiesDialogBase
162{
163 Q_OBJECT
164 public:
165
171 QgsBrowserPropertiesDialog( const QString &settingsSection, QWidget *parent = nullptr );
172
174 void setItem( QgsDataItem *item, const QgsDataItemGuiContext &context );
175
176 private:
177 QgsBrowserPropertiesWidget *mPropertiesWidget = nullptr;
178 QString mSettingsSection;
179};
180
181
190class QgsDockBrowserTreeView : public QgsBrowserTreeView
191{
192 Q_OBJECT
193
194 public:
195
200 explicit QgsDockBrowserTreeView( QWidget *parent );
202 void dragEnterEvent( QDragEnterEvent *e ) override;
204 void dragMoveEvent( QDragMoveEvent *e ) override;
206 void dropEvent( QDropEvent *e ) override;
207
208 private:
209 void setAction( QDropEvent *e );
210};
211
213
214#endif // QGSBROWSERDOCKWIDGET_P_H
A model for showing available data sources and other items in a structured tree.
The QgsBrowserTreeView class extends QTreeView with save/restore tree state functionality.
Encapsulates the context in which a QgsDataItem is shown within the application GUI.
Base class for all items in the model.
Definition: qgsdataitem.h:46
Browser parameter widget implementation for directory items.
Item that represents a layer that can be opened with one of the providers.
Definition: qgslayeritem.h:31