Merge pull request #1559 from DaTweety/feature/folio-crosshair

Folio-wide crosshair under the mouse (Display menu)
This commit is contained in:
Laurent Trinques
2026-10-19 17:21:08 +02:00
committed by GitHub
42 changed files with 671 additions and 0 deletions
+10
View File
@@ -12279,6 +12279,16 @@ Available options:
<source>Display or hide the grid of sheet</source>
<translation>عرض أو إخفاء شبكة الصفخات</translation>
</message>
<message>
<location filename="../sources/qetdiagrameditor.cpp" line="595"/>
<source>Folio-wide crosshair</source>
<translation>تقاطع خطين على كامل الورقة</translation>
</message>
<message>
<location filename="../sources/qetdiagrameditor.cpp" line="597"/>
<source>Show two lines across the whole folio under the mouse, to see whether parts are in line</source>
<translation>يعرض خطين عبر الورقة بأكملها تحت مؤشر الفأرة لمعرفة ما إذا كانت العناصر على استقامة واحدة</translation>
</message>
<message>
<location filename="../sources/qetdiagrameditor.cpp" line="594"/>
<source>Text grid</source>
+10
View File
@@ -12303,6 +12303,16 @@ Opcions disponibles:
<source>Display or hide the grid of sheet</source>
<translation>Mostra o oculta la quadrícula</translation>
</message>
<message>
<location filename="../sources/qetdiagrameditor.cpp" line="595"/>
<source>Folio-wide crosshair</source>
<translation>Retícula a tot el full</translation>
</message>
<message>
<location filename="../sources/qetdiagrameditor.cpp" line="597"/>
<source>Show two lines across the whole folio under the mouse, to see whether parts are in line</source>
<translation>Mostra dues línies a tot el full sota el ratolí, per veure si els elements estan alineats</translation>
</message>
<message>
<location filename="../sources/qetdiagrameditor.cpp" line="594"/>
<source>Text grid</source>
+10
View File
@@ -12077,6 +12077,16 @@ Dostupné volby:
<source>Display or hide the grid of sheet</source>
<translation>Zobrazit/Skrýt mřížku listů</translation>
</message>
<message>
<location filename="../sources/qetdiagrameditor.cpp" line="595"/>
<source>Folio-wide crosshair</source>
<translation>Zaměřovací kříž přes celý list</translation>
</message>
<message>
<location filename="../sources/qetdiagrameditor.cpp" line="597"/>
<source>Show two lines across the whole folio under the mouse, to see whether parts are in line</source>
<translation>Zobrazí pod myší dvě čáry přes celý list, aby bylo vidět, zda jsou prvky zarovnané</translation>
</message>
<message>
<location filename="../sources/qetdiagrameditor.cpp" line="693"/>
<source>Sheet properties</source>
+10
View File
@@ -12033,6 +12033,16 @@ Kommandovalg:
<source>Display or hide the grid of sheet</source>
<translation>Vis eller skjul ark gitter</translation>
</message>
<message>
<location filename="../sources/qetdiagrameditor.cpp" line="595"/>
<source>Folio-wide crosshair</source>
<translation>Trådkors over hele arket</translation>
</message>
<message>
<location filename="../sources/qetdiagrameditor.cpp" line="597"/>
<source>Show two lines across the whole folio under the mouse, to see whether parts are in line</source>
<translation>Viser to linjer over hele arket under musen for at se, om delene flugter</translation>
</message>
<message>
<location filename="../sources/qetdiagrameditor.cpp" line="693"/>
<source>Sheet properties</source>
+10
View File
@@ -12557,6 +12557,16 @@ Verfügbare Optionen:
<source>Display or hide the grid of sheet</source>
<translation>Zeige den Hintergrundsraster der Seiten an</translation>
</message>
<message>
<location filename="../sources/qetdiagrameditor.cpp" line="595"/>
<source>Folio-wide crosshair</source>
<translation>Fadenkreuz über die ganze Seite</translation>
</message>
<message>
<location filename="../sources/qetdiagrameditor.cpp" line="597"/>
<source>Show two lines across the whole folio under the mouse, to see whether parts are in line</source>
<translation>Zeigt unter dem Mauszeiger zwei Linien über die ganze Seite, um zu sehen, ob Teile fluchten</translation>
</message>
<message>
<location filename="../sources/qetdiagrameditor.cpp" line="1043"/>
<source>Add row</source>
+10
View File
@@ -13662,6 +13662,16 @@ To make a script of it, ask your AI assistant: the button below copies the reque
<source>Display or hide the grid of sheet</source>
<translation>Εμφάνιση ή απόκρυψη του δικτυώματος της σελίδας</translation>
</message>
<message>
<location filename="../sources/qetdiagrameditor.cpp" line="595"/>
<source>Folio-wide crosshair</source>
<translation>Σταυρόνημα σε όλο το φύλλο</translation>
</message>
<message>
<location filename="../sources/qetdiagrameditor.cpp" line="597"/>
<source>Show two lines across the whole folio under the mouse, to see whether parts are in line</source>
<translation>Εμφανίζει δύο γραμμές σε όλο το φύλλο κάτω από το ποντίκι, για να φαίνεται αν τα στοιχεία είναι ευθυγραμμισμένα</translation>
</message>
<message>
<location filename="../sources/qetdiagrameditor.cpp" line="621"/>
<source>View the guides</source>
+10
View File
@@ -12162,6 +12162,16 @@ Available options:
<source>Display or hide the grid of sheet</source>
<translation>Display or hide the grid of sheet</translation>
</message>
<message>
<location filename="../sources/qetdiagrameditor.cpp" line="595"/>
<source>Folio-wide crosshair</source>
<translation>Folio-wide crosshair</translation>
</message>
<message>
<location filename="../sources/qetdiagrameditor.cpp" line="597"/>
<source>Show two lines across the whole folio under the mouse, to see whether parts are in line</source>
<translation>Show two lines across the whole folio under the mouse, to see whether parts are in line</translation>
</message>
<message>
<location filename="../sources/qetdiagrameditor.cpp" line="693"/>
<source>Sheet properties</source>
+10
View File
@@ -12278,6 +12278,16 @@ Opciones disponibles:
<source>Display or hide the grid of sheet</source>
<translation>Muestra u oculta la cuadrícula</translation>
</message>
<message>
<location filename="../sources/qetdiagrameditor.cpp" line="595"/>
<source>Folio-wide crosshair</source>
<translation>Retícula en toda la hoja</translation>
</message>
<message>
<location filename="../sources/qetdiagrameditor.cpp" line="597"/>
<source>Show two lines across the whole folio under the mouse, to see whether parts are in line</source>
<translation>Muestra dos líneas en toda la hoja bajo el ratón, para ver si los elementos están alineados</translation>
</message>
<message>
<location filename="../sources/qetdiagrameditor.cpp" line="594"/>
<source>Text grid</source>
+10
View File
@@ -11839,6 +11839,16 @@ Available options:
<source>Display or hide the grid of sheet</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../sources/qetdiagrameditor.cpp" line="595"/>
<source>Folio-wide crosshair</source>
<translation>Hiusristikko koko arkin yli</translation>
</message>
<message>
<location filename="../sources/qetdiagrameditor.cpp" line="597"/>
<source>Show two lines across the whole folio under the mouse, to see whether parts are in line</source>
<translation>Näyttää hiiren kohdalla kaksi viivaa koko arkin yli, jotta näkee, ovatko osat linjassa</translation>
</message>
<message>
<location filename="../sources/qetdiagrameditor.cpp" line="693"/>
<source>Sheet properties</source>
+10
View File
@@ -12242,6 +12242,16 @@ Options disponibles :
<source>Display or hide the grid of sheet</source>
<translation>Affiche ou masque la grille des folios</translation>
</message>
<message>
<location filename="../sources/qetdiagrameditor.cpp" line="595"/>
<source>Folio-wide crosshair</source>
<translation>Réticule sur tout le folio</translation>
</message>
<message>
<location filename="../sources/qetdiagrameditor.cpp" line="597"/>
<source>Show two lines across the whole folio under the mouse, to see whether parts are in line</source>
<translation>Affiche deux lignes sur tout le folio sous la souris, pour voir si les éléments sont alignés</translation>
</message>
<message>
<location filename="../sources/qetdiagrameditor.cpp" line="693"/>
<source>Sheet properties</source>
+10
View File
@@ -12101,6 +12101,16 @@ Dostupne opcije:
<source>Display or hide the grid of sheet</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../sources/qetdiagrameditor.cpp" line="595"/>
<source>Folio-wide crosshair</source>
<translation>Križić preko cijelog lista</translation>
</message>
<message>
<location filename="../sources/qetdiagrameditor.cpp" line="597"/>
<source>Show two lines across the whole folio under the mouse, to see whether parts are in line</source>
<translation>Prikazuje dvije linije preko cijelog lista ispod miša, kako bi se vidjelo jesu li dijelovi poravnati</translation>
</message>
<message>
<location filename="../sources/qetdiagrameditor.cpp" line="594"/>
<source>Text grid</source>
+10
View File
@@ -12019,6 +12019,16 @@ Elérhető lehetőségek:
<source>Display or hide the grid of sheet</source>
<translation>Megjeleníti vagy elrejti a tervlap rácsát</translation>
</message>
<message>
<location filename="../sources/qetdiagrameditor.cpp" line="595"/>
<source>Folio-wide crosshair</source>
<translation>Szálkereszt a teljes lapon</translation>
</message>
<message>
<location filename="../sources/qetdiagrameditor.cpp" line="597"/>
<source>Show two lines across the whole folio under the mouse, to see whether parts are in line</source>
<translation>Két vonalat mutat a teljes lapon az egér alatt, hogy látszódjon, egy vonalban vannak-e az elemek</translation>
</message>
<message>
<location filename="../sources/qetdiagrameditor.cpp" line="693"/>
<source>Sheet properties</source>
+10
View File
@@ -12171,6 +12171,16 @@ Ecco gli ultimi messaggi registrati prima della chiusura — puoi salvarli per i
<source>Display or hide the grid of sheet</source>
<translation>Visualizzare o nasacondere la griglia delle pagina</translation>
</message>
<message>
<location filename="../sources/qetdiagrameditor.cpp" line="595"/>
<source>Folio-wide crosshair</source>
<translation>Mirino su tutta la pagina</translation>
</message>
<message>
<location filename="../sources/qetdiagrameditor.cpp" line="597"/>
<source>Show two lines across the whole folio under the mouse, to see whether parts are in line</source>
<translation>Mostra due linee su tutta la pagina sotto il mouse, per vedere se gli elementi sono allineati</translation>
</message>
<message>
<location filename="../sources/qetdiagrameditor.cpp" line="955"/>
<source>Select</source>
+10
View File
@@ -12303,6 +12303,16 @@ Available options:
<source>Display or hide the grid of sheet</source>
<translation>フォリオのグリッドの表示/非表示</translation>
</message>
<message>
<location filename="../sources/qetdiagrameditor.cpp" line="595"/>
<source>Folio-wide crosshair</source>
<translation>シート全体の十字カーソル</translation>
</message>
<message>
<location filename="../sources/qetdiagrameditor.cpp" line="597"/>
<source>Show two lines across the whole folio under the mouse, to see whether parts are in line</source>
<translation>マウス位置にシート全体を横切る2本の線を表示し、部品が揃っているか確認します</translation>
</message>
<message>
<location filename="../sources/qetdiagrameditor.cpp" line="594"/>
<source>Text grid</source>
+10
View File
@@ -11935,6 +11935,16 @@ Available options:
<source>Display or hide the grid of sheet</source>
<translation>시트의 격자를 표시하거나 숨깁니다</translation>
</message>
<message>
<location filename="../sources/qetdiagrameditor.cpp" line="595"/>
<source>Folio-wide crosshair</source>
<translation>시트 전체 십자선</translation>
</message>
<message>
<location filename="../sources/qetdiagrameditor.cpp" line="597"/>
<source>Show two lines across the whole folio under the mouse, to see whether parts are in line</source>
<translation>마우스 아래에 시트 전체를 가로지르는 두 선을 표시하여 부품이 정렬되었는지 확인합니다</translation>
</message>
<message>
<location filename="../sources/qetdiagrameditor.cpp" line="693"/>
<source>Sheet properties</source>
+10
View File
@@ -12045,6 +12045,16 @@ Available options:
<source>Display or hide the grid of sheet</source>
<translation>Хуудасны хэрээсийг харуулах эсвэл нуух</translation>
</message>
<message>
<location filename="../sources/qetdiagrameditor.cpp" line="595"/>
<source>Folio-wide crosshair</source>
<translation>Бүтэн хуудасны загалмай заагч</translation>
</message>
<message>
<location filename="../sources/qetdiagrameditor.cpp" line="597"/>
<source>Show two lines across the whole folio under the mouse, to see whether parts are in line</source>
<translation>Хулганы доор бүтэн хуудсыг дайрсан хоёр шугам харуулж, эд ангиуд нэг шугамд байгаа эсэхийг харна</translation>
</message>
<message>
<location filename="../sources/qetdiagrameditor.cpp" line="693"/>
<source>Sheet properties</source>
+10
View File
@@ -12060,6 +12060,16 @@ Tilgjengelige opsjoner:
<source>Display or hide the grid of sheet</source>
<translation>Vis rasteret på sidene</translation>
</message>
<message>
<location filename="../sources/qetdiagrameditor.cpp" line="595"/>
<source>Folio-wide crosshair</source>
<translation>Trådkors over hele arket</translation>
</message>
<message>
<location filename="../sources/qetdiagrameditor.cpp" line="597"/>
<source>Show two lines across the whole folio under the mouse, to see whether parts are in line</source>
<translation>Viser to linjer over hele arket under musepekeren for å se om delene står på linje</translation>
</message>
<message>
<location filename="../sources/qetdiagrameditor.cpp" line="693"/>
<source>Sheet properties</source>
+10
View File
@@ -12029,6 +12029,16 @@ Opties :
<source>Display or hide the grid of sheet</source>
<translation>Toon of verberg het raster</translation>
</message>
<message>
<location filename="../sources/qetdiagrameditor.cpp" line="595"/>
<source>Folio-wide crosshair</source>
<translation>Dradenkruis over het hele blad</translation>
</message>
<message>
<location filename="../sources/qetdiagrameditor.cpp" line="597"/>
<source>Show two lines across the whole folio under the mouse, to see whether parts are in line</source>
<translation>Toont twee lijnen over het hele blad onder de muis, om te zien of onderdelen uitgelijnd zijn</translation>
</message>
<message>
<location filename="../sources/qetdiagrameditor.cpp" line="693"/>
<source>Sheet properties</source>
+10
View File
@@ -12076,6 +12076,16 @@ Beschikbare opties:
<source>Display or hide the grid of sheet</source>
<translation>Verbergen of weergeven raster op de bladzijden</translation>
</message>
<message>
<location filename="../sources/qetdiagrameditor.cpp" line="595"/>
<source>Folio-wide crosshair</source>
<translation>Dradenkruis over het hele blad</translation>
</message>
<message>
<location filename="../sources/qetdiagrameditor.cpp" line="597"/>
<source>Show two lines across the whole folio under the mouse, to see whether parts are in line</source>
<translation>Toont twee lijnen over het hele blad onder de muis, om te zien of onderdelen uitgelijnd zijn</translation>
</message>
<message>
<location filename="../sources/qetdiagrameditor.cpp" line="693"/>
<source>Sheet properties</source>
+10
View File
@@ -10263,6 +10263,16 @@ Available options:
<source>Display or hide the grid of sheet</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../sources/qetdiagrameditor.cpp" line="595"/>
<source>Folio-wide crosshair</source>
<translation>Dradenkruis over het hele blad</translation>
</message>
<message>
<location filename="../sources/qetdiagrameditor.cpp" line="597"/>
<source>Show two lines across the whole folio under the mouse, to see whether parts are in line</source>
<translation>Toont twee lijnen over het hele blad onder de muis, om te zien of onderdelen uitgelijnd zijn</translation>
</message>
<message>
<location filename="../sources/qetdiagrameditor.cpp" line="567"/>
<source>Text grid</source>
+10
View File
@@ -12446,6 +12446,16 @@ Available options:
<source>Display or hide the grid of sheet</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../sources/qetdiagrameditor.cpp" line="595"/>
<source>Folio-wide crosshair</source>
<translation>Trådkors over hele arket</translation>
</message>
<message>
<location filename="../sources/qetdiagrameditor.cpp" line="597"/>
<source>Show two lines across the whole folio under the mouse, to see whether parts are in line</source>
<translation>Viser to linjer over hele arket under musepekeren for å se om delene står på linje</translation>
</message>
<message>
<location filename="../sources/qetdiagrameditor.cpp" line="594"/>
<source>Text grid</source>
+10
View File
@@ -12238,6 +12238,16 @@ Dostępne opcje:
<source>Display or hide the grid of sheet</source>
<translation>Pokaż lub ukryj sietkę arkuszy</translation>
</message>
<message>
<location filename="../sources/qetdiagrameditor.cpp" line="595"/>
<source>Folio-wide crosshair</source>
<translation>Krzyż celowniczy na całym arkuszu</translation>
</message>
<message>
<location filename="../sources/qetdiagrameditor.cpp" line="597"/>
<source>Show two lines across the whole folio under the mouse, to see whether parts are in line</source>
<translation>Pokazuje dwie linie przez cały arkusz pod kursorem, aby sprawdzić, czy elementy są wyrównane</translation>
</message>
<message>
<location filename="../sources/qetdiagrameditor.cpp" line="693"/>
<source>Sheet properties</source>
+10
View File
@@ -12243,6 +12243,16 @@ Opções disponiveis:
<source>Display or hide the grid of sheet</source>
<translation>Mostrar ou ocultar a grelha da folha</translation>
</message>
<message>
<location filename="../sources/qetdiagrameditor.cpp" line="595"/>
<source>Folio-wide crosshair</source>
<translation>Mira em toda a folha</translation>
</message>
<message>
<location filename="../sources/qetdiagrameditor.cpp" line="597"/>
<source>Show two lines across the whole folio under the mouse, to see whether parts are in line</source>
<translation>Mostra duas linhas em toda a folha sob o rato, para ver se os elementos estão alinhados</translation>
</message>
<message>
<location filename="../sources/qetdiagrameditor.cpp" line="594"/>
<source>Text grid</source>
+10
View File
@@ -12173,6 +12173,16 @@ Opções disponíveis:
<source>Display or hide the grid of sheet</source>
<translation>Mostrar ou ocultar a grade das páginas</translation>
</message>
<message>
<location filename="../sources/qetdiagrameditor.cpp" line="595"/>
<source>Folio-wide crosshair</source>
<translation>Mira em toda a folha</translation>
</message>
<message>
<location filename="../sources/qetdiagrameditor.cpp" line="597"/>
<source>Show two lines across the whole folio under the mouse, to see whether parts are in line</source>
<translation>Mostra duas linhas em toda a folha sob o mouse, para ver se os elementos estão alinhados</translation>
</message>
<message>
<location filename="../sources/qetdiagrameditor.cpp" line="693"/>
<source>Sheet properties</source>
+10
View File
@@ -12458,6 +12458,16 @@ Opțiuni disponibile:
<source>Display or hide the grid of sheet</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../sources/qetdiagrameditor.cpp" line="595"/>
<source>Folio-wide crosshair</source>
<translation>Reticul pe toată foaia</translation>
</message>
<message>
<location filename="../sources/qetdiagrameditor.cpp" line="597"/>
<source>Show two lines across the whole folio under the mouse, to see whether parts are in line</source>
<translation>Afișează două linii pe toată foaia sub mouse, pentru a vedea dacă elementele sunt aliniate</translation>
</message>
<message>
<location filename="../sources/qetdiagrameditor.cpp" line="594"/>
<source>Text grid</source>
+10
View File
@@ -12090,6 +12090,16 @@ Available options:
<source>Display or hide the grid of sheet</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../sources/qetdiagrameditor.cpp" line="595"/>
<source>Folio-wide crosshair</source>
<translation>Nišanski krst preko celog lista</translation>
</message>
<message>
<location filename="../sources/qetdiagrameditor.cpp" line="597"/>
<source>Show two lines across the whole folio under the mouse, to see whether parts are in line</source>
<translation>Prikazuje dve linije preko celog lista ispod miša, da bi se videlo da li su delovi poravnati</translation>
</message>
<message>
<location filename="../sources/qetdiagrameditor.cpp" line="594"/>
<source>Text grid</source>
+10
View File
@@ -12382,6 +12382,16 @@ Available options:
<source>Display or hide the grid of sheet</source>
<translation>Показать или скрыть сетку листа</translation>
</message>
<message>
<location filename="../sources/qetdiagrameditor.cpp" line="595"/>
<source>Folio-wide crosshair</source>
<translation>Перекрестие на весь лист</translation>
</message>
<message>
<location filename="../sources/qetdiagrameditor.cpp" line="597"/>
<source>Show two lines across the whole folio under the mouse, to see whether parts are in line</source>
<translation>Показывает под указателем мыши две линии через весь лист, чтобы видеть, выровнены ли элементы</translation>
</message>
<message>
<location filename="../sources/qetdiagrameditor.cpp" line="594"/>
<source>Text grid</source>
+10
View File
@@ -12031,6 +12031,16 @@ Dostupné možnosti:
<source>Display or hide the grid of sheet</source>
<translation>Zobraziť/Schovať mriežku listov</translation>
</message>
<message>
<location filename="../sources/qetdiagrameditor.cpp" line="595"/>
<source>Folio-wide crosshair</source>
<translation>Zameriavací kríž cez celý list</translation>
</message>
<message>
<location filename="../sources/qetdiagrameditor.cpp" line="597"/>
<source>Show two lines across the whole folio under the mouse, to see whether parts are in line</source>
<translation>Zobrazí pod myšou dve čiary cez celý list, aby bolo vidieť, či sú prvky zarovnané</translation>
</message>
<message>
<location filename="../sources/qetdiagrameditor.cpp" line="693"/>
<source>Sheet properties</source>
+10
View File
@@ -12134,6 +12134,16 @@ Available options:
<source>Display or hide the grid of sheet</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../sources/qetdiagrameditor.cpp" line="595"/>
<source>Folio-wide crosshair</source>
<translation>Merilni križ čez cel list</translation>
</message>
<message>
<location filename="../sources/qetdiagrameditor.cpp" line="597"/>
<source>Show two lines across the whole folio under the mouse, to see whether parts are in line</source>
<translation>Pod miško prikaže dve črti čez cel list, da se vidi, ali so deli poravnani</translation>
</message>
<message>
<location filename="../sources/qetdiagrameditor.cpp" line="594"/>
<source>Text grid</source>
+10
View File
@@ -12090,6 +12090,16 @@ Available options:
<source>Display or hide the grid of sheet</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../sources/qetdiagrameditor.cpp" line="595"/>
<source>Folio-wide crosshair</source>
<translation>Нишански крст преко целог листа</translation>
</message>
<message>
<location filename="../sources/qetdiagrameditor.cpp" line="597"/>
<source>Show two lines across the whole folio under the mouse, to see whether parts are in line</source>
<translation>Приказује две линије преко целог листа испод миша, да би се видело да ли су делови поравнати</translation>
</message>
<message>
<location filename="../sources/qetdiagrameditor.cpp" line="594"/>
<source>Text grid</source>
+10
View File
@@ -12274,6 +12274,16 @@ Tillgängliga alternativ :
<source>Display or hide the grid of sheet</source>
<translation>Visar eller döljer rutnät på blad</translation>
</message>
<message>
<location filename="../sources/qetdiagrameditor.cpp" line="595"/>
<source>Folio-wide crosshair</source>
<translation>Hårkors över hela bladet</translation>
</message>
<message>
<location filename="../sources/qetdiagrameditor.cpp" line="597"/>
<source>Show two lines across the whole folio under the mouse, to see whether parts are in line</source>
<translation>Visar två linjer över hela bladet under musen för att se om delarna är i linje</translation>
</message>
<message>
<location filename="../sources/qetdiagrameditor.cpp" line="594"/>
<source>Text grid</source>
+10
View File
@@ -12080,6 +12080,16 @@ Mevcut seçenekler:
<source>Display or hide the grid of sheet</source>
<translation>Sayfaların ızgarasını göster veya gizle</translation>
</message>
<message>
<location filename="../sources/qetdiagrameditor.cpp" line="595"/>
<source>Folio-wide crosshair</source>
<translation>Tüm sayfa boyunca artı imleç</translation>
</message>
<message>
<location filename="../sources/qetdiagrameditor.cpp" line="597"/>
<source>Show two lines across the whole folio under the mouse, to see whether parts are in line</source>
<translation>Parçaların hizalı olup olmadığını görmek için farenin altında tüm sayfa boyunca iki çizgi gösterir</translation>
</message>
<message>
<location filename="../sources/qetdiagrameditor.cpp" line="693"/>
<source>Sheet properties</source>
+10
View File
@@ -12440,6 +12440,16 @@ Available options:
<source>Display or hide the grid of sheet</source>
<translation></translation>
</message>
<message>
<location filename="../sources/qetdiagrameditor.cpp" line="595"/>
<source>Folio-wide crosshair</source>
<translation>Перехрестя на весь аркуш</translation>
</message>
<message>
<location filename="../sources/qetdiagrameditor.cpp" line="597"/>
<source>Show two lines across the whole folio under the mouse, to see whether parts are in line</source>
<translation>Показує під вказівником миші дві лінії через увесь аркуш, щоб бачити, чи вирівняні елементи</translation>
</message>
<message>
<location filename="../sources/qetdiagrameditor.cpp" line="594"/>
<source>Text grid</source>
+10
View File
@@ -12089,6 +12089,16 @@ Available options:
<source>Display or hide the grid of sheet</source>
<translation>显示或隐藏页面网格</translation>
</message>
<message>
<location filename="../sources/qetdiagrameditor.cpp" line="595"/>
<source>Folio-wide crosshair</source>
<translation>整页十字光标</translation>
</message>
<message>
<location filename="../sources/qetdiagrameditor.cpp" line="597"/>
<source>Show two lines across the whole folio under the mouse, to see whether parts are in line</source>
<translation>在鼠标处显示贯穿整页的两条线,以查看元件是否对齐</translation>
</message>
<message>
<location filename="../sources/qetdiagrameditor.cpp" line="693"/>
<source>Sheet properties</source>
+10
View File
@@ -12089,6 +12089,16 @@ Available options:
<source>Display or hide the grid of sheet</source>
<translation>顯示或隱藏頁面網格</translation>
</message>
<message>
<location filename="../sources/qetdiagrameditor.cpp" line="595"/>
<source>Folio-wide crosshair</source>
<translation>整頁十字游標</translation>
</message>
<message>
<location filename="../sources/qetdiagrameditor.cpp" line="597"/>
<source>Show two lines across the whole folio under the mouse, to see whether parts are in line</source>
<translation>在滑鼠處顯示貫穿整頁的兩條線,以檢查元件是否對齊</translation>
</message>
<message>
<location filename="../sources/qetdiagrameditor.cpp" line="693"/>
<source>Sheet properties</source>
+116
View File
@@ -47,6 +47,7 @@
#include "utils/conductorcreator.h"
#include "undocommand/addgraphicsobjectcommand.h"
#include "diagram.h"
#include <QSettings>
#include "foliogrid.h"
#include "diagramcontexttoolbar.h"
#include "imagedrop.h"
@@ -1040,6 +1041,7 @@ void DiagramView::mouseMoveEvent(QMouseEvent *e)
{
m_last_mouse_pos = e->pos();
setToolTip(tr("X: %1 Y: %2").arg(e->pos().x()).arg(e->pos().y()));
moveCrosshair(e->pos());
if (m_event_interface && m_event_interface->mouseMoveEvent(e)) return;
if (m_gesture_tracking)
@@ -1840,6 +1842,117 @@ void DiagramView::setCellLinesShown(bool shown)
viewport()->update();
}
namespace {
/// The setting, read once and then kept here for every view
int s_crosshair = -1;
}
/**
@brief DiagramView::crosshairShown
@return true when the folio-wide crosshair follows the mouse: two thin
lines across the whole folio, through the grid point under the mouse,
to see at a glance whether symbols and terminals are in line. Drawn
on screen only, never exported nor printed.
*/
bool DiagramView::crosshairShown()
{
if (s_crosshair < 0) {
QSettings settings;
s_crosshair = settings.value(QStringLiteral("diagrameditor/crosshair"), false).toBool();
}
return s_crosshair;
}
/**
@brief DiagramView::setCrosshairShown
@param shown : show the folio-wide crosshair in every view; kept in
the settings. The views repaint themselves at the next mouse move.
*/
void DiagramView::setCrosshairShown(bool shown)
{
s_crosshair = shown;
QSettings settings;
settings.setValue(QStringLiteral("diagrameditor/crosshair"), shown);
}
/**
@brief DiagramView::crosshairArea
@return the part of the viewport the two lines through @a scene_pos
cover, a little wider than the lines
*/
QRect DiagramView::crosshairArea(const QPointF &scene_pos) const
{
const QPoint p = mapFromScene(scene_pos);
const QRect all = viewport()->rect();
return QRect(all.left(), p.y() - 2, all.width(), 5)
| QRect(p.x() - 2, all.top(), 5, all.height());
}
/**
@brief DiagramView::moveCrosshair
Follow the mouse with the crosshair, on the grid, repainting only the
lines it leaves and the lines it draws.
@param viewport_pos : the mouse, in viewport coordinates
*/
void DiagramView::moveCrosshair(const QPoint &viewport_pos)
{
if (!crosshairShown()) {
hideCrosshair();
return;
}
const QPointF pos = Diagram::snapToGrid(mapToScene(viewport_pos));
if (m_crosshair_visible && pos == m_crosshair_pos)
return;
if (m_crosshair_visible)
viewport()->update(crosshairArea(m_crosshair_pos));
m_crosshair_pos = pos;
m_crosshair_visible = true;
viewport()->update(crosshairArea(m_crosshair_pos));
}
/**
@brief DiagramView::hideCrosshair
Take the crosshair away, when the mouse leaves the view or the
setting is switched off.
*/
void DiagramView::hideCrosshair()
{
if (!m_crosshair_visible)
return;
m_crosshair_visible = false;
viewport()->update(crosshairArea(m_crosshair_pos));
}
/**
@brief DiagramView::drawForeground
Over everything else, the folio-wide crosshair, inside the folio's
border only.
@param painter
@param rect
*/
void DiagramView::drawForeground(QPainter *painter, const QRectF &rect)
{
PaletteGraphicsView::drawForeground(painter, rect);
if (!m_crosshair_visible || !crosshairShown() || !m_diagram)
return;
const QRectF area = m_diagram->border_and_titleblock.insideBorderRect();
if (!area.contains(m_crosshair_pos))
return;
QPainter *p = scenePainter(painter);
p->save();
QPen pen(Diagram::background_color == Qt::darkGray ? QColor(Qt::lightGray)
: QColor(0, 120, 215));
pen.setCosmetic(true);
pen.setWidthF(0);
p->setPen(pen);
p->setRenderHint(QPainter::Antialiasing, false);
p->drawLine(QLineF(area.left(), m_crosshair_pos.y(), area.right(), m_crosshair_pos.y()));
p->drawLine(QLineF(m_crosshair_pos.x(), area.top(), m_crosshair_pos.x(), area.bottom()));
p->restore();
}
/**
@brief DiagramView::drawBackground
Reimplemented from PaletteGraphicsView: over the folio background, the
@@ -1976,6 +2089,9 @@ bool DiagramView::viewportEvent(QEvent *event)
if (event->type() == QEvent::Resize) {
placeCellRulers();
}
if (event->type() == QEvent::Leave) {
hideCrosshair();
}
return PaletteGraphicsView::viewportEvent(event);
}
+12
View File
@@ -74,6 +74,11 @@ class DiagramView : public PaletteGraphicsView
QPoint m_gesture_origin;
DiagramGestureOverlay *m_gesture_overlay = nullptr;
QPoint m_last_mouse_pos = QPoint(-1, -1);
QPointF m_crosshair_pos;
bool m_crosshair_visible = false;
void moveCrosshair(const QPoint &viewport_pos);
void hideCrosshair();
QRect crosshairArea(const QPointF &scene_pos) const;
QPointF m_drag_last_pos;
bool m_fresh_focus_in,
m_first_activation = true;
@@ -111,6 +116,12 @@ class DiagramView : public PaletteGraphicsView
QPointF defaultPlacementPos() const;
void setCellRulersShown(bool shown);
void setCellLinesShown(bool shown);
/// The folio-wide crosshair under the mouse (Display menu),
/// one setting for every view
static bool crosshairShown();
static void setCrosshairShown(bool shown);
bool crosshairVisible() const { return m_crosshair_visible; }
QPointF crosshairPos() const { return m_crosshair_pos; }
protected:
void mouseDoubleClickEvent(QMouseEvent *) override;
@@ -127,6 +138,7 @@ class DiagramView : public PaletteGraphicsView
void paintEvent(QPaintEvent *event) override;
bool viewportEvent(QEvent *event) override;
void drawBackground(QPainter *painter, const QRectF &rect) override;
void drawForeground(QPainter *painter, const QRectF &rect) override;
void paintingInverted(bool inverted) override;
void mousePressEvent(QMouseEvent *) override;
void mouseMoveEvent(QMouseEvent *) override;
+14
View File
@@ -590,6 +590,19 @@ void QETDiagramEditor::setUpActions()
}
});
//A crosshair across the whole folio under the mouse, to see
//whether symbols and terminals are in line
m_crosshair = new QAction(tr("Folio-wide crosshair"), this);
ShortcutManager::instance().registerAction(m_crosshair, "diagrameditor.crosshair", tr("Diagram editors"), QKeySequence());
m_crosshair->setStatusTip(tr("Show two lines across the whole folio under the mouse, to see whether parts are in line"));
m_crosshair->setCheckable(true);
m_crosshair->setChecked(DiagramView::crosshairShown());
connect(m_crosshair, &QAction::triggered, [this](bool checked) {
DiagramView::setCrosshairShown(checked);
for (DiagramView *view : findChildren<DiagramView *>())
view->viewport()->update();
});
//Snap step for dragged texts, as a fraction of the folio grid
m_text_grid_menu = new QMenu(tr("Text grid"), this);
m_text_grid_menu->setIcon(QET::Icons::Grid);
@@ -1703,6 +1716,7 @@ void QETDiagramEditor::setUpMenu()
menu_affichage -> addAction(m_mode_visualise);
menu_affichage -> addSeparator();
menu_affichage -> addAction(m_draw_grid);
menu_affichage -> addAction(m_crosshair);
menu_affichage -> addMenu(m_text_grid_menu);
menu_affichage -> addAction(m_draw_guides);
menu_affichage -> addAction(m_cell_rulers);
+1
View File
@@ -264,6 +264,7 @@ class QETDiagramEditor : public QETMainWindow
*m_configure_duplicate, ///< Reopen the duplicate offset/direction dialog (#991)
*m_auto_conductor, ///< Enable/Disable the use of auto conductor
*m_auto_break_conductor, ///< Enable/Disable the use of auto break conductor
*m_crosshair, ///< Show the folio-wide crosshair
*m_add_cable = nullptr, ///< Draw the trunk line of a cable
*m_draw_grid, ///< Switch the background grid display or not
*m_draw_guides = nullptr, ///< Switch the custom guides display or not
+9
View File
@@ -103,6 +103,15 @@ if(Python3_Interpreter_FOUND AND CMAKE_GENERATOR STREQUAL "Ninja")
--source ${CMAKE_CURRENT_SOURCE_DIR}/cable_undo_probe.cpp
--fixture ${CMAKE_CURRENT_SOURCE_DIR}/fixtures/unlinked_contact_label.qet)
set_tests_properties(tst_cableundointegration PROPERTIES TIMEOUT 300 RUN_SERIAL TRUE)
# The folio-wide crosshair follows the mouse on the grid, on screen
# only, and goes when the mouse leaves or the option is off.
add_test(NAME tst_crosshairintegration
COMMAND ${Python3_EXECUTABLE} ${CMAKE_CURRENT_SOURCE_DIR}/run_crosshair_probe.py
--build ${CMAKE_BINARY_DIR} --binary $<TARGET_FILE:qelectrotech>
--source ${CMAKE_CURRENT_SOURCE_DIR}/crosshair_probe.cpp
--fixture ${CMAKE_CURRENT_SOURCE_DIR}/fixtures/unlinked_contact_label.qet)
set_tests_properties(tst_crosshairintegration PROPERTIES TIMEOUT 300 RUN_SERIAL TRUE
ENVIRONMENT "QT_QPA_PLATFORM=offscreen")
endif()
if(Python3_Interpreter_FOUND AND CMAKE_GENERATOR STREQUAL "Ninja")
add_test(NAME tst_darkimageintegration
+109
View File
@@ -0,0 +1,109 @@
// SPDX-License-Identifier: GPL-2.0-or-later
// The folio-wide crosshair, linked against the application's objects.
//
// With the Display option on, two lines cross the whole folio through the
// grid point under the mouse, to see at a glance whether parts are in
// line. They are drawn on screen only: no item is added to the folio, so
// nothing of them is saved, exported or printed. They go when the mouse
// leaves the view and when the option is off, and the option is kept in
// the settings.
#include <QApplication>
#include <QFontDatabase>
#include <QImage>
#include <QMouseEvent>
#include <QSettings>
#include <QTemporaryDir>
#include <cstdio>
#include <stdexcept>
#include "../../sources/diagram.h"
#include "../../sources/diagramview.h"
#include "../../sources/qetproject.h"
#include "../../sources/qetmessagebox.h"
static void check(bool value, const char *message)
{
if (!value) throw std::runtime_error(message);
std::printf("ok: %s\n", message);
}
static void moveTo(DiagramView &view, const QPoint &p)
{
QMouseEvent event(QEvent::MouseMove, QPointF(p), view.viewport()->mapToGlobal(QPointF(p)),
Qt::NoButton, Qt::NoButton, Qt::NoModifier);
QApplication::sendEvent(view.viewport(), &event);
}
/// How many pixels of the crosshair colour lie along one row of the view
static int bluePixels(const QImage &image, int row)
{
int n = 0;
for (int x = 0; x < image.width(); ++x) {
const QColor c = image.pixelColor(x, row);
if (c.blue() > 150 && c.red() < 80) ++n;
}
return n;
}
int main(int argc, char **argv)
{
QApplication app(argc, argv);
std::freopen(argv[2], "w", stdout);
QTemporaryDir settings;
QSettings::setDefaultFormat(QSettings::IniFormat);
QSettings::setPath(QSettings::IniFormat, QSettings::UserScope, settings.path());
QCoreApplication::setOrganizationName("QETCrosshairRegression");
QETProject::setBackupEnabled(false);
QET::QetMessageBox::setNonInteractive(true);
QFontDatabase::addApplicationFont(":/fonts/LiberationSans-Regular.ttf");
try
{
QETProject project(QString::fromLocal8Bit(argv[1]));
check(project.state() == QETProject::Ok, "fixture opens");
project.buildFolios(project.diagrams());
Diagram *folio = project.diagrams().first();
DiagramView view(folio);
view.resize(800, 600);
view.centerOn(folio->border_and_titleblock.insideBorderRect().center());
QApplication::processEvents();
const int items = folio->items().size();
check(!DiagramView::crosshairShown(), "off by default");
const QPoint mouse(403, 297);
moveTo(view, mouse);
check(!view.crosshairVisible(), "no crosshair while the option is off");
DiagramView::setCrosshairShown(true);
moveTo(view, mouse);
check(view.crosshairVisible(), "the crosshair follows the mouse once on");
const QPointF at = view.crosshairPos();
check(at == Diagram::snapToGrid(view.mapToScene(mouse)), "it stands on the grid point under the mouse");
check(folio->items().size() == items, "nothing is added to the folio");
const QImage image = view.viewport()->grab().toImage();
const int row = view.mapFromScene(at).y();
check(bluePixels(image, row) > image.width() / 2, "a line crosses the view through that point");
check(bluePixels(image, row + 20) < image.width() / 4, "and not elsewhere");
QEvent leave(QEvent::Leave);
QApplication::sendEvent(view.viewport(), &leave);
check(!view.crosshairVisible(), "it goes when the mouse leaves the view");
DiagramView::setCrosshairShown(false);
moveTo(view, mouse);
check(!view.crosshairVisible(), "and when the option is switched off");
check(!QSettings().value("diagrameditor/crosshair").toBool(), "the option is kept in the settings");
std::puts("PASS");
}
catch (const std::exception &error)
{
std::printf("FAIL: %s\n", error.what());
std::fflush(stdout);
return 1;
}
std::fflush(stdout);
return 0;
}
+60
View File
@@ -0,0 +1,60 @@
#!/usr/bin/env python3
"""Link the crosshair integration probe using an existing Ninja app build.
Reuses app objects without duplicating the app or introducing a core-library
refactor. No application source or existing executable is replaced. The
generated manifest, probe binary, reports and export fixtures stay in build/.
"""
import argparse
import pathlib
import re
import shutil
import subprocess
import sys
parser = argparse.ArgumentParser()
parser.add_argument('--build', required=True)
parser.add_argument('--binary', required=True)
parser.add_argument('--source', required=True)
parser.add_argument('--fixture', required=True)
args = parser.parse_args()
build = pathlib.Path(args.build).resolve()
binary = pathlib.Path(args.binary).resolve()
source = pathlib.Path(args.source).resolve()
fixture = pathlib.Path(args.fixture).resolve()
manifest = (build / 'build.ninja').read_text(encoding='utf-8')
match = re.search(r'^build (\S*?/sources/main\.cpp\.(?:obj|o)):', manifest, re.MULTILINE)
if not match:
sys.exit('Cannot find the application main object in the Ninja build.')
main_object = match.group(1)
probe_object = main_object.replace('main.cpp.', 'crosshair_probe.cpp.')
probe_binary = binary.with_name('crosshair_probe' + binary.suffix)
def escape(path):
return pathlib.Path(path).as_posix().replace('$', '$$').replace(':', '$:').replace(' ', '$ ')
main_source = source.parents[2] / 'sources' / 'main.cpp'
manifest = manifest.replace(main_object, probe_object)
manifest = manifest.replace(escape(main_source), escape(source))
if binary.suffix:
manifest = manifest.replace(binary.name, probe_binary.name)
else:
old_target = escape(binary.name if binary.parent == build else binary)
new_target = escape(probe_binary.name if probe_binary.parent == build else probe_binary)
manifest = manifest.replace('build ' + old_target + ':', 'build ' + new_target + ':')
old_file = binary.name if binary.parent == build else binary.as_posix()
new_file = probe_binary.name if probe_binary.parent == build else probe_binary.as_posix()
manifest = re.sub(r'^ TARGET_FILE = ' + re.escape(old_file) + r'$',
' TARGET_FILE = ' + new_file, manifest, flags=re.MULTILINE)
probe_manifest = build / 'crosshair-probe.ninja'
probe_manifest.write_text(manifest, encoding='utf-8')
ninja = shutil.which('ninja')
if not ninja:
sys.exit('Ninja is required for the integration probe.')
target = probe_binary.name if probe_binary.parent == build else str(probe_binary)
subprocess.run([ninja, '-C', str(build), '-f', probe_manifest.name, target], check=True)
output = build / 'crosshair'
output.mkdir(exist_ok=True)
report = output / 'results.txt'
result = subprocess.run([str(probe_binary), str(fixture), str(report), str(output)], timeout=90)
if report.exists():
print(report.read_text(encoding='utf-8', errors='replace'))
sys.exit(result.returncode)