16 #include <QApplication>
18 #include <QtConcurrentMap>
153 if ( providerGroup.
size() > 1 )
186 flags |= Qt::ItemIsDragEnabled;
189 flags |= Qt::ItemIsDropEnabled;
203 else if ( role == Qt::DisplayRole )
207 else if ( role == Qt::ToolTipRole )
211 else if ( role == Qt::DecorationRole && index.
column() == 0 )
229 if ( orientation == Qt::Horizontal && role == Qt::DisplayRole )
272 return findPath(
this, path, matchFlag );
281 bool foundChild =
true;
287 for (
int i = 0; i < model->
rowCount( theIndex ); i++ )
292 if ( itemPath == path )
308 if ( matchFlag == Qt::MatchStartsWith )
345 for (
int i = 0; i < items.
size(); i++ )
347 if ( items[i] == item )
362 if ( !idx.isValid() )
377 if ( !idx.isValid() )
426 types <<
"application/x-vnd.qgis.qgis.uri";
Contains various Favourites directories.
virtual int rowCount(const QModelIndex &parent) const =0
void removeDirectory(QgsDirectoryItem *item)
static bool cmpByDataItemName_(QgsDataItem *a, QgsDataItem *b)
static QgsDataItemProviderRegistry * instance()
virtual QModelIndex index(int row, int column, const QModelIndex &parent) const =0
bool canFetchMore(const QModelIndex &parent) const override
int localeAwareCompare(const QString &other) const
QVector< QgsDataItem * > children() const
QList< T > values() const
QgsDataItem * parent() const
Get item parent.
virtual QgsDataItem * createDataItem(const QString &path, QgsDataItem *parentItem)=0
Create a new instance of QgsDataItem (or null) for given path and parent item.
virtual int rowCount(const QModelIndex &parent=QModelIndex()) const override
Provides the number of rows of data exposed by the model.
void fetchMore(const QModelIndex &parent) override
virtual QVariant data(const QModelIndex &index, int role=Qt::DisplayRole) const override
Used to supply item data to views and delegates.
int indexOf(const T &value, int from) const
void addDirectory(QString favIcon)
void removeFavourite(const QModelIndex &index)
virtual bool handleDrop(const QMimeData *, Qt::DropAction)
QgsFavouritesItem * mFavourites
void beginRemoveItems(QgsDataItem *parent, int first, int last)
void connectItem(QgsDataItem *item)
void insert(int i, const T &value)
virtual void populate(QVector< QgsDataItem * > children)
void itemStateChanged(QgsDataItem *item, QgsDataItem::State oldState)
virtual QStringList mimeTypes() const override
Returns a list of mime that can describe model indexes.
QString homePath() const
Return project's home path.
virtual void refresh(QVector< QgsDataItem * > children)
QString tr(const char *sourceText, const char *disambiguation, int n)
bool hasChildren(const QModelIndex &parent=QModelIndex()) const override
QgsDirectoryItem * mProjectHome
void append(const T &value)
iterator insertMulti(const Key &key, const T &value)
void dataChanged(const QModelIndex &topLeft, const QModelIndex &bottomRight)
QgsBrowserModel(QObject *parent=0)
#define QgsDebugMsgLevel(str, level)
QgsDataItem * dataItem(const QModelIndex &idx) const
QModelIndex findPath(QString path, Qt::MatchFlag matchFlag=Qt::MatchExactly)
Return index of item with given path.
void beginRemoveRows(const QModelIndex &parent, int first, int last)
bool startsWith(const QString &s, Qt::CaseSensitivity cs) const
Children not yet created.
Creating children in separate thread (populating or refreshing)
void * internalPointer() const
virtual int capabilities()=0
Return combination of flags from QgsDataProvider::DataCapabilities.
virtual QVariant data(const QModelIndex &index, int role) const =0
QgsBrowserWatcher(QgsDataItem *item)
A directory: contains subdirectories and layers.
QModelIndex findItem(QgsDataItem *item, QgsDataItem *parent=0) const
QModelIndex createIndex(int row, int column, void *ptr) const
static QMimeData * encodeUriList(UriList layers)
Base class for all items in the model.
void beginInsertRows(const QModelIndex &parent, int first, int last)
virtual QVariant headerData(int section, Qt::Orientation orientation, int role=Qt::DisplayRole) const override
Provides views with information to show in their headers.
void beginInsertItems(QgsDataItem *parent, int first, int last)
virtual QModelIndex index(int row, int column, const QModelIndex &parent=QModelIndex()) const override
Returns the index of the item in the model specified by the given row, column and parent index...
void refresh(QString path)
static QgsProject * instance()
access to canonical QgsProject instance
int count(const T &value) const
virtual int columnCount(const QModelIndex &parent=QModelIndex()) const override
Provides the number of columns of data exposed by the model.
virtual bool dropMimeData(const QMimeData *data, Qt::DropAction action, int row, int column, const QModelIndex &parent) override
Handles the data supplied by a drag and drop operation that ended with the given action.
void stateChanged(const QModelIndex &index, QgsDataItem::State oldState)
Emitted when item children fetch was finished.
virtual QMimeData * mimeData(const QModelIndexList &indexes) const override
Returns an object that contains serialized items of data corresponding to the list of indexes specifi...
Item that represents a layer that can be opened with one of the providers.
virtual QString name()=0
Human-readable name of the provider name.
void itemDataChanged(QgsDataItem *item)
virtual Qt::ItemFlags flags(const QModelIndex &index) const override
Used by other components to obtain information about each item provided by the model.
QString absolutePath() const
virtual bool acceptDrop()
bool connect(const QObject *sender, const char *signal, const QObject *receiver, const char *method, Qt::ConnectionType type)
virtual QPixmap standardPixmap(StandardPixmap standardPixmap, const QStyleOption *option, const QWidget *widget) const =0
QString arg(qlonglong a, int fieldWidth, int base, const QChar &fillChar) const
This is the interface for those who want to add custom data items to the browser tree.
QList< Key > uniqueKeys() const
QVector< QgsDataItem * > mRootItems
void addFavouriteDirectory(QString favDir)