From 4e0c075575a56501b399b429ba1ab47d632a70ff Mon Sep 17 00:00:00 2001 From: Kellermorph Date: Tue, 16 Jun 2026 17:41:03 +0200 Subject: [PATCH] Fix grid and guide startup behavior and update german translation --- cmake/qet_compilation_vars.cmake | 2 + ico/22x22/guides.png | Bin 0 -> 204 bytes lang/qet_de.qm | Bin 326112 -> 328723 bytes lang/qet_de.ts | 5295 ++++++++++++++++- qelectrotech.qrc | 1 + .../searchandreplaceworker.cpp | 2 +- .../GraphicsItem/terminalstripitem.cpp | 2 +- .../ui/addterminalstripitemdialog.cpp | 2 +- sources/autoNum/assignvariables.cpp | 2 +- sources/conductorautonumerotation.cpp | 2 +- sources/conductornumexport.cpp | 2 +- sources/diagram.cpp | 88 +- sources/diagram.h | 34 +- .../diagramevent/diagrameventaddelement.cpp | 2 +- sources/diagramview.cpp | 2 +- sources/elementsmover.cpp | 2 +- sources/factory/qetgraphicstablefactory.cpp | 2 +- sources/qetdiagrameditor.cpp | 17 +- sources/qetdiagrameditor.h | 1 + .../ViewItem/qetgraphicstableitem.cpp | 2 +- sources/qetgraphicsitem/conductor.cpp | 2 +- sources/qetgraphicsitem/crossrefitem.cpp | 2 +- .../dynamicelementtextitem.cpp | 2 +- sources/qetgraphicsitem/element.cpp | 2 +- .../qetgraphicsitem/elementtextitemgroup.cpp | 2 +- sources/qetgraphicsitem/masterelement.cpp | 2 +- sources/qetgraphicsitem/terminal.cpp | 2 +- sources/qetproject.cpp | 65 +- sources/qetproject.h | 24 +- sources/ui/configpage/configpages.cpp | 58 +- sources/ui/configpage/configpages.h | 2 + .../configpage/generalconfigurationpage.cpp | 6 +- .../ui/configpage/generalconfigurationpage.ui | 118 +- .../ui/configpage/guidespropertieswidget.cpp | 112 + .../ui/configpage/guidespropertieswidget.h | 32 + sources/ui/linksingleelementwidget.cpp | 2 +- sources/ui/masterpropertieswidget.cpp | 2 +- sources/ui/multipastedialog.cpp | 2 +- .../changeelementinformationcommand.cpp | 2 +- 39 files changed, 5479 insertions(+), 420 deletions(-) create mode 100644 ico/22x22/guides.png create mode 100644 sources/ui/configpage/guidespropertieswidget.cpp create mode 100644 sources/ui/configpage/guidespropertieswidget.h diff --git a/cmake/qet_compilation_vars.cmake b/cmake/qet_compilation_vars.cmake index 7e150a6e7..a93906e20 100644 --- a/cmake/qet_compilation_vars.cmake +++ b/cmake/qet_compilation_vars.cmake @@ -685,6 +685,8 @@ set(QET_SRC_FILES ${QET_DIR}/sources/ui/configpage/generalconfigurationpage.h ${QET_DIR}/sources/ui/configpage/projectconfigpages.cpp ${QET_DIR}/sources/ui/configpage/projectconfigpages.h + ${QET_DIR}/sources/ui/configpage/guidespropertieswidget.cpp + ${QET_DIR}/sources/ui/configpage/guidespropertieswidget.h ${QET_DIR}/sources/undocommand/addelementtextcommand.cpp ${QET_DIR}/sources/undocommand/addelementtextcommand.h diff --git a/ico/22x22/guides.png b/ico/22x22/guides.png new file mode 100644 index 0000000000000000000000000000000000000000..d6d8a1e69887d6dc08cc68c99229a8618db9318a GIT binary patch literal 204 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 FJ^)286vhAm delta 20835 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 diff --git a/lang/qet_de.ts b/lang/qet_de.ts index 585d8178e..eed74a8d0 100644 --- a/lang/qet_de.ts +++ b/lang/qet_de.ts @@ -5,51 +5,61 @@ AboutQETDialog + À propos de QElectrotech Über QElectroTech + À propos Über + Auteurs Autoren + Traducteurs Übersetzer + Contributeurs Mitwirkende + Version Version + Projet annexe Nebenprojekte + Bibliothèques Bibliotheken + Licenses Lizenzen + log Log @@ -329,18 +339,21 @@ AddLinkDialog + Insert Link Link einfügen + Title: Titel: + URL: URL: @@ -350,83 +363,105 @@ AddTableDialog + Ajouter un tableau Tabelle einfügen + Affichage Anzeige + Ajuster la taille du tableau au folio Tabellegröße an Folie anpassen + Ajouter de nouveau folio et tableau si nécessaire. Folie und Tabelle hinzufügen, wenn erforderlich. + Nom du tableau Name der Tabelle + Texte des en-têtes Tabellenkopf + + Gauche Linksbündig + + Centre Zentriert + + Droite Rechtsbündig + + Police : Schriftart: + + Éditer Bearbeiten + + Marges : Ränder: + + Alignement : Ausrichtung: + Texte du tableau Tabelleninhalt + Configuration Konfiguration @@ -450,11 +485,13 @@ AddTerminalStripItemDialog + Dialog Dialog + Ajouter le plan de bornes suivant : Folgenden Klemmenplan hinzufügen: @@ -463,6 +500,7 @@ AlignmentTextDialog + Alignement du texte Ausrichtung @@ -506,31 +544,37 @@ AutoNumberingDockWidget + Sélection numérotation auto Auswahl Nummerierungsregeln + Element Bauteil + Conducteur Leiter + Configurer les règles d'auto numérotation Nummerierungsregel konfigurieren + Configurer Konfigurieren + Folio Folie @@ -539,51 +583,61 @@ AutoNumberingManagementW + Form Form + Project Status: Stand des Projekts: + Range Bereich + Apply to Selected Locations Auf ausgewählte Orte anwenden + Apply to Selected Folios Auf ausgewählte Folien anwenden + Apply to Entire Project Auf ganzes Projekt anwenden + From von + To bis + Update Policy Richtlinie zur Aktualisierung + Conductor Leiter @@ -591,6 +645,9 @@ + + + Only New nur Neue @@ -598,6 +655,9 @@ + + + Both Beide @@ -605,27 +665,35 @@ + + + Disable nicht aktualisieren + Element Bauteile + + Only Existent nur Vorhandene + Folio Folie + Existent Vorhandene @@ -671,21 +739,25 @@ Bemerkung: diese Optionen verhindern NICHT das automatische Nummerieren.BOMExportDialog + Dialog Dialog + Mise en page Seitenlayout + inclure les en-têtes Überschriften einschließen + Formater en tant que liste de materiel Layout als Stückliste @@ -739,12 +811,15 @@ Bemerkung: diese Optionen verhindern NICHT das automatische Nummerieren.BorderPropertiesWidget + Form Folieneigenschaften + + px pixel pixel @@ -753,40 +828,135 @@ Bemerkung: diese Optionen verhindern NICHT das automatische Nummerieren. + + x x + Colonnes : Spalten: + + Afficher les en-têtes Kopfzeilen anzeigen + Lignes : Zeilen: + Dimensions du folio Folienmaße + + ColumnResizerTestWidget + + + ColumnResizer Test + + + + + GridLayout + + + + + A line edit: + + + + + Spin me: + + + + + A check box + + + + + FormLayout + + + + + One line: + + + + + A much bigger text area: + + + + + FormLayout2 + + + + + Time: + + + + + Show seconds + + + + + Details: + + + + + Option &1 + + + + + Option &2 + + + + + Crazy QGridLayout + + + + + + + + PushButton + Taste + + CompositeTextEditDialog + Texte composé Zusammengesetzter Text + Ajouter une variable : Variable einfügen: @@ -816,11 +986,13 @@ Bemerkung: diese Optionen verhindern NICHT das automatische Nummerieren.ConductorPropertiesDialog + Éditer les propriétés d'un conducteur Leitereigenschaften bearbeiten + Appliquer les propriétés à l'ensemble des conducteurs de ce potentiel Eigenschaften auf alle Verbindungen dieses Potenzials übertragen @@ -841,227 +1013,277 @@ Bemerkung: diese Optionen verhindern NICHT das automatische Nummerieren.ConductorPropertiesWidget + Form Leitereigenschaften + Taille du texte : Textgröße: + Texte : Text: + Texte Text + Afficher un texte de potentiel par folio. Nur eine Potenzialbeschriftung je Folie anzeigen. + + Unifilaire Einpolig + terre Erde + neutre Neutralleiter + Taille du texte Textgröße + Tension / Protocole : Spannung / Protokoll: + Fonction : Funktion: + Texte visible Sichtbarer Text + Formule du texte : Textformel: + activer l'option un texte par potentiel Option "ein Text je Potenzial" aktivieren + + &Multifilaire &Mehrpolig + Autonumérotation Automatische Nummerierung: + éditer les numérotations Nummerierung bearbeiten + Section du conducteur Leiterquerschnitt: + cable Kabel: + bus Bus: + TextLabel TextLabel + + Nombre de phase Phasenanzahl + Neutre Neutralleiter + Phase Phase + phase Phase + Protective Earth Neutral PEN-Leiter (protective earth neutral) + PEN PEN + Terre Erde + Taille : Größe: + + Style du conducteur Leiterstil + Horizontal en haut Waagerecht oben + Horizontal en bas Waagerecht unten + Vertical à gauche Vertikal links + Couleur du texte: Textfarbe: + Vertical à droite Vertikal rechts + Position et rotation du texte de conducteur : Position und Ausrichtung der Leiterbeschriftung: + Couleur secondaire : Zweite Farbe: + px px + Taille de trait : Linienstärke: + + Couleur du conducteur Leiterfarbe: + Type Typ + Apparence Darstellung + + Couleur : Farbe: + Style : Stil: @@ -1088,11 +1310,13 @@ Bemerkung: diese Optionen verhindern NICHT das automatische Nummerieren.ConfigSaveLoaderWidget + GroupBox Gruppierung + Configuration Einstellungen @@ -1108,7 +1332,7 @@ Bemerkung: diese Optionen verhindern NICHT das automatische Nummerieren. Diagram - + Modifier la profondeur Ebene der Auswahl bearbeiten @@ -1117,22 +1341,26 @@ Bemerkung: diese Optionen verhindern NICHT das automatische Nummerieren.DiagramContextWidget + Form Form + Les noms ne peuvent contenir que des lettres minuscules, des chiffres et des tirets. Namen dürfen ausschließlich Kleinbuchstaben, Zahlen und Minuszeichen enthalten. + Nom Name + Valeur Wert @@ -1141,26 +1369,31 @@ Bemerkung: diese Optionen verhindern NICHT das automatische Nummerieren.DiagramEditorHandlerSizeWidget + Form Form + Poignées : Anfasser: + x 1 x 1 + x 2 x 2 + x 3 x 3 @@ -1284,16 +1517,19 @@ Bemerkung: diese Optionen verhindern NICHT das automatische Nummerieren.DialogWaiting + Merci de patienter Bitte warten + Titre Titel + TextLabel TextLabel @@ -1315,11 +1551,13 @@ Bemerkung: diese Optionen verhindern NICHT das automatische Nummerieren.DynamicElementTextItemEditor + Form Form + Exporter l'actuelle configuration des textes Aktuelle Texteinstellungen exportieren @@ -1329,26 +1567,35 @@ Bemerkung: diese Optionen verhindern NICHT das automatische Nummerieren. + + + + + ... ... + Importer une configuration de texte Texteinstellungen importieren + Ajouter un texte Text einfügen + Ajouter un groupe de textes Textgruppe einfügen + Supprimer la sélection Auswahl löschen @@ -1598,72 +1845,87 @@ Bemerkung: diese Optionen verhindern NICHT das automatische Nummerieren.DynamicTextFieldEditor + Form Form + Source du texte Textquelle + Couleur Farbe + Conserver la rotation visuel Leserichtung beim Drehen beibehalten + Texte utilisateur Benutzertext + Information de l'élément Bauteilinformation + Encadrer le texte Text einrahmen + + Texte composé Zusammengesetzter Text + Police Schriftart + X X + Largeur Breite + Y Y + Alignement Ausrichtung + Rotation Drehung @@ -1908,16 +2170,19 @@ Le nom affiché de l'élément se modifie séparément dans les propriété ElementInfoPartWidget + Form Form + TextLabel TextLabel + Supprimer ce texte Diesen Text löschen @@ -1926,11 +2191,13 @@ Le nom affiché de l'élément se modifie séparément dans les propriété ElementInfoWidget + Form Form + Exclure de la numérotation auto Sperre der automatischen Nummerierung @@ -1954,77 +2221,93 @@ Le nom affiché de l'élément se modifie séparément dans les propriété ElementPropertiesEditorWidget + Propriété de l'élément Bauteileigenschaften + + Type Typ + Type de base : Grundtyp: + Élément esclave Slave-Bauteil + Nombre de contact représenté Anzahl der dargestellten Kontakte + Type de contact Kontakttyp + État du contact Kontaktzustand + Élément maître Master-Bauteil + Type concret Typ + Définir le nombre maximal d'esclaves max. Slave-Anzahl definieren + Élément bornier Klemmblockelement + Fonction Funktion + Informations Informationen + Nom Name + Valeurs Wert @@ -2267,141 +2550,169 @@ Le nom affiché de l'élément se modifie séparément dans les propriété ElementQueryWidget + Informations disponibles Verfügbare Informationen + Informations à exporter Zu exportierende Informationen + Monter la sélection Auswahl nach oben verschieben + Ajouter la sélection Auswahl einfügen + Supprimer la sélection Auswahl löschen + Descendre la sélection Auswahl nach unten verschieben + Pas de filtre Kein Filter + N'est pas vide Ist nicht leer + Est vide Ist leer + Contient Enthält + Ne contient pas Enthält nicht + Est égal à Ist gleich + N'est pas égale à Ungleich + Filtre : Filter: + Type d'éléments Bauteiltypen + Simples Einzelbauteile + Tous Alle + Vignettes (Miniatur-)Ansichten + Contacteurs et relais Schütze und Relais + Boutons et commutateurs Tasten und Schalter + Borniers Klemmleisten + Organes de protection Schutzeinrichtungen + Form Exportieren + Configuration Konfiguration + Ouvrir la configuration sélectionné Ausgewählte Konfiguration öffnen + Sauvegarder la configuration actuelle Aktuelle Konfiguration speichern + Requête SQL personnalisée Benutzerdefinierte SQL-Abfrage + Requête SQL : SQL-Abfrage: @@ -2889,36 +3200,43 @@ Alle Bauteile und Unterordner von diesem Ordner werden ebenso gelöscht.EllipseEditor + Form Eigenschaften der Ellipse + Centre : Mitte: + Y Y + X X + Vertical : Vertikal: + Horizontal : Horizontal: + Diamètres : Durchmesser: @@ -2926,7 +3244,7 @@ Alle Bauteile und Unterordner von diesem Ordner werden ebenso gelöscht. ExportConfigPage - + Export configuration page title Exportieren @@ -3122,46 +3440,55 @@ Alle Bauteile und Unterordner von diesem Ordner werden ebenso gelöscht.FolioAutonumberingW + Form Form + Options de numérotation Nummerierungsoptionen + C&réer de nouveaux folios Neue Folien e&rstellen + Numérotation automatique des folios sélectionnés Ausgewählte Folien automatisch nummerieren + Nouveaux folios Neue Folien + À bis + De von + Sélection: Aktion auswählen: + Numérotation automatique de Folio : Regel für die Foliennummerierung: @@ -3200,20 +3527,59 @@ In diesem Fall wird das Feld "Inkrementierung" ignoriert. + + FontHelpers + + + Sans Serif + @item Font name + Generic sans serif font presented in font choosers. When selected, the system will choose a real font, mandated by distro settings. + + + + + Serif + @item Font name + Generic serif font presented in font choosers. When selected, the system will choose a real font, mandated by distro settings. + + + + + Monospace + @item Font name + Generic monospace font presented in font choosers. When selected, the system will choose a real font, mandated by distro settings. + + + + + %1 + @item Font name + %1% {1?} + + + + %1 [%2] + @item Font name [foundry] + + + FormulaAssistantDialog + Assistant de formule Assistent für Formel + TextLabel TextLabel + Formule Formel @@ -3222,26 +3588,31 @@ In diesem Fall wird das Feld "Inkrementierung" ignoriert. FormulaAutonumberingW + Form Form + Dénomination automatique : Automatische Kennzeichnung: + Formule Formel + Insert Formula Here e.g.: %prefix%l%c Formel hier aufschreiben, z.B.: %prefix%l%c + You can use the following variables to your formula: -%prefix: Default Element Prefix -%l: Element Line @@ -3268,77 +3639,93 @@ Texte und Zahlen sind ebenso erlaubt. FreeTerminalEditor + Form Klemmen-Editor + Déplacer dans : Verschieben nach: + Type : Typ: + Fonction : Funktion: + LED : LED: + Appliquer le déplacement Verschieben anwenden + + Générique Generisch + Fusible mit Sicherung + Sectionnable Trennklemme + Diode Diode + Terre Erde + Phase Aussenleiter + Neutre Neutralleiter + Sans ohne + Avec mit @@ -3380,532 +3767,618 @@ Texte und Zahlen sind ebenso erlaubt. GeneralConfigurationPage + Apparence Darstellung + Utiliser les couleurs du système Farben vom Betriebssystem verwenden - + Chemin de la collection utilisateur Pfad zur Benutzersammlung - + Chemin des cartouches utilisateur Pfad zu den Benutzer-Schriftfeldern - + Chemin de la collection commune Pfad zur QET Sammlung - - + + + + + + + + Par defaut Standard - - + + + + + + + + Parcourir... Auswählen... - + + (Recharger les collections d'éléments pour appliquer les changements) (Bauteilsammlungen neu laden, um die Änderungen zu übernehmen) - + + Projets Projekte + Utiliser les gestes du pavé tactile Gesten vom Touchpad aktivieren - + + Utiliser les numéros de folio à la place de leur position dans le projet Foliennummern anstelle von Seitennummern für Projektanzeigen verwenden - + + Numéroter les colonnes de cartouche à partir de 0 (1 sinon) Choix de l'increment de depart 1 ou 0 Spalten vom Schriftfeld ab 0 nummerieren (sonst ab 1) - + + Désactivé Deaktiviert - + + min minute min - + + Mettre en valeur dans le panel les éléments fraîchement intégrés Neu zum Projekt hinzugefügte Bauteile in der Sammlung hervorheben - + + Chaque élément embarque des informations sur ses auteurs, sa licence, ou tout autre renseignement que vous jugerez utile dans un champ libre. Vous pouvez spécifier ici la valeur par défaut de ce champ pour les éléments que vous créerez : Jedes Bauteil enthält Informationen über den Autor, die Lizenz und weiteren nützlichen Hinweise in einem frei definierbaren Textfeld. Hier unten kann der Standardwert dieses Textfeldes für Ihre eigenen Bauteile definiert werden: - + + Appliqué au prochain lancement de QElectroTech Wirksam nach einem Neustart von QElectroTech + Form Form - + + Sauvegarde automatique des projets (appliqué au prochain lancement de QElectroTech) Automatisches Abspeichern der Projekte (wirksam nach einem Neustart von QElectroTech) - + + Collections Sammlungen - + + Accès aux collections Zugriff auf Sammlungen - + + Répertoire de la collection commune Pfad zur gemeinsamen Bauteilsammlung - + + Répertoire de la collection utilisateur Pfad zur Benutzer-Bauteilsammlung - + + Répertoire des cartouches utilisateur Pfad zu den Benutzer-Schriftfeldern - + + Gestion des éléments Bauteilverwaltung - + + Vous pouvez définir ici l'apparence par defaut des differents textes de QElectroTech Einstellungen für die Standarddarstellung der verschiedenen Texte - + + Grille + Clavier Raster & Tastatur - + + Grille : 1 - 30 Raster: 1 - 30 - + + DiagramEditor xGrid Schaltplaneditor, Schrittweite x - + + DiagramEditor yGrid Schaltplaneditor, Schrittweite y + + Afficher la grille par défaut (appliqué au prochain lancement) + Raster automatisch anzeigen (gilt ab dem nächsten Start) + + + + + Afficher les guides par défaut (appliqué au prochain lancement) + Hilfslinien automatisch anzeigen (gilt ab dem nächsten Start) + + + + Utiliser des fen&êtres (appliqué au prochain lancement de QElectroTech) Projekte in Fenstern anz&eigen (wirksam nach einem Neustart von QElectroTech) - + + Utiliser des onglets (appliqué au prochain lance&ment de QElectroTech) Projekte in Reitern anzeigen (wirksa&m nach einem Neustart von QElectroTech) - + + Méthode de mise à l'echelle des écrans à haute densité de pixels (hdpi) (appliqué au prochain lancement de QElectroTech) : Methode zur Skalierung bei hochauflösenden Bildschirmen (hdpi) (wirksam nach einem Neustart von QElectroTech): - + + Répertoire de la collection company Pfad zur Firmen-Bauteilsammlung - + + Répertoire des cartouches company Pfad zu Firmen-Schriftfeldern - + + Répertoire des Macros utilisateur Pfad zu Benutzer-Vorlagen - + + Langues Sprachen - + + Textes Texte - + + Textes d'éléments Bauteiltexte - - - + + + + + + Police : Schriftart: - - + + + + ° ° - + + Longueur : Länge: - - + + + + Rotation : Drehung: - + + Textes indépendants Unabhängige Textfelder - + + Autres textes Sonstige Texte - + + La Grille doite etre active pour pouvoir voir les modifications. Änderungen sind nur sichtbar, wenn das Raster aktiviert ist. - + + Déplacement au clavier : 1 - 30 Bewegung mittels Tastatur: 1 - 30 - + + DiagramEditor (touche : gauche / droite) xGrid Schaltplaneditor (rechts/links Tasten), Schrittweite x - + + DiagramEditor (touche : haut / bas) yGrid Schaltplaneditor (hoch/runter Tasten), Schrittweite y - + + Déplacement au clavier avec la touche ALT : 1 - 9 Bewegung mittels Tastatur und ALT Taste: 1 - 9 - + + DiagramEditor (touche : gauche / droite ) xGrid Schaltplaneditor (rechts/links Tasten), Schrittweite x - + + DiagramEditor (touche : haut / bas) yGrid Schaltplaneditor (hoch/runter Tasten), Schrittweite y - + + Affichage Grille Anzeige Raster - - + + + + max: - + + Taille des points de la grille de Diagram-Editor : 1 - 5 Punktgröße im Schaltplaneditor: 1 - 5 - - + + + + min: - + + Taille des points de la grille de l'éditeur d'éléments : 1 - 5 Punktgröße im Element-Editor: 1 - 5 - + + Editor Editor - + + Max. parts in Element Editor List Max. Anzahl in der Element Editor Liste - + + Ne pas conserver les labels des éléments lors des copier coller Betriebsmittelkennzeichen von Bauteilen beim Kopieren/Einfügen nicht beibehalten + Autoriser le dézoom au delà du folio Ansicht verkleinern über die Folie hinaus erlauben - + Arrondi supérieur pour 0.5 et plus ab 0,5 aufrunden - + Toujours arrondi supérieur immer aufrunden - + Toujours arrondi inférieur immer abrunden - + Arrondi supérieur pour 0.75 et plus ab 0,75 aufrunden - + Pas d'arrondi nicht runden - + Général configuration page title Allgemein - + Système System - + Arabe Arabisch - + Brézilien Brasilianisch - + Catalan Katalanisch - + Tchèque Tschechisch - + Allemand Deutsch - + Danois Dänisch - + Grec Grieschisch - + Anglais Englisch - + Espagnol Spanisch - + Français Französisch - + Croate Kroatisch - + Italien Italienisch - + Japonais Japanisch - + Coréen Koreanisch - + Polonais Polnisch - + Portugais Portugesisch - + Roumains Rumänisch - + Russe Russisch - + Slovène Slowenisch - + Pays-Bas Niederländisch - + Norvege Norwegisch - + Belgique-Flemish Belgien-Flandern - + Turc Türkisch - + Hongrois Ungarisch - + Mongol Mongolisch - + Ukrainien Ukrainisch - + Chinois Chinesisch - + Suédois Schwedisch - + Chemin de la collection company Pfad zur Firmen-Sammlung - + Chemin des cartouches company Firmen-Schriftfelder - + Chemin des macros utilisateur Pfad zu den Benutzer-Vorlagen - + To high values might lead to crashes of the application. Zu große Werte können zum Absturz der Applikation führen - + Fonctionnalité expérimental Experimentelle Funktion - + AVERTISSEMENT : Toutes valeurs autre que ‘Pas d’arrondi’ peut causer des erreurs de rendu du projet en fonction de : @@ -3974,132 +4447,162 @@ Alle Einstellungen außer „Keine Rundung“ können je nach folgenden Faktoren GraphicsTablePropertiesEditor + Affichage Darstellung + Nom du tableau Name der Tabelle + Aucun Keine + Toutes Alles + Lignes à afficher : Anzuzeigende Zeilen: + Y : y: + Tableau suivant Nächste Tabelle + X : x: + Tableau précédent Vorherige Tabelle + Tableau précédent : Vorherige Tabelle: + Géometrie et lignes Geometrie und Linien + Appliquer la géometrie à tous les tableaux liée à celui-ci Geometrie auf alle hiermit verknüpften Tabellen anwenden + Ajuster le tableau au folio Tabelle an Foliengröße anpassen + Form Eigenschaften Tabelle + TextLabel TextLabel + En tête Kopfzeile + + Marge Rand + Aligement : Ausrichtung: + + Gauche Linksbündig + + Centré Zentriert + + Droite Rechtsbündig + + Police Schriftart + Tableau Tabelleninhalt + Alignement : Ausrichtung: + Contenu Inhalt @@ -4158,25 +4661,68 @@ Alle Einstellungen außer „Keine Rundung“ können je nach folgenden Faktoren Geometrie einer Tabelle auf alle damit verknüpften Tabellen anwenden + + GuidesPropertiesWidget + + + Orientation + Ausrichtung + + + + Position + Position + + + + + Couleur + Farbe + + + + Ajouter + Einfügen + + + + Supprimer + Löschen + + + + Horizontal + Horizontal + + + + Vertical + Vertikal + + ImagePropertiesWidget + Form Form + Verrouiller la position Position sperren + Dimension de l'image Bildgröße + % % @@ -4190,31 +4736,37 @@ Alle Einstellungen außer „Keine Rundung“ können je nach folgenden Faktoren ImportElementDialog + Intégration d'un élément Bauteil einbetten + L'élément a déjà été intégré dans le projet. Toutefois, la version que vous tentez de poser semble différente. Que souhaitez-vous faire ? Das Bauteil wurde bereits in das Projekt eingebettet. Es gibt aber vermutlich Versionsunterschiede. Wie möchten Sie vorgehen? + Utiliser l'élément déjà integré Bereits eingebettetes Bauteil verwenden + Intégrer l'élément déposé Das neu angelegte Bauteil einbetten + Écraser l'élément déjà intégé Das bereits eingebettete Bauteil überschreiben + Faire cohabiter les deux éléments Beide Bauteile beibehalten @@ -4223,16 +4775,19 @@ Alle Einstellungen außer „Keine Rundung“ können je nach folgenden Faktoren ImportElementTextPatternDialog + Dialog Dialog + TextLabel TextLabel + Écraser les textes existants Bestehende Texte überschreiben @@ -4241,58 +4796,70 @@ Alle Einstellungen außer „Keine Rundung“ können je nach folgenden Faktoren IndiTextPropertiesWidget + Form Form + X : x: + Éditeur avancé Fortgeschrittener Editor + Taille : Größe: + Angle : Winkel: + + px px + ° ° + Y : y: + Le contenu, la taille et la police du texte ne peuvent être modifié car formaté en html. Veuillez utiliser l'éditeur avancé pour cela. Inhalt, Größe und Schriftart vom Text können nur im fortgeschrittenen Editor geändert werden (wegen html Formatierung). + Texte Text + @@ -4301,6 +4868,7 @@ Veuillez utiliser l'éditeur avancé pour cela. + Cliquez ici pour annuler le formatage html html Formatierung entfernen @@ -4407,6 +4975,3560 @@ Veuillez utiliser l'éditeur avancé pour cela. Beide Vorlagen beibehalten + + KAboutData + + + <p>KDE is translated into many languages thanks to the work of the translation teams all over the world.</p><p>For more information on KDE internationalization visit <a href="https://l10n.kde.org">https://l10n.kde.org</a></p> + replace this with information about your translation team + + + + + KAboutData CLI + + + Show author information. + + + + + Show license information. + + + + + The base file name of the desktop entry for this application. + + + + + file name + + + + + This application was written by somebody who wants to remain anonymous. + + + + + %1 was written by: + + + + + Please use https://bugs.kde.org to report bugs. + + + + + Please report bugs to %1. + + + + + KAboutLicense + + + No licensing terms for this program have been specified. +Please check the documentation or the source for any +licensing terms. + + + + + + This program is distributed under the terms of the %1. + + + + + GPL v2 + @item license (short name) + + + + + GNU General Public License Version 2 + @item license + + + + + LGPL v2 + @item license (short name) + + + + + GNU Lesser General Public License Version 2 + @item license + + + + + BSD License + @item license (short name) + + + + + BSD License + @item license + + + + + Artistic License + @item license (short name) + + + + + Artistic License + @item license + + + + + QPL v1.0 + @item license (short name) + + + + + Q Public License + @item license + + + + + GPL v3 + @item license (short name) + + + + + GNU General Public License Version 3 + @item license + + + + + LGPL v3 + @item license (short name) + + + + + GNU Lesser General Public License Version 3 + @item license + + + + + LGPL v2.1 + @item license (short name) + + + + + GNU Lesser General Public License Version 2.1 + @item license + + + + + Custom + @item license + + + + + Not specified + @item license + + + + + KActionSelector + + + &Available: + @label:listbox + + + + + &Selected: + @label:listbox + + + + + KAssistantDialog + + + &Back + @action:button go back + + + + + Go back one step + @info:tooltip + + + + + Next + @action:button Opposite to Back + + + + + Finish + @action:button + + + + + KCharSelect + + + Enter a search term or character... + @info:placeholder + + + + + Enter a search term or character here + @info:tooltip + + + + + &Find... + @action + + + + + Previous in History + @action:button Goes to previous character + + + + + Go to previous character in history + @info:tooltip + + + + + Next in History + @action:button Goes to next character + + + + + Go to next character in history + info:tooltip + + + + + &Back + @action go back + + + + + &Forward + @action go forward + + + + + Select a category + @info:tooltip + + + + + Select a block to be displayed + @info:tooltip + + + + + Set font + @info:tooltip + + + + + Set font size + @info:tooltip + + + + + Character: + + + + + Name: + + + + + Annotations and Cross References + + + + + Alias names: + + + + + Notes: + + + + + See also: + + + + + Equivalents: + + + + + Approximate equivalents: + + + + + Decomposition: + + + + + CJK Ideograph Information + + + + + Definition in English: + + + + + Mandarin Pronunciation: + + + + + Cantonese Pronunciation: + + + + + Japanese On Pronunciation: + + + + + Japanese Kun Pronunciation: + + + + + Tang Pronunciation: + + + + + Korean Pronunciation: + + + + + General Character Properties + + + + + Block: + + + + + Unicode category: + + + + + Various Useful Representations + + + + + UTF-8: + + + + + UTF-16: + + + + + C octal escaped UTF-8: + + + + + XML decimal entity: + + + + + KCharSelectData + + + European Scripts + KCharSelect section name + + + + + African Scripts + KCharSelect section name + + + + + Middle Eastern Scripts + KCharSelect section name + + + + + Central Asian Scripts + KCharSelect section name + + + + + South Asian Scripts + KCharSelect section name + + + + + Southeast Asian Scripts + KCharSelect section name + + + + + Indonesia and Oceania Scripts + KCharSelect section name + + + + + East Asian Scripts + KCharSelect section name + + + + + American Scripts + KCharSelect section name + + + + + Symbols + KCharSelect section name + + + + + Mathematical Symbols + KCharSelect section name + + + + + Phonetic Symbols + KCharSelect section name + + + + + + Combining Diacritics + KCharSelect section name + + + + + Other + KCharSelect section name + Andere + + + + Basic Latin + KCharselect unicode block name + + + + + Latin-1 Supplement + KCharselect unicode block name + + + + + Latin Extended-A + KCharselect unicode block name + + + + + Latin Extended-B + KCharselect unicode block name + + + + + IPA Extensions + KCharselect unicode block name + + + + + Spacing Modifier Letters + KCharselect unicode block name + + + + + Combining Diacritical Marks + KCharselect unicode block name + + + + + Greek and Coptic + KCharselect unicode block name + + + + + Cyrillic + KCharselect unicode block name + + + + + Cyrillic Supplement + KCharselect unicode block name + + + + + Armenian + KCharselect unicode block name + + + + + Hebrew + KCharselect unicode block name + + + + + Arabic + KCharselect unicode block name + + + + + Syriac + KCharselect unicode block name + + + + + Arabic Supplement + KCharselect unicode block name + + + + + Thaana + KCharselect unicode block name + + + + + NKo + KCharselect unicode block name + + + + + Samaritan + KCharselect unicode block name + + + + + Mandaic + KCharselect unicode block name + + + + + Syriac Supplement + KCharselect unicode block name + + + + + Arabic Extended-A + KCharselect unicode block name + + + + + Devanagari + KCharselect unicode block name + + + + + Bengali + KCharselect unicode block name + + + + + Gurmukhi + KCharselect unicode block name + + + + + Gujarati + KCharselect unicode block name + + + + + Oriya + KCharselect unicode block name + + + + + Tamil + KCharselect unicode block name + + + + + Telugu + KCharselect unicode block name + + + + + Kannada + KCharselect unicode block name + + + + + Malayalam + KCharselect unicode block name + + + + + Sinhala + KCharselect unicode block name + + + + + Thai + KCharselect unicode block name + + + + + Lao + KCharselect unicode block name + + + + + Tibetan + KCharselect unicode block name + + + + + Myanmar + KCharselect unicode block name + + + + + Georgian + KCharselect unicode block name + + + + + Hangul Jamo + KCharselect unicode block name + + + + + Ethiopic + KCharselect unicode block name + + + + + Ethiopic Supplement + KCharselect unicode block name + + + + + Cherokee + KCharselect unicode block name + + + + + Unified Canadian Aboriginal Syllabics + KCharselect unicode block name + + + + + Ogham + KCharselect unicode block name + + + + + Runic + KCharselect unicode block name + + + + + Tagalog + KCharselect unicode block name + + + + + Hanunoo + KCharselect unicode block name + + + + + Buhid + KCharselect unicode block name + + + + + Tagbanwa + KCharselect unicode block name + + + + + Khmer + KCharselect unicode block name + + + + + Mongolian + KCharselect unicode block name + + + + + Unified Canadian Aboriginal Syllabics Extended + KCharselect unicode block name + + + + + Limbu + KCharselect unicode block name + + + + + Tai Le + KCharselect unicode block name + + + + + New Tai Lue + KCharselect unicode block name + + + + + Khmer Symbols + KCharselect unicode block name + + + + + Buginese + KCharselect unicode block name + + + + + Tai Tham + KCharselect unicode block name + + + + + Combining Diacritical Marks Extended + KCharselect unicode block name + + + + + Balinese + KCharselect unicode block name + + + + + Sundanese + KCharselect unicode block name + + + + + Batak + KCharselect unicode block name + + + + + Lepcha + KCharselect unicode block name + + + + + Ol Chiki + KCharselect unicode block name + + + + + Cyrillic Extended-C + KCharselect unicode block name + + + + + Georgian Extended + KCharselect unicode block name + + + + + Sundanese Supplement + KCharselect unicode block name + + + + + Vedic Extensions + KCharselect unicode block name + + + + + Phonetic Extensions + KCharselect unicode block name + + + + + Phonetic Extensions Supplement + KCharselect unicode block name + + + + + Combining Diacritical Marks Supplement + KCharselect unicode block name + + + + + Latin Extended Additional + KCharselect unicode block name + + + + + Greek Extended + KCharselect unicode block name + + + + + General Punctuation + KCharselect unicode block name + + + + + Superscripts and Subscripts + KCharselect unicode block name + + + + + Currency Symbols + KCharselect unicode block name + + + + + Combining Diacritical Marks for Symbols + KCharselect unicode block name + + + + + Letterlike Symbols + KCharselect unicode block name + + + + + Number Forms + KCharselect unicode block name + + + + + Arrows + KCharselect unicode block name + + + + + Mathematical Operators + KCharselect unicode block name + + + + + Miscellaneous Technical + KCharselect unicode block name + + + + + Control Pictures + KCharselect unicode block name + + + + + Optical Character Recognition + KCharselect unicode block name + + + + + Enclosed Alphanumerics + KCharselect unicode block name + + + + + Box Drawing + KCharselect unicode block name + + + + + Block Elements + KCharselect unicode block name + + + + + Geometric Shapes + KCharselect unicode block name + + + + + Miscellaneous Symbols + KCharselect unicode block name + + + + + Dingbats + KCharselect unicode block name + + + + + Miscellaneous Mathematical Symbols-A + KCharselect unicode block name + + + + + Supplemental Arrows-A + KCharselect unicode block name + + + + + Braille Patterns + KCharselect unicode block name + + + + + Supplemental Arrows-B + KCharselect unicode block name + + + + + Miscellaneous Mathematical Symbols-B + KCharselect unicode block name + + + + + Supplemental Mathematical Operators + KCharselect unicode block name + + + + + Miscellaneous Symbols and Arrows + KCharselect unicode block name + + + + + Glagolitic + KCharselect unicode block name + + + + + Latin Extended-C + KCharselect unicode block name + + + + + Coptic + KCharselect unicode block name + + + + + Georgian Supplement + KCharselect unicode block name + + + + + Tifinagh + KCharselect unicode block name + + + + + Ethiopic Extended + KCharselect unicode block name + + + + + Cyrillic Extended-A + KCharselect unicode block name + + + + + Supplemental Punctuation + KCharselect unicode block name + + + + + CJK Radicals Supplement + KCharselect unicode block name + + + + + Kangxi Radicals + KCharselect unicode block name + + + + + Ideographic Description Characters + KCharselect unicode block name + + + + + CJK Symbols and Punctuation + KCharselect unicode block name + + + + + Hiragana + KCharselect unicode block name + + + + + Katakana + KCharselect unicode block name + + + + + Bopomofo + KCharselect unicode block name + + + + + Hangul Compatibility Jamo + KCharselect unicode block name + + + + + Kanbun + KCharselect unicode block name + + + + + Bopomofo Extended + KCharselect unicode block name + + + + + CJK Strokes + KCharselect unicode block name + + + + + Katakana Phonetic Extensions + KCharselect unicode block name + + + + + Enclosed CJK Letters and Months + KCharselect unicode block name + + + + + CJK Compatibility + KCharselect unicode block name + + + + + CJK Unified Ideographs Extension A + KCharselect unicode block name + + + + + Yijing Hexagram Symbols + KCharselect unicode block name + + + + + CJK Unified Ideographs + KCharselect unicode block name + + + + + Yi Syllables + KCharselect unicode block name + + + + + Yi Radicals + KCharselect unicode block name + + + + + Lisu + KCharselect unicode block name + + + + + Vai + KCharselect unicode block name + + + + + Cyrillic Extended-B + KCharselect unicode block name + + + + + Bamum + KCharselect unicode block name + + + + + Modifier Tone Letters + KCharselect unicode block name + + + + + Latin Extended-D + KCharselect unicode block name + + + + + Syloti Nagri + KCharselect unicode block name + + + + + Common Indic Number Forms + KCharselect unicode block name + + + + + Phags-pa + KCharselect unicode block name + + + + + Saurashtra + KCharselect unicode block name + + + + + Devanagari Extended + KCharselect unicode block name + + + + + Kayah Li + KCharselect unicode block name + + + + + Rejang + KCharselect unicode block name + + + + + Hangul Jamo Extended-A + KCharselect unicode block name + + + + + Javanese + KCharselect unicode block name + + + + + Myanmar Extended-B + KCharselect unicode block name + + + + + Cham + KCharselect unicode block name + + + + + Myanmar Extended-A + KCharselect unicode block name + + + + + Tai Viet + KCharselect unicode block name + + + + + Meetei Mayek Extensions + KCharselect unicode block name + + + + + Ethiopic Extended-A + KCharselect unicode block name + + + + + Latin Extended-E + KCharselect unicode block name + + + + + Cherokee Supplement + KCharselect unicode block name + + + + + Meetei Mayek + KCharselect unicode block name + + + + + Hangul Syllables + KCharselect unicode block name + + + + + Hangul Jamo Extended-B + KCharselect unicode block name + + + + + High Surrogates + KCharselect unicode block name + + + + + High Private Use Surrogates + KCharselect unicode block name + + + + + Low Surrogates + KCharselect unicode block name + + + + + Private Use Area + KCharselect unicode block name + + + + + CJK Compatibility Ideographs + KCharselect unicode block name + + + + + Alphabetic Presentation Forms + KCharselect unicode block name + + + + + Arabic Presentation Forms-A + KCharselect unicode block name + + + + + Variation Selectors + KCharselect unicode block name + + + + + Vertical Forms + KCharselect unicode block name + + + + + Combining Half Marks + KCharselect unicode block name + + + + + CJK Compatibility Forms + KCharselect unicode block name + + + + + Small Form Variants + KCharselect unicode block name + + + + + Arabic Presentation Forms-B + KCharselect unicode block name + + + + + Halfwidth and Fullwidth Forms + KCharselect unicode block name + + + + + Specials + KCharselect unicode block name + + + + + Mahjong Tiles + KCharselect unicode block name + + + + + Domino Tiles + KCharselect unicode block name + + + + + Playing Cards + KCharselect unicode block name + + + + + Enclosed Alphanumeric Supplement + KCharselect unicode block name + + + + + Enclosed Ideographic Supplement + KCharselect unicode block name + + + + + Miscellaneous Symbols and Pictographs + KCharselect unicode block name + + + + + Emoticons + KCharselect unicode block name + + + + + Ornamental Dingbats + KCharselect unicode block name + + + + + Transport and Map Symbols + KCharselect unicode block name + + + + + Alchemical Symbols + KCharselect unicode block name + + + + + Geometric Shapes Extended + KCharselect unicode block name + + + + + Supplemental Arrows-C + KCharselect unicode block name + + + + + Supplemental Symbols and Pictographs + KCharselect unicode block name + + + + + Chess Symbols + KCharselect unicode block name + + + + + Symbols and Pictographs Extended-A + KCharselect unicode block name + + + + + Symbols for Legacy Computing + KCharselect unicode block name + + + + + <noncharacter> + + + + + <Non Private Use High Surrogate> + + + + + <Private Use High Surrogate> + + + + + <Low Surrogate> + + + + + <Private Use> + + + + + <not assigned> + + + + + Non-printable + + + + + Other, Control + + + + + Other, Format + + + + + Other, Not Assigned + + + + + Other, Private Use + + + + + Other, Surrogate + + + + + Letter, Lowercase + + + + + Letter, Modifier + + + + + Letter, Other + + + + + Letter, Titlecase + + + + + Letter, Uppercase + + + + + Mark, Spacing Combining + + + + + Mark, Enclosing + + + + + Mark, Non-Spacing + + + + + Number, Decimal Digit + + + + + Number, Letter + + + + + Number, Other + + + + + Punctuation, Connector + + + + + Punctuation, Dash + + + + + Punctuation, Close + + + + + Punctuation, Final Quote + + + + + Punctuation, Initial Quote + + + + + Punctuation, Other + + + + + Punctuation, Open + + + + + Symbol, Currency + + + + + Symbol, Modifier + + + + + Symbol, Math + + + + + Symbol, Other + + + + + Separator, Line + + + + + Separator, Paragraph + + + + + Separator, Space + + + + + Unknown + + + + + KCharSelectItemModel + + + Unicode code point: + + + + + In decimal + Character + + + + + KColorCombo + + + Custom... + @item:inlistbox Custom color + + + + + KColumnResizerTestForms + + + Form + + + + + + GroupBox + Gruppierung + + + + Short: + + + + + Some long label: + + + + + KColumnResizerTestGridAndForms + + + Form + + + + + + GroupBox + Gruppierung + + + + Short: + + + + + CheckBox + + + + + PushButton + Taste + + + + Some long label: + + + + + KColumnResizerTestGrids + + + Form + + + + + + GroupBox + Gruppierung + + + + Short: + + + + + Some long label: + + + + + KDateComboBox + + + + Next Month + @option next month + + + + + Next Year + @option next year + + + + + Next Week + @option next week + + + + + Tomorrow + @option tomorrow + + + + + Today + @option today + + + + + Yesterday + @option yesterday + + + + + Last Week + @option last week + + + + + Last Month + @option last month + + + + + Last Year + @option last year + + + + + No Date + @option do not specify a date + + + + + The date you entered is invalid + @info + + + + + Date cannot be earlier than %1 + @info + + + + + Date cannot be later than %1 + @info + + + + + KDatePicker + + + Week %1 + + + + + Next year + @info:tooltip + + + + + Previous year + @info:tooltip + + + + + Next month + @info:tooltip + + + + + Previous month + @info:tooltip + + + + + Select a week + @info:tooltip + + + + + Select a month + @info:tooltip + + + + + Select a year + @info:tooltip + + + + + Select the current day + @info:tooltip + + + + + Close + @action:button + + + + + KDateTimeEdit + + + UTC + @item:inlistbox UTC time zone + + + + + Floating + @item:inlistbox No specific time zone + + + + + The entered date and time is before the minimum allowed date and time. + @info + + + + + The entered date and time is after the maximum allowed date and time. + @info + + + + + KEditListWidget + + + &Add + @action:button + + + + + &Remove + @action:button + + + + + Move &Up + @action:button + + + + + Move &Down + @action:button + + + + + KFontChooser + + + Requested Font + @title:group + + + + + Font + @option:check + + + + + Font: + @label + + + + + Font style + @option:check + + + + + Font style: + @label + + + + + Normal + @item font + + + + + + Italic + @item font + + + + + + Oblique + @item font + + + + + Bold + @item font + + + + + Bold Italic + @item font + + + + + Size + @option:check + + + + + Size: + @label:listbox Font size + + + + + Relative + @item font size + + + + + Font size<br /><i>fixed</i> or <i>relative</i><br />to environment + @info:tooltip + + + + + Here you can switch between fixed font size and font size to be calculated dynamically and adjusted to changing environment (e.g. widget dimensions, paper size). + @info:whatsthis + + + + + The Quick Brown Fox Jumps Over The Lazy Dog + + + + + This sample text illustrates the current settings. You may edit it to test special characters. + @info:whatsthis + + + + + Show only monospaced fonts + @option:check + + + + + %1 + @item Font style + %1% {1?} + + + + KFontChooserDialog + + + Select Font + @title:window + + + + + KFontRequester + + + Choose font... + @info:tooltip + + + + + Preview of the selected font + @info:tooltip + + + + + This is a preview of the selected font. You can change it by clicking the "Choose Font..." button. + @info:whatsthis + + + + + Preview of the "%1" font + @info:tooltip + + + + + This is a preview of the "%1" font. You can change it by clicking the "Choose Font..." button. + @info:whatsthis + + + + + KFormat + + + y + SI prefix for 10^⁻24 + y + + + + z + SI prefix for 10^⁻21 + + + + + a + SI prefix for 10^⁻18 + + + + + f + SI prefix for 10^⁻15 + + + + + p + SI prefix for 10^⁻12 + + + + + n + SI prefix for 10^⁻9 + + + + + µ + SI prefix for 10^⁻6 + + + + + m + SI prefix for 10^⁻3 + + + + + k + SI prefix for 10^3 + + + + + Ki + IEC binary prefix for 2^10 + + + + + M + SI prefix for 10^6 + + + + + Mi + IEC binary prefix for 2^20 + + + + + G + SI prefix for 10^9 + + + + + Gi + IEC binary prefix for 2^30 + + + + + T + SI prefix for 10^12 + T + + + + Ti + IEC binary prefix for 2^40 + + + + + P + SI prefix for 10^15 + + + + + Pi + IEC binary prefix for 2^50 + + + + + E + SI prefix for 10^18 + + + + + Ei + IEC binary prefix for 2^60 + + + + + Z + SI prefix for 10^21 + + + + + Zi + IEC binary prefix for 2^70 + + + + + Y + SI prefix for 10^24 + Y + + + + Yi + IEC binary prefix for 2^80 + + + + + bit + Symbol of binary digit + + + + + B + Symbol of byte + + + + + m + Symbol of meter + + + + + Hz + Symbol of hertz + + + + + %1 %2 + no Prefix + value without prefix, format "<val> <unit>" + %1 %2 + + + + %1 %2%3 + MetricBinaryDialect + value with prefix, format "<val> <prefix><unit>" + %1% {1 %2%3?} + + + + %1 B + MetricBinaryDialect + MetricBinaryDialect size in bytes + + + + + %1 kB + MetricBinaryDialect + MetricBinaryDialect size in 1000 bytes + + + + + %1 MB + MetricBinaryDialect + MetricBinaryDialect size in 10^6 bytes + + + + + %1 GB + MetricBinaryDialect + MetricBinaryDialect size in 10^9 bytes + + + + + %1 TB + MetricBinaryDialect + MetricBinaryDialect size in 10^12 bytes + + + + + %1 PB + MetricBinaryDialect + MetricBinaryDialect size in 10^15 bytes + + + + + %1 EB + MetricBinaryDialect + MetricBinaryDialect size in 10^18 byte + + + + + %1 ZB + MetricBinaryDialect + MetricBinaryDialect size in 10^21 bytes + + + + + %1 YB + MetricBinaryDialect + MetricBinaryDialect size in 10^24 bytes + + + + + %1 B + JEDECBinaryDialect + JEDECBinaryDialect memory size in bytes + + + + + %1 KB + JEDECBinaryDialect + JEDECBinaryDialect memory size in 1024 bytes + + + + + %1 MB + JEDECBinaryDialect + JEDECBinaryDialect memory size in 10^20 bytes + + + + + %1 GB + JEDECBinaryDialect + JEDECBinaryDialect memory size in 10^30 bytes + + + + + %1 TB + JEDECBinaryDialect + JEDECBinaryDialect memory size in 10^40 bytes + + + + + %1 PB + JEDECBinaryDialect + JEDECBinaryDialect memory size in 10^50 bytes + + + + + %1 EB + JEDECBinaryDialect + JEDECBinaryDialect memory size in 10^60 bytes + + + + + %1 ZB + JEDECBinaryDialect + JEDECBinaryDialect memory size in 10^70 bytes + + + + + %1 YB + JEDECBinaryDialect + JEDECBinaryDialect memory size in 10^80 bytes + + + + + %1 B + IECBinaryDialect + IECBinaryDialect size in bytes + + + + + %1 KiB + IECBinaryDialect + IECBinaryDialect size in 1024 bytes + + + + + %1 MiB + IECBinaryDialect + IECBinaryDialect size in 10^20 bytes + + + + + %1 GiB + IECBinaryDialect + IECBinaryDialect size in 10^30 bytes + + + + + %1 TiB + IECBinaryDialect + IECBinaryDialect size in 10^40 bytes + + + + + %1 PiB + IECBinaryDialect + IECBinaryDialect size in 10^50 bytes + + + + + %1 EiB + IECBinaryDialect + IECBinaryDialect size in 10^60 bytes + + + + + %1 ZiB + IECBinaryDialect + IECBinaryDialect size in 10^70 bytes + + + + + %1 YiB + IECBinaryDialect + IECBinaryDialect size in 10^80 bytes + + + + + %1m%2.%3s + @item:intext Duration format minutes, seconds and milliseconds + + + + + %1m%2s + @item:intext Duration format minutes and seconds + + + + + %1h%2m + @item:intext Duration format hours and minutes + + + + + %1h%2m%3.%4s + @item:intext Duration format hours, minutes, seconds, milliseconds + + + + + %1h%2m%3s + @item:intext Duration format hours, minutes, seconds + + + + + %1:%2.%3 + @item:intext Duration format minutes, seconds and milliseconds + %1% {1:%2.%3?} + + + + + %1:%2 + @item:intext Duration format minutes and seconds +---------- +@item:intext Duration format hours and minutes + %1% {1:%2?} + + + + %1:%2:%3.%4 + @item:intext Duration format hours, minutes, seconds, milliseconds + %1% {1:%2:%3.%4?} + + + + %1:%2:%3 + @item:intext Duration format hours, minutes, seconds + %1% {1:%2:%3?} + + + + %1 days + @item:intext %1 is a real number, e.g. 1.23 days + + + + + %1 hours + @item:intext %1 is a real number, e.g. 1.23 hours + + + + + %1 minutes + @item:intext %1 is a real number, e.g. 1.23 minutes + + + + + %1 seconds + @item:intext %1 is a real number, e.g. 1.23 seconds + + + + + %n millisecond(s) + @item:intext %1 is a whole number + + + + + %n milliseconds + %n millisecond + + + + %n day(s) + @item:intext %n is a whole number + + + + + %n days + %n day + + + + %n hour(s) + @item:intext %n is a whole number + + + + + %n hours + %n hour + + + + %n minute(s) + @item:intext %n is a whole number + + + + + %n minutes + %n minute + + + + %n second(s) + @item:intext %n is a whole number + + + + + %n seconds + %n second + + + + + + %1 and %2 + @item:intext days and hours. This uses the previous item:intext messages. If this does not fit the grammar of your language please contact the i18n team to solve the problem +---------- +@item:intext hours and minutes. This uses the previous item:intext messages. If this does not fit the grammar of your language please contact the i18n team to solve the problem +---------- +@item:intext minutes and seconds. This uses the previous item:intext messages. If this does not fit the grammar of your language please contact the i18n team to solve the problem + + + + + Invalid date + used when a relative date string can't be generated because the date is invalid + + + + + In two days + + + + + Tomorrow + + + + + Today + + + + + Yesterday + + + + + Two days ago + + + + + Just now + + + + + %1 minutes ago + + + + + %1, %2 + relative datetime with %1 result of formatReleativeDate() and %2 the formatted time If this does not fit the grammar of your language please contact the i18n team to solve the problem + + + + + KLed + + + LED on + Accessible name of a Led whose state is on + + + + + LED off + Accessible name of a Led whose state is off + + + + + KMessageBox + + + . + @action:button post-filter + + + + + Details + + + + + + Question + + + + + + + + + Do not ask again + + + + + + + Warning + + + + + + Error + + + + + + + Sorry + + + + + Information + Information + + + + Do not show this message again + + + + + KMessageDialog + + + Details + + + + + Question + + + + + Warning + + + + + Information + Information + + + + Sorry + + + + + Error + + + + + KMessageWidget + + + &Close + @action:button + + + + + Close message + @info:tooltip + + + + + KMimeTypeChooser + + + Search for file type or filename pattern... + @info:placeholder + + + + + &Filter: + @label:textbox + + + + + MIME Type + @title:column + + + + + Comment + @title:column + + + + + Patterns + @title:column + + + + + &Edit... + @action:button + + + + + Launch the MIME type editor + @info:tooltip + + + + + KNewPasswordDialog + + + Password must be at least %n character(s) long. + @info + + + + + Password must be at least %n characters long + Password must be at least %n character long + + + + Password is empty. + @info + + + + + Passwords do not match. + @info + + + + + Passwords match. + @info + + + + + Low Password Strength + @title:window + + + + + The password you have entered has a low strength. To improve the strength of the password, try: + - using a longer password; + - using a mixture of upper- and lower-case letters; + - using numbers or symbols as well as letters. + +Would you like to use this password anyway? + + + + + KNewPasswordWidget + + + + Password: + @label:textbox + + + + + + &Verify: + @label:textbox + + + + + + Password strength &meter: + @label + + + + + The password strength meter gives an indication of the security of the password you have entered. To improve the strength of the password, try:<ul><li>using a longer password;</li><li>using a mixture of upper- and lower-case letters;</li><li>using numbers or symbols, such as #, as well as letters.</li></ul> + @info:whatsthis + + + + + KPasswordDialog + + + + Supply a username and password below. + + + + + + No password, use anonymous (or &guest) login + @option:radio + + + + + + Use this password: + @option:radio + + + + + + Username: + @label:textbox + + + + + + Domain: + @label:textbox + + + + + + Password: + @label:textbox + + + + + + Remember password + @option:check + + + + + Password + @title:window + + + + + Show Contextual Help + + + + + Supply a password below. + + + + + KPixmapRegionSelectorDialog + + + Select Region of Image + @title:window + + + + + Please click and drag on the image to select the region of interest: + @label:chooser + + + + + KPixmapRegionSelectorWidget + + + Image Operations + @title:menu + + + + + &Rotate Clockwise + @action:inmenu + + + + + Rotate &Counterclockwise + @action:inmenu + + + + + KPluginLoader + + + The library %1 does not offer a KPluginFactory. + + + + + KRecentFilesMenu + + + No Entries + + + + + Clear List + + + + + Recent Files + + + + + KSqueezedTextLabel + + + &Copy Full Text + @action:inmenu + + + + + KStandardGuiItem + + + &OK + &OK + + + + &Cancel + Abbre&chen + + + + &Yes + + + + + Yes + + + + + &No + + + + + No + + + + + &Discard + + + + + Discard changes + + + + + Pressing this button will discard all recent changes made in this dialog. + + + + + &Save + + + + + Save data + + + + + &Do Not Save + + + + + Do not save data + + + + + Save &As... + + + + + Save file with another name + + + + + &Apply + + + + + Apply changes + + + + + When you click <b>Apply</b>, the settings will be handed over to the program, but the dialog will not be closed. +Use this to try different settings. + + + + + Administrator &Mode... + + + + + Enter Administrator Mode + + + + + When you click <b>Administrator Mode</b> you will be prompted for the administrator (root) password in order to make changes which require root privileges. + + + + + C&lear + + + + + Clear input + + + + + Clear the input in the edit field + + + + + &Help + show help + + + + + Show help + + + + + &Close + + + + + Close the current window or document + + + + + &Close Window + + + + + Close the current window. + + + + + &Close Document + + + + + Close the current document. + + + + + &Defaults + + + + + Reset all items to their default values + + + + + &Back + go back + + + + + Go back one step + + + + + &Forward + go forward + + + + + Go forward one step + + + + + &Print... + + + + + Opens the print dialog to print the current document + + + + + C&ontinue + + + + + Continue operation + + + + + &Delete + + + + + Delete item(s) + + + + + &Open... + + + + + Open file + + + + + &Quit + + + + + Quit application + + + + + &Reset + + + + + Reset configuration + + + + + &Insert + Verb + + + + + Confi&gure... + + + + + &Find + + + + + Stop + + + + + Add + + + + + Remove + + + + + Test + + + + + Properties + + + + + &Overwrite + + + + + KTimeComboBox + + + The time you entered is invalid + @info + + + + + Time cannot be earlier than %1 + @info + + + + + Time cannot be later than %1 + @info + + + + + KToggleFullScreenAction + + + Exit F&ull Screen Mode + @action:inmenu + + + + + Exit Full Screen + @action:intoolbar + + + + + Exit full screen mode + @info:tooltip + + + + + F&ull Screen Mode + @action:inmenu + + + + + Full Screen + @action:intoolbar + + + + + Display the window in full screen + @info:tooltip + + + LineEditor @@ -4452,42 +8574,51 @@ Veuillez utiliser l'éditeur avancé pour cela. + Form Linieneigenschaften + X1 : X1: + Y1 : Y1: + X2 : X2: + Fin 1 : Ende 1: + Y2 : Y2: + Fin 2 : Ende 2: + + Longueur : Länge: @@ -4496,21 +8627,25 @@ Veuillez utiliser l'éditeur avancé pour cela. LinkSingleElementWidget + Form Form + Cet élément est déjà lié Das Bauteil ist bereits gebunden + Recherche Suchen + Remarque : les éléments maîtres ayant atteint leur nombre maximal d'esclaves sont masqués. Hinweis: Master-Elemente, die ihre maximale Anzahl an Slaves erreicht haben, werden ausgeblendet. @@ -4586,11 +8721,13 @@ Veuillez utiliser l'éditeur avancé pour cela. + Voir cet élément Bauteil zeigen + Voir l'élément lié gebundenes Bauteil zeigen @@ -4626,6 +8763,7 @@ Veuillez utiliser l'éditeur avancé pour cela. + Délier Trennen @@ -4634,26 +8772,31 @@ Veuillez utiliser l'éditeur avancé pour cela. MarginsEditDialog + Editer les marges Ränder ändern + Haut : Oben: + Gauche : Links: + Droit : Rechts: + Bas : Unten: @@ -4662,16 +8805,19 @@ Veuillez utiliser l'éditeur avancé pour cela. MasterPropertiesWidget + Form Form + <html><head/><body><p>Délier l'élément sélectionné</p></body></html> <html><head/><body><p>Ausgewähltes Bauteil trennen</p></body></html> + <html><head/><body><p>Lier l'élément sélectionné</p></body></html> <html><head/><body><p>Ausgewähltes Bauteil verbinden</p></body></html> @@ -4705,11 +8851,13 @@ Veuillez utiliser l'éditeur avancé pour cela. + Éléments disponibles Verfügbare Bauteile + Éléments liés Gebundene Bauteile @@ -4758,47 +8906,57 @@ Veuillez utiliser l'éditeur avancé pour cela. MultiPasteDialog + Collage multiple Mehrfach einfügen + Décalage Versatz + + px px + x: x: + y: y: + Nombre de copie Anzahl Kopien + Auto-connexion Automatische Leiterverbindung + Auto-numérotation des éléments Auto-Nummerierung der Bauteile + Auto-numérotation des conducteurs Auto-Nummerierung der Leiter @@ -4812,6 +8970,7 @@ Veuillez utiliser l'éditeur avancé pour cela. NameListDialog + Dialog Dialog @@ -4825,26 +8984,31 @@ Veuillez utiliser l'éditeur avancé pour cela. NameListWidget + Form Form + Langue Sprache + Texte Text + Ajouter une ligne Zeile einfügen + Copier dans le presse papier In die Zwischenablage kopieren @@ -4852,33 +9016,38 @@ Veuillez utiliser l'éditeur avancé pour cela. NewDiagramPage - + Folio Folieneigenschaften - + Conducteur Leitereigenschaften - + Reports de folio Folienverweise - + Références croisées Querverweise - + + Guides + Hilfslinien + + + Nouveau folio configuration page title Neue Folie - + Nouveau projet configuration page title Neues Projekt @@ -4979,6 +9148,7 @@ Veuillez utiliser l'éditeur avancé pour cela. NumPartEditorW + Form Formular @@ -5168,12 +9338,12 @@ Veuillez utiliser l'éditeur avancé pour cela. PartText - + Déplacer un texte Text verschieben - + Modifier un champ texte Textfeld ändern @@ -5182,36 +9352,43 @@ Veuillez utiliser l'éditeur avancé pour cela. PolygonEditor + Form Form + X X + Y Y + Polygone fermé Geschlossenes Polygon + Ajouter un point Punkt einfügen + Supprimer ce point Punkt löschen + Points du polygone : Eckpunkte des Polygons: @@ -5248,11 +9425,13 @@ Veuillez utiliser l'éditeur avancé pour cela. PotentialSelectorDialog + Sélectionner le potentiel éléctrique Elektrisches Potenzial wählen + Vous tentez de lier deux potentiels différents ensemble. Veuillez choisir les propriétées à appliquer au nouveau potentiel. Sie versuchen, zwei verschiedene Potenziale zu verbinden. @@ -5349,7 +9528,7 @@ Folgende Variablen sind inkompatibel: PrintConfigPage - + Impression configuration page title Druck @@ -5429,16 +9608,19 @@ Folgende Variablen sind inkompatibel: ProjectDBModelPropertiesWidget + Form Formular + Requête Datenauswahl ändern + Recharger Daten neu laden @@ -5474,161 +9656,193 @@ Folgende Variablen sind inkompatibel: ProjectPrintWindow + MainWindow Druckoptionen + Folios à imprimer : Zu druckende Folien: + Tout cocher Alles auswählen + Tout décocher Auswahl aufheben + Toutes les dates Alle Daten + À partir de la date du : Ab Datum: + À la date du : Mit Datum vom: + Option de rendu Renderoptionen + Dessiner le cadre Zeichnungsrahmen anzeigen + Dessiner le cartouche Schriftfeld anzeigen + Conserver les couleurs des conducteurs Leiterfarben erhalten + Dessiner les bornes Anschlüsse zeichnen + Option d'impression Druckoptionen + Adapter le folio à la page Folie an Seitengröße anpassen + Utiliser toute la feuille Gesamte Blattfläche verwenden + Si cette option est cochée, le folio sera agrandi ou rétréci de façon à remplir toute la surface imprimable d'une et une seule page." Wenn diese Option aktiviert ist, wird das Folio vergrößert oder verkleinert, um den gesamten druckbaren Bereich einer einzigen Seite auszufüllen." + Si cette option est cochée, les marges de la feuille seront ignorées et toute sa surface sera utilisée pour l'impression. Cela peut ne pas être supporté par votre imprimante. Wenn diese Option aktiviert ist, werden die Seitenränder ignoriert und das gesamte Blatt zum Drucken verwendet. Dies wird von Ihrem Drucker möglicherweise nicht unterstützt. + toolBar Werkzeugleiste Druckoptionen + Ajuster la largeur Auf Seitenbreite anpassen + Ajuster la page Auf ganze Seite anpassen + Zoom arrière Verkleinern + Zoom avant Vergrößern + Paysage Querformat + Portrait Hochformat + Première page Erste Seite + Page précédente Vorherige Seite + Page suivante Nächste Seite + Dernière page Letzte Seite + Afficher une seule page Einzelseite anzeigen + Afficher deux pages Zwei Seiten anzeigen + Afficher un aperçu de toutes les pages Alle Seiten anzeigen + mise en page Seite einrichten @@ -5798,6 +10012,7 @@ Voulez-vous enregistrer les modifications ? PropertiesEditorDockWidget + Propriétés de la sélection Auswahleigenschaften @@ -5847,175 +10062,175 @@ Voulez-vous enregistrer les modifications ? Benutzer-Schriftfelder - + Q Single-letter example text - translate length, not meaning Q - + QET Small example text - translate length, not meaning QET - + Schema Normal example text - translate length, not meaning Folie - + Electrique Normal example text - translate length, not meaning Elektrik - + QElectroTech Long example text - translate length, not meaning QElectroTech - + Configurer QElectroTech window title QElectroTech Einstellungen - + Chargement... splash screen caption Lade... - + Chargement... icône du systray splash screen caption Lade... Symbole des Systemsbenachrichtigungsfelds - + QElectroTech systray menu title QElectroTech - + &Quitter &Beenden - + &Masquer &Verstecken - + &Restaurer &Zeigen - + &Masquer tous les éditeurs de schéma &Verstecke alle Schaltplaneditoren - + &Restaurer tous les éditeurs de schéma &Zeige alle Schaltplaneditoren - + &Masquer tous les éditeurs d'élément &Verstecke alle Bauteileditoren - + &Restaurer tous les éditeurs d'élément &Zeige alle Bauteileditoren - + &Masquer tous les éditeurs de cartouche systray submenu entry &Verstecke alle Schriftfeld-Editoren - + &Restaurer tous les éditeurs de cartouche systray submenu entry &Zeige alle Schriftfeld-Editoren - + &Nouvel éditeur de schéma &Neuer Schaltplaneditor - + &Nouvel éditeur d'élément &Neuer Bauteileditor - + Ferme l'application QElectroTech Anwendung QElectroTech schließen - + Réduire QElectroTech dans le systray QElectroTech in Systembenachrichtigungsfeld minimieren - + Restaurer QElectroTech QElectroTech wiederherstellen - + QElectroTech systray icon tooltip QElectroTech - + Éditeurs de schémas Schaltplaneditor - + Éditeurs d'élément Bauteileditor - + Éditeurs de cartouche systray menu entry Schriftfeld-Editor - + <b>Le fichier de restauration suivant a été trouvé,<br>Voulez-vous l'ouvrir ?</b><br> <b>Die folgende Sicherungsdatei wurde gefunden,<br>Möchten Sie sie öffnen?</b><br> - + <b>Les fichiers de restauration suivant on été trouvé,<br>Voulez-vous les ouvrir ?</b><br> <b>Die folgenden Sicherungsdateien wurden gefunden,<br>Möchten Sie sie öffnen?</b><br> - + Fichier de restauration Sicherungsdatei - + Usage : Verwendung: - + [options] [fichier]... @@ -6024,7 +10239,7 @@ Voulez-vous enregistrer les modifications ? - + QElectroTech, une application de réalisation de schémas électriques. Options disponibles : @@ -6041,35 +10256,35 @@ Verfügbare Optionen: - + --common-elements-dir=DIR Definir le dossier de la collection d'elements --common-elements-dir=DIR Setzt Pfad zur Bauteilsammlung - + --common-tbt-dir=DIR Definir le dossier de la collection de modeles de cartouches --common-tbt-dir=DIR Pfad zur Schriftfeld-Sammlung setzen - + --config-dir=DIR Definir le dossier de configuration --config-dir=DIR Setzt Pfad zur Konfiguration - + --data-dir=DIR Definir le dossier de data --data-dir=DIR Setzt Pfad zu den Daten - + --lang-dir=DIR Definir le dossier contenant les fichiers de langue --lang-dir=DIR Setzt Pfad zu den Sprachdateien @@ -6109,27 +10324,27 @@ Verfügbare Optionen: Klicken Sie auf eine Aktion, um die Bearbeitung rückgängig zu machen - + &Nouveau &Neu - + &Ouvrir &Öffnen - + &Fermer &Schließen - + &Enregistrer &Speichern - + Enregistrer sous Speichern unter @@ -6180,128 +10395,128 @@ Verfügbare Optionen: E&infügen - + Propriétés du folio Folieneigenschaften - + Ajouter un folio Neue Folie hinzufügen - - + + Supprimer le folio Folie löschen - + Ajouter une nomenclature Betriebsmittelverzeichnis einfügen - + Lancer le plugin de création de borniers Klemmenplan-Plugin starten - + Crée un nouveau projet status bar tip Erstellt ein neues Projekt - + Ouvre un projet existant status bar tip Öffnet ein existierendes Projekt - + Ferme le projet courant status bar tip Schliesst das aktuelle Projekt - + Enregistre le projet courant et tous ses folios status bar tip Speichert das aktuelle Projekt und alle seine Folien - + Enregistre le projet courant avec un autre nom de fichier status bar tip Speichert das aktuelle Projekt unter einem anderen Dateinamen - + Ajoute une colonne au folio status bar tip Fügt eine neue Spalte zur Folie hinzu - + Enlève une colonne au folio status bar tip Löscht eine Spalte der Folie - + Agrandit le folio en hauteur status bar tip Vergrössert die Höhe der Folie - + Rétrécit le folio en hauteur status bar tip Verkleinert die Höhe der Folie - + Grouper les textes sélectionnés Ausgewählte Texte gruppieren - + Enlève les éléments sélectionnés du folio status bar tip Entfernt die ausgewählten Bauteile von der Folie - + Tout sélectionner Alles auswählen - + Désélectionner tout Auswahl aufheben - + Inverser la sélection Auswahl umkehren - + Supprimer Löschen - + Pivoter Drehen - + Orienter les textes Texte drehen - + Retrouver dans le panel Bauteil in Sammlung suchen @@ -6311,157 +10526,157 @@ Verfügbare Optionen: Leiter zurücksetzen - + Ajouter un champ de texte Textfeld einfügen - + Éditer l'item sélectionné Auswahl bearbeiten - + Ajouter une colonne Spalte einfügen - + Ajouter une image Bild einfügen - + Enlever une colonne Spalte entfernen - + Propriétés du projet Projekteigenschaften - + Nettoyer le projet Projekt bereinigen - + Ajouter un sommaire Inhaltsverzeichnis einfügen - + Zoom avant Vergrößern - + Zoom arrière Verkleinern - + Zoom sur le contenu Auf Inhalt einpassen - + Zoom adapté Folie einpassen - + Pas de zoom Kein Zoom - + en utilisant des onglets mittels Reiter - + en utilisant des fenêtres mittels Fenster - + Mode Selection Auswahlmodus - + Mode Visualisation Ansichtmodus - + &Mosaïque &Kacheln - + &Cascade &Überlappende Fenster - + Projet suivant Nächstes Projekt - + Projet précédent Vorheriges Projekt - + Sélectionne tous les éléments du folio status bar tip Wählt alle Bauteile der Folie aus - + Désélectionne tous les éléments du folio status bar tip Wählt alle Bauteile der Folie ab - + Agrandit le folio status bar tip Vergrössert die Folie - + Rétrécit le folio status bar tip Verkleinert die Folie - + Adapte le zoom de façon à afficher tout le contenu du folio indépendamment du cadre Passt die Ansicht auf den Inhalt der Folie an, unabhängig vom Folienrahmen - + Adapte le zoom exactement sur le cadre du folio status bar tip Passt die Ansicht genau auf den Folienrahmen an - + Ajouter un rectangle Rechteck einfügen - + Ajouter une ellipse Ellipse einfügen - + Ajouter une polyligne Polylinie einfügen @@ -6496,25 +10711,25 @@ Verfügbare Optionen: kopiert die Auswahl in die Zwischenablage - + Désélectionne les éléments sélectionnés et sélectionne les éléments non sélectionnés status bar tip kehrt die Auswahl um - + Pivote les éléments et textes sélectionnés status bar tip dreht die Auswahl - + Pivote les textes sélectionnés à un angle précis status bar tip dreht die ausgewählten Texte in einem bestimmten Winkel - + Retrouve l'élément sélectionné dans le panel status bar tip Sucht das Bauteil in der Sammlung @@ -6559,49 +10774,49 @@ Verfügbare Optionen: Zeige den Hintergrundsraster der Folien an - + Ajouter une ligne Add row Zeile einfügen - + Enlever une ligne Remove row Zeile entfernen - + Restaure le zoom par défaut status bar tip Standardansicht wiederherstellen - + Ajouter une ligne Draw line Linie einfügen - + Présente les différents projets ouverts dans des sous-fenêtres status bar tip zeige die geöffneten Projekte in Fenstern an - + Présente les différents projets ouverts des onglets status bar tip zeige die geöffneten Projekte in Reitern an - + Permet de sélectionner les éléments status bar tip wählt Bauteile aus - + Dispose les fenêtres en mosaïque status bar tip ordnet die Fenster in Kacheln an @@ -6618,204 +10833,214 @@ Verfügbare Optionen: Eine oder mehrere Folien des aktuellen Projekts exportieren - + + Afficher les guides + Hilfslinien anzeigen + + + + Affiche ou masque les guides + Zeigt die Hilfslinien an oder blendet sie aus + + + Exporter au format CSV Als CSV-Datei exportieren - + Gestionnaire de borniers (DEV) Klemmleisten-Manager (DEV) - + Exporter la liste des noms de conducteurs Leiterbeschriftungen exportieren - + Exporter le plan de câblage Verdrahtungsplan erstellen - + Numérotation automatique des bornes Automatische Nummerierung der Klemmen - + Exporter la base de donnée interne du projet Interne Datenbank exportieren - + Dispose les fenêtres en cascade status bar tip ordnet die Fenster überlappend an - + Active le projet suivant status bar tip wechselt zum nächsten Projekt - + Active le projet précédent status bar tip wechselt zum vorherigen Projekt - + Ajouter un plan de bornes Klemmenplan hinzufügen - + Ajoute un champ de texte sur le folio actuel Fügt ein Textfeld auf die aktuelle Folie ein - + Ajoute une image sur le folio actuel Fügt ein Bild auf die aktuelle Folie ein - + Ajoute une ligne sur le folio actuel Fügt eine Linie auf die aktuelle Folie ein - + Ajoute un rectangle sur le folio actuel Fügt ein Rechteck auf die aktuelle Folie ein - + Ajoute une ellipse sur le folio actuel Fügt eine Ellipse auf die aktuelle Folie ein - + Ajoute une polyligne sur le folio actuel Fügt eine Polylinie auf die aktuelle Folie ein - + Ajoute un plan de bornier sur le folio actuel Klemmenplan auf aktueller Folie einfügen - + Chercher/remplacer Suchen/ersetzen - + Profondeur toolbar title Tiefe/Ebene - + &Fichier &Datei - + &Édition B&earbeiten - + &Projet &Projekt - + Afficha&ge &Anzeige - + Fe&nêtres Fe&nster - + &Récemment ouverts &Zuletzt geöffnet - + Affiche ou non la barre d'outils principale Zeigt oder versteckt die Hauptwerkzeugsleiste - + Affiche ou non la barre d'outils Affichage Zeigt oder versteckt die Anzeigeleiste - + Affiche ou non la barre d'outils Schéma Zeigt oder versteckt die Schaltplan-Werkzeugsleiste - + Affiche ou non le panel d'appareils Zeigt oder versteckt die Bauteilsammlung - + Affiche ou non la liste des modifications Zeigt oder versteckt die Änderungsliste - + Afficher les projets Projekte 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 point Doppelclick, um die Form zu beenden / Rechtsklick, um den letzten Punkt zu entfernen - + Suppression de borne impossible Klemme 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 supprimer Die 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 - + Groupe Gruppe - + Une erreur est survenue lors de l'ouverture du fichier %1. message box content Ein Fehler ist beim Öffnen der Datei %1 aufgetreten. - + Active le projet « %1 » Aktiviert das Projekt "%1" - + Outils Werkzeuge @@ -6850,131 +11075,131 @@ Entfernen Sie die Überbrückung und/oder löschen Sie die Ebenen der betroffene Inhalt der Zwischenablage auf Folie einfügen - + Édite les propriétés du folio (dimensions, informations du cartouche, propriétés des conducteurs...) status bar tip Bearbeitet die Folieneigenschaften (Maße, Schriftfeld-Daten, Leitereigenschaften...) - + Permet de visualiser le folio sans pouvoir le modifier status bar tip Wechselt in das Ansichtsmodus, in dem die Folie nicht bearbeitet werden kann - + Affichage Anzeige - + Schéma Schaltplan - + Ajouter Einfügen - - + + Projet %1 enregistré dans le repertoire: %2. Projekt %1 gespeichert im Pfad: %2. - + Ouvrir un fichier Datei öffnen - - + + Impossible d'ouvrir le fichier message 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 seule message box title Projekt 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 projet message 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 content Die Datei %1 ist vermutlich keine QElectroTech-Projektdatei. Sie kann nicht geöffnet werden. - + Éditer l'élement edit element Bauteil bearbeiten - + Éditer le champ de texte edit text field Textfeld bearbeiten - + Éditer l'image edit image Bild bearbeiten - + Éditer le conducteur edit conductor Leitereigenschaften bearbeiten - + Éditer l'objet sélectionné edit selected item Auswahl bearbeiten - + Êtes-vous sûr de vouloir supprimer ce folio ? Möchten Sie diese Seite wirklich löschen? - + Supprimer les folios Seiten löschen - + Êtes-vous sûr de vouloir supprimer les %1 folios sélectionnés ? Möchten Sie die ausgewählten %1 Seiten wirklich löschen? - + Erreur message box title Fehler @@ -6984,246 +11209,295 @@ Entfernen Sie die Überbrückung und/oder löschen Sie die Ebenen der betroffene QETElementEditor + &Nouveau &Neu + &Ouvrir &Öffnen + &Ouvrir depuis un fichier Aus &Datei öffnen + &Enregistrer &Speichern + Enregistrer sous Speichern &unter + Enregistrer dans un fichier In einer Datei speichern + Recharger Neu laden + Tout sélectionner Alles auswählen + QElectroTech - Éditeur d'élément QElectroTech - Bauteileditor + &Aide &Hilfe + Annulations Arbeitsschritte + Parties Bestandteile + Informations Informationen + Outils Werkzeuge + Affichage Anzeige + Élément Bauteil + Annulation Rückgängig + &Fermer cet éditeur &Editor schließen + Fermer cet éditeur Editor schließen + Désélectionner tout Auswahl aufheben + Co&uper &Ausschneiden + Cop&ier Kop&ieren + C&oller E&infügen + C&oller dans la zone In einen Bereich einfügen... + Un fichier einer Datei + Un élément einem Bauteil + À &propos de QElectroTech Ü&ber QElectroTech + Affiche des informations sur QElectroTech Informationen zu QElectroTech anzeigen + Manuel en ligne Online-Dokumentation (englisch) + Lance le navigateur par défaut vers le manuel en ligne de QElectroTech Online-Dokumentation von QElectroTech im Standard Webbrowser öffnen + Chaine Youtube Youtube-Kanal + Lance le navigateur par défaut vers la chaine Youtube de QElectroTech Den Youtube-Kanal von QElectroTech im Standard Webbrowser öffnen + Soutenir le projet par un don QElectroTech durch eine Spende unterstützen + Soutenir le projet QElectroTech par un don Das QElectroTech-Projekt durch eine Spende unterstützen + À propos de &Qt Über &Qt + Affiche des informations sur la bibliothèque Qt Informationen zur Qt-Bibliothek anzeigen + Rotation Drehen + Fine-Rotation Fein drehen + Mirror Spiegeln + Flip Umdrehen + Importer un dxf DXF &importieren + importer un élément à redimensionner Importiere skaliertes Element + Inverser la sélection Auswahl umkehren + &Supprimer &Löschen + Zoom avant Vergrößern + Zoom arrière Verkleinern + Zoom adapté Folie einpassen + Pas de zoom Kein Zoom + Éditer les informations sur l'auteur Informationen über Autoren bearbeiten @@ -7308,11 +11582,13 @@ veuillez patienter durant l'import... + Éditer le nom et les traductions de l'élément Bauteilname und Übersetzungen bearbeiten + Éditer les propriétés de l'élément Bauteileigenschaften bearbeiten @@ -7323,21 +11599,25 @@ veuillez patienter durant l'import... + &Fichier &Datei + &Édition &Bearbeiten + Afficha&ge &Anzeige + Coller depuis... Einfügen aus... @@ -7758,49 +12038,49 @@ les conditions requises ne sont pas valides QETProject - + Projet « %1 : %2» displayed title for a ProjectView - %1 is the project title, -%2 is the project path Projekt "%1: %2" - + Projet %1 displayed title for a title-less project - %1 is the file name Projekt %1 - + Projet sans titre displayed title for a project-less, file-less project Projekt ohne Titel - + %1 [lecture seule] displayed title for a read-only project - %1 is a displayable title %1 [schreibgeschützt] - + %1 [modifié] displayed title for a modified project - %1 is a displayable title %1 [geändert] - + Une erreur s'est produite durant l'intégration du modèle. error message Ein Fehler ist beim Einfügen der Vorlage aufgetreten. - + Avertissement message box title Warnung - + Ce document semble avoir été enregistré avec une version %1 qui est ultérieure à votre version ! Vous utilisez actuellement QElectroTech en version %2 @@ -7808,7 +12088,7 @@ Vous utilisez actuellement QElectroTech en version %2 Sie verwenden derzeit QElectroTech Version %2 - + . Il est alors possible que l'ouverture de tout ou partie de ce document échoue. Que désirez vous faire ? @@ -7816,32 +12096,32 @@ Que désirez vous faire ? Was möchten Sie tun? - + Avertissement message box title Warnung - + Le projet que vous tentez d'ouvrir est partiellement compatible avec votre version %1 de QElectroTech. Das Projekt, das Sie zu öffnen versuchen, ist teilweise mit Ihrer Version %1 von QElectroTech kompatibel. - + Afin de le rendre totalement compatible veuillez ouvrir ce même projet avec la version 0.8, ou 0.80 de QElectroTech et sauvegarder le projet et l'ouvrir à nouveau avec cette version. Que désirez vous faire ? Um es vollständig kompatibel zu machen, öffnen Sie bitte das gleiche Projekt mit der QElectroTech-Version 0.8 oder 0.80, speichern Sie das Projekt und öffnen Sie es erneut mit dieser Version. Was möchten Sie tun? - + <p align="center"><b>Ouverture du projet en cours...</b><br/>Création des folios</p> <p align="center"><b>Öffnen des Projekts...</b><br/>Folien werden erstellt</p> - + <p align="center"><b>Ouverture du projet en cours...</b><br/>Mise en place des références croisées</p> <p align="center"><b>Öffnen des Projekts...</b><br/>Querverweise werden eingelesen</p> @@ -9393,22 +13673,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 plugin Fehler beim Ausführen vom Plugin qet_tb_generator @@ -9428,15 +13708,15 @@ Möchten Sie sie ersetzen? Einfügen + + + - - - this is an error in the code dies ist ein Programmfehler @@ -9729,6 +14009,27 @@ Bitte laden Sie diese über den Link herunter und entpacken Sie sie in den Insta Automatic terminal numbering Automatische Klemmennummerierung + + + Path %1 doesn't exist + + + + + Failed to execute `lsof' error code %1 + + + + + KListOpenFilesJob is not supported on Windows + + + + + Change the visibility of the password + @info:tooltip + + QTextOrientationWidget @@ -9829,37 +14130,45 @@ Bitte fügen Sie eine neue Tabelle hinzu oder passen Sie die vorhandene Tabelle RectangleEditor + Dimensions : Maße: + y y + Coin supérieur gauche : Obere linke Ecke: + Largeur : Breite: + + Arrondi : Rundung: + x x + Hauteur : Höhe: @@ -9873,31 +14182,37 @@ Bitte fügen Sie eine neue Tabelle hinzu oder passen Sie die vorhandene Tabelle RenameDialog + Dialog Dialog + Nouveau nom : Neuer Name: + Écraser Überschreiben + Renommer Umbenennen + Annuler Abbrechen + TextLabel TextLabel @@ -9911,11 +14226,13 @@ Bitte fügen Sie eine neue Tabelle hinzu oder passen Sie die vorhandene Tabelle ReplaceConductorDialog + Type Typ + &Multifilaire &Mehrpolig @@ -9932,27 +14249,43 @@ Bitte fügen Sie eine neue Tabelle hinzu oder passen Sie die vorhandene Tabelle + + + + + + + + + + + + Ne pas modifier Nicht verändern + En haut Oberhalb + En bas Unterhalb + Texte sur conducteur horizontal : Text auf waagerechtem Leiter: + Tension / protocol : Spannung / Protokoll: @@ -9961,171 +14294,212 @@ Bitte fügen Sie eine neue Tabelle hinzu oder passen Sie die vorhandene Tabelle + + + + Supprimer ce texte Diesen Text löschen + Fonction : Funktion: + Formule du texte : Textformel: + Texte visible Sichtbarer Text + + Angle : Winkel: + Texte sur conducteur vertical : Text auf senkrechtem Leiter: + Taille du texte : Textgröße: + Texte : Text: + À gauche Links + À droite Rechts + Couleur du conducteur Leiterfarbe: + + ° ° + Section du conducteur Leiterquerschnitt: + Unifilaire Einpolig + Protective Earth Neutral PEN-Leiter (protective earth neutral) + PEN PEN + Phase Phase + phase Phase + + Nombre de phase Phasenanzahl + Neutre Neutralleiter + neutre Neutralleiter + Terre Erde + terre Erde + TextLabel TextLabel + PushButton Taste + Apparence Darstellung + Taille : Größe: + + Couleur : Farbe: + Style : Stil: + + Modifier Verändern + Couleur secondaire : Zweite Farbe: + Taille de trait : Größe: + px px @@ -10160,31 +14534,37 @@ Bitte fügen Sie eine neue Tabelle hinzu oder passen Sie die vorhandene Tabelle ReplaceFolioWidget + Form Form + Principales Standard-Eigenschaften + Indice Rev Revision: + Localisation Ort: + Fichier : Datei: + Disponible en tant que %title pour les modèles de cartouches In der Schriftfeld-Vorlage als %title verfügbar @@ -10197,71 +14577,92 @@ Bitte fügen Sie eine neue Tabelle hinzu oder passen Sie die vorhandene Tabelle + + + + + + + + Ne pas modifier Nicht verändern + Disponible en tant que %author pour les modèles de cartouches In der Schriftfeld-Vorlage als %author verfügbar + Auteur : Bearbeiter: + Date : Datum: + Installation : Anlage: + Disponible en tant que %indexrev pour les modèles de cartouches In der Schriftfeld-Vorlage als %indexrev verfügbar + Disponible en tant que %filename pour les modèles de cartouches In der Schriftfeld-Vorlage als %filename verfügbar + Folio : Foliennummer: + Pas de date Kein Datum + Disponible en tant que %date pour les modèles de cartouches In der Schriftfeld-Vorlage als %date verfügbar + Date fixe : Festes Datum: + Appliquer la date actuelle Aktuelles Datum anwenden + <html><head/><body><p>Disponible en tant que %plant pour les modèles de cartouches</p></body></html> <html><head/><body><p>In Schriftfeld-Vorlagen als %plant verfügbar</p></body></html> + Disponible en tant que %folio pour les modèles de cartouches Les variables suivantes sont utilisables : - %id : numéro du folio courant dans le projet @@ -10275,11 +14676,13 @@ Folgende Variablen stehen im Feld Folie zur Verfügung: + Disponible en tant que %locmach pour les modèles de cartouches In der Schriftfeld-Vorlage als %locmach verfügbar + Titre : Titel: @@ -10291,16 +14694,25 @@ Folgende Variablen stehen im Feld Folie zur Verfügung: + + + + + + + Supprimer ce texte Diesen Text löschen + Personnalisées Benutzer-Eigenschaften + Vous pouvez définir ici vos propres associations noms/valeurs pour que le cartouche en tienne compte. Exemple : associer le nom "volta" et la valeur "1745" remplacera %{volta} par 1745 dans le cartouche. Hier können Sie Ihre eigenen Kombinationen Variablen/Werte für die Einträge der Datenfelder im Schriftfeld definieren. Zum Beispiel: @@ -10311,16 +14723,19 @@ die Variable "volta" kombiniert mit dem Wert "1745" lässt i ReportPropertieWidget + Form Form + Label de report de folio Querverweistext der Folienverweise + Vous pouvez définir un label personnalisé pour les reports de folio. Créer votre propre texte en vous aidant des variables suivantes : %f : la position du folio dans le projet @@ -10343,121 +14758,145 @@ Folgende Variablen sind verfügbar: SearchAndReplaceWidget + Form Form + Aller à la correspondance suivante Zur nächsten Übereinstimmung gehen + <html><head/><body><p>Afficher les options avancées</p></body></html> <html><head/><body><p>Fortgeschrittene Optionen anzeigen</p></body></html> + Aller à la correspondance précédente Zur vorherigen Übereinstimmung gehen + Quitter Beenden + <html><head/><body><p>Définir les propriétés à remplacer dans les éléments</p></body></html> <html><head/><body><p>Zu ersetzende Bauteileigenschaften definieren</p></body></html> + Champ texte de folio Textfeld in Folie + <html><head/><body><p>Définir les propriétés à remplacer dans les conducteurs</p></body></html> <html><head/><body><p>Zu ersetzende Leitereigenschaften definieren</p></body></html> + <html><head/><body><p>Définir les propriétés à remplacer dans les folios</p></body></html> <html><head/><body><p>Zu ersetzende Folieneigenschaften definieren</p></body></html> + Folio Folie + Texte brut Roher Text + Mode Modus + Mots entiers Ganze Worte + Sensible à la casse Klein-/Großschreibung berücksichtigen + <html><head/><body><p>Remplacer la correspondance sélectionnée</p></body></html> <html><head/><body><p>Ausgewählte Übereinstimmungen ersetzen</p></body></html> + <html><head/><body><p>Remplacer les correspondances cochées</p></body></html> <html><head/><body><p>Angekreuzte Übereinstimmungen ersetzen</p></body></html> + avancé fortgeschritten + Élément Bauteil + Conducteur Leiter + Remplacer : Ersetzen: + Remplacer Ersetzen + Tout remplacer Alles ersetzen + Chercher : Suchen: + Actualiser Aktualisieren @@ -10564,61 +15003,73 @@ Folgende Variablen sind verfügbar: SelectAutonumW + Form Formular + <html><head/><body><p>Supprimer une variable de numérotation</p></body></html> <html><head/><body><p>Nummerierungsvariable löschen</p></body></html> + <html><head/><body><p>Ajouter une variable de numérotation</p></body></html> <html><head/><body><p>Nummerierungsvariable einfügen</p></body></html> + Définition Definition + Numérotations disponibles : Verfügbare Nummerierungsregeln: + Nom de la nouvelle numérotation Name der neuen Nummerierungsregel + Supprimer la numérotation Nummerierungsregel löschen + Précédent Vorheriges + Suivant Nächstes + Type Typ + Valeur Wert + Incrémentation Inkrementierung @@ -10749,152 +15200,183 @@ Andere Felder werden nicht verwendet. ShapeGraphicsItemPropertiesWidget + Form Form + Trait Linie + Épaisseur Dicke + Normal Normal + Tiret Strich + Pointillé Gestrichelt + Traits et points Strichpunkt + Traits points points Strich-Punkt-Punkt + Tiret custom Benutzerdefiniertes Strichmuster + Type Typ + + Couleur Farbe + Remplissage Füllung + Style Stil + Aucun Kein + Plein Gefüllt + Densité 1 Dichte 1 + Densité 2 Dichte 2 + Densité 3 Dichte 3 + Densité 4 Dichte 4 + Densité 5 Dichte 5 + Densité 6 Dichte 6 + Densité 7 Dichte 7 + Horizontal Horizontal + Vertical Vertikal + Croix Gekreuzt + Diagonal arrière Diagonal rückwärts + Diagonal avant Diagonal vorwärts + Diagonal en croix Diagonal gekreuzt + Verrouiller la position Position sperren + Polygone fermé Geschlossenes Polygon @@ -12923,26 +17405,31 @@ Andere Felder werden nicht verwendet. SummaryQueryWidget + Form Informationen auswählen + Informations disponibles Verfügbare Informationen + Information à afficher Anzuzeigende Informationen + Configuration Konfiguration + Requête SQL : SQL-Abfrage: @@ -13026,31 +17513,37 @@ Andere Felder werden nicht verwendet. + Form Form + y : y: + Orientation : Ausrichtung: + x : x: + Nom : Name: + Type : Typ: @@ -13059,41 +17552,49 @@ Andere Felder werden nicht verwendet. TerminalNumberingDialog + Numérotation automatique des bornes Automatische Klemmennummerierung + Cette fonction numérote les bornes du projet selon leur position. Les bornes vides ou verrouillées sont ignorées.Le marquage des bornes doit être configuré au préalable comme suit : '-X:AB'. La partie avant les deux-points (le bornier) peut être nommée au choix. 'AB' peut être composé de chiffres ou de lettres." Diese Funktion nummeriert die Klemmen des Projekts entsprechend ihrer Position. Leere oder gesperrte Klemmen werden dabei ignoriert. Die Klemmenbezeichnung muss zuvor wie folgt konfiguriert werden: „-X:AB“. Der Teil vor dem Doppelpunkt (die Klemmenleiste) kann beliebig benannt werden. „AB“ kann aus Ziffern oder Buchstaben bestehen. + Priorité des axes Priorität der Achsen + Priorité à l'axe X (horizontal) Priorität für die X-Achse (horizontal) + Priorité à l'axe Y (vertical) Priorität für die Y-Achse (vertikal) + Type de numérotation Art der Nummerierung + Numérique uniquement (1, 2, 3...) Nur Ziffern (1, 2, 3...) + Alphanumérique (A, B, C... 1, 2...) Alphanumerisch (A, B, C... 1, 2...) @@ -13102,31 +17603,37 @@ Andere Felder werden nicht verwendet. TerminalStripCreatorDialog + Création groupe de bornes Klemmleiste erstellen + Localisation : Ort: + Nom : Name: + Installation : Anlage: + Description : Beschreibung: + Commentaire : Kommentar: @@ -13135,147 +17642,177 @@ Andere Felder werden nicht verwendet. TerminalStripEditor + Disposition Anordnung + Ponter les bornes Klemmen brücken + Déponter les bornes Brücker entfernen + Propriétés Eigenschaften + Nom : Name: + Commentaire : Kommentar: + Description Beschreibung + Installation : Anlage: + Localisation : Ort: + Type : Typ: + Degrouper les bornes Gruppierung aufheben + + Générique Generisch + Form Form + Effectuer le déplacement Verschieben anwenden + Couleur pont : Brückerfarbe: + Fusible Sicherungsklemme + Sectionnable Trennklemme + Diode Klemme mit Diode + Terre Erdungsklemme + Déplacer dans : verschieben nach: + Phase Phase + Neutre Neutralleiter + Position automatique automatisch anordnen + Étage : Etage: + Grouper les bornes Klemmen gruppieren + Fonction : Funktion: + Sans Ohne + Avec Mit + LED : LED: @@ -13294,41 +17831,49 @@ Andere Felder werden nicht verwendet. TerminalStripEditorWindow + Gestionnaire de borniers Klemmleisten-Planer + toolBar Werkzeugleiste + Ajouter un bornier Klemmleiste hinzufügen + Ajouter un bornier au projet Klemmleiste hinzufügen + Supprimer le bornier Klemmleiste entfernen + Supprimer le bornier du projet Klemmleiste aus Projekt entfernen + Recharger neu laden + Recharger les borniers Klemmleisten neu laden @@ -13345,91 +17890,109 @@ Andere Felder werden nicht verwendet. TerminalStripLayoutEditor + Form Formular + Borne niveau 0 : Klemme Ebene 0: + En tête : Titel: + Point de pont Brückenpunkt + Décalage vertical vertikaler Versatz + Afficher l'aide Hilfe anzeigen + Largeur Breite + Orientation Orientierung + Alignement Ausrichtung + Police : Schriftart: + Taille : Größe: + Texte d'en tête Kopfzeile + Origine vertical Vertikaler Ursprung + Longueur maximal Maximale Länge + Texte borne Anschlusstext + Référence croisée Querverweis + Hauteur Höhe + Prévisualisation : Vorschau: @@ -13437,6 +18000,9 @@ Andere Felder werden nicht verwendet. + + + Gauche Linksbündig @@ -13444,6 +18010,9 @@ Andere Felder werden nicht verwendet. + + + Centre Zentriert @@ -13451,6 +18020,9 @@ Andere Felder werden nicht verwendet. + + + Droite Rechtsbündig @@ -13458,6 +18030,9 @@ Andere Felder werden nicht verwendet. + + + Horizontal Horizontal @@ -13465,26 +18040,33 @@ Andere Felder werden nicht verwendet. + + + Vertical Vertikal + Borne niveau 2 : Klemme Ebene 2: + Espace : Abstand: + Borne niveau 3 : Klemme Ebene 3: + Borne niveau 1 : Klemme Ebene 1: @@ -13554,6 +18136,7 @@ Andere Felder werden nicht verwendet. TerminalStripTreeDockWidget + Explorateur de bornier Klemmleisten-Planer @@ -13642,16 +18225,19 @@ Andere Felder werden nicht verwendet. ThirdPartyBinaryInstallDialog + Logiciel tiers requis Software von Drittanbietern erforderlich + Télechargement Download + Dossier installation Installationsordner @@ -13727,81 +18313,97 @@ Andere Felder werden nicht verwendet. + Modèle : Vorlage: + Form Form + Folio : Foliennummer: + Auteur : Bearbeiter: + Indice Rev: Revisionsindex: + <html><head/><body><p>Disponible en tant que %plant pour les modèles de cartouches</p></body></html> <html><head/><body><p>In Schriftfeld-Vorlagen als %plant verfügbar</p></body></html> + Disponible en tant que %filename pour les modèles de cartouches In Schriftfeld-Vorlagen als %filename verfügbar + Pas de date Kein Datum + Date courante Aktuelles Datum + Appliquer la date actuelle Aktuelles Datum anwenden + Principales Standard-Eigenschaften + Informations des cartouches Daten im Schriftfeld + Disponible en tant que %locmach pour les modèles de cartouches In Schriftfeld-Vorlagen als %locmach verfügbar + Disponible en tant que %date pour les modèles de cartouches In Schriftfeld-Vorlagen als %date verfügbar + Date fixe : Festes Datum: + Disponible en tant que %folio pour les modèles de cartouches Les variables suivantes sont utilisables : - %id : numéro du folio courant dans le projet @@ -13815,61 +18417,73 @@ Folgende Variablen stehen im Feld Folie zur Verfügung: + Titre : Titel: + <html><head/><body><p>Affiche le cartouche en bas (horizontalement) ou à droite (verticalement) du folio.</p></body></html> <html><head/><body><p>Zeigt das Schriftfeld unter der Folie (waagerecht) oder rechts davon (senkrecht) an.</p></body></html> + Fichier : Datei: + Date : Datum: + Disponible en tant que %author pour les modèles de cartouches In Schriftfeld-Vorlagen als %author verfügbar + Disponible en tant que %title pour les modèles de cartouches In Schriftfeld-Vorlagen als %title verfügbar + Page Num: Auto-Nummerierung: + Installation : Anlage: + Disponible en tant que %indexrev pour les modèles de cartouches In Schriftfeld-Vorlagen als %indexrev verfügbar + Localisation: Ort: + Personnalisées Benutzer-Eigenschaften + Vous pouvez définir ici vos propres associations noms/valeurs pour que le cartouche en tienne compte. Exemple : associer le nom "volta" et la valeur "1745" remplacera %{volta} par 1745 dans le cartouche. Hier können Sie Ihre eigenen Kombinationen Variablen/Werte für die Einträge der Datenfelder im Schriftfeld definieren. Zum Beispiel: @@ -14460,91 +19074,109 @@ Maximale Länge: %2px XRefPropertiesWidget + Form Eigenschaften Querverweise + Type : Typ: + Représentation: Darstellung: + Positionner : Position: + XRef Vertical Offset: Abstand zum Schriftfeld: + 10px corresponds to 1 tile displacement 10px entsprechen einer Rastereinheit + Set Vertical Offset for the Cross References. 10px corresponds to 1 tile displacement. Lege den Abstand vom Kontaktspiegel fest. 10px entsprechen einer Rastereinheit. + Default - Fit to XRef height Standard - ganz unten + XRef slave position Position vom Querverweis bei Slave-Bauteilen + Afficher les numéros de bornes dans les Xrefs Klemmenummern im Kontaktkamm anzeigen + Affiche&r en contacts als &Kontakte anzeigen + Afficher en croix als Tabelle anzeigen + Label des références croisées Querverweistexte + Maitre Master + %f-%l%c %f-%l%c + Esclave Slave + (%f-%l%c) (%f-%l%c) + Créer votre propre texte en vous aidant des variables suivantes : %f : le numéro de folio %F: le label de folio @@ -14562,26 +19194,31 @@ Maximale Länge: %2px + Option d'affichage en croix Optionen für die Darstellung als Tabelle + Afficher les contacts de puissance dans la croix Leistungskontakte anzeigen + Préfixe des contacts de puissance : Präfix für Leistungskontakte: + Préfixe des contacts temporisés : Präfix für zeitverzögerte Kontakte: + Préfixe des contacts inverseurs : Präfix für Wechslerkontakte: @@ -14640,11 +19277,13 @@ Maximale Länge: %2px diagramselection + Form Form + TextLabel TextLabel @@ -14684,6 +19323,14 @@ Maximale Länge: %2px Alles auswählen + + main + + + Enter a password for the test + + + projectDataBase @@ -14808,53 +19455,81 @@ Maximale Länge: %2px replaceAdvancedDialog + Rechercher/Remplacer avancé Fortgeschrittenes Suchen/Ersetzen + par : durch: + Remplacer : Ersetzen: + Qui : Wo: + Texte ou expression régulière Text oder regulärer Ausdruck + Folio Folie + Élément Bauteil + Conducteur Leiter + Texte indépendant Textfeld + Quoi : Was: + + testcontext + + + + test string + + + + + + test plural %n + + + + + + diff --git a/qelectrotech.qrc b/qelectrotech.qrc index 4d324408f..7b506d46c 100644 --- a/qelectrotech.qrc +++ b/qelectrotech.qrc @@ -222,6 +222,7 @@ ico/24x16/dk.png ico/24x16/br.png ico/22x22/grid.png + ico/22x22/guides.png ico/22x22/terminalstrip.png ico/16x16/diagram.png ico/16x16/edit-clear-locationbar-rtl.png diff --git a/sources/SearchAndReplace/searchandreplaceworker.cpp b/sources/SearchAndReplace/searchandreplaceworker.cpp index ed442893e..9f74248d7 100644 --- a/sources/SearchAndReplace/searchandreplaceworker.cpp +++ b/sources/SearchAndReplace/searchandreplaceworker.cpp @@ -16,7 +16,7 @@ along with QElectroTech. If not, see . */ #include "searchandreplaceworker.h" - +#include "../qetproject.h" #include "../QPropertyUndoCommand/qpropertyundocommand.h" #include "../diagram.h" #include "../diagramcommands.h" diff --git a/sources/TerminalStrip/GraphicsItem/terminalstripitem.cpp b/sources/TerminalStrip/GraphicsItem/terminalstripitem.cpp index 56a87af1c..c6e8a3842 100644 --- a/sources/TerminalStrip/GraphicsItem/terminalstripitem.cpp +++ b/sources/TerminalStrip/GraphicsItem/terminalstripitem.cpp @@ -16,7 +16,7 @@ along with QElectroTech. If not, see . */ #include "terminalstripitem.h" - +#include "../../qetproject.h" #include "../diagram.h" #include "../../project/projectpropertieshandler.h" diff --git a/sources/TerminalStrip/ui/addterminalstripitemdialog.cpp b/sources/TerminalStrip/ui/addterminalstripitemdialog.cpp index c11a39f4b..c61b67ad6 100644 --- a/sources/TerminalStrip/ui/addterminalstripitemdialog.cpp +++ b/sources/TerminalStrip/ui/addterminalstripitemdialog.cpp @@ -17,7 +17,7 @@ */ #include "addterminalstripitemdialog.h" #include "ui_addterminalstripitemdialog.h" - +#include "../../qetproject.h" #include "../../undocommand/addgraphicsobjectcommand.h" #include "../terminalstrip.h" #include "../GraphicsItem/terminalstripitem.h" diff --git a/sources/autoNum/assignvariables.cpp b/sources/autoNum/assignvariables.cpp index 80929e4fc..c4810906e 100644 --- a/sources/autoNum/assignvariables.cpp +++ b/sources/autoNum/assignvariables.cpp @@ -23,7 +23,7 @@ #include "../qetgraphicsitem/conductor.h" #include "../qetgraphicsitem/element.h" #include "../qetxml.h" - +#include "../qetproject.h" #include #include #include diff --git a/sources/conductorautonumerotation.cpp b/sources/conductorautonumerotation.cpp index c43efd70a..0f53c870d 100644 --- a/sources/conductorautonumerotation.cpp +++ b/sources/conductorautonumerotation.cpp @@ -16,7 +16,7 @@ along with QElectroTech. If not, see . */ #include "conductorautonumerotation.h" - +#include "qetproject.h" #include "QPropertyUndoCommand/qpropertyundocommand.h" #include "autoNum/assignvariables.h" #include "autoNum/numerotationcontextcommands.h" diff --git a/sources/conductornumexport.cpp b/sources/conductornumexport.cpp index d46f5ecbd..23adb23ed 100644 --- a/sources/conductornumexport.cpp +++ b/sources/conductornumexport.cpp @@ -16,7 +16,7 @@ along with QElectroTech. If not, see . */ #include "conductornumexport.h" - +#include "qetproject.h" #include "qetapp.h" #include "diagram.h" #include "diagramcontent.h" diff --git a/sources/diagram.cpp b/sources/diagram.cpp index e875c30d2..0cc2bbbd0 100644 --- a/sources/diagram.cpp +++ b/sources/diagram.cpp @@ -39,7 +39,7 @@ #include "qetxml.h" #include "undocommand/addelementtextcommand.h" #include "qetinformation.h" - +#include "qetproject.h" #include #include @@ -65,7 +65,6 @@ QColor Diagram::background_color = Qt::white; Diagram::Diagram(QETProject *project) : QGraphicsScene (project), m_project (project), - draw_grid_ (true), use_border_ (true), draw_terminals_ (true), draw_colored_conductors_ (true), @@ -73,6 +72,11 @@ Diagram::Diagram(QETProject *project) : m_freeze_new_elements (false), m_freeze_new_conductors_ (false) { + + QSettings settings; + draw_grid_ = settings.value(QStringLiteral("diagrameditor/grid_display_startup"), true).toBool(); + draw_guides_ = settings.value(QStringLiteral("diagrameditor/guides_display_startup"), false).toBool(); + setItemIndexMethod(QGraphicsScene::NoIndex); /* Set to no index, * because they can be the source of the crash with conductor and shape ghost. @@ -121,8 +125,30 @@ Diagram::Diagram(QETProject *project) : connect(this, &Diagram::diagramActivated, this, &Diagram::loadCndFolioSeq); adjustSceneRect(); -} + m_guides_list.clear(); + if (m_project) { + for (const auto &pg : m_project->defaultGuides()) { + Diagram::Guide g; + g.orientation = static_cast(pg.orientation); + g.position = pg.position; + g.color = pg.color; + m_guides_list.append(g); + } + } else { + QSettings settings; + int size = settings.beginReadArray(QStringLiteral("diagrameditor/defaultguides")); + for (int i = 0; i < size; ++i) { + settings.setArrayIndex(i); + Diagram::Guide g; + g.orientation = static_cast(settings.value(QStringLiteral("orientation"), 0).toInt()); + g.position = settings.value(QStringLiteral("position"), 0.0).toReal(); + g.color = QColor(settings.value(QStringLiteral("color"), QStringLiteral("#ff0000")).toString()); + m_guides_list.append(g); + } + settings.endArray(); + } +} /** @brief Diagram::~Diagram Destructor @@ -186,6 +212,14 @@ void Diagram::drawBackground(QPainter *p, const QRectF &r) { p -> setBrush(Diagram::background_color); p -> drawRect(r); + QSettings settings; + QRectF rect = settings.value( + QStringLiteral("diagrameditor/zoom-out-beyond-of-folio"), + false).toBool() ? r + : border_and_titleblock + .insideBorderRect() + .intersected(r); + if (draw_grid_) { /* Draw the points of the grid * if background color is black, @@ -200,19 +234,10 @@ void Diagram::drawBackground(QPainter *p, const QRectF &r) { p -> setBrush(Qt::NoBrush); - // If user allow zoom out beyond of folio, - // we draw grid outside of border. - QSettings settings; int xGrid = settings.value(QStringLiteral("diagrameditor/Xgrid"), Diagram::xGrid).toInt(); int yGrid = settings.value(QStringLiteral("diagrameditor/Ygrid"), Diagram::yGrid).toInt(); - QRectF rect = settings.value( - QStringLiteral("diagrameditor/zoom-out-beyond-of-folio"), - false).toBool() ? r - : border_and_titleblock - .insideBorderRect() - .intersected(r); qreal limit_x = rect.x() + rect.width(); qreal limit_y = rect.y() + rect.height(); @@ -252,7 +277,23 @@ void Diagram::drawBackground(QPainter *p, const QRectF &r) { p -> drawPoints(points); } - if (use_border_) border_and_titleblock.draw(p); + if (draw_guides_) { + for (const Diagram::Guide &guide : m_guides_list) { + QPen guidePen(guide.color, 1, Qt::DashLine); + guidePen.setCosmetic(true); + p->setPen(guidePen); + + if (guide.orientation == Diagram::Guide::Vertical) { + p->drawLine(guide.position, rect.top(), guide.position, rect.bottom()); + } else { + p->drawLine(rect.left(), guide.position, rect.right(), guide.position); + } + } + } + if (use_border_) { + border_and_titleblock.draw(p); + } + p -> restore(); } @@ -2635,3 +2676,24 @@ void Diagram::restoreText(Element* elmt) } } } + +QUndoStack &Diagram::undoStack() { + return *(project()->undoStack()); +} + +/** + * @brief Diagram::updateProjectGuides + * Aktualisiert die internen Hilfslinien dieses Schaltplans + * basierend auf den Projekt-Einstellungen und erzwingt ein Neuzeichnen. + */ +void Diagram::updateProjectGuides(const QList &guides) { + m_guides_list.clear(); + for (const GuideProperties &pg : guides) { + Diagram::Guide g; + g.orientation = static_cast(pg.orientation); + g.position = pg.position; + g.color = pg.color; + m_guides_list.append(g); + } + update(); +} diff --git a/sources/diagram.h b/sources/diagram.h index cc988165f..7a884f6de 100644 --- a/sources/diagram.h +++ b/sources/diagram.h @@ -24,7 +24,6 @@ #include "elementtextsmover.h" #include "exportproperties.h" #include "properties/xrefproperties.h" -#include "qetproject.h" #include "qgimanager.h" #include @@ -39,12 +38,11 @@ class DiagramPosition; class DiagramTextItem; class Element; class ElementsLocation; -class QETProject; -class Terminal; class DiagramImageItem; class DiagramEventInterface; class DiagramFolioList; class QETProject; +struct GuideProperties; /** @brief The Diagram class @@ -67,6 +65,13 @@ class Diagram : public QGraphicsScene // ATTRIBUTES public: + struct Guide { + enum Orientation { Horizontal, Vertical }; + Orientation orientation; + qreal position; + QColor color; + }; + /** @brief The BorderOptions enum Represents available options when rendering a particular diagram: @@ -119,6 +124,8 @@ class Diagram : public QGraphicsScene bool draw_grid_; bool use_border_; + bool draw_guides_; + QList m_guides_list; bool draw_terminals_; bool draw_colored_conductors_; @@ -207,6 +214,9 @@ class Diagram : public QGraphicsScene ExportProperties applyProperties(const ExportProperties &); void setDisplayGrid(bool); bool displayGrid(); + void setDisplayGuides(bool); + bool displayGuides(); + void updateProjectGuides(const QList &guides); void setUseBorder(bool); bool useBorder(); void setBorderOptions(BorderOptions); @@ -341,6 +351,16 @@ inline bool Diagram::displayGrid() { return(draw_grid_); } +inline void Diagram::setDisplayGuides(bool dg) { + if (draw_guides_ != dg) { + draw_guides_ = dg; + update(); + } +} + +inline bool Diagram::displayGuides() { + return(draw_guides_); +} /** @brief Diagram::setUseBorder Set whether the diagram border (including rows/columns headers and the title @@ -389,14 +409,6 @@ inline Diagram::BorderOptions Diagram::borderOptions() { return(options); } -/** - @brief Diagram::undoStack - @return the diagram undo stack -*/ -inline QUndoStack &Diagram::undoStack() { - return *(project()->undoStack()); -} - /** @brief Diagram::qgiManager @return the diagram graphics item manager diff --git a/sources/diagramevent/diagrameventaddelement.cpp b/sources/diagramevent/diagrameventaddelement.cpp index 147a57c36..203a0d953 100644 --- a/sources/diagramevent/diagrameventaddelement.cpp +++ b/sources/diagramevent/diagrameventaddelement.cpp @@ -16,7 +16,7 @@ along with QElectroTech. If not, see . */ #include "diagrameventaddelement.h" - +#include "../qetproject.h" #include "../conductorautonumerotation.h" #include "../diagram.h" #include "../undocommand/addgraphicsobjectcommand.h" diff --git a/sources/diagramview.cpp b/sources/diagramview.cpp index 271ac6fb3..405b6387a 100644 --- a/sources/diagramview.cpp +++ b/sources/diagramview.cpp @@ -16,7 +16,7 @@ along with QElectroTech. If not, see . */ #include "diagramview.h" - +#include "qetproject.h" #include "QPropertyUndoCommand/qpropertyundocommand.h" #include "diagramcommands.h" #include "diagramevent/diagrameventaddelement.h" diff --git a/sources/elementsmover.cpp b/sources/elementsmover.cpp index b8f3ff3ca..59233c623 100644 --- a/sources/elementsmover.cpp +++ b/sources/elementsmover.cpp @@ -16,7 +16,7 @@ along with QElectroTech. If not, see . */ #include "elementsmover.h" - +#include "qetproject.h" #include "conductorautonumerotation.h" #include "diagram.h" #include "qetgraphicsitem/conductor.h" diff --git a/sources/factory/qetgraphicstablefactory.cpp b/sources/factory/qetgraphicstablefactory.cpp index 5ab68220f..6fe99971b 100644 --- a/sources/factory/qetgraphicstablefactory.cpp +++ b/sources/factory/qetgraphicstablefactory.cpp @@ -25,7 +25,7 @@ #include "../qetgraphicsitem/ViewItem/qetgraphicstableitem.h" #include "../utils/qetutils.h" #include "ui/addtabledialog.h" - +#include "../qetproject.h" #include QetGraphicsTableFactory::QetGraphicsTableFactory() diff --git a/sources/qetdiagrameditor.cpp b/sources/qetdiagrameditor.cpp index 335f6cb3c..2497fa53a 100644 --- a/sources/qetdiagrameditor.cpp +++ b/sources/qetdiagrameditor.cpp @@ -372,8 +372,9 @@ void QETDiagramEditor::setUpActions() //Draw or not the background grid m_draw_grid = new QAction ( QET::Icons::Grid, tr("Afficher la grille"), this); m_draw_grid->setStatusTip(tr("Affiche ou masque la grille des folios")); + QSettings settings; m_draw_grid->setCheckable(true); - m_draw_grid->setChecked(true); + m_draw_grid->setChecked(settings.value("diagrameditor/grid_display_startup", true).toBool()); connect(m_draw_grid, &QAction::triggered, [this](bool checked) { foreach (ProjectView *prjv, this->openedProjects()) foreach (Diagram *d, prjv->project()->diagrams()) { @@ -382,6 +383,18 @@ void QETDiagramEditor::setUpActions() } }); + // Draw or not the custom guides + m_draw_guides = new QAction ( QIcon(":/ico/22x22/guides.png"), tr("Afficher les guides"), this); + m_draw_guides->setStatusTip(tr("Affiche ou masque les guides")); + m_draw_guides->setCheckable(true); + m_draw_guides->setChecked(settings.value("diagrameditor/guides_display_startup", false).toBool()); + connect(m_draw_guides, &QAction::triggered, [this](bool checked) { + foreach (ProjectView *prjv, this->openedProjects()) + foreach (Diagram *d, prjv->project()->diagrams()) { + d->setDisplayGuides(checked); + } + }); + //Edit current diagram properties m_edit_diagram_properties = new QAction(QET::Icons::DialogInformation, tr("Propriétés du folio"), this); m_edit_diagram_properties->setShortcut(Qt::CTRL | Qt::Key_L); @@ -764,6 +777,7 @@ void QETDiagramEditor::setUpToolBar() view_tool_bar -> addWidget(new DiagramEditorHandlerSizeWidget(this)); view_tool_bar -> addSeparator(); view_tool_bar -> addAction(m_draw_grid); + view_tool_bar -> addAction(m_draw_guides); view_tool_bar -> addAction (m_grey_background); view_tool_bar -> addSeparator(); view_tool_bar -> addActions(m_zoom_action_toolBar); @@ -1576,6 +1590,7 @@ void QETDiagramEditor::slot_updateActions() m_row_column_actions_group. setEnabled(editable_project); m_grey_background-> setEnabled(opened_diagram); m_draw_grid-> setEnabled(opened_diagram); + m_draw_guides-> setEnabled(opened_diagram); //Project menu m_project_edit_properties -> setEnabled(opened_project); diff --git a/sources/qetdiagrameditor.h b/sources/qetdiagrameditor.h index d5139ed5a..557784a64 100644 --- a/sources/qetdiagrameditor.h +++ b/sources/qetdiagrameditor.h @@ -194,6 +194,7 @@ class QETDiagramEditor : public QETMainWindow *conductor_default, ///< Show a dialog to edit default conductor properties *m_grey_background, ///< Switch the background color in white or grey *m_draw_grid, ///< Switch the background grid display or not + *m_draw_guides = nullptr, ///< Switch the custom guides display or not *m_project_edit_properties, ///< Edit the properties of the current project. *m_project_add_diagram, ///< Add a diagram to the current project. *m_remove_diagram_from_project, ///< Delete a diagram from the current project diff --git a/sources/qetgraphicsitem/ViewItem/qetgraphicstableitem.cpp b/sources/qetgraphicsitem/ViewItem/qetgraphicstableitem.cpp index 215c2e3c6..49e57bf68 100644 --- a/sources/qetgraphicsitem/ViewItem/qetgraphicstableitem.cpp +++ b/sources/qetgraphicsitem/ViewItem/qetgraphicstableitem.cpp @@ -16,7 +16,7 @@ along with QElectroTech. If not, see . */ #include "qetgraphicstableitem.h" - +#include "../../qetproject.h" #include "../../QPropertyUndoCommand/qpropertyundocommand.h" #include "../../createdxf.h" #include "../../diagram.h" diff --git a/sources/qetgraphicsitem/conductor.cpp b/sources/qetgraphicsitem/conductor.cpp index 73d2e3ac3..291608620 100644 --- a/sources/qetgraphicsitem/conductor.cpp +++ b/sources/qetgraphicsitem/conductor.cpp @@ -16,7 +16,7 @@ along with QElectroTech. If not, see . */ #include "../qetgraphicsitem/conductor.h" - +#include "../qetproject.h" #include "../QPropertyUndoCommand/qpropertyundocommand.h" #include "../autoNum/numerotationcontextcommands.h" #include "../conductorautonumerotation.h" diff --git a/sources/qetgraphicsitem/crossrefitem.cpp b/sources/qetgraphicsitem/crossrefitem.cpp index 31443266c..8bc328e16 100644 --- a/sources/qetgraphicsitem/crossrefitem.cpp +++ b/sources/qetgraphicsitem/crossrefitem.cpp @@ -18,7 +18,7 @@ #include "crossrefitem.h" #include - +#include "../qetproject.h" #include "../autoNum/assignvariables.h" #include "../diagram.h" #include "../diagramposition.h" diff --git a/sources/qetgraphicsitem/dynamicelementtextitem.cpp b/sources/qetgraphicsitem/dynamicelementtextitem.cpp index 64a05d603..de47ca808 100644 --- a/sources/qetgraphicsitem/dynamicelementtextitem.cpp +++ b/sources/qetgraphicsitem/dynamicelementtextitem.cpp @@ -16,7 +16,7 @@ along with QElectroTech. If not, see . */ #include "dynamicelementtextitem.h" - +#include "../qetproject.h" #include "../QPropertyUndoCommand/qpropertyundocommand.h" #include "../diagram.h" #include "../qetapp.h" diff --git a/sources/qetgraphicsitem/element.cpp b/sources/qetgraphicsitem/element.cpp index 408e89e4d..74322b66c 100644 --- a/sources/qetgraphicsitem/element.cpp +++ b/sources/qetgraphicsitem/element.cpp @@ -16,7 +16,7 @@ along with QElectroTech. If not, see . */ #include "element.h" - +#include "../qetproject.h" #include "../PropertiesEditor/propertieseditordialog.h" #include "../autoNum/numerotationcontextcommands.h" #include "../diagram.h" diff --git a/sources/qetgraphicsitem/elementtextitemgroup.cpp b/sources/qetgraphicsitem/elementtextitemgroup.cpp index b5260f909..eb4cb72e9 100644 --- a/sources/qetgraphicsitem/elementtextitemgroup.cpp +++ b/sources/qetgraphicsitem/elementtextitemgroup.cpp @@ -16,7 +16,7 @@ along with QElectroTech. If not, see . */ #include "elementtextitemgroup.h" - +#include "../qetproject.h" #include "../QPropertyUndoCommand/qpropertyundocommand.h" #include "../diagram.h" #include "../qetapp.h" diff --git a/sources/qetgraphicsitem/masterelement.cpp b/sources/qetgraphicsitem/masterelement.cpp index 64504bb09..5d573ca12 100644 --- a/sources/qetgraphicsitem/masterelement.cpp +++ b/sources/qetgraphicsitem/masterelement.cpp @@ -16,7 +16,7 @@ along with QElectroTech. If not, see . */ #include "masterelement.h" - +#include "../qetproject.h" #include "../diagram.h" #include "crossrefitem.h" #include "dynamicelementtextitem.h" diff --git a/sources/qetgraphicsitem/terminal.cpp b/sources/qetgraphicsitem/terminal.cpp index 941c2190c..edbba6f7e 100644 --- a/sources/qetgraphicsitem/terminal.cpp +++ b/sources/qetgraphicsitem/terminal.cpp @@ -16,7 +16,7 @@ along with QElectroTech. If not, see . */ #include "../qetgraphicsitem/terminal.h" - +#include "../qetproject.h" #include "../conductorautonumerotation.h" #include "../diagram.h" #include "../undocommand/addgraphicsobjectcommand.h" diff --git a/sources/qetproject.cpp b/sources/qetproject.cpp index 9fafa710c..b47c6955f 100644 --- a/sources/qetproject.cpp +++ b/sources/qetproject.cpp @@ -56,15 +56,27 @@ void QETProject::setBackupEnabled(bool enabled) @param parent */ QETProject::QETProject(QObject *parent) : - QObject (parent), - m_titleblocks_collection(this), - m_data_base(this, this), - m_project_properties_handler{this} +QObject (parent), +m_titleblocks_collection(this), +m_data_base(this, this), +m_project_properties_handler{this} { setDefaultTitleBlockProperties(TitleBlockProperties::defaultProperties()); m_elements_collection = new XmlElementCollection(this); init(); + + QSettings settings; + int size = settings.beginReadArray(QStringLiteral("diagrameditor/defaultguides")); + for (int i = 0; i < size; ++i) { + settings.setArrayIndex(i); + GuideProperties g; + g.orientation = settings.value(QStringLiteral("orientation"), 0).toInt(); + g.position = settings.value(QStringLiteral("position"), 0.0).toReal(); + g.color = QColor(settings.value(QStringLiteral("color"), QStringLiteral("#ff0000")).toString()); + m_default_guides.append(g); + } + settings.endArray(); } ProjectPropertiesHandler &QETProject::projectPropertiesHandler() @@ -203,6 +215,7 @@ void QETProject::init() }); m_autosave_timer.start(); } + } /** @@ -501,6 +514,23 @@ TitleBlockProperties QETProject::defaultTitleBlockProperties() const return(default_titleblock_properties_); } +QList QETProject::defaultGuides() const { + return m_default_guides; +} + +void QETProject::setDefaultGuides(const QList &guides) { + if (m_default_guides != guides) { + m_default_guides = guides; + setModified(true); + + for (Diagram *diagram : m_diagrams_list) { + if (diagram) { + diagram->updateProjectGuides(m_default_guides); + } + } + } +} + /** @brief QETProject::setDefaultTitleBlockProperties Specify the title block to be used at the creation of a new diagram for this project @@ -1588,7 +1618,7 @@ void QETProject::readDefaultPropertiesXml(QDomDocument &xml_project) m_default_xref_properties = XRefProperties:: defaultProperties(); //Read values indicate in project - QDomElement border_elmt, titleblock_elmt, conductors_elmt, report_elmt, xref_elmt, conds_autonums, folio_autonums, element_autonums; + QDomElement border_elmt, titleblock_elmt, conductors_elmt, report_elmt, xref_elmt, conds_autonums, folio_autonums, element_autonums, guides_elmt; for (QDomNode child = newdiagrams_elmt.firstChild() ; !child.isNull() ; child = child.nextSibling()) { @@ -1611,6 +1641,8 @@ void QETProject::readDefaultPropertiesXml(QDomDocument &xml_project) folio_autonums = child_elmt; else if (child_elmt.tagName()== QLatin1String("element_autonums")) element_autonums = child_elmt; + else if (child_elmt.tagName() == QLatin1String("guides")) + guides_elmt = child_elmt; } // size, titleblock, conductor, report, conductor autonum, folio autonum, element autonum @@ -1658,6 +1690,18 @@ void QETProject::readDefaultPropertiesXml(QDomDocument &xml_project) m_element_autonum.insert(elmt.attribute(QStringLiteral("title")), nc); } } + // Read guides from XML (if missing, e.g. in old projects, list stays empty) + m_default_guides.clear(); + + if (!guides_elmt.isNull()) { + for (auto elmt : QET::findInDomElement(guides_elmt, QStringLiteral("guide"))) { + GuideProperties g; + g.orientation = elmt.attribute(QStringLiteral("orientation"), QStringLiteral("0")).toInt(); + g.position = elmt.attribute(QStringLiteral("position"), QStringLiteral("0.0")).toDouble(); + g.color = QColor(elmt.attribute(QStringLiteral("color"), QStringLiteral("#ff0000"))); + m_default_guides.append(g); + } + } } /** @@ -1768,6 +1812,17 @@ void QETProject::writeDefaultPropertiesXml(QDomElement &xml_element) } } xml_element.appendChild(element_autonums); + + // Export default guides + QDomElement guides_elmt = xml_document.createElement("guides"); + for (const auto &g : m_default_guides) { + QDomElement guide_elmt = xml_document.createElement("guide"); + guide_elmt.setAttribute("orientation", static_cast(g.orientation)); + guide_elmt.setAttribute("position", g.position); + guide_elmt.setAttribute("color", g.color.name()); + guides_elmt.appendChild(guide_elmt); + } + xml_element.appendChild(guides_elmt); } /** diff --git a/sources/qetproject.h b/sources/qetproject.h index d78232de5..5033881b5 100644 --- a/sources/qetproject.h +++ b/sources/qetproject.h @@ -28,7 +28,7 @@ #include "properties/xrefproperties.h" #include "titleblock/templatescollection.h" #include "titleblockproperties.h" - +#include "diagram.h" #ifdef BUILD_WITHOUT_KF5 #else # include @@ -52,6 +52,23 @@ class TerminalStrip; class KAutoSaveFile; #endif +#include + +struct GuideProperties { + int orientation; // 0 = Horizontal, 1 = Vertical + qreal position; + QColor color; + + bool operator==(const GuideProperties &other) const { + return orientation == other.orientation && + position == other.position && + color == other.color; + } + bool operator!=(const GuideProperties &other) const { + return !(*this == other); + } +}; + /** This class represents a QET project. Typically saved as a .qet file, it consists in an XML document grouping 0 to n diagrams and embedding an elements @@ -115,6 +132,9 @@ class QETProject : public QObject BorderProperties defaultBorderProperties() const; void setDefaultBorderProperties(const BorderProperties &); + QList defaultGuides() const; + void setDefaultGuides(const QList &guides); + TitleBlockProperties defaultTitleBlockProperties() const; void setDefaultTitleBlockProperties(const TitleBlockProperties &); @@ -267,6 +287,8 @@ class QETProject : public QObject QString read_only_file_path_; /// Default dimensions and properties for new diagrams created within the project BorderProperties default_border_properties_ = BorderProperties::defaultProperties(); + /// Default guides for new diagrams created within the project + QList m_default_guides; /// Default conductor properties for new diagrams created within the project ConductorProperties default_conductor_properties_ = ConductorProperties::defaultProperties(); /// Default title block properties for new diagrams created within the project diff --git a/sources/ui/configpage/configpages.cpp b/sources/ui/configpage/configpages.cpp index 5c1537118..1a01a343e 100644 --- a/sources/ui/configpage/configpages.cpp +++ b/sources/ui/configpage/configpages.cpp @@ -30,7 +30,7 @@ #include "../reportpropertiewidget.h" #include "../titleblockpropertieswidget.h" #include "../xrefpropertieswidget.h" - +#include "guidespropertieswidget.h" #include #include #include @@ -73,6 +73,33 @@ NewDiagramPage::NewDiagramPage(QETProject *project, rpw = new ReportPropertieWidget(ReportProperties::defaultProperties()); // default properties of xref xrefpw = new XRefPropertiesWidget(XRefProperties::defaultProperties(), this); + // default guides properties + m_gpw = new GuidesPropertiesWidget(this); + + QSettings settings; + QList loaded_guides; + if (m_project) { + for (const auto &pg : m_project->defaultGuides()) { + Diagram::Guide g; + g.orientation = static_cast(pg.orientation); + g.position = pg.position; + g.color = pg.color; + loaded_guides.append(g); + } + } else { + QSettings settings; + int size = settings.beginReadArray(QStringLiteral("diagrameditor/defaultguides")); + for (int i = 0; i < size; ++i) { + settings.setArrayIndex(i); + Diagram::Guide g; + g.orientation = static_cast(settings.value(QStringLiteral("orientation"), 0).toInt()); + g.position = settings.value(QStringLiteral("position"), 0.0).toReal(); + g.color = QColor(settings.value(QStringLiteral("color"), QStringLiteral("#ff0000")).toString()); + loaded_guides.append(g); + } + settings.endArray(); + } + m_gpw->setGuides(loaded_guides); //If there is a project, we edit his properties if (m_project) { @@ -98,6 +125,7 @@ NewDiagramPage::NewDiagramPage(QETProject *project, tab_widget -> addTab (m_cpw, tr("Conducteur")); tab_widget -> addTab (rpw, tr("Reports de folio")); tab_widget -> addTab (xrefpw, tr("Références croisées")); + tab_widget -> addTab (m_gpw, tr("Guides")); QVBoxLayout *vlayout1 = new QVBoxLayout(); vlayout1->addWidget(tab_widget); @@ -155,6 +183,17 @@ void NewDiagramPage::applyConf() modified_project = true; } + QList proj_guides; + for (const auto &g : m_gpw->guides()) { + GuideProperties pg; + pg.orientation = static_cast(g.orientation); + pg.position = g.position; + pg.color = g.color; + proj_guides.append(pg); + } + m_project->setDefaultGuides(proj_guides); + modified_project = true; + if (modified_project) { m_project -> setModified(modified_project); } @@ -176,13 +215,18 @@ void NewDiagramPage::applyConf() // default xref properties QHash hash_xrp = xrefpw -> properties(); - foreach (QString key, hash_xrp.keys()) { - XRefProperties xrp = hash_xrp[key]; - QString str("diagrameditor/defaultxref"); - xrp.toSettings(settings, str += key); - } - } + // Global in QSettings speichern + QList current_guides = m_gpw->guides(); + settings.beginWriteArray(QStringLiteral("diagrameditor/defaultguides")); + for (int i = 0; i < current_guides.size(); ++i) { + settings.setArrayIndex(i); + settings.setValue(QStringLiteral("orientation"), static_cast(current_guides[i].orientation)); + settings.setValue(QStringLiteral("position"), current_guides[i].position); + settings.setValue(QStringLiteral("color"), current_guides[i].color.name()); + } + settings.endArray(); + } } /** diff --git a/sources/ui/configpage/configpages.h b/sources/ui/configpage/configpages.h index 856616588..0a4740f90 100644 --- a/sources/ui/configpage/configpages.h +++ b/sources/ui/configpage/configpages.h @@ -29,6 +29,7 @@ class TitleBlockPropertiesWidget; class ExportPropertiesWidget; class ReportPropertieWidget; class XRefPropertiesWidget; +class GuidesPropertiesWidget; class QETProject; class TitleBlockProperties; @@ -69,6 +70,7 @@ public slots: ConductorPropertiesWidget *m_cpw; ///< Widget to edit default conductor properties ReportPropertieWidget *rpw; ///< Widget to edit default report label XRefPropertiesWidget *xrefpw; ///< Widget to edit default xref properties + GuidesPropertiesWidget *m_gpw; ///< Widget to edit guides TitleBlockProperties savedTbp; ///< Used to save current TBP and retrieve later }; diff --git a/sources/ui/configpage/generalconfigurationpage.cpp b/sources/ui/configpage/generalconfigurationpage.cpp index 9fe0c9b8f..d639e3a6a 100644 --- a/sources/ui/configpage/generalconfigurationpage.cpp +++ b/sources/ui/configpage/generalconfigurationpage.cpp @@ -22,7 +22,6 @@ #include "ui_generalconfigurationpage.h" #include "../../utils/qetsettings.h" #include "../../qetmessagebox.h" - #include #include #include @@ -66,6 +65,8 @@ GeneralConfigurationPage::GeneralConfigurationPage(QWidget *parent) : break; } #endif + ui->grid_startup_cb->setChecked(settings.value("diagrameditor/grid_display_startup", true).toBool()); + ui->guides_startup_cb->setChecked(settings.value("diagrameditor/guides_display_startup", false).toBool()); ui->DiagramEditor_xGrid_sb->setValue(settings.value("diagrameditor/Xgrid", 10).toInt()); ui->DiagramEditor_yGrid_sb->setValue(settings.value("diagrameditor/Ygrid", 10).toInt()); ui->DiagramEditor_xKeyGrid_sb->setValue(settings.value("diagrameditor/key_Xgrid", 10).toInt()); @@ -240,6 +241,9 @@ void GeneralConfigurationPage::applyConf() settings.setValue("diagrameditor/highlight-integrated-elements", ui->m_highlight_integrated_elements->isChecked()); settings.setValue("diagrameditor/zoom-out-beyond-of-folio", ui->m_zoom_out_beyond_folio->isChecked()); settings.setValue("diagrameditor/autosave-interval", ui->m_autosave_sb->value()); + + settings.setValue("diagrameditor/grid_display_startup", ui->grid_startup_cb->isChecked()); + settings.setValue("diagrameditor/guides_display_startup", ui->guides_startup_cb->isChecked()); //Grid step and key navigation settings.setValue("diagrameditor/Xgrid", ui->DiagramEditor_xGrid_sb->value()); settings.setValue("diagrameditor/Ygrid", ui->DiagramEditor_yGrid_sb->value()); diff --git a/sources/ui/configpage/generalconfigurationpage.ui b/sources/ui/configpage/generalconfigurationpage.ui index 1fd4959f3..ed1f3e5fb 100644 --- a/sources/ui/configpage/generalconfigurationpage.ui +++ b/sources/ui/configpage/generalconfigurationpage.ui @@ -7,7 +7,7 @@ 0 0 955 - 556 + 570 @@ -17,7 +17,7 @@ - 2 + 0 @@ -59,6 +59,27 @@ + + + + Afficher la grille par défaut (appliqué au prochain lancement) + + + + + + + Afficher les guides par défaut (appliqué au prochain lancement) + + + + + + + Qt::Horizontal + + + @@ -911,30 +932,10 @@ Vous pouvez spécifier ici la valeur par défaut de ce champ pour les éléments Affichage Grille - - - - Qt::Horizontal - - - - 555 - 20 - - - - - - + + - max: - - - - - - - Taille des points de la grille de Diagram-Editor : 1 - 5 + min: @@ -954,10 +955,39 @@ Vous pouvez spécifier ici la valeur par défaut de ce champ pour les éléments - - + + + + Qt::Horizontal + + + + 555 + 20 + + + + + + + + + 60 + 0 + + + + 1 + + + 5 + + + + + - min: + Taille des points de la grille de Diagram-Editor : 1 - 5 @@ -977,13 +1007,6 @@ Vous pouvez spécifier ici la valeur par défaut de ce champ pour les éléments - - - - Taille des points de la grille de l'éditeur d'éléments : 1 - 5 - - - @@ -1007,19 +1030,10 @@ Vous pouvez spécifier ici la valeur par défaut de ce champ pour les éléments - - - - - 60 - 0 - - - - 1 - - - 5 + + + + max: @@ -1030,6 +1044,13 @@ Vous pouvez spécifier ici la valeur par défaut de ce champ pour les éléments + + + + Taille des points de la grille de l'éditeur d'éléments : 1 - 5 + + + @@ -1110,7 +1131,6 @@ Vous pouvez spécifier ici la valeur par défaut de ce champ pour les éléments - tabWidget m_use_system_color_cb m_use_gesture_trackpad m_zoom_out_beyond_folio diff --git a/sources/ui/configpage/guidespropertieswidget.cpp b/sources/ui/configpage/guidespropertieswidget.cpp new file mode 100644 index 000000000..7c9cb4a5b --- /dev/null +++ b/sources/ui/configpage/guidespropertieswidget.cpp @@ -0,0 +1,112 @@ +#include "guidespropertieswidget.h" +#include +#include +#include +#include +#include +#include +#include +#include + +GuidesPropertiesWidget::GuidesPropertiesWidget(QWidget *parent) +: QWidget(parent) +{ + setupUi(); +} + +GuidesPropertiesWidget::~GuidesPropertiesWidget() {} + +void GuidesPropertiesWidget::setupUi() { + QVBoxLayout *main_layout = new QVBoxLayout(this); + + m_table = new QTableWidget(0, 3, this); + m_table->setHorizontalHeaderLabels({tr("Orientation"), tr("Position"), tr("Couleur")}); + m_table->horizontalHeader()->setSectionResizeMode(QHeaderView::Stretch); + m_table->setSelectionBehavior(QAbstractItemView::SelectRows); + + m_add_btn = new QPushButton(tr("Ajouter"), this); + m_remove_btn = new QPushButton(tr("Supprimer"), this); + + QHBoxLayout *btn_layout = new QHBoxLayout(); + btn_layout->addWidget(m_add_btn); + btn_layout->addWidget(m_remove_btn); + btn_layout->addStretch(); + + main_layout->addWidget(m_table); + main_layout->addLayout(btn_layout); + + connect(m_add_btn, &QPushButton::clicked, this, &GuidesPropertiesWidget::addGuide); + connect(m_remove_btn, &QPushButton::clicked, this, &GuidesPropertiesWidget::removeGuide); +} + +QList GuidesPropertiesWidget::guides() const { + QList list; + for (int row = 0; row < m_table->rowCount(); ++row) { + QComboBox *combo = qobject_cast(m_table->cellWidget(row, 0)); + QSpinBox *spin = qobject_cast(m_table->cellWidget(row, 1)); + QPushButton *colorBtn = qobject_cast(m_table->cellWidget(row, 2)); + + if (combo && spin && colorBtn) { + Diagram::Guide g; + g.orientation = (combo->currentIndex() == 0) ? Diagram::Guide::Horizontal : Diagram::Guide::Vertical; + g.position = spin->value(); + g.color = colorBtn->property("color").value(); + list.append(g); + } + } + return list; +} + +void GuidesPropertiesWidget::setGuides(const QList &guides) { + m_table->setRowCount(0); + for (const auto &g : guides) { + addGuide(); + int row = m_table->rowCount() - 1; + + QComboBox *combo = qobject_cast(m_table->cellWidget(row, 0)); + QSpinBox *spin = qobject_cast(m_table->cellWidget(row, 1)); + QPushButton *colorBtn = qobject_cast(m_table->cellWidget(row, 2)); + + if (combo && spin && colorBtn) { + combo->setCurrentIndex(g.orientation == Diagram::Guide::Horizontal ? 0 : 1); + spin->setValue(qRound(g.position)); + colorBtn->setProperty("color", g.color); + colorBtn->setStyleSheet(QString("background-color: %1; color: white; font-weight: bold;").arg(g.color.name())); + } + } +} + +void GuidesPropertiesWidget::addGuide() { + int row = m_table->rowCount(); + m_table->insertRow(row); + + QComboBox *combo = new QComboBox(this); + combo->addItems({tr("Horizontal"), tr("Vertical")}); + m_table->setCellWidget(row, 0, combo); + + QSpinBox *spin = new QSpinBox(this); + spin->setRange(-10000, 10000); + spin->setValue(100); + m_table->setCellWidget(row, 1, spin); + + QPushButton *colorBtn = new QPushButton(tr("Couleur"), this); + QColor defaultColor = Qt::lightGray; + colorBtn->setProperty("color", defaultColor); + colorBtn->setStyleSheet(QString("background-color: %1; color: white; font-weight: bold;").arg(defaultColor.name())); + + connect(colorBtn, &QPushButton::clicked, [this, colorBtn]() { + QColor c = QColorDialog::getColor(colorBtn->property("color").value(), this); + if (c.isValid()) { + colorBtn->setProperty("color", c); + colorBtn->setStyleSheet(QString("background-color: %1; color: white; font-weight: bold;").arg(c.name())); + } + }); + m_table->setCellWidget(row, 2, colorBtn); +} + +void GuidesPropertiesWidget::removeGuide() { + int row = m_table->currentRow(); + if (row >= 0) { + m_table->removeRow(row); + } +} diff --git a/sources/ui/configpage/guidespropertieswidget.h b/sources/ui/configpage/guidespropertieswidget.h new file mode 100644 index 000000000..5c5af4fc1 --- /dev/null +++ b/sources/ui/configpage/guidespropertieswidget.h @@ -0,0 +1,32 @@ +#ifndef GUIDESPROPERTIESWIDGET_H +#define GUIDESPROPERTIESWIDGET_H + +#include +#include +#include "../../diagram.h" + +class QTableWidget; +class QPushButton; + +class GuidesPropertiesWidget : public QWidget { + Q_OBJECT +public: + explicit GuidesPropertiesWidget(QWidget *parent = nullptr); + ~GuidesPropertiesWidget() override; + + QList guides() const; + void setGuides(const QList &guides); + +private slots: + void addGuide(); + void removeGuide(); + +private: + void setupUi(); + + QTableWidget *m_table; + QPushButton *m_add_btn; + QPushButton *m_remove_btn; +}; + +#endif // GUIDESPROPERTIESWIDGET_H diff --git a/sources/ui/linksingleelementwidget.cpp b/sources/ui/linksingleelementwidget.cpp index 7fdf68f8d..852e4ac7c 100644 --- a/sources/ui/linksingleelementwidget.cpp +++ b/sources/ui/linksingleelementwidget.cpp @@ -24,7 +24,7 @@ #include "../elementprovider.h" #include "../undocommand/linkelementcommand.h" #include "../qetinformation.h" - +#include "../qetproject.h" #include "../ui_linksingleelementwidget.h" #include diff --git a/sources/ui/masterpropertieswidget.cpp b/sources/ui/masterpropertieswidget.cpp index 0ad6ff7f5..88eb9944c 100644 --- a/sources/ui/masterpropertieswidget.cpp +++ b/sources/ui/masterpropertieswidget.cpp @@ -16,7 +16,7 @@ * along with QElectroTech. If not, see . */ #include "masterpropertieswidget.h" - +#include "../qetproject.h" #include "../diagram.h" #include "../diagramposition.h" #include "../elementprovider.h" diff --git a/sources/ui/multipastedialog.cpp b/sources/ui/multipastedialog.cpp index e41c0c9be..953b5bccd 100644 --- a/sources/ui/multipastedialog.cpp +++ b/sources/ui/multipastedialog.cpp @@ -17,7 +17,7 @@ */ #include "multipastedialog.h" - +#include "../qetproject.h" #include "../conductorautonumerotation.h" #include "../diagram.h" #include "../diagramcommands.h" diff --git a/sources/undocommand/changeelementinformationcommand.cpp b/sources/undocommand/changeelementinformationcommand.cpp index 6d3ad3b6d..d06566e0a 100644 --- a/sources/undocommand/changeelementinformationcommand.cpp +++ b/sources/undocommand/changeelementinformationcommand.cpp @@ -16,7 +16,7 @@ along with QElectroTech. If not, see . */ #include "changeelementinformationcommand.h" - +#include "../qetproject.h" #include "../diagram.h" #include "../qetgraphicsitem/element.h"