bug fixes, refactoring started

git-svn-id: svn://db.shs.com.ru/libs@590 a8b55f48-bf90-11e4-a774-851b48703e85
This commit is contained in:
2019-09-12 15:49:11 +00:00
parent fd7465c449
commit 947ffadbcb
9 changed files with 64 additions and 106 deletions

View File

@@ -15,10 +15,10 @@ _DTSizeItem::_DTSizeItem(): QGraphicsObject() {
cur_item = 0;
grid = 10.;
in_process = can_drag = false;
setData(1008, true);
setData(1007, true);
for (int i = 0; i < 8; ++i) {
//qDebug() << &(rects[i]);
rects[i].setData(1008, true);
rects[i].setData(1007, true);
rects[i].setFlag(QGraphicsItem::ItemIgnoresTransformations);
rects[i].setZValue(10.);
rects[i].setAcceptHoverEvents(true);
@@ -508,11 +508,23 @@ void DrawTools::alignClicked() {
}
void DrawTools::setPenBrushEnabled(bool pen, bool brush) {
void DrawTools::setTollButtonsEnabled(bool pen, bool brush, bool wid_hei) {
ui->labelPen->setEnabled(pen);
ui->colorButtonPen->setEnabled(pen);
ui->labelBrush->setEnabled(brush);
ui->colorButtonBrush->setEnabled(brush);
ui->spinWidth->setEnabled(wid_hei);
ui->spinHeight->setEnabled(wid_hei);
ui->labelWidth->setEnabled(wid_hei);
ui->labelHeight->setEnabled(wid_hei);
ui->labelPen->setVisible(pen);
ui->colorButtonPen->setVisible(pen);
ui->labelBrush->setVisible(brush);
ui->colorButtonBrush->setVisible(brush);
ui->spinWidth->setVisible(wid_hei);
ui->spinHeight->setVisible(wid_hei);
ui->labelWidth->setVisible(wid_hei);
ui->labelHeight->setVisible(wid_hei);
}
@@ -607,7 +619,7 @@ void DrawTools::selectionChanged() {
font_dlg.blockSignals(true);
font_dlg.setCurrentFont(itext->font());
font_dlg.blockSignals(false);
setPenBrushEnabled(true, false);
setTollButtonsEnabled(true, false, false);
ui->widgetAlign2->setEnabled(false);
ui->widgetAlign9->setEnabled(false);
size_item.assignObject(itext);
@@ -618,7 +630,7 @@ void DrawTools::selectionChanged() {
font_dlg.blockSignals(true);
font_dlg.setCurrentFont(iatext->font());
font_dlg.blockSignals(false);
setPenBrushEnabled(true, false);
setTollButtonsEnabled(true, false, false);
foreach (QAction * a, menu_hor.actions()) a->setChecked(false);
foreach (QAction * a, menu_ver.actions()) a->setChecked(false);
align = iatext->alignment();
@@ -642,7 +654,7 @@ void DrawTools::selectionChanged() {
} else if (ipixmap) {
ui->stackedProperties->setCurrentIndex(2);
ui->spinScale->setValue(sqrt(ipixmap->transform().determinant()));
setPenBrushEnabled(false, false);
setTollButtonsEnabled(false, false, false);
size_item.assignObject(ipixmap);
} else if (irect || iell) {
ui->stackedProperties->setCurrentIndex(1);
@@ -662,7 +674,7 @@ void DrawTools::selectionChanged() {
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);
setTollButtonsEnabled(true, true, true);
if (resize_enabled)
size_item.assignObject(ishape);
}
@@ -671,7 +683,7 @@ void DrawTools::selectionChanged() {
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);
setTollButtonsEnabled(true, false, false);
if (resize_enabled)
size_item.assignObject(iline);
} else {
@@ -794,11 +806,11 @@ void DrawTools::buttonImage_clicked() {
f += "*.";
f += i;
}
QString ret = QFileDialog::getOpenFileName(0, trUtf8("Select image"), pi->data(1101).toString(), QString("Images(%1)").arg(f));
QString ret = QFileDialog::getOpenFileName(0, trUtf8("Select image"), prev_dir, QString("Images(%1)").arg(f));
if (ret.isEmpty()) return;
QImage im(ret);
if (im.isNull()) return;
pi->setData(1101, ret);
prev_dir = ret;
QRectF obr = pi->boundingRect();
pi->setPixmap(QPixmap::fromImage(im));
QRectF nbr = pi->boundingRect();
@@ -857,7 +869,7 @@ void DrawTools::actionZ_triggered() {
if (!cur_item) return;
if (cur_item->data(1009) == "decor") {
BlockView * view = 0;
if (cur_item) if (cur_item->scene()) if (!cur_item->scene()->views().isEmpty())
if (cur_item->scene()) if (!cur_item->scene()->views().isEmpty())
view = qobject_cast<BlockView * >(cur_item->scene()->views()[0]);
if (!view) return;
QGraphicsScene * scene = view->scene();
@@ -873,7 +885,7 @@ void DrawTools::actionZ_triggered() {
foreach (QGraphicsItem * d, dl) scene->addItem(d);
scene->blockSignals(false);
}
if (cur_item->data(1011) == "decor") {
if (cur_item->data(1011).toBool()) {
BlockItem * bi = qgraphicsitem_cast<BlockItem*>(cur_item->parentItem());
if (!bi) return;
QList<QGraphicsItem*> dl = bi->decors_;