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:
blacksun
2014-11-10 22:57:32 +00:00
parent e8d6d4de5d
commit 848be587e3
7 changed files with 29 additions and 50 deletions

View File

@@ -80,7 +80,6 @@ void ElementScene::mouseMoveEvent(QGraphicsSceneMouseEvent *e) {
if (m_event_interface -> mouseMoveEvent(e)) {
if (m_event_interface->isFinish()) {
emit(partsAdded());
emit(needNormalMode());
delete m_event_interface; m_event_interface = nullptr;
}
return;
@@ -109,7 +108,6 @@ void ElementScene::mousePressEvent(QGraphicsSceneMouseEvent *e) {
if (m_event_interface -> mousePressEvent(e)) {
if (m_event_interface->isFinish()) {
emit(partsAdded());
emit(needNormalMode());
delete m_event_interface; m_event_interface = nullptr;
}
return;
@@ -128,7 +126,6 @@ void ElementScene::mouseReleaseEvent(QGraphicsSceneMouseEvent *e) {
if (m_event_interface -> mouseReleaseEvent(e)) {
if (m_event_interface->isFinish()) {
emit(partsAdded());
emit(needNormalMode());
delete m_event_interface; m_event_interface = nullptr;
}
return;
@@ -155,7 +152,6 @@ void ElementScene::mouseDoubleClickEvent(QGraphicsSceneMouseEvent *event) {
if (m_event_interface -> mouseDoubleClickEvent(event)) {
if (m_event_interface->isFinish()) {
emit(partsAdded());
emit(needNormalMode());
delete m_event_interface; m_event_interface = nullptr;
}
return;
@@ -175,7 +171,6 @@ void ElementScene::keyPressEvent(QKeyEvent *event) {
if (m_event_interface -> keyPressEvent(event)) {
if (m_event_interface->isFinish()) {
emit(partsAdded());
emit(needNormalMode());
delete m_event_interface; m_event_interface = nullptr;
}
return;
@@ -211,7 +206,12 @@ void ElementScene::drawForeground(QPainter *p, const QRectF &rect) {
* @param 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;
}

View File

@@ -174,11 +174,6 @@ class ElementScene : public QGraphicsScene {
void stackAction(ElementEditionCommand *);
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
void partsAdded();
/// Signal emitted after one or several parts were removed

View File

@@ -60,7 +60,7 @@ bool ESEventAddEllipse::mousePressEvent(QGraphicsSceneMouseEvent *event) {
//Add ellipse to scene
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
m_ellipse = nullptr;

View File

@@ -28,8 +28,14 @@ ESEventInterface::ESEventInterface(ElementScene *scene) :
m_running (false),
m_abort (false)
{
init();
}
void ESEventInterface::init() {
foreach (QGraphicsView *qgv, m_scene->views())
qgv->setContextMenuPolicy(Qt::NoContextMenu);
m_editor->slot_setNoDragToView();
}
ESEventInterface::~ESEventInterface() {
@@ -38,6 +44,8 @@ ESEventInterface::~ESEventInterface() {
foreach (QGraphicsView *qgv, m_scene->views())
qgv->setContextMenuPolicy(Qt::DefaultContextMenu);
m_editor->slot_setRubberBandToView();
}
bool ESEventInterface::mouseDoubleClickEvent(QGraphicsSceneMouseEvent *event) {

View File

@@ -32,6 +32,8 @@ class ESEventInterface
ESEventInterface(ElementScene *scene);
virtual ~ESEventInterface();
void init();
virtual bool mouseDoubleClickEvent (QGraphicsSceneMouseEvent *event);
virtual bool mousePressEvent (QGraphicsSceneMouseEvent *event);
virtual bool mouseMoveEvent (QGraphicsSceneMouseEvent *event);

View File

@@ -162,7 +162,6 @@ void QETElementEditor::setupActions() {
edit_lower = new QAction(QET::Icons::Lower, tr("\311loigner"), 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);
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_rectangle = new QAction(QET::Icons::PartRectangle, tr("Ajouter un rectangle"), 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_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"));
redo = ce_scene -> undoStack().createRedoAction(this, tr("Refaire"));
undo -> setIcon(QET::Icons::EditUndo);
@@ -251,7 +240,6 @@ void QETElementEditor::setupActions() {
connect(edit_raise, SIGNAL(triggered()), ce_scene, SLOT(slot_raise()));
connect(edit_lower, SIGNAL(triggered()), ce_scene, SLOT(slot_lower()));
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_rectangle, SIGNAL(triggered()), this, SLOT(addRect()));
@@ -261,20 +249,7 @@ void QETElementEditor::setupActions() {
connect(add_arc, SIGNAL(triggered()), this, SLOT(addArc()));
connect(add_terminal, SIGNAL(triggered()), this, SLOT(addTerminal()));
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_rectangle -> setCheckable(true);
add_ellipse -> setCheckable(true);
@@ -285,7 +260,6 @@ void QETElementEditor::setupActions() {
add_textfield -> setCheckable(true);
parts = new QActionGroup(this);
parts -> addAction(move);
parts -> addAction(add_line);
parts -> addAction(add_rectangle);
parts -> addAction(add_ellipse);
@@ -295,11 +269,12 @@ void QETElementEditor::setupActions() {
parts -> addAction(add_textfield);
parts -> addAction(add_terminal);
parts -> setExclusive(true);
connect (ce_scene, SIGNAL(partsAdded()), this, SLOT(UncheckAddPrimitive()));
parts_toolbar = new QToolBar(tr("Parties", "toolbar title"), this);
parts_toolbar -> setObjectName("parts");
foreach (QAction *action, parts -> actions()) parts_toolbar -> addAction(action);
move -> setChecked(true);
parts_toolbar -> setAllowedAreas(Qt::AllToolBarAreas);
/*
@@ -597,15 +572,6 @@ void QETElementEditor::slot_setNoDragToView() {
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.
Si plusieurs primitives sont selectionnees, seule leur quantite est
@@ -993,6 +959,14 @@ void QETElementEditor::addTerminal() {
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.
*/

View File

@@ -81,7 +81,7 @@ class QETElementEditor : public QETMainWindow {
QToolBar *parts_toolbar, *main_toolbar, *view_toolbar, *depth_toolbar, *element_toolbar;
/// toolbars actions
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;
/// minimum window title
QString min_title;
@@ -136,6 +136,7 @@ class QETElementEditor : public QETMainWindow {
void addText();
void addTextField();
void addTerminal();
void UncheckAddPrimitive();
void slot_new();
void slot_open();
@@ -148,7 +149,6 @@ class QETElementEditor : public QETMainWindow {
bool slot_saveAsFile();
void slot_setRubberBandToView();
void slot_setNoDragToView();
void slot_setNormalMode();
void slot_updateInformations();
void slot_updateMenus();
void slot_updateTitle();