QGIS API Documentation  3.4.15-Madeira (e83d02e274)
Public Types | Public Slots | Signals | Public Member Functions | Static Public Member Functions | Protected Member Functions | Protected Attributes | Friends | List of all members
QgsBrowserModel Class Reference

A model for showing available data sources and other items in a structured tree. More...

#include <qgsbrowsermodel.h>

Inheritance diagram for QgsBrowserModel:
Inheritance graph
[legend]

Public Types

enum  ItemDataRole { PathRole = Qt::UserRole, CommentRole = Qt::UserRole + 1, SortRole }
 

Public Slots

void addFavoriteDirectory (const QString &directory, const QString &name=QString())
 Adds a directory to the favorites group. More...
 
void beginInsertItems (QgsDataItem *parent, int first, int last)
 
void beginRemoveItems (QgsDataItem *parent, int first, int last)
 
void endInsertItems ()
 
void endRemoveItems ()
 
void hidePath (QgsDataItem *item)
 Hide the given path in the browser model. More...
 
void initialize ()
 Delayed initialization, needed because the provider registry must be already populated. More...
 
void itemDataChanged (QgsDataItem *item)
 
void itemStateChanged (QgsDataItem *item, QgsDataItem::State oldState)
 
void refreshDrives ()
 Refreshes the list of drive items, removing any corresponding to removed drives and adding newly added drives. More...
 
void reload ()
 Reload the whole model. More...
 
void removeFavorite (const QModelIndex &index)
 Removes a favorite directory from its corresponding model index. More...
 
void updateProjectHome ()
 

Signals

void connectionsChanged ()
 Connections changed in the browser, forwarded to the widget and used to notify the provider dialogs of a changed connection. More...
 
void stateChanged (const QModelIndex &index, QgsDataItem::State oldState)
 Emitted when item children fetch was finished. More...
 

Public Member Functions

 QgsBrowserModel (QObject *parent=nullptr)
 Constructor for QgsBrowserModel, with the specified parent object. More...
 
 ~QgsBrowserModel () override
 
bool canFetchMore (const QModelIndex &parent) const override
 
int columnCount (const QModelIndex &parent=QModelIndex()) const override
 
Q_DECL_DEPRECATED void connectItem (QgsDataItem *item)
 
QVariant data (const QModelIndex &index, int role=Qt::DisplayRole) const override
 
QgsDataItemdataItem (const QModelIndex &idx) const
 Returns the data item at the specified index, or a nullptr if no item exists at the index. More...
 
bool dropMimeData (const QMimeData *data, Qt::DropAction action, int row, int column, const QModelIndex &parent) override
 
void fetchMore (const QModelIndex &parent) override
 
QModelIndex findItem (QgsDataItem *item, QgsDataItem *parent=nullptr) const
 Returns the model index corresponding to the specified data item. More...
 
QModelIndex findPath (const QString &path, Qt::MatchFlag matchFlag=Qt::MatchExactly)
 Returns index of item with given path. More...
 
Qt::ItemFlags flags (const QModelIndex &index) const override
 
bool hasChildren (const QModelIndex &parent=QModelIndex()) const override
 
QVariant headerData (int section, Qt::Orientation orientation, int role=Qt::DisplayRole) const override
 
QModelIndex index (int row, int column, const QModelIndex &parent=QModelIndex()) const override
 
bool initialized () const
 Returns true if the model has been initialized. More...
 
QMimeData * mimeData (const QModelIndexList &indexes) const override
 
QStringList mimeTypes () const override
 
QModelIndex parent (const QModelIndex &index) const override
 
void refresh (const QString &path)
 Refresh item specified by path. More...
 
void refresh (const QModelIndex &index=QModelIndex())
 Refresh item children. More...
 
int rowCount (const QModelIndex &parent=QModelIndex()) const override
 
bool setData (const QModelIndex &index, const QVariant &value, int role=Qt::EditRole) override
 

Static Public Member Functions

static QModelIndex findPath (QAbstractItemModel *model, const QString &path, Qt::MatchFlag matchFlag=Qt::MatchExactly)
 

Protected Member Functions

void addRootItems ()
 Populates the model. More...
 
void removeRootItems ()
 

Protected Attributes

QgsFavoritesItemmFavorites = nullptr
 
QgsDirectoryItemmProjectHome = nullptr
 
QVector< QgsDataItem * > mRootItems
 

Friends

class TestQgsBrowserModel
 
class TestQgsBrowserProxyModel
 

Detailed Description

A model for showing available data sources and other items in a structured tree.

QgsBrowserModel is the foundation for the QGIS browser panel, and includes items for the different data providers and folders accessible to users.

QgsBrowserModel models are not initially populated and use a deferred initialization approach. After constructing a QgsBrowserModel, a call must be made to initialize() in order to populate the model.

Definition at line 65 of file qgsbrowsermodel.h.

Member Enumeration Documentation

Enumerator
PathRole 

Item path used to access path in the tree, see QgsDataItem::mPath.

CommentRole 

Item comment.

SortRole 

Custom sort role, see QgsDataItem::sortKey()

Definition at line 82 of file qgsbrowsermodel.h.

Constructor & Destructor Documentation

QgsBrowserModel::QgsBrowserModel ( QObject *  parent = nullptr)
explicit

Constructor for QgsBrowserModel, with the specified parent object.

Note
QgsBrowserModel models are not initially populated and use a deferred initialization approach. After constructing a QgsBrowserModel, a call must be made to initialize() in order to populate the model.

Definition at line 48 of file qgsbrowsermodel.cpp.

QgsBrowserModel::~QgsBrowserModel ( )
override

Definition at line 54 of file qgsbrowsermodel.cpp.

Member Function Documentation

void QgsBrowserModel::addFavoriteDirectory ( const QString &  directory,
const QString &  name = QString() 
)
slot

Adds a directory to the favorites group.

If name is specified, it will be used as the favorite's name. Otherwise the name will be set to match directory.

See also
removeFavorite()
Since
QGIS 3.0

Definition at line 630 of file qgsbrowsermodel.cpp.

void QgsBrowserModel::addRootItems ( )
protected

Populates the model.

Definition at line 86 of file qgsbrowsermodel.cpp.

void QgsBrowserModel::beginInsertItems ( QgsDataItem parent,
int  first,
int  last 
)
slot

Definition at line 475 of file qgsbrowsermodel.cpp.

void QgsBrowserModel::beginRemoveItems ( QgsDataItem parent,
int  first,
int  last 
)
slot

Definition at line 490 of file qgsbrowsermodel.cpp.

bool QgsBrowserModel::canFetchMore ( const QModelIndex &  parent) const
override

Definition at line 591 of file qgsbrowsermodel.cpp.

int QgsBrowserModel::columnCount ( const QModelIndex &  parent = QModelIndex()) const
override

Definition at line 325 of file qgsbrowsermodel.cpp.

void QgsBrowserModel::connectionsChanged ( )
signal

Connections changed in the browser, forwarded to the widget and used to notify the provider dialogs of a changed connection.

void QgsBrowserModel::connectItem ( QgsDataItem item)
Deprecated:
Deprecated since QGIS 3.4 – this method has no effect, and is dangerous to call in earlier QGIS versions.

Any usage should be removed (and will have no harmful side-effects!).

Definition at line 376 of file qgsbrowsermodel.cpp.

QVariant QgsBrowserModel::data ( const QModelIndex &  index,
int  role = Qt::DisplayRole 
) const
override

Definition at line 216 of file qgsbrowsermodel.cpp.

QgsDataItem * QgsBrowserModel::dataItem ( const QModelIndex &  idx) const

Returns the data item at the specified index, or a nullptr if no item exists at the index.

Definition at line 583 of file qgsbrowsermodel.cpp.

bool QgsBrowserModel::dropMimeData ( const QMimeData *  data,
Qt::DropAction  action,
int  row,
int  column,
const QModelIndex &  parent 
)
override

Definition at line 568 of file qgsbrowsermodel.cpp.

void QgsBrowserModel::endInsertItems ( )
slot

Definition at line 485 of file qgsbrowsermodel.cpp.

void QgsBrowserModel::endRemoveItems ( )
slot

Definition at line 498 of file qgsbrowsermodel.cpp.

void QgsBrowserModel::fetchMore ( const QModelIndex &  parent)
override

Definition at line 599 of file qgsbrowsermodel.cpp.

QModelIndex QgsBrowserModel::findItem ( QgsDataItem item,
QgsDataItem parent = nullptr 
) const

Returns the model index corresponding to the specified data item.

If the item was not found, an invalid QModelIndex is returned.

If the parent item is argument is specified, then only items which are children of parent are searched. If no parent is specified, then all items within the model are searched.

Definition at line 458 of file qgsbrowsermodel.cpp.

QModelIndex QgsBrowserModel::findPath ( const QString &  path,
Qt::MatchFlag  matchFlag = Qt::MatchExactly 
)

Returns index of item with given path.

It only searches in currently fetched items, i.e. it does not fetch children.

Parameters
pathitem path
matchFlagsupported is Qt::MatchExactly and Qt::MatchStartsWith which has reverse meaning, i.e. find item with the longest match from start with path (to get as close/deep as possible to deleted item).
Returns
model index, invalid if item not found

Definition at line 331 of file qgsbrowsermodel.cpp.

QModelIndex QgsBrowserModel::findPath ( QAbstractItemModel *  model,
const QString &  path,
Qt::MatchFlag  matchFlag = Qt::MatchExactly 
)
static
Note
not available in Python bindings

Definition at line 336 of file qgsbrowsermodel.cpp.

Qt::ItemFlags QgsBrowserModel::flags ( const QModelIndex &  index) const
override

Definition at line 189 of file qgsbrowsermodel.cpp.

bool QgsBrowserModel::hasChildren ( const QModelIndex &  parent = QModelIndex()) const
override

Definition at line 316 of file qgsbrowsermodel.cpp.

QVariant QgsBrowserModel::headerData ( int  section,
Qt::Orientation  orientation,
int  role = Qt::DisplayRole 
) const
override

Definition at line 287 of file qgsbrowsermodel.cpp.

void QgsBrowserModel::hidePath ( QgsDataItem item)
slot

Hide the given path in the browser model.

Definition at line 645 of file qgsbrowsermodel.cpp.

QModelIndex QgsBrowserModel::index ( int  row,
int  column,
const QModelIndex &  parent = QModelIndex() 
) const
override

Definition at line 438 of file qgsbrowsermodel.cpp.

void QgsBrowserModel::initialize ( )
slot

Delayed initialization, needed because the provider registry must be already populated.

See also
initialized()

Definition at line 176 of file qgsbrowsermodel.cpp.

bool QgsBrowserModel::initialized ( ) const
inline

Returns true if the model has been initialized.

See also
initialize()

Definition at line 149 of file qgsbrowsermodel.h.

void QgsBrowserModel::itemDataChanged ( QgsDataItem item)
slot

Definition at line 503 of file qgsbrowsermodel.cpp.

void QgsBrowserModel::itemStateChanged ( QgsDataItem item,
QgsDataItem::State  oldState 
)
slot

Definition at line 511 of file qgsbrowsermodel.cpp.

QMimeData * QgsBrowserModel::mimeData ( const QModelIndexList &  indexes) const
override

Definition at line 552 of file qgsbrowsermodel.cpp.

QStringList QgsBrowserModel::mimeTypes ( ) const
override

Definition at line 543 of file qgsbrowsermodel.cpp.

QModelIndex QgsBrowserModel::parent ( const QModelIndex &  index) const
override

Definition at line 449 of file qgsbrowsermodel.cpp.

void QgsBrowserModel::refresh ( const QString &  path)

Refresh item specified by path.

Definition at line 612 of file qgsbrowsermodel.cpp.

void QgsBrowserModel::refresh ( const QModelIndex &  index = QModelIndex())

Refresh item children.

Definition at line 619 of file qgsbrowsermodel.cpp.

void QgsBrowserModel::refreshDrives ( )
slot

Refreshes the list of drive items, removing any corresponding to removed drives and adding newly added drives.

Since
QGIS 3.4

Definition at line 390 of file qgsbrowsermodel.cpp.

void QgsBrowserModel::reload ( )
slot

Reload the whole model.

Definition at line 381 of file qgsbrowsermodel.cpp.

void QgsBrowserModel::removeFavorite ( const QModelIndex &  index)
slot

Removes a favorite directory from its corresponding model index.

See also
addFavoriteDirectory()
Since
QGIS 3.0

Definition at line 636 of file qgsbrowsermodel.cpp.

void QgsBrowserModel::removeRootItems ( )
protected

Definition at line 165 of file qgsbrowsermodel.cpp.

int QgsBrowserModel::rowCount ( const QModelIndex &  parent = QModelIndex()) const
override

Definition at line 298 of file qgsbrowsermodel.cpp.

bool QgsBrowserModel::setData ( const QModelIndex &  index,
const QVariant &  value,
int  role = Qt::EditRole 
)
override

Definition at line 262 of file qgsbrowsermodel.cpp.

void QgsBrowserModel::stateChanged ( const QModelIndex &  index,
QgsDataItem::State  oldState 
)
signal

Emitted when item children fetch was finished.

void QgsBrowserModel::updateProjectHome ( )
slot

Definition at line 59 of file qgsbrowsermodel.cpp.

Friends And Related Function Documentation

friend class TestQgsBrowserModel
friend

Definition at line 226 of file qgsbrowsermodel.h.

friend class TestQgsBrowserProxyModel
friend

Definition at line 227 of file qgsbrowsermodel.h.

Member Data Documentation

QgsFavoritesItem* QgsBrowserModel::mFavorites = nullptr
protected

Definition at line 215 of file qgsbrowsermodel.h.

QgsDirectoryItem* QgsBrowserModel::mProjectHome = nullptr
protected

Definition at line 216 of file qgsbrowsermodel.h.

QVector<QgsDataItem *> QgsBrowserModel::mRootItems
protected

Definition at line 214 of file qgsbrowsermodel.h.


The documentation for this class was generated from the following files: