QGIS API Documentation 4.1.0-Master (376402f9aeb)
Loading...
Searching...
No Matches
qgsdirectoryitem.h
Go to the documentation of this file.
1/***************************************************************************
2 qgsddirectoryitem.h
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 QGSDIRECTORYITEM_H
18#define QGSDIRECTORYITEM_H
19
20#include "qgis_core.h"
21#include "qgis_sip.h"
23
24#include <QDateTime>
25#include <QString>
26#include <QTreeWidget>
27
28using namespace Qt::StringLiterals;
29
30class QFileSystemWatcher;
31class QMouseEvent;
37
42class CORE_EXPORT QgsDirectoryItem : public QgsDataCollectionItem
43{
44 Q_OBJECT
45 public:
56 QgsDirectoryItem( QgsDataItem *parent SIP_TRANSFERTHIS, const QString &name, const QString &path );
57
58
59 // TODO QGIS 5.0 -- rename "name" to "title" or "text" or something more descriptive, and "path" to something
60 // else to clarify the role of dirPath vs path
61
78 QgsDirectoryItem( QgsDataItem *parent SIP_TRANSFERTHIS, const QString &name, const QString &dirPath, const QString &path, const QString &providerKey = QString() );
79
80#ifdef SIP_RUN
81 // clang-format off
82 SIP_PYOBJECT __repr__();
83 % MethodCode
84 QString str = u"<QgsDirectoryItem: %1 - %2>"_s.arg( sipCpp->dirPath(), sipCpp->path() );
85 sipRes = PyUnicode_FromString( str.toUtf8().constData() );
86 % End
87// clang-format on
88#endif
89 void setState( Qgis::BrowserItemState state ) override;
90
91 QVector<QgsDataItem *> createChildren() override;
92
96 QString dirPath() const { return mDirPath; }
97
98 bool equal( const QgsDataItem *other ) override;
99 QIcon icon() override;
100
109 QColor iconColor() const;
110
122 void setIconColor( const QColor &color );
123
131 static void setCustomColor( const QString &directory, const QColor &color );
132
136 Q_DECL_DEPRECATED QWidget *paramWidget() override SIP_FACTORY SIP_DEPRECATED;
137 bool hasDragEnabled() const override { return true; }
138 QgsMimeDataUtils::UriList mimeUris() const override;
139
141 static bool hiddenPath( const QString &path );
142
153 static Qgis::BrowserDirectoryMonitoring monitoringForPath( const QString &path );
154
174 static bool pathShouldByMonitoredByDefault( const QString &path );
175
176#ifndef SIP_RUN
177
179
181
183
185
187
189#endif
190
197 bool isMonitored() const { return mMonitored; }
198
205 Qgis::BrowserDirectoryMonitoring monitoring() const;
206
215 void setMonitoring( Qgis::BrowserDirectoryMonitoring monitoring );
216
224 void reevaluateMonitoring() SIP_SKIP;
225
226 public slots:
227 void childrenCreated() override;
228 void directoryChanged();
229
230 protected:
231 QString mDirPath;
232
233 private:
234 void init( const QString &dirName );
235
236 void createOrDestroyFileSystemWatcher();
237
238 Qgis::BrowserDirectoryMonitoring mMonitoring = Qgis::BrowserDirectoryMonitoring::Default;
239 bool mMonitored = true;
240 QFileSystemWatcher *mFileSystemWatcher = nullptr;
241 bool mRefreshLater = false;
242 QDateTime mLastScan;
243 QColor mIconColor;
244
245 bool mIsDir = false;
246 bool mIsSymLink = false;
247
248 friend class TestQgsDataItem;
249};
250
251// ---------
252
253// TODO: move to qgis_gui for QGIS 5
254
261class CORE_EXPORT QgsDirectoryParamWidget : public QTreeWidget
262{
263 Q_OBJECT
264
265 public:
267
268 QgsDirectoryParamWidget( const QString &path, QWidget *parent SIP_TRANSFERTHIS = nullptr );
269
270 protected:
271 void mousePressEvent( QMouseEvent *event ) override;
272
273 public slots:
274 void showHideColumn();
275};
276
277
278#ifndef SIP_RUN
279
285class CORE_EXPORT QgsProjectHomeItem : public QgsDirectoryItem
286{
287 Q_OBJECT
288
289 public:
293 QgsProjectHomeItem( QgsDataItem *parent, const QString &name, const QString &dirPath, const QString &path );
294
295 QIcon icon() override;
296 QVariant sortKey() const override;
297};
298
299#endif
300
301#endif // QGSDATAITEM_H
Provides global constants and enumerations for use throughout the application.
Definition qgis.h:62
BrowserItemState
Browser item states.
Definition qgis.h:986
BrowserDirectoryMonitoring
Browser directory item monitoring switches.
Definition qgis.h:1092
QgsDataCollectionItem(QgsDataItem *parent, const QString &name, const QString &path=QString(), const QString &providerKey=QString())
Constructor for QgsDataCollectionItem, with the specified parent item.
Base class for all items in the model.
Definition qgsdataitem.h:50
virtual QVariant sortKey() const
Returns the sorting key for the item.
QgsDataItem(Qgis::BrowserItemType type, QgsDataItem *parent, const QString &name, const QString &path, const QString &providerKey=QString())
Constructor for QgsDataItem, with the specified parent item.
virtual QVector< QgsDataItem * > createChildren()
Create children.
Qgis::BrowserItemState state() const
QString name() const
Returns the name of the item (the displayed text for the item).
QString path() const
virtual QIcon icon()
virtual void setState(Qgis::BrowserItemState state)
Set item state.
QgsDataItem * parent() const
Gets item parent.
virtual Q_DECL_DEPRECATED QWidget * paramWidget()
Returns source widget from data item for QgsBrowserPropertiesWidget.
virtual QgsMimeDataUtils::UriList mimeUris() const
Returns mime URIs for the data item, most data providers will only return a single URI but some data ...
QString providerKey() const
Returns the provider key that created this item (e.g.
virtual bool equal(const QgsDataItem *other)
Returns true if this item is equal to another item (by testing item type and path).
static const QgsSettingsEntryString * settingsCustomPathColor
friend class TestQgsDataItem
bool isMonitored() const
Returns true if the directory is currently being monitored for changes and the item auto-refreshed wh...
static const QgsSettingsEntryInteger * settingsMinScanInterval
QString dirPath() const
Returns the full path to the directory the item represents.
static const QgsSettingsEntryBool * settingsMonitorDirectoriesInBrowser
static const QgsSettingsEntryStringList * settingsHiddenPaths
QgsDirectoryItem(QgsDataItem *parent, const QString &name, const QString &path)
Constructor for QgsDirectoryItem, with the specified parent item.
static const QgsSettingsEntryStringList * settingsAlwaysMonitorItemUris
bool hasDragEnabled() const override
Returns true if the item may be dragged.
static const QgsSettingsEntryStringList * settingsDisableMonitorItemUris
void mousePressEvent(QMouseEvent *event) override
QgsDirectoryParamWidget(const QString &path, QWidget *parent=nullptr)
static const QgsSettingsEntryVariant * settingsDirectoryHiddenColumns
QList< QgsMimeDataUtils::Uri > UriList
QgsProjectHomeItem(QgsDataItem *parent, const QString &name, const QString &dirPath, const QString &path)
Constructor for QgsProjectHomeItem.
A boolean settings entry.
An integer settings entry.
A string list settings entry.
A string settings entry.
A variant settings entry.
#define SIP_DEPRECATED
Definition qgis_sip.h:113
#define SIP_TRANSFERTHIS
Definition qgis_sip.h:52
#define SIP_SKIP
Definition qgis_sip.h:133
#define SIP_FACTORY
Definition qgis_sip.h:83