CopperSpice API  1.7.2
QDirModel Class Reference

The QDirModel class provides a data model for the local file system. More...

Inheritance diagram for QDirModel:
QAbstractItemModel QObject

Public Types

enum  Roles
 

Public Slots

void refresh (const QModelIndex &parent=QModelIndex ())
 
- Public Slots inherited from QAbstractItemModel
virtual void revert ()
 
virtual bool submit ()
 
- Public Slots inherited from QObject
void deleteLater ()
 

Public Methods

 QDirModel (const QStringList &nameFilters, QDir::Filters filters, QDir::SortFlags sort, QObject *parent=nullptr)
 
 QDirModel (QObject *parent=nullptr)
 
 ~QDirModel ()
 
int columnCount (const QModelIndex &parent=QModelIndex ()) const override
 
QVariant data (const QModelIndex &index, int role=Qt::DisplayRole) const override
 
bool dropMimeData (const QMimeData *data, Qt::DropAction action, int row, int column, const QModelIndex &parent) override
 
QIcon fileIcon (const QModelIndex &index) const
 
QFileInfo fileInfo (const QModelIndex &index) const
 
QString fileName (const QModelIndex &index) const
 
QString filePath (const QModelIndex &index) const
 
QDir::Filters filter () const
 
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
 
QFileIconProvidericonProvider () const
 
QModelIndex index (const QString &path, int column=0) const
 
QModelIndex index (int row, int column, const QModelIndex &parent=QModelIndex ()) const override
 
bool isDir (const QModelIndex &index) const
 
bool isReadOnly () const
 
bool lazyChildCount () const
 
QMimeDatamimeData (const QModelIndexList &indexes) const override
 
QStringList mimeTypes () const override
 
QModelIndex mkdir (const QModelIndex &parent, const QString &name)
 
QStringList nameFilters () const
 
QObjectparent () const
 
QModelIndex parent (const QModelIndex &child) const override
 
bool remove (const QModelIndex &index)
 
bool resolveSymlinks () const
 
bool rmdir (const QModelIndex &index)
 
int rowCount (const QModelIndex &parent=QModelIndex ()) const override
 
bool setData (const QModelIndex &index, const QVariant &value, int role=Qt::EditRole) override
 
void setFilter (QDir::Filters filters)
 
void setIconProvider (QFileIconProvider *provider)
 
void setLazyChildCount (bool enable)
 
void setNameFilters (const QStringList &filters)
 
void setReadOnly (bool enable)
 
void setResolveSymlinks (bool enable)
 
void setSorting (QDir::SortFlags sort)
 
void sort (int column, Qt::SortOrder order=Qt::AscendingOrder) override
 
QDir::SortFlags sorting () const
 
Qt::DropActions supportedDropActions () const override
 
- Public Methods inherited from QAbstractItemModel
 QAbstractItemModel (QObject *parent=nullptr)
 
virtual ~QAbstractItemModel ()
 
virtual QModelIndex buddy (const QModelIndex &index) const
 
virtual bool canDropMimeData (const QMimeData *data, Qt::DropAction action, int row, int column, const QModelIndex &parent) const
 
virtual bool canFetchMore (const QModelIndex &parent) const
 
virtual void fetchMore (const QModelIndex &parent)
 
bool hasIndex (int row, int column, const QModelIndex &parent=QModelIndex ()) const
 
bool insertColumn (int column, const QModelIndex &parent=QModelIndex ())
 
virtual bool insertColumns (int column, int count, const QModelIndex &parent=QModelIndex ())
 
bool insertRow (int row, const QModelIndex &parent=QModelIndex ())
 
virtual bool insertRows (int row, int count, const QModelIndex &parent=QModelIndex ())
 
virtual QMap< int, QVariantitemData (const QModelIndex &index) const
 
virtual QModelIndexList match (const QModelIndex &start, int role, const QVariant &value, int hits=1, Qt::MatchFlags flags=Qt::MatchFlags (Qt::MatchStartsWith|Qt::MatchWrap)) const
 
bool moveColumn (const QModelIndex &sourceParent, int sourceColumn, const QModelIndex &destinationParent, int destinationChild)
 
virtual bool moveColumns (const QModelIndex &sourceParent, int sourceColumn, int count, const QModelIndex &destinationParent, int destinationChild)
 
bool moveRow (const QModelIndex &sourceParent, int sourceRow, const QModelIndex &destinationParent, int destinationChild)
 
virtual bool moveRows (const QModelIndex &sourceParent, int sourceRow, int count, const QModelIndex &destinationParent, int destinationChild)
 
QObjectparent () const
 
bool removeColumn (int column, const QModelIndex &parent=QModelIndex ())
 
virtual bool removeColumns (int column, int count, const QModelIndex &parent=QModelIndex ())
 
bool removeRow (int row, const QModelIndex &parent=QModelIndex ())
 
virtual bool removeRows (int row, int count, const QModelIndex &parent=QModelIndex ())
 
virtual QMultiHash< int, QStringroleNames () const
 
virtual bool setHeaderData (int section, Qt::Orientation orientation, const QVariant &value, int role=Qt::EditRole)
 
virtual bool setItemData (const QModelIndex &index, const QMap< int, QVariant > &roles)
 
virtual QModelIndex sibling (int row, int column, const QModelIndex &index) const
 
virtual QSize span (const QModelIndex &index) const
 
virtual Qt::DropActions supportedDragActions () const
 
- Public Methods inherited from QObject
 QObject (QObject *parent=nullptr)
 
 ~QObject ()
 
bool blockSignals (bool block)
 
const QList< QObject * > & children () const
 
bool connect (const QObject *sender, const QString &signalMethod, const QString &location, const QString &slotMethod, Qt::ConnectionType type=Qt::AutoConnection)
 
bool connect (const QObject *sender, const QString &signalMethod, const QString &slotMethod, Qt::ConnectionType type=Qt::AutoConnection)
 
bool disconnect (const QObject *receiver, const QString &slotMethod=QString ()) const
 
bool disconnect (const QString &signalMethod, const QString &location, const QObject *receiver=nullptr, const QString &slotMethod=QString ()) const
 
bool disconnect (const QString &signalMethod=QString (), const QObject *receiver=nullptr, const QString &slotMethod=QString ()) const
 
void dumpObjectInfo ()
 
void dumpObjectTree ()
 
QList< QStringdynamicPropertyNames () const
 
virtual bool event (QEvent *event)
 
virtual bool eventFilter (QObject *watched, QEvent *event)
 
template<typename T >
findChild (const QString &childName=QString ()) const
 
template<class T >
QList< T > findChildren (const QRegularExpression &regExp, Qt::FindChildOptions options=Qt::FindChildrenRecursively) const
 
template<class T >
QList< T > findChildren (const QString &objName=QString (), Qt::FindChildOptions options=Qt::FindChildrenRecursively) const
 
bool inherits (const QString &className) const
 
void installEventFilter (QObject *filterObj)
 
bool isWidgetType () const
 
bool isWindowType () const
 
void killTimer (int id)
 
const QMetaObjectmetaObject () const
 
void moveToThread (QThread *targetThread)
 
QString objectName () const
 
QObject * parent () const
 
template<class T = QVariant>
property (const QString &name) const
 
void removeEventFilter (QObject *obj)
 
void setObjectName (const QString &name)
 
void setParent (QObject *parent)
 
bool setProperty (const QString &name, const QVariant &value)
 
bool signalsBlocked () const
 
int startTimer (int interval, Qt::TimerType timerType=Qt::CoarseTimer)
 
QThreadthread () const
 

Properties

 lazyChildCount
 
 readOnly
 
 resolveSymlinks
 
- Properties inherited from QObject
 objectName
 

Additional Inherited Members

- Public Signals inherited from QAbstractItemModel
void columnsAboutToBeInserted (const QModelIndex &parent, int first, int last)
 
void columnsAboutToBeMoved (const QModelIndex &sourceParent, int sourceStart, int sourceEnd, const QModelIndex &destinationParent, int destinationColumn)
 
void columnsAboutToBeRemoved (const QModelIndex &parent, int first, int last)
 
void columnsInserted (const QModelIndex &parent, int first, int last)
 
void columnsMoved (const QModelIndex &sourceParent, int sourceStart, int sourceEnd, const QModelIndex &destinationParent, int destinationColumn)
 
void columnsRemoved (const QModelIndex &parent, int first, int last)
 
void dataChanged (const QModelIndex &topLeft, const QModelIndex &bottomRight, const QVector< int > &roles=QVector< int >())
 
void headerDataChanged (Qt::Orientation orientation, int first, int last)
 
void layoutAboutToBeChanged (const QList< QPersistentModelIndex > &parents=QList< QPersistentModelIndex >(), QAbstractItemModel::LayoutChangeHint hint=QAbstractItemModel::NoLayoutChangeHint)
 
void layoutChanged (const QList< QPersistentModelIndex > &parents=QList< QPersistentModelIndex >(), QAbstractItemModel::LayoutChangeHint hint=QAbstractItemModel::NoLayoutChangeHint)
 
void modelAboutToBeReset ()
 
void modelReset ()
 
void rowsAboutToBeInserted (const QModelIndex &parent, int first, int last)
 
void rowsAboutToBeMoved (const QModelIndex &sourceParent, int sourceStart, int sourceEnd, const QModelIndex &destinationParent, int destinationRow)
 
void rowsAboutToBeRemoved (const QModelIndex &parent, int first, int last)
 
void rowsInserted (const QModelIndex &parent, int first, int last)
 
void rowsMoved (const QModelIndex &sourceParent, int sourceStart, int sourceEnd, const QModelIndex &destinationParent, int destinationRow)
 
void rowsRemoved (const QModelIndex &parent, int first, int last)
 
- Public Signals inherited from QObject
void destroyed (QObject *obj=nullptr)
 
void objectNameChanged (const QString &objectName)
 
- Static Public Methods inherited from QObject
static bool connect (const QObject *sender, const QMetaMethod &signalMethod, const QObject *receiver, const QMetaMethod &slotMethod, Qt::ConnectionType type=Qt::AutoConnection)
 
static bool connect (const QObject *sender, const QString &signalMethod, const QObject *receiver, const QString &slotMethod, Qt::ConnectionType type=Qt::AutoConnection, const QString &location=QString ())
 
static bool connect (const QObject *sender, const QString &signalMethod, const QString &location, const QObject *receiver, const QString &slotMethod, Qt::ConnectionType type=Qt::AutoConnection)
 
template<class Sender , class SignalClass , class... SignalArgs, class Receiver , class SlotClass , class... SlotArgs, class SlotReturn >
static bool connect (const Sender *sender, void (SignalClass::*signalMethod)(SignalArgs...), const Receiver *receiver, SlotReturn (SlotClass::*slotMethod)(SlotArgs...), Qt::ConnectionType type=Qt::AutoConnection)
 
template<class Sender , class SignalClass , class... SignalArgs, class Receiver , class T >
static bool connect (const Sender *sender, void (SignalClass::*signalMethod)(SignalArgs...), const Receiver *receiver, T slotLambda, Qt::ConnectionType type=Qt::AutoConnection)
 
static bool disconnect (const QObject *sender, const QMetaMethod &signalMethod, const QObject *receiver, const QMetaMethod &slotMethod)
 
static bool disconnect (const QObject *sender, const QString &signalMethod, const QObject *receiver, const QString &slotMethod)
 
static bool disconnect (const QObject *sender, const QString &signalMethod, const QString &location, const QObject *receiver, const QString &slotMethod)
 
template<class Sender , class SignalClass , class... SignalArgs, class Receiver , class SlotClass , class... SlotArgs, class SlotReturn >
static bool disconnect (const Sender *sender, void (SignalClass::*signalMethod)(SignalArgs...), const Receiver *receiver, SlotReturn (SlotClass::*slotMethod)(SlotArgs...))
 
template<class Sender , class SignalClass , class... SignalArgs, class Receiver >
static bool disconnect (const Sender *sender, void (SignalClass::*signalMethod)(SignalArgs...), const Receiver *receiver, std::nullptr_t slotMethod=nullptr)
 
template<class Sender , class SignalClass , class... SignalArgs, class Receiver , class T >
static bool disconnect (const Sender *sender, void (SignalClass::*signalMethod)(SignalArgs...), const Receiver *receiver, T slotMethod)
 
static QMetaObjectstaticMetaObject ()
 
static QString tr (const char *text, const char *comment=nullptr, std::optional< int > numArg=std::optional< int >())
 
- Protected Slots inherited from QAbstractItemModel
void resetInternalData ()
 
- Protected Methods inherited from QAbstractItemModel
void beginInsertColumns (const QModelIndex &parent, int first, int last)
 
void beginInsertRows (const QModelIndex &parent, int first, int last)
 
bool beginMoveColumns (const QModelIndex &sourceParent, int sourceFirst, int sourceLast, const QModelIndex &destinationParent, int destinationColumn)
 
bool beginMoveRows (const QModelIndex &sourceParent, int sourceFirst, int sourceLast, const QModelIndex &destinationParent, int destinationRow)
 
void beginRemoveColumns (const QModelIndex &parent, int first, int last)
 
void beginRemoveRows (const QModelIndex &parent, int first, int last)
 
void beginResetModel ()
 
void changePersistentIndex (const QModelIndex &from, const QModelIndex &to)
 
void changePersistentIndexList (const QModelIndexList &from, const QModelIndexList &to)
 
QModelIndex createIndex (int row, int column, quintptr id) const
 
QModelIndex createIndex (int row, int column, void *data=nullptr) const
 
void endInsertColumns ()
 
void endInsertRows ()
 
void endMoveColumns ()
 
void endMoveRows ()
 
void endRemoveColumns ()
 
void endRemoveRows ()
 
void endResetModel ()
 
QModelIndexList persistentIndexList () const
 
- Protected Methods inherited from QObject
virtual void childEvent (QChildEvent *event)
 
virtual void connectNotify (const QMetaMethod &signalMethod) const
 
virtual void customEvent (QEvent *event)
 
virtual void disconnectNotify (const QMetaMethod &signalMethod) const
 
bool isSignalConnected (const QMetaMethod &signalMethod) const
 
int receivers (const QString &signal) const
 
QObject * sender () const
 
int senderSignalIndex () const
 
virtual void timerEvent (QTimerEvent *event)
 

Detailed Description

The QDirModel class provides a data model for the local file system.

The usage of QDirModel is not recommended anymore. The QFileSystemModel class is a more performant alternative.

This class provides access to the local file system, providing functions for renaming and removing files and directories, and for creating new directories. In the simplest case, it can be used with a suitable display widget as part of a browser or filer.

QDirModel keeps a cache with file information. The cache needs to be updated with refresh().

QDirModel can be accessed using the standard interface provided by QAbstractItemModel, but it also provides some convenience functions that are specific to a directory model. The fileInfo() and isDir() functions provide information about the underlying files and directories related to items in the model.

Directories can be created and removed using mkdir(), rmdir(), and the model will be automatically updated to take the changes into account.

Note
QDirModel requires an instance of a GUI application.
See also
nameFilters(), setFilter(), filter(), QListView, QTreeView, QFileSystemModel, View Classes

Member Enumeration Documentation

ConstantValue
QDirModel::FileIconRoleQt::DecorationRole
QDirModel::FilePathRoleQt::UserRole + 1
QDirModel::FileNameRole?

Constructor & Destructor Documentation

QDirModel::QDirModel ( const QStringList nameFilters,
QDir::Filters  filters,
QDir::SortFlags  sort,
QObject parent = nullptr 
)

Constructs a new directory model with the given parent. Only those files matching the nameFilters and the filters are included in the model. The sort order is given by the sort flags.

QDirModel::QDirModel ( QObject parent = nullptr)
explicit

Constructs a directory model with the given parent.

QDirModel::~QDirModel ( )

Destroys this directory model.

Method Documentation

int QDirModel::columnCount ( const QModelIndex parent = QModelIndex()) const
overridevirtual

Reimplemented from QAbstractItemModel::columnCount().

Returns the number of columns in the parent model item.

Implements QAbstractItemModel.

QVariant QDirModel::data ( const QModelIndex index,
int  role = Qt::DisplayRole 
) const
overridevirtual

Reimplemented from QAbstractItemModel::data().

Returns the data for the model item index with the given role.

See also
setData()

Implements QAbstractItemModel.

bool QDirModel::dropMimeData ( const QMimeData data,
Qt::DropAction  action,
int  row,
int  column,
const QModelIndex parent 
)
overridevirtual

Reimplemented from QAbstractItemModel::dropMimeData().

Handles the data supplied by a drag and drop operation that ended with the given action over the row in the model specified by the row and column and by the parent index.

See also
supportedDropActions()

Reimplemented from QAbstractItemModel.

QIcon QDirModel::fileIcon ( const QModelIndex index) const

Returns the icons for the item stored in the model under the given index.

QFileInfo QDirModel::fileInfo ( const QModelIndex index) const

Returns the file information for the specified model index.

Note
If the model index represents a symbolic link in the underlying filing system, the file information returned will contain information about the symbolic link itself, regardless of whether resolveSymlinks is enabled or not.
See also
QFileInfo::symLinkTarget()
QString QDirModel::fileName ( const QModelIndex index) const

Returns the name of the item stored in the model under the index given.

QString QDirModel::filePath ( const QModelIndex index) const

Returns the path of the item stored in the model under the index given.

QDir::Filters QDirModel::filter ( ) const

Returns the filter specification for the directory model.

See also
setFilter(), QDir::Filters
Qt::ItemFlags QDirModel::flags ( const QModelIndex index) const
overridevirtual

Reimplemented from QAbstractItemModel::flags().

Returns the item flags for the given index in the model.

See also
Qt::ItemFlags

Reimplemented from QAbstractItemModel.

bool QDirModel::hasChildren ( const QModelIndex parent = QModelIndex()) const
overridevirtual

Reimplemented from QAbstractItemModel::hasChildren().

Returns true if the parent model item has children, otherwise returns false.

Reimplemented from QAbstractItemModel.

QVariant QDirModel::headerData ( int  section,
Qt::Orientation  orientation,
int  role = Qt::DisplayRole 
) const
overridevirtual

Reimplemented from QAbstractItemModel::headerData().

Returns the data stored under the given role for the specified section of the header with the given orientation.

Reimplemented from QAbstractItemModel.

QFileIconProvider * QDirModel::iconProvider ( ) const

Returns the file icon provider for this directory model.

See also
setIconProvider()
QModelIndex QDirModel::index ( const QString path,
int  column = 0 
) const

Returns the model item index for the given path.

QModelIndex QDirModel::index ( int  row,
int  column,
const QModelIndex parent = QModelIndex() 
) const
overridevirtual

Reimplemented from QAbstractItemModel::index().

Returns the model item index for the item in the parent with the given row and column.

Implements QAbstractItemModel.

bool QDirModel::isDir ( const QModelIndex index) const

Returns true if the model item index represents a directory, otherwise returns false.

bool QDirModel::isReadOnly ( ) const

Property documentation pending.

bool QDirModel::lazyChildCount ( ) const

Property documentation pending.

QMimeData * QDirModel::mimeData ( const QModelIndexList indexes) const
overridevirtual

Reimplemented from QAbstractItemModel::mimeData().

Returns an object that contains a serialized description of the specified indexes. The format used to describe the items corresponding to the indexes is obtained from the mimeTypes() function.

If the list of indexes is empty, 0 is returned rather than a serialized empty list.

Reimplemented from QAbstractItemModel.

QStringList QDirModel::mimeTypes ( ) const
overridevirtual

Reimplemented from QAbstractItemModel::mimeTypes().

Returns a list of MIME types that can be used to describe a list of items in the model.

Reimplemented from QAbstractItemModel.

QModelIndex QDirModel::mkdir ( const QModelIndex parent,
const QString name 
)

Create a directory with the name in the parent model item.

QStringList QDirModel::nameFilters ( ) const

Returns a list of filters applied to the names in the model.

See also
setNameFilters()
QObject * QObject::parent ( ) const
using

Returns a pointer to the parent object.

See also
setParent(), children()
QModelIndex QDirModel::parent ( const QModelIndex child) const
overridevirtual

Reimplemented from QAbstractItemModel::parent().

Return the parent of the given child model item.

Implements QAbstractItemModel.

void QDirModel::refresh ( const QModelIndex parent = QModelIndex())
slot

QDirModel caches file information. This function updates the cache. The parent parameter is the directory from which the model is updated; the default value will update the model from root directory of the file system (the entire model).

bool QDirModel::remove ( const QModelIndex index)

Removes the model item index from the directory model and deletes the corresponding file from the file system, returning true if successful. If the item can not be removed, false is returned.

Warning
This function deletes files from the file system; it does not move them to a location where they can be recovered.
See also
rmdir()
bool QDirModel::resolveSymlinks ( ) const

Property documentation pending.

bool QDirModel::rmdir ( const QModelIndex index)

Removes the directory corresponding to the model item index in the directory model and deletes the corresponding directory from the file system, returning true if successful. If the directory can not be removed, false is returned.

Warning
This function deletes directories from the file system; it does not move them to a location where they can be recovered.
See also
remove()
int QDirModel::rowCount ( const QModelIndex parent = QModelIndex()) const
overridevirtual

Reimplemented from QAbstractItemModel::rowCount().

Returns the number of rows in the parent model item.

Implements QAbstractItemModel.

bool QDirModel::setData ( const QModelIndex index,
const QVariant value,
int  role = Qt::EditRole 
)
overridevirtual

Reimplemented from QAbstractItemModel::setData().

Sets the data for the model item index with the given role to the data referenced by the value. Returns true if successful, otherwise returns false.

See also
data(), Qt::ItemDataRole

Reimplemented from QAbstractItemModel.

void QDirModel::setFilter ( QDir::Filters  filters)

Sets the directory model's filter to that specified by filters.

Note that the filter you set should always include the QDir::AllDirs enum value, otherwise QDirModel will not be able to read the directory structure.

See also
filter(), QDir::Filters
void QDirModel::setIconProvider ( QFileIconProvider provider)

Sets the provider of file icons for the directory model.

See also
iconProvider()
void QDirModel::setLazyChildCount ( bool  enable)

Property documentation pending.

void QDirModel::setNameFilters ( const QStringList filters)

Sets the name filters for the directory model.

See also
nameFilters()
void QDirModel::setReadOnly ( bool  enable)

Property documentation pending.

void QDirModel::setResolveSymlinks ( bool  enable)

Property documentation pending.

void QDirModel::setSorting ( QDir::SortFlags  sort)

Sets the directory model's sorting order to that specified by sort.

See also
sorting(), QDir::SortFlags
void QDirModel::sort ( int  column,
Qt::SortOrder  order = Qt::AscendingOrder 
)
overridevirtual

Reimplemented from QAbstractItemModel::sort().

Sort the model items in the column using the order given. The order is a value defined in Qt::SortOrder.

Reimplemented from QAbstractItemModel.

QDir::SortFlags QDirModel::sorting ( ) const

Returns the sorting method used for the directory model.

See also
setSorting(), QDir::SortFlags
Qt::DropActions QDirModel::supportedDropActions ( ) const
overridevirtual

Reimplemented from QAbstractItemModel::supportedDropActions().

Returns the drop actions supported by this model.

See also
<Qt::DropActions

Reimplemented from QAbstractItemModel.

Property Documentation

QDirModel::lazyChildCount

This property holds whether the directory model optimizes the hasChildren function to only check if the item is a directory.

If this property is set to false, the directory model will make sure a directory actually contains files before reporting it has children. Otherwise the directory model will report an item has children if the item is a directory.

This property is false by default.

PropertiesClass Methods
read lazyChildCount
write setLazyChildCount
QDirModel::readOnly

This property holds whether the directory model allows writing to the file system.

If this property is set to false, the directory model will allow renaming, copying and deleting of files and directories.

This property is true by default.

PropertiesClass Methods
read isReadOnly
write setReadOnly
QDirModel::resolveSymlinks

This property holds whether the directory model should resolve symbolic links.

This is only relevant on operating systems that support symbolic links.

PropertiesClass Methods
read resolveSymlinks
write setResolveSymlinks