diff --git a/ChangeLog b/ChangeLog index 7fcab341..fdc9c469 100644 --- a/ChangeLog +++ b/ChangeLog @@ -21077,3 +21077,6 @@ * Removed 'RD3CartDrag' dependency from rdlogedit(1). * Removed 'RD3CartDrag' dependency from rdpanel(1). * Removed 'RD3CartDrag'. +2021-02-09 Fred Gleason + * Refactored the 'Log Events' dialog in rdlogmanager(1) to use + the model based API. diff --git a/rdlogmanager/Makefile.am b/rdlogmanager/Makefile.am index 54d3432d..11979c87 100644 --- a/rdlogmanager/Makefile.am +++ b/rdlogmanager/Makefile.am @@ -53,6 +53,7 @@ dist_rdlogmanager_SOURCES = add_clock.cpp add_clock.h\ edit_schedrules.cpp edit_schedrules.h\ edit_schedcoderules.cpp edit_schedcoderules.h\ edit_track.cpp edit_track.h\ + eventlistmodel.cpp eventlistmodel.h\ generate_log.cpp generate_log.h\ importcartsmodel.cpp importcartsmodel.h\ importcartsview.cpp importcartsview.h\ @@ -81,6 +82,7 @@ nodist_rdlogmanager_SOURCES = moc_add_clock.cpp\ moc_edit_schedrules.cpp\ moc_edit_schedcoderules.cpp\ moc_edit_track.cpp\ + moc_eventlistmodel.cpp\ moc_generate_log.cpp\ moc_importcartsmodel.cpp\ moc_importcartsview.cpp\ diff --git a/rdlogmanager/add_event.cpp b/rdlogmanager/add_event.cpp index e3c44890..4c314e0f 100644 --- a/rdlogmanager/add_event.cpp +++ b/rdlogmanager/add_event.cpp @@ -83,26 +83,30 @@ AddEvent::AddEvent(QString *logname,QWidget *parent) event_name_label->setGeometry(10,11,130,19); event_name_label->setFont(labelFont()); event_name_label->setAlignment(Qt::AlignRight|Qt::AlignVCenter|Qt::TextShowMnemonic); + connect(event_name_edit,SIGNAL(textChanged(const QString &)), + this,SLOT(nameChangedData(const QString &))); // // Ok Button // - QPushButton *ok_button=new QPushButton(this); - ok_button->setGeometry(sizeHint().width()-180,sizeHint().height()-60,80,50); - ok_button->setDefault(true); - ok_button->setFont(buttonFont()); - ok_button->setText(tr("&OK")); - connect(ok_button,SIGNAL(clicked()),this,SLOT(okData())); + event_ok_button=new QPushButton(this); + event_ok_button-> + setGeometry(sizeHint().width()-180,sizeHint().height()-60,80,50); + event_ok_button->setDefault(true); + event_ok_button->setFont(buttonFont()); + event_ok_button->setText(tr("&OK")); + connect(event_ok_button,SIGNAL(clicked()),this,SLOT(okData())); + event_ok_button->setDisabled(true); // // Cancel Button // - QPushButton *cancel_button=new QPushButton(this); - cancel_button->setGeometry(sizeHint().width()-90,sizeHint().height()-60, - 80,50); - cancel_button->setFont(buttonFont()); - cancel_button->setText(tr("&Cancel")); - connect(cancel_button,SIGNAL(clicked()),this,SLOT(cancelData())); + event_cancel_button=new QPushButton(this); + event_cancel_button-> + setGeometry(sizeHint().width()-90,sizeHint().height()-60,80,50); + event_cancel_button->setFont(buttonFont()); + event_cancel_button->setText(tr("&Cancel")); + connect(event_cancel_button,SIGNAL(clicked()),this,SLOT(cancelData())); // // Populate Data @@ -130,6 +134,12 @@ QSizePolicy AddEvent::sizePolicy() const } +void AddEvent::nameChangedData(const QString &str) +{ + event_ok_button->setDisabled(str.isEmpty()); +} + + void AddEvent::okData() { *event_name=event_name_edit->text(); diff --git a/rdlogmanager/add_event.h b/rdlogmanager/add_event.h index 507ff1f8..3bed44fb 100644 --- a/rdlogmanager/add_event.h +++ b/rdlogmanager/add_event.h @@ -21,7 +21,8 @@ #ifndef ADD_EVENT_H #define ADD_EVENT_H -#include +#include +#include #include @@ -36,6 +37,7 @@ class AddEvent : public RDDialog QSizePolicy sizePolicy() const; private slots: + void nameChangedData(const QString &str); void okData(); void cancelData(); @@ -45,8 +47,9 @@ class AddEvent : public RDDialog private: QLineEdit *event_name_edit; QString *event_name; + QPushButton *event_ok_button; + QPushButton *event_cancel_button; }; -#endif - +#endif // ADD_EVENT_H diff --git a/rdlogmanager/edit_event.cpp b/rdlogmanager/edit_event.cpp index 22c367de..ae4e43db 100644 --- a/rdlogmanager/edit_event.cpp +++ b/rdlogmanager/edit_event.cpp @@ -695,6 +695,7 @@ EditEvent::EditEvent(QString eventname,bool new_event, button->setFont(buttonFont()); button->setText(tr("Save &As")); connect(button,SIGNAL(clicked()),this,SLOT(saveAsData())); + button->setDisabled(new_event); // // Service Association Button diff --git a/rdlogmanager/eventlistmodel.cpp b/rdlogmanager/eventlistmodel.cpp new file mode 100644 index 00000000..a6f58577 --- /dev/null +++ b/rdlogmanager/eventlistmodel.cpp @@ -0,0 +1,325 @@ +// eventlistmodel.cpp +// +// Data model for Rivendell rdlogmanager(1) events +// +// (C) Copyright 2021 Fred Gleason +// +// 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 +// published by the Free Software Foundation. +// +// This program is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. +// +// You should have received a copy of the GNU General Public +// License along with this program; if not, write to the Free Software +// Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. +// + +#include + +#include "rdapplication.h" +#include "rdconf.h" +#include "rdescape_string.h" +#include "rdevent_line.h" +#include "eventlistmodel.h" + +EventListModel::EventListModel(QObject *parent) + : QAbstractTableModel(parent) +{ + // + // Column Attributes + // + unsigned left=Qt::AlignLeft|Qt::AlignVCenter; + unsigned center=Qt::AlignCenter; + //unsigned right=Qt::AlignRight|Qt::AlignVCenter; + + d_headers.push_back(tr("Name")); + d_alignments.push_back(left); + + d_headers.push_back(tr("Trans")); + d_alignments.push_back(center); + + d_headers.push_back(tr("Properties")); + d_alignments.push_back(left); + + updateModel(); +} + + +EventListModel::~EventListModel() +{ +} + + +QPalette EventListModel::palette() +{ + return d_palette; +} + + +void EventListModel::setPalette(const QPalette &pal) +{ + d_palette=pal; +} + + +void EventListModel::setFont(const QFont &font) +{ + d_font=font; + d_bold_font=font; + d_bold_font.setWeight(QFont::Bold); +} + + +int EventListModel::columnCount(const QModelIndex &parent) const +{ + return d_headers.size(); +} + + +int EventListModel::rowCount(const QModelIndex &parent) const +{ + return d_texts.size(); +} + + +QVariant EventListModel::headerData(int section,Qt::Orientation orient, + int role) const +{ + if((orient==Qt::Horizontal)&&(role==Qt::DisplayRole)) { + return d_headers.at(section); + } + return QVariant(); +} + + +QVariant EventListModel::data(const QModelIndex &index,int role) const +{ + QString str; + int col=index.column(); + int row=index.row(); + + if(row list; + for(int i=0;ifirst()) { + updateRow(row.row(),q); + emit dataChanged(createIndex(row.row(),0), + createIndex(row.row(),columnCount())); + } + delete q; + } +} + + +void EventListModel::refresh(const QString &name) +{ + for(int i=0;i texts; + + RDSqlQuery *q=NULL; + QString sql=sqlFields()+ + d_filter_sql+ + "order by EVENTS.NAME "; + beginResetModel(); + d_texts.clear(); + d_icons.clear(); + q=new RDSqlQuery(sql); + while(q->next()) { + d_texts.push_back(texts); + d_icons.push_back(QVariant()); + updateRow(d_texts.size()-1,q); + } + delete q; + endResetModel(); +} + + +void EventListModel::updateRowLine(int line) +{ + if(linefirst()) { + updateRow(line,q); + } + delete q; + } +} + + +void EventListModel::updateRow(int row,RDSqlQuery *q) +{ + QList texts; + + // Name + texts.push_back(q->value(0)); + + // Trans + texts. + push_back(RDLogLine::transText((RDLogLine::TransType)q->value(3).toUInt())); + + // Properties + texts.push_back(RDEventLine::propertiesText(q->value(2).toInt(), + (RDLogLine::TransType)q->value(3).toUInt(), + (RDLogLine::TimeType)q->value(4).toUInt(), + q->value(5).toInt(), + RDBool(q->value(6).toString()), + (RDEventLine::ImportSource)q->value(7).toUInt(), + !q->value(8).toString().isEmpty())); + + d_texts[row]=texts; + d_icons[row]=MakeIcon(q->value(1).toString()); +} + + +QString EventListModel::sqlFields() const +{ + QString sql=QString("select ")+ + "NAME,"+ // 00 + "COLOR,"+ // 01 + "PREPOSITION,"+ // 02 + "FIRST_TRANS_TYPE,"+ // 03 + "TIME_TYPE,"+ // 04 + "GRACE_TIME,"+ // 05 + "USE_AUTOFILL,"+ // 06 + "IMPORT_SOURCE,"+ // 07 + "NESTED_EVENT "+ // 08 + "from EVENTS "; + + return sql; +} + + +QPixmap EventListModel::MakeIcon(const QString &color) const +{ + QPixmap pix(QSize(15,15)); + QPainter *p=new QPainter(); + p->begin(&pix); + p->fillRect(0,0,15,15,QColor(color)); + p->end(); + delete p; + + return pix; +} diff --git a/rdlogmanager/eventlistmodel.h b/rdlogmanager/eventlistmodel.h new file mode 100644 index 00000000..5960a722 --- /dev/null +++ b/rdlogmanager/eventlistmodel.h @@ -0,0 +1,75 @@ +// eventlistmodel.h +// +// Data model for Rivendell rdlogmanager(1) events +// +// (C) Copyright 2021 Fred Gleason +// +// 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 +// published by the Free Software Foundation. +// +// This program is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. +// +// You should have received a copy of the GNU General Public +// License along with this program; if not, write to the Free Software +// Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. +// + +#ifndef EVENTLISTMODEL_H +#define EVENTLISTMODEL_H + +#include +#include +#include +#include +#include + +#include +#include +#include + +class EventListModel : public QAbstractTableModel +{ + Q_OBJECT + public: + EventListModel(QObject *parent=0); + ~EventListModel(); + QPalette palette(); + void setPalette(const QPalette &pal); + void setFont(const QFont &font); + int columnCount(const QModelIndex &parent=QModelIndex()) const; + int rowCount(const QModelIndex &parent=QModelIndex()) const; + QVariant headerData(int section,Qt::Orientation orient, + int role=Qt::DisplayRole) const; + QVariant data(const QModelIndex &index,int role=Qt::DisplayRole) const; + QString eventName(const QModelIndex &row) const; + QModelIndex addEvent(const QString &name); + void removeEvent(const QModelIndex &row); + void removeEvent(const QString &name); + void refresh(const QModelIndex &row); + void refresh(const QString &name); + void setFilterSql(const QString &sql); + + protected: + void updateModel(); + void updateRowLine(int line); + void updateRow(int row,RDSqlQuery *q); + QString sqlFields() const; + + private: + QPixmap MakeIcon(const QString &color) const; + QPalette d_palette; + QFont d_font; + QFont d_bold_font; + QList d_headers; + QList d_alignments; + QList > d_texts; + QList d_icons; + QString d_filter_sql; +}; + + +#endif // EVENTLISTMODEL_H diff --git a/rdlogmanager/list_events.cpp b/rdlogmanager/list_events.cpp index 7431fd58..1b0473b7 100644 --- a/rdlogmanager/list_events.cpp +++ b/rdlogmanager/list_events.cpp @@ -2,7 +2,7 @@ // // List a Rivendell Log Event // -// (C) Copyright 2002-2020 Fred Gleason +// (C) Copyright 2002-2021 Fred Gleason // // 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 @@ -18,8 +18,7 @@ // Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. // -#include -#include +#include #include #include @@ -57,16 +56,16 @@ ListEvents::ListEvents(QString *eventname,QWidget *parent) // // Events List // - edit_events_list=new Q3ListView(this); - edit_events_list->setAllColumnsShowFocus(true); - edit_events_list->setItemMargin(5); - edit_events_list->addColumn(tr("Name")); - edit_events_list->addColumn(tr("Trans")); - edit_events_list->setColumnAlignment(1,Qt::AlignCenter); - edit_events_list->addColumn(tr("Properties")); - connect(edit_events_list, - SIGNAL(doubleClicked(Q3ListViewItem *,const QPoint &,int)), - this,SLOT(doubleClickedData(Q3ListViewItem *,const QPoint &,int))); + edit_events_view=new RDTableView(this); + edit_events_model=new EventListModel(this); + edit_events_model->setFont(font()); + edit_events_model->setPalette(palette()); + edit_events_view->setModel(edit_events_model); + connect(edit_events_view,SIGNAL(doubleClicked(const QModelIndex &)), + this,SLOT(doubleClickedData(const QModelIndex &))); + connect(edit_events_model,SIGNAL(modelReset()), + edit_events_view,SLOT(resizeColumnsToContents())); + edit_events_view->resizeColumnsToContents(); // // Add Button @@ -159,8 +158,6 @@ ListEvents::ListEvents(QString *eventname,QWidget *parent) edit_filter_box->setCurrentItem(edit_filter_box->count()-1); } } - - RefreshList(); } @@ -237,31 +234,39 @@ void ListEvents::addData() "SERVICE_NAME=\""+RDEscapeString(edit_filter_box->currentText())+"\""; RDSqlQuery::apply(sql); } + QModelIndex row=edit_events_model->addEvent(logname); + if(row.isValid()) { + edit_events_view->selectRow(row.row()); + } } delete event_dialog; - Q3ListViewItem *item=new Q3ListViewItem(edit_events_list); - item->setText(0,logname); - RefreshItem(item,&new_events); - edit_events_list->setSelected(item,true); - edit_events_list->ensureItemVisible(item); + for(unsigned i=0;iaddEvent(new_events.at(i)); + if(row.isValid()) { + edit_events_view->selectRow(row.row()); + } + } } void ListEvents::editData() { std::vector new_events; + QModelIndexList rows=edit_events_view->selectionModel()->selectedRows(); - Q3ListViewItem *item=edit_events_list->selectedItem(); - if(item==NULL) { + if(rows.size()!=1) { return; } - EditEvent *event_dialog=new EditEvent(item->text(0),false,&new_events,this); - if(event_dialog->exec()<-1) { - delete event_dialog; - return; + EditEvent *event_dialog= + new EditEvent(edit_events_model->eventName(rows.first()),false,&new_events, + this); + if(event_dialog->exec()>=-1) { + edit_events_model->refresh(rows.first()); + } + for(unsigned i=0;iaddEvent(new_events.at(i)); } delete event_dialog; - RefreshItem(item,&new_events); } @@ -269,21 +274,21 @@ void ListEvents::deleteData() { int n; QString clock_list; + QModelIndexList rows=edit_events_view->selectionModel()->selectedRows(); - Q3ListViewItem *item=edit_events_list->selectedItem(); - if(item==NULL) { + if(rows.size()!=1) { return; } if(QMessageBox::question(this,"RDLogManager - "+tr("Delete Event"), tr("Are you sure you want to delete")+" \""+ - item->text(0)+"\"?", + edit_events_model->eventName(rows.first())+"\"?", QMessageBox::Yes,QMessageBox::No) !=QMessageBox::Yes) { return; } - if((n=ActiveEvents(item->text(0),&clock_list))>0) { + if((n=ActiveEvents(edit_events_model->eventName(rows.first()),&clock_list))>0) { if(QMessageBox::warning(this,"RDLogManager - "+tr("Event In Use"), - "\""+item->text(0)+"\" "+ + "\""+edit_events_model->eventName(rows.first())+"\" "+ tr("is in use in the following clocks")+":\n\n"+ clock_list+"\n"+ tr("Do you still want to delete it?"), @@ -292,77 +297,88 @@ void ListEvents::deleteData() return; } } - DeleteEvent(item->text(0)); - delete item; - RefreshList(); + DeleteEvent(edit_events_model->eventName(rows.first())); + edit_events_model->removeEvent(rows.first()); } void ListEvents::renameData() { QString sql; - RDSqlQuery *q; - Q3ListViewItem *item=edit_events_list->selectedItem(); - if(item==NULL) { + QModelIndexList rows=edit_events_view->selectionModel()->selectedRows(); + + if(rows.size()!=1) { return; } - QString new_name=item->text(0); + QString old_name=edit_events_model->eventName(rows.first()); + QString new_name=old_name; RenameItem *rename_dialog=new RenameItem(&new_name,"EVENTS",this); if(rename_dialog->exec()<-1) { delete rename_dialog; return; } delete rename_dialog; + if(old_name==new_name) { + return; + } // // Rename Clock References // sql=QString("update CLOCK_LINES set ")+ "EVENT_NAME=\""+RDEscapeString(new_name)+"\" where "+ - "EVENT_NAME=\""+RDEscapeString(item->text(0))+"\""; - q=new RDSqlQuery(sql); - delete q; + "EVENT_NAME=\""+RDEscapeString(old_name)+"\""; + RDSqlQuery::apply(sql); // // Rename Event Line References // sql=QString("update EVENT_LINES set ")+ "EVENT_NAME=\""+RDEscapeString(new_name)+"\" where "+ - "EVENT_NAME=\""+RDEscapeString(item->text(0))+"\""; - q=new RDSqlQuery(sql); - delete q; + "EVENT_NAME=\""+RDEscapeString(old_name)+"\""; + RDSqlQuery::apply(sql); // // Rename Service Permissions // - sql=QString().sprintf("update EVENT_PERMS set EVENT_NAME=\"%s\"\ - where EVENT_NAME=\"%s\"", - (const char *)new_name, - (const char *)item->text(0)); - q=new RDSqlQuery(sql); - delete q; + sql=QString("update EVENT_PERMS set ")+ + "EVENT_NAME=\""+RDEscapeString(new_name)+"\" "+ + "where EVENT_NAME=\""+RDEscapeString(old_name)+"\""; + RDSqlQuery::apply(sql); // // Rename Primary Key // - sql=QString().sprintf("update EVENTS set NAME=\"%s\" where NAME=\"%s\"", - (const char *)new_name, - (const char *)item->text(0)); - q=new RDSqlQuery(sql); - delete q; + sql=QString("update EVENTS set ")+ + "NAME=\""+RDEscapeString(new_name)+"\" where "+ + "NAME=\""+RDEscapeString(old_name)+"\""; + RDSqlQuery::apply(sql); - item->setText(0,new_name); - RefreshItem(item); + edit_events_model->removeEvent(old_name); + QModelIndex row=edit_events_model->addEvent(new_name); + if(row.isValid()) { + edit_events_view->selectRow(row.row()); + } } void ListEvents::filterActivatedData(int id) { - RefreshList(); + QString filter; + + if(id==1) { // NONE Filter + filter=GetNoneFilter(); + } + else { + if(id>1) { + filter=GetEventFilter(edit_filter_box->currentText()); + } + } + edit_events_model->setFilterSql(filter); } -void ListEvents::doubleClickedData(Q3ListViewItem *item,const QPoint &,int) +void ListEvents::doubleClickedData(const QModelIndex &index) { if(edit_eventname==NULL) { editData(); @@ -381,13 +397,13 @@ void ListEvents::closeData() void ListEvents::okData() { - Q3ListViewItem *item=edit_events_list->selectedItem(); *event_filter=edit_filter_box->currentText(); - if(item==NULL) { + QModelIndexList rows=edit_events_view->selectionModel()->selectedRows(); + if(rows.size()!=1) { done(-1); - return; } - *edit_eventname=item->text(0); + *edit_eventname=edit_events_model->eventName(rows.first()); + done(0); } @@ -401,7 +417,7 @@ void ListEvents::cancelData() void ListEvents::resizeEvent(QResizeEvent *e) { edit_filter_box->setGeometry(65,10,size().width()-75,20); - edit_events_list->setGeometry(10,45,size().width()-20,size().height()-125); + edit_events_view->setGeometry(10,45,size().width()-20,size().height()-125); edit_add_button->setGeometry(10,size().height()-60,80,50); edit_edit_button->setGeometry(100,size().height()-60,80,50); edit_delete_button->setGeometry(190,size().height()-60,80,50); @@ -418,104 +434,6 @@ void ListEvents::closeEvent(QCloseEvent *e) } -void ListEvents::RefreshList() -{ - QString filter; - - if(edit_filter_box->currentItem()==1) { // NONE Filter - filter=GetNoneFilter(); - } - else { - if(edit_filter_box->currentItem()>1) { - filter=GetEventFilter(edit_filter_box->currentText()); - } - } - - edit_events_list->clear(); - QString sql=WriteItemSql()+" "+filter; - RDSqlQuery *q=new RDSqlQuery(sql); - Q3ListViewItem *item=NULL; - while(q->next()) { - item=new Q3ListViewItem(edit_events_list); - WriteItem(item,q); - } - delete q; -} - - -void ListEvents::RefreshItem(Q3ListViewItem *item, - std::vector *new_events) -{ - Q3ListViewItem *new_item; - UpdateItem(item,item->text(0)); - - if(new_events!=NULL) { - for(unsigned i=0;isize();i++) { - if((new_item=edit_events_list->findItem(new_events->at(i),0))==NULL) { - new_item=new Q3ListViewItem(edit_events_list); - } - UpdateItem(new_item,new_events->at(i)); - } - } -} - - -void ListEvents::UpdateItem(Q3ListViewItem *item,QString name) -{ - QString sql=WriteItemSql()+"where NAME=\""+RDEscapeString(name)+"\""; - RDSqlQuery *q=new RDSqlQuery(sql); - if(q->next()) { - item->setText(0,name); - WriteItem(item,q); - } - delete q; -} - - -void ListEvents::WriteItem(Q3ListViewItem *item,RDSqlQuery *q) -{ - QPixmap *pix; - QPainter *p=new QPainter(); - - item->setText(0,q->value(0).toString()); - item->setText(1, - RDLogLine::transText((RDLogLine::TransType)q->value(3).toUInt())); - item->setText(2,RDEventLine:: - propertiesText(q->value(2).toInt(), - (RDLogLine::TransType)q->value(3).toUInt(), - (RDLogLine::TimeType)q->value(4).toUInt(), - q->value(5).toInt(), - RDBool(q->value(6).toString()), - (RDEventLine::ImportSource)q->value(7).toUInt(), - !q->value(8).toString().isEmpty())); - pix=new QPixmap(QSize(15,15)); - p->begin(pix); - p->fillRect(0,0,15,15,QColor(q->value(1).toString())); - p->end(); - item->setPixmap(0,*pix); - - delete p; -} - - -QString ListEvents::WriteItemSql() const -{ - QString sql=QString("select ")+ - "NAME,"+ // 00 - "COLOR,"+ // 01 - "PREPOSITION,"+ // 02 - "FIRST_TRANS_TYPE,"+ // 03 - "TIME_TYPE,"+ // 04 - "GRACE_TIME,"+ // 05 - "USE_AUTOFILL,"+ // 06 - "IMPORT_SOURCE,"+ // 07 - "NESTED_EVENT "+ // 08 - "from EVENTS "; - - return sql; -} - - int ListEvents::ActiveEvents(QString event_name,QString *clock_list) { int n=0; diff --git a/rdlogmanager/list_events.h b/rdlogmanager/list_events.h index 0b50f2bc..c0032730 100644 --- a/rdlogmanager/list_events.h +++ b/rdlogmanager/list_events.h @@ -2,7 +2,7 @@ // // List Rivendell Log Events // -// (C) Copyright 2002-2020 Fred Gleason +// (C) Copyright 2002-2021 Fred Gleason // // 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 @@ -21,13 +21,13 @@ #ifndef LIST_EVENTS_H #define LIST_EVENTS_H -#include - -#include -#include +#include #include #include +#include + +#include "eventlistmodel.h" class ListEvents : public RDDialog { @@ -42,7 +42,7 @@ class ListEvents : public RDDialog void editData(); void deleteData(); void renameData(); - void doubleClickedData(Q3ListViewItem *,const QPoint &,int); + void doubleClickedData(const QModelIndex &index); void filterActivatedData(int id); void closeData(); void okData(); @@ -53,16 +53,12 @@ class ListEvents : public RDDialog void closeEvent(QCloseEvent *e); private: - void RefreshList(); - void RefreshItem(Q3ListViewItem *item,std::vector *new_events=NULL); - void UpdateItem(Q3ListViewItem *item,QString name); - void WriteItem(Q3ListViewItem *item,RDSqlQuery *q); - QString WriteItemSql() const; int ActiveEvents(QString event_name,QString *clock_list); void DeleteEvent(QString event_name); QString GetEventFilter(QString svc_name); QString GetNoneFilter(); - Q3ListView *edit_events_list; + RDTableView *edit_events_view; + EventListModel *edit_events_model; QString *edit_eventname; QLabel *edit_filter_label; QComboBox *edit_filter_box; @@ -76,5 +72,4 @@ class ListEvents : public RDDialog }; -#endif - +#endif // LIST_EVENTS_H diff --git a/rdlogmanager/rdlogmanager_cs.ts b/rdlogmanager/rdlogmanager_cs.ts index 72cfadc6..ac361ff4 100644 --- a/rdlogmanager/rdlogmanager_cs.ts +++ b/rdlogmanager/rdlogmanager_cs.ts @@ -1310,11 +1310,11 @@ delete Name - Název + Název Properties - Vlastnosti + Vlastnosti Color @@ -1358,11 +1358,11 @@ delete Event Exists - Událost existuje + Událost existuje An event with that name already exists! - Událost s tímto názvem již existuje! + Událost s tímto názvem již existuje! Are you sure you want to @@ -1371,7 +1371,7 @@ delete Delete Event - Smazat událost + Smazat událost is in use in the following clocks: @@ -1379,11 +1379,11 @@ delete Do you still want to delete it? - Stále ještě chcete smazat? + Stále ještě chcete smazat? Event In Use - Používaná událost + Používaná událost Log Events - User: @@ -1401,10 +1401,6 @@ delete is in use in the following clocks - - Trans - - ListGrids diff --git a/rdlogmanager/rdlogmanager_de.ts b/rdlogmanager/rdlogmanager_de.ts index c42fa92b..f7366661 100644 --- a/rdlogmanager/rdlogmanager_de.ts +++ b/rdlogmanager/rdlogmanager_de.ts @@ -1310,11 +1310,11 @@ delete Name - Name + Name Properties - Eigenschaften + Eigenschaften Color @@ -1358,11 +1358,11 @@ delete Event Exists - Event existiert + Event existiert An event with that name already exists! - Ein Event mit diesem Namen existiert bereits! + Ein Event mit diesem Namen existiert bereits! Are you sure you want to @@ -1371,7 +1371,7 @@ delete Delete Event - Event Löschen + Event Löschen is in use in the following clocks: @@ -1379,11 +1379,11 @@ delete Do you still want to delete it? - Wollen Sie immernoch löschen? + Wollen Sie immernoch löschen? Event In Use - Event in Verwendung + Event in Verwendung Log Events - User: @@ -1401,10 +1401,6 @@ delete is in use in the following clocks - - Trans - - ListGrids diff --git a/rdlogmanager/rdlogmanager_es.ts b/rdlogmanager/rdlogmanager_es.ts index f1b7d139..107c983c 100644 --- a/rdlogmanager/rdlogmanager_es.ts +++ b/rdlogmanager/rdlogmanager_es.ts @@ -1313,11 +1313,11 @@ eliminar Name - Nombre + Nombre Properties - Propiedades + Propiedades Color @@ -1353,11 +1353,11 @@ eliminar Event Exists - El evento ya existe + El evento ya existe An event with that name already exists! - ¡Un evento con ese nombre ya existe! + ¡Un evento con ese nombre ya existe! Are you sure you want to @@ -1367,7 +1367,7 @@ eliminar Delete Event - Eliminar Evento + Eliminar Evento is in use in the following clocks: @@ -1375,11 +1375,11 @@ eliminar Do you still want to delete it? - ¿Aún así desea eliminarla? + ¿Aún así desea eliminarla? Event In Use - El evento está en uso + El evento está en uso &Rename @@ -1405,10 +1405,6 @@ eliminar is in use in the following clocks - - Trans - - ListGrids diff --git a/rdlogmanager/rdlogmanager_fr.ts b/rdlogmanager/rdlogmanager_fr.ts index cb8026ee..881941a0 100644 --- a/rdlogmanager/rdlogmanager_fr.ts +++ b/rdlogmanager/rdlogmanager_fr.ts @@ -1004,14 +1004,6 @@ Do you want to save? Filter: - - Name - - - - Properties - - &Add @@ -1048,6 +1040,10 @@ Do you want to save? NONE + + Log Events + + Event Exists @@ -1061,27 +1057,19 @@ Do you want to save? - Do you still want to delete it? + Are you sure you want to delete Event In Use - - Log Events - - - - Are you sure you want to delete - - is in use in the following clocks - Trans + Do you still want to delete it? diff --git a/rdlogmanager/rdlogmanager_nb.ts b/rdlogmanager/rdlogmanager_nb.ts index 08f415f8..59889fab 100644 --- a/rdlogmanager/rdlogmanager_nb.ts +++ b/rdlogmanager/rdlogmanager_nb.ts @@ -1316,11 +1316,11 @@ sletta Name - Namn + Namn Properties - Eigenskapar + Eigenskapar Color @@ -1364,11 +1364,11 @@ sletta Event Exists - Hendinga eksisterer + Hendinga eksisterer An event with that name already exists! - Det finst alt ei hending med det namnet! + Det finst alt ei hending med det namnet! Are you sure you want to @@ -1378,7 +1378,7 @@ sletta Delete Event - Slett hendinga + Slett hendinga is in use in the following clocks: @@ -1386,11 +1386,11 @@ sletta Do you still want to delete it? - Vil du framleis sletta? + Vil du framleis sletta? Event In Use - Hendinga er i bruk + Hendinga er i bruk Are you sure you want to delete @@ -1400,10 +1400,6 @@ sletta is in use in the following clocks - - Trans - - ListGrids diff --git a/rdlogmanager/rdlogmanager_nn.ts b/rdlogmanager/rdlogmanager_nn.ts index 08f415f8..59889fab 100644 --- a/rdlogmanager/rdlogmanager_nn.ts +++ b/rdlogmanager/rdlogmanager_nn.ts @@ -1316,11 +1316,11 @@ sletta Name - Namn + Namn Properties - Eigenskapar + Eigenskapar Color @@ -1364,11 +1364,11 @@ sletta Event Exists - Hendinga eksisterer + Hendinga eksisterer An event with that name already exists! - Det finst alt ei hending med det namnet! + Det finst alt ei hending med det namnet! Are you sure you want to @@ -1378,7 +1378,7 @@ sletta Delete Event - Slett hendinga + Slett hendinga is in use in the following clocks: @@ -1386,11 +1386,11 @@ sletta Do you still want to delete it? - Vil du framleis sletta? + Vil du framleis sletta? Event In Use - Hendinga er i bruk + Hendinga er i bruk Are you sure you want to delete @@ -1400,10 +1400,6 @@ sletta is in use in the following clocks - - Trans - - ListGrids diff --git a/rdlogmanager/rdlogmanager_pt_BR.ts b/rdlogmanager/rdlogmanager_pt_BR.ts index e42d665a..559e2b3c 100644 --- a/rdlogmanager/rdlogmanager_pt_BR.ts +++ b/rdlogmanager/rdlogmanager_pt_BR.ts @@ -1317,11 +1317,11 @@ deletar Name - Nome + Nome Properties - Propriedades + Propriedades Color @@ -1365,11 +1365,11 @@ deletar Event Exists - Evento Existente + Evento Existente An event with that name already exists! - Um Evento com este nome já existe! + Um Evento com este nome já existe! Are you sure you want to @@ -1379,7 +1379,7 @@ deletar Delete Event - Deletar Evento + Deletar Evento is in use in the following clocks: @@ -1387,11 +1387,11 @@ deletar Do you still want to delete it? - Você ainda quer deletá-lo? + Você ainda quer deletá-lo? Event In Use - Evento em Uso + Evento em Uso Log Events @@ -1405,10 +1405,6 @@ deletar is in use in the following clocks - - Trans - - ListGrids