revamp and improve some code

git-svn-id: svn+ssh://svn.tuxfamily.org/svnroot/qet/qet/trunk@4214 bfdf4180-ca20-0410-9c96-a3a8aa849046
This commit is contained in:
blacksun
2015-09-19 13:27:06 +00:00
parent ca426d5fe2
commit d0d79ecf2d
12 changed files with 275 additions and 378 deletions

View File

@@ -53,14 +53,17 @@ DVEventAddImage::~DVEventAddImage() {
* @param event : event of mouse pressed
* @return : true if this event is managed, otherwise false
*/
bool DVEventAddImage::mousePressEvent(QMouseEvent *event) {
if (m_image && event -> button() == Qt::LeftButton) {
bool DVEventAddImage::mousePressEvent(QMouseEvent *event)
{
if (m_image && event -> button() == Qt::LeftButton)
{
QPointF pos = m_dv -> mapToScene(event -> pos());
pos.rx() -= m_image->boundingRect().width()/2;
pos.ry() -= m_image->boundingRect().height()/2;
m_diagram -> undoStack().push (new AddItemCommand<DiagramImageItem *>(m_image, m_diagram, pos));
m_dv -> setContextMenuPolicy(Qt::DefaultContextMenu);
m_running = false;
emit finish();
return true;
}

View File

@@ -28,6 +28,8 @@ class DiagramImageItem;
*/
class DVEventAddImage : public DVEventInterface
{
Q_OBJECT
public:
DVEventAddImage(DiagramView *dv);
virtual ~DVEventAddImage();

View File

@@ -161,6 +161,7 @@ bool DVEventAddShape::mouseReleaseEvent(QMouseEvent *event)
//Else (no shape), we set to false the running status
//for indicate to the owner of this event that everything is done
m_running = false;
emit finish();
return true;
}

View File

@@ -25,6 +25,8 @@ class QMouseEvent;
class DVEventAddShape : public DVEventInterface
{
Q_OBJECT
public:
DVEventAddShape(DiagramView *dv, QetShapeItem::ShapeType shape_type);
virtual ~DVEventAddShape ();

View File

@@ -28,11 +28,15 @@ DVEventAddText::DVEventAddText(DiagramView *dv) :
DVEventAddText::~DVEventAddText() {}
bool DVEventAddText::mousePressEvent(QMouseEvent *event) {
if (event->button() == Qt::LeftButton) {
m_diagram -> undoStack().push(new AddItemCommand<IndependentTextItem *>(new IndependentTextItem("_"),
m_diagram,
m_dv -> mapToScene(event -> pos())));
bool DVEventAddText::mousePressEvent(QMouseEvent *event)
{
if (event->button() == Qt::LeftButton)
{
IndependentTextItem *text = new IndependentTextItem();
m_diagram -> undoStack().push(new AddItemCommand<IndependentTextItem *>(text, m_diagram, m_dv -> mapToScene(event -> pos())));
text->setTextInteractionFlags(Qt::TextEditorInteraction);
text->setFocus(Qt::MouseFocusReason);
emit finish();
return true;
}
return false;

View File

@@ -22,6 +22,8 @@
class DVEventAddText : public DVEventInterface
{
Q_OBJECT
public:
DVEventAddText(DiagramView *dv);
virtual ~DVEventAddText ();

View File

@@ -20,6 +20,7 @@
#include <QMouseEvent>
DVEventInterface::DVEventInterface(DiagramView *dv) :
QObject(dv),
m_dv(dv),
m_diagram(dv->diagram()),
m_running(false),
@@ -57,14 +58,18 @@ bool DVEventInterface::wheelEvent(QWheelEvent *event) {
/**
* @brief DVEventInterface::keyPressEvent
* By default, press escape key abort the curent action
* By default, press escape key abort the curent action.
* isFinish return true, and emit finish
* @param event
* @return
*/
bool DVEventInterface::keyPressEvent(QKeyEvent *event) {
if (event->key() == Qt::Key_Escape) {
bool DVEventInterface::keyPressEvent(QKeyEvent *event)
{
if (event->key() == Qt::Key_Escape)
{
m_running = false;
m_abort = true;
emit finish();
return true;
}
return false;

View File

@@ -18,6 +18,8 @@
#ifndef DVEVENTINTERFACE_H
#define DVEVENTINTERFACE_H
#include <QObject>
class QMouseEvent;
class QWheelEvent;
class QKeyEvent;
@@ -33,8 +35,10 @@ class Diagram;
* isRunning() return true if action is started but not finish. By default return false.
* isFinish() return true when the action is finish, or not started. By default return true.
*/
class DVEventInterface
class DVEventInterface : public QObject
{
Q_OBJECT
public:
DVEventInterface(DiagramView *dv);
virtual ~DVEventInterface () = 0;
@@ -48,6 +52,13 @@ class DVEventInterface
virtual bool isRunning () const;
virtual bool isFinish () const;
signals:
/**
* @brief finish
* emited when the interface finish is work
*/
void finish();
protected:
DiagramView *m_dv;
Diagram *m_diagram;