From: <j-...@us...> - 2009-08-31 13:22:31
|
Revision: 3865 http://kdenlive.svn.sourceforge.net/kdenlive/?rev=3865&view=rev Author: j-b-m Date: 2009-08-31 12:14:41 +0000 (Mon, 31 Aug 2009) Log Message: ----------- Rewrite UI for title animation Modified Paths: -------------- trunk/kdenlive/src/graphicsscenerectmove.cpp trunk/kdenlive/src/projectlist.cpp trunk/kdenlive/src/titledocument.cpp trunk/kdenlive/src/titledocument.h trunk/kdenlive/src/titlewidget.cpp trunk/kdenlive/src/titlewidget.h trunk/kdenlive/src/widgets/titlewidget_ui.ui Modified: trunk/kdenlive/src/graphicsscenerectmove.cpp =================================================================== --- trunk/kdenlive/src/graphicsscenerectmove.cpp 2009-08-31 12:13:46 UTC (rev 3864) +++ trunk/kdenlive/src/graphicsscenerectmove.cpp 2009-08-31 12:14:41 UTC (rev 3865) @@ -74,7 +74,7 @@ void GraphicsSceneRectMove::keyPressEvent(QKeyEvent * keyEvent) { - if (m_selectedItem == NULL) { + if (m_selectedItem == NULL || !(m_selectedItem->flags() & QGraphicsItem::ItemIsMovable)) { QGraphicsScene::keyPressEvent(keyEvent); return; } @@ -165,7 +165,7 @@ 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); @@ -182,7 +182,7 @@ } } } - if (item != NULL) { + if (item != NULL && item->flags() & QGraphicsItem::ItemIsMovable) { m_sceneClickPoint = e->scenePos(); m_selectedItem = item; kDebug() << "///////// ITEM TYPE: " << item->type(); Modified: trunk/kdenlive/src/projectlist.cpp =================================================================== --- trunk/kdenlive/src/projectlist.cpp 2009-08-31 12:13:46 UTC (rev 3864) +++ trunk/kdenlive/src/projectlist.cpp 2009-08-31 12:14:41 UTC (rev 3865) @@ -878,7 +878,7 @@ 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); Modified: trunk/kdenlive/src/titledocument.cpp =================================================================== --- trunk/kdenlive/src/titledocument.cpp 2009-08-31 12:13:46 UTC (rev 3864) +++ trunk/kdenlive/src/titledocument.cpp 2009-08-31 12:14:41 UTC (rev 3865) @@ -47,7 +47,7 @@ m_height = height; } -QDomDocument TitleDocument::xml(QGraphicsPolygonItem* startv, QGraphicsPolygonItem* endv) +QDomDocument TitleDocument::xml(QGraphicsRectItem* startv, QGraphicsRectItem* endv) { QDomDocument doc; @@ -128,18 +128,11 @@ 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())); + 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)); - 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()); main.appendChild(startp); main.appendChild(endp); } @@ -169,7 +162,7 @@ } -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; @@ -192,7 +185,7 @@ 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 @@ -313,23 +306,14 @@ } } 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()); } } } Modified: trunk/kdenlive/src/titledocument.h =================================================================== --- trunk/kdenlive/src/titledocument.h 2009-08-31 12:13:46 UTC (rev 3864) +++ trunk/kdenlive/src/titledocument.h 2009-08-31 12:14:41 UTC (rev 3865) @@ -22,7 +22,7 @@ #include <KUrl> class QGraphicsScene; -class QGraphicsPolygonItem; +class QGraphicsRectItem; class TitleDocument { @@ -30,9 +30,9 @@ 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(); Modified: trunk/kdenlive/src/titlewidget.cpp =================================================================== --- trunk/kdenlive/src/titlewidget.cpp 2009-08-31 12:13:46 UTC (rev 3864) +++ trunk/kdenlive/src/titlewidget.cpp 2009-08-31 12:14:41 UTC (rev 3865) @@ -86,12 +86,12 @@ 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))); @@ -261,18 +261,22 @@ // 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() @@ -360,7 +364,12 @@ 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) { @@ -520,11 +529,10 @@ } } -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)); @@ -533,9 +541,6 @@ m_startViewport->setPen(startpen); m_endViewport->setPen(endpen); - startViewportSize->setValue(100); - endViewportSize->setValue(100); - m_startViewport->setZValue(-1000); m_endViewport->setZValue(-1000); @@ -718,24 +723,34 @@ 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); @@ -1281,7 +1296,7 @@ { //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); @@ -1298,7 +1313,7 @@ m_endViewport->setData(0, endViewportX->value()); m_endViewport->setData(1, endViewportY->value()); m_endViewport->setData(2, endViewportSize->value()); - } + }*/ } void TitleWidget::loadTitle(KUrl url) @@ -1322,6 +1337,7 @@ KIO::NetAccess::removeTempFile(tmpfile); } setXml(doc); + /*int out; m_count = m_titledocument.loadDocument(url, m_startViewport, m_endViewport, &out) + 1; adjustFrameSize(); @@ -1342,6 +1358,8 @@ 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) @@ -1399,12 +1417,12 @@ 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(); @@ -1461,6 +1479,8 @@ /** \brief Connected to the accepted signal - calls writeChoices */ void TitleWidget::slotAccepted() { + if (anim_start->isChecked()) slotAnimStart(false); + if (anim_end->isChecked()) slotAnimEnd(false); writeChoices(); } @@ -1534,6 +1554,65 @@ 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); + } +} Modified: trunk/kdenlive/src/titlewidget.h =================================================================== --- trunk/kdenlive/src/titlewidget.h 2009-08-31 12:13:46 UTC (rev 3864) +++ trunk/kdenlive/src/titlewidget.h 2009-08-31 12:14:41 UTC (rev 3865) @@ -83,9 +83,9 @@ 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; @@ -229,6 +229,8 @@ void slotSelectTool(); void slotImageTool(); + void slotAnimStart(bool); + void slotAnimEnd(bool); /** \brief Called when accepted, stores the user selections for next time use */ void slotAccepted(); Modified: trunk/kdenlive/src/widgets/titlewidget_ui.ui =================================================================== --- trunk/kdenlive/src/widgets/titlewidget_ui.ui 2009-08-31 12:13:46 UTC (rev 3864) +++ trunk/kdenlive/src/widgets/titlewidget_ui.ui 2009-08-31 12:14:41 UTC (rev 3865) @@ -7,7 +7,7 @@ <x>0</x> <y>0</y> <width>736</width> - <height>515</height> + <height>638</height> </rect> </property> <property name="sizePolicy"> @@ -576,6 +576,13 @@ </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"> @@ -585,7 +592,7 @@ </sizepolicy> </property> <property name="currentIndex"> - <number>0</number> + <number>2</number> </property> <widget class="QWidget" name="BasicOperations"> <property name="geometry"> @@ -593,7 +600,7 @@ <x>0</x> <y>0</y> <width>347</width> - <height>140</height> + <height>238</height> </rect> </property> <attribute name="label"> @@ -711,8 +718,8 @@ <rect> <x>0</x> <y>0</y> - <width>94</width> - <height>65</height> + <width>347</width> + <height>238</height> </rect> </property> <attribute name="label"> @@ -758,189 +765,178 @@ <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> This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |