summaryrefslogtreecommitdiff
path: root/noncore/graphics/drawpad/drawpad.cpp
Unidiff
Diffstat (limited to 'noncore/graphics/drawpad/drawpad.cpp') (more/less context) (ignore whitespace changes)
-rw-r--r--noncore/graphics/drawpad/drawpad.cpp84
1 files changed, 62 insertions, 22 deletions
diff --git a/noncore/graphics/drawpad/drawpad.cpp b/noncore/graphics/drawpad/drawpad.cpp
index 1375792..7e6fc53 100644
--- a/noncore/graphics/drawpad/drawpad.cpp
+++ b/noncore/graphics/drawpad/drawpad.cpp
@@ -23,12 +23,13 @@
23#include "filledrectangletool.h" 23#include "filledrectangletool.h"
24#include "filltool.h" 24#include "filltool.h"
25#include "importdialog.h" 25#include "importdialog.h"
26#include "linetool.h" 26#include "linetool.h"
27#include "pointtool.h" 27#include "pointtool.h"
28#include "rectangletool.h" 28#include "rectangletool.h"
29#include "texttool.h"
29 30
30#include <qpe/applnk.h> 31#include <qpe/applnk.h>
31#include <qpe/global.h> 32#include <qpe/global.h>
32#include <qpe/qpemenubar.h> 33#include <qpe/qpemenubar.h>
33#include <qpe/qpetoolbar.h> 34#include <qpe/qpetoolbar.h>
34#include <qpe/resource.h> 35#include <qpe/resource.h>
@@ -126,21 +127,27 @@ DrawPad::DrawPad(QWidget* parent, const char* name)
126 m_pLastPageAction->addTo(navigationToolBar); 127 m_pLastPageAction->addTo(navigationToolBar);
127 128
128 // init draw mode toolbar 129 // init draw mode toolbar
129 130
130 QPEToolBar* drawModeToolBar = new QPEToolBar(this); 131 QPEToolBar* drawModeToolBar = new QPEToolBar(this);
131 132
132 m_pPointToolAction = new QAction(tr("Draw Point"), Resource::loadIconSet("drawpad/point.png"), QString::null, 0, this); 133 m_pLineToolButton = new QToolButton(drawModeToolBar);
133 m_pPointToolAction->setToggleAction(true); 134 m_pLineToolButton->setToggleButton(true);
135
136 QPopupMenu* linePopupMenu = new QPopupMenu(m_pLineToolButton);
137
138 m_pPointToolAction = new QAction(tr("Draw Point"), Resource::loadIconSet("drawpad/point.png"), "", 0, this);
134 connect(m_pPointToolAction, SIGNAL(activated()), this, SLOT(setPointTool())); 139 connect(m_pPointToolAction, SIGNAL(activated()), this, SLOT(setPointTool()));
135 m_pPointToolAction->addTo(drawModeToolBar); 140 m_pPointToolAction->addTo(linePopupMenu);
136 141
137 m_pLineToolAction = new QAction(tr("Draw Line"), Resource::loadIconSet("drawpad/line.png"), QString::null, 0, this); 142 m_pLineToolAction = new QAction(tr("Draw Line"), Resource::loadIconSet("drawpad/line.png"), "", 0, this);
138 m_pLineToolAction->setToggleAction(true);
139 connect(m_pLineToolAction, SIGNAL(activated()), this, SLOT(setLineTool())); 143 connect(m_pLineToolAction, SIGNAL(activated()), this, SLOT(setLineTool()));
140 m_pLineToolAction->addTo(drawModeToolBar); 144 m_pLineToolAction->addTo(linePopupMenu);
145
146 m_pLineToolButton->setPopup(linePopupMenu);
147 m_pLineToolButton->setPopupDelay(0);
141 148
142 m_pRectangleToolButton = new QToolButton(drawModeToolBar); 149 m_pRectangleToolButton = new QToolButton(drawModeToolBar);
143 m_pRectangleToolButton->setToggleButton(true); 150 m_pRectangleToolButton->setToggleButton(true);
144 151
145 QPopupMenu* rectanglePopupMenu = new QPopupMenu(m_pRectangleToolButton); 152 QPopupMenu* rectanglePopupMenu = new QPopupMenu(m_pRectangleToolButton);
146 153
@@ -168,12 +175,17 @@ DrawPad::DrawPad(QWidget* parent, const char* name)
168 connect(m_pFilledEllipseToolAction, SIGNAL(activated()), this, SLOT(setFilledEllipseTool())); 175 connect(m_pFilledEllipseToolAction, SIGNAL(activated()), this, SLOT(setFilledEllipseTool()));
169 m_pFilledEllipseToolAction->addTo(ellipsePopupMenu); 176 m_pFilledEllipseToolAction->addTo(ellipsePopupMenu);
170 177
171 m_pEllipseToolButton->setPopup(ellipsePopupMenu); 178 m_pEllipseToolButton->setPopup(ellipsePopupMenu);
172 m_pEllipseToolButton->setPopupDelay(0); 179 m_pEllipseToolButton->setPopupDelay(0);
173 180
181 m_pTextToolAction = new QAction(tr("Insert Text"), Resource::loadIconSet("drawpad/text.png"), QString::null, 0, this);
182 m_pTextToolAction->setToggleAction(true);
183 connect(m_pTextToolAction, SIGNAL(activated()), this, SLOT(setTextTool()));
184 m_pTextToolAction->addTo(drawModeToolBar);
185
174 m_pFillToolAction = new QAction(tr("Fill Region"), Resource::loadIconSet("drawpad/fill.png"), QString::null, 0, this); 186 m_pFillToolAction = new QAction(tr("Fill Region"), Resource::loadIconSet("drawpad/fill.png"), QString::null, 0, this);
175 m_pFillToolAction->setToggleAction(true); 187 m_pFillToolAction->setToggleAction(true);
176 connect(m_pFillToolAction, SIGNAL(activated()), this, SLOT(setFillTool())); 188 connect(m_pFillToolAction, SIGNAL(activated()), this, SLOT(setFillTool()));
177 m_pFillToolAction->addTo(drawModeToolBar); 189 m_pFillToolAction->addTo(drawModeToolBar);
178 190
179 m_pEraseToolAction = new QAction(tr("Erase Point"), Resource::loadIconSet("drawpad/erase.png"), QString::null, 0, this); 191 m_pEraseToolAction = new QAction(tr("Erase Point"), Resource::loadIconSet("drawpad/erase.png"), QString::null, 0, this);
@@ -270,32 +282,44 @@ void DrawPad::setPointTool()
270 if (m_pTool) { 282 if (m_pTool) {
271 delete m_pTool; 283 delete m_pTool;
272 } 284 }
273 285
274 m_pTool = new PointTool(this, m_pDrawPadCanvas); 286 m_pTool = new PointTool(this, m_pDrawPadCanvas);
275 287
276 m_pPointToolAction->setOn(true); 288 m_pLineToolButton->setIconSet(m_pPointToolAction->iconSet());
277 m_pLineToolAction->setOn(false); 289 QToolTip::add(m_pLineToolButton, m_pPointToolAction->text());
290
291 disconnect(m_pLineToolButton, SIGNAL(clicked()), 0, 0);
292 connect(m_pLineToolButton, SIGNAL(clicked()), m_pPointToolAction, SIGNAL(activated()));
293
294 m_pLineToolButton->setOn(true);
278 m_pRectangleToolButton->setOn(false); 295 m_pRectangleToolButton->setOn(false);
279 m_pEllipseToolButton->setOn(false); 296 m_pEllipseToolButton->setOn(false);
297 m_pTextToolAction->setOn(false);
280 m_pFillToolAction->setOn(false); 298 m_pFillToolAction->setOn(false);
281 m_pEraseToolAction->setOn(false); 299 m_pEraseToolAction->setOn(false);
282} 300}
283 301
284void DrawPad::setLineTool() 302void DrawPad::setLineTool()
285{ 303{
286 if (m_pTool) { 304 if (m_pTool) {
287 delete m_pTool; 305 delete m_pTool;
288 } 306 }
289 307
290 m_pTool = new LineTool(this, m_pDrawPadCanvas); 308 m_pTool = new LineTool(this, m_pDrawPadCanvas);
291 309
292 m_pPointToolAction->setOn(false); 310 m_pLineToolButton->setIconSet(m_pLineToolAction->iconSet());
293 m_pLineToolAction->setOn(true); 311 QToolTip::add(m_pLineToolButton, m_pLineToolAction->text());
312
313 disconnect(m_pLineToolButton, SIGNAL(clicked()), 0, 0);
314 connect(m_pLineToolButton, SIGNAL(clicked()), m_pLineToolAction, SIGNAL(activated()));
315
316 m_pLineToolButton->setOn(true);
294 m_pRectangleToolButton->setOn(false); 317 m_pRectangleToolButton->setOn(false);
295 m_pEllipseToolButton->setOn(false); 318 m_pEllipseToolButton->setOn(false);
319 m_pTextToolAction->setOn(false);
296 m_pFillToolAction->setOn(false); 320 m_pFillToolAction->setOn(false);
297 m_pEraseToolAction->setOn(false); 321 m_pEraseToolAction->setOn(false);
298} 322}
299 323
300void DrawPad::setRectangleTool() 324void DrawPad::setRectangleTool()
301{ 325{
@@ -308,16 +332,16 @@ void DrawPad::setRectangleTool()
308 m_pRectangleToolButton->setIconSet(m_pRectangleToolAction->iconSet()); 332 m_pRectangleToolButton->setIconSet(m_pRectangleToolAction->iconSet());
309 QToolTip::add(m_pRectangleToolButton, m_pRectangleToolAction->text()); 333 QToolTip::add(m_pRectangleToolButton, m_pRectangleToolAction->text());
310 334
311 disconnect(m_pRectangleToolButton, SIGNAL(clicked()), 0, 0); 335 disconnect(m_pRectangleToolButton, SIGNAL(clicked()), 0, 0);
312 connect(m_pRectangleToolButton, SIGNAL(clicked()), m_pRectangleToolAction, SIGNAL(activated())); 336 connect(m_pRectangleToolButton, SIGNAL(clicked()), m_pRectangleToolAction, SIGNAL(activated()));
313 337
314 m_pPointToolAction->setOn(false); 338 m_pLineToolButton->setOn(false);
315 m_pLineToolAction->setOn(false);
316 m_pRectangleToolButton->setOn(true); 339 m_pRectangleToolButton->setOn(true);
317 m_pEllipseToolButton->setOn(false); 340 m_pEllipseToolButton->setOn(false);
341 m_pTextToolAction->setOn(false);
318 m_pFillToolAction->setOn(false); 342 m_pFillToolAction->setOn(false);
319 m_pEraseToolAction->setOn(false); 343 m_pEraseToolAction->setOn(false);
320} 344}
321 345
322void DrawPad::setFilledRectangleTool() 346void DrawPad::setFilledRectangleTool()
323{ 347{
@@ -330,16 +354,16 @@ void DrawPad::setFilledRectangleTool()
330 m_pRectangleToolButton->setIconSet(m_pFilledRectangleToolAction->iconSet()); 354 m_pRectangleToolButton->setIconSet(m_pFilledRectangleToolAction->iconSet());
331 QToolTip::add(m_pRectangleToolButton, m_pFilledRectangleToolAction->text()); 355 QToolTip::add(m_pRectangleToolButton, m_pFilledRectangleToolAction->text());
332 356
333 disconnect(m_pRectangleToolButton, SIGNAL(clicked()), 0, 0); 357 disconnect(m_pRectangleToolButton, SIGNAL(clicked()), 0, 0);
334 connect(m_pRectangleToolButton, SIGNAL(clicked()), m_pFilledRectangleToolAction, SIGNAL(activated())); 358 connect(m_pRectangleToolButton, SIGNAL(clicked()), m_pFilledRectangleToolAction, SIGNAL(activated()));
335 359
336 m_pPointToolAction->setOn(false); 360 m_pLineToolButton->setOn(false);
337 m_pLineToolAction->setOn(false);
338 m_pRectangleToolButton->setOn(true); 361 m_pRectangleToolButton->setOn(true);
339 m_pEllipseToolButton->setOn(false); 362 m_pEllipseToolButton->setOn(false);
363 m_pTextToolAction->setOn(false);
340 m_pFillToolAction->setOn(false); 364 m_pFillToolAction->setOn(false);
341 m_pEraseToolAction->setOn(false); 365 m_pEraseToolAction->setOn(false);
342} 366}
343 367
344void DrawPad::setEllipseTool() 368void DrawPad::setEllipseTool()
345{ 369{
@@ -352,16 +376,16 @@ void DrawPad::setEllipseTool()
352 m_pEllipseToolButton->setIconSet(m_pEllipseToolAction->iconSet()); 376 m_pEllipseToolButton->setIconSet(m_pEllipseToolAction->iconSet());
353 QToolTip::add(m_pEllipseToolButton, m_pEllipseToolAction->text()); 377 QToolTip::add(m_pEllipseToolButton, m_pEllipseToolAction->text());
354 378
355 disconnect(m_pEllipseToolButton, SIGNAL(clicked()), 0, 0); 379 disconnect(m_pEllipseToolButton, SIGNAL(clicked()), 0, 0);
356 connect(m_pEllipseToolButton, SIGNAL(clicked()), m_pEllipseToolAction, SIGNAL(activated())); 380 connect(m_pEllipseToolButton, SIGNAL(clicked()), m_pEllipseToolAction, SIGNAL(activated()));
357 381
358 m_pPointToolAction->setOn(false); 382 m_pLineToolButton->setOn(false);
359 m_pLineToolAction->setOn(false);
360 m_pRectangleToolButton->setOn(false); 383 m_pRectangleToolButton->setOn(false);
361 m_pEllipseToolButton->setOn(true); 384 m_pEllipseToolButton->setOn(true);
385 m_pTextToolAction->setOn(false);
362 m_pFillToolAction->setOn(false); 386 m_pFillToolAction->setOn(false);
363 m_pEraseToolAction->setOn(false); 387 m_pEraseToolAction->setOn(false);
364} 388}
365 389
366void DrawPad::setFilledEllipseTool() 390void DrawPad::setFilledEllipseTool()
367{ 391{
@@ -374,48 +398,64 @@ void DrawPad::setFilledEllipseTool()
374 m_pEllipseToolButton->setIconSet(m_pFilledEllipseToolAction->iconSet()); 398 m_pEllipseToolButton->setIconSet(m_pFilledEllipseToolAction->iconSet());
375 QToolTip::add(m_pEllipseToolButton, m_pFilledEllipseToolAction->text()); 399 QToolTip::add(m_pEllipseToolButton, m_pFilledEllipseToolAction->text());
376 400
377 disconnect(m_pEllipseToolButton, SIGNAL(clicked()), 0, 0); 401 disconnect(m_pEllipseToolButton, SIGNAL(clicked()), 0, 0);
378 connect(m_pEllipseToolButton, SIGNAL(clicked()), m_pFilledEllipseToolAction, SIGNAL(activated())); 402 connect(m_pEllipseToolButton, SIGNAL(clicked()), m_pFilledEllipseToolAction, SIGNAL(activated()));
379 403
380 m_pPointToolAction->setOn(false); 404 m_pLineToolButton->setOn(false);
381 m_pLineToolAction->setOn(false);
382 m_pRectangleToolButton->setOn(false); 405 m_pRectangleToolButton->setOn(false);
383 m_pEllipseToolButton->setOn(true); 406 m_pEllipseToolButton->setOn(true);
407 m_pTextToolAction->setOn(false);
408 m_pFillToolAction->setOn(false);
409 m_pEraseToolAction->setOn(false);
410}
411
412void DrawPad::setTextTool()
413{
414 if (m_pTool) {
415 delete m_pTool;
416 }
417
418 m_pTool = new TextTool(this, m_pDrawPadCanvas);
419
420 m_pLineToolButton->setOn(false);
421 m_pRectangleToolButton->setOn(false);
422 m_pEllipseToolButton->setOn(false);
423 m_pTextToolAction->setOn(true);
384 m_pFillToolAction->setOn(false); 424 m_pFillToolAction->setOn(false);
385 m_pEraseToolAction->setOn(false); 425 m_pEraseToolAction->setOn(false);
386} 426}
387 427
388void DrawPad::setFillTool() 428void DrawPad::setFillTool()
389{ 429{
390 if (m_pTool) { 430 if (m_pTool) {
391 delete m_pTool; 431 delete m_pTool;
392 } 432 }
393 433
394 m_pTool = new FillTool(this, m_pDrawPadCanvas); 434 m_pTool = new FillTool(this, m_pDrawPadCanvas);
395 435
396 m_pPointToolAction->setOn(false); 436 m_pLineToolButton->setOn(false);
397 m_pLineToolAction->setOn(false);
398 m_pRectangleToolButton->setOn(false); 437 m_pRectangleToolButton->setOn(false);
399 m_pEllipseToolButton->setOn(false); 438 m_pEllipseToolButton->setOn(false);
439 m_pTextToolAction->setOn(false);
400 m_pFillToolAction->setOn(true); 440 m_pFillToolAction->setOn(true);
401 m_pEraseToolAction->setOn(false); 441 m_pEraseToolAction->setOn(false);
402} 442}
403 443
404void DrawPad::setEraseTool() 444void DrawPad::setEraseTool()
405{ 445{
406 if (m_pTool) { 446 if (m_pTool) {
407 delete m_pTool; 447 delete m_pTool;
408 } 448 }
409 449
410 m_pTool = new EraseTool(this, m_pDrawPadCanvas); 450 m_pTool = new EraseTool(this, m_pDrawPadCanvas);
411 451
412 m_pPointToolAction->setOn(false); 452 m_pLineToolButton->setOn(false);
413 m_pLineToolAction->setOn(false);
414 m_pRectangleToolButton->setOn(false); 453 m_pRectangleToolButton->setOn(false);
415 m_pEllipseToolButton->setOn(false); 454 m_pEllipseToolButton->setOn(false);
455 m_pTextToolAction->setOn(false);
416 m_pFillToolAction->setOn(false); 456 m_pFillToolAction->setOn(false);
417 m_pEraseToolAction->setOn(true); 457 m_pEraseToolAction->setOn(true);
418} 458}
419 459
420void DrawPad::changePenWidth(int value) 460void DrawPad::changePenWidth(int value)
421{ 461{