diff --git a/qet_en.qm b/qet_en.qm
index 549e55f7b..94f338a28 100644
Binary files a/qet_en.qm and b/qet_en.qm differ
diff --git a/qet_en.ts b/qet_en.ts
index 2d0d0bf49..93750533b 100644
--- a/qet_en.ts
+++ b/qet_en.ts
@@ -45,7 +45,7 @@ Programmation : Xavier Guerrin <xavier.guerrin@gmail.com>
Programming : Xavier Guerrin <xavier.guerrin@gmail.com>
-
+
Ce programme est sous licence GNU/GPL.
This program is under the GNU/GPL license.
@@ -60,32 +60,32 @@ Programming : Xavier Guerrin <xavier.guerrin@gmail.com>
The text file containing the GNU/GPL license exists but could not be opened - however, you know it by heart, don't you ?
-
+
Idée originale
Original concept
-
+
Programmation
Programming
-
+
Le fichier texte contenant la licence GNU/GPL est introuvable - bon bah de toute façon, vous la connaissez par coeur non ?
The text file containing the GNU/GPL license could not be found - however, you know it by heart, don't you ?
-
+
Le fichier texte contenant la licence GNU/GPL existe mais n'a pas pu être ouvert - bon bah de toute façon, vous la connaissez par coeur non ?
The text file containing the GNU/GPL license exists but could not be opened - however, you know it by heart, don't you ?
-
+
QElectroTech, une application de réalisation de schémas électriques.
QElectroTech, an application to design electric plans.
-
+
© 2006 Les développeurs de QElectroTech
© 2006 QElectroTech developers
@@ -171,142 +171,142 @@ Programming : Xavier Guerrin <xavier.guerrin@gmail.com>
x
-
+
&Masquer
&Hide
-
+
&Quitter
&Quit
-
+
&Restaurer
&Show
-
+
&Fichier
&File
-
+
&Édition
&Edit
-
+
Afficha&ge
Displ&ay
-
+
O&utils
&Tools
-
+
&Configuration
&Settings
-
+
&Aide
&Help
-
+
&Nouveau
&New
-
+
&Ouvrir
&Open
-
+
&Enregistrer
&Save
-
+
Enregistrer sous
Save as
-
+
&Importer
&Import
-
+
Ctrl+Shift+I
-
+
E&xporter
&Export
-
+
Ctrl+Shift+X
-
+
Ctrl+Q
-
+
Annu&ler
&Undo
-
+
Re&faire
&Redo
-
+
Co&uper
Cu&t
-
+
Cop&ier
&Copy
-
+
C&oller
&Paste
-
+
Tout sélectionner
Select All
-
+
Désélectionner tout
Select none
-
+
Ctrl+Shift+A
-
+
Inverser la sélection
Invert selection
-
+
Ctrl+I
@@ -321,7 +321,7 @@ Programming : Xavier Guerrin <xavier.guerrin@gmail.com>
&Fullscreen Mode
-
+
Ctrl+Shift+F
Ctrl+Shift+F
@@ -331,27 +331,27 @@ Programming : Xavier Guerrin <xavier.guerrin@gmail.com>
Configure tool&bars
-
+
&Configurer QElectroTech
&Configure QElectroTech
-
+
À &propos de QElectroTech
A&bout QElectroTech
-
+
À propos de &Qt
About &Qt
-
+
Désactiver l'&antialiasing
Render without &Antialiasing
-
+
Activer l'&antialiasing
Render with &Antialiasing
@@ -366,87 +366,87 @@ Programming : Xavier Guerrin <xavier.guerrin@gmail.com>
Elements Panel
-
+
Imprimer
Print
-
+
Zoom avant
Zoom In
-
+
Zoom arrière
Zoom Out
-
+
Zoom adapté
Fit in view
-
+
Pas de zoom
Reset zoom
-
+
Mode Selection
Selection Mode
-
+
Passer en &mode plein écran
F&ullScreen Screen Mode
-
+
Sortir du &mode plein écran
Exit F&ullScreen Screen Mode
-
+
Reduire QElectroTech dans le systray
Minimize QElectroTech to the sytray
-
+
Restaurer QElectroTech
Restore QElectroTech
-
+
P
P
-
+
Ctrl+9
-
+
Ctrl+0
-
+
Afficher
Display
-
+
Outils
Tools
-
+
Exporter vers le fichier
Export to file
-
+
Image PNG (*.png)
PNG Picture (*.png)
@@ -456,7 +456,7 @@ Programming : Xavier Guerrin <xavier.guerrin@gmail.com>
QElectroTech Schema (*.qet)
-
+
Erreur
Error
@@ -466,12 +466,12 @@ Programming : Xavier Guerrin <xavier.guerrin@gmail.com>
Can't write to the file
-
+
Ouvrir un fichier
Open a file
-
+
Schema QelectroTech (*.qet);;Fichiers XML (*.xml);;Tous les fichiers (*)
QelectroTech Schema (*.qet);;XML Files (*.xml);;All Files (*)
@@ -481,7 +481,7 @@ Programming : Xavier Guerrin <xavier.guerrin@gmail.com>
Can't read that file
-
+
Ce fichier n'est pas un document XML valide.
This file is not a valid XML Document.
@@ -496,95 +496,260 @@ Programming : Xavier Guerrin <xavier.guerrin@gmail.com>
Do you wish to save the current schema ?
-
+
Supprimer
Delete
-
+
Pivoter
Rotate
-
+
Mode Visualisation
View Mode
-
+
&Fermer
&Close
-
+
&Mosaïque
&Tile
-
+
&Cascade
&Cascade
-
+
Arranger les fenêtres réduites
Arranges iconized windows
-
+
Fenêtre suivante
Next Window
-
+
Fenêtre précédente
Previous Window
-
+
Dispose les fenêtres en mosaïque
Arranges windows in a tile pattern
-
+
Dispose les fenêtres en cascade
Arranges windows in a cascade pattern
-
+
Aligne les fenêtres réduites
Arranges all iconized windows at the bottom of the workspace
-
+
Active la fenêtre suivante
Activates the next window
-
+
Active la fenêtre précédente
Activates the previous window
-
+
Fe&nêtres
Wi&ndows
-
+
Ce fichier n'existe pas.
This file does not exist.
-
+
Impossible de lire ce fichier.
Could not read file.
-
+
Une erreur s'est produite lors de l'ouverture du fichier.
An error occured while opening the file.
+
+
+ Crée un nouveau schéma
+ Opens a new plan
+
+
+
+ Ferme le schéma courant
+ Closes the current plan
+
+
+
+ Enregistre le schéma courant
+ Saves the current plan
+
+
+
+ Enregistre le schéma courant avec un autre nom de fichier
+ Saves the current plan as another filename
+
+
+
+ Importe un schéma dans le schéma courant
+ Imports a plan into the current plan
+
+
+
+ Exporte le schéma courant dans un autre format
+ Exports the curent plan to another format
+
+
+
+ Imprime le schéma courant
+ Prints the current plan
+
+
+
+ Ferme l'application QElectroTech
+ Closes QElectroTech
+
+
+
+ Annule l'action précédente
+ Undoes the previous action
+
+
+
+ Restaure l'action annulée
+ Restores the undone action
+
+
+
+ Transfère les éléments sélectionnés dans le presse-papier
+ Puts selected elements into the clipboard
+
+
+
+ Copie les éléments sélectionnés dans le presse-papier
+ Copies selected elements
+
+
+
+ Place les éléments du presse-papier sur le schéma
+ Pastes elements from the clipboard into the plan
+
+
+
+ Sélectionne tous les éléments du schéma
+ Selects all elements on the plan
+
+
+
+ Désélectionne tous les éléments du schéma
+ Deselect all elements on the plan
+
+
+
+ Désélectionne les éléments sélectionnés et sélectionne les éléments non sélectionnés
+ Deselects selected elements and select non-selected elements
+
+
+
+ Enlève les éléments sélectionnés du schéma
+ Removes selected elements from the plan
+
+
+
+ Pivote les éléments sélectionnés
+ Rotates selected elements
+
+
+
+ Active / désactive l'antialiasing pour le rendu du schéma courant
+ Render the current plan with or without antialiasing
+
+
+
+ Agrandit le schéma
+ Enlarge the plan
+
+
+
+ Rétrécit le schéma
+ Shrinks the plan
+
+
+
+ Adapte la taille du schéma afin qu'il soit entièrement visible
+ Changes the size of the plan so that it fits in the view
+
+
+
+ Restaure le zoom par défaut
+ Restores default zoom level
+
+
+
+ Permet de sélectionner les éléments
+ Allows to select elements
+
+
+
+ Permet de visualiser le schéma sans pouvoir le modifier
+ Allows to view the plan without modifying it
+
+
+
+ Affiche QElectroTech en mode plein écran
+ Displays QELectroTech in full screen mode
+
+
+
+ Affiche QElectroTech en mode fenêtré
+ Displays QElectroTech in windowed mode
+
+
+
+ Permet de régler différents paramètres de QElectroTech
+ Allows to specify various parameters for QElectroTech
+
+
+
+ Affiche des informations sur QElectroTech
+ Displays informations about QElectroTech
+
+
+
+ Affiche des informations sur la bibliothèque Qt
+ Displays informations about Qt library
+
+
+
+ Affiche ou non la barre d'outils
+ Displays or not the toolbar
+
+
+
+ Affiche ou non le panel d'appareils
+ Displays or not the elements panel
+
+
+
+ Active la fenêtre
+ Activates the window
+
Schema
diff --git a/qetapp.cpp b/qetapp.cpp
index d0750c42a..4fe21ebd3 100644
--- a/qetapp.cpp
+++ b/qetapp.cpp
@@ -139,6 +139,7 @@ void QETApp::systrayRestaurer() {
/**
Permet de quitter l'application lors de la fermeture de la fenetre principale
+ @param qce Le QCloseEvent correspondant a l'evenement de fermeture
*/
void QETApp::closeEvent(QCloseEvent *qce) {
quitter(qce);
@@ -146,11 +147,13 @@ void QETApp::closeEvent(QCloseEvent *qce) {
/**
Gere la sortie de l'application
- @todo gerer les eventuelles fermetures de fichiers
+ @param e Le QCloseEvent correspondant a l'evenement de fermeture
*/
void QETApp::quitter(QCloseEvent *e) {
+ // quitte directement s'il n'y a aucun schema ouvert
if (!schemaEnCours()) qApp -> quit();
else {
+ // sinon demande la permission de fermer chaque schema
bool peut_quitter = true;
foreach(QWidget *fenetre, workspace.windowList()) {
if (qobject_cast(fenetre)) {
@@ -164,11 +167,10 @@ void QETApp::quitter(QCloseEvent *e) {
}
if (peut_quitter) qApp -> quit();
}
-
}
/**
- Fait passer la fenetre en mode plein ecran au mode normal et vice-versa
+ Fait passer la fenetre du mode plein ecran au mode normal et vice-versa
*/
void QETApp::toggleFullScreen() {
setWindowState(windowState() ^ Qt::WindowFullScreen);
@@ -247,7 +249,7 @@ void QETApp::actions() {
masquer_appli = new QAction(QIcon(":/ico/masquer.png"), tr("&Masquer"), this);
restaurer_appli = new QAction(QIcon(":/ico/restaurer.png"), tr("&Restaurer"), this);
- // info-bulles / indications dans la barre de statut
+ // info-bulles
masquer_appli -> setToolTip(tr("Reduire QElectroTech dans le systray"));
restaurer_appli -> setToolTip(tr("Restaurer QElectroTech"));
@@ -281,12 +283,49 @@ void QETApp::actions() {
sortir_pe -> setShortcut(QKeySequence(tr("Ctrl+Shift+F")));
// affichage dans la barre de statut
+ nouveau_fichier -> setStatusTip(tr("Cr\351e un nouveau sch\351ma"));
+ ouvrir_fichier -> setStatusTip(tr("Ouvre un sch\351ma existant"));
+ fermer_fichier -> setStatusTip(tr("Ferme le sch\351ma courant"));
+ enr_fichier -> setStatusTip(tr("Enregistre le sch\351ma courant"));
+ enr_fichier_sous -> setStatusTip(tr("Enregistre le sch\351ma courant avec un autre nom de fichier"));
+ importer -> setStatusTip(tr("Importe un sch\351ma dans le sch\351ma courant"));
+ exporter -> setStatusTip(tr("Exporte le sch\351ma courant dans un autre format"));
+ imprimer -> setStatusTip(tr("Imprime le sch\351ma courant"));
+ quitter_qet -> setStatusTip(tr("Ferme l'application QElectroTech"));
+
+ annuler -> setStatusTip(tr("Annule l'action pr\351c\351dente"));
+ refaire -> setStatusTip(tr("Restaure l'action annul\351e"));
+ couper -> setStatusTip(tr("Transf\350re les \351l\351ments s\351lectionn\351s dans le presse-papier"));
+ copier -> setStatusTip(tr("Copie les \351l\351ments s\351lectionn\351s dans le presse-papier"));
+ coller -> setStatusTip(tr("Place les \351l\351ments du presse-papier sur le sch\351ma"));
+ sel_tout -> setStatusTip(tr("S\351lectionne tous les \351l\351ments du sch\351ma"));
+ sel_rien -> setStatusTip(tr("D\351s\351lectionne tous les \351l\351ments du sch\351ma"));
+ 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"));
+
+ toggle_aa -> setStatusTip(tr("Active / d\351sactive l'antialiasing pour le rendu du sch\351ma courant"));
+ zoom_avant -> setStatusTip(tr("Agrandit le sch\351ma"));
+ zoom_arriere -> setStatusTip(tr("R\351tr\351cit le sch\351ma"));
+ zoom_adapte -> setStatusTip(tr("Adapte la taille du sch\351ma afin qu'il soit enti\350rement visible"));
+ zoom_reset -> setStatusTip(tr("Restaure le zoom par d\351faut"));
+
+ mode_selection -> setStatusTip(tr("Permet de s\351lectionner les \351l\351ments"));
+ mode_visualise -> setStatusTip(tr("Permet de visualiser le sch\351ma sans pouvoir le modifier"));
+
+ entrer_pe -> setStatusTip(tr("Affiche QElectroTech en mode plein \351cran"));
+ sortir_pe -> setStatusTip(tr("Affiche QElectroTech en mode fen\352tr\351"));
+ configurer -> setStatusTip(tr("Permet de r\351gler diff\351rents param\350tres de QElectroTech"));
+
f_mosaique -> setStatusTip(tr("Dispose les fen\352tres en mosa\357que"));
f_cascade -> setStatusTip(tr("Dispose les fen\352tres en cascade"));
f_reorganise -> setStatusTip(tr("Aligne les fen\352tres réduites"));
f_suiv -> setStatusTip(tr("Active la fen\352tre suivante"));
f_prec -> setStatusTip(tr("Active la fen\352tre pr\351c\351dente"));
+ a_propos_de_qet -> setStatusTip(tr("Affiche des informations sur QElectroTech"));
+ a_propos_de_qt -> setStatusTip(tr("Affiche des informations sur la biblioth\350que Qt"));
+
// traitements speciaux
mode_selection -> setCheckable(true);
mode_visualise -> setCheckable(true);
@@ -385,8 +424,11 @@ void QETApp::menus() {
// menu Affichage > Afficher
QMenu *menu_aff_aff = new QMenu(tr("Afficher"));
+ menu_aff_aff -> setTearOffEnabled(true);
menu_aff_aff -> addAction(barre_outils -> toggleViewAction());
+ barre_outils -> toggleViewAction() -> setStatusTip(tr("Affiche ou non la barre d'outils"));
menu_aff_aff -> addAction(qdw_pa -> toggleViewAction());
+ qdw_pa -> toggleViewAction() -> setStatusTip(tr("Affiche ou non le panel d'appareils"));
// menu Affichage
menu_affichage -> addMenu(menu_aff_aff);
@@ -452,13 +494,18 @@ void QETApp::dialogue_imprimer() {
qpd -> exec();
}
+/**
+ Gere l'export de schema vers un autre format (PNG pour le moment)
+*/
void QETApp::dialogue_exporter() {
+ // demande un nom de fichier
QString nom_fichier = QFileDialog::getSaveFileName(
this,
tr("Exporter vers le fichier"),
QDir::homePath(),
tr("Image PNG (*.png)")
);
+ // exporte le schema
if (nom_fichier != "") {
if (!nom_fichier.endsWith(".png", Qt::CaseInsensitive)) nom_fichier += ".png";
QFile fichier(nom_fichier);
@@ -568,58 +615,100 @@ SchemaVue *QETApp::schemaEnCours() {
return(qobject_cast(workspace.activeWindow()));
}
+/**
+ Effectue l'action "couper" sur le schema en cours
+*/
void QETApp::slot_couper() {
if(schemaEnCours()) schemaEnCours() -> couper();
}
+/**
+ Effectue l'action "copier" sur le schema en cours
+*/
void QETApp::slot_copier() {
if(schemaEnCours()) schemaEnCours() -> copier();
}
+/**
+ Effectue l'action "coller" sur le schema en cours
+*/
void QETApp::slot_coller() {
if(schemaEnCours()) schemaEnCours() -> coller();
}
+/**
+ Effectue l'action "zoom avant" sur le schema en cours
+*/
void QETApp::slot_zoomPlus() {
if(schemaEnCours()) schemaEnCours() -> zoomPlus();
}
+/**
+ Effectue l'action "zoom arriere" sur le schema en cours
+*/
void QETApp::slot_zoomMoins() {
if(schemaEnCours()) schemaEnCours() -> zoomMoins();
}
+/**
+ Effectue l'action "zoom arriere" sur le schema en cours
+*/
void QETApp::slot_zoomFit() {
if(schemaEnCours()) schemaEnCours() -> zoomFit();
}
+/**
+ Effectue l'action "zoom par defaut" sur le schema en cours
+*/
void QETApp::slot_zoomReset() {
if(schemaEnCours()) schemaEnCours() -> zoomReset();
}
+/**
+ Effectue l'action "selectionner tout" sur le schema en cours
+*/
void QETApp::slot_selectAll() {
if(schemaEnCours()) schemaEnCours() -> selectAll();
}
+/**
+ Effectue l'action "deselectionenr tout" sur le schema en cours
+*/
void QETApp::slot_selectNothing() {
if(schemaEnCours()) schemaEnCours() -> selectNothing();
}
+/**
+ Effectue l'action "inverser la selection" sur le schema en cours
+*/
void QETApp::slot_selectInvert() {
if(schemaEnCours()) schemaEnCours() -> selectInvert();
}
+/**
+ Effectue l'action "supprimer" sur le schema en cours
+*/
void QETApp::slot_supprimer() {
if(schemaEnCours()) schemaEnCours() -> supprimer();
}
+/**
+ Effectue l'action "pivoter" sur le schema en cours
+*/
void QETApp::slot_pivoter() {
if(schemaEnCours()) schemaEnCours() -> pivoter();
}
+/**
+ Effectue l'action "mode selection" sur le schema en cours
+*/
void QETApp::slot_setSelectionMode() {
if(schemaEnCours()) schemaEnCours() -> setSelectionMode();
}
+/**
+ Effectue l'action "mode visualisation" sur le schema en cours
+*/
void QETApp::slot_setVisualisationMode() {
if(schemaEnCours()) schemaEnCours() -> setVisualisationMode();
}
@@ -693,6 +782,10 @@ void QETApp::slot_updateActions() {
slot_updateMenuFenetres();
}
+/**
+ Ajoute un schema dans l'espace de travail
+ @param sv L'objet SchemaVue a ajouter a l'espace de travail
+*/
void QETApp::addSchemaVue(SchemaVue *sv) {
if (!sv) return;
SchemaVue *s_v = schemaEnCours();
@@ -704,6 +797,9 @@ void QETApp::addSchemaVue(SchemaVue *sv) {
else p -> show();
}
+/**
+ met a jour le menu "Fenetres"
+*/
void QETApp::slot_updateMenuFenetres() {
// nettoyage du menu
menu_fenetres -> clear();
@@ -728,7 +824,9 @@ void QETApp::slot_updateMenuFenetres() {
if (!fenetres.isEmpty()) menu_fenetres -> addSeparator();
for (int i = 0 ; i < fenetres.size() ; ++ i) {
SchemaVue *sv = qobject_cast(fenetres.at(i));
- QAction *action = menu_fenetres -> addAction(sv -> windowTitle().left(sv -> windowTitle().length()-3));
+ QString sv_titre = sv -> windowTitle().left(sv -> windowTitle().length() - 3);
+ QAction *action = menu_fenetres -> addAction(sv_titre);
+ action -> setStatusTip(tr("Active la fen\352tre ") + sv_titre);
action -> setCheckable(true);
action -> setChecked(sv == schemaEnCours());
connect(action, SIGNAL(triggered()), &windowMapper, SLOT(map()));
@@ -737,14 +835,19 @@ void QETApp::slot_updateMenuFenetres() {
}
/**
- @return Le chemin du dossier dans lequel QET doit chercher les definitions XML des elements communs
+ Renvoie le dossier des elements communs, c-a-d le chemin du dossier dans
+ lequel QET doit chercher les definitions XML des elements de la collection QET.
+ @return Le chemin du dossier des elements communs
*/
QString QETApp::commonElementsDir() {
return(QDir::current().path() + "/elements/");
}
/**
- @return Le chemin du dossier dans lequel QET doit chercher les definitions XML des elements propres a l'utilisateur
+ Renvoie le dossier des elements de l'utilisateur, c-a-d le chemin du dossier
+ dans lequel QET chercher les definitions XML des elements propres a
+ l'utilisateur.
+ @return Le chemin du dossier des elements persos
*/
QString QETApp::customElementsDir() {
#ifdef Q_OS_WIN32
@@ -754,6 +857,14 @@ QString QETApp::customElementsDir() {
#endif
}
+/**
+ Renvoie le dossier de configuration de QET, c-a-d le chemin du dossier dans
+ lequel QET lira les informations de configuration et de personnalisation
+ propres a l'utilisateur courant. Ce dossier est generalement
+ C:\Documents And Settings\utilisateur\Application Data\qet sous Windows et
+ ~/.qet sous les systèmes type UNIX.
+ @return Le chemin du dossier de configuration de QElectroTech
+*/
QString QETApp::configDir() {
#ifdef Q_OS_WIN32
return(QDir::homePath() + "\\Application Data\\qet\\");
diff --git a/qetapp.h b/qetapp.h
index e235e0586..71cc3b426 100644
--- a/qetapp.h
+++ b/qetapp.h
@@ -6,8 +6,9 @@
/**
Cette classe represente la fenetre principale de QElectroTech et,
ipso facto, la plus grande partie de l'interface graphique de QElectroTech.
- Il s'agit d'un objet QMainWindow avec un objet « Schema » en guise de widget central
- et un « Panel d'Appareils » en guise de widget « Dock ».
+ Il s'agit d'un objet QMainWindow avec un QWorkSpace contenant des objets
+ « Schema » en guise de widget central et un « Panel d'Appareils » en guise
+ de widget « Dock ».
*/
class QETApp : public QMainWindow {
Q_OBJECT
diff --git a/schemavue.h b/schemavue.h
index ecd8c6135..713501d21 100644
--- a/schemavue.h
+++ b/schemavue.h
@@ -6,8 +6,7 @@
#include "conducteur.h"
#define TAILLE_GRILLE 10
/**
- Classe representant un SchemaVue electrique
- @todo creer une structure capable de retenir les differents composants du SchemaVue : elements, fils, indications eventuelles => revoir les SchemaVues
+ Classe representant graphiquement un schema electrique
*/
class SchemaVue : public QGraphicsView {
Q_OBJECT