}
-bool TitleDocument::saveDocument(const KUrl& url, QGraphicsPolygonItem* startv, QGraphicsPolygonItem* endv, double out)
+bool TitleDocument::saveDocument(const KUrl& url, QGraphicsPolygonItem* startv, QGraphicsPolygonItem* endv, int out)
{
if (!m_scene)
return false;
return KIO::NetAccess::upload(tmpfile.fileName(), url, 0);
}
-int TitleDocument::loadDocument(const KUrl& url, QGraphicsPolygonItem* startv, QGraphicsPolygonItem* endv, double *out)
-{
- QString tmpfile;
- QDomDocument doc;
- if (!m_scene)
- return -1;
-
- if (KIO::NetAccess::download(url, tmpfile, 0)) {
- QFile file(tmpfile);
- if (file.open(QIODevice::ReadOnly)) {
- doc.setContent(&file, false);
- file.close();
- } else
- return -1;
- KIO::NetAccess::removeTempFile(tmpfile);
- return loadFromXml(doc, startv, endv, out);
- }
- return -1;
-}
-
-int TitleDocument::loadFromXml(QDomDocument doc, QGraphicsPolygonItem* startv, QGraphicsPolygonItem* endv, double *out)
+int TitleDocument::loadFromXml(QDomDocument doc, QGraphicsPolygonItem* startv, QGraphicsPolygonItem* 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
}
//TODO: get default title duration instead of hardcoded one
if (doc.documentElement().hasAttribute("out"))
- *out = doc.documentElement().attribute("out").toDouble();
+ *out = doc.documentElement().attribute("out").toInt();
else
- *out = 5000;
+ *out = 125;
int maxZValue = 0;
if (titles.size()) {
public:
TitleDocument();
void setScene(QGraphicsScene* scene, int width, int height);
- bool saveDocument(const KUrl& url, QGraphicsPolygonItem* startv, QGraphicsPolygonItem* endv, double out);
- int loadDocument(const KUrl& url, QGraphicsPolygonItem* startv, QGraphicsPolygonItem* endv, double *out);
+ 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, double *out);
+ int loadFromXml(QDomDocument doc, QGraphicsPolygonItem* startv, QGraphicsPolygonItem* 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();
#include <KFileDialog>
#include <KStandardDirs>
#include <KMessageBox>
+#include <kio/netaccess.h>
#include <QDomDocument>
#include <QGraphicsItem>
//graphicsView->resize(400, 300);
kDebug() << "// TITLE WIDGWT: " << graphicsView->viewport()->width() << "x" << graphicsView->viewport()->height();
//toolBox->setItemEnabled(2, false);
- if (!url.isEmpty()) {
- double out;
- m_count = m_titledocument.loadDocument(url, m_startViewport, m_endViewport, &out) + 1;
- adjustFrameSize();
- title_duration->setText(m_tc.getTimecode(GenTime(out)));
- slotSelectTool();
- } else {
+ if (!url.isEmpty()) loadTitle(url);
+ else {
slotTextTool();
+ QTimer::singleShot(200, this, SLOT(slotAdjustZoom()));
}
- QTimer::singleShot(200, this, SLOT(slotAdjustZoom()));
}
TitleWidget::~TitleWidget()
}
}
-void TitleWidget::loadTitle()
+void TitleWidget::loadTitle(KUrl url)
{
- KUrl url = KFileDialog::getOpenUrl(KUrl(m_projectTitlePath), "application/x-kdenlivetitle", this, i18n("Load Title"));
+ if (url.isEmpty()) url = KFileDialog::getOpenUrl(KUrl(m_projectTitlePath), "application/x-kdenlivetitle", this, i18n("Load Title"));
if (!url.isEmpty()) {
QList<QGraphicsItem *> items = m_scene->items();
for (int i = 0; i < items.size(); i++) {
if (items.at(i)->zValue() > -1000) delete items.at(i);
}
m_scene->clearTextSelection();
- double out;
+ QDomDocument doc;
+ QString tmpfile;
+
+ if (KIO::NetAccess::download(url, tmpfile, 0)) {
+ QFile file(tmpfile);
+ if (file.open(QIODevice::ReadOnly)) {
+ doc.setContent(&file, false);
+ file.close();
+ } else return;
+ KIO::NetAccess::removeTempFile(tmpfile);
+ }
+ setXml(doc);
+ /*int out;
m_count = m_titledocument.loadDocument(url, m_startViewport, m_endViewport, &out) + 1;
adjustFrameSize();
- title_duration->setText(m_tc.getTimecode(GenTime(out / 1000.0)));
+ title_duration->setText(m_tc.getTimecode(GenTime(out, m_render->fps())));
insertingValues = true;
startViewportX->setValue(m_startViewport->data(0).toInt());
startViewportY->setValue(m_startViewport->data(1).toInt());
endViewportX->setValue(m_endViewport->data(0).toInt());
endViewportY->setValue(m_endViewport->data(1).toInt());
endViewportSize->setValue(m_endViewport->data(2).toInt());
+
insertingValues = false;
slotSelectTool();
- slotAdjustZoom();
+ slotAdjustZoom();*/
}
}
{
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, GenTime(m_tc.getFrameCount(title_duration->text()), m_render->fps()).ms()) == false)
+ if (m_titledocument.saveDocument(url, m_startViewport, m_endViewport, m_tc.getFrameCount(title_duration->text())) == false)
KMessageBox::error(this, i18n("Cannot write to file %1", url.path()));
}
}
QDomDocument TitleWidget::xml()
{
QDomDocument doc = m_titledocument.xml(m_startViewport, m_endViewport);
- doc.documentElement().setAttribute("out", GenTime(m_tc.getFrameCount(title_duration->text()), m_render->fps()).ms());
+ doc.documentElement().setAttribute("out", m_tc.getFrameCount(title_duration->text()));
if (cropImage->isChecked()) {
doc.documentElement().setAttribute("crop", 1);
}
void TitleWidget::setXml(QDomDocument doc)
{
- double out;
+ int out;
m_count = m_titledocument.loadFromXml(doc, m_startViewport, m_endViewport, &out);
adjustFrameSize();
- title_duration->setText(m_tc.getTimecode(GenTime(out / 1000.0)));
+ title_duration->setText(m_tc.getTimecode(GenTime(out, m_render->fps())));
/*if (doc.documentElement().hasAttribute("out")) {
GenTime duration = GenTime(doc.documentElement().attribute("out").toDouble() / 1000.0);
title_duration->setText(m_tc.getTimecode(duration));
kcolorbutton->setColor(background_color);
horizontalSlider->blockSignals(false);
kcolorbutton->blockSignals(false);
+
+ 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());
+
QTimer::singleShot(200, this, SLOT(slotAdjustZoom()));
slotSelectTool();
}