summaryrefslogtreecommitdiff
path: root/noncore/graphics/drawpad/drawpad.cpp
Unidiff
Diffstat (limited to 'noncore/graphics/drawpad/drawpad.cpp') (more/less context) (show whitespace changes)
-rw-r--r--noncore/graphics/drawpad/drawpad.cpp81
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
36DrawPad::DrawPad(QWidget* parent, const char* name, WFlags f) 36DrawPad::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
211DrawPad::~DrawPad() 226DrawPad::~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
221void DrawPad::clearAll()
222{
223 m_pDrawPadCanvas->clearAll();
224 updateNavigationToolBar();
225}
226
227void DrawPad::newPage()
228{
229 m_pDrawPadCanvas->newPage();
230 updateNavigationToolBar();
231}
232
233void DrawPad::deletePage()
234{
235 m_pDrawPadCanvas->deletePage();
236 updateNavigationToolBar();
237}
238
239void DrawPad::goFirstPage()
240{
241 m_pDrawPadCanvas->goFirstPage();
242 updateNavigationToolBar();
243}
244
245void DrawPad::goPreviousPage()
246{
247 m_pDrawPadCanvas->goPreviousPage();
248 updateNavigationToolBar();
249}
250
251void DrawPad::goNextPage()
252{
253 m_pDrawPadCanvas->goNextPage();
254 updateNavigationToolBar();
255}
256
257void DrawPad::goLastPage()
258{
259 m_pDrawPadCanvas->goLastPage();
260 updateNavigationToolBar();
261}
262
263void DrawPad::setPointDrawMode() 236void 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
374void DrawPad::changeBrushColor(int index) 347void 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
384void DrawPad::updateNavigationToolBar() 357void DrawPad::updateUndoRedoToolButtons()
358{
359 m_pUndoAction->setEnabled(m_pDrawPadCanvas->undoEnabled());
360 m_pRedoAction->setEnabled(m_pDrawPadCanvas->redoEnabled());
361}
362
363void 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}