#ifndef VIDEOSQLMODEL_H #define VIDEOSQLMODEL_H #include #include #include #include #include #include class VideoSqlModel : public QSqlTableModel { Q_OBJECT Q_PROPERTY(int id READ id) Q_PROPERTY(QString title READ title WRITE setTitle NOTIFY titleChanged) Q_PROPERTY(QUrl filePath READ filePath WRITE setFilePath NOTIFY filePathChanged) Q_PROPERTY(int startTime READ startTime WRITE setStartTime NOTIFY startTimeChanged) Q_PROPERTY(int endTime READ endTime WRITE setEndTime NOTIFY endTimeChanged) QML_ELEMENT public: VideoSqlModel(QObject *parent = 0); int id() const; QString title() const; QUrl filePath() const; int startTime() const; int endTime() const; void setTitle(const QString &title); void setFilePath(const QUrl &filePath); void setStartTime(const int &startTime); void setEndTime(const int &endTime); Q_INVOKABLE void updateTitle(const int &row, const QString &title); Q_INVOKABLE void updateFilePath(const int &row, const QUrl &filePath); Q_INVOKABLE void updateStartTime(const int &row, const int &startTime); Q_INVOKABLE void updateEndTime(const int &row, const int &endTime); Q_INVOKABLE void newVideo(const QUrl &filePath); Q_INVOKABLE void deleteVideo(const int &row); Q_INVOKABLE QVariantMap getVideo(const int &row); QVariant data(const QModelIndex &index, int role) const override; QHash roleNames() const override; signals: void titleChanged(); void filePathChanged(); void startTimeChanged(); void endTimeChanged(); private: int m_id; QString m_title; QUrl m_filePath; int m_startTime; int m_endTime; }; #endif //VIDEOSQLMODEL_H