void GraphicsSceneRectMove::keyPressEvent(QKeyEvent * keyEvent)
{
- if (m_selectedItem == NULL) {
+ if (m_selectedItem == NULL || !(m_selectedItem->flags() & QGraphicsItem::ItemIsMovable)) {
QGraphicsScene::keyPressEvent(keyEvent);
return;
}
break;
}
}
- if (item == NULL) {
+ if (item == NULL || !(item->flags() & QGraphicsItem::ItemIsSelectable)) {
if (m_selectedItem && m_selectedItem->type() == 8) {
// disable text editing
QGraphicsTextItem *t = static_cast<QGraphicsTextItem *>(m_selectedItem);
}
}
}
- if (item != NULL) {
+ if (item != NULL && item->flags() & QGraphicsItem::ItemIsMovable) {
m_sceneClickPoint = e->scenePos();
m_selectedItem = item;
kDebug() << "///////// ITEM TYPE: " << item->type();
int height = 50;
int width = (int)(height * m_render->dar());
if (clip->clipType() == AUDIO) pix = KIcon("audio-x-generic").pixmap(QSize(width, height));
- else if (clip->clipType() == TEXT || clip->clipType() == IMAGE) pix = KThumb::getFrame(item->referencedClip()->producer(), 0, width, height);
+ else if (clip->clipType() == IMAGE) pix = KThumb::getFrame(item->referencedClip()->producer(), 0, width, height);
else pix = item->referencedClip()->thumbProducer()->extractImage(item->referencedClip()->getClipThumbFrame(), width, height);
if (!pix.isNull()) {
m_listView->blockSignals(true);
m_height = height;
}
-QDomDocument TitleDocument::xml(QGraphicsPolygonItem* startv, QGraphicsPolygonItem* endv)
+QDomDocument TitleDocument::xml(QGraphicsRectItem* startv, QGraphicsRectItem* endv)
{
QDomDocument doc;
if (startv && endv) {
QDomElement endp = doc.createElement("endviewport");
QDomElement startp = doc.createElement("startviewport");
- endp.setAttribute("x", endv->data(0).toString());
- endp.setAttribute("y", endv->data(1).toString());
- endp.setAttribute("size", endv->data(2).toString());
- endp.setAttribute("rect", rectFToString(endv->boundingRect()));
-
- startp.setAttribute("x", startv->data(0).toString());
- startp.setAttribute("y", startv->data(1).toString());
- startp.setAttribute("size", startv->data(2).toString());
- startp.setAttribute("rect", rectFToString(startv->boundingRect()));
-
- startp.setAttribute("z-index", startv->zValue());
- endp.setAttribute("z-index", endv->zValue());
+ QRectF r(endv->pos().x(), endv->pos().y(), endv->rect().width(), endv->rect().height());
+ endp.setAttribute("rect", rectFToString(r));
+ QRectF r2(startv->pos().x(), startv->pos().y(), startv->rect().width(), startv->rect().height());
+ startp.setAttribute("rect", rectFToString(r2));
+
main.appendChild(startp);
main.appendChild(endp);
}
}
-bool TitleDocument::saveDocument(const KUrl& url, QGraphicsPolygonItem* startv, QGraphicsPolygonItem* endv, int out)
+bool TitleDocument::saveDocument(const KUrl& url, QGraphicsRectItem* startv, QGraphicsRectItem* endv, int out)
{
if (!m_scene)
return false;
return KIO::NetAccess::upload(tmpfile.fileName(), url, 0);
}
-int TitleDocument::loadFromXml(QDomDocument doc, QGraphicsPolygonItem* startv, QGraphicsPolygonItem* endv, int *out)
+int TitleDocument::loadFromXml(QDomDocument doc, QGraphicsRectItem* startv, QGraphicsRectItem* endv, int *out)
{
QDomNodeList titles = doc.elementsByTagName("kdenlivetitle");
//TODO: Check if the opened title size is equal to project size, otherwise warn user and rescale
}
} else if (items.item(i).nodeName() == "startviewport" && startv) {
QString rect = items.item(i).attributes().namedItem("rect").nodeValue();
- startv->setPolygon(stringToRect(rect));
- int x = items.item(i).attributes().namedItem("x").nodeValue().toInt();
- int y = items.item(i).attributes().namedItem("y").nodeValue().toInt();
- int size = items.item(i).attributes().namedItem("size").nodeValue().toInt();
- startv->setData(0, x);
- startv->setData(1, y);
- startv->setData(2, size);
- //startv->setPos(p);
+ QRectF r = stringToRect(rect);
+ startv->setRect(0, 0, r.width(), r.height());
+ startv->setPos(r.topLeft());
} else if (items.item(i).nodeName() == "endviewport" && endv) {
QString rect = items.item(i).attributes().namedItem("rect").nodeValue();
- endv->setPolygon(stringToRect(rect));
- int x = items.item(i).attributes().namedItem("x").nodeValue().toInt();
- int y = items.item(i).attributes().namedItem("y").nodeValue().toInt();
- int size = items.item(i).attributes().namedItem("size").nodeValue().toInt();
- endv->setData(0, x);
- endv->setData(1, y);
- endv->setData(2, size);
+ QRectF r = stringToRect(rect);
+ endv->setRect(0, 0, r.width(), r.height());
+ endv->setPos(r.topLeft());
}
}
}
#include <KUrl>
class QGraphicsScene;
-class QGraphicsPolygonItem;
+class QGraphicsRectItem;
class TitleDocument
{
public:
TitleDocument();
void setScene(QGraphicsScene* scene, int width, int height);
- bool saveDocument(const KUrl& url, QGraphicsPolygonItem* startv, QGraphicsPolygonItem* endv, int out);
- QDomDocument xml(QGraphicsPolygonItem* startv, QGraphicsPolygonItem* endv);
- int loadFromXml(QDomDocument doc, QGraphicsPolygonItem* startv, QGraphicsPolygonItem* endv, int *out);
+ bool saveDocument(const KUrl& url, QGraphicsRectItem* startv, QGraphicsRectItem* endv, int out);
+ QDomDocument xml(QGraphicsRectItem* startv, QGraphicsRectItem* endv);
+ int loadFromXml(QDomDocument doc, QGraphicsRectItem* startv, QGraphicsRectItem* endv, int *out);
/** \brief Get the background color (incl. alpha) from the document, if possibly
* \returns The background color of the document, inclusive alpha. If none found, returns (0,0,0,0) */
QColor getBackgroundColor();
connect(rectBColor, SIGNAL(clicked()), this, SLOT(rectChanged()));
connect(rectLineWidth, SIGNAL(valueChanged(int)), this, SLOT(rectChanged()));
- connect(startViewportX, SIGNAL(valueChanged(int)), this, SLOT(setupViewports()));
+ /*connect(startViewportX, SIGNAL(valueChanged(int)), this, SLOT(setupViewports()));
connect(startViewportY, SIGNAL(valueChanged(int)), this, SLOT(setupViewports()));
connect(startViewportSize, SIGNAL(valueChanged(int)), this, SLOT(setupViewports()));
connect(endViewportX, SIGNAL(valueChanged(int)), this, SLOT(setupViewports()));
connect(endViewportY, SIGNAL(valueChanged(int)), this, SLOT(setupViewports()));
- connect(endViewportSize, SIGNAL(valueChanged(int)), this, SLOT(setupViewports()));
+ connect(endViewportSize, SIGNAL(valueChanged(int)), this, SLOT(setupViewports()));*/
connect(zValue, SIGNAL(valueChanged(int)), this, SLOT(zIndexChanged(int)));
connect(itemzoom, SIGNAL(valueChanged(int)), this, SLOT(itemScaled(int)));
// mbd: load saved settings
readChoices();
- initViewports();
graphicsView->show();
//graphicsView->setRenderHint(QPainter::Antialiasing);
graphicsView->setInteractive(true);
//graphicsView->resize(400, 300);
kDebug() << "// TITLE WIDGWT: " << graphicsView->viewport()->width() << "x" << graphicsView->viewport()->height();
//toolBox->setItemEnabled(2, false);
+ m_startViewport = new QGraphicsRectItem(QRectF(0, 0, m_frameWidth, m_frameHeight));
+ m_endViewport = new QGraphicsRectItem(QRectF(0, 0, m_frameWidth, m_frameHeight));
if (!url.isEmpty()) loadTitle(url);
else {
slotTextTool();
QTimer::singleShot(200, this, SLOT(slotAdjustZoom()));
}
+ initAnimation();
+ connect(anim_start, SIGNAL(toggled(bool)), this, SLOT(slotAnimStart(bool)));
+ connect(anim_end, SIGNAL(toggled(bool)), this, SLOT(slotAnimEnd(bool)));
}
TitleWidget::~TitleWidget()
break;
}
}
+
enableToolbars(t);
+ if (t == TITLE_RECTANGLE && (l.at(0) == m_endViewport || l.at(0) == m_startViewport)) {
+ //graphicsView->centerOn(l.at(0));
+ t = TITLE_NONE;
+ }
showToolbars(t);
if (l.size() > 0) {
}
}
-void TitleWidget::initViewports()
+void TitleWidget::initAnimation()
{
- m_startViewport = new QGraphicsPolygonItem(QPolygonF(QRectF(0, 0, 0, 0)));
- m_endViewport = new QGraphicsPolygonItem(QPolygonF(QRectF(0, 0, 0, 0)));
-
+ align_box->setEnabled(false);
+ align_box->setVisible(false);
QPen startpen(Qt::DotLine);
QPen endpen(Qt::DashDotLine);
startpen.setColor(QColor(100, 200, 100, 140));
m_startViewport->setPen(startpen);
m_endViewport->setPen(endpen);
- startViewportSize->setValue(100);
- endViewportSize->setValue(100);
-
m_startViewport->setZValue(-1000);
m_endViewport->setZValue(-1000);
showToolbars(TITLE_RECTANGLE);
settingUp = true;
QGraphicsRectItem *rec = static_cast <QGraphicsRectItem *>(l.at(0));
- toolBox->setCurrentIndex(0);
- //toolBox->setItemEnabled(3, true);
- rectFAlpha->setValue(rec->pen().color().alpha());
- rectBAlpha->setValue(rec->brush().color().alpha());
- //kDebug() << rec->brush().color().alpha();
- QColor fcol = rec->pen().color();
- QColor bcol = rec->brush().color();
- //fcol.setAlpha(255);
- //bcol.setAlpha(255);
- rectFColor->setColor(fcol);
- rectBColor->setColor(bcol);
- settingUp = false;
- rectLineWidth->setValue(rec->pen().width());
+ if (rec == m_startViewport || rec == m_endViewport) {
+ toolBox->setCurrentIndex(3);
+ toolBox->widget(0)->setEnabled(false);
+ toolBox->widget(1)->setEnabled(false);
+ enableToolbars(TITLE_NONE);
+ }
+ else {
+ toolBox->widget(0)->setEnabled(true);
+ toolBox->widget(1)->setEnabled(true);
+ toolBox->setCurrentIndex(0);
+ //toolBox->setItemEnabled(3, true);
+ rectFAlpha->setValue(rec->pen().color().alpha());
+ rectBAlpha->setValue(rec->brush().color().alpha());
+ //kDebug() << rec->brush().color().alpha();
+ QColor fcol = rec->pen().color();
+ QColor bcol = rec->brush().color();
+ //fcol.setAlpha(255);
+ //bcol.setAlpha(255);
+ rectFColor->setColor(fcol);
+ rectBColor->setColor(bcol);
+ settingUp = false;
+ rectLineWidth->setValue(rec->pen().width());
+ enableToolbars(TITLE_RECTANGLE);
+ }
updateAxisButtons(l.at(0));
updateCoordinates(rec);
updateDimension(rec);
- enableToolbars(TITLE_RECTANGLE);
} else if (l.at(0)->type() == IMAGEITEM) {
showToolbars(TITLE_IMAGE);
{
//double aspect_ratio = 4.0 / 3.0;//read from project
//better zoom centered, but render uses only the created rect, so no problem to change the zoom function
- QRectF sp(0, 0, startViewportSize->value() * m_frameWidth / 100.0 , startViewportSize->value()* m_frameHeight / 100.0);
+ /*QRectF sp(0, 0, startViewportSize->value() * m_frameWidth / 100.0 , startViewportSize->value()* m_frameHeight / 100.0);
QRectF ep(0, 0, endViewportSize->value() * m_frameWidth / 100.0, endViewportSize->value() * m_frameHeight / 100.0);
// use a polygon thiat uses 16:9 and 4:3 rects forpreview the size in all aspect ratios ?
QPolygonF spoly(sp);
m_endViewport->setData(0, endViewportX->value());
m_endViewport->setData(1, endViewportY->value());
m_endViewport->setData(2, endViewportSize->value());
- }
+ }*/
}
void TitleWidget::loadTitle(KUrl url)
KIO::NetAccess::removeTempFile(tmpfile);
}
setXml(doc);
+
/*int out;
m_count = m_titledocument.loadDocument(url, m_startViewport, m_endViewport, &out) + 1;
adjustFrameSize();
void TitleWidget::saveTitle(KUrl url)
{
+ if (anim_start->isChecked()) slotAnimStart(false);
+ if (anim_end->isChecked()) slotAnimEnd(false);
if (url.isEmpty()) url = KFileDialog::getSaveUrl(KUrl(m_projectTitlePath), "application/x-kdenlivetitle", this, i18n("Save Title"));
if (!url.isEmpty()) {
if (m_titledocument.saveDocument(url, m_startViewport, m_endViewport, m_tc.getFrameCount(title_duration->text())) == false)
horizontalSlider->blockSignals(false);
kcolorbutton->blockSignals(false);
- startViewportX->setValue(m_startViewport->data(0).toInt());
+ /*startViewportX->setValue(m_startViewport->data(0).toInt());
startViewportY->setValue(m_startViewport->data(1).toInt());
startViewportSize->setValue(m_startViewport->data(2).toInt());
endViewportX->setValue(m_endViewport->data(0).toInt());
endViewportY->setValue(m_endViewport->data(1).toInt());
- endViewportSize->setValue(m_endViewport->data(2).toInt());
+ endViewportSize->setValue(m_endViewport->data(2).toInt());*/
QTimer::singleShot(200, this, SLOT(slotAdjustZoom()));
slotSelectTool();
/** \brief Connected to the accepted signal - calls writeChoices */
void TitleWidget::slotAccepted()
{
+ if (anim_start->isChecked()) slotAnimStart(false);
+ if (anim_end->isChecked()) slotAnimEnd(false);
writeChoices();
}
displayBackgroundFrame();
}
+void TitleWidget::slotAnimStart(bool anim)
+{
+ if (anim && anim_end->isChecked()) {
+ anim_end->setChecked(false);
+ m_endViewport->setZValue(-1000);
+ m_endViewport->setBrush(QBrush());
+ }
+ slotSelectTool();
+ QList<QGraphicsItem *> list = m_scene->items();
+ for (int i = 0; i < list.count(); i++) {
+ list.at(i)->setFlag(QGraphicsItem::ItemIsMovable, !anim);
+ list.at(i)->setFlag(QGraphicsItem::ItemIsSelectable, !anim);
+ }
+ align_box->setEnabled(anim);
+ frame_toolbar->setEnabled(!anim);
+ rect_properties->setEnabled(!anim);
+ if (anim) {
+ m_startViewport->setZValue(1100);
+ QColor col = m_startViewport->pen().color();
+ col.setAlpha(100);
+ m_startViewport->setBrush(col);
+ m_startViewport->setFlags(QGraphicsItem::ItemIsMovable | QGraphicsItem::ItemIsSelectable);
+ }
+ else {
+ m_startViewport->setZValue(-1000);
+ m_startViewport->setBrush(QBrush());
+ m_startViewport->setFlags(0);
+ }
+
+}
+void TitleWidget::slotAnimEnd(bool anim)
+{
+ if (anim && anim_start->isChecked()) {
+ anim_start->setChecked(false);
+ m_startViewport->setZValue(-1000);
+ m_startViewport->setBrush(QBrush());
+ }
+ slotSelectTool();
+ QList<QGraphicsItem *> list = m_scene->items();
+ for (int i = 0; i < list.count(); i++) {
+ list.at(i)->setFlag(QGraphicsItem::ItemIsMovable, !anim);
+ list.at(i)->setFlag(QGraphicsItem::ItemIsSelectable, !anim);
+ }
+ align_box->setEnabled(anim);
+ frame_toolbar->setEnabled(!anim);
+ rect_properties->setEnabled(!anim);
+ if (anim) {
+ m_endViewport->setZValue(1100);
+ QColor col = m_endViewport->pen().color();
+ col.setAlpha(100);
+ m_endViewport->setBrush(col);
+ m_endViewport->setFlags(QGraphicsItem::ItemIsMovable | QGraphicsItem::ItemIsSelectable);
+ }
+ else {
+ m_endViewport->setZValue(-1000);
+ m_endViewport->setBrush(QBrush());
+ m_endViewport->setFlags(0);
+ }
+}
virtual void resizeEvent(QResizeEvent * event);
private:
- QGraphicsPolygonItem *m_startViewport, *m_endViewport;
+ QGraphicsRectItem *m_startViewport, *m_endViewport;
GraphicsSceneRectMove *m_scene;
- void initViewports();
+ void initAnimation();
QMap<QGraphicsItem*, Transform > m_transformations;
TitleDocument m_titledocument;
QGraphicsRectItem *m_frameBorder;
void slotSelectTool();
void slotImageTool();
+ void slotAnimStart(bool);
+ void slotAnimEnd(bool);
/** \brief Called when accepted, stores the user selections for next time use */
void slotAccepted();
<x>0</x>
<y>0</y>
<width>736</width>
- <height>515</height>
+ <height>638</height>
</rect>
</property>
<property name="sizePolicy">
</property>
</widget>
</item>
+ <item row="1" column="0" colspan="2">
+ <widget class="Line" name="line_3">
+ <property name="orientation">
+ <enum>Qt::Horizontal</enum>
+ </property>
+ </widget>
+ </item>
<item row="2" column="0" colspan="2">
<widget class="QToolBox" name="toolBox">
<property name="sizePolicy">
</sizepolicy>
</property>
<property name="currentIndex">
- <number>0</number>
+ <number>2</number>
</property>
<widget class="QWidget" name="BasicOperations">
<property name="geometry">
<x>0</x>
<y>0</y>
<width>347</width>
- <height>140</height>
+ <height>238</height>
</rect>
</property>
<attribute name="label">
<rect>
<x>0</x>
<y>0</y>
- <width>94</width>
- <height>65</height>
+ <width>347</width>
+ <height>238</height>
</rect>
</property>
<attribute name="label">
<property name="geometry">
<rect>
<x>0</x>
- <y>-58</y>
- <width>330</width>
- <height>198</height>
+ <y>0</y>
+ <width>347</width>
+ <height>238</height>
</rect>
</property>
<attribute name="label">
- <string>Viewport</string>
+ <string>Animation</string>
</attribute>
- <layout class="QGridLayout">
+ <layout class="QGridLayout" name="gridLayout_9">
<item row="0" column="0">
- <layout class="QVBoxLayout">
- <item>
- <widget class="QGroupBox" name="groupBox_3">
- <property name="title">
- <string>StartViewport</string>
- </property>
- <layout class="QGridLayout">
- <item row="0" column="0">
- <layout class="QGridLayout">
- <item row="0" column="0">
- <widget class="QLabel" name="label_8">
- <property name="text">
- <string>X:</string>
- </property>
- </widget>
- </item>
- <item row="0" column="1">
- <widget class="QLabel" name="label_9">
- <property name="text">
- <string>Y:</string>
- </property>
- </widget>
- </item>
- <item row="0" column="2">
- <widget class="QLabel" name="label_10">
- <property name="text">
- <string>Size:</string>
- </property>
- </widget>
- </item>
- <item row="1" column="0">
- <widget class="QSpinBox" name="startViewportX">
- <property name="minimum">
- <number>-32000</number>
- </property>
- <property name="maximum">
- <number>3200</number>
- </property>
- <property name="singleStep">
- <number>10</number>
- </property>
- </widget>
- </item>
- <item row="1" column="1">
- <widget class="QSpinBox" name="startViewportY">
- <property name="minimum">
- <number>-32000</number>
- </property>
- <property name="maximum">
- <number>32000</number>
- </property>
- <property name="singleStep">
- <number>10</number>
- </property>
- </widget>
- </item>
- <item row="1" column="2">
- <widget class="QSpinBox" name="startViewportSize">
- <property name="minimum">
- <number>1</number>
- </property>
- <property name="maximum">
- <number>1000</number>
- </property>
- <property name="singleStep">
- <number>5</number>
- </property>
- </widget>
- </item>
- </layout>
- </item>
- </layout>
- </widget>
- </item>
- <item>
- <widget class="QGroupBox" name="groupBox_4">
- <property name="title">
- <string>EndViewport</string>
- </property>
- <layout class="QGridLayout">
- <item row="0" column="0">
- <layout class="QGridLayout">
- <item row="0" column="0">
- <widget class="QLabel" name="label_5">
- <property name="text">
- <string>X:</string>
- </property>
- </widget>
- </item>
- <item row="0" column="1">
- <widget class="QLabel" name="label_6">
- <property name="text">
- <string>Y:</string>
- </property>
- </widget>
- </item>
- <item row="0" column="2">
- <widget class="QLabel" name="label_7">
- <property name="text">
- <string>Size:</string>
- </property>
- </widget>
- </item>
- <item row="1" column="0">
- <widget class="QSpinBox" name="endViewportX">
- <property name="minimum">
- <number>-32000</number>
- </property>
- <property name="maximum">
- <number>32000</number>
- </property>
- <property name="singleStep">
- <number>10</number>
- </property>
- </widget>
- </item>
- <item row="1" column="1">
- <widget class="QSpinBox" name="endViewportY">
- <property name="minimum">
- <number>-32000</number>
- </property>
- <property name="maximum">
- <number>32000</number>
- </property>
- <property name="singleStep">
- <number>10</number>
- </property>
- </widget>
- </item>
- <item row="1" column="2">
- <widget class="QSpinBox" name="endViewportSize">
- <property name="minimum">
- <number>1</number>
- </property>
- <property name="maximum">
- <number>1000</number>
- </property>
- <property name="singleStep">
- <number>5</number>
- </property>
- </widget>
- </item>
- </layout>
- </item>
- </layout>
- </widget>
- </item>
- <item>
- <spacer>
- <property name="orientation">
- <enum>Qt::Vertical</enum>
- </property>
- <property name="sizeHint" stdset="0">
- <size>
- <width>20</width>
- <height>40</height>
- </size>
- </property>
- </spacer>
- </item>
- </layout>
+ <widget class="QToolButton" name="anim_start">
+ <property name="text">
+ <string>Edit start</string>
+ </property>
+ <property name="checkable">
+ <bool>true</bool>
+ </property>
+ </widget>
+ </item>
+ <item row="1" column="0">
+ <widget class="QToolButton" name="anim_end">
+ <property name="text">
+ <string>Edit end</string>
+ </property>
+ <property name="checkable">
+ <bool>true</bool>
+ </property>
+ </widget>
+ </item>
+ <item row="2" column="0">
+ <widget class="QGroupBox" name="align_box">
+ <property name="title">
+ <string/>
+ </property>
+ <layout class="QGridLayout" name="gridLayout_8">
+ <item row="0" column="0" colspan="2">
+ <widget class="QLabel" name="label_5">
+ <property name="sizePolicy">
+ <sizepolicy hsizetype="Maximum" vsizetype="Preferred">
+ <horstretch>0</horstretch>
+ <verstretch>0</verstretch>
+ </sizepolicy>
+ </property>
+ <property name="text">
+ <string>Hor. align</string>
+ </property>
+ </widget>
+ </item>
+ <item row="1" column="0">
+ <widget class="QToolButton" name="left_align">
+ <property name="sizePolicy">
+ <sizepolicy hsizetype="Preferred" vsizetype="Fixed">
+ <horstretch>0</horstretch>
+ <verstretch>0</verstretch>
+ </sizepolicy>
+ </property>
+ <property name="text">
+ <string><</string>
+ </property>
+ </widget>
+ </item>
+ <item row="1" column="1">
+ <widget class="QToolButton" name="hcenter_align">
+ <property name="sizePolicy">
+ <sizepolicy hsizetype="Preferred" vsizetype="Fixed">
+ <horstretch>0</horstretch>
+ <verstretch>0</verstretch>
+ </sizepolicy>
+ </property>
+ <property name="text">
+ <string>|</string>
+ </property>
+ </widget>
+ </item>
+ <item row="1" column="2">
+ <widget class="QToolButton" name="right_align">
+ <property name="sizePolicy">
+ <sizepolicy hsizetype="Preferred" vsizetype="Fixed">
+ <horstretch>0</horstretch>
+ <verstretch>0</verstretch>
+ </sizepolicy>
+ </property>
+ <property name="text">
+ <string>></string>
+ </property>
+ </widget>
+ </item>
+ <item row="2" column="0" colspan="3">
+ <widget class="QLabel" name="label_6">
+ <property name="sizePolicy">
+ <sizepolicy hsizetype="Maximum" vsizetype="Preferred">
+ <horstretch>0</horstretch>
+ <verstretch>0</verstretch>
+ </sizepolicy>
+ </property>
+ <property name="text">
+ <string>Vert. align</string>
+ </property>
+ </widget>
+ </item>
+ <item row="3" column="0">
+ <widget class="QToolButton" name="top_align">
+ <property name="sizePolicy">
+ <sizepolicy hsizetype="Preferred" vsizetype="Fixed">
+ <horstretch>0</horstretch>
+ <verstretch>0</verstretch>
+ </sizepolicy>
+ </property>
+ <property name="text">
+ <string><</string>
+ </property>
+ </widget>
+ </item>
+ <item row="3" column="1">
+ <widget class="QToolButton" name="vcenter_align">
+ <property name="sizePolicy">
+ <sizepolicy hsizetype="Preferred" vsizetype="Fixed">
+ <horstretch>0</horstretch>
+ <verstretch>0</verstretch>
+ </sizepolicy>
+ </property>
+ <property name="text">
+ <string>|</string>
+ </property>
+ </widget>
+ </item>
+ <item row="3" column="2">
+ <widget class="QToolButton" name="bottom_align">
+ <property name="sizePolicy">
+ <sizepolicy hsizetype="Preferred" vsizetype="Fixed">
+ <horstretch>0</horstretch>
+ <verstretch>0</verstretch>
+ </sizepolicy>
+ </property>
+ <property name="text">
+ <string>></string>
+ </property>
+ </widget>
+ </item>
+ </layout>
+ </widget>
+ </item>
+ <item row="3" column="0">
+ <spacer>
+ <property name="orientation">
+ <enum>Qt::Vertical</enum>
+ </property>
+ <property name="sizeHint" stdset="0">
+ <size>
+ <width>81</width>
+ <height>120</height>
+ </size>
+ </property>
+ </spacer>
+ </item>
+ <item row="2" column="1">
+ <spacer name="horizontalSpacer_7">
+ <property name="orientation">
+ <enum>Qt::Horizontal</enum>
+ </property>
+ <property name="sizeHint" stdset="0">
+ <size>
+ <width>40</width>
+ <height>20</height>
+ </size>
+ </property>
+ </spacer>
</item>
</layout>
</widget>
</widget>
</item>
- <item row="1" column="0" colspan="2">
- <widget class="Line" name="line_3">
- <property name="orientation">
- <enum>Qt::Horizontal</enum>
- </property>
- </widget>
- </item>
</layout>
</widget>
</widget>