mirror of
https://github.com/ElvishArtisan/rivendell.git
synced 2025-07-07 07:57:44 +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>
|
||||
* Added a test for duplicate log line IDs 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
|
||||
##
|
||||
## (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
|
||||
## it under the terms of the GNU General Public License version 2 as
|
||||
|
@ -31,7 +31,7 @@
|
||||
#include "globals.h"
|
||||
|
||||
EditLog::EditLog(QString *filter,QString *group,QString *schedcode,
|
||||
QList<RDLogLine> *clipboard,QWidget *parent)
|
||||
QWidget *parent)
|
||||
: RDDialog(parent)
|
||||
{
|
||||
QColor system_mid_color=palette().mid().color();
|
||||
@ -40,7 +40,6 @@ EditLog::EditLog(QString *filter,QString *group,QString *schedcode,
|
||||
edit_filter=filter;
|
||||
edit_group=group;
|
||||
edit_schedcode=schedcode;
|
||||
edit_clipboard=clipboard;
|
||||
edit_default_trans=RDLogLine::Play;
|
||||
edit_log=NULL;
|
||||
edit_log_lock=NULL;
|
||||
@ -912,11 +911,13 @@ void EditLog::pasteButtonData()
|
||||
if((line=SingleSelectionLine())<0) {
|
||||
return;
|
||||
}
|
||||
edit_log_model->insert(line,edit_clipboard->size());
|
||||
for(int i=0;i<edit_clipboard->size();i++) {
|
||||
*edit_log_model->logLine(line+i)=edit_clipboard->at(i);
|
||||
edit_log_model->insert(line,edit_clipboard.size());
|
||||
for(int i=0;i<edit_clipboard.size();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_clipboard)[i].clearExternalData();
|
||||
edit_clipboard[i].clearExternalData();
|
||||
}
|
||||
SetLogModified(true);
|
||||
UpdateTracks();
|
||||
@ -1065,8 +1066,8 @@ void EditLog::okData()
|
||||
DeleteTracks();
|
||||
}
|
||||
edit_player->stop();
|
||||
for(int i=0;i<edit_clipboard->size();i++) {
|
||||
(*edit_clipboard)[i].clearExternalData();
|
||||
for(int i=0;i<edit_clipboard.size();i++) {
|
||||
edit_clipboard[i].clearExternalData();
|
||||
}
|
||||
delete edit_log_lock;
|
||||
edit_log_lock=NULL;
|
||||
@ -1098,8 +1099,8 @@ void EditLog::cancelData()
|
||||
}
|
||||
}
|
||||
edit_player->stop();
|
||||
for(int i=0;i<edit_clipboard->size();i++) {
|
||||
(*edit_clipboard)[i].clearExternalData();
|
||||
for(int i=0;i<edit_clipboard.size();i++) {
|
||||
edit_clipboard[i].clearExternalData();
|
||||
}
|
||||
delete edit_log_lock;
|
||||
edit_log_lock=NULL;
|
||||
@ -1322,13 +1323,13 @@ void EditLog::LoadClipboard(bool clear_ext)
|
||||
{
|
||||
QItemSelectionModel *sel=edit_log_view->selectionModel();
|
||||
|
||||
edit_clipboard->clear();
|
||||
edit_clipboard.clear();
|
||||
QModelIndexList rows=sel->selectedRows();
|
||||
for(int i=0;i<rows.size();i++) {
|
||||
edit_clipboard->
|
||||
edit_clipboard.
|
||||
push_back(*edit_log_model->logLine(rows.at(i).row()));
|
||||
if(clear_ext) {
|
||||
edit_clipboard->back().clearExternalData();
|
||||
edit_clipboard.back().clearExternalData();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -46,8 +46,7 @@ class EditLog : public RDDialog
|
||||
{
|
||||
Q_OBJECT
|
||||
public:
|
||||
EditLog(QString *filter,QString *group,QString *schedcode,
|
||||
QList<RDLogLine> *clipboard,QWidget *parent=0);
|
||||
EditLog(QString *filter,QString *group,QString *schedcode,QWidget *parent=0);
|
||||
~EditLog();
|
||||
QSize sizeHint() const;
|
||||
|
||||
@ -104,7 +103,7 @@ class EditLog : public RDDialog
|
||||
void SetLogModified(bool state);
|
||||
void SendNotification(RDNotification::Action action,const QString &log_name);
|
||||
RDLog *edit_log;
|
||||
QList<RDLogLine> *edit_clipboard;
|
||||
QList<RDLogLine> edit_clipboard;
|
||||
std::vector<unsigned> edit_deleted_tracks;
|
||||
QStringList *edit_newlogs;
|
||||
QString edit_logname;
|
||||
|
@ -110,8 +110,7 @@ MainWidget::MainWidget(RDConfig *c,QWidget *parent)
|
||||
//
|
||||
// Dialogs
|
||||
//
|
||||
log_edit_dialog=
|
||||
new EditLog(&log_filter,&log_group,&log_schedcode,&log_clipboard,this);
|
||||
log_edit_dialog=new EditLog(&log_filter,&log_group,&log_schedcode,this);
|
||||
log_tracker_dialog=new VoiceTracker(&log_import_path,this);
|
||||
|
||||
//
|
||||
|
@ -81,7 +81,6 @@ class MainWidget : public RDMainWindow
|
||||
RDLogFilter *log_filter_widget;
|
||||
RDTableView *log_log_view;
|
||||
RDLogListModel *log_log_model;
|
||||
QList<RDLogLine> log_clipboard;
|
||||
QPushButton *log_add_button;
|
||||
QPushButton *log_edit_button;
|
||||
QPushButton *log_delete_button;
|
||||
|
Loading…
x
Reference in New Issue
Block a user