mirror of
https://github.com/qelectrotech/qelectrotech-source-mirror.git
synced 2025-12-17 20:50:34 +01:00
Element editor : clean some code
git-svn-id: svn+ssh://svn.tuxfamily.org/svnroot/qet/qet/trunk@3476 bfdf4180-ca20-0410-9c96-a3a8aa849046
This commit is contained in:
@@ -80,7 +80,6 @@ void ElementScene::mouseMoveEvent(QGraphicsSceneMouseEvent *e) {
|
|||||||
if (m_event_interface -> mouseMoveEvent(e)) {
|
if (m_event_interface -> mouseMoveEvent(e)) {
|
||||||
if (m_event_interface->isFinish()) {
|
if (m_event_interface->isFinish()) {
|
||||||
emit(partsAdded());
|
emit(partsAdded());
|
||||||
emit(needNormalMode());
|
|
||||||
delete m_event_interface; m_event_interface = nullptr;
|
delete m_event_interface; m_event_interface = nullptr;
|
||||||
}
|
}
|
||||||
return;
|
return;
|
||||||
@@ -109,7 +108,6 @@ void ElementScene::mousePressEvent(QGraphicsSceneMouseEvent *e) {
|
|||||||
if (m_event_interface -> mousePressEvent(e)) {
|
if (m_event_interface -> mousePressEvent(e)) {
|
||||||
if (m_event_interface->isFinish()) {
|
if (m_event_interface->isFinish()) {
|
||||||
emit(partsAdded());
|
emit(partsAdded());
|
||||||
emit(needNormalMode());
|
|
||||||
delete m_event_interface; m_event_interface = nullptr;
|
delete m_event_interface; m_event_interface = nullptr;
|
||||||
}
|
}
|
||||||
return;
|
return;
|
||||||
@@ -128,7 +126,6 @@ void ElementScene::mouseReleaseEvent(QGraphicsSceneMouseEvent *e) {
|
|||||||
if (m_event_interface -> mouseReleaseEvent(e)) {
|
if (m_event_interface -> mouseReleaseEvent(e)) {
|
||||||
if (m_event_interface->isFinish()) {
|
if (m_event_interface->isFinish()) {
|
||||||
emit(partsAdded());
|
emit(partsAdded());
|
||||||
emit(needNormalMode());
|
|
||||||
delete m_event_interface; m_event_interface = nullptr;
|
delete m_event_interface; m_event_interface = nullptr;
|
||||||
}
|
}
|
||||||
return;
|
return;
|
||||||
@@ -155,7 +152,6 @@ void ElementScene::mouseDoubleClickEvent(QGraphicsSceneMouseEvent *event) {
|
|||||||
if (m_event_interface -> mouseDoubleClickEvent(event)) {
|
if (m_event_interface -> mouseDoubleClickEvent(event)) {
|
||||||
if (m_event_interface->isFinish()) {
|
if (m_event_interface->isFinish()) {
|
||||||
emit(partsAdded());
|
emit(partsAdded());
|
||||||
emit(needNormalMode());
|
|
||||||
delete m_event_interface; m_event_interface = nullptr;
|
delete m_event_interface; m_event_interface = nullptr;
|
||||||
}
|
}
|
||||||
return;
|
return;
|
||||||
@@ -175,7 +171,6 @@ void ElementScene::keyPressEvent(QKeyEvent *event) {
|
|||||||
if (m_event_interface -> keyPressEvent(event)) {
|
if (m_event_interface -> keyPressEvent(event)) {
|
||||||
if (m_event_interface->isFinish()) {
|
if (m_event_interface->isFinish()) {
|
||||||
emit(partsAdded());
|
emit(partsAdded());
|
||||||
emit(needNormalMode());
|
|
||||||
delete m_event_interface; m_event_interface = nullptr;
|
delete m_event_interface; m_event_interface = nullptr;
|
||||||
}
|
}
|
||||||
return;
|
return;
|
||||||
@@ -211,7 +206,12 @@ void ElementScene::drawForeground(QPainter *p, const QRectF &rect) {
|
|||||||
* @param interface
|
* @param interface
|
||||||
*/
|
*/
|
||||||
void ElementScene::setEventInterface(ESEventInterface *interface) {
|
void ElementScene::setEventInterface(ESEventInterface *interface) {
|
||||||
if (m_event_interface) delete m_event_interface;
|
if (m_event_interface) {
|
||||||
|
delete m_event_interface;
|
||||||
|
//We must to re-init because previous interface
|
||||||
|
//Reset his own init when deleted
|
||||||
|
interface->init();
|
||||||
|
}
|
||||||
m_event_interface = interface;
|
m_event_interface = interface;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -174,11 +174,6 @@ class ElementScene : public QGraphicsScene {
|
|||||||
void stackAction(ElementEditionCommand *);
|
void stackAction(ElementEditionCommand *);
|
||||||
|
|
||||||
signals:
|
signals:
|
||||||
/**
|
|
||||||
Signal emitted when the scene requires the element editor to switch back to
|
|
||||||
normal mode.
|
|
||||||
*/
|
|
||||||
void needNormalMode();
|
|
||||||
/// Signal emitted after one or several parts were added
|
/// Signal emitted after one or several parts were added
|
||||||
void partsAdded();
|
void partsAdded();
|
||||||
/// Signal emitted after one or several parts were removed
|
/// Signal emitted after one or several parts were removed
|
||||||
|
|||||||
@@ -60,7 +60,7 @@ bool ESEventAddEllipse::mousePressEvent(QGraphicsSceneMouseEvent *event) {
|
|||||||
|
|
||||||
//Add ellipse to scene
|
//Add ellipse to scene
|
||||||
m_ellipse -> setRect(m_ellipse -> rect().normalized());
|
m_ellipse -> setRect(m_ellipse -> rect().normalized());
|
||||||
m_scene -> undoStack().push(new AddPartCommand(QObject::tr("Rectangle"), m_scene, m_ellipse));
|
m_scene -> undoStack().push(new AddPartCommand(QObject::tr("Ellipse"), m_scene, m_ellipse));
|
||||||
|
|
||||||
//Set m_ellipse to nullptr for create new ellipse at next mouse press
|
//Set m_ellipse to nullptr for create new ellipse at next mouse press
|
||||||
m_ellipse = nullptr;
|
m_ellipse = nullptr;
|
||||||
|
|||||||
@@ -28,8 +28,14 @@ ESEventInterface::ESEventInterface(ElementScene *scene) :
|
|||||||
m_running (false),
|
m_running (false),
|
||||||
m_abort (false)
|
m_abort (false)
|
||||||
{
|
{
|
||||||
|
init();
|
||||||
|
}
|
||||||
|
|
||||||
|
void ESEventInterface::init() {
|
||||||
foreach (QGraphicsView *qgv, m_scene->views())
|
foreach (QGraphicsView *qgv, m_scene->views())
|
||||||
qgv->setContextMenuPolicy(Qt::NoContextMenu);
|
qgv->setContextMenuPolicy(Qt::NoContextMenu);
|
||||||
|
|
||||||
|
m_editor->slot_setNoDragToView();
|
||||||
}
|
}
|
||||||
|
|
||||||
ESEventInterface::~ESEventInterface() {
|
ESEventInterface::~ESEventInterface() {
|
||||||
@@ -38,6 +44,8 @@ ESEventInterface::~ESEventInterface() {
|
|||||||
|
|
||||||
foreach (QGraphicsView *qgv, m_scene->views())
|
foreach (QGraphicsView *qgv, m_scene->views())
|
||||||
qgv->setContextMenuPolicy(Qt::DefaultContextMenu);
|
qgv->setContextMenuPolicy(Qt::DefaultContextMenu);
|
||||||
|
|
||||||
|
m_editor->slot_setRubberBandToView();
|
||||||
}
|
}
|
||||||
|
|
||||||
bool ESEventInterface::mouseDoubleClickEvent(QGraphicsSceneMouseEvent *event) {
|
bool ESEventInterface::mouseDoubleClickEvent(QGraphicsSceneMouseEvent *event) {
|
||||||
|
|||||||
@@ -32,6 +32,8 @@ class ESEventInterface
|
|||||||
ESEventInterface(ElementScene *scene);
|
ESEventInterface(ElementScene *scene);
|
||||||
virtual ~ESEventInterface();
|
virtual ~ESEventInterface();
|
||||||
|
|
||||||
|
void init();
|
||||||
|
|
||||||
virtual bool mouseDoubleClickEvent (QGraphicsSceneMouseEvent *event);
|
virtual bool mouseDoubleClickEvent (QGraphicsSceneMouseEvent *event);
|
||||||
virtual bool mousePressEvent (QGraphicsSceneMouseEvent *event);
|
virtual bool mousePressEvent (QGraphicsSceneMouseEvent *event);
|
||||||
virtual bool mouseMoveEvent (QGraphicsSceneMouseEvent *event);
|
virtual bool mouseMoveEvent (QGraphicsSceneMouseEvent *event);
|
||||||
|
|||||||
@@ -162,7 +162,6 @@ void QETElementEditor::setupActions() {
|
|||||||
edit_lower = new QAction(QET::Icons::Lower, tr("\311loigner"), this);
|
edit_lower = new QAction(QET::Icons::Lower, tr("\311loigner"), this);
|
||||||
edit_backward = new QAction(QET::Icons::SendBackward, tr("Envoyer au fond"), this);
|
edit_backward = new QAction(QET::Icons::SendBackward, tr("Envoyer au fond"), this);
|
||||||
edit_forward = new QAction(QET::Icons::BringForward, tr("Amener au premier plan"), this);
|
edit_forward = new QAction(QET::Icons::BringForward, tr("Amener au premier plan"), this);
|
||||||
move = new QAction(QET::Icons::PartSelect, tr("D\351placer un objet"), this);
|
|
||||||
add_line = new QAction(QET::Icons::PartLine, tr("Ajouter une ligne"), this);
|
add_line = new QAction(QET::Icons::PartLine, tr("Ajouter une ligne"), this);
|
||||||
add_rectangle = new QAction(QET::Icons::PartRectangle, tr("Ajouter un rectangle"), this);
|
add_rectangle = new QAction(QET::Icons::PartRectangle, tr("Ajouter un rectangle"), this);
|
||||||
add_ellipse = new QAction(QET::Icons::PartEllipse, tr("Ajouter une ellipse"), this);
|
add_ellipse = new QAction(QET::Icons::PartEllipse, tr("Ajouter une ellipse"), this);
|
||||||
@@ -172,16 +171,6 @@ void QETElementEditor::setupActions() {
|
|||||||
add_terminal = new QAction(QET::Icons::Terminal, tr("Ajouter une borne"), this);
|
add_terminal = new QAction(QET::Icons::Terminal, tr("Ajouter une borne"), this);
|
||||||
add_textfield = new QAction(QET::Icons::PartTextField, tr("Ajouter un champ de texte"), this);
|
add_textfield = new QAction(QET::Icons::PartTextField, tr("Ajouter un champ de texte"), this);
|
||||||
|
|
||||||
QString add_status_tip = tr("Maintenez la touche Shift enfonc\351e pour effectuer plusieurs ajouts d'affil\351e");
|
|
||||||
add_line -> setStatusTip(add_status_tip);
|
|
||||||
add_rectangle -> setStatusTip(add_status_tip);
|
|
||||||
add_ellipse -> setStatusTip(add_status_tip);
|
|
||||||
add_text -> setStatusTip(add_status_tip);
|
|
||||||
add_arc -> setStatusTip(add_status_tip);
|
|
||||||
add_terminal -> setStatusTip(add_status_tip);
|
|
||||||
add_textfield -> setStatusTip(add_status_tip);
|
|
||||||
add_polygon -> setStatusTip(tr("Utilisez le bouton droit de la souris pour poser le dernier point du polygone"));
|
|
||||||
|
|
||||||
undo = ce_scene -> undoStack().createUndoAction(this, tr("Annuler"));
|
undo = ce_scene -> undoStack().createUndoAction(this, tr("Annuler"));
|
||||||
redo = ce_scene -> undoStack().createRedoAction(this, tr("Refaire"));
|
redo = ce_scene -> undoStack().createRedoAction(this, tr("Refaire"));
|
||||||
undo -> setIcon(QET::Icons::EditUndo);
|
undo -> setIcon(QET::Icons::EditUndo);
|
||||||
@@ -251,7 +240,6 @@ void QETElementEditor::setupActions() {
|
|||||||
connect(edit_raise, SIGNAL(triggered()), ce_scene, SLOT(slot_raise()));
|
connect(edit_raise, SIGNAL(triggered()), ce_scene, SLOT(slot_raise()));
|
||||||
connect(edit_lower, SIGNAL(triggered()), ce_scene, SLOT(slot_lower()));
|
connect(edit_lower, SIGNAL(triggered()), ce_scene, SLOT(slot_lower()));
|
||||||
connect(edit_backward, SIGNAL(triggered()), ce_scene, SLOT(slot_sendBackward()));
|
connect(edit_backward, SIGNAL(triggered()), ce_scene, SLOT(slot_sendBackward()));
|
||||||
connect(move, SIGNAL(triggered()), ce_scene, SLOT(slot_move()));
|
|
||||||
|
|
||||||
connect(add_line, SIGNAL(triggered()), this, SLOT(addLine()));
|
connect(add_line, SIGNAL(triggered()), this, SLOT(addLine()));
|
||||||
connect(add_rectangle, SIGNAL(triggered()), this, SLOT(addRect()));
|
connect(add_rectangle, SIGNAL(triggered()), this, SLOT(addRect()));
|
||||||
@@ -261,20 +249,7 @@ void QETElementEditor::setupActions() {
|
|||||||
connect(add_arc, SIGNAL(triggered()), this, SLOT(addArc()));
|
connect(add_arc, SIGNAL(triggered()), this, SLOT(addArc()));
|
||||||
connect(add_terminal, SIGNAL(triggered()), this, SLOT(addTerminal()));
|
connect(add_terminal, SIGNAL(triggered()), this, SLOT(addTerminal()));
|
||||||
connect(add_textfield, SIGNAL(triggered()), this, SLOT(addTextField()));
|
connect(add_textfield, SIGNAL(triggered()), this, SLOT(addTextField()));
|
||||||
|
|
||||||
connect(move, SIGNAL(triggered()), this, SLOT(slot_setRubberBandToView()));
|
|
||||||
connect(add_line, SIGNAL(triggered()), this, SLOT(slot_setNoDragToView()));
|
|
||||||
connect(add_rectangle, SIGNAL(triggered()), this, SLOT(slot_setNoDragToView()));
|
|
||||||
connect(add_ellipse, SIGNAL(triggered()), this, SLOT(slot_setNoDragToView()));
|
|
||||||
connect(add_polygon, SIGNAL(triggered()), this, SLOT(slot_setNoDragToView()));
|
|
||||||
connect(add_text, SIGNAL(triggered()), this, SLOT(slot_setNoDragToView()));
|
|
||||||
connect(add_arc, SIGNAL(triggered()), this, SLOT(slot_setNoDragToView()));
|
|
||||||
connect(add_terminal, SIGNAL(triggered()), this, SLOT(slot_setNoDragToView()));
|
|
||||||
connect(add_textfield, SIGNAL(triggered()), this, SLOT(slot_setNoDragToView()));
|
|
||||||
|
|
||||||
connect(ce_scene, SIGNAL(needNormalMode()), this, SLOT(slot_setNormalMode()));
|
|
||||||
|
|
||||||
move -> setCheckable(true);
|
|
||||||
add_line -> setCheckable(true);
|
add_line -> setCheckable(true);
|
||||||
add_rectangle -> setCheckable(true);
|
add_rectangle -> setCheckable(true);
|
||||||
add_ellipse -> setCheckable(true);
|
add_ellipse -> setCheckable(true);
|
||||||
@@ -285,7 +260,6 @@ void QETElementEditor::setupActions() {
|
|||||||
add_textfield -> setCheckable(true);
|
add_textfield -> setCheckable(true);
|
||||||
|
|
||||||
parts = new QActionGroup(this);
|
parts = new QActionGroup(this);
|
||||||
parts -> addAction(move);
|
|
||||||
parts -> addAction(add_line);
|
parts -> addAction(add_line);
|
||||||
parts -> addAction(add_rectangle);
|
parts -> addAction(add_rectangle);
|
||||||
parts -> addAction(add_ellipse);
|
parts -> addAction(add_ellipse);
|
||||||
@@ -295,11 +269,12 @@ void QETElementEditor::setupActions() {
|
|||||||
parts -> addAction(add_textfield);
|
parts -> addAction(add_textfield);
|
||||||
parts -> addAction(add_terminal);
|
parts -> addAction(add_terminal);
|
||||||
parts -> setExclusive(true);
|
parts -> setExclusive(true);
|
||||||
|
|
||||||
|
connect (ce_scene, SIGNAL(partsAdded()), this, SLOT(UncheckAddPrimitive()));
|
||||||
|
|
||||||
parts_toolbar = new QToolBar(tr("Parties", "toolbar title"), this);
|
parts_toolbar = new QToolBar(tr("Parties", "toolbar title"), this);
|
||||||
parts_toolbar -> setObjectName("parts");
|
parts_toolbar -> setObjectName("parts");
|
||||||
foreach (QAction *action, parts -> actions()) parts_toolbar -> addAction(action);
|
foreach (QAction *action, parts -> actions()) parts_toolbar -> addAction(action);
|
||||||
move -> setChecked(true);
|
|
||||||
parts_toolbar -> setAllowedAreas(Qt::AllToolBarAreas);
|
parts_toolbar -> setAllowedAreas(Qt::AllToolBarAreas);
|
||||||
|
|
||||||
/*
|
/*
|
||||||
@@ -597,15 +572,6 @@ void QETElementEditor::slot_setNoDragToView() {
|
|||||||
ce_view -> setDragMode(QGraphicsView::NoDrag);
|
ce_view -> setDragMode(QGraphicsView::NoDrag);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
|
||||||
Passe l'editeur en mode normal
|
|
||||||
*/
|
|
||||||
void QETElementEditor::slot_setNormalMode() {
|
|
||||||
if (!move -> isChecked()) move -> setChecked(true);
|
|
||||||
ce_view -> setDragMode(QGraphicsView::RubberBandDrag);
|
|
||||||
ce_scene -> slot_move();
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
Met a jour la zone d'information et d'edition des primitives.
|
Met a jour la zone d'information et d'edition des primitives.
|
||||||
Si plusieurs primitives sont selectionnees, seule leur quantite est
|
Si plusieurs primitives sont selectionnees, seule leur quantite est
|
||||||
@@ -993,6 +959,14 @@ void QETElementEditor::addTerminal() {
|
|||||||
ce_scene -> setEventInterface(new ESEventAddTerminal(ce_scene));
|
ce_scene -> setEventInterface(new ESEventAddTerminal(ce_scene));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @brief QETElementEditor::UncheckAddPrimitive
|
||||||
|
* Uncheck all action related to primitive
|
||||||
|
*/
|
||||||
|
void QETElementEditor::UncheckAddPrimitive() {
|
||||||
|
foreach(QAction *action, parts->actions()) action -> setChecked(false);
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
Lance l'assistant de creation d'un nouvel element.
|
Lance l'assistant de creation d'un nouvel element.
|
||||||
*/
|
*/
|
||||||
|
|||||||
@@ -81,7 +81,7 @@ class QETElementEditor : public QETMainWindow {
|
|||||||
QToolBar *parts_toolbar, *main_toolbar, *view_toolbar, *depth_toolbar, *element_toolbar;
|
QToolBar *parts_toolbar, *main_toolbar, *view_toolbar, *depth_toolbar, *element_toolbar;
|
||||||
/// toolbars actions
|
/// toolbars actions
|
||||||
QActionGroup *parts;
|
QActionGroup *parts;
|
||||||
QAction *move, *add_line, *add_rectangle, *add_ellipse, *add_polygon, *add_text;
|
QAction *add_line, *add_rectangle, *add_ellipse, *add_polygon, *add_text;
|
||||||
QAction *add_arc, *add_terminal, *add_textfield;
|
QAction *add_arc, *add_terminal, *add_textfield;
|
||||||
/// minimum window title
|
/// minimum window title
|
||||||
QString min_title;
|
QString min_title;
|
||||||
@@ -136,6 +136,7 @@ class QETElementEditor : public QETMainWindow {
|
|||||||
void addText();
|
void addText();
|
||||||
void addTextField();
|
void addTextField();
|
||||||
void addTerminal();
|
void addTerminal();
|
||||||
|
void UncheckAddPrimitive();
|
||||||
|
|
||||||
void slot_new();
|
void slot_new();
|
||||||
void slot_open();
|
void slot_open();
|
||||||
@@ -148,7 +149,6 @@ class QETElementEditor : public QETMainWindow {
|
|||||||
bool slot_saveAsFile();
|
bool slot_saveAsFile();
|
||||||
void slot_setRubberBandToView();
|
void slot_setRubberBandToView();
|
||||||
void slot_setNoDragToView();
|
void slot_setNoDragToView();
|
||||||
void slot_setNormalMode();
|
|
||||||
void slot_updateInformations();
|
void slot_updateInformations();
|
||||||
void slot_updateMenus();
|
void slot_updateMenus();
|
||||||
void slot_updateTitle();
|
void slot_updateTitle();
|
||||||
|
|||||||
Reference in New Issue
Block a user