mirror of
https://github.com/qelectrotech/qelectrotech-source-mirror.git
synced 2025-12-17 20:50:34 +01:00
Improve Basic shapes Properties size function
git-svn-id: svn+ssh://svn.tuxfamily.org/svnroot/qet/qet/trunk@4294 bfdf4180-ca20-0410-9c96-a3a8aa849046
This commit is contained in:
@@ -38,13 +38,14 @@ QetShapeItem::QetShapeItem(QPointF p1, QPointF p2, ShapeType type, QGraphicsItem
|
||||
m_P2 (p2),
|
||||
m_hovered(false),
|
||||
m_mouse_grab_handler(false),
|
||||
shape_size(1),
|
||||
m_handler(10)
|
||||
{
|
||||
if (type == Polygon) m_polygon << m_P1 << m_P2;
|
||||
setFlags(QGraphicsItem::ItemIsMovable | QGraphicsItem::ItemIsSelectable);
|
||||
setAcceptHoverEvents(true);
|
||||
m_pen.setStyle(Qt::DashLine);
|
||||
m_pen.setWidthF(1);
|
||||
|
||||
}
|
||||
|
||||
QetShapeItem::~QetShapeItem() {}
|
||||
@@ -458,6 +459,7 @@ bool QetShapeItem::fromXml(const QDomElement &e)
|
||||
|
||||
is_movable_ = (e.attribute("is_movable").toInt());
|
||||
m_pen.setStyle(Qt::PenStyle(e.attribute("style","0").toInt()));
|
||||
m_pen.setWidthF(e.attribute("shape_size", QString::number(shape_size)).toInt());
|
||||
|
||||
QString type = e.attribute("type");
|
||||
//Compatibility for version older than N°4075, shape type was stored with an int
|
||||
@@ -506,6 +508,7 @@ QDomElement QetShapeItem::toXml(QDomDocument &document) const
|
||||
QMetaEnum me = metaObject()->enumerator(metaObject()->indexOfEnumerator("ShapeType"));
|
||||
result.setAttribute("type", me.valueToKey(m_shapeType));
|
||||
result.setAttribute("style", QString::number(m_pen.style()));
|
||||
result.setAttribute("shape_size", QString::number(m_pen.widthF()));
|
||||
result.setAttribute("is_movable", bool(is_movable_));
|
||||
if (m_shapeType != Polygon)
|
||||
{
|
||||
|
||||
@@ -96,13 +96,14 @@ class QetShapeItem : public QetGraphicsItem
|
||||
|
||||
///ATTRIBUTES
|
||||
private:
|
||||
ShapeType m_shapeType;
|
||||
ShapeType m_shapeType;
|
||||
QPen m_pen;
|
||||
QPointF m_P1, m_P2, m_old_P1, m_old_P2;
|
||||
QPolygonF m_polygon, m_old_polygon;
|
||||
bool m_hovered,
|
||||
bool m_hovered,
|
||||
m_mouse_grab_handler;
|
||||
int m_vector_index;
|
||||
int shape_size;
|
||||
QetGraphicsHandlerUtility m_handler;
|
||||
};
|
||||
#endif // QETSHAPEITEM_H
|
||||
|
||||
@@ -57,9 +57,12 @@ void ShapeGraphicsItemPropertiesWidget::setItem(QetShapeItem *shape)
|
||||
|
||||
if (m_shape)
|
||||
disconnect(m_shape, &QetShapeItem::penChanged, this, &ShapeGraphicsItemPropertiesWidget::updateUi);
|
||||
disconnect(m_shape, &QetShapeItem::widthChanged, this, &ShapeGraphicsItemPropertiesWidget::updateUi);
|
||||
|
||||
m_shape = shape;
|
||||
connect(m_shape, &QetShapeItem::penChanged, this, &ShapeGraphicsItemPropertiesWidget::updateUi);
|
||||
connect(m_shape, &QetShapeItem::widthChanged, this, &ShapeGraphicsItemPropertiesWidget::updateUi);
|
||||
|
||||
|
||||
updateUi();
|
||||
}
|
||||
@@ -101,6 +104,7 @@ QUndoCommand* ShapeGraphicsItemPropertiesWidget::associatedUndo() const
|
||||
QPen old_pen = m_shape->pen();
|
||||
QPen new_pen = old_pen;
|
||||
new_pen.setStyle(Qt::PenStyle(ui->m_style_cb->currentIndex() + 1));
|
||||
new_pen.setWidthF(ui->m_size_cb->value());
|
||||
if (new_pen == old_pen) return nullptr;
|
||||
|
||||
QPropertyUndoCommand *undo = new QPropertyUndoCommand(m_shape, "pen", old_pen, new_pen);
|
||||
@@ -114,6 +118,7 @@ QUndoCommand* ShapeGraphicsItemPropertiesWidget::associatedUndo() const
|
||||
void ShapeGraphicsItemPropertiesWidget::updateUi()
|
||||
{
|
||||
ui->m_style_cb->setCurrentIndex(static_cast<int>(m_shape->pen().style()) - 1);
|
||||
ui->m_size_cb ->setValue(m_shape->pen().widthF());
|
||||
ui->m_lock_pos_cb->setChecked(!m_shape->isMovable());
|
||||
}
|
||||
|
||||
@@ -127,11 +132,12 @@ bool ShapeGraphicsItemPropertiesWidget::setLiveEdit(bool live_edit)
|
||||
if (live_edit == m_live_edit) return true;
|
||||
m_live_edit = live_edit;
|
||||
|
||||
if (m_live_edit)
|
||||
if (m_live_edit){
|
||||
connect (ui->m_style_cb, SIGNAL(activated(int)), this, SLOT(apply()));
|
||||
else
|
||||
connect (ui->m_size_cb, SIGNAL(valueChanged(int)), this, SLOT(apply()));
|
||||
}else
|
||||
disconnect (ui->m_style_cb, SIGNAL(activated(int)), this, SLOT(apply()));
|
||||
|
||||
disconnect (ui->m_size_cb, SIGNAL(valueChanged(int)), this, SLOT(apply()));
|
||||
return true;
|
||||
}
|
||||
|
||||
|
||||
@@ -52,9 +52,10 @@ class ShapeGraphicsItemPropertiesWidget : public PropertiesEditorWidget
|
||||
private slots:
|
||||
void on_m_lock_pos_cb_clicked();
|
||||
|
||||
private:
|
||||
private:
|
||||
Ui::ShapeGraphicsItemPropertiesWidget *ui;
|
||||
QetShapeItem *m_shape;
|
||||
int shape_size;
|
||||
};
|
||||
|
||||
#endif // SHAPEGRAPHICSITEMPROPERTIESWIDGET_H
|
||||
|
||||
@@ -6,7 +6,7 @@
|
||||
<rect>
|
||||
<x>0</x>
|
||||
<y>0</y>
|
||||
<width>195</width>
|
||||
<width>242</width>
|
||||
<height>183</height>
|
||||
</rect>
|
||||
</property>
|
||||
@@ -54,6 +54,29 @@
|
||||
</item>
|
||||
</layout>
|
||||
</item>
|
||||
<item alignment="Qt::AlignLeft">
|
||||
<widget class="QLabel" name="label_2">
|
||||
<property name="text">
|
||||
<string>Epaisseur de trait</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
<widget class="QSpinBox" name="m_size_cb">
|
||||
<property name="correctionMode">
|
||||
<enum>QAbstractSpinBox::CorrectToNearestValue</enum>
|
||||
</property>
|
||||
<property name="minimum">
|
||||
<number>1</number>
|
||||
</property>
|
||||
<property name="maximum">
|
||||
<number>20</number>
|
||||
</property>
|
||||
<property name="value">
|
||||
<number>1</number>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
<widget class="QCheckBox" name="m_lock_pos_cb">
|
||||
<property name="text">
|
||||
@@ -75,6 +98,9 @@
|
||||
</spacer>
|
||||
</item>
|
||||
</layout>
|
||||
<zorder>label_2</zorder>
|
||||
<zorder>m_lock_pos_cb</zorder>
|
||||
<zorder>m_size_cb</zorder>
|
||||
</widget>
|
||||
<resources/>
|
||||
<connections/>
|
||||
|
||||
Reference in New Issue
Block a user