void CustomTrackView::editGuide(const GenTime oldPos, const GenTime pos, const QString &comment) {
- if (oldPos != GenTime() && pos != GenTime()) {
+ if (oldPos > GenTime() && pos > GenTime()) {
// move guide
for (int i = 0; i < m_guides.count(); i++) {
kDebug() << "// LOOKING FOR GUIDE (" << i << "): " << m_guides.at(i)->position().frames(25) << ", LOOK: " << oldPos.frames(25) << "x" << pos.frames(25);
break;
}
}
- } else if (pos != GenTime()) addGuide(pos, comment);
+ } else if (pos > GenTime()) addGuide(pos, comment);
else {
// remove guide
bool found = false;
}
}
-void CustomTrackView::addGuide(const GenTime pos, const QString &comment) {
+bool CustomTrackView::addGuide(const GenTime pos, const QString &comment) {
+ for (int i = 0; i < m_guides.count(); i++) {
+ if (m_guides.at(i)->position() == pos) {
+ emit displayMessage(i18n("A guide already exists at that position"), ErrorMessage);
+ return false;
+ }
+ }
Guide *g = new Guide(this, pos, comment, m_scale, m_document->fps(), m_tracksHeight * m_tracksList.count());
scene()->addItem(g);
m_guides.append(g);
+ return true;
}
void CustomTrackView::slotAddGuide() {
- addGuide(GenTime(m_cursorPos, m_document->fps()), i18n("guide"));
- EditGuideCommand *command = new EditGuideCommand(this, GenTime(), QString(), GenTime(m_cursorPos, m_document->fps()), i18n("guide"), false);
- m_commandStack->push(command);
-
+ if (addGuide(GenTime(m_cursorPos, m_document->fps()), i18n("guide"))) {
+ EditGuideCommand *command = new EditGuideCommand(this, GenTime(), QString(), GenTime(m_cursorPos, m_document->fps()), i18n("guide"), false);
+ m_commandStack->push(command);
+ }
}
void CustomTrackView::slotDeleteGuide() {
void slotSwitchTrackVideo(int ix);
void slotUpdateClip(int clipId);
void slotAddClipMarker(int id, GenTime t, QString c);
- void addGuide(const GenTime pos, const QString &comment);
+ bool addGuide(const GenTime pos, const QString &comment);
void slotAddGuide();
void slotDeleteGuide();
void editGuide(const GenTime oldPos, const GenTime pos, const QString &comment);
EditGuideCommand::EditGuideCommand(CustomTrackView *view, const GenTime oldPos, const QString &oldcomment, const GenTime pos, const QString &comment, bool doIt) : m_view(view), m_oldPos(oldPos), m_oldcomment(oldcomment), m_pos(pos), m_comment(comment), m_doIt(doIt) {
if (m_oldcomment.isEmpty()) setText(i18n("Add guide"));
else if (m_oldPos == m_pos) setText(i18n("Edit guide"));
+ else if (m_pos <= GenTime()) setText(i18n("Delete guide"));
else setText(i18n("Move guide"));
kDebug() << "/// CREATE GUIDE COMMAND, TIMES: " << m_oldPos.frames(25) << "x" << m_pos.frames(25);
}