videosProxyModel working

This commit is contained in:
Chris Cochrun 2023-02-17 15:33:50 -06:00
parent c7b35f2b44
commit cc501873c1
3 changed files with 29 additions and 10 deletions

View file

@ -106,12 +106,16 @@ void VideoSqlModel::newVideo(const QUrl &filePath) {
}
void VideoSqlModel::deleteVideo(const int &row) {
const QModelIndex parent = QModelIndex();
QSqlRecord recordData = record(row);
if (recordData.isEmpty())
return;
// emit beginRemoveRows(parent, row, row);
// emit beginResetModel();
removeRow(row);
submitAll();
// emit endRemoveRows();
// emit endResetModel();
}
int VideoSqlModel::id() const {
@ -320,13 +324,24 @@ QVariantMap VideoSqlModel::getVideo(const int &row) {
VideoProxyModel::VideoProxyModel(QObject *parent)
:QSortFilterProxyModel(parent)
{
VideoSqlModel *videoModel = new VideoSqlModel;
setSourceModel(videoModel);
m_videoModel = new VideoSqlModel();
setSourceModel(m_videoModel);
setDynamicSortFilter(true);
setFilterRole(Qt::UserRole + 1);
setFilterCaseSensitivity(Qt::CaseInsensitive);
}
QVariantMap VideoProxyModel::getVideo(const int &row) {
return QVariantMap();
VideoSqlModel *VideoProxyModel::videoModel() {
return m_videoModel;
}
QVariantMap VideoProxyModel::getVideo(const int &row) {
auto model = qobject_cast<VideoSqlModel *>(sourceModel());
QVariantMap video = model->getVideo(mapToSource(index(row, 0)).row());
return video;
}
void VideoProxyModel::deleteVideo(const int &row) {
auto model = qobject_cast<VideoSqlModel *>(sourceModel());
model->deleteVideo(mapToSource(index(row,0)).row());
}

View file

@ -68,12 +68,20 @@ private:
class VideoProxyModel : public QSortFilterProxyModel
{
Q_OBJECT
Q_PROPERTY(VideoSqlModel *videoModel READ videoModel)
public:
explicit VideoProxyModel(QObject *parent = nullptr);
~VideoProxyModel() = default;
VideoSqlModel *videoModel();
public slots:
Q_INVOKABLE QVariantMap getVideo(const int &row);
Q_INVOKABLE void deleteVideo(const int &row);
private:
VideoSqlModel *m_videoModel;
};
#endif //VIDEOSQLMODEL_H