]> git.sesse.net Git - kdenlive/commitdiff
on monitor corners item: make additional control optional
authorTill Theato <root@ttill.de>
Fri, 7 Jan 2011 15:21:28 +0000 (15:21 +0000)
committerTill Theato <root@ttill.de>
Fri, 7 Jan 2011 15:21:28 +0000 (15:21 +0000)
svn path=/trunk/kdenlive/; revision=5292

src/cornerswidget.cpp
src/cornerswidget.h
src/kdenlivesettings.kcfg
src/onmonitoritems/onmonitorcornersitem.cpp

index 14c43353ef2b1d2c837763d4fc4901d21324c273..380c9b7b5686c71157ba17ebd6c98255d69ae52c 100644 (file)
@@ -56,12 +56,20 @@ CornersWidget::CornersWidget(Monitor* monitor, int clipPos, bool isEffect, int f
     layout2->addWidget(m_config->getShowHideButton());
 
     QToolButton *buttonShowLines = new QToolButton(m_config);
-    // TODO: Better Icon
+    // TODO: Better Icons
     buttonShowLines->setIcon(KIcon("insert-horizontal-rule"));
     buttonShowLines->setToolTip(i18n("Show/Hide the lines connecting the corners"));
     buttonShowLines->setCheckable(true);
+    buttonShowLines->setChecked(KdenliveSettings::onmonitoreffects_cornersshowlines());
     connect(buttonShowLines, SIGNAL(toggled(bool)), this, SLOT(slotShowLines(bool)));
     m_config->addWidget(buttonShowLines, 0, 2);
+    QToolButton *buttonShowControls = new QToolButton(m_config);
+    buttonShowControls->setIcon(KIcon("transform-move"));
+    buttonShowControls->setToolTip(i18n("Show additional controls"));
+    buttonShowControls->setCheckable(true);
+    buttonShowControls->setChecked(KdenliveSettings::onmonitoreffects_cornersshowcontrols());
+    connect(buttonShowControls, SIGNAL(toggled(bool)), this, SLOT(slotShowControls(bool)));
+    m_config->addWidget(buttonShowControls, 0, 3);
 
     int width = m_monitor->render->frameRenderWidth();
     int height = m_monitor->render->renderHeight();
@@ -218,6 +226,12 @@ void CornersWidget::slotShowLines(bool show)
     m_item->update();
 }
 
+void CornersWidget::slotShowControls(bool show)
+{
+    KdenliveSettings::setOnmonitoreffects_cornersshowcontrols(show);
+    m_item->update();
+}
+
 void CornersWidget::slotResetCorner1()
 {
     blockSignals(true);
index de322943bb7de585e18a27c2833c096daed11921..234fe8dad82092e5c86e4b309f00aa3c92bffde5 100644 (file)
@@ -89,6 +89,8 @@ private slots:
     /** @brief Shows/Hides the lines connecting the corners in the on-monitor item according to @param show. */
     void slotShowLines(bool show = true);
 
+    void slotShowControls(bool show = true);
+
     /*
      * These functions reset the positions of the corners.
      * The default values in the effect XML file are not considered, but
index 2f4f5d3828af7dc25fcb33b94d7a1355905951bc..648e8f1282a6ec2bdbd666b25d144471efd81185 100644 (file)
       <label>Connect the corners in the widget for the c0rners effect with lines.</label>
       <default>false</default>
     </entry>
+
+    <entry name="onmonitoreffects_cornersshowcontrols" type="Bool">
+      <label>Show additional controls in the c0rners on-monitor widget.</label>
+      <default>false</default>
+    </entry>
     
     <entry name="projectloading_avformatnovalidate" type="Bool">
       <label>Do not validate the video files when loading a project for the sake of speed.</label>
index 0a6efa2d5dfe5583dfc13b6663a356c382aecb16..2ad761c35d4d6c600b144e0bdf9c346ef38103c4 100644 (file)
@@ -27,7 +27,6 @@
 #include <QStyleOptionGraphicsItem>
 #include <QCursor>
 
-#include <KDebug>
 OnMonitorCornersItem::OnMonitorCornersItem(MonitorScene* scene, QGraphicsItem* parent) :
         AbstractOnMonitorItem(scene),
         QGraphicsPolygonItem(parent)
@@ -53,7 +52,7 @@ OnMonitorCornersItem::cornersActions OnMonitorCornersItem::getMode(QPointF pos)
         return Corner3;
     else if (mouseArea.contains(polygon().at(3)))
         return Corner4;
-    else if (mouseArea.contains(getCentroid()))
+    else if (KdenliveSettings::onmonitoreffects_cornersshowcontrols() && mouseArea.contains(getCentroid()))
         return Move;
     else
         return NoAction;
@@ -118,6 +117,9 @@ void OnMonitorCornersItem::slotMouseMoved(QGraphicsSceneMouseEvent* event)
         case NoAction:
             emit requestCursor(QCursor(Qt::ArrowCursor));
             break;
+        case Move:
+            emit requestCursor(QCursor(Qt::SizeAllCursor));
+            break;
         default:
             emit requestCursor(QCursor(Qt::OpenHandCursor));
             break;
@@ -144,8 +146,7 @@ void OnMonitorCornersItem::paint(QPainter* painter, const QStyleOptionGraphicsIt
     painter->drawEllipse(polygon().at(2), handleSize, handleSize);
     painter->drawEllipse(polygon().at(3), handleSize, handleSize);
 
-    // TODO: allow to disable
-    if (1) {
+    if (KdenliveSettings::onmonitoreffects_cornersshowcontrols()) {
         painter->setPen(QPen(Qt::red, 2, Qt::SolidLine));
         QPointF c = getCentroid();
         handleSize *= 1.5;
@@ -221,6 +222,7 @@ QList <QPointF> OnMonitorCornersItem::sortedClockwise()
             std::swap(a, c);
         }
     }
+    return points;
 }
 
 #include "onmonitorcornersitem.moc"