]> git.sesse.net Git - kdenlive/blobdiff - src/titledocument.h
Const'ref
[kdenlive] / src / titledocument.h
index 47733a79169d3aa6f018b19aa4515e07179f272f..d73760a06ba9779722cd39dd3f3ecad219e7ef8e 100644 (file)
  ***************************************************************************/
 #ifndef TITLEDOCUMENT_H
 #define TITLEDOCUMENT_H
+
+#include <QDomDocument>
+
 #include <KUrl>
 
 class QGraphicsScene;
-class QGraphicsPolygonItem;
-
-class TitleDocument {
-       QGraphicsScene* scene;
-       public:
-               TitleDocument();
-               void setScene(QGraphicsScene* scene);
-               bool saveDocument(const KUrl& url,QGraphicsPolygonItem* startv, QGraphicsPolygonItem* endv);
-               bool loadDocument(const KUrl& url,QGraphicsPolygonItem* startv, QGraphicsPolygonItem* endv);
-       private:
-               QString colorToString(const QColor&);
-               QString rectFToString(const QRectF&);
-               QRectF stringToRect(const QString &);
-               QColor stringToColor(const QString &);
-               QTransform stringToTransform(const QString &);
+class QGraphicsRectItem;
+class QGraphicsItem;
+
+const int ROTATEFACTOR = 103;
+const int ZOOMFACTOR = 104;
+
+class TitleDocument
+{
+
+public:
+    TitleDocument();
+    void setScene(QGraphicsScene* scene, int width, int height);
+    bool saveDocument(const KUrl& url, QGraphicsRectItem* startv, QGraphicsRectItem* endv, int duration, bool embed_images = false);
+    QDomDocument xml(QGraphicsRectItem* startv, QGraphicsRectItem* endv, bool embed_images = false);
+    int loadFromXml(const QDomDocument& doc, QGraphicsRectItem* startv, QGraphicsRectItem* endv, int *duration, const QString& projectpath = QString());
+    /** \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() const;
+    int frameWidth() const;
+    int frameHeight() const;
+    /** \brief Extract embeded images in project titles folder. */
+    static const QString extractBase64Image(const QString &titlePath, const QString &data);
+
+    enum ItemOrigin {OriginXLeft = 0, OriginYTop = 1};
+    enum AxisPosition {AxisDefault = 0, AxisInverted = 1};
+
+private:
+    QGraphicsScene* m_scene;
+    QString m_projectPath;
+    int m_width;
+    int m_height;
+    QString colorToString(const QColor&);
+    QString rectFToString(const QRectF&);
+    QRectF stringToRect(const QString &);
+    QColor stringToColor(const QString &);
+    QTransform stringToTransform(const QString &);
+    QList<QVariant> stringToList(const QString &);
+    int base64ToUrl(QGraphicsItem* item, QDomElement& content, bool embed);
 };
 
 #endif