Ajout de la possibilite de modifier les attributs du schema : titre, auteur, date

git-svn-id: svn+ssh://svn.tuxfamily.org/svnroot/qet/qet/trunk@30 bfdf4180-ca20-0410-9c96-a3a8aa849046
This commit is contained in:
xavierqet
2006-11-19 18:40:03 +00:00
parent 552db3c903
commit b3396c10a3
5 changed files with 59 additions and 9 deletions

BIN
ico/info.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.2 KiB

View File

@@ -14,6 +14,7 @@
<file>ico/export.png</file>
<file>ico/fileclose.png</file>
<file>ico/import.png</file>
<file>ico/info.png</file>
<file>ico/masquer.png</file>
<file>ico/move.png</file>
<file>ico/new.png</file>

View File

@@ -225,6 +225,7 @@ void QETApp::actions() {
sel_inverse = new QAction( tr("Inverser la s\351lection"), this);
supprimer = new QAction(QIcon(":/ico/delete.png"), tr("Supprimer"), this);
pivoter = new QAction(QIcon(":/ico/pivoter.png"), tr("Pivoter"), this);
infos_schema = new QAction(QIcon(":/ico/info.png"), tr("Informations sur le sch\351ma"), this);
toggle_aa = new QAction( tr("D\351sactiver l'&antialiasing"), this);
zoom_avant = new QAction(QIcon(":/ico/viewmag+.png"), tr("Zoom avant"), this);
@@ -305,6 +306,7 @@ void QETApp::actions() {
sel_inverse -> setStatusTip(tr("D\351s\351lectionne les \351l\351ments s\351lectionn\351s et s\351lectionne les \351l\351ments non s\351lectionn\351s"));
supprimer -> setStatusTip(tr("Enl\350ve les \351l\351ments s\351lectionn\351s du sch\351ma"));
pivoter -> setStatusTip(tr("Pivote les \351l\351ments s\351lectionn\351s"));
infos_schema -> setStatusTip(tr("\311dite les informations affich\351es par le cartouche"));
toggle_aa -> setStatusTip(tr("Active / d\351sactive l'antialiasing pour le rendu du sch\351ma courant"));
zoom_avant -> setStatusTip(tr("Agrandit le sch\351ma"));
@@ -368,11 +370,12 @@ void QETApp::actions() {
connect(copier, SIGNAL(triggered()), this, SLOT(slot_copier()) );
connect(coller, SIGNAL(triggered()), this, SLOT(slot_coller()) );
connect(toggle_aa, SIGNAL(triggered()), this, SLOT(toggleAntialiasing()) );
connect(f_mosaique, SIGNAL(triggered()), &workspace, SLOT(tile()));
connect(f_cascade, SIGNAL(triggered()), &workspace, SLOT(cascade()));
connect(f_reorganise, SIGNAL(triggered()), &workspace, SLOT(arrangeIcons()));
connect(f_suiv, SIGNAL(triggered()), &workspace, SLOT(activateNextWindow()));
connect(f_prec, SIGNAL(triggered()), &workspace, SLOT(activatePreviousWindow()));
connect(f_mosaique, SIGNAL(triggered()), &workspace, SLOT(tile()) );
connect(f_cascade, SIGNAL(triggered()), &workspace, SLOT(cascade()) );
connect(f_reorganise, SIGNAL(triggered()), &workspace, SLOT(arrangeIcons()) );
connect(f_suiv, SIGNAL(triggered()), &workspace, SLOT(activateNextWindow()) );
connect(f_prec, SIGNAL(triggered()), &workspace, SLOT(activatePreviousWindow()) );
connect(infos_schema, SIGNAL(activated()), this, SLOT(editInfos()) );
}
/**
@@ -423,6 +426,8 @@ void QETApp::menus() {
menu_edition -> addSeparator();
menu_edition -> addAction(supprimer);
menu_edition -> addAction(pivoter);
menu_edition -> addSeparator();
menu_edition -> addAction(infos_schema);
// menu Affichage > Afficher
QMenu *menu_aff_aff = new QMenu(tr("Afficher"));
@@ -747,6 +752,7 @@ void QETApp::slot_updateActions() {
zoom_adapte -> setEnabled(document_ouvert);
zoom_reset -> setEnabled(document_ouvert);
toggle_aa -> setEnabled(document_ouvert);
infos_schema -> setEnabled(document_ouvert);
// actions ayant aussi besoin d'un historique des actions
annuler -> setEnabled(document_ouvert);
@@ -926,3 +932,44 @@ QString QETApp::languagesPath() {
return(QDir::current().path() + "/lang/");
}
void QETApp::editInfos() {
// ne fait rien s'il n'y a pas de schema ouvert
SchemaVue *sv = schemaEnCours();
if (!sv) return;
// construit le dialogue
QDialog popup;
popup.setMinimumWidth(400);
popup.setWindowTitle(tr("Cartouche du sch\351ma"));
QLineEdit *titre = new QLineEdit(sv -> scene -> titre);
QLineEdit *auteur = new QLineEdit(sv -> scene -> auteur);
QDate date_schema = QDate(sv -> scene -> date);
if (date_schema.isNull() || !date_schema.isValid()) date_schema = QDate::currentDate();
QDateEdit *date = new QDateEdit(date_schema);
date -> setCalendarPopup(true);
QWidget bidon;
QGridLayout layout_champs(&bidon);
layout_champs.addWidget(new QLabel(tr("Titre : ")), 0, 0);
layout_champs.addWidget(titre, 0, 1);
layout_champs.addWidget(new QLabel(tr("Auteur : ")), 1, 0);
layout_champs.addWidget(auteur, 1, 1);
layout_champs.addWidget(new QLabel(tr("Date : ")), 2, 0);
layout_champs.addWidget(date, 2, 1);
// boutons
QDialogButtonBox boutons(QDialogButtonBox::Ok | QDialogButtonBox::Cancel);
connect(&boutons, SIGNAL(accepted()), &popup, SLOT(accept()));
connect(&boutons, SIGNAL(rejected()), &popup, SLOT(accept()));
// ajout dans une disposition verticale
QVBoxLayout layout_v(&popup);
layout_v.addWidget(&bidon);
layout_v.addWidget(&boutons);
if (popup.exec() == QDialog::Accepted) {
sv -> scene -> titre = titre -> text();
sv -> scene -> auteur = auteur -> text();
sv -> scene -> date = date -> date();
}
}

View File

@@ -30,6 +30,7 @@
void toggleFullScreen();
void toggleAntialiasing();
void aPropos();
void editInfos();
void dialogue_imprimer();
void dialogue_exporter();
bool dialogue_enregistrer_sous();
@@ -62,6 +63,7 @@
QAction *supprimer;
QAction *selectionner;
QAction *pivoter;
QAction *infos_schema;
QAction *poser_fil;
QAction *masquer_appli;
QAction *restaurer_appli;

View File

@@ -26,16 +26,16 @@
bool fromXml(QDomDocument &, QPointF = QPointF());
QGraphicsItem *getElementById(uint id);
inline void setAffichageGrille(bool ddg) { doit_dessiner_grille = ddg; }
private:
QGraphicsLineItem *poseur_de_conducteur;
bool doit_dessiner_grille;
// elements du cartouche
QString auteur;
QDate date;
QString titre;
QString folio; // vraiment necessaire ce truc ?
QString nom_fichier; // meme remarque
private:
QGraphicsLineItem *poseur_de_conducteur;
bool doit_dessiner_grille;
Element *elementFromXml(QDomElement &e, QHash<int, Borne *> &);
private slots: