-rw-r--r-- | noncore/graphics/drawpad/drawpad.cpp | 6 | ||||
-rw-r--r-- | noncore/graphics/drawpad/drawpadcanvas.cpp | 50 | ||||
-rw-r--r-- | noncore/graphics/drawpad/drawpadcanvas.h | 2 | ||||
-rw-r--r-- | noncore/graphics/drawpad/newpagedialog.cpp | 5 | ||||
-rw-r--r-- | noncore/graphics/drawpad/newpagedialog.h | 1 | ||||
-rw-r--r-- | noncore/graphics/drawpad/page.cpp | 6 | ||||
-rw-r--r-- | noncore/graphics/drawpad/page.h | 4 | ||||
-rw-r--r-- | noncore/graphics/drawpad/thumbnailview.cpp | 4 |
8 files changed, 57 insertions, 21 deletions
diff --git a/noncore/graphics/drawpad/drawpad.cpp b/noncore/graphics/drawpad/drawpad.cpp index 369e7f0..45fb886 100644 --- a/noncore/graphics/drawpad/drawpad.cpp +++ b/noncore/graphics/drawpad/drawpad.cpp @@ -23,6 +23,7 @@ #include "importdialog.h" #include "linetool.h" #include "newpagedialog.h" +#include "page.h" #include "pageinformationdialog.h" #include "pointtool.h" #include "rectangletool.h" @@ -281,8 +282,8 @@ void DrawPad::newPage() NewPageDialog newPageDialog(rect.width(), rect.height(), m_pen.color(), m_brush.color(), this); if (newPageDialog.exec() == QDialog::Accepted) { - m_pDrawPadCanvas->newPage(newPageDialog.selectedWidth(), newPageDialog.selectedHeight(), - newPageDialog.selectedColor()); + m_pDrawPadCanvas->newPage(newPageDialog.selectedTitle(), newPageDialog.selectedWidth(), + newPageDialog.selectedHeight(), newPageDialog.selectedColor()); } } @@ -604,5 +605,6 @@ void DrawPad::pageInformation() PageInformationDialog pageInformationDialog(m_pDrawPadCanvas->currentPage()); if (pageInformationDialog.exec() == QDialog::Accepted) { + m_pDrawPadCanvas->currentPage()->setTitle(pageInformationDialog.selectedTitle()); } } 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 @@ -47,10 +47,14 @@ public: private: enum State { Unknown, + InTitle, + InDate, InData }; State m_state; + QString m_title; + QDateTime m_date; ulong m_dataLenght; QString m_dataFormat; QList<Page> m_pages; @@ -76,7 +80,14 @@ bool DrawPadCanvasXmlHandler::startElement(const QString& namespaceURI, const QS Q_CONST_UNUSED(namespaceURI) Q_CONST_UNUSED(localName) - 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; m_dataLenght = atts.value("length").toULong(); m_dataFormat = atts.value("format"); @@ -95,16 +106,24 @@ bool DrawPadCanvasXmlHandler::endElement(const QString& namespaceURI, const QStr Q_CONST_UNUSED(namespaceURI) Q_CONST_UNUSED(localName) - 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; } return true; } -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); for (int i = 0; i < (int)ch.length() / 2; i++) { @@ -145,7 +164,8 @@ bool DrawPadCanvasXmlHandler::characters(const QString& ch) image.loadFromData((const uchar*)byteArray.data(), m_dataLenght, m_dataFormat); } - 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); m_pages.append(page); } @@ -182,7 +202,7 @@ void DrawPadCanvas::load(QIODevice* ioDevice) m_pages = drawPadCanvasXmlHandler.pages(); if (m_pages.isEmpty()) { - m_pages.append(new Page(contentsRect().size())); + m_pages.append(new Page("", contentsRect().size())); m_pages.current()->fill(Qt::white); } @@ -198,7 +218,7 @@ void DrawPadCanvas::load(QIODevice* ioDevice) void DrawPadCanvas::initialPage() { - m_pages.append(new Page(236, 232)); + m_pages.append(new Page("", 236, 232)); m_pages.current()->fill(Qt::white); m_pageBackups.clear(); @@ -223,6 +243,10 @@ void DrawPadCanvas::save(QIODevice* ioDevice) for (bufferIterator.toFirst(); bufferIterator.current() != 0; ++bufferIterator) { 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; QImage image = bufferIterator.current()->convertToImage(); QByteArray byteArray; @@ -341,7 +365,9 @@ void DrawPadCanvas::selectPage(Page* page) void DrawPadCanvas::backupPage() { - QPixmap* currentBackup = m_pageBackups.current(); + m_pages.current()->setLastModified(QDateTime::currentDateTime()); + + Page* currentBackup = m_pageBackups.current(); while (m_pageBackups.last() != currentBackup) { m_pageBackups.removeLast(); } @@ -359,7 +385,7 @@ void DrawPadCanvas::deleteAll() { m_pages.clear(); - m_pages.append(new Page(contentsRect().size())); + m_pages.append(new Page("", contentsRect().size())); m_pages.current()->fill(Qt::white); m_pageBackups.clear(); @@ -372,9 +398,9 @@ void DrawPadCanvas::deleteAll() emit pageBackupsChanged(); } -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); m_pageBackups.clear(); @@ -405,7 +431,7 @@ void DrawPadCanvas::deletePage() m_pages.remove(m_pages.current()); if (m_pages.isEmpty()) { - m_pages.append(new Page(contentsRect().size())); + m_pages.append(new Page("", contentsRect().size())); m_pages.current()->fill(Qt::white); } diff --git a/noncore/graphics/drawpad/drawpadcanvas.h b/noncore/graphics/drawpad/drawpadcanvas.h index 39cf752..dcaff5c 100644 --- a/noncore/graphics/drawpad/drawpadcanvas.h +++ b/noncore/graphics/drawpad/drawpadcanvas.h @@ -52,7 +52,7 @@ public: public slots: void deleteAll(); - void newPage(uint width, uint height, const QColor& color); + void newPage(QString title, uint width, uint height, const QColor& color); void clearPage(); void deletePage(); void movePageUp(); diff --git a/noncore/graphics/drawpad/newpagedialog.cpp b/noncore/graphics/drawpad/newpagedialog.cpp index ff31aad..e6e7fcb 100644 --- a/noncore/graphics/drawpad/newpagedialog.cpp +++ b/noncore/graphics/drawpad/newpagedialog.cpp @@ -85,6 +85,11 @@ NewPageDialog::~NewPageDialog() { } +QString NewPageDialog::selectedTitle() +{ + return (m_pTitleLineEdit->text()); +} + uint NewPageDialog::selectedWidth() { return (m_pWidthSpinBox->value()); diff --git a/noncore/graphics/drawpad/newpagedialog.h b/noncore/graphics/drawpad/newpagedialog.h index fe8f562..c8f84b8 100644 --- a/noncore/graphics/drawpad/newpagedialog.h +++ b/noncore/graphics/drawpad/newpagedialog.h @@ -29,6 +29,7 @@ public: const QColor& backgroundColor, QWidget* parent = 0, const char* name = 0); ~NewPageDialog(); + QString selectedTitle(); uint selectedWidth(); uint selectedHeight(); const QColor& selectedColor(); diff --git a/noncore/graphics/drawpad/page.cpp b/noncore/graphics/drawpad/page.cpp index 7034a20..601d1c3 100644 --- a/noncore/graphics/drawpad/page.cpp +++ b/noncore/graphics/drawpad/page.cpp @@ -19,15 +19,17 @@ Page::Page() m_lastModified = QDateTime::currentDateTime(); } -Page::Page(int w, int h) +Page::Page(QString title, int w, int h) : QPixmap(w, h) { + m_title = title; m_lastModified = QDateTime::currentDateTime(); } -Page::Page(const QSize& size) +Page::Page(QString title, const QSize& size) : QPixmap(size) { + m_title = title; m_lastModified = QDateTime::currentDateTime(); } diff --git a/noncore/graphics/drawpad/page.h b/noncore/graphics/drawpad/page.h index 020ab1f..20a37b5 100644 --- a/noncore/graphics/drawpad/page.h +++ b/noncore/graphics/drawpad/page.h @@ -22,8 +22,8 @@ class Page : public QPixmap { public: Page(); - Page(int w, int h); - Page(const QSize& size); + Page(QString title, int w, int h); + Page(QString title, const QSize& size); ~Page(); diff --git a/noncore/graphics/drawpad/thumbnailview.cpp b/noncore/graphics/drawpad/thumbnailview.cpp index 35955e8..81ec79f 100644 --- a/noncore/graphics/drawpad/thumbnailview.cpp +++ b/noncore/graphics/drawpad/thumbnailview.cpp @@ -321,8 +321,8 @@ void ThumbnailView::newPage() m_pDrawPad->brush().color(), this); if (newPageDialog.exec() == QDialog::Accepted) { - m_pDrawPadCanvas->newPage(newPageDialog.selectedWidth(), newPageDialog.selectedHeight(), - newPageDialog.selectedColor()); + m_pDrawPadCanvas->newPage(newPageDialog.selectedTitle(), newPageDialog.selectedWidth(), + newPageDialog.selectedHeight(), newPageDialog.selectedColor()); m_pPageListBox->updateView(); updateView(); } |