#include <QFile>
#include <QTextCursor>
+#include <locale.h>
+
#if QT_VERSION >= 0x040600
#include <QGraphicsEffect>
#include <QGraphicsBlurEffect>
TitleDocument::TitleDocument()
{
m_scene = NULL;
+ m_width = 0;
+ m_height = 0;
}
void TitleDocument::setScene(QGraphicsScene* _scene, int width, int height)
QDomElement main = doc.createElement("kdenlivetitle");
main.setAttribute("width", m_width);
main.setAttribute("height", m_height);
+ // Save locale
+ const char *locale = setlocale(LC_NUMERIC, NULL);
+ main.setAttribute("LC_NUMERIC", locale);
doc.appendChild(main);
foreach(QGraphicsItem * item, m_scene->items()) {
QColor fontcolor = cursor.charFormat().foreground().color();
content.setAttribute("font-color", colorToString(fontcolor));
if (!t->data(101).isNull()) content.setAttribute("font-outline", t->data(101).toDouble());
- if (!t->data(102).isNull()) content.setAttribute("font-outline-color", colorToString(QColor(t->data(102).toString())));
+ if (!t->data(102).isNull()) {
+ QVariant variant = t->data(102);
+ QColor outlineColor = variant.value<QColor>();
+ content.setAttribute("font-outline-color", colorToString(outlineColor));
+ }
}
if (!t->data(100).isNull()) {
QStringList effectParams = t->data(100).toStringList();
}
-bool TitleDocument::saveDocument(const KUrl& url, QGraphicsRectItem* startv, QGraphicsRectItem* endv, int out, bool embed)
+bool TitleDocument::saveDocument(const KUrl& url, QGraphicsRectItem* startv, QGraphicsRectItem* endv, int duration, bool embed)
{
if (!m_scene)
return false;
QDomDocument doc = xml(startv, endv, embed);
- doc.documentElement().setAttribute("out", out);
+ doc.documentElement().setAttribute("duration", duration);
+ // keep some time for backwards compatibility (opening projects with older versions) - 26/12/12
+ doc.documentElement().setAttribute("out", duration);
KTemporaryFile tmpfile;
if (!tmpfile.open()) {
kWarning() << "///// CANNOT CREATE TMP FILE in: " << tmpfile.fileName();
return false;
}
QFile xmlf(tmpfile.fileName());
- xmlf.open(QIODevice::WriteOnly);
+ if (!xmlf.open(QIODevice::WriteOnly))
+ return false;
xmlf.write(doc.toString().toUtf8());
if (xmlf.error() != QFile::NoError) {
xmlf.close();
return KIO::NetAccess::upload(tmpfile.fileName(), url, 0);
}
-int TitleDocument::loadFromXml(QDomDocument doc, QGraphicsRectItem* startv, QGraphicsRectItem* endv, int *out, const QString& projectpath)
+int TitleDocument::loadFromXml(QDomDocument doc, QGraphicsRectItem* startv, QGraphicsRectItem* endv, int *duration, const QString& projectpath)
{
m_projectPath = projectpath;
QDomNodeList titles = doc.elementsByTagName("kdenlivetitle");
}
}
//TODO: get default title duration instead of hardcoded one
+ if (doc.documentElement().hasAttribute("duration"))
+ *duration = doc.documentElement().attribute("duration").toInt();
if (doc.documentElement().hasAttribute("out"))
- *out = doc.documentElement().attribute("out").toInt();
+ *duration = doc.documentElement().attribute("out").toInt();
else
- *out = 125;
+ *duration = 125;
int maxZValue = 0;
if (titles.size()) {