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:
scorpio810
2015-12-30 13:47:21 +00:00
parent 313e4b9793
commit 917f6dadda
5 changed files with 45 additions and 8 deletions

View File

@@ -38,13 +38,14 @@ QetShapeItem::QetShapeItem(QPointF p1, QPointF p2, ShapeType type, QGraphicsItem
m_P2 (p2), m_P2 (p2),
m_hovered(false), m_hovered(false),
m_mouse_grab_handler(false), m_mouse_grab_handler(false),
shape_size(1),
m_handler(10) m_handler(10)
{ {
if (type == Polygon) m_polygon << m_P1 << m_P2; if (type == Polygon) m_polygon << m_P1 << m_P2;
setFlags(QGraphicsItem::ItemIsMovable | QGraphicsItem::ItemIsSelectable); setFlags(QGraphicsItem::ItemIsMovable | QGraphicsItem::ItemIsSelectable);
setAcceptHoverEvents(true); setAcceptHoverEvents(true);
m_pen.setStyle(Qt::DashLine); m_pen.setStyle(Qt::DashLine);
m_pen.setWidthF(1);
} }
QetShapeItem::~QetShapeItem() {} QetShapeItem::~QetShapeItem() {}
@@ -458,6 +459,7 @@ bool QetShapeItem::fromXml(const QDomElement &e)
is_movable_ = (e.attribute("is_movable").toInt()); is_movable_ = (e.attribute("is_movable").toInt());
m_pen.setStyle(Qt::PenStyle(e.attribute("style","0").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"); QString type = e.attribute("type");
//Compatibility for version older than N°4075, shape type was stored with an int //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")); QMetaEnum me = metaObject()->enumerator(metaObject()->indexOfEnumerator("ShapeType"));
result.setAttribute("type", me.valueToKey(m_shapeType)); result.setAttribute("type", me.valueToKey(m_shapeType));
result.setAttribute("style", QString::number(m_pen.style())); result.setAttribute("style", QString::number(m_pen.style()));
result.setAttribute("shape_size", QString::number(m_pen.widthF()));
result.setAttribute("is_movable", bool(is_movable_)); result.setAttribute("is_movable", bool(is_movable_));
if (m_shapeType != Polygon) if (m_shapeType != Polygon)
{ {

View File

@@ -96,13 +96,14 @@ class QetShapeItem : public QetGraphicsItem
///ATTRIBUTES ///ATTRIBUTES
private: private:
ShapeType m_shapeType; ShapeType m_shapeType;
QPen m_pen; QPen m_pen;
QPointF m_P1, m_P2, m_old_P1, m_old_P2; QPointF m_P1, m_P2, m_old_P1, m_old_P2;
QPolygonF m_polygon, m_old_polygon; QPolygonF m_polygon, m_old_polygon;
bool m_hovered, bool m_hovered,
m_mouse_grab_handler; m_mouse_grab_handler;
int m_vector_index; int m_vector_index;
int shape_size;
QetGraphicsHandlerUtility m_handler; QetGraphicsHandlerUtility m_handler;
}; };
#endif // QETSHAPEITEM_H #endif // QETSHAPEITEM_H

View File

@@ -57,9 +57,12 @@ void ShapeGraphicsItemPropertiesWidget::setItem(QetShapeItem *shape)
if (m_shape) if (m_shape)
disconnect(m_shape, &QetShapeItem::penChanged, this, &ShapeGraphicsItemPropertiesWidget::updateUi); disconnect(m_shape, &QetShapeItem::penChanged, this, &ShapeGraphicsItemPropertiesWidget::updateUi);
disconnect(m_shape, &QetShapeItem::widthChanged, this, &ShapeGraphicsItemPropertiesWidget::updateUi);
m_shape = shape; m_shape = shape;
connect(m_shape, &QetShapeItem::penChanged, this, &ShapeGraphicsItemPropertiesWidget::updateUi); connect(m_shape, &QetShapeItem::penChanged, this, &ShapeGraphicsItemPropertiesWidget::updateUi);
connect(m_shape, &QetShapeItem::widthChanged, this, &ShapeGraphicsItemPropertiesWidget::updateUi);
updateUi(); updateUi();
} }
@@ -101,6 +104,7 @@ QUndoCommand* ShapeGraphicsItemPropertiesWidget::associatedUndo() const
QPen old_pen = m_shape->pen(); QPen old_pen = m_shape->pen();
QPen new_pen = old_pen; QPen new_pen = old_pen;
new_pen.setStyle(Qt::PenStyle(ui->m_style_cb->currentIndex() + 1)); 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; if (new_pen == old_pen) return nullptr;
QPropertyUndoCommand *undo = new QPropertyUndoCommand(m_shape, "pen", old_pen, new_pen); QPropertyUndoCommand *undo = new QPropertyUndoCommand(m_shape, "pen", old_pen, new_pen);
@@ -114,6 +118,7 @@ QUndoCommand* ShapeGraphicsItemPropertiesWidget::associatedUndo() const
void ShapeGraphicsItemPropertiesWidget::updateUi() void ShapeGraphicsItemPropertiesWidget::updateUi()
{ {
ui->m_style_cb->setCurrentIndex(static_cast<int>(m_shape->pen().style()) - 1); 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()); 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; if (live_edit == m_live_edit) return true;
m_live_edit = live_edit; m_live_edit = live_edit;
if (m_live_edit) if (m_live_edit){
connect (ui->m_style_cb, SIGNAL(activated(int)), this, SLOT(apply())); 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_style_cb, SIGNAL(activated(int)), this, SLOT(apply()));
disconnect (ui->m_size_cb, SIGNAL(valueChanged(int)), this, SLOT(apply()));
return true; return true;
} }

View File

@@ -52,9 +52,10 @@ class ShapeGraphicsItemPropertiesWidget : public PropertiesEditorWidget
private slots: private slots:
void on_m_lock_pos_cb_clicked(); void on_m_lock_pos_cb_clicked();
private: private:
Ui::ShapeGraphicsItemPropertiesWidget *ui; Ui::ShapeGraphicsItemPropertiesWidget *ui;
QetShapeItem *m_shape; QetShapeItem *m_shape;
int shape_size;
}; };
#endif // SHAPEGRAPHICSITEMPROPERTIESWIDGET_H #endif // SHAPEGRAPHICSITEMPROPERTIESWIDGET_H

View File

@@ -6,7 +6,7 @@
<rect> <rect>
<x>0</x> <x>0</x>
<y>0</y> <y>0</y>
<width>195</width> <width>242</width>
<height>183</height> <height>183</height>
</rect> </rect>
</property> </property>
@@ -54,6 +54,29 @@
</item> </item>
</layout> </layout>
</item> </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> <item>
<widget class="QCheckBox" name="m_lock_pos_cb"> <widget class="QCheckBox" name="m_lock_pos_cb">
<property name="text"> <property name="text">
@@ -75,6 +98,9 @@
</spacer> </spacer>
</item> </item>
</layout> </layout>
<zorder>label_2</zorder>
<zorder>m_lock_pos_cb</zorder>
<zorder>m_size_cb</zorder>
</widget> </widget>
<resources/> <resources/>
<connections/> <connections/>