mirror of
https://github.com/ElvishArtisan/rivendell.git
synced 2025-11-26 15:20:29 +01: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:
@@ -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;
|
||||
|
||||
|
||||
Reference in New Issue
Block a user