[prev in list] [next in list] [prev in thread] [next in thread]
List: kde-commits
Subject: [kdenlive/refactoring_timeline] src: Make title widget guides configurable
From: Jean-Baptiste Mardelle <null () kde ! org>
Date: 2018-09-28 15:42:05
Message-ID: E1g5uu5-0005HD-1R () code ! kde ! org
[Download RAW message or body]
Git commit 17b54bae1d7519d1400c1e37ba5e47274ac9e90e by Jean-Baptiste Mardelle.
Committed on 28/09/2018 at 15:41.
Pushed by mardelle into branch 'refactoring_timeline'.
Make title widget guides configurable
M +8 -0 src/kdenlivesettings.kcfg
M +50 -41 src/titler/titlewidget.cpp
M +2 -0 src/titler/titlewidget.h
M +64 -3 src/ui/titlewidget_ui.ui
https://commits.kde.org/kdenlive/17b54bae1d7519d1400c1e37ba5e47274ac9e90e
diff --git a/src/kdenlivesettings.kcfg b/src/kdenlivesettings.kcfg
index cac34ff37..1f6dce5eb 100644
--- a/src/kdenlivesettings.kcfg
+++ b/src/kdenlivesettings.kcfg
@@ -985,5 +985,13 @@
<label>Show guides in titler.</label>
<default>false</default>
</entry>
+ <entry name="titlerHGuides" type="Int">
+ <label>Number of horizontal guides in titler.</label>
+ <default>2</default>
+ </entry>
+ <entry name="titlerVGuides" type="Int">
+ <label>Number of vertical guides in titler.</label>
+ <default>3</default>
+ </entry>
</group>
</kcfg>
diff --git a/src/titler/titlewidget.cpp b/src/titler/titlewidget.cpp
index 7b893e1b9..a781ce9fa 100644
--- a/src/titler/titlewidget.cpp
+++ b/src/titler/titlewidget.cpp
@@ -45,7 +45,7 @@
#include <QTimer>
#include <QToolBar>
#include <QButtonGroup>
-
+#include <QSpinBox>
#include <QGraphicsBlurEffect>
#include <QGraphicsDropShadowEffect>
#include <QGraphicsEffect>
@@ -456,48 +456,14 @@ TitleWidget::TitleWidget(const QUrl &url, const Timecode &tc, \
const QString &pro m_frameBorder->setData(-1, -1);
graphicsView->scene()->addItem(m_frameBorder);
- QGraphicsLineItem *line1 = new QGraphicsLineItem(0, m_frameHeight / 3, \
m_frameWidth, m_frameHeight / 3, m_frameBorder);
- line1->setPen(framepen);
- line1->setFlags(nullptr);
- line1->setData(-1, -1);
- m_guides << line1;
- QGraphicsLineItem *line2 = new QGraphicsLineItem(0, 2 *m_frameHeight / 3, \
m_frameWidth, 2 * m_frameHeight / 3, m_frameBorder);
- line2->setPen(framepen);
- line2->setFlags(nullptr);
- line2->setData(-1, -1);
- m_guides << line2;
- QGraphicsLineItem *line3 = new QGraphicsLineItem(m_frameWidth / 4, 0, \
m_frameWidth / 4, m_frameHeight, m_frameBorder);
- line3->setPen(framepen);
- line3->setFlags(nullptr);
- line3->setData(-1, -1);
- m_guides << line3;
- QGraphicsLineItem *line4 = new QGraphicsLineItem(m_frameWidth / 2, 0, \
m_frameWidth / 2, m_frameHeight, m_frameBorder);
- line4->setPen(framepen);
- line4->setFlags(nullptr);
- line4->setData(-1, -1);
- m_guides << line4;
- QGraphicsLineItem *line5 = new QGraphicsLineItem(3 * m_frameWidth / 4, 0, 3 * \
m_frameWidth / 4, m_frameHeight, m_frameBorder);
- line5->setPen(framepen);
- line5->setFlags(nullptr);
- line5->setData(-1, -1);
- m_guides << line5;
-
- framepen.setColor(QColor(255, 0, 0, 160));
-
- QGraphicsLineItem *line6 = new QGraphicsLineItem(0, 0, m_frameWidth, \
m_frameHeight, m_frameBorder);
- line6->setPen(framepen);
- line6->setFlags(nullptr);
- line6->setData(-1, -1);
- m_guides << line6;
-
- QGraphicsLineItem *line7 = new QGraphicsLineItem(m_frameWidth, 0, 0, \
m_frameHeight, m_frameBorder);
- line7->setPen(framepen);
- line7->setFlags(nullptr);
- line7->setData(-1, -1);
- m_guides << line7;
-
+ // Guides
connect(show_guides, &QCheckBox::stateChanged, this, &TitleWidget::showGuides);
show_guides->setChecked(KdenliveSettings::titlerShowGuides());
+ hguides->setValue(KdenliveSettings::titlerHGuides());
+ vguides->setValue(KdenliveSettings::titlerVGuides());
+ connect(hguides, static_cast<void (QSpinBox::*)(int)>(&QSpinBox::valueChanged), \
this, &TitleWidget::updateGuides); + connect(vguides, static_cast<void \
(QSpinBox::*)(int)>(&QSpinBox::valueChanged), this, &TitleWidget::updateGuides); + \
updateGuides(0); showGuides(show_guides->checkState());
// semi transparent safe zones
@@ -3023,3 +2989,46 @@ void TitleWidget::showGuides(int state)
}
KdenliveSettings::setTitlerShowGuides(state == Qt::Checked);
}
+
+void TitleWidget::updateGuides(int)
+{
+ KdenliveSettings::setTitlerHGuides(hguides->value());
+ KdenliveSettings::setTitlerVGuides(vguides->value());
+ qDeleteAll(m_guides);
+ m_guides.clear();
+ QPen framepen;
+ framepen.setColor(Qt::red);
+
+ // Guides
+ // Horizontal guides
+ int max = hguides->value();
+ for (int i = 0; i < max; i++) {
+ QGraphicsLineItem *line1 = new QGraphicsLineItem(0, (i + 1) * m_frameHeight \
/ (max + 1), m_frameWidth, (i + 1) * m_frameHeight / (max + 1), m_frameBorder); + \
line1->setPen(framepen); + line1->setFlags(nullptr);
+ line1->setData(-1, -1);
+ m_guides << line1;
+ }
+ max = vguides->value();
+ for (int i = 0; i < max; i++) {
+ QGraphicsLineItem *line1 = new QGraphicsLineItem((i + 1) * m_frameWidth / \
(max + 1), 0, (i + 1) * m_frameWidth / (max + 1), m_frameHeight, m_frameBorder); + \
line1->setPen(framepen); + line1->setFlags(nullptr);
+ line1->setData(-1, -1);
+ m_guides << line1;
+ }
+
+ framepen.setColor(QColor(255, 0, 0, 160));
+
+ QGraphicsLineItem *line6 = new QGraphicsLineItem(0, 0, m_frameWidth, \
m_frameHeight, m_frameBorder); + line6->setPen(framepen);
+ line6->setFlags(nullptr);
+ line6->setData(-1, -1);
+ m_guides << line6;
+
+ QGraphicsLineItem *line7 = new QGraphicsLineItem(m_frameWidth, 0, 0, \
m_frameHeight, m_frameBorder); + line7->setPen(framepen);
+ line7->setFlags(nullptr);
+ line7->setData(-1, -1);
+ m_guides << line7;
+}
diff --git a/src/titler/titlewidget.h b/src/titler/titlewidget.h
index cf5c77114..fd69d550f 100644
--- a/src/titler/titlewidget.h
+++ b/src/titler/titlewidget.h
@@ -341,6 +341,8 @@ private slots:
void slotResize200();
/** @brief Show hide guides */
void showGuides(int state);
+ /** @brief Build guides */
+ void updateGuides(int);
/** @brief Called when accepted, stores user selections for next time use.
* @ref writeChoices */
diff --git a/src/ui/titlewidget_ui.ui b/src/ui/titlewidget_ui.ui
index 7cdd9ce4d..d5c36d7d0 100644
--- a/src/ui/titlewidget_ui.ui
+++ b/src/ui/titlewidget_ui.ui
@@ -6,7 +6,7 @@
<rect>
<x>0</x>
<y>0</y>
- <width>1418</width>
+ <width>1281</width>
<height>1306</height>
</rect>
</property>
@@ -354,7 +354,7 @@
</property>
</widget>
</item>
- <item row="2" column="7">
+ <item row="2" column="9">
<spacer name="spacerBottomStack">
<property name="orientation">
<enum>Qt::Horizontal</enum>
@@ -367,7 +367,7 @@
</property>
</spacer>
</item>
- <item row="0" column="0" colspan="8">
+ <item row="0" column="0" colspan="10">
<widget class="QGraphicsView" name="graphicsView">
<property name="sizePolicy">
<sizepolicy hsizetype="MinimumExpanding" vsizetype="MinimumExpanding">
@@ -424,6 +424,35 @@
</property>
</widget>
</item>
+ <item row="2" column="7">
+ <widget class="QSpinBox" name="vguides">
+ <property name="enabled">
+ <bool>false</bool>
+ </property>
+ <property name="toolTip">
+ <string>Vertical guides</string>
+ </property>
+ <property name="maximum">
+ <number>99</number>
+ </property>
+ <property name="value">
+ <number>3</number>
+ </property>
+ </widget>
+ </item>
+ <item row="2" column="8">
+ <widget class="QSpinBox" name="hguides">
+ <property name="enabled">
+ <bool>false</bool>
+ </property>
+ <property name="toolTip">
+ <string>Horizontal guides</string>
+ </property>
+ <property name="value">
+ <number>2</number>
+ </property>
+ </widget>
+ </item>
</layout>
</widget>
<widget class="QWidget" name="layoutWidget">
@@ -1496,5 +1525,37 @@
</hint>
</hints>
</connection>
+ <connection>
+ <sender>show_guides</sender>
+ <signal>toggled(bool)</signal>
+ <receiver>hguides</receiver>
+ <slot>setEnabled(bool)</slot>
+ <hints>
+ <hint type="sourcelabel">
+ <x>488</x>
+ <y>1211</y>
+ </hint>
+ <hint type="destinationlabel">
+ <x>813</x>
+ <y>1211</y>
+ </hint>
+ </hints>
+ </connection>
+ <connection>
+ <sender>show_guides</sender>
+ <signal>toggled(bool)</signal>
+ <receiver>vguides</receiver>
+ <slot>setEnabled(bool)</slot>
+ <hints>
+ <hint type="sourcelabel">
+ <x>504</x>
+ <y>1211</y>
+ </hint>
+ <hint type="destinationlabel">
+ <x>640</x>
+ <y>1211</y>
+ </hint>
+ </hints>
+ </connection>
</connections>
</ui>
[prev in list] [next in list] [prev in thread] [next in thread]
Configure |
About |
News |
Add a list |
Sponsored by KoreLogic