diff --git a/lang/qet_de.ts b/lang/qet_de.ts
index 2176880f6..410e35653 100644
--- a/lang/qet_de.ts
+++ b/lang/qet_de.ts
@@ -1685,17 +1685,17 @@ Bemerkung: diese Optionen verhindern NICHT das automatische Nummerieren.
-
+ Modifier la police d'un champ texteSchriftart eines Textfelds ändern
-
+ Modifier la couleur d'un champ texteFarbe eines Textfelds ändern
-
+ Modifier la conservation de l'angleBeibehaltung des Winkels ändern
@@ -1720,7 +1720,7 @@ Bemerkung: diese Optionen verhindern NICHT das automatische Nummerieren.Quelle eines Texts ändern
-
+ Modifier l'alignement d'un champ texteAusrichtung eines Textfelds ändern
@@ -2012,7 +2012,7 @@ Bemerkung: diese Optionen verhindern NICHT das automatische Nummerieren.
-
+ SimpleEinzelbauteil
@@ -2047,93 +2047,98 @@ Bemerkung: diese Optionen verhindern NICHT das automatische Nummerieren.(Miniatur-)Ansicht
-
+
+ Définition de conducteur
+ Leitungsdefinition
+
+
+ Normalement ouvertSchliesser
-
+ Normalement ferméÖffner
-
+ InverseurWechsler
-
+ OtherAndere
-
+ PuissanceLeistung
-
+ Temporisé travailanzugverzögert
-
+ Temporisé reposabfallverzögert
-
+ Temporisé travail & reposAnzug- und Abfallverzögert
-
+ BobineSpule
-
+ Organe de protectionSchutzeinrichtung
-
+ Commutateur / boutonDruck-/Drehschalter
-
-
+
+ GénériqueGenerisch
-
+ FusibleSicherung
-
+ SéctionnableTrennklemme
-
+ DiodeDiode
-
+ PhasePhase
-
+ NeutreNeutralleiter
-
+ TerreErde
@@ -2141,101 +2146,101 @@ Bemerkung: diese Optionen verhindern NICHT das automatische Nummerieren.
ElementPropertiesWidget
-
+ GénéralAllgemein
-
+ Élement
Bauteil
-
+ Nom : %1
Name: %1
-
+ Folio : %1
Seitennummer: %1
-
+ Type : %1
Typ: %1
-
+ Sous-type : %1
Subtyp: %1
-
+ Position : %1
Position: %1
-
+ Rotation : %1°
Drehung: %1°
-
+ Dimensions : %1*%2
Abmessungen: %1*%2
-
+ Bornes : %1
Anschlüsse: %1
-
+ Nombre maximum de contacts esclaves définis : %1
Maximale Anzahl definierter Slave-Kontakte: %1
-
+ Nombre de contacts esclaves utilisés : %1
Anzahl der verwendeten Slave-Kontakte: %1
-
+ Emplacement : %1
Dateipfad: %1
-
+ Retrouver dans le panelBauteil in Sammlung suchen
-
+ Éditer l'élémentBauteil bearbeiten
@@ -2762,97 +2767,97 @@ Alle Bauteile und Unterordner von diesem Ordner werden ebenso gelöscht.
ElementsPanelWidget
-
+ Ouvrir le dossier correspondantOrdner öffnen
-
+ Copier le cheminPfad in Zwischenablage kopieren
-
+ Basculer vers ce projetzu diesem Projekt wechseln
-
+ Fermer ce projetProjekt schließen
-
+ Propriétés du projetProjekteigenschaften
-
+ Propriétés du folioFolieneigenschaften
-
+ Ajouter un folioNeue Folie hinzufügen
-
+ Supprimer ce folioFolie löschen
-
+ Remonter ce folioFolie 1 Position nach oben verschieben
-
+ Abaisser ce folioFolie 1 Position nach unten verschieben
-
+ Remonter ce folio x10Folie 10 Positionen nach oben verschieben
-
+ Remonter ce folio x100Folie 100 Positionen nach oben verschieben
-
+ Remonter ce folio au debutFolie an den Anfang verschieben
-
+ Abaisser ce folio x10Folie 10 Positionen nach unten verschieben
-
+ Abaisser ce folio x100Folie 100 Positionen nach unten verschieben
-
+ FiltrerFilter
-
+ Nouveau modèleNeues Schriftfeld
-
+ Éditer ce modèleSchriftfeld bearbeiten
-
+ Supprimer ce modèleSchriftfeld löschen
@@ -5679,88 +5684,93 @@ Voulez-vous enregistrer les modifications ?
ohne Namen
-
+ Supprimer le folio ?message box titleFolie löschen?
- Êtes-vous sûr de vouloir supprimer ce folio du projet ? Ce changement est irréversible.message box content
- Möchten Sie wirklich diese Folie vom Projekt löschen? Dies kann nicht rückgängig gemacht werden.
+ Möchten Sie wirklich diese Folie vom Projekt löschen? Dies kann nicht rückgängig gemacht werden.
-
+
+ Êtes-vous sûr de vouloir supprimer ce folio du projet ? Ce changement est irréversible.
+ message box content
+
+
+
+ Projet en lecture seulemessage box titleSchreibgeschütztes Projekt
-
+ Ce projet est en lecture seule. Il n'est donc pas possible de le nettoyer.message box contentDieses projekt ist schreibgeschützt. Es ist nicht möglich es zu reinigen.
-
+ Supprimer les modèles de cartouche inutilisés dans le projetIm Projekt unbenutzte Schriftfeld-Vorlagen löschen
-
+ Supprimer les éléments inutilisés dans le projetIm Projekt nicht benutzte Bauteile löschen
-
+ Supprimer les catégories videsLeere Kategorien löschen
-
+ Nettoyer le projetwindow titleProjekt bereinigen
-
+ Ajouter un folioNeue Folie hinzufügen
-
+ Revenir au debut du projetZurück zum Anfang des Projekts
-
+ Aller à la fin du projetZum Projektende springen
-
+ go one page lefteine Seite nach links
-
+ go one page righteine Seite nach rechts
-
+ Ce projet ne contient aucun foliolabel displayed when a project contains no diagramDieses Projekt beinhaltet keine Folie
-
+ <p align="center"><b>Ouverture du projet en cours...</b><br/>Création des onglets de folio :</p><p align="center"><b>Öffnen des Projekts...</b><br/>Folienreiter werden erstellt:</p>
-
+ Projetwindow title for a project-less ProjectViewProjekt
@@ -6063,441 +6073,442 @@ Verfügbare Optionen:
QElectroTech
-
+ Annulationsdock titleRückgängigArbeitsschritte
-
+ Aucune modificationKeine Änderungen
-
+ Cliquez sur une action pour revenir en arrière dans l'édition de votre schémaStatus tipKlicken Sie auf eine Aktion, um die Bearbeitung rückgängig zu machen
-
+ &Nouveau&Neu
-
+ &Ouvrir&Öffnen
-
+ &Fermer&Schließen
-
+ &Enregistrer&Speichern
-
+ Enregistrer sousSpeichern unter
-
+ E&xporter&Exportieren
-
+ Ce panneau liste les différentes actions effectuées sur le folio courant. Cliquer sur une action permet de revenir à l'état du schéma juste après son application."What's this" tipDiese Liste protokolliert alle auf der aktuellen Folie ausgeführten Änderungen. Die Auswahl eines Eintrags führt die Änderungen bis zu diesem Eintrag zurück.
-
+ ImprimerDrucken
-
+ &Quitter&Beenden
-
+ AnnulerRückgängig
-
+ RefaireWiederholen
-
+ Co&uper&Ausschneiden
-
+ Cop&ierKop&ieren
-
+ C&ollerE&infügen
-
+ Propriétés du folioFolieneigenschaften
-
+ Ajouter un folioNeue Folie hinzufügen
-
+
+ Supprimer le folioFolie löschen
-
+ Ajouter une nomenclatureBetriebsmittelverzeichnis einfügen
-
+ Lancer le plugin de création de borniersKlemmenplan-Plugin starten
-
+ Crée un nouveau projetstatus bar tipErstellt ein neues Projekt
-
+ Ouvre un projet existantstatus bar tipÖffnet ein existierendes Projekt
-
+ Ferme le projet courantstatus bar tipSchliesst das aktuelle Projekt
-
+ Enregistre le projet courant et tous ses foliosstatus bar tipSpeichert das aktuelle Projekt und alle seine Folien
-
+ Enregistre le projet courant avec un autre nom de fichierstatus bar tipSpeichert das aktuelle Projekt unter einem anderen Dateinamen
-
+ Ajoute une colonne au foliostatus bar tipFügt eine neue Spalte zur Folie hinzu
-
+ Enlève une colonne au foliostatus bar tipLöscht eine Spalte der Folie
-
+ Agrandit le folio en hauteurstatus bar tipVergrössert die Höhe der Folie
-
+ Rétrécit le folio en hauteurstatus bar tipVerkleinert die Höhe der Folie
-
+ Grouper les textes sélectionnésAusgewählte Texte gruppieren
-
+ Enlève les éléments sélectionnés du foliostatus bar tipEntfernt die ausgewählten Bauteile von der Folie
-
+ Tout sélectionnerAlles auswählen
-
+ Désélectionner toutAuswahl aufheben
-
+ Inverser la sélectionAuswahl umkehren
-
+ SupprimerLöschen
-
+ PivoterDrehen
-
+ Orienter les textesTexte drehen
-
+ Retrouver dans le panelBauteil in Sammlung suchen
-
+ Réinitialiser les conducteursLeiter zurücksetzen
-
+ Ajouter un champ de texteTextfeld einfügen
-
+ Éditer l'item sélectionnéAuswahl bearbeiten
-
+ Ajouter une colonneSpalte einfügen
-
+ Ajouter une imageBild einfügen
-
+ Enlever une colonneSpalte entfernen
-
+ Propriétés du projetProjekteigenschaften
-
+ Nettoyer le projetProjekt bereinigen
-
+ Ajouter un sommaireInhaltsverzeichnis einfügen
-
+ Zoom avantVergrößern
-
+ Zoom arrièreVerkleinern
-
+ Zoom sur le contenuAuf Inhalt einpassen
-
+ Zoom adaptéFolie einpassen
-
+ Pas de zoomKein Zoom
-
+ en utilisant des ongletsmittels Reiter
-
+ en utilisant des fenêtresmittels Fenster
-
+ Mode SelectionAuswahlmodus
-
+ Mode VisualisationAnsichtmodus
-
+ &Mosaïque&Kacheln
-
+ &Cascade&Überlappende Fenster
-
+ Projet suivantNächstes Projekt
-
+ Projet précédentVorheriges Projekt
-
+ Sélectionne tous les éléments du foliostatus bar tipWählt alle Bauteile der Folie aus
-
+ Désélectionne tous les éléments du foliostatus bar tipWählt alle Bauteile der Folie ab
-
+ Agrandit le foliostatus bar tipVergrössert die Folie
-
+ Rétrécit le foliostatus bar tipVerkleinert die Folie
-
+ Adapte le zoom de façon à afficher tout le contenu du folio indépendamment du cadrePasst die Ansicht auf den Inhalt der Folie an, unabhängig vom Folienrahmen
-
+ Adapte le zoom exactement sur le cadre du foliostatus bar tipPasst die Ansicht genau auf den Folienrahmen an
-
+ Ajouter un rectangleRechteck einfügen
-
+ Ajouter une ellipseEllipse einfügen
-
+ Ajouter une polylignePolylinie einfügen
-
+ Ferme l'application QElectroTechstatus bar tipschließt QElectroTech
-
+ Annule l'action précédentestatus bar tipbricht die letzte Aktion ab
-
+ Restaure l'action annuléestatus bar tipstellt die abgebrochene Aktion wieder her
-
+ Transfère les éléments sélectionnés dans le presse-papierstatus bar tipverschiebt die Auswahl in die Zwischenablage
-
+ Copie les éléments sélectionnés dans le presse-papierstatus bar tipkopiert die Auswahl in die Zwischenablage
-
+ Désélectionne les éléments sélectionnés et sélectionne les éléments non sélectionnésstatus bar tipkehrt die Auswahl um
-
+ Pivote les éléments et textes sélectionnésstatus bar tipdreht die Auswahl
-
+ Pivote les textes sélectionnés à un angle précisstatus bar tipdreht die ausgewählten Texte in einem bestimmten Winkel
-
+ Retrouve l'élément sélectionné dans le panelstatus bar tipSucht das Bauteil in der Sammlung
-
+ Recalcule les chemins des conducteurs sans tenir compte des modificationsstatus bar tipzeichnet die Leiter neu, ohne die Änderungen zu berücksichtigen
-
+ Création automatique de conducteur(s)Tool tip of auto conductorAutomatische Leiterverbindung aktivieren
@@ -6509,428 +6520,443 @@ Verfügbare Optionen:
Projektdaten
-
+ CollectionsBauteilsammlungen
-
+ Utiliser la création automatique de conducteur(s) quand cela est possibleStatus tip of auto conductorWenn möglich, automatische Leiterverbindung benutzen
-
+ Afficher la grilleRaster anzeigen
-
+ Affiche ou masque la grille des foliosZeige den Hintergrundsraster der Folien an
-
+ Ajouter une ligneAdd rowZeile einfügen
-
+ Enlever une ligneRemove rowZeile entfernen
-
+ Restaure le zoom par défautstatus bar tipStandardansicht wiederherstellen
-
+ Ajouter une ligneDraw lineLinie einfügen
-
+ Présente les différents projets ouverts dans des sous-fenêtresstatus bar tipzeige die geöffneten Projekte in Fenstern an
-
+ Présente les différents projets ouverts des ongletsstatus bar tipzeige die geöffneten Projekte in Reitern an
-
+ Permet de sélectionner les élémentsstatus bar tipwählt Bauteile aus
-
+ Dispose les fenêtres en mosaïquestatus bar tipordnet die Fenster in Kacheln an
-
+ Exporter en pdfAls PDF speichern
-
+ Exporte un ou plusieurs folios du projet courantstatus bar tipEine oder mehrere Folien des aktuellen Projekts exportieren
-
+ Exporter au format CSVAls CSV-Datei exportieren
-
+ Gestionnaire de borniers (DEV)Klemmleisten-Manager (DEV)
-
+ Exporter la liste des noms de conducteursLeiterbeschriftungen exportieren
-
+ Exporter le plan de câblageVerdrahtungsplan erstellen
-
+ Numérotation automatique des bornesAutomatische Nummerierung der Klemmen
-
+ Exporter la base de donnée interne du projetInterne Datenbank exportieren
-
+ Dispose les fenêtres en cascadestatus bar tipordnet die Fenster überlappend an
-
+ Active le projet suivantstatus bar tipwechselt zum nächsten Projekt
-
+ Active le projet précédentstatus bar tipwechselt zum vorherigen Projekt
-
+ Ajouter un plan de bornesKlemmenplan hinzufügen
-
+ Ajoute un champ de texte sur le folio actuelFügt ein Textfeld auf die aktuelle Folie ein
-
+ Ajoute une image sur le folio actuelFügt ein Bild auf die aktuelle Folie ein
-
+ Ajoute une ligne sur le folio actuelFügt eine Linie auf die aktuelle Folie ein
-
+ Ajoute un rectangle sur le folio actuelFügt ein Rechteck auf die aktuelle Folie ein
-
+ Ajoute une ellipse sur le folio actuelFügt eine Ellipse auf die aktuelle Folie ein
-
+ Ajoute une polyligne sur le folio actuelFügt eine Polylinie auf die aktuelle Folie ein
-
+ Ajoute un plan de bornier sur le folio actuelKlemmenplan auf aktueller Folie einfügen
-
+ Chercher/remplacerSuchen/ersetzen
-
+ Profondeurtoolbar titleTiefe/Ebene
-
+ &Fichier&Datei
-
+ &ÉditionB&earbeiten
-
+ &Projet&Projekt
-
+ Afficha&ge&Anzeige
-
+ Fe&nêtresFe&nster
-
+ &Récemment ouverts&Zuletzt geöffnet
-
+ Affiche ou non la barre d'outils principaleZeigt oder versteckt die Hauptwerkzeugsleiste
-
+ Affiche ou non la barre d'outils AffichageZeigt oder versteckt die Anzeigeleiste
-
+ Affiche ou non la barre d'outils SchémaZeigt oder versteckt die Schaltplan-Werkzeugsleiste
-
+ Affiche ou non le panel d'appareilsZeigt oder versteckt die Bauteilsammlung
-
+ Affiche ou non la liste des modificationsZeigt oder versteckt die Änderungsliste
-
+ Afficher les projetsProjekte anzeigen
-
+ Projets QElectroTech (*.qet);;Fichiers XML (*.xml);;Tous les fichiers (*)QElectroTech-Projekte (*.qet);;XML-Dateien (*.xml);;Alle Dateien (*)
-
+ Double-click pour terminer la forme, Click droit pour annuler le dernier pointDoppelclick, um die Form zu beenden / Rechtsklick, um den letzten Punkt zu entfernen
-
+ Suppression de borne impossibleKlemme kann nicht gelöscht werden
-
+ La suppression ne peut être effectué car la selection possède une ou plusieurs bornes ponté et/ou appartenant à une borne à niveau multiple.
Déponter et/ou supprimer les niveaux des bornes concerné afin de pouvoir les supprimerDie Löschung kann nicht durchgeführt werden, da die Auswahl eine oder mehrere Klemmen enthält, die überbrückt sind und/oder zu einer Klemme mit mehreren Ebenen gehören.
Entfernen Sie die Überbrückung und/oder löschen Sie die Ebenen der betroffenen Klemmen, um sie löschen zu können
-
+ GroupeGruppe
-
+ Une erreur est survenue lors de l'ouverture du fichier %1.message box contentEin Fehler ist beim Öffnen der Datei %1 aufgetreten.
-
+ Active le projet « %1 »Aktiviert das Projekt "%1"
-
+ OutilsWerkzeuge
-
+ Couleur de fond blanc/grisTool tip of white/grey background buttonHintergrundfarbe weiß/grau
-
+ Affiche la couleur de fond du folio en blanc ou en grisStatus tip of white/grey background buttonSchalte die Hintergrundfarbe der Folien in weiß oder grau um
-
+ Exporte le folio courant dans un autre formatstatus bar tipAktuelle Folie in ein anderes Format exportieren
-
+ Imprime un ou plusieurs folios du projet courantstatus bar tipDruckt eine oder mehrere Folien des aktuellen Projekts
-
+ Place les éléments du presse-papier sur le foliostatus bar tipInhalt der Zwischenablage auf Folie einfügen
-
+ Édite les propriétés du folio (dimensions, informations du cartouche, propriétés des conducteurs...)status bar tipBearbeitet die Folieneigenschaften (Maße, Schriftfeld-Daten, Leitereigenschaften...)
-
+ Permet de visualiser le folio sans pouvoir le modifierstatus bar tipWechselt in das Ansichtsmodus, in dem die Folie nicht bearbeitet werden kann
-
+ AffichageAnzeige
-
+ SchémaSchaltplan
-
+ AjouterEinfügen
-
-
+
+ Projet %1 enregistré dans le repertoire: %2.Projekt %1 gespeichert im Pfad: %2.
-
+ Ouvrir un fichierDatei öffnen
-
-
+
+ Impossible d'ouvrir le fichiermessage box titleÖffnen der Datei nicht möglich
-
+ Il semblerait que le fichier %1 que vous essayez d'ouvrir n'existe pas ou plus.Die zu öffnende Datei %1 existiert nicht.
-
+ Il semblerait que le fichier que vous essayez d'ouvrir ne soit pas accessible en lecture. Il est donc impossible de l'ouvrir. Veuillez vérifier les permissions du fichier.Die zu öffnende Datei kann zum Lesen nicht zugegriffen werden. Prüfen Sie die Zugriffsrechte der Datei.
-
+ Ouverture du projet en lecture seulemessage box titleProjekt wird schreibgeschützt geöffnet
-
+ Il semblerait que le projet que vous essayez d'ouvrir ne soit pas accessible en écriture. Il sera donc ouvert en lecture seule.Es sind keine Schreibrechte für das zu öffnende Projekt vorhanden. Es wird trotzdem schreibgeschützt geöffnet.
-
-
+
+ Échec de l'ouverture du projetmessage box titleÖffnen des Projekts gescheitert
-
+ Il semblerait que le fichier %1 ne soit pas un fichier projet QElectroTech. Il ne peut donc être ouvert.message box contentDie Datei %1 ist vermutlich keine QElectroTech-Projektdatei. Sie kann nicht geöffnet werden.
-
+ Éditer l'élementedit elementBauteil bearbeiten
-
+ Éditer le champ de texteedit text fieldTextfeld bearbeiten
-
+ Éditer l'imageedit imageBild bearbeiten
-
+ Éditer le conducteuredit conductorLeitereigenschaften bearbeiten
-
+ Éditer l'objet sélectionnéedit selected itemAuswahl bearbeiten
-
+
+ Êtes-vous sûr de vouloir supprimer ce folio ?
+
+
+
+
+ Supprimer les folios
+
+
+
+
+ Êtes-vous sûr de vouloir supprimer les %1 folios sélectionnés ?
+
+
+
+ Erreurmessage box titleFehler
@@ -7184,42 +7210,42 @@ Entfernen Sie die Überbrückung und/oder löschen Sie die Ebenen der betroffene
Informationen über Autoren bearbeiten
-
+ Ajouter une ligneLinie einfügen
-
+ Ajouter un rectangleRechteck einfügen
-
+ Ajouter une ellipseEllipse einfügen
-
+ Ajouter un polygonePolygon einfügen
-
+ Ajouter du texteText einfügen
-
+ Ajouter un arc de cercleBogen einfügen
-
+ Ajouter une borneAnschluss einfügen
-
+ AnnulerRückgängig
@@ -7235,29 +7261,29 @@ Entfernen Sie die Überbrückung und/oder löschen Sie die Ebenen der betroffene
Zu viele Einzelteile, Liste nicht generiert: %1
-
+ RefaireWiederholen
-
+ AvertissementWarnung
-
+ L'import d'un dxf volumineux peut prendre du temps
veuillez patienter durant l'import...Das Importieren einer großen DXF-Datei kann einige Zeit in Anspruch nehmen.
-
+ Partiestoolbar titleTeile
-
+ Profondeurtoolbar titleTiefe
@@ -7273,7 +7299,7 @@ veuillez patienter durant l'import...
Bauteileigenschaften bearbeiten
-
+ Double-click pour terminer la forme, Click droit pour annuler le dernier pointDoppelclick, um die Form zu beenden / Rechtsclick, um den letzten Punkt zu entfernen
@@ -7310,12 +7336,12 @@ veuillez patienter durant l'import...
[schreibgeschützt]
-
+ Aucune modificationKeine Änderung
-
+ Éditeur d'élémentsstatus bar messageBauteileditor
@@ -7330,50 +7356,50 @@ veuillez patienter durant l'import...
-
+ Absence de bornewarning titleAnschluss nicht vorhanden
-
+ Absence de borneAnschluss nicht vorhanden
-
+ <br>En l'absence de borne, l'élément ne pourra être relié à d'autres éléments par l'intermédiaire de conducteurs.warning description<br>Ohne Anschlüsse kann das Bauteil nicht mit anderen Bauteilen mittels Leiter verbunden werden.
-
+ Ajouter un champ texte dynamiqueDynamisches Textfeld einfügen
-
+ Ajouter un texte d'élément non éditable dans les schémasFügt einen Bauteiltext ein, der im Schaltplaneditor NICHT bearbeitet werden kann
-
+ Ajouter un texte d'élément pouvant être édité dans les schémasFügt einen Bauteiltext ein, der im Schaltplaneditor bearbeitet werden kann
-
+ <br><b>Erreur</b> :<br>Les reports de folio doivent posséder une seul borne.<br><b>Solution</b> :<br>Verifier que l'élément ne possède qu'une seul borne<br><b>Fehler</b>: <br>Folienverweise dürfen nur einen Anschluss haben.<br><b>Lösung</b>: <br>Prüfen, dass das Bauteil nur einen Anschluss hat
-
+ La vérification de cet élément a générémessage box contentDie Überprüfung dieses Bauteils generierte
-
+ %n erreur(s)errors
@@ -7382,23 +7408,23 @@ veuillez patienter durant l'import...
-
+ et und
-
+ <b>%1</b> : %2warning title: warning description<b>%1</b>: %2
-
+ ErreursFehler
-
+ AvertissementsWarnungen
@@ -7410,21 +7436,21 @@ veuillez patienter durant l'import...
-
+ Impossible d'ouvrir le fichier %1.message box contentÖffnen der Datei %1 nicht möglich.
-
+ Ce fichier n'est pas un document XML validemessage box contentDiese Datei ist kein gültiges XML-Dokument
-
+ Erreurtoolbar titleFehler
@@ -7462,8 +7488,18 @@ veuillez patienter durant l'import...
message box contentDieses Bauteil kann nicht gespeichert werden
-
+
+
+ Nombre de bornes incorrect
+
+
+
+ <br><b>Erreur</b> :<br>Les définitions de conducteur ne peuvent posséder qu'une seule borne.<br><b>Solution</b> :<br>Vérifier que l'élément ne possède qu'une seule borne
+
+
+
+ %n avertissement(s)warnings
@@ -7472,73 +7508,73 @@ veuillez patienter durant l'import...
-
+ Impossible d'ouvrir le fichiermessage box titleÖffnen der Datei nicht möglich
-
+ Il semblerait que le fichier %1 que vous essayez d'ouvrir n'existe pas ou plus.Die zu öffnende Datei %1 existiert nicht.
-
+ Recharger l'élémentdialog titleBauteil neu laden
-
+ Vous avez efffectué des modifications sur cet élément. Si vous le rechargez, ces modifications seront perdues. Voulez-vous vraiment recharger l'élément ?dialog contentDas Bauteil wurde verändert. Beim neu Laden gehen die Änderungen verloren. Möchten Sie wirklich das Bauteil neu laden?
-
+ Importer un élément à redimensionnerImportiere Element zum Skalieren
-
+ Éléments QElectroTech (*.elmt)QElectroTech-Bauteil (*.elmt)
-
-
-
+
+
+ Echec de l'enregistrementSpeichervorgang gescheitert
-
-
-
+
+
+ L'enregistrement à échoué,
les conditions requises ne sont pas validesSpeichervorgang gescheitert\nDie erforderlichen Bedingungen wurden nicht erfüllt
-
+ Enregistrer sousdialog titleSpeichern unter
-
+ Éléments QElectroTech (*.elmt)filetypes allowed when saving an element fileQElectroTech-Bauteil (*.elmt)
-
+ Enregistrer l'élément en cours ?dialog titleAktuelles Bauteil speichern?
-
+ Voulez-vous enregistrer l'élément %1 ?dialog content - %1 is an element nameBauteil %1 speichern?
@@ -7558,22 +7594,22 @@ les conditions requises ne sont pas valides
-
-
+
+ Élément inexistant.message box titleBauteil nicht vorhanden.
-
+ L'élément n'existe pas.message box contentBauteil existiert nicht.
-
+ Le chemin virtuel choisi ne correspond pas à un élément.message box contentDer gewählte virtuelle Pfad passt nicht zu einem Bauteil.
@@ -8097,7 +8133,7 @@ Was möchten Sie tun?
QObject
-
+ Avertissement : l'élément a été enregistré avec une version ultérieure de QElectroTech.Warnung: das Bauteil wurde mit einer neueren Version von QElectroTech gespeichert.
@@ -9339,22 +9375,22 @@ Möchten Sie sie ersetzen?
Leiter erstellen
-
+ To install the plugin qet_tb_generator<br>Visit :<br><a href='https://pypi.python.org/pypi/qet-tb-generator'>qet-tb-generator</a><br>Requires python 3.5 or above.<br><B><U> First install on Windows</B></U><br>1. Install, if required, python 3.5 or above<br> Visit :<br><a href='https://www.python.org/downloads/'>python.org</a><br>2. pip install qet_tb_generator<br><B><U> Update on Windows</B></U><br>python -m pip install --upgrade qet_tb_generator<br>>>user could launch in a terminal this script in this directory<br> C:\users\XXXX\AppData\Local\Programs\Python\Python36-32\Scripts <br>Installation des Plugins qet_tb_generator:<br>Besuche <br><a href='https://pypi.python.org/pypi/qet-tb-generator'>qet-tb-generator</a><br>Erfordert Python 3.5 oder höher.<br><B><U> Erstinstallation unter Windows</B></U><br>1. Falls erforderlich, installiere Python 3.5 oder höher<br> Besuche :<br><a href='https://www.python.org/downloads/'>python.org</a><br>2. pip install qet_tb_generator<br><B><U> Aktualisierung unter Windows</B></U><br>python -m pip install --upgrade qet_tb_generator<br>>>Der Benutzer kann in einem Terminal dieses Skript in folgendem Verzeichnis ausführen:<br> C:\users\XXXX\AppData\Local\Programs\Python\Python36-32\Scripts <br>
-
+ To install the plugin qet_tb_generator<br>Visit :<br><a href='https://pypi.python.org/pypi/qet-tb-generator'>qet-tb-generator</a><br><B><U> First install on macOSX</B></U><br>1. Install, if required, python 3.11 bundle only, <a href='https://www.python.org/ftp/python/3.11.2/python-3.11.2-macos11.pkg'>python-3.11.2-macos11.pkg</a><br>2 Run Profile.command script<br>because program use hardcoded PATH for localise qet-tb-generator plugin <br> Visit :<br><a href='https://qelectrotech.org/forum/viewtopic.php?pid=5674#p5674'>howto</a><br>2. pip3 install qet_tb_generator<br><B><U> Update on macOSX</B></U><br> pip3 install --upgrade qet_tb_generator<br>Installation des Plugins qet_tb_generator:<br>Besuche <br><a href='https://pypi.python.org/pypi/qet-tb-generator'>qet-tb-generator</a><br><B><U> Erstinstallation unter macOSX</B></U><br>1. Falls erforderlich, installiere das Python 3.11-Bundle: <a href='https://www.python.org/ftp/python/3.11.2/python-3.11.2-macos11.pkg'>python-3.11.2-macos11.pkg</a><br>2. Führe das Skript Profile.command aus<br>da das Programm einen festgelegten PATH zur Lokalisierung des Plugins qet-tb-generator verwendet.<br>Besuche :<br><a href='https://qelectrotech.org/forum/viewtopic.php?pid=5674#p5674'>Anleitung</a><br>3. pip3 install qet_tb_generator<br><B><U> Aktualisierung unter macOS</B></U><br> pip3 install --upgrade qet_tb_generator<br>
-
+ To install the plugin qet_tb_generator<br>Visit :<br><a href='https://pypi.python.org/pypi/qet-tb-generator'>qet-tb-generator</a><br><br>Requires python 3.5 or above.<br><br><B><U> First install on Linux</B></U><br>1. check you have pip3 installed: pip3 --version<br>If not install with: sudo apt-get install python3-pip<br>2. Install the program: sudo pip3 install qet_tb_generator<br>3. Run the program: qet_tb_generator<br><br><B><U> Update on Linux</B></U><br>sudo pip3 install --upgrade qet_tb_generator<br>Installation des Plugins qet_tb_generator:<br>Besuche <br><a href='https://pypi.python.org/pypi/qet-tb-generator'>qet-tb-generator</a><br><br>Erfordert Python 3.5 oder höher.<br><br><B><U> Erstinstallation unter Linux</B></U><br>1. Überprüfe, ob pip3 installiert ist: pip3 --version<br>Falls nicht, installiere es mit: sudo apt-get install python3-pip<br>2. Installiere das Programm: sudo pip3 install qet_tb_generator<br>3. Starte das Programm: qet_tb_generator<br><br><B><U> Aktualisierung unter Linux</B></U><br>sudo pip3 install --upgrade qet_tb_generator<br>
-
+ Error launching qet_tb_generator pluginFehler beim Ausführen vom Plugin qet_tb_generator
@@ -9506,51 +9542,51 @@ Möchten Sie sie ersetzen?
Klemme entfernen
-
-
+
+ Génériquegeneric terminal element typeGenerisch
-
+ Fusiblefuse terminal element typeSicherungsklemme
-
+ Sectionablesectional terminal element typeTrennklemme
-
+ Diodediode terminal element typeDiode
-
+ Terreground terminal element typeErde
-
-
+
+ Génériquegeneric terminal element functionGenerisch
-
+ Phasephase terminal element functionAussenleiter
-
+ Neutreneutral terminal element functionNeutralleiter
@@ -9581,7 +9617,7 @@ Möchten Sie sie ersetzen?
Element öffnen
-
+ Importer un fichier dxfDXF-Datei importieren
@@ -14297,92 +14333,92 @@ Maximale Länge: %2px
WiringListExport
-
-
+
+ ErreurFehler
-
+ Impossible de lire la structure en mémoire du projet.Die Speicherstruktur des Projekts kann nicht gelesen werden.
-
+ Exporter le plan de câblageVerdrahtungsplan erstellen
-
+ Fichiers CSV (*.csv)CSV-Dateien (*.csv)
-
+ Impossible d'ouvrir le fichier pour l'écriture.Die Datei kann nicht zum Schreiben geöffnet werden.
-
+ PageWiring list CSV headerSeite
-
+ Composant 1Wiring list CSV headerBauteil 1
-
+ Borne 1Wiring list CSV headerAnschluss 1
-
+ Composant 2Wiring list CSV headerBauteil 2
-
+ Borne 2Wiring list CSV headerAnschluss 2
-
+ Tension / ProtocoleWiring list CSV headerSpannung / Protokoll
-
+ Couleur du filWiring list CSV headerLeiterfarbe
-
+ Section du filWiring list CSV headerLeiterquerschnitt
-
+ FonctionWiring list CSV headerFunktion
-
+ Export réussiExport erfolgreich
-
+ Le plan de câblage a été exporté avec succès !Der Verdrahtungsplan wurde erfolgreich exportiert!
diff --git a/sources/editor/ui/dynamictextfieldeditor.cpp b/sources/editor/ui/dynamictextfieldeditor.cpp
index e432dd1f1..84f4db772 100644
--- a/sources/editor/ui/dynamictextfieldeditor.cpp
+++ b/sources/editor/ui/dynamictextfieldeditor.cpp
@@ -220,7 +220,7 @@ void DynamicTextFieldEditor::fillInfoComboBox()
QStringList strl;
auto type = elementEditor()->elementScene()->elementData().m_type;
- if(type & ElementData::AllReport) {
+ if((type & ElementData::AllReport) || (type == ElementData::ConductorDefinition)) {
strl = QETInformation::folioReportInfoKeys();
}
else {
@@ -365,7 +365,8 @@ void DynamicTextFieldEditor::on_m_text_from_cb_activated(int index) {
void DynamicTextFieldEditor::on_m_composite_text_pb_clicked()
{
bool isReport = false;
- if (elementEditor()->elementScene()->elementData().m_type & ElementData::AllReport) {
+ auto type = elementEditor()->elementScene()->elementData().m_type;
+ if ((type & ElementData::AllReport) || (type == ElementData::ConductorDefinition)) {
isReport = true;
}
diff --git a/sources/editor/ui/elementpropertieseditorwidget.cpp b/sources/editor/ui/elementpropertieseditorwidget.cpp
index 54bb447ba..397eadb64 100644
--- a/sources/editor/ui/elementpropertieseditorwidget.cpp
+++ b/sources/editor/ui/elementpropertieseditorwidget.cpp
@@ -133,6 +133,7 @@ void ElementPropertiesEditorWidget::setUpInterface()
ui->m_base_type_cb->addItem (tr("Renvoi de folio précédent"), ElementData::PreviousReport);
ui->m_base_type_cb->addItem (tr("Bornier"), ElementData::Terminal);
ui->m_base_type_cb->addItem (tr("Vignette"), ElementData::Thumbnail);
+ ui->m_base_type_cb->addItem (tr("Définition de conducteur"), ElementData::ConductorDefinition);
// Slave option
ui->m_state_cb->addItem(tr("Normalement ouvert"), ElementData::NO);
@@ -188,6 +189,9 @@ void ElementPropertiesEditorWidget::updateTree()
case ElementData::PreviousReport:
ui->m_tree->setDisabled(true);
break;
+ case ElementData::ConductorDefinition:
+ ui->m_tree->setDisabled(true);
+ break;
case ElementData::Master:
ui->m_tree->setEnabled(true);
break;
diff --git a/sources/editor/ui/qetelementeditor.cpp b/sources/editor/ui/qetelementeditor.cpp
index b8681b19b..45530dc98 100644
--- a/sources/editor/ui/qetelementeditor.cpp
+++ b/sources/editor/ui/qetelementeditor.cpp
@@ -736,40 +736,62 @@ bool QETElementEditor::checkElement()
QList warnings;
QList errors;
- // Warning #1: Element haven't got terminal
- // (except for report, because report must have one terminal and this checking is do below)
+ // Warning #1: Element haven't got terminal
+ // (except for report and conductor definition, because they must have one terminal and this checking is done below)
if (!m_elmt_scene -> containsTerminals() &&
- !(m_elmt_scene->elementData().m_type & ElementData::AllReport)) {
+ !(m_elmt_scene->elementData().m_type & ElementData::AllReport) &&
+ m_elmt_scene->elementData().m_type != ElementData::ConductorDefinition) {
warnings << qMakePair(
- tr("Absence de borne", "warning title"),
- tr(
- " En l'absence de borne, l'élément ne pourra être"
- " relié à d'autres éléments par l'intermédiaire de conducteurs.",
- "warning description"
- )
- );
- }
+ tr("Absence de borne", "warning title"),
+ tr(
+ " En l'absence de borne, l'élément ne pourra être"
+ " relié à d'autres éléments par l'intermédiaire de conducteurs.",
+ "warning description"
+ )
+ );
+ }
// Check folio report element
- if (m_elmt_scene->elementData().m_type & ElementData::AllReport)
- {
- int terminal =0;
+ if (m_elmt_scene->elementData().m_type & ElementData::AllReport)
+ {
+ int terminal =0;
- for(auto qgi : m_elmt_scene -> items()) {
- if (qgraphicsitem_cast(qgi)) {
- terminal ++;
+ for(auto qgi : m_elmt_scene -> items()) {
+ if (qgraphicsitem_cast(qgi)) {
+ terminal ++;
+ }
+ }
+
+ //Error folio report must have only one terminal
+ if (terminal != 1) {
+ errors << qMakePair (tr("Absence de borne"),
+ tr(" Erreur :"
+ " Les reports de folio doivent posséder une seul borne."
+ " Solution :"
+ " Verifier que l'élément ne possède qu'une seul borne"));
}
}
- //Error folio report must have only one terminal
- if (terminal != 1) {
- errors << qMakePair (tr("Absence de borne"),
- tr(" Erreur :"
- " Les reports de folio doivent posséder une seul borne."
- " Solution :"
- " Verifier que l'élément ne possède qu'une seul borne"));
+ // Check conductor definition element
+ if (m_elmt_scene->elementData().m_type == ElementData::ConductorDefinition)
+ {
+ int terminal =0;
+
+ for(auto qgi : m_elmt_scene -> items()) {
+ if (qgraphicsitem_cast(qgi)) {
+ terminal ++;
+ }
+ }
+
+ // Error: Conductor definition must have exactly one terminal
+ if (terminal != 1) {
+ errors << qMakePair (tr("Nombre de bornes incorrect"),
+ tr(" Erreur :"
+ " Les définitions de conducteur ne peuvent posséder qu'une seule borne."
+ " Solution :"
+ " Vérifier que l'élément ne possède qu'une seule borne"));
+ }
}
- }
if (!errors.count() && !warnings.count()) {
return(true);
diff --git a/sources/properties/elementdata.cpp b/sources/properties/elementdata.cpp
index 6620afc65..7930ff1cc 100644
--- a/sources/properties/elementdata.cpp
+++ b/sources/properties/elementdata.cpp
@@ -45,14 +45,26 @@ QDomElement ElementData::toXml(QDomDocument &xml_element) const {
bool ElementData::fromXml(const QDomElement &xml_element)
{
if(xml_element.tagName() != QLatin1String("definition") ||
- xml_element.attribute(QStringLiteral("type")) != QLatin1String("element")) {
+ xml_element.attribute(QStringLiteral("type")) != QLatin1String("element")) {
return false;
- }
+ }
+
+ // --- HIER STARTET UNSER DEBUG-BLOCK ---
+ // Wir holen den String aus der XML und speichern ihn kurz zwischen
+ QString raw_type_string = xml_element.attribute(QStringLiteral("link_type"), QStringLiteral("simple"));
+
+ qDebug() << "\n=== NEUES BAUTEIL WIRD GELADEN ===";
+ qDebug() << "[XML Parser] Roher 'link_type' String aus der .elmt Datei:" << raw_type_string;
+
+ // Jetzt übergeben wir ihn an deine Übersetzungs-Funktion
+ m_type = typeFromString(raw_type_string);
+
+ qDebug() << "[XML Parser] Übersetzter ElementData-Typ:" << typeToString(m_type);
+ // --- HIER ENDET UNSER DEBUG-BLOCK ---
- m_type = typeFromString(xml_element.attribute(QStringLiteral("link_type"), QStringLiteral("simple")));
kindInfoFromXml(xml_element);
m_informations.fromXml(xml_element.firstChildElement(QStringLiteral("elementInformations")),
- QStringLiteral("elementInformation"));
+ QStringLiteral("elementInformation"));
m_names_list.fromXml(xml_element);
auto xml_draw_info = xml_element.firstChildElement(QStringLiteral("informations"));
@@ -323,6 +335,8 @@ QString ElementData::typeToString(ElementData::Type type)
return QStringLiteral("terminal");
case ElementData::Thumbnail:
return QStringLiteral("thumbnail");
+ case ElementData::ConductorDefinition:
+ return QStringLiteral("conductor_definition");
default:
qDebug() << "ElementData::typeToString : type don't exist"
<< "return failsafe value 'simple'";
@@ -346,6 +360,8 @@ ElementData::Type ElementData::typeFromString(const QString &string)
return ElementData::Terminal;
} else if (string == QLatin1String("thumbnail")) {
return ElementData::Thumbnail;
+ } else if (string == QLatin1String("conductor_definition")) {
+ return ElementData::ConductorDefinition;
}
//Return simple if nothing match
diff --git a/sources/properties/elementdata.h b/sources/properties/elementdata.h
index 9596970b8..565253874 100644
--- a/sources/properties/elementdata.h
+++ b/sources/properties/elementdata.h
@@ -41,7 +41,8 @@ class ElementData : public PropertiesInterface
Master = 8,
Slave = 16,
Terminal = 32,
- Thumbnail = 64};
+ Thumbnail = 64,
+ ConductorDefinition = 128};
Q_ENUM(Type)
Q_DECLARE_FLAGS(Types, Type)
diff --git a/sources/qetgraphicsitem/dynamicelementtextitem.cpp b/sources/qetgraphicsitem/dynamicelementtextitem.cpp
index 7efff4811..4c23cb2a4 100644
--- a/sources/qetgraphicsitem/dynamicelementtextitem.cpp
+++ b/sources/qetgraphicsitem/dynamicelementtextitem.cpp
@@ -302,7 +302,8 @@ void DynamicElementTextItem::refreshLabelConnection()
if ((m_text_from == ElementInfo && m_info_name == "label") ||
(m_text_from == CompositeText && m_composite_text.contains("%{label}")))
{
- if(m_parent_element.data()->linkType() & Element::AllReport)
+ if((m_parent_element.data()->linkType() & Element::AllReport) ||
+ m_parent_element.data()->linkType() == Element::ConductorDefinition)
{
updateReportFormulaConnection();
updateReportText();
@@ -418,7 +419,8 @@ void DynamicElementTextItem::setInfoName(const QString &info_name)
updateXref();
}
- if (m_parent_element && (m_parent_element.data()->linkType() & Element::AllReport)) //special treatment for report
+ if (m_parent_element && ((m_parent_element.data()->linkType() & Element::AllReport) ||
+ m_parent_element.data()->linkType() == Element::ConductorDefinition)) //special treatment for report
{
if(old_info_name != info_name)
{
@@ -472,7 +474,8 @@ void DynamicElementTextItem::setCompositeText(const QString &text)
updateXref();
}
- if (m_parent_element && (m_parent_element.data()->linkType() & Element::AllReport)) //special treatment for report
+ if (m_parent_element && ((m_parent_element.data()->linkType() & Element::AllReport) ||
+ m_parent_element.data()->linkType() == Element::ConductorDefinition)) //special treatment for report
{
/*
* May be in some case the old and new composite text both have the var %{label},
@@ -726,28 +729,29 @@ QVariant DynamicElementTextItem::itemChange(QGraphicsItem::GraphicsItemChange ch
if(!m_parent_element.data()->linkedElements().isEmpty())
masterChanged();
}
- else if(m_parent_element.data()->linkType() & Element::AllReport)
+ else if((m_parent_element.data()->linkType() & Element::AllReport) ||
+ m_parent_element.data()->linkType() == Element::ConductorDefinition)
{
- //Get the report formula, and add connection to keep up to date the formula.
+ //Get the report formula, and add connection to keep up to date the formula.
if (m_parent_element.data()->diagram() && m_parent_element.data()->diagram()->project())
{
m_report_formula = m_parent_element.data()->diagram()->project()->defaultReportProperties();
m_report_formula_con = connect(m_parent_element.data()->diagram()->project(), &QETProject::reportPropertiesChanged, this, &DynamicElementTextItem::reportFormulaChanged);
}
-
- //Add connection to keep up to date the status of the element linked to the parent folio report of this text.
+
+ //Add connection to keep up to date the status of the element linked to the parent folio report of this text.
connect(m_parent_element.data(), &Element::linkedElementChanged, this, &DynamicElementTextItem::reportChanged);
- //The parent is already linked, we call reportChanged for init the connection
+ //The parent is already linked, we call reportChanged for init the connection
if(!m_parent_element.data()->linkedElements().isEmpty())
reportChanged();
-
+
if(m_parent_element.data()->terminals().size())
{
- //Add connection to keep up date the conductors added or removed to the parent folio report element
+ //Add connection to keep up date the conductors added or removed to the parent folio report element
connect(m_parent_element.data()->terminals().first(), &Terminal::conductorWasAdded, this, &DynamicElementTextItem::conductorWasAdded);
connect(m_parent_element.data()->terminals().first(), &Terminal::conductorWasRemoved, this, &DynamicElementTextItem::conductorWasRemoved);
}
- //Get a conductor in the potential
+ //Get a conductor in the potential
setPotentialConductor();
}
else if(m_parent_element.data()->linkType() == Element::Master)
@@ -1027,7 +1031,8 @@ void DynamicElementTextItem::clearFormulaConnection()
void DynamicElementTextItem::updateReportFormulaConnection()
{
- if(!(m_parent_element.data()->linkType() & Element::AllReport))
+ if(!(m_parent_element.data()->linkType() & Element::AllReport) &&
+ m_parent_element.data()->linkType() != Element::ConductorDefinition)
return;
removeConnectionForReportFormula(m_report_formula);
@@ -1041,7 +1046,8 @@ void DynamicElementTextItem::updateReportFormulaConnection()
*/
void DynamicElementTextItem::updateReportText()
{
- if(!(m_parent_element.data()->linkType() & Element::AllReport))
+ if(!(m_parent_element.data()->linkType() & Element::AllReport) &&
+ m_parent_element.data()->linkType() != Element::ConductorDefinition)
return;
if (m_text_from == ElementInfo && m_info_name == "label")
@@ -1123,7 +1129,8 @@ void DynamicElementTextItem::conductorWasRemoved(Conductor *conductor)
*/
void DynamicElementTextItem::setPotentialConductor()
{
- if(parentElement() && (parentElement()->linkType() & Element::AllReport))
+ if(parentElement() && ((parentElement()->linkType() & Element::AllReport) || (parentElement()->linkType() == Element::ConductorDefinition) ||
+ parentElement()->linkType() == Element::ConductorDefinition))
{
if(parentElement()->terminals().isEmpty())
return;
@@ -1156,6 +1163,7 @@ void DynamicElementTextItem::setPotentialConductor()
connect(m_watched_conductor.data(), &Conductor::propertiesChange, this, &DynamicElementTextItem::conductorPropertiesChanged);
}
}
+ conductorPropertiesChanged();
}
else //This text haven't got a parent element, then ther isn't a conductor in the potential
{
@@ -1172,7 +1180,8 @@ void DynamicElementTextItem::setPotentialConductor()
*/
void DynamicElementTextItem::conductorPropertiesChanged()
{
- if(m_parent_element && (m_parent_element.data()->linkType() & Element::AllReport))
+ if(m_parent_element && ((m_parent_element.data()->linkType() & Element::AllReport) || (m_parent_element.data()->linkType() == Element::ConductorDefinition) ||
+ m_parent_element.data()->linkType() == Element::ConductorDefinition))
{
if(m_text_from == ElementInfo)
{
@@ -1200,8 +1209,9 @@ void DynamicElementTextItem::conductorPropertiesChanged()
QString DynamicElementTextItem::reportReplacedCompositeText() const
{
QString string;
-
- if(m_parent_element.data()->linkType() & Element::AllReport)
+
+ if((m_parent_element.data()->linkType() & Element::AllReport) || (m_parent_element.data()->linkType() == Element::ConductorDefinition) ||
+ m_parent_element.data()->linkType() == Element::ConductorDefinition)
{
string = m_composite_text;
diff --git a/sources/qetgraphicsitem/element.cpp b/sources/qetgraphicsitem/element.cpp
index 4204aed1b..408e89e4d 100644
--- a/sources/qetgraphicsitem/element.cpp
+++ b/sources/qetgraphicsitem/element.cpp
@@ -36,6 +36,7 @@
#include "../qetxml.h"
#include "../qetversion.h"
#include "qgraphicsitemutility.h"
+#include
#include
#include
@@ -431,6 +432,11 @@ bool Element::buildFromXml(const QDomElement &xml_def_elmt, int *state)
m_data.fromXml(xml_def_elmt);
setToolTip(name());
+ QString my_type_str = xml_def_elmt.attribute(QStringLiteral("link_type"), QStringLiteral("simple"));
+ if (my_type_str == QLatin1String("conductor_definition")) {
+ m_link_type = Element::ConductorDefinition;
+ }
+
//load kind informations
m_kind_informations.fromXml(
xml_def_elmt.firstChildElement(QStringLiteral("kindInformations")),
@@ -627,6 +633,9 @@ Terminal *Element::parseTerminal(const QDomElement &dom_element)
Terminal *new_terminal = new Terminal(data, this);
m_terminals << new_terminal;
+ connect(new_terminal, &Terminal::conductorWasAdded, this, &Element::updateConductorTexts);
+ connect(new_terminal, &Terminal::conductorWasRemoved, this, &Element::updateConductorTexts);
+
//Sort from top to bottom and left to right
std::sort(m_terminals.begin(),
m_terminals.end(),
@@ -1288,6 +1297,8 @@ QString Element::linkTypeToString() const
return QStringLiteral("Terminale");
case Thumbnail:
return QStringLiteral("Thumbnail");
+ case ConductorDefinition:
+ return QStringLiteral("ConductorDefinition");
default:
return QStringLiteral("Unknown");
}
@@ -1555,3 +1566,25 @@ ElementsLocation Element::location() const
{
return m_location;
}
+
+/**
+ * @brief Element::updateConductorTexts
+ *Slot that is triggered when a cable is *
+ *connected to or disconnected from a terminal on this component.
+ */
+/**
+ * @brief Element::updateConductorTexts
+ */
+void Element::updateConductorTexts()
+{
+ if (m_link_type != Element::ConductorDefinition) {
+ return;
+ }
+
+ for (DynamicElementTextItem *deti : m_dynamic_text_list) {
+ if (deti) {
+ deti->setPotentialConductor();
+ deti->updateLabel();
+ }
+ }
+}
diff --git a/sources/qetgraphicsitem/element.h b/sources/qetgraphicsitem/element.h
index 16e821744..2c3ea5b6a 100644
--- a/sources/qetgraphicsitem/element.h
+++ b/sources/qetgraphicsitem/element.h
@@ -52,14 +52,15 @@ class Element : public QetGraphicsItem
(master, slave, report ect...)
*/
enum kind {
- Simple = 1,
- NextReport = 2,
- PreviousReport = 4,
- AllReport = 6,
- Master = 8,
- Slave = 16,
- Terminale = 32,
- Thumbnail = 64};
+ Simple = 1,
+ NextReport = 2,
+ PreviousReport = 4,
+ AllReport = 6,
+ Master = 8,
+ Slave = 16,
+ Terminale = 32,
+ Thumbnail = 64,
+ ConductorDefinition = 128};
Element(const ElementsLocation &location,
QGraphicsItem * = nullptr,
@@ -95,6 +96,8 @@ class Element : public QetGraphicsItem
DynamicElementTextItem *text,
ElementTextItemGroup *group);
+ public slots:
+ void updateConductorTexts();
public:
QList terminals() const;
diff --git a/sources/ui/elementpropertieswidget.cpp b/sources/ui/elementpropertieswidget.cpp
index 5bb302163..10cc84ea7 100644
--- a/sources/ui/elementpropertieswidget.cpp
+++ b/sources/ui/elementpropertieswidget.cpp
@@ -308,6 +308,9 @@ void ElementPropertiesWidget::updateUi()
case Element::Terminale:
m_list_editor << new ElementInfoWidget(m_element, this);
break;
+ case Element::ConductorDefinition:
+ break;
+
default:
break;
}