]> git.sesse.net Git - kdenlive/commitdiff
* Add actions and shortcut for "set inpoint" and "set outpoint"
authorJean-Baptiste Mardelle <jb@kdenlive.org>
Sat, 27 Sep 2008 23:40:30 +0000 (23:40 +0000)
committerJean-Baptiste Mardelle <jb@kdenlive.org>
Sat, 27 Sep 2008 23:40:30 +0000 (23:40 +0000)
* Rewrite timeline ruler

svn path=/branches/KDE4/; revision=2414

src/customruler.cpp
src/customruler.h
src/customtrackview.cpp
src/customtrackview.h
src/kdenliveui.rc
src/mainwindow.cpp
src/mainwindow.h
src/monitor.cpp
src/monitor.h
src/monitormanager.cpp
src/monitormanager.h

index 44563d23d697aff41d793041f837bc46ce8b82cb..70e30cd21c39e1a0d939e5d0bb372aa269c651fb 100644 (file)
@@ -45,21 +45,21 @@ static const int LABEL_SIZE = 9;
 static const int END_LABEL_X = 4;
 static const int END_LABEL_Y = (END_LABEL_X + LABEL_SIZE - 2);
 
+static int littleMarkDistance;
+static int mediumMarkDistance;
+static int bigMarkDistance;
+
 #include "definitions.h"
 
 const int CustomRuler::comboScale[] = { 1, 2, 5, 10, 25, 50, 125, 250, 500, 725, 1500, 3000, 6000, 12000};
 
 CustomRuler::CustomRuler(Timecode tc, CustomTrackView *parent)
-        : KRuler(parent), m_timecode(tc), m_view(parent), m_duration(0) {
+        : QWidget(parent), m_timecode(tc), m_view(parent), m_duration(0), m_offset(0) {
     setFont(KGlobalSettings::toolBarFont());
-    slotNewOffset(0);
-    setRulerMetricStyle(KRuler::Pixel);
-    setLength(1024);
-    setMaximum(1024);
-    setPixelPerMark(3);
-    setLittleMarkDistance(FRAME_SIZE);
-    setMediumMarkDistance(FRAME_SIZE * m_timecode.fps());
-    setBigMarkDistance(FRAME_SIZE * m_timecode.fps() * 60);
+    m_scale = 3;
+    littleMarkDistance = FRAME_SIZE;
+    mediumMarkDistance = FRAME_SIZE * m_timecode.fps();
+    bigMarkDistance = FRAME_SIZE * m_timecode.fps() * 60;
     m_zoneStart = 2 * m_timecode.fps();
     m_zoneEnd = 10 * m_timecode.fps();
     m_contextMenu = new QMenu(this);
@@ -72,12 +72,15 @@ CustomRuler::CustomRuler(Timecode tc, CustomTrackView *parent)
     QAction *delAllGuides = m_contextMenu->addAction(KIcon("edit-delete"), i18n("Delete All Guides"));
     connect(delAllGuides, SIGNAL(triggered()), m_view, SLOT(slotDeleteAllGuides()));
     setMouseTracking(true);
+    setMinimumHeight(20);
 }
 
 void CustomRuler::setZone(QPoint p) {
+    int min = qMin(m_zoneStart, p.x());
+    int max = qMax(m_zoneEnd, p.y());
     m_zoneStart = p.x();
     m_zoneEnd = p.y();
-    update();
+    update(min * m_factor - 2, 0, (max - min) * m_factor + 4, height());
 }
 
 // virtual
@@ -102,6 +105,8 @@ void CustomRuler::mousePressEvent(QMouseEvent * event) {
 void CustomRuler::mouseMoveEvent(QMouseEvent * event) {
     if (event->buttons() == Qt::LeftButton) {
         int pos = (int)((event->x() + offset()) / m_factor);
+        int zoneStart = m_zoneStart;
+        int zoneEnd = m_zoneEnd;
         if (pos < 0) pos = 0;
         if (m_moveCursor == RULER_CURSOR) {
             m_view->setCursorPos(pos);
@@ -115,7 +120,11 @@ void CustomRuler::mouseMoveEvent(QMouseEvent * event) {
         }
         emit zoneMoved(m_zoneStart, m_zoneEnd);
         m_view->setDocumentModified();
-        update();
+
+        int min = qMin(m_zoneStart, zoneStart);
+        int max = qMax(m_zoneEnd, zoneEnd);
+        update(min * m_factor - m_offset - 2, 0, (max - min) * m_factor + 4, height());
+
     } else {
         int pos = (int)((event->x() + offset()));
         if (event->y() <= 10) setCursor(Qt::ArrowCursor);
@@ -144,19 +153,26 @@ int CustomRuler::outPoint() const {
 }
 
 void CustomRuler::slotMoveRuler(int newPos) {
-    KRuler::slotNewOffset(newPos);
+    m_offset = newPos;
+    update();
+}
+
+int CustomRuler::offset() const {
+    return m_offset;
 }
 
 void CustomRuler::slotCursorMoved(int oldpos, int newpos) {
-    update(oldpos * m_factor - offset() - 6, 2, 17, 16);
-    update(newpos * m_factor - offset() - 6, 2, 17, 16);
+    if (qAbs(oldpos - newpos) * m_factor > 40) {
+        update(oldpos * m_factor - offset() - 6, 7, 17, 16);
+        update(newpos * m_factor - offset() - 6, 7, 17, 16);
+    } else update(qMin(oldpos, newpos) * m_factor - offset() - 6, 7, qAbs(oldpos - newpos) * m_factor + 17, 16);
 }
 
 void CustomRuler::setPixelPerMark(double rate) {
     int scale = comboScale[(int) rate];
     m_factor = 1.0 / (double) scale * FRAME_SIZE;
-    KRuler::setPixelPerMark(1.0 / scale);
-    double fend = pixelPerMark() * littleMarkDistance();
+    m_scale = 1.0 / (double) scale;
+    double fend = m_scale * littleMarkDistance;
     switch ((int) rate) {
     case 0:
         m_textSpacing = fend;
@@ -191,11 +207,13 @@ void CustomRuler::setPixelPerMark(double rate) {
         m_textSpacing = fend * m_timecode.fps() * 600;
         break;
     }
+    update();
 }
 
 void CustomRuler::setDuration(int d) {
+    int oldduration = m_duration;
     m_duration = d;
-    update();
+    update(qMin(oldduration, m_duration) * m_factor - 1, 0, qAbs(oldduration - m_duration) * m_factor + 2, height());
 }
 
 // virtual
@@ -204,7 +222,7 @@ void CustomRuler::paintEvent(QPaintEvent *e) {
     p.setClipRect(e->rect());
 
     const int projectEnd = (int)(m_duration * m_factor);
-    p.fillRect(QRect(0, 0, projectEnd - offset(), height()), QBrush(QColor(245, 245, 245)));
+    p.fillRect(QRect(0, 0, projectEnd - m_offset, height()), QBrush(QColor(245, 245, 245)));
 
     const int zoneStart = (int)(m_zoneStart * m_factor);
     const int zoneEnd = (int)(m_zoneEnd * m_factor);
@@ -212,76 +230,49 @@ void CustomRuler::paintEvent(QPaintEvent *e) {
     p.fillRect(QRect(zoneStart - offset(), height() / 2, zoneEnd - zoneStart, height() / 2), QBrush(QColor(133, 255, 143)));
 
     const int value  = m_view->cursorPos() * m_factor - offset();
-    const int minval = minimum();
-    const int maxval = maximum() + offset() - endOffset();
+    int minval = (e->rect().left() + m_offset) / FRAME_SIZE - 1;
+    const int maxval = (e->rect().right() + m_offset) / FRAME_SIZE + 1;
+    if (minval < 0) minval = 0;
 
-    double f, fend,
-    offsetmin = (double)(minval - offset()),
-                offsetmax = (double)(maxval - offset()),
-                            fontOffset = (((double)minval) > offsetmin) ? (double)minval : offsetmin;
-    QRect bg = QRect((int)offsetmin, 0, (int)offsetmax, height());
+    kDebug() << "RULER MIN/MAX: " << minval << "-" << maxval << ", PIXELS: " << e->rect().left() << "-" << e->rect().right();
 
-    QPalette palette;
-    //p.fillRect(bg, palette.light());
-    // draw labels
-    p.setPen(palette.dark().color());
-    // draw littlemarklabel
-
-    // draw mediummarklabel
-
-    // draw bigmarklabel
+    double f, fend;
+    const int offsetmax = maxval * FRAME_SIZE;
 
-    // draw endlabel
-    /*if (d->showEndL) {
-      if (d->dir == Qt::Horizontal) {
-        p.translate( fontOffset, 0 );
-        p.drawText( END_LABEL_X, END_LABEL_Y, d->endlabel );
-      }*/
-
-    // draw the tiny marks
-    //if (showTinyMarks())
-    /*{
-      fend =   pixelPerMark()*tinyMarkDistance();
-      if (fend > 5) for ( f=offsetmin; f<offsetmax; f+=fend ) {
-          p.drawLine((int)f, BASE_MARK_X1, (int)f, BASE_MARK_X2);
-      }
-    }*/
 
+    QPalette palette;
+    p.setPen(palette.dark().color());
+    int offsetmin = (e->rect().left() + m_offset) / m_textSpacing;
+    offsetmin = offsetmin * m_textSpacing;
     for (f = offsetmin; f < offsetmax; f += m_textSpacing) {
-        QString lab = m_timecode.getTimecodeFromFrames((int)((f - offsetmin) / m_factor + 0.5));
-        p.drawText((int)f + 2, LABEL_SIZE, lab);
+        QString lab = m_timecode.getTimecodeFromFrames((int)((f) / m_factor + 0.5));
+        p.drawText((int)f - m_offset + 2, LABEL_SIZE, lab);
     }
 
-    if (showLittleMarks()) {
+    if (true) {
+        offsetmin = (e->rect().left() + m_offset) / littleMarkDistance;
+        offsetmin = offsetmin * littleMarkDistance;
         // draw the little marks
-        fend = pixelPerMark() * littleMarkDistance();
-        if (fend > 5) for (f = offsetmin; f < offsetmax; f += fend)
+        fend = m_scale * littleMarkDistance;
+        if (fend > 5) for (f = offsetmin - m_offset; f < offsetmax - m_offset; f += fend)
                 p.drawLine((int)f, LITTLE_MARK_X1, (int)f, LITTLE_MARK_X2);
     }
-    if (showMediumMarks()) {
+    if (true) {
+        offsetmin = (e->rect().left() + m_offset) / mediumMarkDistance;
+        offsetmin = offsetmin * mediumMarkDistance;
         // draw medium marks
-        fend = pixelPerMark() * mediumMarkDistance();
-        if (fend > 5) for (f = offsetmin; f < offsetmax; f += fend)
+        fend = m_scale * mediumMarkDistance;
+        if (fend > 5) for (f = offsetmin - m_offset - fend; f < offsetmax - m_offset + fend; f += fend)
                 p.drawLine((int)f, MIDDLE_MARK_X1, (int)f, MIDDLE_MARK_X2);
     }
-    if (showBigMarks()) {
+    if (true) {
+        offsetmin = (e->rect().left() + m_offset) / bigMarkDistance;
+        offsetmin = offsetmin * bigMarkDistance;
         // draw big marks
-        fend = pixelPerMark() * bigMarkDistance();
-        if (fend > 5) for (f = offsetmin; f < offsetmax; f += fend)
+        fend = m_scale * bigMarkDistance;
+        if (fend > 5) for (f = offsetmin - m_offset; f < offsetmax - m_offset; f += fend)
                 p.drawLine((int)f, BIG_MARK_X1, (int)f, BIG_MARK_X2);
     }
-    /*   if (d->showem) {
-         // draw end marks
-         if (d->dir == Qt::Horizontal) {
-           p.drawLine(minval-d->offset, END_MARK_X1, minval-d->offset, END_MARK_X2);
-           p.drawLine(maxval-d->offset, END_MARK_X1, maxval-d->offset, END_MARK_X2);
-         }
-         else {
-           p.drawLine(END_MARK_X1, minval-d->offset, END_MARK_X2, minval-d->offset);
-           p.drawLine(END_MARK_X1, maxval-d->offset, END_MARK_X2, maxval-d->offset);
-         }
-       }*/
-
 
     // draw zone cursors
     int off = offset();
index 5f75f3d14f076316ed9e18a4dc53c344e6cdbe2b..76959fcd6eaa64a546e278d531b5bf42133276c1 100644 (file)
@@ -1,14 +1,14 @@
 #ifndef CUSTOMRULER_H
 #define CUSTOMRULER_H
 
-#include <KRuler>
+#include <QWidget>
 
 #include "customtrackview.h"
 #include "timecode.h"
 
 enum RULER_MOVE { RULER_CURSOR = 0, RULER_START = 1, RULER_MIDDLE = 2, RULER_END = 3 };
 
-class CustomRuler : public KRuler {
+class CustomRuler : public QWidget {
     Q_OBJECT
 
 public:
@@ -19,6 +19,7 @@ public:
     int inPoint() const;
     void setDuration(int d);
     void setZone(QPoint p);
+    int offset() const;
 
 protected:
     virtual void paintEvent(QPaintEvent * /*e*/);
@@ -35,6 +36,8 @@ private:
     int m_duration;
     double m_textSpacing;
     double m_factor;
+    double m_scale;
+    int m_offset;
     RULER_MOVE m_moveCursor;
     QMenu *m_contextMenu;
 
index c332c761152669b48de5a26c615b56b027776fd3..71393346b370d27818f43ee63d98c3811f28fb07 100644 (file)
@@ -1704,26 +1704,18 @@ void CustomTrackView::slotSeekToNextSnap() {
 }
 
 void CustomTrackView::clipStart() {
-    QList<QGraphicsItem *> itemList = scene()->selectedItems();
-    for (int i = 0; i < itemList.count(); i++) {
-        if (itemList.at(i)->type() == AVWIDGET) {
-            ClipItem *item = (ClipItem *) itemList.at(i);
-            setCursorPos((int) item->startPos().frames(m_document->fps()));
-            checkScrolling();
-            break;
-        }
+    ClipItem *item = getMainActiveClip();
+    if (item != NULL) {
+        setCursorPos((int) item->startPos().frames(m_document->fps()));
+        checkScrolling();
     }
 }
 
 void CustomTrackView::clipEnd() {
-    QList<QGraphicsItem *> itemList = scene()->selectedItems();
-    for (int i = 0; i < itemList.count(); i++) {
-        if (itemList.at(i)->type() == AVWIDGET) {
-            ClipItem *item = (ClipItem *) itemList.at(i);
-            setCursorPos((int) item->endPos().frames(m_document->fps()));
-            checkScrolling();
-            break;
-        }
+    ClipItem *item = getMainActiveClip();
+    if (item != NULL) {
+        setCursorPos((int) item->endPos().frames(m_document->fps()));
+        checkScrolling();
     }
 }
 
@@ -2236,12 +2228,72 @@ void CustomTrackView::pasteClipEffects() {
 }
 
 
-/*
-void CustomTrackView::drawForeground ( QPainter * painter, const QRectF & rect )
-{
-  //kDebug()<<"/////  DRAWING FB: "<<rect.x()<<", width: "<<rect.width();
-  painter->fillRect(rect, QColor(50, rand() % 250,50,100));
-  painter->drawLine(m_cursorPos, rect.y(), m_cursorPos, rect.y() + rect.height());
+ClipItem *CustomTrackView::getClipUnderCursor() const {
+    QRectF rect((double) m_cursorPos, 0.0, 1.0, (double)(m_tracksHeight * m_scene->m_tracksList.count()));
+    QList<QGraphicsItem *> collisions = scene()->items(rect, Qt::IntersectsItemBoundingRect);
+    for (int i = 0; i < collisions.count(); i++) {
+        if (collisions.at(i)->type() == AVWIDGET) {
+            return static_cast < ClipItem *>(collisions.at(i));
+        }
+    }
+    return NULL;
 }
-*/
+
+ClipItem *CustomTrackView::getMainActiveClip() const {
+    QList<QGraphicsItem *> clips = scene()->selectedItems();
+    if (clips.isEmpty()) {
+        return getClipUnderCursor();
+    } else {
+        ClipItem *item = NULL;
+        for (int i = 0; i < clips.count(); ++i) {
+            if (clips.at(i)->type() == AVWIDGET)
+                item = static_cast < ClipItem *>(clips.at(i));
+            if (item->startPos().frames(m_document->fps()) <= m_cursorPos && item->endPos().frames(m_document->fps()) >= m_cursorPos) break;
+        }
+        if (item) return item;
+    }
+    return NULL;
+}
+
+ClipItem *CustomTrackView::getActiveClipUnderCursor() const {
+    QList<QGraphicsItem *> clips = scene()->selectedItems();
+    if (clips.isEmpty()) {
+        return getClipUnderCursor();
+    } else {
+        ClipItem *item;
+        for (int i = 0; i < clips.count(); ++i) {
+            if (clips.at(i)->type() == AVWIDGET)
+                item = static_cast < ClipItem *>(clips.at(i));
+            if (item->startPos().frames(m_document->fps()) <= m_cursorPos && item->endPos().frames(m_document->fps()) >= m_cursorPos) return item;
+        }
+    }
+    return NULL;
+}
+
+void CustomTrackView::setInPoint() {
+    ClipItem *clip = getActiveClipUnderCursor();
+    if (clip == NULL) {
+        emit displayMessage(i18n("You must select one clip for this action"), ErrorMessage);
+        return;
+    }
+    ItemInfo startInfo = clip->info();
+    ItemInfo endInfo = clip->info();
+    endInfo.startPos = GenTime(m_cursorPos, m_document->fps());
+    ResizeClipCommand *command = new ResizeClipCommand(this, startInfo, endInfo, true);
+    m_commandStack->push(command);
+}
+
+void CustomTrackView::setOutPoint() {
+    ClipItem *clip = getActiveClipUnderCursor();
+    if (clip == NULL) {
+        emit displayMessage(i18n("You must select one clip for this action"), ErrorMessage);
+        return;
+    }
+    ItemInfo startInfo = clip->info();
+    ItemInfo endInfo = clip->info();
+    endInfo.endPos = GenTime(m_cursorPos, m_document->fps());
+    ResizeClipCommand *command = new ResizeClipCommand(this, startInfo, endInfo, true);
+    m_commandStack->push(command);
+}
+
 #include "customtrackview.moc"
index 62de5b95cf2817f3b47bf5a9bc207e46f1f8768e..c56dc09a64b9b3559266a58078e4c28d0cefd342 100644 (file)
@@ -96,6 +96,8 @@ public:
     void changeClipSpeed();
     void doChangeClipSpeed(ItemInfo info, double speed, const QString &id);
     void setDocumentModified();
+    void setInPoint();
+    void setOutPoint();
 
 public slots:
     void setCursorPos(int pos, bool seek = true);
@@ -194,6 +196,9 @@ private:
     bool canBePastedTo(ItemInfo info, int type) const;
     bool canBePasted(QList<AbstractClipItem *> items, GenTime offset, int trackOffset) const;
     bool canBeMoved(QList<AbstractClipItem *> items, GenTime offset, int trackOffset) const;
+    ClipItem *getClipUnderCursor() const;
+    ClipItem *getMainActiveClip() const;
+    ClipItem *getActiveClipUnderCursor() const;
 
 private slots:
     void slotRefreshGuides();
index 221798d20e82bc3d6eb6b7201d0b7a0f02545258..a4abe4d4394d5cc2be620af076a30e870cdcd7bc 100644 (file)
@@ -1,6 +1,6 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <!DOCTYPE kpartgui SYSTEM "kpartgui.dtd">
-<gui name="kdenlive" version="21">
+<gui name="kdenlive" version="22">
   <ToolBar name="extraToolBar" >
     <text>Extra Toolbar</text>
        <Action name="project_render" />
     <Menu name="monitor" ><text>Monitor</text>
       <Action name="monitor_play" />
       <Separator />      
-      <Action name="seek_start" />
-      <Action name="monitor_seek_snap_backward" />
-      <Action name="seek_clip_start" />     
+      <Menu name="monitor_go" ><text>Go To</text>
+           <Action name="seek_start" />
+           <Action name="monitor_seek_snap_backward" />
+           <Action name="seek_clip_start" />     
+           <Action name="seek_clip_end" />
+           <Action name="monitor_seek_snap_forward" />
+           <Action name="seek_end" />
+      </Menu>
       <Action name="monitor_seek_backward" />
       <Action name="monitor_seek_backward-one-frame" />
       <Action name="monitor_seek_forward-one-frame" />
       <Action name="monitor_seek_forward" />
-      <Action name="seek_clip_end" />
-      <Action name="monitor_seek_snap_forward" />
-      <Action name="seek_end" />
+      <Separator />      
+      <Action name="mark_in" />
+      <Action name="mark_out" />
     </Menu>
     <Menu name="dockwindows" ><text>View</text>
     </Menu>
index 0abcd1160a5a88fa458f19b4a1ab916c8f44bada..67316c90a5a44fcf6626a89d708b3bc526885c26 100644 (file)
@@ -605,10 +605,23 @@ void MainWindow::setupActions() {
     connect(projectRender, SIGNAL(triggered(bool)), this, SLOT(slotRenderProject()));
 
     KAction* monitorPlay = new KAction(KIcon("media-playback-start"), i18n("Play"), this);
-    monitorPlay->setShortcut(Qt::Key_Space);
+    KShortcut playShortcut;
+    playShortcut.setPrimary(Qt::Key_Space);
+    playShortcut.setAlternate(Qt::Key_K);
+    monitorPlay->setShortcut(playShortcut);
     actionCollection()->addAction("monitor_play", monitorPlay);
     connect(monitorPlay, SIGNAL(triggered(bool)), m_monitorManager, SLOT(slotPlay()));
 
+    KAction *markIn = actionCollection()->addAction("mark_in");
+    markIn->setText(i18n("Set in point"));
+    markIn->setShortcut(Qt::Key_I);
+    connect(markIn, SIGNAL(triggered(bool)), this, SLOT(slotSetInPoint()));
+
+    KAction *markOut = actionCollection()->addAction("mark_out");
+    markOut->setText(i18n("Set in point"));
+    markOut->setShortcut(Qt::Key_O);
+    connect(markOut, SIGNAL(triggered(bool)), this, SLOT(slotSetOutPoint()));
+
     KAction* monitorSeekBackward = new KAction(KIcon("media-seek-backward"), i18n("Rewind"), this);
     monitorSeekBackward->setShortcut(Qt::Key_J);
     actionCollection()->addAction("monitor_seek_backward", monitorSeekBackward);
@@ -1444,28 +1457,28 @@ void MainWindow::slotActivateTransitionView() {
 }
 
 void MainWindow::slotSnapRewind() {
-    if (m_monitorManager->projectMonitorFocused()) {
+    if (m_projectMonitor->isActive()) {
         if (m_activeTimeline)
             m_activeTimeline->projectView()->slotSeekToPreviousSnap();
     }
 }
 
 void MainWindow::slotSnapForward() {
-    if (m_monitorManager->projectMonitorFocused()) {
+    if (m_projectMonitor->isActive()) {
         if (m_activeTimeline)
             m_activeTimeline->projectView()->slotSeekToNextSnap();
     }
 }
 
 void MainWindow::slotClipStart() {
-    if (m_monitorManager->projectMonitorFocused()) {
+    if (m_projectMonitor->isActive()) {
         if (m_activeTimeline)
             m_activeTimeline->projectView()->clipStart();
     }
 }
 
 void MainWindow::slotClipEnd() {
-    if (m_monitorManager->projectMonitorFocused()) {
+    if (m_projectMonitor->isActive()) {
         if (m_activeTimeline)
             m_activeTimeline->projectView()->clipEnd();
     }
@@ -1607,4 +1620,16 @@ void MainWindow::slotSaveZone(Render *render, QPoint zone) {
 
 }
 
+void MainWindow::slotSetInPoint() {
+    if (m_clipMonitor->isActive()) {
+        m_clipMonitor->slotSetZoneStart();
+    } else m_activeTimeline->projectView()->setInPoint();
+}
+
+void MainWindow::slotSetOutPoint() {
+    if (m_clipMonitor->isActive()) {
+        m_clipMonitor->slotSetZoneEnd();
+    } else m_activeTimeline->projectView()->setOutPoint();
+}
+
 #include "mainwindow.moc"
index 568fa1042426209e020b0d298ebc45e9d90d495d..dc10b89b6148d05204d1b77ed1de77f6d99c92a1 100644 (file)
@@ -240,6 +240,9 @@ private slots:
     void slotAdjustClipMonitor();
     void slotAdjustProjectMonitor();
     void slotSaveZone(Render *render, QPoint zone);
+
+    void slotSetInPoint();
+    void slotSetOutPoint();
 };
 
 
index e8c40e2c912c486ecf84646e23a5942e4a6edb70..ef6426f50a52825a96909105615e832041e46b63 100644 (file)
@@ -316,6 +316,10 @@ void Monitor::slotExtractCurrentFrame() {
     if (!outputFile.isEmpty()) frame.save(outputFile);
 }
 
+bool Monitor::isActive() const {
+    return m_isActive;
+}
+
 void Monitor::activateMonitor() {
     if (!m_isActive) m_monitorManager->activateMonitor(m_name);
 }
index 17e097a9aca8d05206e985327acf3ce90c3e72bc..e43aefa9ac2787dfbcca8928f9b2e396a294ab4c 100644 (file)
@@ -39,6 +39,7 @@ public:
     MonitorRefresh(QWidget* parent);
     virtual void paintEvent(QPaintEvent * event);
     void setRenderer(Render* render);
+
 private:
     Render *m_renderer;
 };
@@ -52,6 +53,7 @@ public:
     void resetProfile();
     QString name() const;
     void resetSize();
+    bool isActive() const;
 
 protected:
     virtual void mousePressEvent(QMouseEvent * event);
@@ -92,8 +94,6 @@ private slots:
     void slotSetThumbFrame();
     void slotSetSizeOneToOne();
     void slotSetSizeOneToTwo();
-    void slotSetZoneStart();
-    void slotSetZoneEnd();
     void slotSaveZone();
 
 public slots:
@@ -115,6 +115,8 @@ public slots:
     void saveSceneList(QString path, QDomElement info = QDomElement());
     void slotStart();
     void slotEnd();
+    void slotSetZoneStart();
+    void slotSetZoneEnd();
     void slotZoneStart();
     void slotZoneEnd();
     void slotZoneMoved(int start, int end);
index cdf800253c8786622a12190393069b894938f403..ed94e58d8457e1ad55818d2ee725318e84a2bd01 100644 (file)
@@ -37,11 +37,6 @@ void MonitorManager::initMonitors(Monitor *clipMonitor, Monitor *projectMonitor)
     m_projectMonitor = projectMonitor;
 }
 
-bool MonitorManager::projectMonitorFocused() {
-    if (m_activeMonitor != "clip") return true;
-    return false;
-}
-
 void MonitorManager::activateMonitor(QString name) {
     if (m_activeMonitor == name) return;
     if (name == "clip") {
index a1cd3b28c6add314ac538aa7f1e8763cc0c1f510..6d9a9a7b60a6602e143891445af4a400e93730a9 100644 (file)
@@ -34,7 +34,6 @@ public:
     void initMonitors(Monitor *clipMonitor, Monitor *projectMonitor);
     Timecode timecode();
     void switchMonitors();
-    bool projectMonitorFocused();
     void resetProfiles(Timecode tc);
 
 public slots: