summaryrefslogtreecommitdiff
path: root/noncore/graphics/drawpad/drawpadcanvas.cpp
Side-by-side diff
Diffstat (limited to 'noncore/graphics/drawpad/drawpadcanvas.cpp') (more/less context) (ignore whitespace changes)
-rw-r--r--noncore/graphics/drawpad/drawpadcanvas.cpp50
1 files changed, 38 insertions, 12 deletions
diff --git a/noncore/graphics/drawpad/drawpadcanvas.cpp b/noncore/graphics/drawpad/drawpadcanvas.cpp
index bcb6877..dcf0871 100644
--- a/noncore/graphics/drawpad/drawpadcanvas.cpp
+++ b/noncore/graphics/drawpad/drawpadcanvas.cpp
@@ -49,2 +49,4 @@ private:
Unknown,
+ InTitle,
+ InDate,
InData
@@ -53,2 +55,4 @@ private:
State m_state;
+ QString m_title;
+ QDateTime m_date;
ulong m_dataLenght;
@@ -78,3 +82,10 @@ bool DrawPadCanvasXmlHandler::startElement(const QString& namespaceURI, const QS
- if (qName.compare("data") == 0) {
+ if (qName == "image") {
+ m_title = QString();
+ m_date = QDateTime(QDate(1970, 1, 1));
+ } else if (qName == "title") {
+ m_state = InTitle;
+ } else if (qName == "date") {
+ m_state = InDate;
+ } else if (qName == "data") {
m_state = InData;
@@ -97,3 +108,7 @@ bool DrawPadCanvasXmlHandler::endElement(const QString& namespaceURI, const QStr
- if (qName.compare("data") == 0) {
+ if (qName == "title") {
+ m_state = Unknown;
+ } else if (qName == "date") {
+ m_state = Unknown;
+ } else if (qName == "data") {
m_state = Unknown;
@@ -104,5 +119,9 @@ bool DrawPadCanvasXmlHandler::endElement(const QString& namespaceURI, const QStr
-bool DrawPadCanvasXmlHandler::characters(const QString& ch)
+bool DrawPadCanvasXmlHandler::characters(const QString& ch)
{
- if (m_state == InData) {
+ if (m_state == InTitle) {
+ m_title = ch;
+ } else if (m_state == InDate) {
+ m_date = m_date.addSecs(ch.toInt());
+ } else if (m_state == InData) {
QByteArray byteArray(ch.length() / 2);
@@ -147,3 +166,4 @@ bool DrawPadCanvasXmlHandler::characters(const QString& ch)
- Page* page = new Page(image.width(), image.height());
+ Page* page = new Page(m_title, image.width(), image.height());
+ page->setLastModified(m_date);
page->convertFromImage(image);
@@ -184,3 +204,3 @@ void DrawPadCanvas::load(QIODevice* ioDevice)
if (m_pages.isEmpty()) {
- m_pages.append(new Page(contentsRect().size()));
+ m_pages.append(new Page("", contentsRect().size()));
m_pages.current()->fill(Qt::white);
@@ -200,3 +220,3 @@ void DrawPadCanvas::initialPage()
{
- m_pages.append(new Page(236, 232));
+ m_pages.append(new Page("", 236, 232));
m_pages.current()->fill(Qt::white);
@@ -225,2 +245,6 @@ void DrawPadCanvas::save(QIODevice* ioDevice)
textStream << " <image>" << endl;
+ textStream << " <title>" << bufferIterator.current()->title() << "</title>" << endl;
+
+ int intDate = QDateTime(QDate(1970, 1, 1)).secsTo(bufferIterator.current()->lastModified());
+ textStream << " <date>" << intDate << "</date>" << endl;
@@ -343,3 +367,5 @@ void DrawPadCanvas::backupPage()
{
- QPixmap* currentBackup = m_pageBackups.current();
+ m_pages.current()->setLastModified(QDateTime::currentDateTime());
+
+ Page* currentBackup = m_pageBackups.current();
while (m_pageBackups.last() != currentBackup) {
@@ -361,3 +387,3 @@ void DrawPadCanvas::deleteAll()
- m_pages.append(new Page(contentsRect().size()));
+ m_pages.append(new Page("", contentsRect().size()));
m_pages.current()->fill(Qt::white);
@@ -374,5 +400,5 @@ void DrawPadCanvas::deleteAll()
-void DrawPadCanvas::newPage(uint width, uint height, const QColor& color)
+void DrawPadCanvas::newPage(QString title, uint width, uint height, const QColor& color)
{
- m_pages.insert(m_pages.at() + 1, new Page(width, height));
+ m_pages.insert(m_pages.at() + 1, new Page(title, width, height));
m_pages.current()->fill(color);
@@ -407,3 +433,3 @@ void DrawPadCanvas::deletePage()
if (m_pages.isEmpty()) {
- m_pages.append(new Page(contentsRect().size()));
+ m_pages.append(new Page("", contentsRect().size()));
m_pages.current()->fill(Qt::white);