4 #include <QGraphicsSceneMouseEvent>
5 #include <QGraphicsLineItem>
7 #include <QTextDocument>
9 field::field(dialogRelation* mum ,
bool isFree,
QGraphicsScene* pScene,QString pName,QGraphicsItem* pParent)
12 qDebug()<<
"constructeur de field";
17 oeil=
new QGraphicsPixmapItem(QPixmap(
":/mini-eye.xpm"),
this);
19 oeil->setVisible(affiche);
23 iconSort=
new QGraphicsPixmapItem(QPixmap(),
this);
24 iconSort->setPos(-8,5);
25 numeroOrdreDansLeSelect=-1;
29 connect(document(),SIGNAL(contentsChanged()),
this,SIGNAL(jAiChange()));
30 connect(
this, SIGNAL(jAiChange()),
maman , SLOT(miseAJourResultat()));
35 qDebug()<<
"field::~field()";
41 if(oeil!=NULL)
delete oeil;
42 if(iconSort !=NULL)
delete iconSort;
46 laTable->vecteurChamps.remove(laTable->vecteurChamps.indexOf(
this),1);
50 maman->vectChampsLibres.remove(maman->vectChampsLibres.indexOf(
this),1);
53 void field::contextMenuEvent(QGraphicsSceneMouseEvent *event)
56 qDebug()<<
"void field::contextMenuEvent(QGraphicsSceneMouseEvent *event)";
58 QMenu menu(QObject::tr(
"Field Menu"));
60 QAction* titre=
new QAction(menu.title(),
this);
61 titre->setDisabled(
true);
62 menu.addAction(titre);
63 titre->setFont(QFont(
"verdana",9,3,
true));
65 this->setSelected(!this->isSelected());
67 QAction *removeAction ;
69 removeAction = menu.addAction(tr(
"&Remove"));
71 QAction *afficherAction = menu.addAction(QIcon(
":/mini-eye.xpm"),tr(
"&Display(on/off)"));
73 QAction *addCondAction;
74 QAction *removeCondAction;
77 addCondAction= menu.addAction(QIcon(
":/list-add.png"),tr(
"&Add Condition"));
81 removeCondAction= menu.addAction(tr(
"&removeCondition"));
84 QAction *choisirCritereDeTriAction=menu.addAction(QIcon(
":/stock_sort-criteria.png"),tr(
"Sort(asc,desc,off)"));
86 QAction* actionChoisie=menu.exec(event->screenPos());
87 if(actionChoisie!=NULL)
90 if (actionChoisie==afficherAction)
92 this->affiche=!this->affiche;
93 this->oeil->setVisible(this->affiche);
96 this->numeroOrdreDansLeSelect=maman->maxCleDeLaMap()+1;
100 this->numeroOrdreDansLeSelect=-1;
105 if(actionChoisie==choisirCritereDeTriAction)
108 QAction * asc=menu2.addAction(QIcon(
":/upSort.xpm"),tr(
"&Asc"));
109 QAction * desc=menu2.addAction(QIcon(
":/downSort.xpm"),tr(
"&Desc"));
110 QAction * off=menu2.addAction(tr(
"&Off"));
111 QAction* triChoisi=menu2.exec(event->screenPos());
133 case noSort:icon=
"";
break;
134 case ascSort:icon=
":/upSort.xpm";
break;
135 case descSort:icon=
":/downSort.xpm";
break;
137 this->iconSort->setPixmap(QPixmap(icon));
142 if(actionChoisie==addCondAction)
148 ajouteCondition(
"="+maman->delimiteur+tr(
"something")+maman->delimiteur);
153 if(actionChoisie==removeCondAction)
163 if(actionChoisie==removeAction)
177 void field::dropEvent( QGraphicsSceneDragDropEvent* event)
179 qDebug()<<
"void field::dropEvent(QDropEvent *event)";
181 void field::dragEnterEvent( QGraphicsSceneDragDropEvent* event)
183 qDebug()<<
"void field::dragEnterEvent(QDragEnterEvent *event)";
186 void field::dragMoveEvent(QGraphicsSceneDragDropEvent *event)
188 qDebug()<<
"void field::dragMoveEvent(QGraphicsSceneDragDropEvent *event)";
191 QString field::getTri()
193 qDebug()<<
"QString field::getTri()";
197 case noSort:resultat=
"";
break;
198 case ascSort:resultat=
"ASC";
break;
199 case descSort:resultat=
"DESC";
break;
203 void field::ajouteCondition(QString texteCondition)
205 qDebug()<<
"void field::ajouteCondition(QString texteCondition)";
207 QObject::connect(cond->document(),SIGNAL(contentsChanged()),maman, SLOT(miseAJourResultat()));
208 cond->setPos(100+this->boundingRect().width(),0);
209 cond->setTextInteractionFlags(Qt::TextEditable);
211 trait=
new QGraphicsLineItem(this->pos().x()+this->boundingRect().width(),QFontMetrics(cond->font()).height()/2,cond->pos().x(),cond->pos().y()+QFontMetrics(cond->font()).height()/2,
this);
215 void field::modifieCondition(QString texteDeLaCondition)
217 qDebug()<<
"void field::modifieCondition(QString texteDeLaCondition)";
218 cond->document()->setPlainText(texteDeLaCondition);
222 QString field::getNomComplet()
224 qDebug()<<
"QString field::getNomComplet()";
225 if(laTable==NULL || freeField)
return(document()->toPlainText());
228 return(laTable->getNomEntite()+
"."+document()->toPlainText());
MainWindow * maman
maman the main window