added basic video looping backend

This commit is contained in:
Chris Cochrun 2022-10-11 16:51:32 -05:00
parent b75eb449c0
commit 0d483979cc
3 changed files with 43 additions and 35 deletions

View file

@ -45,7 +45,8 @@ Item {
text: "Repeat"
padding: 10
onToggled: showPassiveNotification("BOOM!")
checked: video.loop
onToggled: updateLoop(!video.loop)
}
Controls.ToolSeparator {}
@ -247,6 +248,13 @@ Item {
showPassiveNotification(video.title);
}
function updateLoop(value) {
/* changeStartTime(value, false); */
videosqlmodel.updateLoop(video.id, value);
video.loop = value;
showPassiveNotification("Loop changed to: " + video.loop);
}
function changeTitle(text, updateBox) {
if (updateBox)
videoTitleField.text = text;

View file

@ -247,39 +247,39 @@ void VideoSqlModel::updateEndTime(const int &row, const int &endTime) {
emit endTimeChanged();
}
// bool VideoSqlModel::loop() const {
// return m_loop;
// }
bool VideoSqlModel::loop() const {
return m_loop;
}
// void VideoSqlModel::setloop(const bool &loop) {
// if (loop == m_loop)
// return;
void VideoSqlModel::setLoop(const bool &loop) {
if (loop == m_loop)
return;
// m_loop = loop;
m_loop = loop;
// select();
// emit loopChanged();
// }
select();
emit loopChanged();
}
// // This function is for updating looping from outside the delegate
// void VideoSqlModel::updateloop(const int &row, const bool &loop) {
// qDebug() << "Row is " << row;
// QSqlQuery query("select id from videos");
// QList<int> ids;
// while (query.next()) {
// ids.append(query.value(0).toInt());
// // qDebug() << ids;
// }
// int id = ids.indexOf(row,0);
// This function is for updating looping from outside the delegate
void VideoSqlModel::updateLoop(const int &row, const bool &loop) {
qDebug() << "Row is " << row;
QSqlQuery query("select id from videos");
QList<int> ids;
while (query.next()) {
ids.append(query.value(0).toInt());
// qDebug() << ids;
}
int id = ids.indexOf(row,0);
// QSqlRecord rowdata = record(id);
// qDebug() << rowdata;
// rowdata.setValue("loop", loop);
// setRecord(id, rowdata);
// qDebug() << rowdata;
// submitAll();
// emit loopChanged();
// }
QSqlRecord rowdata = record(id);
qDebug() << rowdata;
rowdata.setValue("loop", loop);
setRecord(id, rowdata);
qDebug() << rowdata;
submitAll();
emit loopChanged();
}
QVariantMap VideoSqlModel::getVideo(const int &row) {
// qDebug() << "Row we are getting is " << row;

View file

@ -16,7 +16,7 @@ class VideoSqlModel : public QSqlTableModel
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)
// Q_PROPERTY(bool loop READ loop WRITE setLoop NOTIFY loopChanged)
Q_PROPERTY(bool loop READ loop WRITE setLoop NOTIFY loopChanged)
QML_ELEMENT
public:
@ -27,19 +27,19 @@ public:
QUrl filePath() const;
int startTime() const;
int endTime() const;
// bool loop() const;
bool loop() const;
void setTitle(const QString &title);
void setFilePath(const QUrl &filePath);
void setStartTime(const int &startTime);
void setEndTime(const int &endTime);
// void setLoop(const bool &loop);
void setLoop(const bool &loop);
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 updateLoop(const int &row, const bool &loop);
Q_INVOKABLE void updateLoop(const int &row, const bool &loop);
Q_INVOKABLE void newVideo(const QUrl &filePath);
Q_INVOKABLE void deleteVideo(const int &row);
@ -51,7 +51,7 @@ public:
signals:
void titleChanged();
void filePathChanged();
// void loopChanged();
void loopChanged();
void startTimeChanged();
void endTimeChanged();
@ -61,7 +61,7 @@ private:
QUrl m_filePath;
int m_startTime;
int m_endTime;
// bool m_loop;
bool m_loop;
};
#endif //VIDEOSQLMODEL_H