summaryrefslogtreecommitdiff
Unidiff
Diffstat (more/less context) (ignore whitespace changes)
-rw-r--r--noncore/graphics/drawpad/drawpad.cpp2
-rw-r--r--noncore/graphics/drawpad/drawpadcanvas.cpp12
-rw-r--r--noncore/graphics/drawpad/newpagedialog.cpp22
-rw-r--r--noncore/graphics/drawpad/newpagedialog.h4
4 files changed, 24 insertions, 16 deletions
diff --git a/noncore/graphics/drawpad/drawpad.cpp b/noncore/graphics/drawpad/drawpad.cpp
index aae9ab0..1375792 100644
--- a/noncore/graphics/drawpad/drawpad.cpp
+++ b/noncore/graphics/drawpad/drawpad.cpp
@@ -148,31 +148,33 @@ DrawPad::DrawPad(QWidget* parent, const char* name)
148 connect(m_pRectangleToolAction, SIGNAL(activated()), this, SLOT(setRectangleTool())); 148 connect(m_pRectangleToolAction, SIGNAL(activated()), this, SLOT(setRectangleTool()));
149 m_pRectangleToolAction->addTo(rectanglePopupMenu); 149 m_pRectangleToolAction->addTo(rectanglePopupMenu);
150 150
151 m_pFilledRectangleToolAction = new QAction(tr("Draw Filled Rectangle"), Resource::loadIconSet("drawpad/filledrectangle.png"), "", 0, this); 151 m_pFilledRectangleToolAction = new QAction(tr("Draw Filled Rectangle"), Resource::loadIconSet("drawpad/filledrectangle.png"), "", 0, this);
152 connect(m_pFilledRectangleToolAction, SIGNAL(activated()), this, SLOT(setFilledRectangleTool())); 152 connect(m_pFilledRectangleToolAction, SIGNAL(activated()), this, SLOT(setFilledRectangleTool()));
153 m_pFilledRectangleToolAction->addTo(rectanglePopupMenu); 153 m_pFilledRectangleToolAction->addTo(rectanglePopupMenu);
154 154
155 m_pRectangleToolButton->setPopup(rectanglePopupMenu); 155 m_pRectangleToolButton->setPopup(rectanglePopupMenu);
156 m_pRectangleToolButton->setPopupDelay(0);
156 157
157 m_pEllipseToolButton = new QToolButton(drawModeToolBar); 158 m_pEllipseToolButton = new QToolButton(drawModeToolBar);
158 m_pEllipseToolButton->setToggleButton(true); 159 m_pEllipseToolButton->setToggleButton(true);
159 160
160 QPopupMenu* ellipsePopupMenu = new QPopupMenu(m_pEllipseToolButton); 161 QPopupMenu* ellipsePopupMenu = new QPopupMenu(m_pEllipseToolButton);
161 162
162 m_pEllipseToolAction = new QAction(tr("Draw Ellipse"), Resource::loadIconSet("drawpad/ellipse.png"), "", 0, this); 163 m_pEllipseToolAction = new QAction(tr("Draw Ellipse"), Resource::loadIconSet("drawpad/ellipse.png"), "", 0, this);
163 connect(m_pEllipseToolAction, SIGNAL(activated()), this, SLOT(setEllipseTool())); 164 connect(m_pEllipseToolAction, SIGNAL(activated()), this, SLOT(setEllipseTool()));
164 m_pEllipseToolAction->addTo(ellipsePopupMenu); 165 m_pEllipseToolAction->addTo(ellipsePopupMenu);
165 166
166 m_pFilledEllipseToolAction = new QAction(tr("Draw Filled Ellipse"), Resource::loadIconSet("drawpad/filledellipse.png"), "", 0, this); 167 m_pFilledEllipseToolAction = new QAction(tr("Draw Filled Ellipse"), Resource::loadIconSet("drawpad/filledellipse.png"), "", 0, this);
167 connect(m_pFilledEllipseToolAction, SIGNAL(activated()), this, SLOT(setFilledEllipseTool())); 168 connect(m_pFilledEllipseToolAction, SIGNAL(activated()), this, SLOT(setFilledEllipseTool()));
168 m_pFilledEllipseToolAction->addTo(ellipsePopupMenu); 169 m_pFilledEllipseToolAction->addTo(ellipsePopupMenu);
169 170
170 m_pEllipseToolButton->setPopup(ellipsePopupMenu); 171 m_pEllipseToolButton->setPopup(ellipsePopupMenu);
172 m_pEllipseToolButton->setPopupDelay(0);
171 173
172 m_pFillToolAction = new QAction(tr("Fill Region"), Resource::loadIconSet("drawpad/fill.png"), QString::null, 0, this); 174 m_pFillToolAction = new QAction(tr("Fill Region"), Resource::loadIconSet("drawpad/fill.png"), QString::null, 0, this);
173 m_pFillToolAction->setToggleAction(true); 175 m_pFillToolAction->setToggleAction(true);
174 connect(m_pFillToolAction, SIGNAL(activated()), this, SLOT(setFillTool())); 176 connect(m_pFillToolAction, SIGNAL(activated()), this, SLOT(setFillTool()));
175 m_pFillToolAction->addTo(drawModeToolBar); 177 m_pFillToolAction->addTo(drawModeToolBar);
176 178
177 m_pEraseToolAction = new QAction(tr("Erase Point"), Resource::loadIconSet("drawpad/erase.png"), QString::null, 0, this); 179 m_pEraseToolAction = new QAction(tr("Erase Point"), Resource::loadIconSet("drawpad/erase.png"), QString::null, 0, this);
178 m_pEraseToolAction->setToggleAction(true); 180 m_pEraseToolAction->setToggleAction(true);
diff --git a/noncore/graphics/drawpad/drawpadcanvas.cpp b/noncore/graphics/drawpad/drawpadcanvas.cpp
index 8818c03..b8a1c2e 100644
--- a/noncore/graphics/drawpad/drawpadcanvas.cpp
+++ b/noncore/graphics/drawpad/drawpadcanvas.cpp
@@ -49,16 +49,17 @@ public:
49private: 49private:
50 enum State { 50 enum State {
51 Unknown, 51 Unknown,
52 InData 52 InData
53 }; 53 };
54 54
55 State m_state; 55 State m_state;
56 ulong m_dataLenght; 56 ulong m_dataLenght;
57 QString m_dataFormat;
57 QList<QPixmap> m_pixmaps; 58 QList<QPixmap> m_pixmaps;
58}; 59};
59 60
60DrawPadCanvasXmlHandler::DrawPadCanvasXmlHandler() 61DrawPadCanvasXmlHandler::DrawPadCanvasXmlHandler()
61{ 62{
62 m_state = Unknown; 63 m_state = Unknown;
63} 64}
64 65
@@ -75,16 +76,21 @@ bool DrawPadCanvasXmlHandler::startElement(const QString& namespaceURI, const QS
75 const QString& qName, const QXmlAttributes& atts) 76 const QString& qName, const QXmlAttributes& atts)
76{ 77{
77 Q_CONST_UNUSED(namespaceURI) 78 Q_CONST_UNUSED(namespaceURI)
78 Q_CONST_UNUSED(localName) 79 Q_CONST_UNUSED(localName)
79 80
80 if (qName.compare("data") == 0) { 81 if (qName.compare("data") == 0) {
81 m_state = InData; 82 m_state = InData;
82 m_dataLenght = atts.value("length").toULong(); 83 m_dataLenght = atts.value("length").toULong();
84 m_dataFormat = atts.value("format");
85
86 if (m_dataFormat.isEmpty()) {
87 m_dataFormat = "XPM";
88 }
83 } 89 }
84 90
85 return true; 91 return true;
86} 92}
87 93
88bool DrawPadCanvasXmlHandler::endElement(const QString& namespaceURI, const QString& localName, 94bool DrawPadCanvasXmlHandler::endElement(const QString& namespaceURI, const QString& localName,
89 const QString& qName) 95 const QString& qName)
90{ 96{
@@ -128,17 +134,17 @@ bool DrawPadCanvasXmlHandler::characters(const QString& ch)
128 if (m_dataLenght < ch.length() * 5) { 134 if (m_dataLenght < ch.length() * 5) {
129 m_dataLenght = ch.length() * 5; 135 m_dataLenght = ch.length() * 5;
130 } 136 }
131 137
132 QByteArray byteArrayUnzipped(m_dataLenght); 138 QByteArray byteArrayUnzipped(m_dataLenght);
133 ::uncompress((uchar*)byteArrayUnzipped.data(), &m_dataLenght, (uchar*)byteArray.data(), byteArray.size()); 139 ::uncompress((uchar*)byteArrayUnzipped.data(), &m_dataLenght, (uchar*)byteArray.data(), byteArray.size());
134 140
135 QImage image; 141 QImage image;
136 image.loadFromData((const uchar*)byteArrayUnzipped.data(), m_dataLenght, "XPM"); 142 image.loadFromData((const uchar*)byteArrayUnzipped.data(), m_dataLenght, m_dataFormat);
137 143
138 QPixmap* pixmap = new QPixmap(image.width(), image.height()); 144 QPixmap* pixmap = new QPixmap(image.width(), image.height());
139 pixmap->convertFromImage(image); 145 pixmap->convertFromImage(image);
140 m_pixmaps.append(pixmap); 146 m_pixmaps.append(pixmap);
141 } 147 }
142 148
143 return true; 149 return true;
144} 150}
@@ -210,28 +216,28 @@ void DrawPadCanvas::save(QIODevice* ioDevice)
210 QListIterator<QPixmap> bufferIterator(m_pages); 216 QListIterator<QPixmap> bufferIterator(m_pages);
211 217
212 for (bufferIterator.toFirst(); bufferIterator.current() != 0; ++bufferIterator) { 218 for (bufferIterator.toFirst(); bufferIterator.current() != 0; ++bufferIterator) {
213 textStream << " <image>" << endl; 219 textStream << " <image>" << endl;
214 220
215 QImage image = bufferIterator.current()->convertToImage(); 221 QImage image = bufferIterator.current()->convertToImage();
216 QByteArray byteArray; 222 QByteArray byteArray;
217 QBuffer buffer(byteArray); 223 QBuffer buffer(byteArray);
218 QImageIO imageIO(&buffer, "XPM"); 224 QImageIO imageIO(&buffer, "PNG");
219 225
220 buffer.open(IO_WriteOnly); 226 buffer.open(IO_WriteOnly);
221 imageIO.setImage(image); 227 imageIO.setImage(image);
222 imageIO.write(); 228 imageIO.write();
223 buffer.close(); 229 buffer.close();
224 230
225 ulong size = byteArray.size() * 2; 231 ulong size = byteArray.size() * 2;
226 QByteArray byteArrayZipped(size); 232 QByteArray byteArrayZipped(size);
227 ::compress((uchar*)byteArrayZipped.data(), &size, (uchar*)byteArray.data(), byteArray.size()); 233 ::compress((uchar*)byteArrayZipped.data(), &size, (uchar*)byteArray.data(), byteArray.size());
228 234
229 textStream << " <data length=\"" << byteArray.size() << "\">"; 235 textStream << " <data length=\"" << byteArray.size() << "\" format=\"PNG\">";
230 236
231 static const char hexchars[] = "0123456789abcdef"; 237 static const char hexchars[] = "0123456789abcdef";
232 238
233 for (int i = 0; i < (int)size; i++ ) { 239 for (int i = 0; i < (int)size; i++ ) {
234 uchar s = (uchar)byteArrayZipped[i]; 240 uchar s = (uchar)byteArrayZipped[i];
235 textStream << hexchars[s >> 4]; 241 textStream << hexchars[s >> 4];
236 textStream << hexchars[s & 0x0f]; 242 textStream << hexchars[s & 0x0f];
237 } 243 }
diff --git a/noncore/graphics/drawpad/newpagedialog.cpp b/noncore/graphics/drawpad/newpagedialog.cpp
index b1b26ef..5c31978 100644
--- a/noncore/graphics/drawpad/newpagedialog.cpp
+++ b/noncore/graphics/drawpad/newpagedialog.cpp
@@ -15,41 +15,41 @@
15 15
16#include <qbuttongroup.h> 16#include <qbuttongroup.h>
17#include <qgroupbox.h> 17#include <qgroupbox.h>
18#include <qlabel.h> 18#include <qlabel.h>
19#include <qlayout.h> 19#include <qlayout.h>
20#include <qradiobutton.h> 20#include <qradiobutton.h>
21#include <qspinbox.h> 21#include <qspinbox.h>
22 22
23NewPageDialog::NewPageDialog(uint width, uint height, const QColor& foregroundColor, 23NewPageDialog::NewPageDialog(uint width, uint height, const QColor& penColor,
24 const QColor& backgroundColor, QWidget* parent, const char* name) 24 const QColor& brushColor, QWidget* parent, const char* name)
25 : QDialog(parent, name, true) 25 : QDialog(parent, name, true)
26{ 26{
27 setCaption(tr("New Page")); 27 setCaption(tr("New Page"));
28 28
29 m_foregroundColor = foregroundColor; 29 m_penColor = penColor;
30 m_backgroundColor = backgroundColor; 30 m_brushColor = brushColor;
31 31
32 QGroupBox* sizeGroupBox = new QGroupBox(0, Qt::Vertical, tr("Page Size"), this); 32 QGroupBox* sizeGroupBox = new QGroupBox(0, Qt::Vertical, tr("Page Size"), this);
33 33
34 QLabel* widthLabel = new QLabel(tr("Width :"), sizeGroupBox); 34 QLabel* widthLabel = new QLabel(tr("Width :"), sizeGroupBox);
35 QLabel* heightLabel = new QLabel(tr("Height :"), sizeGroupBox); 35 QLabel* heightLabel = new QLabel(tr("Height :"), sizeGroupBox);
36 36
37 m_pWidthSpinBox = new QSpinBox(1, 1024, 1, sizeGroupBox); 37 m_pWidthSpinBox = new QSpinBox(1, 1024, 1, sizeGroupBox);
38 m_pHeightSpinBox = new QSpinBox(1, 1024, 1, sizeGroupBox); 38 m_pHeightSpinBox = new QSpinBox(1, 1024, 1, sizeGroupBox);
39 39
40 m_pWidthSpinBox->setValue(width); 40 m_pWidthSpinBox->setValue(width);
41 m_pHeightSpinBox->setValue(height); 41 m_pHeightSpinBox->setValue(height);
42 42
43 m_pContentButtonGroup = new QButtonGroup(0, Qt::Vertical, tr("Contents"), this); 43 m_pContentButtonGroup = new QButtonGroup(0, Qt::Vertical, tr("Background"), this);
44 44
45 QRadioButton* whiteColorRadioButton = new QRadioButton(tr("White"), m_pContentButtonGroup); 45 QRadioButton* whiteColorRadioButton = new QRadioButton(tr("White"), m_pContentButtonGroup);
46 QRadioButton* foregroundColorRadioButton = new QRadioButton(tr("Foreground Color"), m_pContentButtonGroup); 46 QRadioButton* penColorRadioButton = new QRadioButton(tr("Pen Color"), m_pContentButtonGroup);
47 QRadioButton* backgroundColorRadioButton = new QRadioButton(tr("Background Color"), m_pContentButtonGroup); 47 QRadioButton* brushColorRadioButton = new QRadioButton(tr("Brush Color"), m_pContentButtonGroup);
48 48
49 m_pContentButtonGroup->setButton(0); 49 m_pContentButtonGroup->setButton(0);
50 50
51 QVBoxLayout* mainLayout = new QVBoxLayout(this, 4, 4); 51 QVBoxLayout* mainLayout = new QVBoxLayout(this, 4, 4);
52 sizeGroupBox->layout()->setSpacing(4); 52 sizeGroupBox->layout()->setSpacing(4);
53 m_pContentButtonGroup->layout()->setSpacing(4); 53 m_pContentButtonGroup->layout()->setSpacing(4);
54 QGridLayout* sizeLayout = new QGridLayout(sizeGroupBox->layout(), 2, 2); 54 QGridLayout* sizeLayout = new QGridLayout(sizeGroupBox->layout(), 2, 2);
55 QVBoxLayout* contentLayout = new QVBoxLayout(m_pContentButtonGroup->layout()); 55 QVBoxLayout* contentLayout = new QVBoxLayout(m_pContentButtonGroup->layout());
@@ -57,18 +57,18 @@ NewPageDialog::NewPageDialog(uint width, uint height, const QColor& foregroundCo
57 sizeLayout->addWidget(widthLabel, 0, 0); 57 sizeLayout->addWidget(widthLabel, 0, 0);
58 sizeLayout->addWidget(heightLabel, 1, 0); 58 sizeLayout->addWidget(heightLabel, 1, 0);
59 sizeLayout->addWidget(m_pWidthSpinBox, 0, 1); 59 sizeLayout->addWidget(m_pWidthSpinBox, 0, 1);
60 sizeLayout->addWidget(m_pHeightSpinBox, 1, 1); 60 sizeLayout->addWidget(m_pHeightSpinBox, 1, 1);
61 61
62 sizeLayout->setColStretch(1, 1); 62 sizeLayout->setColStretch(1, 1);
63 63
64 contentLayout->addWidget(whiteColorRadioButton); 64 contentLayout->addWidget(whiteColorRadioButton);
65 contentLayout->addWidget(foregroundColorRadioButton); 65 contentLayout->addWidget(penColorRadioButton);
66 contentLayout->addWidget(backgroundColorRadioButton); 66 contentLayout->addWidget(brushColorRadioButton);
67 67
68 mainLayout->addWidget(sizeGroupBox); 68 mainLayout->addWidget(sizeGroupBox);
69 mainLayout->addWidget(m_pContentButtonGroup); 69 mainLayout->addWidget(m_pContentButtonGroup);
70} 70}
71 71
72NewPageDialog::~NewPageDialog() 72NewPageDialog::~NewPageDialog()
73{ 73{
74} 74}
@@ -85,18 +85,18 @@ uint NewPageDialog::selectedHeight()
85 85
86const QColor& NewPageDialog::selectedColor() 86const QColor& NewPageDialog::selectedColor()
87{ 87{
88 switch (m_pContentButtonGroup->id(m_pContentButtonGroup->selected())) { 88 switch (m_pContentButtonGroup->id(m_pContentButtonGroup->selected())) {
89 case 0: 89 case 0:
90 return (Qt::white); 90 return (Qt::white);
91 break; 91 break;
92 case 1: 92 case 1:
93 return (m_foregroundColor); 93 return (m_penColor);
94 break; 94 break;
95 case 2: 95 case 2:
96 return (m_backgroundColor); 96 return (m_brushColor);
97 break; 97 break;
98 default: 98 default:
99 return (Qt::white); 99 return (Qt::white);
100 break; 100 break;
101 } 101 }
102} 102}
diff --git a/noncore/graphics/drawpad/newpagedialog.h b/noncore/graphics/drawpad/newpagedialog.h
index f418340..d680394 100644
--- a/noncore/graphics/drawpad/newpagedialog.h
+++ b/noncore/graphics/drawpad/newpagedialog.h
@@ -31,15 +31,15 @@ public:
31 uint selectedWidth(); 31 uint selectedWidth();
32 uint selectedHeight(); 32 uint selectedHeight();
33 const QColor& selectedColor(); 33 const QColor& selectedColor();
34 34
35private: 35private:
36 QSpinBox* m_pWidthSpinBox; 36 QSpinBox* m_pWidthSpinBox;
37 QSpinBox* m_pHeightSpinBox; 37 QSpinBox* m_pHeightSpinBox;
38 38
39 QColor m_foregroundColor; 39 QColor m_penColor;
40 QColor m_backgroundColor; 40 QColor m_brushColor;
41 41
42 QButtonGroup* m_pContentButtonGroup; 42 QButtonGroup* m_pContentButtonGroup;
43}; 43};
44 44
45#endif // NEWPAGEDIALOG_H 45#endif // NEWPAGEDIALOG_H