summaryrefslogtreecommitdiff
authorzecke <zecke>2004-04-08 00:42:01 (UTC)
committer zecke <zecke>2004-04-08 00:42:01 (UTC)
commit5afca2540a2d6bf733c89ea97748496a679bc576 (patch) (unidiff)
tree3e4e419ccc0e1b1cb71cc2cf7e75d36f9301de81
parent8c54ad421c7bee65b2a1442ce85c09f2eff3efc6 (diff)
downloadopie-5afca2540a2d6bf733c89ea97748496a679bc576.zip
opie-5afca2540a2d6bf733c89ea97748496a679bc576.tar.gz
opie-5afca2540a2d6bf733c89ea97748496a679bc576.tar.bz2
Import a QPixmap via QCOP
Diffstat (more/less context) (ignore whitespace changes)
-rw-r--r--noncore/graphics/drawpad/drawpad.cpp19
-rw-r--r--noncore/graphics/drawpad/drawpad.h2
-rw-r--r--noncore/graphics/drawpad/drawpadcanvas.cpp20
-rw-r--r--noncore/graphics/drawpad/drawpadcanvas.h5
4 files changed, 40 insertions, 6 deletions
diff --git a/noncore/graphics/drawpad/drawpad.cpp b/noncore/graphics/drawpad/drawpad.cpp
index 3331193..d9d0ce0 100644
--- a/noncore/graphics/drawpad/drawpad.cpp
+++ b/noncore/graphics/drawpad/drawpad.cpp
@@ -1,120 +1,122 @@
1/*************************************************************************** 1/***************************************************************************
2 * * 2 * *
3 * DrawPad - a drawing program for Opie Environment * 3 * DrawPad - a drawing program for Opie Environment *
4 * * 4 * *
5 * (C) 2002 by S. Prud'homme <prudhomme@laposte.net> * 5 * (C) 2002 by S. Prud'homme <prudhomme@laposte.net> *
6 * * 6 * *
7 * This program is free software; you can redistribute it and/or modify * 7 * This program is free software; you can redistribute it and/or modify *
8 * it under the terms of the GNU General Public License as published by * 8 * it under the terms of the GNU General Public License as published by *
9 * the Free Software Foundation; either version 2 of the License, or * 9 * the Free Software Foundation; either version 2 of the License, or *
10 * (at your option) any later version. * 10 * (at your option) any later version. *
11 * * 11 * *
12 ***************************************************************************/ 12 ***************************************************************************/
13 13
14#include "drawpad.h" 14#include "drawpad.h"
15 15
16#include "drawpadcanvas.h" 16#include "drawpadcanvas.h"
17#include "ellipsetool.h" 17#include "ellipsetool.h"
18#include "erasetool.h" 18#include "erasetool.h"
19#include "exportdialog.h" 19#include "exportdialog.h"
20#include "filledellipsetool.h" 20#include "filledellipsetool.h"
21#include "filledrectangletool.h" 21#include "filledrectangletool.h"
22#include "filltool.h" 22#include "filltool.h"
23#include "importdialog.h" 23#include "importdialog.h"
24#include "linetool.h" 24#include "linetool.h"
25#include "newpagedialog.h" 25#include "newpagedialog.h"
26#include "page.h" 26#include "page.h"
27#include "pageinformationdialog.h" 27#include "pageinformationdialog.h"
28#include "pointtool.h" 28#include "pointtool.h"
29#include "rectangletool.h" 29#include "rectangletool.h"
30#include "texttool.h" 30#include "texttool.h"
31#include "thumbnailview.h" 31#include "thumbnailview.h"
32 32
33#include <opie2/qcolordialog.h> 33#include <opie2/qcolordialog.h>
34#include <opie2/ocolorpopupmenu.h> 34#include <opie2/ocolorpopupmenu.h>
35 35
36#include <qpe/applnk.h> 36#include <qpe/applnk.h>
37#include <qpe/config.h> 37#include <qpe/config.h>
38#include <qtoolbar.h> 38#include <qtoolbar.h>
39#include <qpe/resource.h> 39#include <qpe/resource.h>
40#include <qpe/qpeapplication.h> 40#include <qpe/qpeapplication.h>
41 41
42#include <qmenubar.h> 42#include <qmenubar.h>
43#include <qaction.h> 43#include <qaction.h>
44#include <qfile.h> 44#include <qfile.h>
45#include <qmessagebox.h> 45#include <qmessagebox.h>
46#include <qspinbox.h> 46#include <qspinbox.h>
47#include <qtoolbutton.h> 47#include <qtoolbutton.h>
48#include <qtooltip.h> 48#include <qtooltip.h>
49#include <qwhatsthis.h> 49#include <qwhatsthis.h>
50 50
51using namespace Opie::Ui; 51using namespace Opie::Ui;
52using namespace Opie::Ui; 52using namespace Opie::Ui;
53DrawPad::DrawPad(QWidget* parent, const char* name, WFlags /*fl*/ ) 53DrawPad::DrawPad(QWidget* parent, const char* name, WFlags /*fl*/ )
54 : QMainWindow(parent, name, WStyle_ContextHelp) 54 : QMainWindow(parent, name, WStyle_ContextHelp)
55{ 55{
56 // init members 56 // init members
57 connect( qApp, SIGNAL(appMessage(const QCString&, const QByteArray&)),
58 this, SLOT(slotAppMessage(const QCString&, const QByteArray&)) );
57 59
58 m_pDrawPadCanvas = new DrawPadCanvas(this, this); 60 m_pDrawPadCanvas = new DrawPadCanvas(this, this);
59 61
60 connect(m_pDrawPadCanvas, SIGNAL(pagesChanged()), this, SLOT(updateView())); 62 connect(m_pDrawPadCanvas, SIGNAL(pagesChanged()), this, SLOT(updateView()));
61 63
62 setCentralWidget(m_pDrawPadCanvas); 64 setCentralWidget(m_pDrawPadCanvas);
63 65
64 // init menu 66 // init menu
65 67
66 setToolBarsMovable(false); 68 setToolBarsMovable(false);
67 69
68 QToolBar* menuToolBar = new QToolBar(this); 70 QToolBar* menuToolBar = new QToolBar(this);
69 QMenuBar* menuBar = new QMenuBar(menuToolBar); 71 QMenuBar* menuBar = new QMenuBar(menuToolBar);
70 72
71 QPopupMenu* toolsPopupMenu = new QPopupMenu(menuBar); 73 QPopupMenu* toolsPopupMenu = new QPopupMenu(menuBar);
72 74
73 QAction* deleteAllAction = new QAction(tr("Delete All"), QString::null, 0, this); 75 QAction* deleteAllAction = new QAction(tr("Delete All"), QString::null, 0, this);
74 connect(deleteAllAction, SIGNAL(activated()), this, SLOT(deleteAll())); 76 connect(deleteAllAction, SIGNAL(activated()), this, SLOT(deleteAll()));
75 deleteAllAction->addTo(toolsPopupMenu); 77 deleteAllAction->addTo(toolsPopupMenu);
76 78
77 toolsPopupMenu->insertSeparator(); 79 toolsPopupMenu->insertSeparator();
78 80
79 QAction* importPageAction = new QAction(tr("Import"), tr("Import..."), 0, this); 81 QAction* importPageAction = new QAction(tr("Import"), tr("Import..."), 0, this);
80 connect(importPageAction, SIGNAL(activated()), this, SLOT(importPage())); 82 connect(importPageAction, SIGNAL(activated()), this, SLOT(importPage()));
81 importPageAction->addTo(toolsPopupMenu); 83 importPageAction->addTo(toolsPopupMenu);
82 84
83 QAction* exportPageAction = new QAction(tr("Export"), tr("Export..."), 0, this); 85 QAction* exportPageAction = new QAction(tr("Export"), tr("Export..."), 0, this);
84 connect(exportPageAction, SIGNAL(activated()), this, SLOT(exportPage())); 86 connect(exportPageAction, SIGNAL(activated()), this, SLOT(exportPage()));
85 exportPageAction->addTo(toolsPopupMenu); 87 exportPageAction->addTo(toolsPopupMenu);
86 88
87 toolsPopupMenu->insertSeparator(); 89 toolsPopupMenu->insertSeparator();
88 90
89 QAction* thumbnailViewAction = new QAction(tr("Thumbnail View"), tr("Thumbnail View..."), 0, this); 91 QAction* thumbnailViewAction = new QAction(tr("Thumbnail View"), tr("Thumbnail View..."), 0, this);
90 connect(thumbnailViewAction, SIGNAL(activated()), this, SLOT(thumbnailView())); 92 connect(thumbnailViewAction, SIGNAL(activated()), this, SLOT(thumbnailView()));
91 thumbnailViewAction->addTo(toolsPopupMenu); 93 thumbnailViewAction->addTo(toolsPopupMenu);
92 94
93 QAction* pageInformationAction = new QAction(tr("Page Information"), tr("Page Information..."), 0, this); 95 QAction* pageInformationAction = new QAction(tr("Page Information"), tr("Page Information..."), 0, this);
94 connect(pageInformationAction, SIGNAL(activated()), this, SLOT(pageInformation())); 96 connect(pageInformationAction, SIGNAL(activated()), this, SLOT(pageInformation()));
95 pageInformationAction->addTo(toolsPopupMenu); 97 pageInformationAction->addTo(toolsPopupMenu);
96 98
97 toolsPopupMenu->insertSeparator(); 99 toolsPopupMenu->insertSeparator();
98 100
99 m_pAntiAliasingAction = new QAction(tr("Anti-Aliasing"), QString::null, 0, this); 101 m_pAntiAliasingAction = new QAction(tr("Anti-Aliasing"), QString::null, 0, this);
100 m_pAntiAliasingAction->setToggleAction(true); 102 m_pAntiAliasingAction->setToggleAction(true);
101 m_pAntiAliasingAction->addTo(toolsPopupMenu); 103 m_pAntiAliasingAction->addTo(toolsPopupMenu);
102 104
103 menuBar->insertItem(tr("Tools"), toolsPopupMenu); 105 menuBar->insertItem(tr("Tools"), toolsPopupMenu);
104 106
105 // init page toolbar 107 // init page toolbar
106 108
107 QToolBar* pageToolBar = new QToolBar(this); 109 QToolBar* pageToolBar = new QToolBar(this);
108 110
109 QAction* newPageAction = new QAction(tr("New Page"), Resource::loadPixmap("new"), QString::null, 0, this); 111 QAction* newPageAction = new QAction(tr("New Page"), Resource::loadPixmap("new"), QString::null, 0, this);
110 connect(newPageAction, SIGNAL(activated()), this, SLOT(newPage())); 112 connect(newPageAction, SIGNAL(activated()), this, SLOT(newPage()));
111 newPageAction->addTo(pageToolBar); 113 newPageAction->addTo(pageToolBar);
112 newPageAction->setWhatsThis( tr( "Click here to add a new sheet." ) ); 114 newPageAction->setWhatsThis( tr( "Click here to add a new sheet." ) );
113 115
114 QAction* clearPageAction = new QAction(tr("Clear Page"), Resource::loadPixmap("drawpad/clear"), QString::null, 0, this); 116 QAction* clearPageAction = new QAction(tr("Clear Page"), Resource::loadPixmap("drawpad/clear"), QString::null, 0, this);
115 connect(clearPageAction, SIGNAL(activated()), this, SLOT(clearPage())); 117 connect(clearPageAction, SIGNAL(activated()), this, SLOT(clearPage()));
116 clearPageAction->addTo(pageToolBar); 118 clearPageAction->addTo(pageToolBar);
117 clearPageAction->setWhatsThis( tr( "Click here to erase the current sheet." ) ); 119 clearPageAction->setWhatsThis( tr( "Click here to erase the current sheet." ) );
118 120
119 QAction* deletePageAction = new QAction(tr("Delete Page"), Resource::loadPixmap("trash"), QString::null, 0, this); 121 QAction* deletePageAction = new QAction(tr("Delete Page"), Resource::loadPixmap("trash"), QString::null, 0, this);
120 connect(deletePageAction, SIGNAL(activated()), this, SLOT(deletePage())); 122 connect(deletePageAction, SIGNAL(activated()), this, SLOT(deletePage()));
@@ -602,64 +604,81 @@ void DrawPad::deleteAll()
602void DrawPad::importPage() 604void DrawPad::importPage()
603{ 605{
604 ImportDialog importDialog(this); 606 ImportDialog importDialog(this);
605 607
606 if ( QPEApplication::execDialog( &importDialog ) == QDialog::Accepted ) { 608 if ( QPEApplication::execDialog( &importDialog ) == QDialog::Accepted ) {
607 const DocLnk* docLnk = importDialog.selected(); 609 const DocLnk* docLnk = importDialog.selected();
608 610
609 if (docLnk) { 611 if (docLnk) {
610 m_pDrawPadCanvas->importPage(docLnk->file()); 612 m_pDrawPadCanvas->importPage(docLnk->file());
611 delete docLnk; 613 delete docLnk;
612 } 614 }
613 } 615 }
614} 616}
615 617
616void DrawPad::exportPage() 618void DrawPad::exportPage()
617{ 619{
618 ExportDialog exportDialog(m_pDrawPadCanvas->pagePosition(), m_pDrawPadCanvas->pageCount(), this); 620 ExportDialog exportDialog(m_pDrawPadCanvas->pagePosition(), m_pDrawPadCanvas->pageCount(), this);
619 621
620 if ( QPEApplication::execDialog( &exportDialog ) == QDialog::Accepted ) { 622 if ( QPEApplication::execDialog( &exportDialog ) == QDialog::Accepted ) {
621 m_pDrawPadCanvas->exportPage(exportDialog.selectedFromPage(), exportDialog.selectedToPage(), 623 m_pDrawPadCanvas->exportPage(exportDialog.selectedFromPage(), exportDialog.selectedToPage(),
622 exportDialog.selectedName(), exportDialog.selectedFormat()); 624 exportDialog.selectedName(), exportDialog.selectedFormat());
623 } 625 }
624} 626}
625 627
626void DrawPad::thumbnailView() 628void DrawPad::thumbnailView()
627{ 629{
628 ThumbnailView thumbnailView(this, m_pDrawPadCanvas, this); 630 ThumbnailView thumbnailView(this, m_pDrawPadCanvas, this);
629 631
630 QPEApplication::showWidget( &thumbnailView ); 632 QPEApplication::showWidget( &thumbnailView );
631 thumbnailView.exec(); 633 thumbnailView.exec();
632} 634}
633 635
634void DrawPad::pageInformation() 636void DrawPad::pageInformation()
635{ 637{
636 PageInformationDialog pageInformationDialog(m_pDrawPadCanvas->currentPage()); 638 PageInformationDialog pageInformationDialog(m_pDrawPadCanvas->currentPage());
637 639
638 if (pageInformationDialog.exec() == QDialog::Accepted) { 640 if (pageInformationDialog.exec() == QDialog::Accepted) {
639 m_pDrawPadCanvas->currentPage()->setTitle(pageInformationDialog.selectedTitle()); 641 m_pDrawPadCanvas->currentPage()->setTitle(pageInformationDialog.selectedTitle());
640 } 642 }
641} 643}
642 644
643void DrawPad::loadConfig() 645void DrawPad::loadConfig()
644{ 646{
645 Config config("drawpad"); 647 Config config("drawpad");
646 config.setGroup("General"); 648 config.setGroup("General");
647 649
648 m_pAntiAliasingAction->setOn(config.readBoolEntry("AntiAliasing", false)); 650 m_pAntiAliasingAction->setOn(config.readBoolEntry("AntiAliasing", false));
649 m_pPenWidthSpinBox->setValue(config.readNumEntry("PenWidth", 1)); 651 m_pPenWidthSpinBox->setValue(config.readNumEntry("PenWidth", 1));
650 changePenColor(QColor(config.readEntry("PenColor", Qt::black.name()))); 652 changePenColor(QColor(config.readEntry("PenColor", Qt::black.name())));
651 changeBrushColor(QColor(config.readEntry("BrushColor", Qt::white.name()))); 653 changeBrushColor(QColor(config.readEntry("BrushColor", Qt::white.name())));
652 m_pDrawPadCanvas->selectPage(config.readNumEntry("PagePosition", 1)); 654 m_pDrawPadCanvas->selectPage(config.readNumEntry("PagePosition", 1));
653} 655}
654 656
655void DrawPad::saveConfig() 657void DrawPad::saveConfig()
656{ 658{
657 Config config("drawpad"); 659 Config config("drawpad");
658 config.setGroup("General"); 660 config.setGroup("General");
659 661
660 config.writeEntry("PagePosition", (int)m_pDrawPadCanvas->pagePosition()); 662 config.writeEntry("PagePosition", (int)m_pDrawPadCanvas->pagePosition());
661 config.writeEntry("AntiAliasing", antiAliasing()); 663 config.writeEntry("AntiAliasing", antiAliasing());
662 config.writeEntry("PenWidth", (int)m_pen.width()); 664 config.writeEntry("PenWidth", (int)m_pen.width());
663 config.writeEntry("PenColor", m_pen.color().name()); 665 config.writeEntry("PenColor", m_pen.color().name());
664 config.writeEntry("BrushColor", m_brush.color().name()); 666 config.writeEntry("BrushColor", m_brush.color().name());
665} 667}
668
669
670/*
671 * Import a Thumbnail from SCAP or similiar
672 */
673void DrawPad::slotAppMessage( const QCString& str, const QByteArray& ar ) {
674 QDataStream stream(ar, IO_ReadOnly );
675 /*
676 * import the pixmap
677 */
678 if ( str == "importPixmap(QPixmap)" ) {
679 QPixmap pix;
680 stream >> pix;;
681 m_pDrawPadCanvas->importPixmap( pix );
682 QPEApplication::setKeepRunning();
683 }
684}
diff --git a/noncore/graphics/drawpad/drawpad.h b/noncore/graphics/drawpad/drawpad.h
index 8ba6e58..ba9e47d 100644
--- a/noncore/graphics/drawpad/drawpad.h
+++ b/noncore/graphics/drawpad/drawpad.h
@@ -1,112 +1,114 @@
1/*************************************************************************** 1/***************************************************************************
2 * * 2 * *
3 * DrawPad - a drawing program for Opie Environment * 3 * DrawPad - a drawing program for Opie Environment *
4 * * 4 * *
5 * (C) 2002 by S. Prud'homme <prudhomme@laposte.net> * 5 * (C) 2002 by S. Prud'homme <prudhomme@laposte.net> *
6 * * 6 * *
7 * This program is free software; you can redistribute it and/or modify * 7 * This program is free software; you can redistribute it and/or modify *
8 * it under the terms of the GNU General Public License as published by * 8 * it under the terms of the GNU General Public License as published by *
9 * the Free Software Foundation; either version 2 of the License, or * 9 * the Free Software Foundation; either version 2 of the License, or *
10 * (at your option) any later version. * 10 * (at your option) any later version. *
11 * * 11 * *
12 ***************************************************************************/ 12 ***************************************************************************/
13 13
14#ifndef DRAWPAD_H 14#ifndef DRAWPAD_H
15#define DRAWPAD_H 15#define DRAWPAD_H
16 16
17#include <qmainwindow.h> 17#include <qmainwindow.h>
18#include <qpen.h> 18#include <qpen.h>
19 19
20class DrawPadCanvas; 20class DrawPadCanvas;
21class Tool; 21class Tool;
22 22
23class QAction; 23class QAction;
24class QColor; 24class QColor;
25class QSpinBox; 25class QSpinBox;
26class QToolButton; 26class QToolButton;
27class QWidgetStack; 27class QWidgetStack;
28 28
29class DrawPad : public QMainWindow 29class DrawPad : public QMainWindow
30{ 30{
31 Q_OBJECT 31 Q_OBJECT
32 32
33public: 33public:
34 DrawPad(QWidget* parent = 0, const char* name = 0, WFlags fl = 0); 34 DrawPad(QWidget* parent = 0, const char* name = 0, WFlags fl = 0);
35 ~DrawPad(); 35 ~DrawPad();
36 36
37 static QString appName() { return QString::fromLatin1("drawpad"); } 37 static QString appName() { return QString::fromLatin1("drawpad"); }
38 38
39 Tool* tool() { return m_pTool; } 39 Tool* tool() { return m_pTool; }
40 QPen pen() { return m_pen; } 40 QPen pen() { return m_pen; }
41 QBrush brush() { return m_brush; } 41 QBrush brush() { return m_brush; }
42 42
43 bool antiAliasing(); 43 bool antiAliasing();
44 void finishStartup(); 44 void finishStartup();
45 45
46private slots: 46private slots:
47 void newPage(); 47 void newPage();
48 void clearPage(); 48 void clearPage();
49 void deletePage(); 49 void deletePage();
50 50
51 void slotAppMessage( const QCString&, const QByteArray& );
52
51 void setPointTool(); 53 void setPointTool();
52 void setLineTool(); 54 void setLineTool();
53 void setRectangleTool(); 55 void setRectangleTool();
54 void setFilledRectangleTool(); 56 void setFilledRectangleTool();
55 void setEllipseTool(); 57 void setEllipseTool();
56 void setFilledEllipseTool(); 58 void setFilledEllipseTool();
57 void setTextTool(); 59 void setTextTool();
58 void setFillTool(); 60 void setFillTool();
59 void setEraseTool(); 61 void setEraseTool();
60 62
61 void changePenWidth(int value); 63 void changePenWidth(int value);
62 void changePenColor(const QColor& color); 64 void changePenColor(const QColor& color);
63 void changeBrushColor(const QColor& color); 65 void changeBrushColor(const QColor& color);
64 66
65 void updateView(); 67 void updateView();
66 68
67 void deleteAll(); 69 void deleteAll();
68 void importPage(); 70 void importPage();
69 void exportPage(); 71 void exportPage();
70 void thumbnailView(); 72 void thumbnailView();
71 void pageInformation(); 73 void pageInformation();
72 74
73private: 75private:
74 void loadConfig(); 76 void loadConfig();
75 void saveConfig(); 77 void saveConfig();
76 78
77 DrawPadCanvas* m_pDrawPadCanvas; 79 DrawPadCanvas* m_pDrawPadCanvas;
78 80
79 Tool* m_pTool; 81 Tool* m_pTool;
80 QPen m_pen; 82 QPen m_pen;
81 QBrush m_brush; 83 QBrush m_brush;
82 84
83 QAction* m_pAntiAliasingAction; 85 QAction* m_pAntiAliasingAction;
84 86
85 QAction* m_pUndoAction; 87 QAction* m_pUndoAction;
86 QAction* m_pRedoAction; 88 QAction* m_pRedoAction;
87 89
88 QAction* m_pFirstPageAction; 90 QAction* m_pFirstPageAction;
89 QAction* m_pPreviousPageAction; 91 QAction* m_pPreviousPageAction;
90 QAction* m_pNextPageAction; 92 QAction* m_pNextPageAction;
91 QAction* m_pLastPageAction; 93 QAction* m_pLastPageAction;
92 94
93 QAction* m_pPointToolAction; 95 QAction* m_pPointToolAction;
94 QAction* m_pLineToolAction; 96 QAction* m_pLineToolAction;
95 QAction* m_pRectangleToolAction; 97 QAction* m_pRectangleToolAction;
96 QAction* m_pFilledRectangleToolAction; 98 QAction* m_pFilledRectangleToolAction;
97 QAction* m_pEllipseToolAction; 99 QAction* m_pEllipseToolAction;
98 QAction* m_pFilledEllipseToolAction; 100 QAction* m_pFilledEllipseToolAction;
99 QAction* m_pTextToolAction; 101 QAction* m_pTextToolAction;
100 QAction* m_pFillToolAction; 102 QAction* m_pFillToolAction;
101 QAction* m_pEraseToolAction; 103 QAction* m_pEraseToolAction;
102 104
103 QToolButton* m_pLineToolButton; 105 QToolButton* m_pLineToolButton;
104 QToolButton* m_pRectangleToolButton; 106 QToolButton* m_pRectangleToolButton;
105 QToolButton* m_pEllipseToolButton; 107 QToolButton* m_pEllipseToolButton;
106 QToolButton* m_pPenColorToolButton; 108 QToolButton* m_pPenColorToolButton;
107 QToolButton* m_pBrushColorToolButton; 109 QToolButton* m_pBrushColorToolButton;
108 110
109 QSpinBox* m_pPenWidthSpinBox; 111 QSpinBox* m_pPenWidthSpinBox;
110}; 112};
111 113
112#endif // DRAWPAD_H 114#endif // DRAWPAD_H
diff --git a/noncore/graphics/drawpad/drawpadcanvas.cpp b/noncore/graphics/drawpad/drawpadcanvas.cpp
index 446096c..423ef26 100644
--- a/noncore/graphics/drawpad/drawpadcanvas.cpp
+++ b/noncore/graphics/drawpad/drawpadcanvas.cpp
@@ -119,338 +119,350 @@ bool DrawPadCanvasXmlHandler::characters(const QString& ch)
119 QByteArray byteArray(ch.length() / 2); 119 QByteArray byteArray(ch.length() / 2);
120 120
121 for (int i = 0; i < (int)ch.length() / 2; i++) { 121 for (int i = 0; i < (int)ch.length() / 2; i++) {
122 char h = ch[2 * i].latin1(); 122 char h = ch[2 * i].latin1();
123 char l = ch[2 * i + 1].latin1(); 123 char l = ch[2 * i + 1].latin1();
124 uchar r = 0; 124 uchar r = 0;
125 125
126 if (h <= '9') { 126 if (h <= '9') {
127 r += h - '0'; 127 r += h - '0';
128 } else { 128 } else {
129 r += h - 'a' + 10; 129 r += h - 'a' + 10;
130 } 130 }
131 131
132 r = r << 4; 132 r = r << 4;
133 133
134 if (l <= '9') { 134 if (l <= '9') {
135 r += l - '0'; 135 r += l - '0';
136 } else { 136 } else {
137 r += l - 'a' + 10; 137 r += l - 'a' + 10;
138 } 138 }
139 139
140 byteArray[i] = r; 140 byteArray[i] = r;
141 } 141 }
142 142
143 QImage image; 143 QImage image;
144 image.loadFromData((const uchar*)byteArray.data(), m_dataLenght, m_dataFormat); 144 image.loadFromData((const uchar*)byteArray.data(), m_dataLenght, m_dataFormat);
145 145
146 Page* page = new Page(m_title, image.width(), image.height()); 146 Page* page = new Page(m_title, image.width(), image.height());
147 page->setLastModified(m_date); 147 page->setLastModified(m_date);
148 page->pixmap()->convertFromImage(image); 148 page->pixmap()->convertFromImage(image);
149 m_pages.append(page); 149 m_pages.append(page);
150 } 150 }
151 151
152 return true; 152 return true;
153} 153}
154 154
155DrawPadCanvas::DrawPadCanvas(DrawPad* drawPad, QWidget* parent, const char* name) 155DrawPadCanvas::DrawPadCanvas(DrawPad* drawPad, QWidget* parent, const char* name)
156 : QScrollView(parent, name) 156 : QScrollView(parent, name)
157{ 157{
158 m_pDrawPad = drawPad; 158 m_pDrawPad = drawPad;
159 m_pages.setAutoDelete(true); 159 m_pages.setAutoDelete(true);
160 160
161 viewport()->setBackgroundMode(QWidget::NoBackground); 161 viewport()->setBackgroundMode(QWidget::NoBackground);
162} 162}
163 163
164DrawPadCanvas::~DrawPadCanvas() 164DrawPadCanvas::~DrawPadCanvas()
165{ 165{
166} 166}
167 167
168void DrawPadCanvas::load(QIODevice* ioDevice) 168void DrawPadCanvas::load(QIODevice* ioDevice)
169{ 169{
170 QTextStream textStream(ioDevice); 170 QTextStream textStream(ioDevice);
171 textStream.setCodec(QTextCodec::codecForName("UTF-8")); 171 textStream.setCodec(QTextCodec::codecForName("UTF-8"));
172 172
173 QXmlInputSource xmlInputSource(textStream); 173 QXmlInputSource xmlInputSource(textStream);
174 QXmlSimpleReader xmlSimpleReader; 174 QXmlSimpleReader xmlSimpleReader;
175 DrawPadCanvasXmlHandler drawPadCanvasXmlHandler; 175 DrawPadCanvasXmlHandler drawPadCanvasXmlHandler;
176 176
177 xmlSimpleReader.setContentHandler(&drawPadCanvasXmlHandler); 177 xmlSimpleReader.setContentHandler(&drawPadCanvasXmlHandler);
178 xmlSimpleReader.parse(xmlInputSource); 178 xmlSimpleReader.parse(xmlInputSource);
179 179
180 m_pages = drawPadCanvasXmlHandler.pages(); 180 m_pages = drawPadCanvasXmlHandler.pages();
181 181
182 if (m_pages.isEmpty()) { 182 if (m_pages.isEmpty()) {
183 m_pages.append(new Page("", 183 m_pages.append(new Page("",
184 clipper()->width()+(verticalScrollBar()->isVisible()?verticalScrollBar()->width():0), 184 clipper()->width()+(verticalScrollBar()->isVisible()?verticalScrollBar()->width():0),
185 clipper()->height()+(horizontalScrollBar()->isVisible()?horizontalScrollBar()->height():0))); 185 clipper()->height()+(horizontalScrollBar()->isVisible()?horizontalScrollBar()->height():0)));
186 m_pages.current()->pixmap()->fill(Qt::white); 186 m_pages.current()->pixmap()->fill(Qt::white);
187 } 187 }
188 188
189 resizeContents(m_pages.current()->pixmap()->width(), m_pages.current()->pixmap()->height()); 189 resizeContents(m_pages.current()->pixmap()->width(), m_pages.current()->pixmap()->height());
190 viewport()->update(); 190 viewport()->update();
191 191
192 emit pagesChanged(); 192 emit pagesChanged();
193} 193}
194 194
195void DrawPadCanvas::initialPage() 195void DrawPadCanvas::initialPage()
196{ 196{
197 m_pages.append(new Page("", 197 m_pages.append(new Page("",
198 clipper()->width()+(verticalScrollBar()->isVisible()?verticalScrollBar()->width():0), 198 clipper()->width()+(verticalScrollBar()->isVisible()?verticalScrollBar()->width():0),
199 clipper()->height()+(horizontalScrollBar()->isVisible()?horizontalScrollBar()->height():0))); 199 clipper()->height()+(horizontalScrollBar()->isVisible()?horizontalScrollBar()->height():0)));
200 //236, 232)); no more fixed sizes 200 //236, 232)); no more fixed sizes
201 201
202 m_pages.current()->pixmap()->fill(Qt::white); 202 m_pages.current()->pixmap()->fill(Qt::white);
203 203
204 resizeContents(m_pages.current()->pixmap()->width(), m_pages.current()->pixmap()->height()); 204 resizeContents(m_pages.current()->pixmap()->width(), m_pages.current()->pixmap()->height());
205 viewport()->update(); 205 viewport()->update();
206 206
207 emit pagesChanged(); 207 emit pagesChanged();
208} 208}
209 209
210void DrawPadCanvas::save(QIODevice* ioDevice) 210void DrawPadCanvas::save(QIODevice* ioDevice)
211{ 211{
212 QTextStream textStream(ioDevice); 212 QTextStream textStream(ioDevice);
213 textStream.setCodec(QTextCodec::codecForName("UTF-8")); 213 textStream.setCodec(QTextCodec::codecForName("UTF-8"));
214 214
215 textStream << "<drawpad>" << endl; 215 textStream << "<drawpad>" << endl;
216 textStream << " <images>" << endl; 216 textStream << " <images>" << endl;
217 217
218 QListIterator<Page> bufferIterator(m_pages); 218 QListIterator<Page> bufferIterator(m_pages);
219 219
220 for (bufferIterator.toFirst(); bufferIterator.current() != 0; ++bufferIterator) { 220 for (bufferIterator.toFirst(); bufferIterator.current() != 0; ++bufferIterator) {
221 textStream << " <image>" << endl; 221 textStream << " <image>" << endl;
222 textStream << " <title>" << bufferIterator.current()->title() << "</title>" << endl; 222 textStream << " <title>" << bufferIterator.current()->title() << "</title>" << endl;
223 223
224 int intDate = QDateTime(QDate(1970, 1, 1)).secsTo(bufferIterator.current()->lastModified()); 224 int intDate = QDateTime(QDate(1970, 1, 1)).secsTo(bufferIterator.current()->lastModified());
225 textStream << " <date>" << intDate << "</date>" << endl; 225 textStream << " <date>" << intDate << "</date>" << endl;
226 226
227 QImage image = bufferIterator.current()->pixmap()->convertToImage(); 227 QImage image = bufferIterator.current()->pixmap()->convertToImage();
228 QByteArray byteArray; 228 QByteArray byteArray;
229 QBuffer buffer(byteArray); 229 QBuffer buffer(byteArray);
230 QImageIO imageIO(&buffer, "PNG"); 230 QImageIO imageIO(&buffer, "PNG");
231 231
232 buffer.open(IO_WriteOnly); 232 buffer.open(IO_WriteOnly);
233 imageIO.setImage(image); 233 imageIO.setImage(image);
234 imageIO.write(); 234 imageIO.write();
235 buffer.close(); 235 buffer.close();
236 236
237 textStream << " <data length=\"" << byteArray.size() << "\" format=\"PNG\">"; 237 textStream << " <data length=\"" << byteArray.size() << "\" format=\"PNG\">";
238 238
239 static const char hexchars[] = "0123456789abcdef"; 239 static const char hexchars[] = "0123456789abcdef";
240 240
241 for (int i = 0; i < (int)byteArray.size(); i++ ) { 241 for (int i = 0; i < (int)byteArray.size(); i++ ) {
242 uchar s = (uchar)byteArray[i]; 242 uchar s = (uchar)byteArray[i];
243 textStream << hexchars[s >> 4]; 243 textStream << hexchars[s >> 4];
244 textStream << hexchars[s & 0x0f]; 244 textStream << hexchars[s & 0x0f];
245 } 245 }
246 246
247 textStream << "</data>" << endl; 247 textStream << "</data>" << endl;
248 textStream << " </image>" << endl; 248 textStream << " </image>" << endl;
249 } 249 }
250 250
251 textStream << " </images>" << endl; 251 textStream << " </images>" << endl;
252 textStream << "</drawpad>"; 252 textStream << "</drawpad>";
253} 253}
254 254
255void DrawPadCanvas::importPage(const QString& fileName) 255void DrawPadCanvas::importPage(const QString& fileName)
256{ 256{
257 Page* importedPage = new Page(); 257 Page* importedPage = new Page();
258 258
259 importedPage->pixmap()->load(fileName); 259 importedPage->pixmap()->load(fileName);
260 m_pages.insert(m_pages.at() + 1, importedPage); 260 m_pages.insert(m_pages.at() + 1, importedPage);
261 261
262 resizeContents(m_pages.current()->pixmap()->width(), m_pages.current()->pixmap()->height()); 262 resizeContents(m_pages.current()->pixmap()->width(), m_pages.current()->pixmap()->height());
263 viewport()->update(); 263 viewport()->update();
264 264
265 emit pagesChanged(); 265 emit pagesChanged();
266} 266}
267 267
268void DrawPadCanvas::importPixmap( const QPixmap& pix ) {
269 Page* importedPage = new Page();
270
271 (*importedPage->pixmap()) = pix;
272 m_pages.insert(m_pages.at()+1, importedPage );
273 resizeContents(m_pages.current()->pixmap()->width(),
274 m_pages.current()->pixmap()->height() );
275 viewport()->update();
276
277 emit pagesChanged();
278}
279
268void DrawPadCanvas::exportPage(uint fromPage, uint toPage, const QString& name,const QString& format) 280void DrawPadCanvas::exportPage(uint fromPage, uint toPage, const QString& name,const QString& format)
269{ 281{
270 if (fromPage == toPage) { 282 if (fromPage == toPage) {
271 DocLnk docLnk; 283 DocLnk docLnk;
272 MimeType mimeType(format); 284 MimeType mimeType(format);
273 285
274 docLnk.setName(name); 286 docLnk.setName(name);
275 docLnk.setType(mimeType.id()); 287 docLnk.setType(mimeType.id());
276 288
277 FileManager fileManager; 289 FileManager fileManager;
278 QIODevice* ioDevice = fileManager.saveFile(docLnk); 290 QIODevice* ioDevice = fileManager.saveFile(docLnk);
279 QImageIO imageIO(ioDevice, format); 291 QImageIO imageIO(ioDevice, format);
280 292
281 QImage image = m_pages.current()->pixmap()->convertToImage(); 293 QImage image = m_pages.current()->pixmap()->convertToImage();
282 imageIO.setImage(image); 294 imageIO.setImage(image);
283 imageIO.write(); 295 imageIO.write();
284 delete ioDevice; 296 delete ioDevice;
285 } else { 297 } else {
286 for (uint i = fromPage; i <= toPage; i++) { 298 for (uint i = fromPage; i <= toPage; i++) {
287 DocLnk docLnk; 299 DocLnk docLnk;
288 MimeType mimeType(format); 300 MimeType mimeType(format);
289 301
290 docLnk.setName(name + QString::number(i)); 302 docLnk.setName(name + QString::number(i));
291 docLnk.setType(mimeType.id()); 303 docLnk.setType(mimeType.id());
292 304
293 FileManager fileManager; 305 FileManager fileManager;
294 QIODevice* ioDevice = fileManager.saveFile(docLnk); 306 QIODevice* ioDevice = fileManager.saveFile(docLnk);
295 QImageIO imageIO(ioDevice, format); 307 QImageIO imageIO(ioDevice, format);
296 308
297 QImage image = m_pages.at(i - 1)->pixmap()->convertToImage(); 309 QImage image = m_pages.at(i - 1)->pixmap()->convertToImage();
298 imageIO.setImage(image); 310 imageIO.setImage(image);
299 imageIO.write(); 311 imageIO.write();
300 delete ioDevice; 312 delete ioDevice;
301 } 313 }
302 } 314 }
303} 315}
304 316
305Page* DrawPadCanvas::currentPage() 317Page* DrawPadCanvas::currentPage()
306{ 318{
307 return m_pages.current(); 319 return m_pages.current();
308} 320}
309 321
310QList<Page> DrawPadCanvas::pages() 322QList<Page> DrawPadCanvas::pages()
311{ 323{
312 return m_pages; 324 return m_pages;
313} 325}
314 326
315uint DrawPadCanvas::pagePosition() 327uint DrawPadCanvas::pagePosition()
316{ 328{
317 return (m_pages.at() + 1); 329 return (m_pages.at() + 1);
318} 330}
319 331
320uint DrawPadCanvas::pageCount() 332uint DrawPadCanvas::pageCount()
321{ 333{
322 return m_pages.count(); 334 return m_pages.count();
323} 335}
324 336
325void DrawPadCanvas::selectPage(Page* page) 337void DrawPadCanvas::selectPage(Page* page)
326{ 338{
327 m_pages.findRef(page); 339 m_pages.findRef(page);
328 340
329 resizeContents(m_pages.current()->pixmap()->width(), m_pages.current()->pixmap()->height()); 341 resizeContents(m_pages.current()->pixmap()->width(), m_pages.current()->pixmap()->height());
330 viewport()->update(); 342 viewport()->update();
331 343
332 emit pagesChanged(); 344 emit pagesChanged();
333} 345}
334 346
335void DrawPadCanvas::backupPage() 347void DrawPadCanvas::backupPage()
336{ 348{
337 m_pages.current()->backup(); 349 m_pages.current()->backup();
338 350
339 emit pagesChanged(); 351 emit pagesChanged();
340} 352}
341 353
342void DrawPadCanvas::selectPage(uint pagePosition) 354void DrawPadCanvas::selectPage(uint pagePosition)
343{ 355{
344 m_pages.at(pagePosition - 1); 356 m_pages.at(pagePosition - 1);
345 357
346 resizeContents(m_pages.current()->pixmap()->width(), m_pages.current()->pixmap()->height()); 358 resizeContents(m_pages.current()->pixmap()->width(), m_pages.current()->pixmap()->height());
347 viewport()->update(); 359 viewport()->update();
348 360
349 emit pagesChanged(); 361 emit pagesChanged();
350} 362}
351 363
352void DrawPadCanvas::deleteAll() 364void DrawPadCanvas::deleteAll()
353{ 365{
354 m_pages.clear(); 366 m_pages.clear();
355 367
356 m_pages.append(new Page("", 368 m_pages.append(new Page("",
357 clipper()->width()+(verticalScrollBar()->isVisible()?verticalScrollBar()->width():0), 369 clipper()->width()+(verticalScrollBar()->isVisible()?verticalScrollBar()->width():0),
358 clipper()->height()+(horizontalScrollBar()->isVisible()?horizontalScrollBar()->height():0))); 370 clipper()->height()+(horizontalScrollBar()->isVisible()?horizontalScrollBar()->height():0)));
359 371
360 m_pages.current()->pixmap()->fill(Qt::white); 372 m_pages.current()->pixmap()->fill(Qt::white);
361 373
362 resizeContents(m_pages.current()->pixmap()->width(), m_pages.current()->pixmap()->height()); 374 resizeContents(m_pages.current()->pixmap()->width(), m_pages.current()->pixmap()->height());
363 viewport()->update(); 375 viewport()->update();
364 376
365 emit pagesChanged(); 377 emit pagesChanged();
366} 378}
367 379
368void DrawPadCanvas::newPage(QString title, uint width, uint height, const QColor& color) 380void DrawPadCanvas::newPage(QString title, uint width, uint height, const QColor& color)
369{ 381{
370 m_pages.insert(m_pages.at() + 1, new Page(title, width, height)); 382 m_pages.insert(m_pages.at() + 1, new Page(title, width, height));
371 m_pages.current()->pixmap()->fill(color); 383 m_pages.current()->pixmap()->fill(color);
372 384
373 resizeContents(m_pages.current()->pixmap()->width(), m_pages.current()->pixmap()->height()); 385 resizeContents(m_pages.current()->pixmap()->width(), m_pages.current()->pixmap()->height());
374 viewport()->update(); 386 viewport()->update();
375 387
376 emit pagesChanged(); 388 emit pagesChanged();
377} 389}
378 390
379void DrawPadCanvas::clearPage() 391void DrawPadCanvas::clearPage()
380{ 392{
381 m_pages.current()->pixmap()->fill(Qt::white); 393 m_pages.current()->pixmap()->fill(Qt::white);
382 394
383 resizeContents(m_pages.current()->pixmap()->width(), m_pages.current()->pixmap()->height()); 395 resizeContents(m_pages.current()->pixmap()->width(), m_pages.current()->pixmap()->height());
384 viewport()->update(); 396 viewport()->update();
385} 397}
386 398
387void DrawPadCanvas::deletePage() 399void DrawPadCanvas::deletePage()
388{ 400{
389 m_pages.remove(m_pages.current()); 401 m_pages.remove(m_pages.current());
390 402
391 if (m_pages.isEmpty()) { 403 if (m_pages.isEmpty()) {
392 m_pages.append(new Page("", 404 m_pages.append(new Page("",
393 clipper()->width()+(verticalScrollBar()->isVisible()?verticalScrollBar()->width():0), 405 clipper()->width()+(verticalScrollBar()->isVisible()?verticalScrollBar()->width():0),
394 clipper()->height()+(horizontalScrollBar()->isVisible()?horizontalScrollBar()->height():0))); 406 clipper()->height()+(horizontalScrollBar()->isVisible()?horizontalScrollBar()->height():0)));
395 407
396 m_pages.current()->pixmap()->fill(Qt::white); 408 m_pages.current()->pixmap()->fill(Qt::white);
397 } 409 }
398 410
399 resizeContents(m_pages.current()->pixmap()->width(), m_pages.current()->pixmap()->height()); 411 resizeContents(m_pages.current()->pixmap()->width(), m_pages.current()->pixmap()->height());
400 viewport()->update(); 412 viewport()->update();
401 413
402 emit pagesChanged(); 414 emit pagesChanged();
403} 415}
404 416
405void DrawPadCanvas::movePageUp() 417void DrawPadCanvas::movePageUp()
406{ 418{
407 int index = m_pages.at(); 419 int index = m_pages.at();
408 Page* page = m_pages.take(); 420 Page* page = m_pages.take();
409 m_pages.insert(index - 1, page); 421 m_pages.insert(index - 1, page);
410 422
411 emit pagesChanged(); 423 emit pagesChanged();
412} 424}
413 425
414void DrawPadCanvas::movePageDown() 426void DrawPadCanvas::movePageDown()
415{ 427{
416 int index = m_pages.at(); 428 int index = m_pages.at();
417 Page* page = m_pages.take(); 429 Page* page = m_pages.take();
418 m_pages.insert(index + 1, page); 430 m_pages.insert(index + 1, page);
419 431
420 emit pagesChanged(); 432 emit pagesChanged();
421} 433}
422 434
423bool DrawPadCanvas::goPreviousPageEnabled() 435bool DrawPadCanvas::goPreviousPageEnabled()
424{ 436{
425 return (m_pages.current() != m_pages.getFirst()); 437 return (m_pages.current() != m_pages.getFirst());
426} 438}
427 439
428bool DrawPadCanvas::goNextPageEnabled() 440bool DrawPadCanvas::goNextPageEnabled()
429{ 441{
430 return (m_pages.current() != m_pages.getLast()); 442 return (m_pages.current() != m_pages.getLast());
431} 443}
432 444
433void DrawPadCanvas::undo() 445void DrawPadCanvas::undo()
434{ 446{
435 m_pages.current()->undo(); 447 m_pages.current()->undo();
436 448
437 viewport()->update(); 449 viewport()->update();
438 450
439 emit pagesChanged(); 451 emit pagesChanged();
440} 452}
441 453
442void DrawPadCanvas::redo() 454void DrawPadCanvas::redo()
443{ 455{
444 m_pages.current()->redo(); 456 m_pages.current()->redo();
445 457
446 viewport()->update(); 458 viewport()->update();
447 459
448 emit pagesChanged(); 460 emit pagesChanged();
449} 461}
450 462
451void DrawPadCanvas::goFirstPage() 463void DrawPadCanvas::goFirstPage()
452{ 464{
453 m_pages.first(); 465 m_pages.first();
454 466
455 resizeContents(m_pages.current()->pixmap()->width(), m_pages.current()->pixmap()->height()); 467 resizeContents(m_pages.current()->pixmap()->width(), m_pages.current()->pixmap()->height());
456 viewport()->update(); 468 viewport()->update();
diff --git a/noncore/graphics/drawpad/drawpadcanvas.h b/noncore/graphics/drawpad/drawpadcanvas.h
index 80a2a7e..2b3d4a5 100644
--- a/noncore/graphics/drawpad/drawpadcanvas.h
+++ b/noncore/graphics/drawpad/drawpadcanvas.h
@@ -1,82 +1,83 @@
1/*************************************************************************** 1/***************************************************************************
2 * * 2 * *
3 * DrawPad - a drawing program for Opie Environment * 3 * DrawPad - a drawing program for Opie Environment *
4 * * 4 * *
5 * (C) 2002 by S. Prud'homme <prudhomme@laposte.net> * 5 * (C) 2002 by S. Prud'homme <prudhomme@laposte.net> *
6 * * 6 * *
7 * This program is free software; you can redistribute it and/or modify * 7 * This program is free software; you can redistribute it and/or modify *
8 * it under the terms of the GNU General Public License as published by * 8 * it under the terms of the GNU General Public License as published by *
9 * the Free Software Foundation; either version 2 of the License, or * 9 * the Free Software Foundation; either version 2 of the License, or *
10 * (at your option) any later version. * 10 * (at your option) any later version. *
11 * * 11 * *
12 ***************************************************************************/ 12 ***************************************************************************/
13 13
14#ifndef DRAWPADCANVAS_H 14#ifndef DRAWPADCANVAS_H
15#define DRAWPADCANVAS_H 15#define DRAWPADCANVAS_H
16 16
17#include <qscrollview.h> 17#include <qscrollview.h>
18 18
19#include <qlist.h> 19#include <qlist.h>
20#include <qpointarray.h> 20#include <qpointarray.h>
21 21
22class DrawPad; 22class DrawPad;
23class Page; 23class Page;
24 24
25class DrawPadCanvas : public QScrollView 25class DrawPadCanvas : public QScrollView
26{ 26{
27 Q_OBJECT 27 Q_OBJECT
28 28
29public: 29public:
30 DrawPadCanvas(DrawPad* drawPad, QWidget* parent = 0, const char* name = 0); 30 DrawPadCanvas(DrawPad* drawPad, QWidget* parent = 0, const char* name = 0);
31 ~DrawPadCanvas(); 31 ~DrawPadCanvas();
32 32
33 void load(QIODevice* ioDevice); 33 void load(QIODevice* ioDevice);
34 void initialPage(); 34 void initialPage();
35 void save(QIODevice* ioDevice); 35 void save(QIODevice* ioDevice);
36 36
37 void importPage(const QString& fileName); 37 void importPage(const QString& fileName);
38 void exportPage(uint fromPage, uint toPage, const QString& name, const QString& format); 38 void exportPage(uint fromPage, uint toPage, const QString& name, const QString& format);
39 void importPixmap( const QPixmap& );
39 40
40 bool goPreviousPageEnabled(); 41 bool goPreviousPageEnabled();
41 bool goNextPageEnabled(); 42 bool goNextPageEnabled();
42 43
43 Page* currentPage(); 44 Page* currentPage();
44 QList<Page> pages(); 45 QList<Page> pages();
45 uint pagePosition(); 46 uint pagePosition();
46 uint pageCount(); 47 uint pageCount();
47 48
48 void selectPage(Page* page); 49 void selectPage(Page* page);
49 void selectPage(uint pagePosition); 50 void selectPage(uint pagePosition);
50 void backupPage(); 51 void backupPage();
51 52
52public slots: 53public slots:
53 void deleteAll(); 54 void deleteAll();
54 void newPage(QString title, uint width, uint height, const QColor& color); 55 void newPage(QString title, uint width, uint height, const QColor& color);
55 void clearPage(); 56 void clearPage();
56 void deletePage(); 57 void deletePage();
57 void movePageUp(); 58 void movePageUp();
58 void movePageDown(); 59 void movePageDown();
59 60
60 void undo(); 61 void undo();
61 void redo(); 62 void redo();
62 63
63 void goFirstPage(); 64 void goFirstPage();
64 void goPreviousPage(); 65 void goPreviousPage();
65 void goNextPage(); 66 void goNextPage();
66 void goLastPage(); 67 void goLastPage();
67 68
68signals: 69signals:
69 void pagesChanged(); 70 void pagesChanged();
70 71
71protected: 72protected:
72 void contentsMousePressEvent(QMouseEvent* e); 73 void contentsMousePressEvent(QMouseEvent* e);
73 void contentsMouseReleaseEvent(QMouseEvent* e); 74 void contentsMouseReleaseEvent(QMouseEvent* e);
74 void contentsMouseMoveEvent(QMouseEvent* e); 75 void contentsMouseMoveEvent(QMouseEvent* e);
75 void drawContents(QPainter* p, int cx, int cy, int cw, int ch); 76 void drawContents(QPainter* p, int cx, int cy, int cw, int ch);
76 77
77private: 78private:
78 DrawPad* m_pDrawPad; 79 DrawPad* m_pDrawPad;
79 QList<Page> m_pages; 80 QList<Page> m_pages;
80}; 81};
81 82
82#endif // DRAWPADCANVAS_H 83#endif // DRAWPADCANVAS_H