author | leseb <leseb> | 2002-04-06 22:20:19 (UTC) |
---|---|---|
committer | leseb <leseb> | 2002-04-06 22:20:19 (UTC) |
commit | 75bc9d885aa131334a0b906a1a58134740c40783 (patch) (unidiff) | |
tree | 08a05fe92e1e2f1dc67604f9040bf669e5b4c84a /noncore | |
parent | 8e092bf08c2873dcdec4694573cf715b7a590e41 (diff) | |
download | opie-75bc9d885aa131334a0b906a1a58134740c40783.zip opie-75bc9d885aa131334a0b906a1a58134740c40783.tar.gz opie-75bc9d885aa131334a0b906a1a58134740c40783.tar.bz2 |
- Save album in PNG format instead of XPM
- Small fixes
-rw-r--r-- | noncore/graphics/drawpad/drawpad.cpp | 2 | ||||
-rw-r--r-- | noncore/graphics/drawpad/drawpadcanvas.cpp | 12 | ||||
-rw-r--r-- | noncore/graphics/drawpad/newpagedialog.cpp | 22 | ||||
-rw-r--r-- | noncore/graphics/drawpad/newpagedialog.h | 4 |
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 | |||
@@ -150,12 +150,13 @@ DrawPad::DrawPad(QWidget* parent, const char* name) | |||
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 | ||
@@ -165,12 +166,13 @@ DrawPad::DrawPad(QWidget* parent, const char* name) | |||
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 | ||
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 | |||
@@ -51,12 +51,13 @@ private: | |||
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 | ||
60 | DrawPadCanvasXmlHandler::DrawPadCanvasXmlHandler() | 61 | DrawPadCanvasXmlHandler::DrawPadCanvasXmlHandler() |
61 | { | 62 | { |
62 | m_state = Unknown; | 63 | m_state = Unknown; |
@@ -77,12 +78,17 @@ bool DrawPadCanvasXmlHandler::startElement(const QString& namespaceURI, const QS | |||
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 | ||
88 | bool DrawPadCanvasXmlHandler::endElement(const QString& namespaceURI, const QString& localName, | 94 | bool DrawPadCanvasXmlHandler::endElement(const QString& namespaceURI, const QString& localName, |
@@ -130,13 +136,13 @@ bool DrawPadCanvasXmlHandler::characters(const QString& ch) | |||
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 | ||
@@ -212,24 +218,24 @@ void DrawPadCanvas::save(QIODevice* ioDevice) | |||
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]; |
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 | |||
@@ -17,37 +17,37 @@ | |||
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 | ||
23 | NewPageDialog::NewPageDialog(uint width, uint height, const QColor& foregroundColor, | 23 | NewPageDialog::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); |
@@ -59,14 +59,14 @@ NewPageDialog::NewPageDialog(uint width, uint height, const QColor& foregroundCo | |||
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 | ||
72 | NewPageDialog::~NewPageDialog() | 72 | NewPageDialog::~NewPageDialog() |
@@ -87,16 +87,16 @@ const 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 | |||
@@ -33,13 +33,13 @@ public: | |||
33 | const QColor& selectedColor(); | 33 | const QColor& selectedColor(); |
34 | 34 | ||
35 | private: | 35 | private: |
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 |