#include "customtrackview.h"
-RefreshMonitorCommand::RefreshMonitorCommand(CustomTrackView *view, bool execute, QUndoCommand * parent) :
+RefreshMonitorCommand::RefreshMonitorCommand(CustomTrackView *view, bool execute, bool refreshOnUndo, QUndoCommand * parent) :
QUndoCommand(parent),
m_view(view),
- m_exec(execute)
+ m_exec(execute),
+ m_execOnUndo(refreshOnUndo)
{
}
// virtual
void RefreshMonitorCommand::undo()
{
- m_view->monitorRefresh();
+ if (m_execOnUndo) m_view->monitorRefresh();
}
// virtual
void RefreshMonitorCommand::redo()
{
- if (m_exec)
+ if (m_exec && !m_execOnUndo)
m_view->monitorRefresh();
m_exec = true;
}
resetSelectionGroup();
QList<QGraphicsItem *> itemList = items();
QUndoCommand *deleteCommand = new QUndoCommand();
+ new RefreshMonitorCommand(this, false, true, deleteCommand);
int count = 0;
for (int i = 0; i < itemList.count(); i++) {
if (itemList.at(i)->type() == AVWIDGET) {
delete deleteCommand;
} else {
updateTrackDuration(-1, deleteCommand);
- new RefreshMonitorCommand(this, false, deleteCommand);
+ new RefreshMonitorCommand(this, false, false, deleteCommand);
m_commandStack->push(deleteCommand);
}
- m_document->renderer()->doRefresh();
+ m_document->renderer()->doRefresh();
}
void CustomTrackView::seekCursorPos(int pos)
}
scene()->clearSelection();
QUndoCommand *deleteSelected = new QUndoCommand();
+ new RefreshMonitorCommand(this, false, true, deleteSelected);
int groupCount = 0;
int clipCount = 0;
deleteSelected->setText(i18np("Delete selected transition", "Delete selected transitions", transitionCount));
else deleteSelected->setText(i18n("Delete selected items"));
updateTrackDuration(-1, deleteSelected);
- new RefreshMonitorCommand(this, false, deleteSelected);
+ new RefreshMonitorCommand(this, true, false, deleteSelected);
m_commandStack->push(deleteSelected);
- m_document->renderer()->doRefresh();
}
m_document->renderer()->mltAddEffect(info.track, info.startPos, getEffectArgs(item->effect(i)), false);
}
setDocumentModified();
- if (refresh)
+ if (refresh) {
m_document->renderer()->doRefresh();
+ }
if (!baseclip->isPlaceHolder())
m_waitingThumbs.append(item);
m_thumbsTimer.start();
}
QUndoCommand *pasteClips = new QUndoCommand();
pasteClips->setText("Paste clips");
+ new RefreshMonitorCommand(this, false, true, pasteClips);
for (int i = 0; i < m_copiedItems.count(); i++) {
// parse all clip names
}
}
updateTrackDuration(-1, pasteClips);
- new RefreshMonitorCommand(this, false, pasteClips);
+ new RefreshMonitorCommand(this, false, false, pasteClips);
m_commandStack->push(pasteClips);
}