#include "addtransitioncommand.h"
#include "customtrackview.h"
-AddTransitionCommand::AddTransitionCommand(CustomTrackView *view, ItemInfo info, int transitiontrack, QDomElement params, bool doIt) : m_view(view), m_info(info), m_track(transitiontrack), m_params(params), m_doIt(doIt) {
- if (m_doIt) setText(i18n("Add transition to clip"));
- else setText(i18n("Delete transition from clip"));
+AddTransitionCommand::AddTransitionCommand(CustomTrackView *view, ItemInfo info, int transitiontrack, QDomElement params, bool remove, bool doIt) : m_view(view), m_info(info), m_track(transitiontrack), m_params(params), m_remove(remove), m_doIt(doIt) {
+ if (m_remove) setText(i18n("Delete transition from clip"));
+ else setText(i18n("Add transition to clip"));
}
// virtual
void AddTransitionCommand::undo() {
- if (m_doIt) m_view->deleteTransition(m_info, m_track, m_params);
- else m_view->addTransition(m_info, m_track, m_params);
+ if (m_remove) m_view->addTransition(m_info, m_track, m_params);
+ else m_view->deleteTransition(m_info, m_track, m_params);
}
// virtual
void AddTransitionCommand::redo() {
- if (m_doIt) m_view->addTransition(m_info, m_track, m_params);
- else m_view->deleteTransition(m_info, m_track, m_params);
+ if (m_doIt) {
+ if (m_remove) m_view->deleteTransition(m_info, m_track, m_params);
+ else m_view->addTransition(m_info, m_track, m_params);
+ }
m_doIt = true;
}
class AddTransitionCommand : public QUndoCommand {
public:
- AddTransitionCommand(CustomTrackView *view, ItemInfo info, int transitiontrack, QDomElement params, bool doIt);
+ AddTransitionCommand(CustomTrackView *view, ItemInfo info, int transitiontrack, QDomElement params, bool remove, bool doIt);
virtual void undo();
virtual void redo();
QDomElement m_params;
int m_track;
bool m_doIt;
+ bool m_remove;
};
#endif
}
- // draw start / end fades
- QBrush fades;
- if (isSelected()) {
- fades = QBrush(QColor(200, 50, 50, 150));
- } else fades = QBrush(QColor(200, 200, 200, 200));
-
- if (m_startFade != 0) {
- QPainterPath fadeInPath;
- fadeInPath.moveTo(br.x() , br.y());
- fadeInPath.lineTo(br.x() , br.y() + br.height());
- fadeInPath.lineTo(br.x() + m_startFade * scale, br.y());
- fadeInPath.closeSubpath();
- painter->fillPath(fadeInPath, fades);
- if (isSelected()) {
- QLineF l(br.x() + m_startFade * scale, br.y(), br.x(), br.y() + br.height());
- painter->drawLine(l);
- }
- }
- if (m_endFade != 0) {
- QPainterPath fadeOutPath;
- fadeOutPath.moveTo(br.x() + br.width(), br.y());
- fadeOutPath.lineTo(br.x() + br.width(), br.y() + br.height());
- fadeOutPath.lineTo(br.x() + br.width() - m_endFade * scale, br.y());
- fadeOutPath.closeSubpath();
- painter->fillPath(fadeOutPath, fades);
- if (isSelected()) {
- QLineF l(br.x() + br.width() - m_endFade * scale, br.y(), br.x() + br.width(), br.y() + br.height());
- painter->drawLine(l);
- }
- }
-
+ /*
+ // draw start / end fades
+ QBrush fades;
+ if (isSelected()) {
+ fades = QBrush(QColor(200, 50, 50, 150));
+ } else fades = QBrush(QColor(200, 200, 200, 200));
+
+ if (m_startFade != 0) {
+ QPainterPath fadeInPath;
+ fadeInPath.moveTo(br.x() , br.y());
+ fadeInPath.lineTo(br.x() , br.y() + br.height());
+ fadeInPath.lineTo(br.x() + m_startFade * scale, br.y());
+ fadeInPath.closeSubpath();
+ painter->fillPath(fadeInPath, fades);
+ if (isSelected()) {
+ QLineF l(br.x() + m_startFade * scale, br.y(), br.x(), br.y() + br.height());
+ painter->drawLine(l);
+ }
+ }
+ if (m_endFade != 0) {
+ QPainterPath fadeOutPath;
+ fadeOutPath.moveTo(br.x() + br.width(), br.y());
+ fadeOutPath.lineTo(br.x() + br.width(), br.y() + br.height());
+ fadeOutPath.lineTo(br.x() + br.width() - m_endFade * scale, br.y());
+ fadeOutPath.closeSubpath();
+ painter->fillPath(fadeOutPath, fades);
+ if (isSelected()) {
+ QLineF l(br.x() + br.width() - m_endFade * scale, br.y(), br.x() + br.width(), br.y() + br.height());
+ painter->drawLine(l);
+ }
+ }
+ */
QPen pen = painter->pen();
pen.setColor(Qt::white);
//pen.setStyle(Qt::DashDotDotLine); //Qt::DotLine);
painter->setFont(font);
}
- // For testing puspose only: draw transitions count
- {
- painter->setPen(pen);
- QFont font = painter->font();
- QFont smallFont = font;
- smallFont.setPointSize(8);
- painter->setFont(smallFont);
- QString txt = " Transitions: " + QString::number(m_transitionsList.count()) + " ";
- QRectF txtBoundin = painter->boundingRect(br, Qt::AlignRight | Qt::AlignTop, txt);
- painter->fillRect(txtBoundin, QBrush(QColor(0, 0, 0, 150)));
- painter->drawText(txtBoundin, Qt::AlignCenter, txt);
- pen.setColor(Qt::black);
- painter->setPen(pen);
- painter->setFont(font);
- }
+ /*
+ // For testing puspose only: draw transitions count
+ {
+ painter->setPen(pen);
+ QFont font = painter->font();
+ QFont smallFont = font;
+ smallFont.setPointSize(8);
+ painter->setFont(smallFont);
+ QString txt = " Transitions: " + QString::number(m_transitionsList.count()) + " ";
+ QRectF txtBoundin = painter->boundingRect(br, Qt::AlignRight | Qt::AlignTop, txt);
+ painter->fillRect(txtBoundin, QBrush(QColor(0, 0, 0, 150)));
+ painter->drawText(txtBoundin, Qt::AlignCenter, txt);
+ pen.setColor(Qt::black);
+ painter->setPen(pen);
+ painter->setFont(font);
+ }
+ */
// Draw clip name
QRectF txtBounding = painter->boundingRect(br, Qt::AlignHCenter | Qt::AlignTop, " " + m_clipName + " ");
} else setCursorPos((int)(mapToScene(event->x(), 0).x() / m_scale));
} else if (event->button() == Qt::RightButton) {
m_operationMode = NONE;
- displayContextMenu(event->globalPos(), (ClipItem *) m_dragItem);
+ displayContextMenu(event->globalPos(), m_dragItem);
m_dragItem = NULL;
}
}
//QGraphicsView::mousePressEvent(event);
}
-void CustomTrackView::displayContextMenu(QPoint pos, ClipItem *clip) {
- m_timelineContextClipMenu->popup(pos);
+void CustomTrackView::displayContextMenu(QPoint pos, AbstractClipItem *clip) {
+ if (clip == NULL) m_timelineContextMenu->popup(pos);
+ else if (clip->type() == AVWIDGET) m_timelineContextClipMenu->popup(pos);
+ else if (clip->type() == TRANSITIONWIDGET) m_timelineContextTransitionMenu->popup(pos);
}
void CustomTrackView::activateMonitor() {
}
void CustomTrackView::slotAddTransition(ClipItem* clip, ItemInfo transitionInfo, int endTrack, QDomElement transition) {
- AddTransitionCommand* command = new AddTransitionCommand(this, transitionInfo, endTrack, transition, true);
+ AddTransitionCommand* command = new AddTransitionCommand(this, transitionInfo, endTrack, transition, false, true);
m_commandStack->push(command);
m_document->setModified(true);
}
void CustomTrackView::deleteSelectedClips() {
QList<QGraphicsItem *> itemList = items();
for (int i = 0; i < itemList.count(); i++) {
- if (itemList.at(i)->type() == AVWIDGET && itemList.at(i)->isSelected()) {
- ClipItem *item = (ClipItem *) itemList.at(i);
- ItemInfo info;
- info.startPos = item->startPos();
- info.endPos = item->endPos();
- info.track = item->track();
- AddTimelineClipCommand *command = new AddTimelineClipCommand(this, item->xml(), item->clipProducer(), info, true, true);
- m_commandStack->push(command);
+ if (itemList.at(i)->isSelected()) {
+ if (itemList.at(i)->type() == AVWIDGET) {
+ ClipItem *item = (ClipItem *) itemList.at(i);
+ ItemInfo info;
+ info.startPos = item->startPos();
+ info.endPos = item->endPos();
+ info.track = item->track();
+ AddTimelineClipCommand *command = new AddTimelineClipCommand(this, item->xml(), item->clipProducer(), info, true, true);
+ m_commandStack->push(command);
+ } else if (itemList.at(i)->type() == TRANSITIONWIDGET) {
+ Transition *item = (Transition *) itemList.at(i);
+ ItemInfo info;
+ info.startPos = item->startPos();
+ info.endPos = item->endPos();
+ info.track = item->track();
+ AddTransitionCommand *command = new AddTransitionCommand(this, info, item->transitionEndTrack(), QDomElement(), true, true);
+ m_commandStack->push(command);
+ }
}
}
}
void checkScrolling();
/** Should we auto scroll while playing (keep in sync with KdenliveSettings::autoscroll() */
bool m_autoScroll;
- void displayContextMenu(QPoint pos, ClipItem *clip = NULL);
+ void displayContextMenu(QPoint pos, AbstractClipItem *clip = NULL);
QMenu *m_timelineContextMenu;
QMenu *m_timelineContextClipMenu;
QMenu *m_timelineContextTransitionMenu;
m_timelineContextClipMenu->addMenu(audioEffectsMenu);
m_timelineContextClipMenu->addMenu(customEffectsMenu);
+ m_timelineContextTransitionMenu->addAction(action);
+
connect(projectMonitorDock, SIGNAL(visibilityChanged(bool)), m_projectMonitor, SLOT(refreshMonitor(bool)));
connect(clipMonitorDock, SIGNAL(visibilityChanged(bool)), m_clipMonitor, SLOT(refreshMonitor(bool)));
//connect(m_monitorManager, SIGNAL(connectMonitors()), this, SLOT(slotConnectMonitors()));
w->setLayout(layout);
layout->setContentsMargins(5, 0, 5, 0);
QToolBar *toolbar = new QToolBar("statusToolBar", this);
- w->setMinimumHeight(34);
+
m_toolGroup = new QActionGroup(this);
+ QString style1 = "QToolButton { background-color: rgba(230, 230, 230, 20); border-style: inset; border:1px solid #666666;border-radius: 3px;margin: 0px 3px} QToolButton:checked { background-color: rgba(224, 0, 0, 100); border-style: inset; border:1px solid #666666;border-radius: 3px;}";
+
m_buttonSelectTool = toolbar->addAction(KIcon("kdenlive-select-tool"), i18n("Selection tool"));
m_buttonSelectTool->setCheckable(true);
m_buttonSelectTool->setChecked(true);
m_toolGroup->addAction(m_buttonSelectTool);
m_toolGroup->addAction(m_buttonRazorTool);
m_toolGroup->setExclusive(true);
+ toolbar->setStyleSheet(style1);
connect(m_toolGroup, SIGNAL(triggered(QAction *)), this, SLOT(slotChangeTool(QAction *)));
toolbar->addSeparator();
m_zoomSlider = new QSlider(Qt::Horizontal, this);
m_zoomSlider->setMaximum(13);
- m_zoomSlider->setMaximumHeight(34);
+
m_zoomSlider->setMaximumWidth(150);
m_zoomSlider->setMinimumWidth(100);
+
+ const int contentHeight = QFontMetrics(w->font()).height() + 3;
+ QString style = "QSlider::groove:horizontal { border: 1px solid #999999;height: 8px }";
+ style.append("QSlider::handle:horizontal { background-color: white; border: 1px solid #999999;width: 8px;margin: -2px 0;border-radius: 3px; }");
+ m_zoomSlider->setStyleSheet(style);
+
+ //m_zoomSlider->setMaximumHeight(contentHeight);
+ //m_zoomSlider->height() + 5;
+ statusBar()->setMinimumHeight(contentHeight + 5);
+
+
toolbar->addWidget(m_zoomSlider);
m_buttonVideoThumbs = toolbar->addAction(KIcon("video-mpeg"), i18n("Show videoo thumbnails"));
actionCollection()->addAction("monitor_seek_snap_forward", monitorSeekSnapForward);
connect(monitorSeekSnapForward, SIGNAL(triggered(bool)), this, SLOT(slotSnapForward()));
- KAction* deleteTimelineClip = new KAction(KIcon("edit-delete"), i18n("Delete Clip"), this);
+ KAction* deleteTimelineClip = new KAction(KIcon("edit-delete"), i18n("Delete Selected Item"), this);
deleteTimelineClip->setShortcut(Qt::Key_Delete);
actionCollection()->addAction("delete_timeline_clip", deleteTimelineClip);
connect(deleteTimelineClip, SIGNAL(triggered(bool)), this, SLOT(slotDeleteTimelineClip()));
painter->fillRect(r1, QBrush(backgroundColor));
}
QFont font = painter->font();
- font.setPointSize(font.pointSize() - 1);
+ font.setPointSize(font.pointSize());
font.setBold(true);
painter->setFont(font);
int mid = (int)((r1.height() / 2));