15#ifndef QGSBROWSERMODEL_H
16#define QGSBROWSERMODEL_H
21#include <QAbstractItemModel>
90 Qt::ItemFlags flags(
const QModelIndex &index )
const override;
91 QVariant data(
const QModelIndex &index,
int role = Qt::DisplayRole )
const override;
92 bool setData(
const QModelIndex &index,
const QVariant &value,
int role = Qt::EditRole )
override;
93 QVariant headerData(
int section, Qt::Orientation orientation,
int role = Qt::DisplayRole )
const override;
94 int rowCount(
const QModelIndex &parent = QModelIndex() )
const override;
95 int columnCount(
const QModelIndex &parent = QModelIndex() )
const override;
96 QModelIndex index(
int row,
int column,
const QModelIndex &parent = QModelIndex() )
const override;
97 QModelIndex parent(
const QModelIndex &index )
const override;
98 QStringList mimeTypes()
const override;
99 QMimeData *mimeData(
const QModelIndexList &indexes )
const override;
100 bool dropMimeData(
const QMimeData *data, Qt::DropAction action,
int row,
int column,
const QModelIndex &parent )
override;
101 bool hasChildren(
const QModelIndex &parent = QModelIndex() )
const override;
102 bool canFetchMore(
const QModelIndex &parent )
const override;
103 void fetchMore(
const QModelIndex &parent )
override;
119 QgsDataItem *dataItem(
const QModelIndex &idx )
const;
122 void refresh(
const QString &path );
125 void refresh(
const QModelIndex &index = QModelIndex() );
135 QModelIndex findPath(
const QString &path, Qt::MatchFlag matchFlag = Qt::MatchExactly );
138 static QModelIndex findPath( QAbstractItemModel *model,
const QString &path, Qt::MatchFlag matchFlag = Qt::MatchExactly )
SIP_SKIP;
149 QModelIndex findUri(
const QString &uri, QModelIndex index = QModelIndex() );
171 QMap<QString, QgsDirectoryItem *> driveItems()
const;
178 QVector<QgsDataItem *>
rootItems()
const {
return mRootItems; }
202 void refreshDrives();
204 void beginInsertItems(
QgsDataItem *parent,
int first,
int last );
205 void endInsertItems();
206 void beginRemoveItems(
QgsDataItem *parent,
int first,
int last );
207 void endRemoveItems();
223 void addFavoriteDirectory(
const QString &directory,
const QString &name = QString() );
229 void removeFavorite(
const QModelIndex &index );
239 void updateProjectHome();
253 void removeRootItems();
262 void onConnectionsChanged(
const QString &providerKey );
265 bool mInitialized =
false;
266 QMap< QString, QgsDirectoryItem * > mDriveItems;
274 friend class TestQgsBrowserModel;
275 friend class TestQgsBrowserProxyModel;
BrowserItemState
Browser item states.
A model for showing available data sources and other items in a structured tree.
void connectionsChanged(const QString &providerKey)
Emitted when connections for the specified providerKey have changed in the browser.
QVector< QgsDataItem * > mRootItems
void stateChanged(const QModelIndex &index, Qgis::BrowserItemState oldState)
Emitted when item children fetch was finished.
bool initialized() const
Returns true if the model has been initialized.
QVector< QgsDataItem * > rootItems() const
Returns the root items for the model.
CustomRole
Custom model roles.
This is the interface for those who want to add custom data items to the browser tree.
Base class for all items in the model.
A directory: contains subdirectories and layers.
A directory item showing the a single favorite directory.
Contains various Favorites directories.
#define SIP_MONKEYPATCH_SCOPEENUM_UNNEST(OUTSIDE_CLASS, FORMERNAME)
#define SIP_MONKEYPATCH_COMPAT_NAME(FORMERNAME)