]> git.sesse.net Git - kdenlive/commitdiff
Add info text to the titler animation viewports
authorJean-Baptiste Mardelle <jb@kdenlive.org>
Sat, 3 Oct 2009 22:06:29 +0000 (22:06 +0000)
committerJean-Baptiste Mardelle <jb@kdenlive.org>
Sat, 3 Oct 2009 22:06:29 +0000 (22:06 +0000)
svn path=/trunk/kdenlive/; revision=3992

src/graphicsscenerectmove.cpp
src/titlewidget.cpp
src/titlewidget.h

index dd233457f0e2b03767cf4235749415956628763a..6df26d742c9800fd6d1271fea5fe1e07e0f3e9aa 100644 (file)
@@ -511,8 +511,7 @@ void GraphicsSceneRectMove::wheelEvent(QGraphicsSceneWheelEvent * wheelEvent)
             if (wheelEvent->delta() > 0) emit sceneZoom(true);
             else emit sceneZoom(false);
         }
-    }
-    else wheelEvent->setAccepted(false);
+    } else wheelEvent->setAccepted(false);
 }
 
 void GraphicsSceneRectMove::setScale(double s)
index 1b0f79e3777503f57af2335ec833f5796ba327e4..5cb56afee7f60c104f76323738b1e28bc0ae0ba4 100644 (file)
@@ -58,7 +58,6 @@ TitleWidget::TitleWidget(KUrl url, Timecode tc, QString projectTitlePath, Render
 {
     setupUi(this);
     setFont(KGlobalSettings::toolBarFont());
-    //toolBox->setFont(KGlobalSettings::toolBarFont());
     frame_properties->setEnabled(false);
     rect_properties->setFixedHeight(frame_properties->height() + 4);
     no_properties->setFixedHeight(frame_properties->height() + 4);
@@ -699,6 +698,7 @@ void TitleWidget::selectionChanged()
         } else {
             itemzoom->setEnabled(false);
             itemrotate->setEnabled(false);
+            updateInfoText();
         }
         if (l.at(0)->type() == TEXTITEM) {
             showToolbars(TITLE_TEXT);
@@ -1626,10 +1626,12 @@ void TitleWidget::slotAnimStart(bool anim)
         m_startViewport->setSelected(true);
         selectionChanged();
         slotSelectTool();
+        if (m_startViewport->childItems().isEmpty()) addAnimInfoText();
     } else {
         m_startViewport->setZValue(-1000);
         m_startViewport->setBrush(QBrush());
         m_startViewport->setFlags(0);
+        if (!anim_end->isChecked()) deleteAnimInfoText();
     }
 
 }
@@ -1664,13 +1666,70 @@ void TitleWidget::slotAnimEnd(bool anim)
         m_endViewport->setSelected(true);
         selectionChanged();
         slotSelectTool();
+        if (m_endViewport->childItems().isEmpty()) addAnimInfoText();
     } else {
         m_endViewport->setZValue(-1000);
         m_endViewport->setBrush(QBrush());
         m_endViewport->setFlags(0);
+        if (!anim_start->isChecked()) deleteAnimInfoText();
     }
 }
 
+void TitleWidget::addAnimInfoText()
+{
+    // add text to anim viewport
+    QGraphicsTextItem *t = new QGraphicsTextItem(i18n("Start"), m_startViewport);
+    QGraphicsTextItem *t2 = new QGraphicsTextItem(i18n("End"), m_endViewport);
+    QFont font = t->font();
+    font.setPixelSize(m_startViewport->rect().width() / 10);
+    QColor col = m_startViewport->pen().color();
+    col.setAlpha(255);
+    t->setDefaultTextColor(col);
+    t->setFont(font);
+    font.setPixelSize(m_endViewport->rect().width() / 10);
+    col = m_endViewport->pen().color();
+    col.setAlpha(255);
+    t2->setDefaultTextColor(col);
+    t2->setFont(font);
+}
+
+void TitleWidget::updateInfoText()
+{
+    // update info text font
+    if (!m_startViewport->childItems().isEmpty()) {
+        QGraphicsTextItem *item = static_cast <QGraphicsTextItem *>(m_startViewport->childItems().at(0));
+        if (item) {
+            QFont font = item->font();
+            font.setPixelSize(m_startViewport->rect().width() / 10);
+            item->setFont(font);
+        }
+    }
+    if (!m_endViewport->childItems().isEmpty()) {
+        QGraphicsTextItem *item = static_cast <QGraphicsTextItem *>(m_endViewport->childItems().at(0));
+        if (item) {
+            QFont font = item->font();
+            font.setPixelSize(m_endViewport->rect().width() / 10);
+            item->setFont(font);
+        }
+    }
+}
+
+void TitleWidget::deleteAnimInfoText()
+{
+    // end animation editing, remove info text
+    while (!m_startViewport->childItems().isEmpty()) {
+        QGraphicsItem *item = m_startViewport->childItems().at(0);
+        m_scene->removeItem(item);
+        delete item;
+    }
+    while (!m_endViewport->childItems().isEmpty()) {
+        QGraphicsItem *item = m_endViewport->childItems().at(0);
+        m_scene->removeItem(item);
+        delete item;
+    }
+}
+
+
 void TitleWidget::slotKeepAspect(bool keep)
 {
     if (m_endViewport->zValue() == 1100) {
index d09c8c2e539777dc7e295e6aff59f859638314a4..b6dec5ae257e29ce05568f6faed47f749f875361 100644 (file)
@@ -78,8 +78,13 @@ protected:
     virtual void resizeEvent(QResizeEvent * event);
 
 private:
-    QGraphicsRectItem *m_startViewport, *m_endViewport;
+    /** \brief Rectangle describing animation start viewport */
+    QGraphicsRectItem *m_startViewport;
+    /** \brief Rectangle describing animation end viewport */
+    QGraphicsRectItem *m_endViewport;
+    /** \brief Scene for the titler */
     GraphicsSceneRectMove *m_scene;
+    /** \brief Initialize the animation properties (viewport size,...) */
     void initAnimation();
     QMap<QGraphicsItem*, Transform > m_transformations;
     TitleDocument m_titledocument;
@@ -140,6 +145,12 @@ private:
     void checkButton(TITLETOOL toolType);
 
     void adjustFrameSize();
+    /** \brief Add a "start" and "end" info text to the animation viewports */
+    void addAnimInfoText();
+    /** \brief Update font for the "start" and "end" info text */
+    void updateInfoText();
+    /** \brief Remove the "start" and "end" info text from animation viewports */
+    void deleteAnimInfoText();
 
 public slots:
     void slotNewText(QGraphicsTextItem *tt);