summaryrefslogtreecommitdiff
path: root/noncore/graphics/drawpad/drawpad.cpp
Side-by-side diff
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 @@
#include "filledrectangletool.h"
#include "filltool.h"
#include "importdialog.h"
#include "linetool.h"
#include "pointtool.h"
#include "rectangletool.h"
+#include "texttool.h"
#include <qpe/applnk.h>
#include <qpe/global.h>
#include <qpe/qpemenubar.h>
#include <qpe/qpetoolbar.h>
#include <qpe/resource.h>
@@ -126,21 +127,27 @@ DrawPad::DrawPad(QWidget* parent, const char* name)
m_pLastPageAction->addTo(navigationToolBar);
// init draw mode toolbar
QPEToolBar* drawModeToolBar = new QPEToolBar(this);
- m_pPointToolAction = new QAction(tr("Draw Point"), Resource::loadIconSet("drawpad/point.png"), QString::null, 0, this);
- m_pPointToolAction->setToggleAction(true);
+ m_pLineToolButton = new QToolButton(drawModeToolBar);
+ m_pLineToolButton->setToggleButton(true);
+
+ QPopupMenu* linePopupMenu = new QPopupMenu(m_pLineToolButton);
+
+ m_pPointToolAction = new QAction(tr("Draw Point"), Resource::loadIconSet("drawpad/point.png"), "", 0, this);
connect(m_pPointToolAction, SIGNAL(activated()), this, SLOT(setPointTool()));
- m_pPointToolAction->addTo(drawModeToolBar);
+ m_pPointToolAction->addTo(linePopupMenu);
- m_pLineToolAction = new QAction(tr("Draw Line"), Resource::loadIconSet("drawpad/line.png"), QString::null, 0, this);
- m_pLineToolAction->setToggleAction(true);
+ m_pLineToolAction = new QAction(tr("Draw Line"), Resource::loadIconSet("drawpad/line.png"), "", 0, this);
connect(m_pLineToolAction, SIGNAL(activated()), this, SLOT(setLineTool()));
- m_pLineToolAction->addTo(drawModeToolBar);
+ m_pLineToolAction->addTo(linePopupMenu);
+
+ m_pLineToolButton->setPopup(linePopupMenu);
+ m_pLineToolButton->setPopupDelay(0);
m_pRectangleToolButton = new QToolButton(drawModeToolBar);
m_pRectangleToolButton->setToggleButton(true);
QPopupMenu* rectanglePopupMenu = new QPopupMenu(m_pRectangleToolButton);
@@ -168,12 +175,17 @@ DrawPad::DrawPad(QWidget* parent, const char* name)
connect(m_pFilledEllipseToolAction, SIGNAL(activated()), this, SLOT(setFilledEllipseTool()));
m_pFilledEllipseToolAction->addTo(ellipsePopupMenu);
m_pEllipseToolButton->setPopup(ellipsePopupMenu);
m_pEllipseToolButton->setPopupDelay(0);
+ m_pTextToolAction = new QAction(tr("Insert Text"), Resource::loadIconSet("drawpad/text.png"), QString::null, 0, this);
+ m_pTextToolAction->setToggleAction(true);
+ connect(m_pTextToolAction, SIGNAL(activated()), this, SLOT(setTextTool()));
+ m_pTextToolAction->addTo(drawModeToolBar);
+
m_pFillToolAction = new QAction(tr("Fill Region"), Resource::loadIconSet("drawpad/fill.png"), QString::null, 0, this);
m_pFillToolAction->setToggleAction(true);
connect(m_pFillToolAction, SIGNAL(activated()), this, SLOT(setFillTool()));
m_pFillToolAction->addTo(drawModeToolBar);
m_pEraseToolAction = new QAction(tr("Erase Point"), Resource::loadIconSet("drawpad/erase.png"), QString::null, 0, this);
@@ -270,32 +282,44 @@ void DrawPad::setPointTool()
if (m_pTool) {
delete m_pTool;
}
m_pTool = new PointTool(this, m_pDrawPadCanvas);
- m_pPointToolAction->setOn(true);
- m_pLineToolAction->setOn(false);
+ m_pLineToolButton->setIconSet(m_pPointToolAction->iconSet());
+ QToolTip::add(m_pLineToolButton, m_pPointToolAction->text());
+
+ disconnect(m_pLineToolButton, SIGNAL(clicked()), 0, 0);
+ connect(m_pLineToolButton, SIGNAL(clicked()), m_pPointToolAction, SIGNAL(activated()));
+
+ m_pLineToolButton->setOn(true);
m_pRectangleToolButton->setOn(false);
m_pEllipseToolButton->setOn(false);
+ m_pTextToolAction->setOn(false);
m_pFillToolAction->setOn(false);
m_pEraseToolAction->setOn(false);
}
void DrawPad::setLineTool()
{
if (m_pTool) {
delete m_pTool;
}
m_pTool = new LineTool(this, m_pDrawPadCanvas);
- m_pPointToolAction->setOn(false);
- m_pLineToolAction->setOn(true);
+ m_pLineToolButton->setIconSet(m_pLineToolAction->iconSet());
+ QToolTip::add(m_pLineToolButton, m_pLineToolAction->text());
+
+ disconnect(m_pLineToolButton, SIGNAL(clicked()), 0, 0);
+ connect(m_pLineToolButton, SIGNAL(clicked()), m_pLineToolAction, SIGNAL(activated()));
+
+ m_pLineToolButton->setOn(true);
m_pRectangleToolButton->setOn(false);
m_pEllipseToolButton->setOn(false);
+ m_pTextToolAction->setOn(false);
m_pFillToolAction->setOn(false);
m_pEraseToolAction->setOn(false);
}
void DrawPad::setRectangleTool()
{
@@ -308,16 +332,16 @@ void DrawPad::setRectangleTool()
m_pRectangleToolButton->setIconSet(m_pRectangleToolAction->iconSet());
QToolTip::add(m_pRectangleToolButton, m_pRectangleToolAction->text());
disconnect(m_pRectangleToolButton, SIGNAL(clicked()), 0, 0);
connect(m_pRectangleToolButton, SIGNAL(clicked()), m_pRectangleToolAction, SIGNAL(activated()));
- m_pPointToolAction->setOn(false);
- m_pLineToolAction->setOn(false);
+ m_pLineToolButton->setOn(false);
m_pRectangleToolButton->setOn(true);
m_pEllipseToolButton->setOn(false);
+ m_pTextToolAction->setOn(false);
m_pFillToolAction->setOn(false);
m_pEraseToolAction->setOn(false);
}
void DrawPad::setFilledRectangleTool()
{
@@ -330,16 +354,16 @@ void DrawPad::setFilledRectangleTool()
m_pRectangleToolButton->setIconSet(m_pFilledRectangleToolAction->iconSet());
QToolTip::add(m_pRectangleToolButton, m_pFilledRectangleToolAction->text());
disconnect(m_pRectangleToolButton, SIGNAL(clicked()), 0, 0);
connect(m_pRectangleToolButton, SIGNAL(clicked()), m_pFilledRectangleToolAction, SIGNAL(activated()));
- m_pPointToolAction->setOn(false);
- m_pLineToolAction->setOn(false);
+ m_pLineToolButton->setOn(false);
m_pRectangleToolButton->setOn(true);
m_pEllipseToolButton->setOn(false);
+ m_pTextToolAction->setOn(false);
m_pFillToolAction->setOn(false);
m_pEraseToolAction->setOn(false);
}
void DrawPad::setEllipseTool()
{
@@ -352,16 +376,16 @@ void DrawPad::setEllipseTool()
m_pEllipseToolButton->setIconSet(m_pEllipseToolAction->iconSet());
QToolTip::add(m_pEllipseToolButton, m_pEllipseToolAction->text());
disconnect(m_pEllipseToolButton, SIGNAL(clicked()), 0, 0);
connect(m_pEllipseToolButton, SIGNAL(clicked()), m_pEllipseToolAction, SIGNAL(activated()));
- m_pPointToolAction->setOn(false);
- m_pLineToolAction->setOn(false);
+ m_pLineToolButton->setOn(false);
m_pRectangleToolButton->setOn(false);
m_pEllipseToolButton->setOn(true);
+ m_pTextToolAction->setOn(false);
m_pFillToolAction->setOn(false);
m_pEraseToolAction->setOn(false);
}
void DrawPad::setFilledEllipseTool()
{
@@ -374,48 +398,64 @@ void DrawPad::setFilledEllipseTool()
m_pEllipseToolButton->setIconSet(m_pFilledEllipseToolAction->iconSet());
QToolTip::add(m_pEllipseToolButton, m_pFilledEllipseToolAction->text());
disconnect(m_pEllipseToolButton, SIGNAL(clicked()), 0, 0);
connect(m_pEllipseToolButton, SIGNAL(clicked()), m_pFilledEllipseToolAction, SIGNAL(activated()));
- m_pPointToolAction->setOn(false);
- m_pLineToolAction->setOn(false);
+ m_pLineToolButton->setOn(false);
m_pRectangleToolButton->setOn(false);
m_pEllipseToolButton->setOn(true);
+ m_pTextToolAction->setOn(false);
+ m_pFillToolAction->setOn(false);
+ m_pEraseToolAction->setOn(false);
+}
+
+void DrawPad::setTextTool()
+{
+ if (m_pTool) {
+ delete m_pTool;
+ }
+
+ m_pTool = new TextTool(this, m_pDrawPadCanvas);
+
+ m_pLineToolButton->setOn(false);
+ m_pRectangleToolButton->setOn(false);
+ m_pEllipseToolButton->setOn(false);
+ m_pTextToolAction->setOn(true);
m_pFillToolAction->setOn(false);
m_pEraseToolAction->setOn(false);
}
void DrawPad::setFillTool()
{
if (m_pTool) {
delete m_pTool;
}
m_pTool = new FillTool(this, m_pDrawPadCanvas);
- m_pPointToolAction->setOn(false);
- m_pLineToolAction->setOn(false);
+ m_pLineToolButton->setOn(false);
m_pRectangleToolButton->setOn(false);
m_pEllipseToolButton->setOn(false);
+ m_pTextToolAction->setOn(false);
m_pFillToolAction->setOn(true);
m_pEraseToolAction->setOn(false);
}
void DrawPad::setEraseTool()
{
if (m_pTool) {
delete m_pTool;
}
m_pTool = new EraseTool(this, m_pDrawPadCanvas);
- m_pPointToolAction->setOn(false);
- m_pLineToolAction->setOn(false);
+ m_pLineToolButton->setOn(false);
m_pRectangleToolButton->setOn(false);
m_pEllipseToolButton->setOn(false);
+ m_pTextToolAction->setOn(false);
m_pFillToolAction->setOn(false);
m_pEraseToolAction->setOn(true);
}
void DrawPad::changePenWidth(int value)
{