]> Shamusworld >> Repos - architektonas/blobdiff - src/penwidget.cpp
Added pen and dropper tools, and printing support.
[architektonas] / src / penwidget.cpp
index 4bd966af36e2af3cf3ac4e1f8c1d7a893f768f33..9b80932b2e47fc372f1b4870141616eb640c9156 100644 (file)
 //
 //maybe add a button to have it stamp attributes on all objects clicked on? [added Global::penStamp to facilitate this.]
 //need to add to drawingview the ability to use attributes on new objects [DONE]
-//need to override the selection so you can see the attributes effects immediately when they are changed instead of having to deselect them to see
-
+//need to override the selection so you can see the attributes effects immediately when they are changed instead of having to deselect them to see [IN PROGRESS]
 
 #include "penwidget.h"
 
-
-PenWidget::PenWidget(void): QWidget(), r(0), g(0), b(0), programChange(false)
+PenWidget::PenWidget(void): QWidget(), width(new QLineEdit("1.0")), red(new QLineEdit("00")), green(new QLineEdit("00")), blue(new QLineEdit("00")), style(new QComboBox), r(0), g(0), b(0), programChange(false), stampAction(new QAction(QIcon(":/res/pen-stamp.png"), tr(""), this)), dropperAction(new QAction(QIcon(":/res/pen-dropper.png"), tr(""), this)), tbStamp(new QToolButton(this)), tbDropper(new QToolButton(this))
 {
-       width = new QLineEdit("1.0");
-       red = new QLineEdit("00");
-       green = new QLineEdit("00");
-       blue = new QLineEdit("00");
-       style = new QComboBox;
-
        QLabel * l1 = new QLabel(tr("Width:"));
        QLabel * l2 = new QLabel(tr("RGB:"));
        QLabel * l3 = new QLabel(tr("Style:"));
-       QToolButton * qtb = new QToolButton(this);
 
-       QAction * action = new QAction(QIcon(":/res/pen-stamp.png"), tr(""), this);
-       action->setToolTip(tr("Stamp Selected"));
-       action->setStatusTip(tr("Stamp selected objects with pen attributes."));
-       action->setShortcut(QKeySequence(tr("p,p")));
-//     action->setCheckable(checkable);
-       qtb->setDefaultAction(action);
+       stampAction->setToolTip(tr("Stamp Selected"));
+       stampAction->setStatusTip(tr("Stamp selected objects with pen attributes."));
+       stampAction->setShortcut(QKeySequence(tr("p,p")));
+       stampAction->setCheckable(true);
+       tbStamp->setDefaultAction(stampAction);
+
+       dropperAction->setToolTip(tr("Color Picker"));
+       dropperAction->setStatusTip(tr("Get pen attributes from objects."));
+       dropperAction->setShortcut(QKeySequence(tr("d,d")));
+       dropperAction->setCheckable(true);
+       tbDropper->setDefaultAction(dropperAction);
 
        style->insertItem(1, tr("Solid"));
        style->insertItem(2, tr("Dash"));
@@ -63,15 +59,16 @@ PenWidget::PenWidget(void): QWidget(), r(0), g(0), b(0), programChange(false)
        style->setToolTip(tr("Sets pen style"));
 
        QHBoxLayout * hbox1 = new QHBoxLayout;
-       hbox1->addWidget(l1, 0, Qt::AlignLeft);
-       hbox1->addWidget(width, 0, Qt::AlignLeft);
        hbox1->addWidget(l2, 0, Qt::AlignLeft);
        hbox1->addWidget(red, 0, Qt::AlignLeft);
        hbox1->addWidget(green, 0, Qt::AlignLeft);
        hbox1->addWidget(blue, 0, Qt::AlignLeft);
+       hbox1->addWidget(l1, 0, Qt::AlignLeft);
+       hbox1->addWidget(width, 0, Qt::AlignLeft);
        hbox1->addWidget(l3, 0, Qt::AlignLeft);
        hbox1->addWidget(style, 0, Qt::AlignLeft);
-       hbox1->addWidget(qtb, 0, Qt::AlignLeft);
+       hbox1->addWidget(tbStamp, 0, Qt::AlignLeft);
+       hbox1->addWidget(tbDropper, 0, Qt::AlignLeft);
        hbox1->addStretch(1);
 
        setLayout(hbox1);
@@ -81,15 +78,12 @@ PenWidget::PenWidget(void): QWidget(), r(0), g(0), b(0), programChange(false)
        connect(green, SIGNAL(textEdited(QString)), this, SLOT(HandleGreenSelected(QString)));
        connect(blue, SIGNAL(textEdited(QString)), this, SLOT(HandleBlueSelected(QString)));
        connect(style, SIGNAL(currentIndexChanged(int)), this, SLOT(HandleStyleSelected(int)));
-       connect(qtb, SIGNAL(triggered(QAction *)), this, SLOT(HandleStamp(QAction *)));
 }
 
-
 PenWidget::~PenWidget()
 {
 }
 
-
 void PenWidget::SetFields(Object * obj)
 {
        // Sanity check
@@ -113,7 +107,6 @@ void PenWidget::SetFields(Object * obj)
        programChange = false;
 }
 
-
 void PenWidget::HandleWidthSelected(QString text)
 {
        // Parse the text in the control
@@ -127,7 +120,6 @@ void PenWidget::HandleWidthSelected(QString text)
        emit WidthSelected(Global::penWidth);
 }
 
-
 void PenWidget::HandleStyleSelected(int selected)
 {
        // Change was programmatic, don't do anything
@@ -140,7 +132,6 @@ void PenWidget::HandleStyleSelected(int selected)
        emit StyleSelected(Global::penStyle);
 }
 
-
 void PenWidget::HandleRedSelected(QString text)
 {
        // Parse the text in the control
@@ -155,7 +146,6 @@ void PenWidget::HandleRedSelected(QString text)
        emit ColorSelected(Global::penColor);
 }
 
-
 void PenWidget::HandleGreenSelected(QString text)
 {
        // Parse the text in the control
@@ -170,7 +160,6 @@ void PenWidget::HandleGreenSelected(QString text)
        emit ColorSelected(Global::penColor);
 }
 
-
 void PenWidget::HandleBlueSelected(QString text)
 {
        // Parse the text in the control
@@ -184,10 +173,3 @@ void PenWidget::HandleBlueSelected(QString text)
        Global::penColor = (r << 16) | (g << 8) | b;
        emit ColorSelected(Global::penColor);
 }
-
-
-void PenWidget::HandleStamp(QAction * /* action */)
-{
-       emit StampSelected();
-}
-