git-svn-id: svn://db.shs.com.ru/libs@301 a8b55f48-bf90-11e4-a774-851b48703e85
This commit is contained in:
@@ -56,6 +56,7 @@ void _DTSizeItem::assignObject(QGraphicsItem * item) {
|
||||
QGraphicsEllipseItem * iell = qgraphicsitem_cast<QGraphicsEllipseItem*>(cur_item);
|
||||
QGraphicsLineItem * iline = qgraphicsitem_cast<QGraphicsLineItem*>(cur_item);
|
||||
if (irect || iell || iline) {
|
||||
resizeHandles();
|
||||
is_line = qgraphicsitem_cast<QGraphicsLineItem*>(item);
|
||||
for (int i = 0; i < (is_line ? 2 : 8); ++i) {
|
||||
rects[i].setParentItem(item);
|
||||
@@ -115,6 +116,14 @@ void _DTSizeItem::doubleClick() {
|
||||
}
|
||||
|
||||
|
||||
void _DTSizeItem::resizeHandles() {
|
||||
double sz = QApplication::fontMetrics().size(0, "0").height() / 3.;
|
||||
QRectF r(-sz, -sz, sz*2, sz*2);
|
||||
for (int i = 0; i < 8; ++i)
|
||||
rects[i].setRect(r);
|
||||
}
|
||||
|
||||
|
||||
QRectF _DTSizeItem::itemRect(const QGraphicsItem * item) const {
|
||||
if (!cur_item) return QRectF();
|
||||
QGraphicsRectItem * irect = qgraphicsitem_cast<QGraphicsRectItem*>(cur_item);
|
||||
@@ -220,6 +229,22 @@ actions_Z_up(this), actions_Z_top(this), actions_Z_down(this), actions_Z_bottom(
|
||||
ui = new Ui::DrawTools();
|
||||
ui->setupUi(widget_props);
|
||||
widget_props->setEnabled(false);
|
||||
int fh = qMax<int>(QApplication::fontMetrics().size(0, "0").height(), 22);
|
||||
int thick = qMax<int>(qRound(QApplication::fontMetrics().size(0, "0").height() / 15.), 1);
|
||||
QSize sz(fh * 2.5, fh);
|
||||
QStringList styles;
|
||||
styles << tr("NoPen") << tr("Solid") << tr("Dash")
|
||||
<< tr("Dot") << tr("Dash-Dot") << tr("Dash-Dot-Dot");
|
||||
ui->comboLineStyle->setIconSize(sz);
|
||||
for (int i = 0; i < 6; i++) {
|
||||
QPixmap pix(sz);
|
||||
pix.fill();
|
||||
QPainter p(&pix);
|
||||
p.setPen(QPen(Qt::black, thick, (Qt::PenStyle)i));
|
||||
p.drawLine(0, pix.height() / 2, pix.width(), pix.height() / 2);
|
||||
p.end();
|
||||
ui->comboLineStyle->addItem(QIcon(pix), styles[i]);
|
||||
}
|
||||
setAlignCompact(false);
|
||||
menu_hor.addActions(QList<QAction*>() << ui->actionLeft << ui->actionHCenter << ui->actionRight);
|
||||
menu_ver.addActions(QList<QAction*>() << ui->actionTop << ui->actionVCenter << ui->actionBottom);
|
||||
@@ -265,6 +290,7 @@ actions_Z_up(this), actions_Z_top(this), actions_Z_down(this), actions_Z_bottom(
|
||||
connect(ui->spinScale, SIGNAL(editingFinished()), this, SLOT(changeFinished()));
|
||||
connect(ui->comboText, SIGNAL(editTextChanged(QString)), this, SLOT(propertyChanged()));
|
||||
connect(ui->comboText->lineEdit(), SIGNAL(editingFinished()), this, SLOT(changeFinished()));
|
||||
connect(ui->comboLineStyle, SIGNAL(currentIndexChanged(int)), this, SLOT(comboLineStyleChanged()));
|
||||
connect(ui->colorButtonPen, SIGNAL(colorChanged(QColor)), this, SLOT(propertyChanged()));
|
||||
connect(ui->colorButtonPen, SIGNAL(colorChanged(QColor)), this, SLOT(changeFinished()));
|
||||
connect(ui->colorButtonBrush, SIGNAL(colorChanged(QColor)), this, SLOT(propertyChanged()));
|
||||
@@ -414,6 +440,15 @@ QComboBox * DrawTools::textEditCombo() const {
|
||||
return ui->comboText;
|
||||
}
|
||||
|
||||
/*
|
||||
void DrawTools::changeEvent(QEvent * e) {
|
||||
if (e->type() == QEvent::LanguageChange) {
|
||||
ui->retranslateUi(this);
|
||||
return;
|
||||
}
|
||||
QObject::changeEvent(e);
|
||||
}
|
||||
*/
|
||||
|
||||
QAction * DrawTools::newAction(const QString & text, const QIcon & icon, int type) {
|
||||
QAction * ret = new QAction(icon, text, this);
|
||||
@@ -469,6 +504,7 @@ void DrawTools::blockPropSignals(bool block_) {
|
||||
ui->spinHeight->blockSignals(block_);
|
||||
ui->spinThick->blockSignals(block_);
|
||||
ui->comboText->blockSignals(block_);
|
||||
ui->comboLineStyle->blockSignals(block_);
|
||||
ui->colorButtonPen->blockSignals(block_);
|
||||
ui->colorButtonBrush->blockSignals(block_);
|
||||
ui->actionTop->blockSignals(block_);
|
||||
@@ -608,6 +644,7 @@ void DrawTools::selectionChanged() {
|
||||
ui->colorButtonPen->setColor(ishape->pen().color());
|
||||
ui->colorButtonBrush->setColor(ishape->brush().color());
|
||||
ui->spinThick->setValue(ishape->pen().widthF());
|
||||
ui->comboLineStyle->setCurrentIndex(qMin<int>((int)ishape->pen().style(), ui->comboLineStyle->count() - 1));
|
||||
setPenBrushEnabled(true, true);
|
||||
if (resize_enabled)
|
||||
size_item.assignObject(ishape);
|
||||
@@ -616,6 +653,7 @@ void DrawTools::selectionChanged() {
|
||||
ui->stackedProperties->setCurrentIndex(1);
|
||||
ui->colorButtonPen->setColor(iline->pen().color());
|
||||
ui->spinThick->setValue(iline->pen().widthF());
|
||||
ui->comboLineStyle->setCurrentIndex(qMin<int>((int)iline->pen().style(), ui->comboLineStyle->count() - 1));
|
||||
setPenBrushEnabled(true, false);
|
||||
if (resize_enabled)
|
||||
size_item.assignObject(iline);
|
||||
@@ -690,7 +728,7 @@ void DrawTools::propertyChanged() {
|
||||
iell->setRect(QRectF(iell->rect().topLeft(), QSizeF(ui->spinWidth->value(), ui->spinHeight->value())));
|
||||
}
|
||||
if (ishape) {
|
||||
ishape->setPen(QPen(ui->colorButtonPen->color(), ui->spinThick->value()));
|
||||
ishape->setPen(QPen(ui->colorButtonPen->color(), ui->spinThick->value(), (Qt::PenStyle)ui->comboLineStyle->currentIndex()));
|
||||
ishape->setBrush(ui->colorButtonBrush->color());
|
||||
if (resize_enabled)
|
||||
size_item.assignObject(ishape);
|
||||
@@ -703,6 +741,30 @@ void DrawTools::propertyChanged() {
|
||||
}
|
||||
|
||||
|
||||
void DrawTools::comboLineStyleChanged() {
|
||||
if (!cur_item) return;
|
||||
QGraphicsRectItem * irect = qgraphicsitem_cast<QGraphicsRectItem*>(cur_item);
|
||||
QGraphicsEllipseItem * iell = qgraphicsitem_cast<QGraphicsEllipseItem*>(cur_item);
|
||||
QGraphicsLineItem * iline = qgraphicsitem_cast<QGraphicsLineItem*>(cur_item);
|
||||
if (irect || iell) {
|
||||
QAbstractGraphicsShapeItem * ishape(0);
|
||||
if (irect)
|
||||
ishape = irect;
|
||||
if (iell)
|
||||
ishape = iell;
|
||||
if (ishape) {
|
||||
QPen p(ishape->pen());
|
||||
p.setStyle((Qt::PenStyle)ui->comboLineStyle->currentIndex());
|
||||
ishape->setPen(p);
|
||||
}
|
||||
} else if (iline) {
|
||||
QPen p(iline->pen());
|
||||
p.setStyle((Qt::PenStyle)ui->comboLineStyle->currentIndex());
|
||||
iline->setPen(p);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
void DrawTools::buttonImage_clicked() {
|
||||
QGraphicsPixmapItem * pi = qgraphicsitem_cast<QGraphicsPixmapItem * >(cur_item);
|
||||
if (!pi) return;
|
||||
|
||||
Reference in New Issue
Block a user