mirror of
https://github.com/ElvishArtisan/rivendell.git
synced 2025-08-10 00:51:20 +02:00
2021-01-15 Fred Gleason <fredg@paravelsystems.com>
* Modified 'RDLogListModel::logName()' to take 'QModelIndex' instead of 'int'. * Modified 'RDLogListModel::removeLog()' to take 'QModelIndex' instead of 'int'. * Modified 'RDLogListModel::addLog()' to return 'QModelIndex' instead of 'int'. Signed-off-by: Fred Gleason <fredg@paravelsystems.com>
This commit is contained in:
parent
d6b2b22462
commit
6ecad43241
@ -20799,3 +20799,10 @@
|
||||
2021-01-15 Fred Gleason <fredg@paravelsystems.com>
|
||||
* Modified 'RDCutList::cutName()'to take 'QModelIndex' instead of
|
||||
'int'.
|
||||
2021-01-15 Fred Gleason <fredg@paravelsystems.com>
|
||||
* Modified 'RDLogListModel::logName()' to take 'QModelIndex'
|
||||
instead of 'int'.
|
||||
* Modified 'RDLogListModel::removeLog()' to take 'QModelIndex'
|
||||
instead of 'int'.
|
||||
* Modified 'RDLogListModel::addLog()' to return 'QModelIndex' instead
|
||||
of 'int'.
|
||||
|
@ -117,7 +117,7 @@ void RDListLogs::okButtonData()
|
||||
if(list_log_view->selectionModel()->selectedRows().size()!=1) {
|
||||
return;
|
||||
}
|
||||
*list_logname=list_log_model->logName(list_log_view->selectionModel()->selectedRows().at(0).row());
|
||||
*list_logname=list_log_model->logName(list_log_view->selectionModel()->selectedRows().at(0));
|
||||
|
||||
done(true);
|
||||
}
|
||||
|
@ -156,13 +156,13 @@ QVariant RDLogListModel::data(const QModelIndex &index,int role) const
|
||||
}
|
||||
|
||||
|
||||
QString RDLogListModel::logName(int row) const
|
||||
QString RDLogListModel::logName(const QModelIndex &row) const
|
||||
{
|
||||
return d_texts.at(row).at(0).toString();
|
||||
return d_texts.at(row.row()).at(0).toString();
|
||||
}
|
||||
|
||||
|
||||
int RDLogListModel::addLog(const QString &name)
|
||||
QModelIndex RDLogListModel::addLog(const QString &name)
|
||||
{
|
||||
QList<QVariant> list;
|
||||
|
||||
@ -172,19 +172,19 @@ int RDLogListModel::addLog(const QString &name)
|
||||
list.push_back(name);
|
||||
d_texts.push_back(list);
|
||||
|
||||
refresh(d_texts.size()-1);
|
||||
updateRowLine(d_texts.size()-1);
|
||||
endInsertRows();
|
||||
|
||||
return d_texts.size()-1;
|
||||
return createIndex(d_texts.size()-1,0);
|
||||
}
|
||||
|
||||
|
||||
void RDLogListModel::removeLog(int row)
|
||||
void RDLogListModel::removeLog(const QModelIndex &row)
|
||||
{
|
||||
beginRemoveRows(QModelIndex(),row,row);
|
||||
beginRemoveRows(QModelIndex(),row.row(),row.row());
|
||||
|
||||
d_texts.removeAt(row);
|
||||
d_icons.removeAt(row);
|
||||
d_texts.removeAt(row.row());
|
||||
d_icons.removeAt(row.row());
|
||||
|
||||
endRemoveRows();
|
||||
}
|
||||
@ -194,23 +194,24 @@ void RDLogListModel::removeLog(const QString &logname)
|
||||
{
|
||||
for(int i=0;i<d_texts.size();i++) {
|
||||
if(d_texts.at(i).at(0)==logname) {
|
||||
removeLog(i);
|
||||
removeLog(createIndex(i,0));
|
||||
return;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
void RDLogListModel::refresh(int row)
|
||||
void RDLogListModel::refresh(const QModelIndex &row)
|
||||
{
|
||||
if(row<d_texts.size()) {
|
||||
if(row.row()<d_texts.size()) {
|
||||
QString sql=sqlFields()+
|
||||
"where NAME=\""+RDEscapeString(d_texts.at(row).at(0).toString())+"\"";
|
||||
"where NAME=\""+RDEscapeString(d_texts.at(row.row()).at(0).toString())+
|
||||
"\"";
|
||||
RDSqlQuery *q=new RDSqlQuery(sql);
|
||||
if(q->first()) {
|
||||
printf("updating %d\n",row);
|
||||
updateRow(row,q);
|
||||
emit dataChanged(createIndex(row,0),createIndex(row,columnCount()));
|
||||
updateRow(row.row(),q);
|
||||
emit dataChanged(createIndex(row.row(),0),
|
||||
createIndex(row.row(),columnCount()));
|
||||
}
|
||||
delete q;
|
||||
}
|
||||
@ -221,7 +222,7 @@ void RDLogListModel::refresh(const QString &logname)
|
||||
{
|
||||
for(int i=0;i<d_texts.size();i++) {
|
||||
if(d_texts.at(i).at(0)==logname) {
|
||||
refresh(i);
|
||||
updateRowLine(i);
|
||||
return;
|
||||
}
|
||||
}
|
||||
@ -264,6 +265,21 @@ void RDLogListModel::updateModel(const QString &filter_sql)
|
||||
}
|
||||
|
||||
|
||||
void RDLogListModel::updateRowLine(int line)
|
||||
{
|
||||
if(line<d_texts.size()) {
|
||||
QString sql=sqlFields()+
|
||||
"where NAME=\""+RDEscapeString(d_texts.at(line).at(0).toString())+"\"";
|
||||
RDSqlQuery *q=new RDSqlQuery(sql);
|
||||
if(q->first()) {
|
||||
updateRow(line,q);
|
||||
emit dataChanged(createIndex(line,0),createIndex(line,columnCount()));
|
||||
}
|
||||
delete q;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
void RDLogListModel::updateRow(int row,RDSqlQuery *q)
|
||||
{
|
||||
QList<QVariant> texts;
|
||||
|
@ -2,7 +2,7 @@
|
||||
//
|
||||
// Data model for Rivendell log metadata
|
||||
//
|
||||
// (C) Copyright 2020 Fred Gleason <fredg@paravelsystems.com>
|
||||
// (C) Copyright 2020-2021 Fred Gleason <fredg@paravelsystems.com>
|
||||
//
|
||||
// This program is free software; you can redistribute it and/or modify
|
||||
// it under the terms of the GNU General Public License version 2 as
|
||||
@ -45,11 +45,11 @@ class RDLogListModel : public QAbstractTableModel
|
||||
QVariant headerData(int section,Qt::Orientation orient,
|
||||
int role=Qt::DisplayRole) const;
|
||||
QVariant data(const QModelIndex &index,int role=Qt::DisplayRole) const;
|
||||
QString logName(int row) const;
|
||||
int addLog(const QString &name);
|
||||
void removeLog(int row);
|
||||
QString logName(const QModelIndex &row) const;
|
||||
QModelIndex addLog(const QString &name);
|
||||
void removeLog(const QModelIndex &row);
|
||||
void removeLog(const QString &logname);
|
||||
void refresh(int row);
|
||||
void refresh(const QModelIndex &row);
|
||||
void refresh(const QString &logname);
|
||||
|
||||
public slots:
|
||||
@ -58,6 +58,7 @@ class RDLogListModel : public QAbstractTableModel
|
||||
|
||||
protected:
|
||||
void updateModel(const QString &filter_sql);
|
||||
void updateRowLine(int line);
|
||||
void updateRow(int row,RDSqlQuery *q);
|
||||
QString sqlFields() const;
|
||||
|
||||
|
@ -327,8 +327,8 @@ ListLog::ListLog(RDLogPlay *log,int id,bool allow_pause,
|
||||
//
|
||||
// Map Slots
|
||||
//
|
||||
connect(list_log,SIGNAL(reloaded()),this,SLOT(logReloadedData()));
|
||||
connect(list_log,SIGNAL(played(int)),this,SLOT(logPlayedData(int)));
|
||||
// connect(list_log,SIGNAL(reloaded()),this,SLOT(logReloadedData()));
|
||||
// connect(list_log,SIGNAL(played(int)),this,SLOT(logPlayedData(int)));
|
||||
connect(list_log,SIGNAL(paused(int)),this,SLOT(logPausedData(int)));
|
||||
connect(list_log,SIGNAL(stopped(int)),this,SLOT(logStoppedData(int)));
|
||||
connect(list_log,SIGNAL(inserted(int)),this,SLOT(logInsertedData(int)));
|
||||
|
@ -153,7 +153,7 @@ void ListLogs::loadButtonData()
|
||||
return;
|
||||
}
|
||||
*list_logname=list_log_model->logName(list_log_view->selectionModel()->
|
||||
selectedRows().at(0).row());
|
||||
selectedRows().at(0));
|
||||
|
||||
done(ListLogs::Load);
|
||||
}
|
||||
|
@ -253,7 +253,7 @@ void MainWidget::addData()
|
||||
QString svcname;
|
||||
QStringList newlogs;
|
||||
RDAddLog *log;
|
||||
int row=-1;
|
||||
QModelIndex row;
|
||||
|
||||
if(rda->user()->createLog()) {
|
||||
log=new RDAddLog(&logname,&svcname,RDLogFilter::UserFilter,
|
||||
@ -278,7 +278,7 @@ void MainWidget::addData()
|
||||
delete editlog;
|
||||
|
||||
row=log_log_model->addLog(logname);
|
||||
log_log_view->selectRow(row);
|
||||
log_log_view->selectRow(row.row());
|
||||
UnlockList();
|
||||
}
|
||||
}
|
||||
@ -286,9 +286,9 @@ void MainWidget::addData()
|
||||
|
||||
void MainWidget::editData()
|
||||
{
|
||||
int row=-1;
|
||||
QModelIndex row=SingleSelectedRow();
|
||||
|
||||
if((row=SingleSelectedRow())<0) {
|
||||
if(!row.isValid()) {
|
||||
return;
|
||||
}
|
||||
QString logname=log_log_model->logName(row);
|
||||
@ -315,14 +315,14 @@ void MainWidget::deleteData()
|
||||
if(rda->user()->deleteLog()) {
|
||||
QModelIndexList rows=log_log_view->selectionModel()->selectedRows();
|
||||
for(int i=0;i<rows.size();i++) {
|
||||
RDLog *log=new RDLog(log_log_model->logName(rows.at(i).row()));
|
||||
RDLog *log=new RDLog(log_log_model->logName(rows.at(i)));
|
||||
tracks+=log->completedTracks();
|
||||
delete log;
|
||||
}
|
||||
if(rows.size()==1) {
|
||||
if(QMessageBox::question(this,"RDLogEdit - "+tr("Delete Log"),
|
||||
tr("Are you sure you want to delete the")+" \""+
|
||||
log_log_model->logName(rows.at(0).row())+"\" "+
|
||||
log_log_model->logName(rows.at(0))+"\" "+
|
||||
tr("log?"),QMessageBox::Yes,QMessageBox::No)!=
|
||||
QMessageBox::Yes) {
|
||||
return;
|
||||
@ -386,27 +386,27 @@ void MainWidget::deleteData()
|
||||
QString username;
|
||||
QString stationname;
|
||||
QHostAddress addr;
|
||||
int rownum=rows.at(rowtable.at(i)).row();
|
||||
QModelIndex row=rows.at(rowtable.at(i));
|
||||
RDLogLock *log_lock=
|
||||
new RDLogLock(log_log_model->logName(rownum),rda->user(),
|
||||
new RDLogLock(log_log_model->logName(row),rda->user(),
|
||||
rda->station(),this);
|
||||
if(log_lock->tryLock(&username,&stationname,&addr)) {
|
||||
RDLog *log=new RDLog(log_log_model->logName(rownum));
|
||||
RDLog *log=new RDLog(log_log_model->logName(row));
|
||||
if(log->remove(rda->station(),rda->user(),rda->config())) {
|
||||
SendNotification(RDNotification::DeleteAction,log->name());
|
||||
log_log_model->removeLog(rownum);
|
||||
log_log_model->removeLog(row);
|
||||
}
|
||||
else {
|
||||
QMessageBox::warning(this,"RDLogEdit - "+tr("Error"),
|
||||
tr("Unable to delete log")+" \""+
|
||||
log_log_model->logName(rownum)+"\", "+
|
||||
log_log_model->logName(row)+"\", "+
|
||||
tr("audio deletion error!"));
|
||||
}
|
||||
delete log;
|
||||
}
|
||||
else {
|
||||
QString msg=
|
||||
tr("Log")+" "+log_log_model->logName(rownum)+"\" "+
|
||||
tr("Log")+" "+log_log_model->logName(row)+"\" "+
|
||||
tr("is in use by")+" "+username+"@"+stationname;
|
||||
if(stationname!=addr.toString()) {
|
||||
msg+=" ["+addr.toString()+"]";
|
||||
@ -422,9 +422,9 @@ void MainWidget::deleteData()
|
||||
|
||||
void MainWidget::trackData()
|
||||
{
|
||||
int row=-1;
|
||||
QModelIndex row=SingleSelectedRow();
|
||||
|
||||
if((row=SingleSelectedRow())<0) {
|
||||
if(!row.isValid()) {
|
||||
return;
|
||||
}
|
||||
LockList();
|
||||
@ -670,12 +670,12 @@ void MainWidget::UnlockList()
|
||||
}
|
||||
|
||||
|
||||
int MainWidget::SingleSelectedRow() const
|
||||
QModelIndex MainWidget::SingleSelectedRow() const
|
||||
{
|
||||
if(log_log_view->selectionModel()->selectedRows().size()!=1) {
|
||||
return -1;
|
||||
return QModelIndex();
|
||||
}
|
||||
return log_log_view->selectionModel()->selectedRows().at(0).row();
|
||||
return log_log_view->selectionModel()->selectedRows().at(0);
|
||||
}
|
||||
|
||||
|
||||
|
@ -68,7 +68,7 @@ class MainWidget : public RDWidget
|
||||
void UnlockList();
|
||||
void LoadPositions() const;
|
||||
void SavePositions() const;
|
||||
int SingleSelectedRow() const;
|
||||
QModelIndex SingleSelectedRow() const;
|
||||
QString log_filename;
|
||||
QString log_import_path;
|
||||
int log_card_no;
|
||||
|
Loading…
x
Reference in New Issue
Block a user