1 #include "qcustomgraphicsscene.h"
2 #include <QGraphicsItem>
8 #include "ui_mainwindow.h"
11 #include <QInputDialog>
13 #include <mainwindow.h>
16 QCustomGraphicsScene::QCustomGraphicsScene(QWidget * parent):
QGraphicsScene(parent)
23 qDebug(
"void QCustomGraphicsScene::mousePressEvent(QGraphicsSceneMouseEvent *mouseEvent)");
24 if (mouseEvent->button() == Qt::LeftButton
25 && (itemAt(mouseEvent->scenePos(),QTransform())!=NULL))
29 QGraphicsItem * elt=itemAt(mouseEvent->scenePos(),QTransform());
30 elt->setSelected(!elt->isSelected());
34 qDebug()<<
"youou"<<elt->data(32);
35 bool onACliqueSurUneEntiteOuUnChamp=
false;
36 if(elt->data(32)==
"Table")
38 if (!qgraphicsitem_cast<Entite*> (elt ))
41 elt=(
Entite*)elt->parentItem()->parentItem();
43 onACliqueSurUneEntiteOuUnChamp=
true;
49 if(elt->data(32)==
"Field")
51 ((
Property*)elt)->emmettreSelected();
53 onACliqueSurUneEntiteOuUnChamp=
true;
58 if(elt!=NULL && onACliqueSurUneEntiteOuUnChamp)
61 maman->ui->listWidgetObjects->setCurrentItem((
Entite*) elt);
67 if(!(elt->data(32).toString()==
"Field"))
69 QDrag *drag =
new QDrag(((QWidget*)this->parent()));
70 QMimeData *mimeData =
new QMimeData;
72 qba.append(elt->data(32).toString());
74 qba.append(elt->data(33).toString());
76 qba.append(elt->data(34).toString());
77 mimeData->setData(
"text/"+elt->data(32).toString(),qba);
78 drag->setMimeData(mimeData);
80 Qt::DropAction dropAction = drag->exec();
87 qDebug()<<
"bouton droit";
88 if (mouseEvent->button() == Qt::RightButton)
89 { QGraphicsItem * elementConcerne=NULL;
91 if(itemAt(mouseEvent->scenePos(),QTransform())==NULL)
94 if(items(QRectF(mouseEvent->scenePos().x()-1,mouseEvent->scenePos().y()-1,2,2)).count()==0)
97 QMenu menuContextuelDeRien(QObject::tr(
"Workspace Menu"));
99 QAction* titre=
new QAction(menuContextuelDeRien.title(),
this);
100 titre->setDisabled(
true);
101 menuContextuelDeRien.addAction(titre);
103 titre->setFont(QFont(
"verdana",9,3,
true));
106 QAction* printModel=menuContextuelDeRien.addAction(tr(
"Print"));
113 QAction * actionChoisie=menuContextuelDeRien.exec(mouseEvent->screenPos());
114 #warning impression à développer
115 if(actionChoisie==printModel)
118 maman->statusBar()->showMessage(tr(
"Printing document"),2000);
132 elementConcerne=items(QRectF(mouseEvent->scenePos().x()-1,mouseEvent->scenePos().y()-1,2,2))[0];
135 else elementConcerne=itemAt(mouseEvent->scenePos(),QTransform());
136 if(elementConcerne!=NULL)
138 if(elementConcerne->data(32)==
"Table")
140 while(!qgraphicsitem_cast<Entite*> (elementConcerne ))
142 elementConcerne=elementConcerne->parentItem();
145 ((
Entite*)elementConcerne)->contextMenuEvent(mouseEvent);
149 if(elementConcerne->data(32)==
"Field")
152 ((
Property*)elementConcerne)->emmettreSelected();
153 ((
Property*)elementConcerne)->contextMenuEvent(mouseEvent);
157 if(elementConcerne->data(32)==
"Lien")
160 while(!qgraphicsitem_cast<Lien*> (elementConcerne ))
162 elementConcerne=elementConcerne->parentItem();
165 ((
Lien*)elementConcerne)->contextMenuEvent(mouseEvent);
175 QGraphicsScene::mousePressEvent(mouseEvent);
The Lien class a link is betwwen to objects it contains a line a role text cardinality ...
void on_listWidgetObjects_itemActivated(QListWidgetItem *item)
on_listWidgetObjects_itemActivated
void mousePressEvent(QGraphicsSceneMouseEvent *mouseEvent)
mousePressEvent
The Property class property is a field it can be placed into entity or relation.
The Entite class Entity is an object we have to deal with.
The MainWindow class main code of application.
QString outil
outil User Tool it can be move or link