]> git.sesse.net Git - kdenlive/commitdiff
Applied patch by Till Theato:Position text centered relative to cursor when adding...
authorSimon A. Eugster <simon.eu@gmail.com>
Sun, 3 Jan 2010 12:16:10 +0000 (12:16 +0000)
committerSimon A. Eugster <simon.eu@gmail.com>
Sun, 3 Jan 2010 12:16:10 +0000 (12:16 +0000)
svn path=/trunk/kdenlive/; revision=4194

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

index 6df26d742c9800fd6d1271fea5fe1e07e0f3e9aa..97929201a9012ad894854350af508b7c6ddd54af 100644 (file)
@@ -42,6 +42,7 @@ GraphicsSceneRectMove::GraphicsSceneRectMove(QObject *parent) :
     //grabMouse();
     m_zoom = 1.0;
     setBackgroundBrush(QBrush(Qt::transparent));
+    m_fontSize = 0;
 }
 
 void GraphicsSceneRectMove::setSelectedItem(QGraphicsItem *item)
@@ -248,7 +249,7 @@ void GraphicsSceneRectMove::mousePressEvent(QGraphicsSceneMouseEvent* e)
         emit newText((QGraphicsTextItem *) m_selectedItem);
         m_selectedItem->setFlags(QGraphicsItem::ItemIsMovable | QGraphicsItem::ItemIsSelectable);
         ((QGraphicsTextItem *)m_selectedItem)->setTextInteractionFlags(Qt::TextEditorInteraction);
-        m_selectedItem->setPos(e->scenePos());
+        m_selectedItem->setPos(e->scenePos() - QPointF(0, (int)(m_fontSize/2)));
         QGraphicsScene::mousePressEvent(e);
     }
 
@@ -562,3 +563,10 @@ void GraphicsSceneRectMove::setResizeCursor(qreal angle)
     else if (angle > 112.5 && angle <= 157.5)
         setCursor(Qt::SizeBDiagCursor);
 }
+
+void GraphicsSceneRectMove::slotUpdateFontSize(int s)
+{
+       m_fontSize = s;
+}
+
+#include "graphicsscenerectmove.moc"
index 57970f39b51fbfd8322444711e4f826a497a1d89..0cc17d8de5dabd1110d8d1e87afe18f289e0572a 100644 (file)
@@ -39,6 +39,9 @@ public:
     TITLETOOL tool();
     void clearTextSelection();
 
+public slots:
+       void slotUpdateFontSize(int s);
+
 protected:
     virtual void keyPressEvent(QKeyEvent * keyEvent);
     virtual void mousePressEvent(QGraphicsSceneMouseEvent*);
@@ -56,6 +59,7 @@ private:
     QPointF m_sceneClickPoint;
     TITLETOOL m_tool;
     QPoint m_clickPoint;
+    int m_fontSize;
 
 signals:
     void itemMoved();
index a9560b75cc3a0c4f0bc9488ee3e83088bb2340b6..ce337e796d1c36aa64a1187714161c4b149200fc 100644 (file)
@@ -295,6 +295,7 @@ TitleWidget::TitleWidget(KUrl url, Timecode tc, QString projectTitlePath, Render
     graphicsView->setScene(m_scene);
     m_titledocument.setScene(m_scene, m_frameWidth, m_frameHeight);
     connect(m_scene, SIGNAL(changed(QList<QRectF>)), this, SLOT(slotChanged()));
+    connect(font_size, SIGNAL(valueChanged(int)), m_scene, SLOT(slotUpdateFontSize(int)));
 
     // a gradient background
     /*QRadialGradient *gradient = new QRadialGradient(0, 0, 10);
@@ -795,6 +796,7 @@ void TitleWidget::selectionChanged()
             QFont font = i->font();
             font_family->setCurrentFont(font);
             font_size->setValue(font.pixelSize());
+            m_scene->slotUpdateFontSize(font.pixelSize());
             buttonItalic->setChecked(font.italic());
             buttonUnder->setChecked(font.underline());
             setFontBoxWeight(font.weight());
@@ -1643,6 +1645,7 @@ void TitleWidget::readChoices()
     // read the entries
     font_family->setCurrentFont(titleConfig.readEntry("font_family", font_family->currentFont()));
     font_size->setValue(titleConfig.readEntry("font_pixel_size", font_size->value()));
+    m_scene->slotUpdateFontSize(font_size->value());
     fontColorButton->setColor(titleConfig.readEntry("font_color", fontColorButton->color()));
     textAlpha->setValue(titleConfig.readEntry("font_alpha", textAlpha->value()));
     int weight;