Skip to content

Commit

Permalink
Set FileProviderItemMetadata vector in materialised items model
Browse files Browse the repository at this point in the history
Signed-off-by: Claudio Cambra <[email protected]>
  • Loading branch information
claucambra committed Oct 10, 2023
1 parent bb97660 commit 19fab27
Show file tree
Hide file tree
Showing 2 changed files with 45 additions and 2 deletions.
32 changes: 30 additions & 2 deletions src/gui/macOS/fileprovidermaterialiseditemsmodel.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -25,12 +25,40 @@ FileProviderMaterialisedItemsModel::FileProviderMaterialisedItemsModel(QObject *

int FileProviderMaterialisedItemsModel::rowCount(const QModelIndex &parent) const
{
return 0;
if (parent.isValid()) {
return 0;
}

return _items.count();
}

QVariant FileProviderMaterialisedItemsModel::data(const QModelIndex &index, int role) const
{
return {};
const auto item = _items.at(index.row());

switch (role) {
case Qt::DisplayRole:
return item.filename();
}
return QAbstractListModel::data(index, role);
}

QVector<FileProviderItemMetadata> FileProviderMaterialisedItemsModel::items() const
{
return _items;
}

void FileProviderMaterialisedItemsModel::setItems(const QVector<FileProviderItemMetadata> &items)
{
if (items == _items) {
return;
}

beginResetModel();
_items = items;
endResetModel();

Q_EMIT itemsChanged();
}

} // namespace Mac
Expand Down
15 changes: 15 additions & 0 deletions src/gui/macOS/fileprovidermaterialiseditemsmodel.h
Original file line number Diff line number Diff line change
Expand Up @@ -16,6 +16,8 @@

#include <QAbstractListModel>

#include "gui/macOS/fileprovideritemmetadata.h"

namespace OCC {

namespace Mac {
Expand All @@ -24,10 +26,23 @@ class FileProviderMaterialisedItemsModel : public QAbstractListModel
{
Q_OBJECT

Q_PROPERTY(QVector<FileProviderItemMetadata> items READ items WRITE setItems NOTIFY itemsChanged)

public:
explicit FileProviderMaterialisedItemsModel(QObject *parent = nullptr);
int rowCount(const QModelIndex &parent = {}) const override;
QVariant data(const QModelIndex &index, int role = Qt::DisplayRole) const override;

QVector<FileProviderItemMetadata> items() const;

signals:
void itemsChanged();

public slots:
void setItems(const QVector<FileProviderItemMetadata> &items);

private:
QVector<FileProviderItemMetadata> _items;
};

} // namespace Mac
Expand Down

0 comments on commit 19fab27

Please sign in to comment.