mirror of
https://github.com/ElvishArtisan/rivendell.git
synced 2025-09-16 16:30:26 +02:00
2021-10-27 Fred Gleason <fredg@paravelsystems.com>
* Fixed a regression in rdlogmanager(1) in the 'Log Events' dialog that caused a 'phantom' additional entry in the event list to be created when overwriting an existing event during a 'Save As' operation. Signed-off-by: Fred Gleason <fredg@paravelsystems.com>
This commit is contained in:
parent
e5e81ed361
commit
4a98b80c28
@ -22550,3 +22550,8 @@
|
||||
has a <n> transition.' dropdown in the 'Editing Event' dialog to
|
||||
always display 'PLAY', even when opening events with 'SEGUE' set
|
||||
for that parameter.
|
||||
2021-10-27 Fred Gleason <fredg@paravelsystems.com>
|
||||
* Fixed a regression in rdlogmanager(1) in the 'Log Events' dialog
|
||||
that caused a 'phantom' additional entry in the event list to
|
||||
be created when overwriting an existing event during a 'Save As'
|
||||
operation.
|
||||
|
@ -23,10 +23,10 @@
|
||||
#include "add_event.h"
|
||||
#include "edit_event.h"
|
||||
|
||||
AddEvent::AddEvent(QString *logname,QWidget *parent)
|
||||
AddEvent::AddEvent(QString *evt_name,QWidget *parent)
|
||||
: RDDialog(parent)
|
||||
{
|
||||
event_name=logname;
|
||||
event_name=evt_name;
|
||||
|
||||
setWindowTitle("RDLogManager - "+tr("Add Log Event"));
|
||||
|
||||
@ -142,13 +142,13 @@ void AddEvent::nameChangedData(const QString &str)
|
||||
void AddEvent::okData()
|
||||
{
|
||||
*event_name=event_name_edit->text();
|
||||
done(0);
|
||||
done(true);
|
||||
}
|
||||
|
||||
|
||||
void AddEvent::cancelData()
|
||||
{
|
||||
done(-1);
|
||||
done(false);
|
||||
}
|
||||
|
||||
|
||||
|
@ -2,7 +2,7 @@
|
||||
//
|
||||
// Add a Rivendell Log Manager Event
|
||||
//
|
||||
// (C) Copyright 2002-2019 Fred Gleason <fredg@paravelsystems.com>
|
||||
// (C) Copyright 2002-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
|
||||
@ -31,7 +31,7 @@ class AddEvent : public RDDialog
|
||||
{
|
||||
Q_OBJECT
|
||||
public:
|
||||
AddEvent(QString *logname,QWidget *parent=0);
|
||||
AddEvent(QString *evt_name,QWidget *parent=0);
|
||||
~AddEvent();
|
||||
QSize sizeHint() const;
|
||||
QSizePolicy sizePolicy() const;
|
||||
|
@ -513,13 +513,15 @@ void EditClock::colorData()
|
||||
|
||||
void EditClock::editEventData(int line)
|
||||
{
|
||||
std::vector<QString> new_events;
|
||||
QStringList new_events;
|
||||
QStringList modified_events;
|
||||
|
||||
RDEventLine *event=edit_clocks_model->eventLine(line);
|
||||
if(event==NULL) {
|
||||
return;
|
||||
}
|
||||
EditEvent *dialog=new EditEvent(event->name(),false,&new_events,this);
|
||||
EditEvent *dialog=
|
||||
new EditEvent(event->name(),false,&new_events,&modified_events,this);
|
||||
if(dialog->exec()<-1) {
|
||||
delete dialog;
|
||||
return;
|
||||
|
@ -31,14 +31,15 @@
|
||||
#include "edit_event.h"
|
||||
#include "edit_perms.h"
|
||||
|
||||
EditEvent::EditEvent(QString eventname,bool new_event,
|
||||
std::vector<QString> *new_events,QWidget *parent)
|
||||
EditEvent::EditEvent(QString eventname,bool new_event,QStringList *new_events,
|
||||
QStringList *modified_events,QWidget *parent)
|
||||
: RDDialog(parent)
|
||||
{
|
||||
event_saved=false;
|
||||
event_name=eventname;
|
||||
event_new_event=new_event;
|
||||
event_new_events=new_events;
|
||||
event_modified_events=modified_events;
|
||||
event_event=new RDEvent(eventname);
|
||||
|
||||
setWindowTitle("RDLogManager - "+tr("Editing Event")+" - "+
|
||||
@ -1144,7 +1145,7 @@ void EditEvent::saveAsData()
|
||||
|
||||
old_name=event_name;
|
||||
AddEvent *add_dialog=new AddEvent(&event_name,this);
|
||||
if(add_dialog->exec()<0) {
|
||||
if(!add_dialog->exec()) {
|
||||
delete add_dialog;
|
||||
return;
|
||||
}
|
||||
@ -1165,8 +1166,9 @@ void EditEvent::saveAsData()
|
||||
event_event->name());
|
||||
}
|
||||
else {
|
||||
if(QMessageBox::question(this,tr("RDLogManager"),
|
||||
tr("Event already exists!\nDo you want to overwrite it?"),
|
||||
if(QMessageBox::question(this,"RDLogManager - "+tr("Event Exists"),
|
||||
tr("An event with that name already exists!")+
|
||||
"\n"+tr("Do you want to overwrite it?"),
|
||||
QMessageBox::Yes,QMessageBox::No)!=
|
||||
QMessageBox::Yes) {
|
||||
return;
|
||||
@ -1174,7 +1176,7 @@ void EditEvent::saveAsData()
|
||||
delete event_event;
|
||||
event_event=new RDEvent(event_name,true);
|
||||
Save();
|
||||
event_new_events->push_back(event_name);
|
||||
event_modified_events->push_back(event_name);
|
||||
sql=QString("delete from `EVENT_PERMS` where ")+
|
||||
"`EVENT_NAME`='"+RDEscapeString(event_name)+"'";
|
||||
q=new RDSqlQuery(sql);
|
||||
|
@ -21,7 +21,6 @@
|
||||
#ifndef EDIT_EVENT_H
|
||||
#define EDIT_EVENT_H
|
||||
|
||||
|
||||
#include <QButtonGroup>
|
||||
#include <QCheckBox>
|
||||
#include <QDateTimeEdit>
|
||||
@ -29,6 +28,7 @@
|
||||
#include <QLineEdit>
|
||||
#include <QRadioButton>
|
||||
#include <QSpinBox>
|
||||
#include <QStringList>
|
||||
#include <QTextEdit>
|
||||
|
||||
#include <rdcombobox.h>
|
||||
@ -52,8 +52,8 @@ class EditEvent : public RDDialog
|
||||
{
|
||||
Q_OBJECT
|
||||
public:
|
||||
EditEvent(QString eventname,bool new_event,std::vector<QString> *new_events,
|
||||
QWidget *parent=0);
|
||||
EditEvent(QString eventname,bool new_event,QStringList *new_events,
|
||||
QStringList *modified_events,QWidget *parent=0);
|
||||
~EditEvent();
|
||||
QSize sizeHint() const;
|
||||
QSizePolicy sizePolicy() const;
|
||||
@ -169,7 +169,8 @@ class EditEvent : public RDDialog
|
||||
QColor event_color;
|
||||
bool event_saved;
|
||||
bool event_new_event;
|
||||
std::vector<QString> *event_new_events;
|
||||
QStringList *event_new_events;
|
||||
QStringList *event_modified_events;
|
||||
RDSimplePlayer *event_player;
|
||||
QTextEdit *event_remarks_edit;
|
||||
RDEmptyCart *event_empty_cart;
|
||||
|
@ -179,10 +179,11 @@ void ListEvents::addData()
|
||||
RDEvent *event;
|
||||
RDSqlQuery *q;
|
||||
RDSqlQuery *q1;
|
||||
std::vector<QString> new_events;
|
||||
QStringList new_events;
|
||||
QStringList modified_events;
|
||||
|
||||
AddEvent *add_dialog=new AddEvent(&logname,this);
|
||||
if(add_dialog->exec()<0) {
|
||||
if(!add_dialog->exec()) {
|
||||
delete add_dialog;
|
||||
return;
|
||||
}
|
||||
@ -202,7 +203,8 @@ void ListEvents::addData()
|
||||
delete q;
|
||||
event=new RDEvent(logname,true);
|
||||
delete event;
|
||||
EditEvent *event_dialog=new EditEvent(logname,true,&new_events,this);
|
||||
EditEvent *event_dialog=
|
||||
new EditEvent(logname,true,&new_events,&modified_events,this);
|
||||
if(event_dialog->exec()<-1) {
|
||||
sql=QString("delete from `EVENTS` where ")+
|
||||
"`NAME`='"+RDEscapeString(logname)+"'";
|
||||
@ -241,7 +243,10 @@ void ListEvents::addData()
|
||||
}
|
||||
}
|
||||
delete event_dialog;
|
||||
for(unsigned i=0;i<new_events.size();i++) {
|
||||
for(int i=0;i<modified_events.size();i++) {
|
||||
edit_events_model->refresh(modified_events.at(i));
|
||||
}
|
||||
for(int i=0;i<new_events.size();i++) {
|
||||
QModelIndex row=edit_events_model->addEvent(new_events.at(i));
|
||||
if(row.isValid()) {
|
||||
edit_events_view->selectRow(row.row());
|
||||
@ -252,19 +257,23 @@ void ListEvents::addData()
|
||||
|
||||
void ListEvents::editData()
|
||||
{
|
||||
std::vector<QString> new_events;
|
||||
QStringList new_events;
|
||||
QStringList modified_events;
|
||||
QModelIndexList rows=edit_events_view->selectionModel()->selectedRows();
|
||||
|
||||
if(rows.size()!=1) {
|
||||
return;
|
||||
}
|
||||
EditEvent *event_dialog=
|
||||
new EditEvent(edit_events_model->eventName(rows.first()),false,&new_events,
|
||||
this);
|
||||
new EditEvent(edit_events_model->eventName(rows.first()),false,
|
||||
&new_events,&modified_events,this);
|
||||
if(event_dialog->exec()>=-1) {
|
||||
edit_events_model->refresh(rows.first());
|
||||
}
|
||||
for(unsigned i=0;i<new_events.size();i++) {
|
||||
for(int i=0;i<modified_events.size();i++) {
|
||||
edit_events_model->refresh(modified_events.at(i));
|
||||
}
|
||||
for(int i=0;i<new_events.size();i++) {
|
||||
edit_events_model->addEvent(new_events.at(i));
|
||||
}
|
||||
delete event_dialog;
|
||||
|
Loading…
x
Reference in New Issue
Block a user