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 @@ #include <qspinbox.h> #include <qtoolbutton.h> #include <qtooltip.h> DrawPad::DrawPad(QWidget* parent, const char* name, WFlags f) : QMainWindow(parent, name, f) { setCaption(tr("DrawPad")); // init members m_pDrawPadCanvas = new DrawPadCanvas(this, this); + connect(m_pDrawPadCanvas, SIGNAL(pagesChanged()), this, SLOT(updateNavigationToolButtons())); + connect(m_pDrawPadCanvas, SIGNAL(pageBackupsChanged()), this, SLOT(updateUndoRedoToolButtons())); QFile file(Global::applicationFileName("drawpad", "drawpad.xml")); if (file.open(IO_ReadOnly)) { m_pDrawPadCanvas->load(&file); file.close(); } setCentralWidget(m_pDrawPadCanvas); m_colors.resize(8); m_colors.at(0) = Qt::black; @@ -62,74 +64,84 @@ DrawPad::DrawPad(QWidget* parent, const char* name, WFlags f) m_colors.at(7) = Qt::yellow; // init menu setToolBarsMovable(false); QPEToolBar* menuToolBar = new QPEToolBar(this); QPEMenuBar* menuBar = new QPEMenuBar(menuToolBar); QPopupMenu *toolsPopupMenu = new QPopupMenu(menuBar); QAction* clearAllAction = new QAction(tr("Clear All"), QString::null, 0, this); - connect(clearAllAction, SIGNAL(activated()), this, SLOT(clearAll())); + connect(clearAllAction, SIGNAL(activated()), m_pDrawPadCanvas, SLOT(clearAll())); clearAllAction->addTo(toolsPopupMenu); toolsPopupMenu->insertSeparator(); QAction* setOptionsAction = new QAction(tr("Options"), tr("Options..."), 0, this); setOptionsAction->addTo(toolsPopupMenu); menuBar->insertItem(tr("Tools"), toolsPopupMenu); // init page toolbar QPEToolBar* pageToolBar = new QPEToolBar(this); QAction* newPageAction = new QAction(tr("New Page"), Resource::loadIconSet("new"), QString::null, 0, this); - connect(newPageAction, SIGNAL(activated()), this, SLOT(newPage())); + connect(newPageAction, SIGNAL(activated()), m_pDrawPadCanvas, SLOT(newPage())); newPageAction->addTo(pageToolBar); QAction* clearPageAction = new QAction(tr("Clear Page"), Resource::loadIconSet("drawpad/clear"), QString::null, 0, this); connect(clearPageAction, SIGNAL(activated()), m_pDrawPadCanvas, SLOT(clearPage())); clearPageAction->addTo(pageToolBar); QAction* deletePageAction = new QAction(tr("Delete Page"), Resource::loadIconSet("trash"), QString::null, 0, this); - connect(deletePageAction, SIGNAL(activated()), this, SLOT(deletePage())); + connect(deletePageAction, SIGNAL(activated()), m_pDrawPadCanvas, SLOT(deletePage())); deletePageAction->addTo(pageToolBar); QPEToolBar* emptyToolBar = new QPEToolBar(this); emptyToolBar->setHorizontalStretchable(true); // init navigation toolbar QPEToolBar* navigationToolBar = new QPEToolBar(this); + m_pUndoAction = new QAction(tr("Undo"), Resource::loadIconSet("drawpad/undo"), QString::null, 0, this); + connect(m_pUndoAction, SIGNAL(activated()), m_pDrawPadCanvas, SLOT(undo())); + m_pUndoAction->addTo(navigationToolBar); + + m_pRedoAction = new QAction(tr("Redo"), Resource::loadIconSet("drawpad/redo"), QString::null, 0, this); + connect(m_pRedoAction, SIGNAL(activated()), m_pDrawPadCanvas, SLOT(redo())); + m_pRedoAction->addTo(navigationToolBar); + + updateUndoRedoToolButtons(); + m_pFirstPageAction = new QAction(tr("First Page"), Resource::loadIconSet("fastback"), QString::null, 0, this); - connect(m_pFirstPageAction, SIGNAL(activated()), this, SLOT(goFirstPage())); + connect(m_pFirstPageAction, SIGNAL(activated()), m_pDrawPadCanvas, SLOT(goFirstPage())); m_pFirstPageAction->addTo(navigationToolBar); m_pPreviousPageAction = new QAction(tr("Previous Page"), Resource::loadIconSet("back"), QString::null, 0, this); - connect(m_pPreviousPageAction, SIGNAL(activated()), this, SLOT(goPreviousPage())); + connect(m_pPreviousPageAction, SIGNAL(activated()), m_pDrawPadCanvas, SLOT(goPreviousPage())); m_pPreviousPageAction->addTo(navigationToolBar); m_pNextPageAction = new QAction(tr("Next Page"), Resource::loadIconSet("forward"), QString::null, 0, this); - connect(m_pNextPageAction, SIGNAL(activated()), this, SLOT(goNextPage())); + connect(m_pNextPageAction, SIGNAL(activated()), m_pDrawPadCanvas, SLOT(goNextPage())); m_pNextPageAction->addTo(navigationToolBar); m_pLastPageAction = new QAction(tr("Last Page"), Resource::loadIconSet("fastforward"), QString::null, 0, this); - connect(m_pLastPageAction, SIGNAL(activated()), this, SLOT(goLastPage())); + connect(m_pLastPageAction, SIGNAL(activated()), m_pDrawPadCanvas, SLOT(goLastPage())); m_pLastPageAction->addTo(navigationToolBar); - updateNavigationToolBar(); + updateNavigationToolButtons(); // init draw mode toolbar QPEToolBar* drawModeToolBar = new QPEToolBar(this); m_pPointDrawModeAction = new QAction(tr("Draw Point"), Resource::loadIconSet("drawpad/point.png"), QString::null, 0, this); m_pPointDrawModeAction->setToggleAction(true); connect(m_pPointDrawModeAction, SIGNAL(activated()), this, SLOT(setPointDrawMode())); m_pPointDrawModeAction->addTo(drawModeToolBar); m_pLineDrawModeAction = new QAction(tr("Draw Line"), Resource::loadIconSet("drawpad/line.png"), QString::null, 0, this); m_pLineDrawModeAction->setToggleAction(true); @@ -152,24 +164,27 @@ DrawPad::DrawPad(QWidget* parent, const char* name, WFlags f) m_pFillDrawModeAction->addTo(drawModeToolBar); m_pEraseDrawModeAction = new QAction(tr("Erase Point"), Resource::loadIconSet("drawpad/erase.png"), QString::null, 0, this); m_pEraseDrawModeAction->setToggleAction(true); connect(m_pEraseDrawModeAction, SIGNAL(activated()), this, SLOT(setEraseDrawMode())); m_pEraseDrawModeAction->addTo(drawModeToolBar); m_pDrawMode = 0; setPointDrawMode(); emptyToolBar = new QPEToolBar(this); emptyToolBar->setHorizontalStretchable(true); + emptyToolBar->addSeparator(); + + // init draw parameters toolbar QPEToolBar* drawParametersToolBar = new QPEToolBar(this); QSpinBox* penWidthSpinBox = new QSpinBox(1, 9, 1, drawParametersToolBar); connect(penWidthSpinBox, SIGNAL(valueChanged(int)), this, SLOT(changePenWidth(int))); penWidthSpinBox->setValue(1); m_pPenColorToolButton = new QToolButton(drawParametersToolBar); m_pPenColorToolButton->setPixmap(Resource::loadPixmap("drawpad/pencolor.png")); QPopupMenu* penColorPopupMenu = new QPopupMenu(m_pPenColorToolButton); @@ -209,66 +224,24 @@ DrawPad::DrawPad(QWidget* parent, const char* name, WFlags f) } DrawPad::~DrawPad() { QFile file(Global::applicationFileName("drawpad", "drawpad.xml")); if (file.open(IO_WriteOnly)) { m_pDrawPadCanvas->save(&file); file.close(); } } -void DrawPad::clearAll() -{ - m_pDrawPadCanvas->clearAll(); - updateNavigationToolBar(); -} - -void DrawPad::newPage() -{ - m_pDrawPadCanvas->newPage(); - updateNavigationToolBar(); -} - -void DrawPad::deletePage() -{ - m_pDrawPadCanvas->deletePage(); - updateNavigationToolBar(); -} - -void DrawPad::goFirstPage() -{ - m_pDrawPadCanvas->goFirstPage(); - updateNavigationToolBar(); -} - -void DrawPad::goPreviousPage() -{ - m_pDrawPadCanvas->goPreviousPage(); - updateNavigationToolBar(); -} - -void DrawPad::goNextPage() -{ - m_pDrawPadCanvas->goNextPage(); - updateNavigationToolBar(); -} - -void DrawPad::goLastPage() -{ - m_pDrawPadCanvas->goLastPage(); - updateNavigationToolBar(); -} - void DrawPad::setPointDrawMode() { if (m_pDrawMode) { delete m_pDrawMode; } m_pDrawMode = new PointDrawMode(this, m_pDrawPadCanvas); m_pPointDrawModeAction->setOn(true); m_pLineDrawModeAction->setOn(false); m_pRectangleDrawModeAction->setOn(false); m_pEllipseDrawModeAction->setOn(false); @@ -372,19 +345,25 @@ void DrawPad::changePenColor(int index) } void DrawPad::changeBrushColor(int index) { m_brush = QBrush(m_colors.at(index)); QPainter painter; painter.begin(m_pBrushColorToolButton->pixmap()); painter.fillRect(QRect(0, 12, 14, 2), m_brush.color()); painter.end(); } -void DrawPad::updateNavigationToolBar() +void DrawPad::updateUndoRedoToolButtons() +{ + m_pUndoAction->setEnabled(m_pDrawPadCanvas->undoEnabled()); + m_pRedoAction->setEnabled(m_pDrawPadCanvas->redoEnabled()); +} + +void DrawPad::updateNavigationToolButtons() { m_pFirstPageAction->setEnabled(m_pDrawPadCanvas->goPreviousPageEnabled()); m_pPreviousPageAction->setEnabled(m_pDrawPadCanvas->goPreviousPageEnabled()); m_pNextPageAction->setEnabled(m_pDrawPadCanvas->goNextPageEnabled()); m_pLastPageAction->setEnabled(m_pDrawPadCanvas->goNextPageEnabled()); } |