mirror of
https://github.com/ElvishArtisan/rivendell.git
synced 2025-07-07 16:07:45 +02:00
2022-12-21 Fred Gleason <fredg@paravelsystems.com>
* Fixed a regression in rdlogedit(1) that caused duplicate line IDs to be used when pasting from the clipboard. Signed-off-by: Fred Gleason <fredg@paravelsystems.com>
This commit is contained in:
parent
61b9a08f2a
commit
a1bdaef361
@ -23838,3 +23838,6 @@
|
|||||||
2022-12-21 Fred Gleason <fredg@paravelsystems.com>
|
2022-12-21 Fred Gleason <fredg@paravelsystems.com>
|
||||||
* Added a test for duplicate log line IDs to rddbmgr(8).
|
* Added a test for duplicate log line IDs to rddbmgr(8).
|
||||||
* Added a '--check-log-line-ids' switch to rddbmgr(8).
|
* Added a '--check-log-line-ids' switch to rddbmgr(8).
|
||||||
|
2022-12-21 Fred Gleason <fredg@paravelsystems.com>
|
||||||
|
* Fixed a regression in rdlogedit(1) that caused duplicate line IDs
|
||||||
|
to be used when pasting from the clipboard.
|
||||||
|
@ -2,7 +2,7 @@
|
|||||||
##
|
##
|
||||||
## Use automake to process this into a Makefile.in
|
## Use automake to process this into a Makefile.in
|
||||||
##
|
##
|
||||||
## (C) Copyright 2002-2021 Fred Gleason <fredg@paravelsystems.com>
|
## (C) Copyright 2002-2022 Fred Gleason <fredg@paravelsystems.com>
|
||||||
##
|
##
|
||||||
## This program is free software; you can redistribute it and/or modify
|
## 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
|
## it under the terms of the GNU General Public License version 2 as
|
||||||
|
@ -31,7 +31,7 @@
|
|||||||
#include "globals.h"
|
#include "globals.h"
|
||||||
|
|
||||||
EditLog::EditLog(QString *filter,QString *group,QString *schedcode,
|
EditLog::EditLog(QString *filter,QString *group,QString *schedcode,
|
||||||
QList<RDLogLine> *clipboard,QWidget *parent)
|
QWidget *parent)
|
||||||
: RDDialog(parent)
|
: RDDialog(parent)
|
||||||
{
|
{
|
||||||
QColor system_mid_color=palette().mid().color();
|
QColor system_mid_color=palette().mid().color();
|
||||||
@ -40,7 +40,6 @@ EditLog::EditLog(QString *filter,QString *group,QString *schedcode,
|
|||||||
edit_filter=filter;
|
edit_filter=filter;
|
||||||
edit_group=group;
|
edit_group=group;
|
||||||
edit_schedcode=schedcode;
|
edit_schedcode=schedcode;
|
||||||
edit_clipboard=clipboard;
|
|
||||||
edit_default_trans=RDLogLine::Play;
|
edit_default_trans=RDLogLine::Play;
|
||||||
edit_log=NULL;
|
edit_log=NULL;
|
||||||
edit_log_lock=NULL;
|
edit_log_lock=NULL;
|
||||||
@ -912,11 +911,13 @@ void EditLog::pasteButtonData()
|
|||||||
if((line=SingleSelectionLine())<0) {
|
if((line=SingleSelectionLine())<0) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
edit_log_model->insert(line,edit_clipboard->size());
|
edit_log_model->insert(line,edit_clipboard.size());
|
||||||
for(int i=0;i<edit_clipboard->size();i++) {
|
for(int i=0;i<edit_clipboard.size();i++) {
|
||||||
*edit_log_model->logLine(line+i)=edit_clipboard->at(i);
|
int line_id=edit_log_model->logLine(line+i)->id(); // Save the line ID
|
||||||
|
*edit_log_model->logLine(line+i)=edit_clipboard.at(i);
|
||||||
|
edit_log_model->logLine(line+i)->setId(line_id); // So we can restore it
|
||||||
edit_log_model->logLine(line+i)->setSource(RDLogLine::Manual);
|
edit_log_model->logLine(line+i)->setSource(RDLogLine::Manual);
|
||||||
(*edit_clipboard)[i].clearExternalData();
|
edit_clipboard[i].clearExternalData();
|
||||||
}
|
}
|
||||||
SetLogModified(true);
|
SetLogModified(true);
|
||||||
UpdateTracks();
|
UpdateTracks();
|
||||||
@ -1065,8 +1066,8 @@ void EditLog::okData()
|
|||||||
DeleteTracks();
|
DeleteTracks();
|
||||||
}
|
}
|
||||||
edit_player->stop();
|
edit_player->stop();
|
||||||
for(int i=0;i<edit_clipboard->size();i++) {
|
for(int i=0;i<edit_clipboard.size();i++) {
|
||||||
(*edit_clipboard)[i].clearExternalData();
|
edit_clipboard[i].clearExternalData();
|
||||||
}
|
}
|
||||||
delete edit_log_lock;
|
delete edit_log_lock;
|
||||||
edit_log_lock=NULL;
|
edit_log_lock=NULL;
|
||||||
@ -1098,8 +1099,8 @@ void EditLog::cancelData()
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
edit_player->stop();
|
edit_player->stop();
|
||||||
for(int i=0;i<edit_clipboard->size();i++) {
|
for(int i=0;i<edit_clipboard.size();i++) {
|
||||||
(*edit_clipboard)[i].clearExternalData();
|
edit_clipboard[i].clearExternalData();
|
||||||
}
|
}
|
||||||
delete edit_log_lock;
|
delete edit_log_lock;
|
||||||
edit_log_lock=NULL;
|
edit_log_lock=NULL;
|
||||||
@ -1322,13 +1323,13 @@ void EditLog::LoadClipboard(bool clear_ext)
|
|||||||
{
|
{
|
||||||
QItemSelectionModel *sel=edit_log_view->selectionModel();
|
QItemSelectionModel *sel=edit_log_view->selectionModel();
|
||||||
|
|
||||||
edit_clipboard->clear();
|
edit_clipboard.clear();
|
||||||
QModelIndexList rows=sel->selectedRows();
|
QModelIndexList rows=sel->selectedRows();
|
||||||
for(int i=0;i<rows.size();i++) {
|
for(int i=0;i<rows.size();i++) {
|
||||||
edit_clipboard->
|
edit_clipboard.
|
||||||
push_back(*edit_log_model->logLine(rows.at(i).row()));
|
push_back(*edit_log_model->logLine(rows.at(i).row()));
|
||||||
if(clear_ext) {
|
if(clear_ext) {
|
||||||
edit_clipboard->back().clearExternalData();
|
edit_clipboard.back().clearExternalData();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -46,8 +46,7 @@ class EditLog : public RDDialog
|
|||||||
{
|
{
|
||||||
Q_OBJECT
|
Q_OBJECT
|
||||||
public:
|
public:
|
||||||
EditLog(QString *filter,QString *group,QString *schedcode,
|
EditLog(QString *filter,QString *group,QString *schedcode,QWidget *parent=0);
|
||||||
QList<RDLogLine> *clipboard,QWidget *parent=0);
|
|
||||||
~EditLog();
|
~EditLog();
|
||||||
QSize sizeHint() const;
|
QSize sizeHint() const;
|
||||||
|
|
||||||
@ -104,7 +103,7 @@ class EditLog : public RDDialog
|
|||||||
void SetLogModified(bool state);
|
void SetLogModified(bool state);
|
||||||
void SendNotification(RDNotification::Action action,const QString &log_name);
|
void SendNotification(RDNotification::Action action,const QString &log_name);
|
||||||
RDLog *edit_log;
|
RDLog *edit_log;
|
||||||
QList<RDLogLine> *edit_clipboard;
|
QList<RDLogLine> edit_clipboard;
|
||||||
std::vector<unsigned> edit_deleted_tracks;
|
std::vector<unsigned> edit_deleted_tracks;
|
||||||
QStringList *edit_newlogs;
|
QStringList *edit_newlogs;
|
||||||
QString edit_logname;
|
QString edit_logname;
|
||||||
|
@ -110,8 +110,7 @@ MainWidget::MainWidget(RDConfig *c,QWidget *parent)
|
|||||||
//
|
//
|
||||||
// Dialogs
|
// Dialogs
|
||||||
//
|
//
|
||||||
log_edit_dialog=
|
log_edit_dialog=new EditLog(&log_filter,&log_group,&log_schedcode,this);
|
||||||
new EditLog(&log_filter,&log_group,&log_schedcode,&log_clipboard,this);
|
|
||||||
log_tracker_dialog=new VoiceTracker(&log_import_path,this);
|
log_tracker_dialog=new VoiceTracker(&log_import_path,this);
|
||||||
|
|
||||||
//
|
//
|
||||||
|
@ -81,7 +81,6 @@ class MainWidget : public RDMainWindow
|
|||||||
RDLogFilter *log_filter_widget;
|
RDLogFilter *log_filter_widget;
|
||||||
RDTableView *log_log_view;
|
RDTableView *log_log_view;
|
||||||
RDLogListModel *log_log_model;
|
RDLogListModel *log_log_model;
|
||||||
QList<RDLogLine> log_clipboard;
|
|
||||||
QPushButton *log_add_button;
|
QPushButton *log_add_button;
|
||||||
QPushButton *log_edit_button;
|
QPushButton *log_edit_button;
|
||||||
QPushButton *log_delete_button;
|
QPushButton *log_delete_button;
|
||||||
|
Loading…
x
Reference in New Issue
Block a user