Diffstat (limited to 'noncore/graphics/drawpad/drawpad.cpp') (more/less context) (show whitespace changes)
-rw-r--r-- | noncore/graphics/drawpad/drawpad.cpp | 81 |
1 files changed, 30 insertions, 51 deletions
diff --git a/noncore/graphics/drawpad/drawpad.cpp b/noncore/graphics/drawpad/drawpad.cpp index 3c593b6..5cc2197 100644 --- a/noncore/graphics/drawpad/drawpad.cpp +++ b/noncore/graphics/drawpad/drawpad.cpp | |||
@@ -32,24 +32,26 @@ | |||
32 | #include <qspinbox.h> | 32 | #include <qspinbox.h> |
33 | #include <qtoolbutton.h> | 33 | #include <qtoolbutton.h> |
34 | #include <qtooltip.h> | 34 | #include <qtooltip.h> |
35 | 35 | ||
36 | DrawPad::DrawPad(QWidget* parent, const char* name, WFlags f) | 36 | DrawPad::DrawPad(QWidget* parent, const char* name, WFlags f) |
37 | : QMainWindow(parent, name, f) | 37 | : QMainWindow(parent, name, f) |
38 | { | 38 | { |
39 | setCaption(tr("DrawPad")); | 39 | setCaption(tr("DrawPad")); |
40 | 40 | ||
41 | // init members | 41 | // init members |
42 | 42 | ||
43 | m_pDrawPadCanvas = new DrawPadCanvas(this, this); | 43 | m_pDrawPadCanvas = new DrawPadCanvas(this, this); |
44 | connect(m_pDrawPadCanvas, SIGNAL(pagesChanged()), this, SLOT(updateNavigationToolButtons())); | ||
45 | connect(m_pDrawPadCanvas, SIGNAL(pageBackupsChanged()), this, SLOT(updateUndoRedoToolButtons())); | ||
44 | 46 | ||
45 | QFile file(Global::applicationFileName("drawpad", "drawpad.xml")); | 47 | QFile file(Global::applicationFileName("drawpad", "drawpad.xml")); |
46 | 48 | ||
47 | if (file.open(IO_ReadOnly)) { | 49 | if (file.open(IO_ReadOnly)) { |
48 | m_pDrawPadCanvas->load(&file); | 50 | m_pDrawPadCanvas->load(&file); |
49 | file.close(); | 51 | file.close(); |
50 | } | 52 | } |
51 | 53 | ||
52 | setCentralWidget(m_pDrawPadCanvas); | 54 | setCentralWidget(m_pDrawPadCanvas); |
53 | 55 | ||
54 | m_colors.resize(8); | 56 | m_colors.resize(8); |
55 | m_colors.at(0) = Qt::black; | 57 | m_colors.at(0) = Qt::black; |
@@ -62,74 +64,84 @@ DrawPad::DrawPad(QWidget* parent, const char* name, WFlags f) | |||
62 | m_colors.at(7) = Qt::yellow; | 64 | m_colors.at(7) = Qt::yellow; |
63 | 65 | ||
64 | // init menu | 66 | // init menu |
65 | 67 | ||
66 | setToolBarsMovable(false); | 68 | setToolBarsMovable(false); |
67 | 69 | ||
68 | QPEToolBar* menuToolBar = new QPEToolBar(this); | 70 | QPEToolBar* menuToolBar = new QPEToolBar(this); |
69 | QPEMenuBar* menuBar = new QPEMenuBar(menuToolBar); | 71 | QPEMenuBar* menuBar = new QPEMenuBar(menuToolBar); |
70 | 72 | ||
71 | QPopupMenu *toolsPopupMenu = new QPopupMenu(menuBar); | 73 | QPopupMenu *toolsPopupMenu = new QPopupMenu(menuBar); |
72 | 74 | ||
73 | QAction* clearAllAction = new QAction(tr("Clear All"), QString::null, 0, this); | 75 | QAction* clearAllAction = new QAction(tr("Clear All"), QString::null, 0, this); |
74 | connect(clearAllAction, SIGNAL(activated()), this, SLOT(clearAll())); | 76 | connect(clearAllAction, SIGNAL(activated()), m_pDrawPadCanvas, SLOT(clearAll())); |
75 | clearAllAction->addTo(toolsPopupMenu); | 77 | clearAllAction->addTo(toolsPopupMenu); |
76 | 78 | ||
77 | toolsPopupMenu->insertSeparator(); | 79 | toolsPopupMenu->insertSeparator(); |
78 | 80 | ||
79 | QAction* setOptionsAction = new QAction(tr("Options"), tr("Options..."), 0, this); | 81 | QAction* setOptionsAction = new QAction(tr("Options"), tr("Options..."), 0, this); |
80 | setOptionsAction->addTo(toolsPopupMenu); | 82 | setOptionsAction->addTo(toolsPopupMenu); |
81 | 83 | ||
82 | menuBar->insertItem(tr("Tools"), toolsPopupMenu); | 84 | menuBar->insertItem(tr("Tools"), toolsPopupMenu); |
83 | 85 | ||
84 | // init page toolbar | 86 | // init page toolbar |
85 | 87 | ||
86 | QPEToolBar* pageToolBar = new QPEToolBar(this); | 88 | QPEToolBar* pageToolBar = new QPEToolBar(this); |
87 | 89 | ||
88 | QAction* newPageAction = new QAction(tr("New Page"), Resource::loadIconSet("new"), QString::null, 0, this); | 90 | QAction* newPageAction = new QAction(tr("New Page"), Resource::loadIconSet("new"), QString::null, 0, this); |
89 | connect(newPageAction, SIGNAL(activated()), this, SLOT(newPage())); | 91 | connect(newPageAction, SIGNAL(activated()), m_pDrawPadCanvas, SLOT(newPage())); |
90 | newPageAction->addTo(pageToolBar); | 92 | newPageAction->addTo(pageToolBar); |
91 | 93 | ||
92 | QAction* clearPageAction = new QAction(tr("Clear Page"), Resource::loadIconSet("drawpad/clear"), QString::null, 0, this); | 94 | QAction* clearPageAction = new QAction(tr("Clear Page"), Resource::loadIconSet("drawpad/clear"), QString::null, 0, this); |
93 | connect(clearPageAction, SIGNAL(activated()), m_pDrawPadCanvas, SLOT(clearPage())); | 95 | connect(clearPageAction, SIGNAL(activated()), m_pDrawPadCanvas, SLOT(clearPage())); |
94 | clearPageAction->addTo(pageToolBar); | 96 | clearPageAction->addTo(pageToolBar); |
95 | 97 | ||
96 | QAction* deletePageAction = new QAction(tr("Delete Page"), Resource::loadIconSet("trash"), QString::null, 0, this); | 98 | QAction* deletePageAction = new QAction(tr("Delete Page"), Resource::loadIconSet("trash"), QString::null, 0, this); |
97 | connect(deletePageAction, SIGNAL(activated()), this, SLOT(deletePage())); | 99 | connect(deletePageAction, SIGNAL(activated()), m_pDrawPadCanvas, SLOT(deletePage())); |
98 | deletePageAction->addTo(pageToolBar); | 100 | deletePageAction->addTo(pageToolBar); |
99 | 101 | ||
100 | QPEToolBar* emptyToolBar = new QPEToolBar(this); | 102 | QPEToolBar* emptyToolBar = new QPEToolBar(this); |
101 | emptyToolBar->setHorizontalStretchable(true); | 103 | emptyToolBar->setHorizontalStretchable(true); |
102 | 104 | ||
103 | // init navigation toolbar | 105 | // init navigation toolbar |
104 | 106 | ||
105 | QPEToolBar* navigationToolBar = new QPEToolBar(this); | 107 | QPEToolBar* navigationToolBar = new QPEToolBar(this); |
106 | 108 | ||
109 | m_pUndoAction = new QAction(tr("Undo"), Resource::loadIconSet("drawpad/undo"), QString::null, 0, this); | ||
110 | connect(m_pUndoAction, SIGNAL(activated()), m_pDrawPadCanvas, SLOT(undo())); | ||
111 | m_pUndoAction->addTo(navigationToolBar); | ||
112 | |||
113 | m_pRedoAction = new QAction(tr("Redo"), Resource::loadIconSet("drawpad/redo"), QString::null, 0, this); | ||
114 | connect(m_pRedoAction, SIGNAL(activated()), m_pDrawPadCanvas, SLOT(redo())); | ||
115 | m_pRedoAction->addTo(navigationToolBar); | ||
116 | |||
117 | updateUndoRedoToolButtons(); | ||
118 | |||
107 | m_pFirstPageAction = new QAction(tr("First Page"), Resource::loadIconSet("fastback"), QString::null, 0, this); | 119 | m_pFirstPageAction = new QAction(tr("First Page"), Resource::loadIconSet("fastback"), QString::null, 0, this); |
108 | connect(m_pFirstPageAction, SIGNAL(activated()), this, SLOT(goFirstPage())); | 120 | connect(m_pFirstPageAction, SIGNAL(activated()), m_pDrawPadCanvas, SLOT(goFirstPage())); |
109 | m_pFirstPageAction->addTo(navigationToolBar); | 121 | m_pFirstPageAction->addTo(navigationToolBar); |
110 | 122 | ||
111 | m_pPreviousPageAction = new QAction(tr("Previous Page"), Resource::loadIconSet("back"), QString::null, 0, this); | 123 | m_pPreviousPageAction = new QAction(tr("Previous Page"), Resource::loadIconSet("back"), QString::null, 0, this); |
112 | connect(m_pPreviousPageAction, SIGNAL(activated()), this, SLOT(goPreviousPage())); | 124 | connect(m_pPreviousPageAction, SIGNAL(activated()), m_pDrawPadCanvas, SLOT(goPreviousPage())); |
113 | m_pPreviousPageAction->addTo(navigationToolBar); | 125 | m_pPreviousPageAction->addTo(navigationToolBar); |
114 | 126 | ||
115 | m_pNextPageAction = new QAction(tr("Next Page"), Resource::loadIconSet("forward"), QString::null, 0, this); | 127 | m_pNextPageAction = new QAction(tr("Next Page"), Resource::loadIconSet("forward"), QString::null, 0, this); |
116 | connect(m_pNextPageAction, SIGNAL(activated()), this, SLOT(goNextPage())); | 128 | connect(m_pNextPageAction, SIGNAL(activated()), m_pDrawPadCanvas, SLOT(goNextPage())); |
117 | m_pNextPageAction->addTo(navigationToolBar); | 129 | m_pNextPageAction->addTo(navigationToolBar); |
118 | 130 | ||
119 | m_pLastPageAction = new QAction(tr("Last Page"), Resource::loadIconSet("fastforward"), QString::null, 0, this); | 131 | m_pLastPageAction = new QAction(tr("Last Page"), Resource::loadIconSet("fastforward"), QString::null, 0, this); |
120 | connect(m_pLastPageAction, SIGNAL(activated()), this, SLOT(goLastPage())); | 132 | connect(m_pLastPageAction, SIGNAL(activated()), m_pDrawPadCanvas, SLOT(goLastPage())); |
121 | m_pLastPageAction->addTo(navigationToolBar); | 133 | m_pLastPageAction->addTo(navigationToolBar); |
122 | 134 | ||
123 | updateNavigationToolBar(); | 135 | updateNavigationToolButtons(); |
124 | 136 | ||
125 | // init draw mode toolbar | 137 | // init draw mode toolbar |
126 | 138 | ||
127 | QPEToolBar* drawModeToolBar = new QPEToolBar(this); | 139 | QPEToolBar* drawModeToolBar = new QPEToolBar(this); |
128 | 140 | ||
129 | m_pPointDrawModeAction = new QAction(tr("Draw Point"), Resource::loadIconSet("drawpad/point.png"), QString::null, 0, this); | 141 | m_pPointDrawModeAction = new QAction(tr("Draw Point"), Resource::loadIconSet("drawpad/point.png"), QString::null, 0, this); |
130 | m_pPointDrawModeAction->setToggleAction(true); | 142 | m_pPointDrawModeAction->setToggleAction(true); |
131 | connect(m_pPointDrawModeAction, SIGNAL(activated()), this, SLOT(setPointDrawMode())); | 143 | connect(m_pPointDrawModeAction, SIGNAL(activated()), this, SLOT(setPointDrawMode())); |
132 | m_pPointDrawModeAction->addTo(drawModeToolBar); | 144 | m_pPointDrawModeAction->addTo(drawModeToolBar); |
133 | 145 | ||
134 | m_pLineDrawModeAction = new QAction(tr("Draw Line"), Resource::loadIconSet("drawpad/line.png"), QString::null, 0, this); | 146 | m_pLineDrawModeAction = new QAction(tr("Draw Line"), Resource::loadIconSet("drawpad/line.png"), QString::null, 0, this); |
135 | m_pLineDrawModeAction->setToggleAction(true); | 147 | m_pLineDrawModeAction->setToggleAction(true); |
@@ -152,24 +164,27 @@ DrawPad::DrawPad(QWidget* parent, const char* name, WFlags f) | |||
152 | m_pFillDrawModeAction->addTo(drawModeToolBar); | 164 | m_pFillDrawModeAction->addTo(drawModeToolBar); |
153 | 165 | ||
154 | m_pEraseDrawModeAction = new QAction(tr("Erase Point"), Resource::loadIconSet("drawpad/erase.png"), QString::null, 0, this); | 166 | m_pEraseDrawModeAction = new QAction(tr("Erase Point"), Resource::loadIconSet("drawpad/erase.png"), QString::null, 0, this); |
155 | m_pEraseDrawModeAction->setToggleAction(true); | 167 | m_pEraseDrawModeAction->setToggleAction(true); |
156 | connect(m_pEraseDrawModeAction, SIGNAL(activated()), this, SLOT(setEraseDrawMode())); | 168 | connect(m_pEraseDrawModeAction, SIGNAL(activated()), this, SLOT(setEraseDrawMode())); |
157 | m_pEraseDrawModeAction->addTo(drawModeToolBar); | 169 | m_pEraseDrawModeAction->addTo(drawModeToolBar); |
158 | 170 | ||
159 | m_pDrawMode = 0; | 171 | m_pDrawMode = 0; |
160 | setPointDrawMode(); | 172 | setPointDrawMode(); |
161 | 173 | ||
162 | emptyToolBar = new QPEToolBar(this); | 174 | emptyToolBar = new QPEToolBar(this); |
163 | emptyToolBar->setHorizontalStretchable(true); | 175 | emptyToolBar->setHorizontalStretchable(true); |
176 | emptyToolBar->addSeparator(); | ||
177 | |||
178 | // init draw parameters toolbar | ||
164 | 179 | ||
165 | QPEToolBar* drawParametersToolBar = new QPEToolBar(this); | 180 | QPEToolBar* drawParametersToolBar = new QPEToolBar(this); |
166 | 181 | ||
167 | QSpinBox* penWidthSpinBox = new QSpinBox(1, 9, 1, drawParametersToolBar); | 182 | QSpinBox* penWidthSpinBox = new QSpinBox(1, 9, 1, drawParametersToolBar); |
168 | connect(penWidthSpinBox, SIGNAL(valueChanged(int)), this, SLOT(changePenWidth(int))); | 183 | connect(penWidthSpinBox, SIGNAL(valueChanged(int)), this, SLOT(changePenWidth(int))); |
169 | 184 | ||
170 | penWidthSpinBox->setValue(1); | 185 | penWidthSpinBox->setValue(1); |
171 | 186 | ||
172 | m_pPenColorToolButton = new QToolButton(drawParametersToolBar); | 187 | m_pPenColorToolButton = new QToolButton(drawParametersToolBar); |
173 | m_pPenColorToolButton->setPixmap(Resource::loadPixmap("drawpad/pencolor.png")); | 188 | m_pPenColorToolButton->setPixmap(Resource::loadPixmap("drawpad/pencolor.png")); |
174 | 189 | ||
175 | QPopupMenu* penColorPopupMenu = new QPopupMenu(m_pPenColorToolButton); | 190 | QPopupMenu* penColorPopupMenu = new QPopupMenu(m_pPenColorToolButton); |
@@ -209,66 +224,24 @@ DrawPad::DrawPad(QWidget* parent, const char* name, WFlags f) | |||
209 | } | 224 | } |
210 | 225 | ||
211 | DrawPad::~DrawPad() | 226 | DrawPad::~DrawPad() |
212 | { | 227 | { |
213 | QFile file(Global::applicationFileName("drawpad", "drawpad.xml")); | 228 | QFile file(Global::applicationFileName("drawpad", "drawpad.xml")); |
214 | 229 | ||
215 | if (file.open(IO_WriteOnly)) { | 230 | if (file.open(IO_WriteOnly)) { |
216 | m_pDrawPadCanvas->save(&file); | 231 | m_pDrawPadCanvas->save(&file); |
217 | file.close(); | 232 | file.close(); |
218 | } | 233 | } |
219 | } | 234 | } |
220 | 235 | ||
221 | void DrawPad::clearAll() | ||
222 | { | ||
223 | m_pDrawPadCanvas->clearAll(); | ||
224 | updateNavigationToolBar(); | ||
225 | } | ||
226 | |||
227 | void DrawPad::newPage() | ||
228 | { | ||
229 | m_pDrawPadCanvas->newPage(); | ||
230 | updateNavigationToolBar(); | ||
231 | } | ||
232 | |||
233 | void DrawPad::deletePage() | ||
234 | { | ||
235 | m_pDrawPadCanvas->deletePage(); | ||
236 | updateNavigationToolBar(); | ||
237 | } | ||
238 | |||
239 | void DrawPad::goFirstPage() | ||
240 | { | ||
241 | m_pDrawPadCanvas->goFirstPage(); | ||
242 | updateNavigationToolBar(); | ||
243 | } | ||
244 | |||
245 | void DrawPad::goPreviousPage() | ||
246 | { | ||
247 | m_pDrawPadCanvas->goPreviousPage(); | ||
248 | updateNavigationToolBar(); | ||
249 | } | ||
250 | |||
251 | void DrawPad::goNextPage() | ||
252 | { | ||
253 | m_pDrawPadCanvas->goNextPage(); | ||
254 | updateNavigationToolBar(); | ||
255 | } | ||
256 | |||
257 | void DrawPad::goLastPage() | ||
258 | { | ||
259 | m_pDrawPadCanvas->goLastPage(); | ||
260 | updateNavigationToolBar(); | ||
261 | } | ||
262 | |||
263 | void DrawPad::setPointDrawMode() | 236 | void DrawPad::setPointDrawMode() |
264 | { | 237 | { |
265 | if (m_pDrawMode) { | 238 | if (m_pDrawMode) { |
266 | delete m_pDrawMode; | 239 | delete m_pDrawMode; |
267 | } | 240 | } |
268 | 241 | ||
269 | m_pDrawMode = new PointDrawMode(this, m_pDrawPadCanvas); | 242 | m_pDrawMode = new PointDrawMode(this, m_pDrawPadCanvas); |
270 | 243 | ||
271 | m_pPointDrawModeAction->setOn(true); | 244 | m_pPointDrawModeAction->setOn(true); |
272 | m_pLineDrawModeAction->setOn(false); | 245 | m_pLineDrawModeAction->setOn(false); |
273 | m_pRectangleDrawModeAction->setOn(false); | 246 | m_pRectangleDrawModeAction->setOn(false); |
274 | m_pEllipseDrawModeAction->setOn(false); | 247 | m_pEllipseDrawModeAction->setOn(false); |
@@ -372,19 +345,25 @@ void DrawPad::changePenColor(int index) | |||
372 | } | 345 | } |
373 | 346 | ||
374 | void DrawPad::changeBrushColor(int index) | 347 | void DrawPad::changeBrushColor(int index) |
375 | { | 348 | { |
376 | m_brush = QBrush(m_colors.at(index)); | 349 | m_brush = QBrush(m_colors.at(index)); |
377 | 350 | ||
378 | QPainter painter; | 351 | QPainter painter; |
379 | painter.begin(m_pBrushColorToolButton->pixmap()); | 352 | painter.begin(m_pBrushColorToolButton->pixmap()); |
380 | painter.fillRect(QRect(0, 12, 14, 2), m_brush.color()); | 353 | painter.fillRect(QRect(0, 12, 14, 2), m_brush.color()); |
381 | painter.end(); | 354 | painter.end(); |
382 | } | 355 | } |
383 | 356 | ||
384 | void DrawPad::updateNavigationToolBar() | 357 | void DrawPad::updateUndoRedoToolButtons() |
358 | { | ||
359 | m_pUndoAction->setEnabled(m_pDrawPadCanvas->undoEnabled()); | ||
360 | m_pRedoAction->setEnabled(m_pDrawPadCanvas->redoEnabled()); | ||
361 | } | ||
362 | |||
363 | void DrawPad::updateNavigationToolButtons() | ||
385 | { | 364 | { |
386 | m_pFirstPageAction->setEnabled(m_pDrawPadCanvas->goPreviousPageEnabled()); | 365 | m_pFirstPageAction->setEnabled(m_pDrawPadCanvas->goPreviousPageEnabled()); |
387 | m_pPreviousPageAction->setEnabled(m_pDrawPadCanvas->goPreviousPageEnabled()); | 366 | m_pPreviousPageAction->setEnabled(m_pDrawPadCanvas->goPreviousPageEnabled()); |
388 | m_pNextPageAction->setEnabled(m_pDrawPadCanvas->goNextPageEnabled()); | 367 | m_pNextPageAction->setEnabled(m_pDrawPadCanvas->goNextPageEnabled()); |
389 | m_pLastPageAction->setEnabled(m_pDrawPadCanvas->goNextPageEnabled()); | 368 | m_pLastPageAction->setEnabled(m_pDrawPadCanvas->goNextPageEnabled()); |
390 | } | 369 | } |