Clone
1
search_and_replace DE
ispyisail edited this page 2026-09-12 07:29:35 +12:00

Suchen und Ersetzen

Eigenschaften projektweit in großem Umfang bearbeiten: Foliotitel, Elementbeschriftungen und -informationen, Leitertext, unabhängigen Text. Trotz des Namens ist das kein Text-Suchen-und-Ersetzen — was es tatsächlich tut, steht in §2.

Quelle: sources/SearchAndReplace/searchandreplaceworker.{cpp,h} (die Logik), ui/searchandreplacewidget.cpp (der Haupt-Geltungsbereichsbaum), ui/replace*dialog.cpp (die Editoren je Kategorie).


1. Den Geltungsbereich eingrenzen

Der Hauptdialog ist ein Baum von allem Passenden, gruppiert nach Art:

  • Folios
  • Textfelder (unabhängiger Text)
  • Elemente, weiter unterteilt in einfach / Master / Slave / Folioverweis / Klemme — dieselben Kategorien, die Elemente verknüpfen dokumentiert
  • Leiter

Rechtsklick auf ein Folio im Baum für Die Elemente/Leiter/Texte dieses Folios auswählen — springt direkt von einem Suchtreffer zu einer echten Auswahl auf der Zeichenfläche, nützlich um einen Treffer zu prüfen, bevor man sich zum Ändern entschließt.


2. Es setzt Werte, es sucht und ersetzt keinen Text

Jede Kategorie öffnet einen Dialog mit einem Feld je Eigenschaft (Beschriftung, Kommentar, Foliotitel, Leiterfarbe …). Lassen Sie ein Feld leer, bleibt diese Eigenschaft bei allem Passenden vollständig unberührt. Füllen Sie es aus, ersetzt es den Wert vollständig — kein Teilstring-Tausch, das ganze Feld wird zu dem, was Sie eingegeben haben.

Diese Unterscheidung zählt: Es gibt hier keine „X suchen, durch Y ersetzen"- Mustererkennung für Textinhalte. Wer das will, setzt das Feld jedes passenden Elements auf genau denselben neuen Wert.

Ein Feld absichtlich leeren

Da ein leeres Feld schon „nicht anfassen" bedeutet, braucht das Leeren eines Feldes ein eigenes Signal — ein Kontrollkästchen neben jedem Feld übernimmt das: Aktivieren Sie es, deaktiviert sich das Feld, und diese Eigenschaft wird bei jedem Treffer gelöscht statt unberührt gelassen. Intern läuft das über eine reservierte Platzhalter-Zeichenkette (SearchAndReplaceWorker::eraseText()), die das Kontrollkästchen für Sie setzt; Sie tippen sie nie selbst.

Jedes Feld hat also drei echte Zustände: leer (nicht anfassen), aktiviert (löschen), oder ausgefüllt (überschreiben) — nicht die üblichen zwei.


3. Was sich je Kategorie bearbeiten lässt

Entspricht den vier Zieltypen von SearchAndReplaceWorker:

Kategorie Typische Felder
Folio Titel, Autor, Revisionsindex und weitere Schriftfeldangaben
Element Beschriftung und die Standard-Elementinformationsfelder
Leiter Text, Funktion, Spannung/Protokoll, Farbe, Querschnitt, Ausrichtung
Unabhängiger Text der Textinhalt selbst

Ein erweiterter Modus fasst mehrere dieser Kategorien zu einer Operation über gemischte Auswahlen zusammen, statt Folios/Elemente/Leiter nacheinander in je einem Dialog abzuarbeiten.


4. Praktische Hinweise

  • Das ändert viel auf einmal, ohne feines Rückgängig je Element — es ist eine einzige Sammeloperation. Prüfen Sie den Geltungsbereichsbaum, bevor Sie bestätigen.
  • Da ein leeres Feld nichts bewirkt, können Sie den Dialog öffnen, nur die eine Eigenschaft anfassen, die Sie interessiert, und alles andere bei jedem Treffer bleibt garantiert unberührt — gefahrlos breit einsetzbar, solange Sie nur ausfüllen, was Sie wirklich ändern wollen.
  • Das ist eine reine Oberflächenfunktion; ein Kommandozeilen-Äquivalent gibt es nicht. Für skriptgesteuerte Sammeländerungen siehe QElectroTech automatisieren — direktes Bearbeiten des XML.

Siehe auch: Elemente verknüpfen · Variablen und Formeln