diff --git a/elementscategorydeleter.cpp b/elementscategorydeleter.cpp index 6bd47ba4e..3e74e9069 100644 --- a/elementscategorydeleter.cpp +++ b/elementscategorydeleter.cpp @@ -42,11 +42,15 @@ void ElementsCategoryDeleter::exec() { // verifie l'existence de la categorie if (!cat.exists() || empty_category_path) return; + QString cat_name(cat.name().replace("<", "<").replace(">", ">")); + // confirmation #1 QMessageBox::StandardButton answer_1 = QMessageBox::question( this, tr("Supprimer la cat\351gorie ?"), - tr("\312tes-vous s\373r de vouloir supprimer cette cat\351gorie ?\n" + tr("\312tes-vous s\373r de vouloir supprimer la cat\351gorie ") + + cat_name + + tr(" ?\n" "Tous les \351l\351ments et les cat\351gories contenus dans cette " "cat\351gorie seront supprim\351s"), QMessageBox::Yes|QMessageBox::No|QMessageBox::Cancel @@ -58,7 +62,9 @@ void ElementsCategoryDeleter::exec() { this, tr("Supprimer la cat\351gorie ?"), tr("\312tes-vous vraiment s\373r de vouloir supprimer cette " - "cat\351gorie ?\nLes changements seront d\351finitifs."), + "cat\351gorie (") + + cat_name + + tr(") ?\nLes changements seront d\351finitifs."), QMessageBox::Yes|QMessageBox::No|QMessageBox::Cancel ); if (answer_2 != QMessageBox::Yes) return; diff --git a/elementscategoryeditor.cpp b/elementscategoryeditor.cpp index f84650457..a1463afa5 100644 --- a/elementscategoryeditor.cpp +++ b/elementscategoryeditor.cpp @@ -18,6 +18,7 @@ #include "elementscategoryeditor.h" #include "elementscategory.h" #include "nameslistwidget.h" +#include "qet.h" /** Constructeur fournissant un dialogue d'edition de categorie. @@ -100,7 +101,8 @@ void ElementsCategoryEditor::acceptCreation() { } // cree un nom de dossier a partir du 1er nom de la categorie - QString dirname = names[names.langs().first()].toLower().replace(" ", "_"); + QString dirname = names[names.langs().first()].toLower().replace(" ", "_"); + foreach(QChar c, QET::forbiddenCharacters()) dirname = dirname.replace(c, "_"); category -> setPath(category -> path() + "/" + dirname); category -> write(); diff --git a/lang/qet_en.qm b/lang/qet_en.qm index e2d36ec5f..8ad831360 100644 Binary files a/lang/qet_en.qm and b/lang/qet_en.qm differ diff --git a/lang/qet_en.ts b/lang/qet_en.ts index 1bbaa324e..40a357828 100644 --- a/lang/qet_en.ts +++ b/lang/qet_en.ts @@ -52,62 +52,62 @@ ArcEditor - + Centre : Center: - + Diamètres : Diameters: - + horizontal : horizontal: - + vertical : vertical: - + Angle de départ : Start angle: - + Angle : Angle: - + abscisse abscissa - + ordonnée ordinate - + diamètre horizontal horizontal diameter - + diamètre vertical vertical diameter - + angle de départ start angle - + angle angle @@ -143,27 +143,27 @@ CircleEditor - + Centre : Center: - + Diamètre : Diameter: - + abscisse abscissa - + ordonnée ordinate - + diamètre diameter @@ -219,128 +219,85 @@ Configure QElectroTech - - Diagram - - - Avertissement - Warning - - - - Ce document semble avoir été enregistré avec une version ultérieure de QElectroTech. Il est possible que l'ouverture de tout ou partie de ce document échoue. - This document seems to have been saved by a more recent version of QElectroTech. The opening of the document may fail totally or partially. - - DiagramView - + ? ? - - Auteur : - Author: - - - - Date : - Date: - - - + Enregistrer le schéma en cours ? Save the current diagram ? - + Enregistrer sous Save as - + Erreur Error - - Fichier : - File: - - - - Folio : - Folio: - - - + Impossible d'ecrire dans ce fichier Can't write to the file - + Schéma QElectroTech (*.qet) QElectroTech Diagram (*.qet) - - Titre : - Title: - - - + Voulez-vous enregistrer le schéma Do you wish to save the diagram - + nouveau schéma new diagram - + Éditer les propriétés d'un conducteur Edit conductor properties - + Propriétés du schéma Diagram properties - + Dimensions du schéma Diagram size - + Colonnes : Columns: - + × × - + px px - + Hauteur : Height: - - Informations du cartouche - Inset properties - - - + Éditer les propriétés par défaut des conducteurs Edit conductors default properties @@ -350,22 +307,12 @@ Paste Here - - Pas de date - No date - - - - Date fixe : - Fixed Date: - - - + Avertissement Warning - + Ce document semble avoir été enregistré avec une version ultérieure de QElectroTech. Il est possible que l'ouverture de tout ou partie de ce document échoue. This document seems to have been saved by a more recent version of QElectroTech. The opening of the document may fail totally or partially. @@ -410,82 +357,82 @@ Check your rights on the file line - + ellipse ellipse - + arc arc - + cercle circle - + borne terminal - + texte text - + champ de texte textfield - + polygone polygon - + Ce document XML n'est pas une definition d'élément. This XML document is not an element definition. - + Les dimensions ou le point de saisie ne sont pas valides. The size or the hotspot are not valid. - + Les orientations ne sont pas valides. Orientations are not valids. - + Éditer la taille et le point de saisie Edit size and hotspot - + Éditer les orientations Edit orientations - + L'orientation par défaut est l'orientation dans laquelle s'effectue la création de l'élément. Default orientation is the orientation which the drawing of the element takes place with. - + Éditer les noms Edit names - + Vous pouvez spécifier le nom de l'élément dans plusieurs langues. You may enter the element name in several languages. - + Autoriser les connexions internes Allow internal connections @@ -493,10 +440,15 @@ Check your rights on the file ElementsCategoriesList - + Collection utilisateur User Collection + + + Collection QET + QET Collection + ElementsCategoriesWidget @@ -524,71 +476,81 @@ Check your rights on the file ElementsCategoryDeleter - + Supprimer la catégorie ? Delete category ? - - Êtes-vous sûr de vouloir supprimer cette catégorie ? -Tous les éléments et les catégories contenus dans cette catégorie seront supprimés - Do you really wish to delete this category ? -Every elements and categories nestd in this category will be deleted - - - - Êtes-vous vraiment sûr de vouloir supprimer cette catégorie ? -Les changements seront définitifs. - Are you really really sure you want to delete this category ? -Changes will be permanent. - - - + Suppression de la catégorie Category deletion - + La suppression de la catégorie a échoué. Vérifiez vos droits sur le dossier Category deletion failed. Please check rights of the directory - + . . + + + Êtes-vous sûr de vouloir supprimer la catégorie <b> + Do you really wish to delete this category <b> + + + + </b> ? +Tous les éléments et les catégories contenus dans cette catégorie seront supprimés + </b>? +Every elements and categories nested in this category will be deleted + + + + Êtes-vous vraiment sûr de vouloir supprimer cette catégorie (<b> + Are you really really sure you want to delete this category (<b> + + + + </b>) ? +Les changements seront définitifs. + </b>) ? +Changes will be permanent. + ElementsCategoryEditor - + Créer une nouvelle catégorie Add a new category - + Éditer une catégorie Edit category - + Nom de la nouvelle catégorie Name of the new category - + Vous pouvez spécifier un nom par langue pour la catégorie. You can add a name per language for the category. - + Édition en lecture seule Read only edition - + Vous n'avez pas les privilèges nécessaires pour modifier cette catégorie. Elle sera donc ouverte en lecture seule. You are not allowed to modify this category. Thus it will be edited read-only. @@ -596,22 +558,22 @@ Please check rights of the directory ElementsPanel - + Ceci est un élément que vous pouvez insérer dans votre schéma par cliquer-déplacer This is an element you can drag'n drop onto your diagram - + Cliquer-déposez cet élément sur le schéma pour insérer un élément Drag'n drop this element to the diagram to insert a - + Collection QET QET Collection - + Collection utilisateur User Collection @@ -667,42 +629,42 @@ Please check rights of the directory EllipseEditor - + Centre : Center: - + Diamètres : Diameters: - + horizontal : horizontal: - + vertical : vertical: - + abscisse abscissa - + ordonnée ordinate - + diamètre horizontal horizontal diameter - + diamètre vertical vertical diameter @@ -710,142 +672,142 @@ Please check rights of the directory ExportDialog - + Aperçu Preview - + Bitmap (*.bmp) Bitmap (*.bmp) - + Conserver les proportions Keep aspect ratio - + Dessiner la grille Draw the grid - + Dessiner le cadre Draw the border - + Dessiner le cartouche Draw the inset - + Dessiner les colonnes Draw columns - + Dimensions Dimensions - + Exporter Export - + Exporter le cadre Export the border - + Exporter les éléments Export only elements - + Exporter vers le fichier Export to file - + Fichier non spécifié Filename not given - + Format : Format: - + Hauteur : Height: - + Il semblerait que vous n'ayez pas les permissions nécessaires pour écrire dans ce fichier.. It seems you don't have the permissions needed to write this file.. - + Impossible d'écrire dans ce fichier Can't Write to the file - + JPEG (*.jpg) JPEG (*.jpg) - + Largeur : Width: - + Nom de fichier : Filename: - + Options Options - + Parcourir Browse - + PNG (*.png) PNG (*.png) - + px px - + Vous devez spécifier le chemin du fichier dans lequel sera enregistrée l'image. You must give a filename to save the picture. - + Dessiner les bornes Draw terminals - + SVG (*.svg) SVG (*.svg) - + Images (*.png *.bmp *.jpg *.svg) Pictures (*.png *.bmp *.jpg *.svg) @@ -921,27 +883,27 @@ Please check rights of the directory Fixed date: - + Titre : Title: - + Auteur : Author: - + Date : Date: - + Fichier : File: - + Folio : Folio: @@ -949,22 +911,22 @@ Please check rights of the directory LineEditor - + abscisse point 1 abscissa point 1 - + ordonnée point 1 ordinate point 1 - + abscisse point 2 abscissa point 2 - + ordonnée point 2 ordinate point 2 @@ -1024,51 +986,6 @@ Please check rights of the directory px px - - - Informations du cartouche - Inset properties - - - - Pas de date - No date - - - - Date courante - Current date - - - - Date fixe : - Fixed date: - - - - Titre : - Title: - - - - Auteur : - Author: - - - - Date : - Date: - - - - Fichier : - File: - - - - Folio : - Folio: - Hauteur : @@ -1078,95 +995,100 @@ Please check rights of the directory NewElementWizard - + Créer un nouvel élément : Assistant Create a new element: wizard - + Erreur Error - + Nom du nouvel élément New element name - + Vous devez entrer un nom de fichier You must enter a filename - + Vous devez sélectionner une catégorie. You must select a category. - + Vous n'êtes pas obligé de préciser l'extension *.elmt. Elle sera ajoutée automatiquement. You don't have to specify the *.elmt extension. It will be added automatically. - + nouvel_element new_element - + &Suivant > &Next > - + Étape 1/5 : Catégorie parente Step 1 of 5: Parent category - + Sélectionnez une catégorie dans laquelle enregistrer le nouvel élément. Select a category which to save the new element in. - + Étape 2/5 : Nom du fichier Step 2 of 5: Filename - + Indiquez le nom du fichier dans lequel enregistrer le nouvel élément. Enter the name of the file for the new element. - + Étape 3/5 : Noms de l'élément Step 3 of 5: Element names - + Indiquez le ou les noms de l'élément. Enter one or more names for the element. - + Étape 4/5 : Dimensions et point de saisie Step 4 of 5: Size and hotspot - + Saisissez les dimensions du nouvel élément ainsi que la position du hotspot (point de saisie de l'élément à la souris) en considérant que l'élément est dans son orientation par défaut. Enter the new element size and its hotspot, considering the element is default-oriented. - + Étape 5/5 : Orientations Step 5 of 5: Orientations - + Indiquez les orientations possibles pour le nouvel élément. Enter the allowed and forbidden orientations for the new element. + + + Merci de ne pas utiliser les caractères suivants : \ / : * ? " < > | + Please avoid the following characters : \ / : * ? < > | + OrientationSetWidget @@ -1247,87 +1169,87 @@ Please check rights of the directory QETApp - + QElectroTech QElectroTech - + &Quitter &Quit - + &Masquer &Hide - + &Restaurer &Show - + &Masquer tous les éditeurs de schéma &Hide diagram editors - + &Restaurer tous les éditeurs de schéma &Show diagram editors - + &Masquer tous les éditeurs d'élément &Hide element editors - + &Restaurer tous les éditeurs d'élément &Show element editors - + &Nouvel éditeur de schéma &New diagram editor - + &Nouvel éditeur d'élément &New element editor - + Ferme l'application QElectroTech Closes QElectroTech - + Réduire QElectroTech dans le systray Reduces QElectroTech into the systray - + Restaurer QElectroTech Restore QElectroTech - + Éditeurs de schémas Diagram editors - + Éditeurs d'élément Element editors - + Usage : Usage: - + QElectroTech, une application de réalisation de schémas électriques. Options disponibles : @@ -1344,7 +1266,7 @@ Available options: - + [options] [fichier]... @@ -1353,14 +1275,14 @@ Available options: - + --common-elements-dir=DIR Definir le dossier de la collection d'elements --common-elements-dir=DIR Define the elements collection directory - + --config-dir=DIR Definir le dossier de configuration --config-dir=DIR Define configuration directory @@ -2013,357 +1935,357 @@ Available options: QETElementEditor - + QElectroTech - Éditeur d'élément QElectroTech - Element Editor - + &Nouveau &New - + &Ouvrir &Open - + &Enregistrer &Save - + Enregistrer sous Save as - + &Quitter &Quit - + Tout sélectionner Select All - + Désélectionner tout Select none - + Inverser la sélection Invert selection - + &Supprimer &Delete - + Éditer la taille et le point de saisie Edit size and hotspot - + Éditer les noms Edit names - + Éditer les orientations Edit orientations - + Déplacer un objet Move an object - + Ajouter une ligne Add a line - + Ajouter une ellipse Add an ellipse - + Ajouter un cercle Add a circle - + Ajouter un polygone Add a polygon - + Ajouter du texte Add text - + Ajouter un arc de cercle Add an arc - + Ajouter une borne Add a terminal - + Ajouter un champ de texte Add a textfield - + Annuler Undo - + Refaire Redo - + Ctrl+Q Ctrl+Q - + Ctrl+Shift+A Ctrl+Shift+A - + Ctrl+I Ctrl+I - + Parties Parts - + Fichier File - + Édition Edit - + Affichage Display - + Outils Tools - + Aide Help - + [Modifié] [Changed] - + [lecture seule] [Read only] - + Informations Informations - + Annulations Undo - + Éditeur d'éléments Elements Editor - + parties sélectionnées. selected parts. - + Aucune partie sélectionnée. No part selected. - + Le fichier The file - + n'existe pas. does not exist. - + Impossible d'ouvrir le fichier Unable to open file - + Ce fichier n'est pas un document XML valide This file is not a valid XML document - + Erreur Error - + Édition en lecture seule Read only edition - + Vous n'avez pas les privilèges nécessaires pour modifier cet élement. Il sera donc ouvert en lecture seule. You are not allowed to modify this element. Thus it will be edited read-only. - + Impossible d'ecrire dans ce fichier Can't write to the file - + Ouvrir un fichier Open a file - + Éléments QElectroTech (*.elmt);;Fichiers XML (*.xml);;Tous les fichiers (*) QElectroTech elements (*.elmt);;XML files (*.xml);;All files (*) - + Éléments QElectroTech (*.elmt) QElectroTech elements (*.elmt) - + Enregistrer l'élément en cours ? Save current element ? - + Voulez-vous enregistrer l'élément Do you wish to save the element - + ? ? - + Afficher Display - + Suppr Del - + Ctrl+E Ctrl+E - + Ctrl+R Ctrl+R - + Ctrl+T Ctrl+T - + Rapprocher Raise - + Éloigner Lower - + Envoyer au fond Send backward - + Amener au premier plan Bring forward - + Ctrl+Shift+Up Ctrl+Shift+Up - + Ctrl+Shift+Down Ctrl+Shift+Down - + Ctrl+Shift+End Ctrl+Shift+End - + Ctrl+Shift+Home Ctrl+Shift+Home - + Aucune modification No modification - + Recharger Reload - + Recharger l'élément Reload element - + Vous avez efffectué des modifications sur cet élément. Si vous le rechargez, ces modifications seront perdues. Voulez-vous vraiment recharger l'élément ? This element has been modified since last save. If you reload it, these changes will be lost. Do you really want to reload this element ? @@ -2396,47 +2318,47 @@ Available options: modification polygon points - + arc arc - + cercle circle - + ellipse ellipse - + ligne line - + polygone polygon - + borne terminal - + T T - + texte text - + _ _ @@ -2551,12 +2473,12 @@ Available options: modify conductor properties - + Avertissement : l'élément Warning: the element - + a été enregistré avec une version ultérieure de QElectroTech. was saved with a more recent version of QElectroTech. @@ -2692,57 +2614,57 @@ Available options: TerminalEditor - + Nord North - + Est East - + Sud South - + Ouest West - + Position : Position: - + x : x: - + y : y: - + Orientation : Orientation: - + abscisse abscissa - + ordonnée ordinate - + orientation orientation @@ -2750,47 +2672,47 @@ Available options: TextEditor - + Position : Position: - + x : x: - + y : y: - + Taille : Size: - + Texte : Text: - + abscisse abscissa - + ordonnée ordinate - + texte text - + taille size @@ -2805,52 +2727,52 @@ Available options: element rotations - + Position : Position: - + x : x: - + y : y: - + Taille : Size: - + Texte par défaut : Default text: - + abscisse abscissa - + ordonnée ordinate - + texte text - + taille size - + propriété property diff --git a/newelementwizard.cpp b/newelementwizard.cpp index 84b642fd1..2c5741065 100644 --- a/newelementwizard.cpp +++ b/newelementwizard.cpp @@ -23,6 +23,7 @@ #include "hotspoteditor.h" #include "element.h" #include "qetelementeditor.h" +#include "qet.h" /** Constructeur @@ -193,6 +194,16 @@ bool NewElementWizard::validStep2() { if (!file_name.endsWith(".elmt")) file_name += ".elmt"; + // le nom de fichier contient peut etre des caracteres interdits + if (QET::containsForbiddenCharacters(file_name)) { + QMessageBox::critical( + this, + tr("Erreur"), + tr("Merci de ne pas utiliser les caract\350res suivants : \\ / : * ? \" < > |") + ); + return(false); + } + // le fichier existe peut etre deja if (QFileInfo(dir_path + "/" + file_name).exists()) { QMessageBox::StandardButton answer = QMessageBox::question( diff --git a/qet.cpp b/qet.cpp index 3e69f0130..3cd167eb2 100644 --- a/qet.cpp +++ b/qet.cpp @@ -217,3 +217,24 @@ QString QET::license() { } return(txt_license); }; + + +/** + @return la liste des caracteres interdits dans les noms de fichiers sous + Windows +*/ +QList QET::forbiddenCharacters() { + return(QList() << '\\' << '/' << ':' << '*' << '?' << '"' << '<' << '>' << '|'); +} + +/** + @param string une chaine de caracteres + @return true si string contient un caractere interdit dans les noms de + fichiers sous Windows +*/ +bool QET::containsForbiddenCharacters(const QString &string) { + foreach(QChar c, QET::forbiddenCharacters()) { + if (string.contains(c)) return(true); + } + return(false); +} diff --git a/qet.h b/qet.h index 984737276..56c6ea414 100644 --- a/qet.h +++ b/qet.h @@ -42,5 +42,7 @@ namespace QET { bool attributeIsAReal(const QDomElement &, QString , double * = NULL); QString ElementsAndConductorsSentence(int, int, int = 0); QList findInDomElement(const QDomElement &, const QString &, const QString &); + QList forbiddenCharacters(); + bool containsForbiddenCharacters(const QString &); } #endif