]> git.sesse.net Git - kdenlive/commitdiff
* Delete transition from context menu
authorJean-Baptiste Mardelle <jb@kdenlive.org>
Tue, 20 May 2008 20:55:18 +0000 (20:55 +0000)
committerJean-Baptiste Mardelle <jb@kdenlive.org>
Tue, 20 May 2008 20:55:18 +0000 (20:55 +0000)
* Try styling status bar buttons & slider

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

src/addtransitioncommand.cpp
src/addtransitioncommand.h
src/clipitem.cpp
src/customtrackview.cpp
src/customtrackview.h
src/mainwindow.cpp
src/projectlist.h

index e1293f762b98095a7bdeaf32c463201b0fcbadde..6650bb4a0dd3245e415982637be46b5bdfa1f35a 100644 (file)
 #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;
 }
 
index 6eee811f33b01a130a0162403db098e2096e770f..75af055916cc03c73bf6ab500aeb9db5bec23e3e 100644 (file)
@@ -31,7 +31,7 @@ class CustomTrackView;
 
 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();
 
@@ -41,6 +41,7 @@ private:
     QDomElement m_params;
     int m_track;
     bool m_doIt;
+    bool m_remove;
 };
 
 #endif
index c94329886b3b14042e825876246580c88698acfd..d6d5ee7dc9eb552c9121b0f184b62520a42e18c8 100644 (file)
@@ -257,37 +257,38 @@ void ClipItem::paint(QPainter *painter,
 
     }
 
-    // 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);
@@ -308,21 +309,23 @@ void ClipItem::paint(QPainter *painter,
         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 + " ");
index e95e8fd13512c32b95c9418ae8db9f1c05f0f54c..0ef3105e2ff20151322f539f0918071d07e13389 100644 (file)
@@ -461,7 +461,7 @@ void CustomTrackView::mousePressEvent(QMouseEvent * event) {
             } 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;
         }
     }
@@ -469,8 +469,10 @@ void CustomTrackView::mousePressEvent(QMouseEvent * event) {
     //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() {
@@ -615,7 +617,7 @@ void CustomTrackView::cutClip(ItemInfo info, GenTime cutTime, bool cut) {
 }
 
 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);
 }
@@ -882,14 +884,24 @@ void CustomTrackView::deleteClip(ItemInfo info) {
 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);
+            }
         }
     }
 }
index fec0f391f145e190e6ab9cd09cc8fff0bb297aef..2322faa89397c0fb62d658049e29ac9c3c08fecb 100644 (file)
@@ -134,7 +134,7 @@ private:
     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;
index a5319ac44f01a7b2a2a37f1119da899d24465d3a..6c6338e4994ee75cac7384e91fd0f2794e3597ce 100644 (file)
@@ -222,6 +222,8 @@ MainWindow::MainWindow(QWidget *parent)
     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()));
@@ -358,10 +360,12 @@ void MainWindow::setupActions() {
     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);
@@ -373,6 +377,7 @@ void MainWindow::setupActions() {
     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();
@@ -382,9 +387,20 @@ void MainWindow::setupActions() {
 
     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"));
@@ -461,7 +477,7 @@ void MainWindow::setupActions() {
     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()));
index 1c03bc62ff727fcfa0991717df509586d1495adf..a704fe3815928f3daf916915757a130406a5d274 100644 (file)
@@ -73,7 +73,7 @@ public:
                 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));