QGIS API Documentation 3.27.0-Master (9c08adf5ef)
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
99 virtual void setCondensedMode( bool condensedMode ) { Q_UNUSED( condensedMode ) }
100};
101
105class 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
142class 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
163class GUI_EXPORT QgsBrowserPropertiesDialog : public QDialog, private Ui::QgsBrowserPropertiesDialogBase
164{
165 Q_OBJECT
166 public:
167
173 QgsBrowserPropertiesDialog( const QString &settingsSection, QWidget *parent = nullptr );
174
176 void setItem( QgsDataItem *item, const QgsDataItemGuiContext &context );
177
178 private:
179 QgsBrowserPropertiesWidget *mPropertiesWidget = nullptr;
180 QString mSettingsSection;
181};
182
183
192class QgsDockBrowserTreeView : public QgsBrowserTreeView
193{
194 Q_OBJECT
195
196 public:
197
202 explicit QgsDockBrowserTreeView( QWidget *parent );
204 void dragEnterEvent( QDragEnterEvent *e ) override;
206 void dragMoveEvent( QDragMoveEvent *e ) override;
208 void dropEvent( QDropEvent *e ) override;
209
210 private:
211 void setAction( QDropEvent *e );
212};
213
215
216#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:30