Diffstat (limited to 'noncore/graphics/drawpad/drawpad.cpp') (more/less context) (ignore whitespace changes)
-rw-r--r-- | noncore/graphics/drawpad/drawpad.cpp | 64 |
1 files changed, 38 insertions, 26 deletions
diff --git a/noncore/graphics/drawpad/drawpad.cpp b/noncore/graphics/drawpad/drawpad.cpp index 5cc2197..f67bef8 100644 --- a/noncore/graphics/drawpad/drawpad.cpp +++ b/noncore/graphics/drawpad/drawpad.cpp @@ -15,2 +15,4 @@ +#include "colordialog.h" +#include "colorpanel.h" #include "drawpadcanvas.h" @@ -55,12 +57,2 @@ DrawPad::DrawPad(QWidget* parent, const char* name, WFlags f) - m_colors.resize(8); - m_colors.at(0) = Qt::black; - m_colors.at(1) = Qt::white; - m_colors.at(2) = Qt::red; - m_colors.at(3) = Qt::green; - m_colors.at(4) = Qt::blue; - m_colors.at(5) = Qt::cyan; - m_colors.at(6) = Qt::magenta; - m_colors.at(7) = Qt::yellow; - // init menu @@ -190,10 +182,12 @@ DrawPad::DrawPad(QWidget* parent, const char* name, WFlags f) QPopupMenu* penColorPopupMenu = new QPopupMenu(m_pPenColorToolButton); - connect(penColorPopupMenu, SIGNAL(activated(int)), this, SLOT(changePenColor(int))); - QPixmap penColorPixmap(14, 14); + ColorPanel* penColorPanel = new ColorPanel(penColorPopupMenu); + connect(penColorPanel, SIGNAL(colorSelected(const QColor&)), this, SLOT(changePenColor(const QColor&))); + penColorPopupMenu->insertItem(penColorPanel); - for (uint i = 0; i < m_colors.size(); i++) { - penColorPixmap.fill(m_colors.at(i)); - penColorPopupMenu->insertItem(penColorPixmap, i); - } + penColorPopupMenu->insertSeparator(); + + QAction* choosePenColorAction = new QAction(tr("More"), tr("More..."), 0, this); + connect(choosePenColorAction, SIGNAL(activated()), this, SLOT(choosePenColor())); + choosePenColorAction->addTo(penColorPopupMenu); @@ -209,10 +203,12 @@ DrawPad::DrawPad(QWidget* parent, const char* name, WFlags f) QPopupMenu* brushColorPopupMenu = new QPopupMenu(m_pBrushColorToolButton); - connect(brushColorPopupMenu, SIGNAL(activated(int)), this, SLOT(changeBrushColor(int))); - QPixmap brushColorPixmap(14, 14); + ColorPanel* brushColorPanel = new ColorPanel(brushColorPopupMenu); + connect(brushColorPanel, SIGNAL(colorSelected(const QColor&)), this, SLOT(changeBrushColor(const QColor&))); + brushColorPopupMenu->insertItem(brushColorPanel); - for (uint i = 0; i < m_colors.size(); i++) { - brushColorPixmap.fill(m_colors.at(i)); - brushColorPopupMenu->insertItem(brushColorPixmap, i); - } + brushColorPopupMenu->insertSeparator(); + + QAction* chooseBrushColorAction = new QAction(tr("More"), tr("More..."), 0, this); + connect(chooseBrushColorAction, SIGNAL(activated()), this, SLOT(chooseBrushColor())); + chooseBrushColorAction->addTo(brushColorPopupMenu); @@ -336,5 +332,5 @@ void DrawPad::changePenWidth(int value) -void DrawPad::changePenColor(int index) +void DrawPad::changePenColor(const QColor& color) { - m_pen.setColor(m_colors.at(index)); + m_pen.setColor(color); @@ -344,7 +340,9 @@ void DrawPad::changePenColor(int index) painter.end(); + + m_pPenColorToolButton->popup()->hide(); } -void DrawPad::changeBrushColor(int index) +void DrawPad::changeBrushColor(const QColor& color) { - m_brush = QBrush(m_colors.at(index)); + m_brush = QBrush(color); @@ -354,2 +352,16 @@ void DrawPad::changeBrushColor(int index) painter.end(); + + m_pBrushColorToolButton->popup()->hide(); +} + +void DrawPad::choosePenColor() +{ + QColor newPenColor = QColorDialog::getColor(m_pen.color()); + changePenColor(newPenColor); +} + +void DrawPad::chooseBrushColor() +{ + QColor newBrushColor = QColorDialog::getColor(m_brush.color()); + changeBrushColor(newBrushColor); } |