mirror of
https://github.com/qelectrotech/qelectrotech-source-mirror.git
synced 2026-10-19 20:44:16 +02:00
Merge pull request #1559 from DaTweety/feature/folio-crosshair
Folio-wide crosshair under the mouse (Display menu)
This commit is contained in:
@@ -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>
|
||||
|
||||
@@ -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>
|
||||
|
||||
@@ -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>
|
||||
|
||||
@@ -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>
|
||||
|
||||
@@ -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>
|
||||
|
||||
@@ -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>
|
||||
|
||||
@@ -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>
|
||||
|
||||
@@ -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>
|
||||
|
||||
@@ -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>
|
||||
|
||||
@@ -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>
|
||||
|
||||
@@ -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>
|
||||
|
||||
@@ -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>
|
||||
|
||||
@@ -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>
|
||||
|
||||
@@ -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>
|
||||
|
||||
@@ -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>
|
||||
|
||||
@@ -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>
|
||||
|
||||
@@ -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>
|
||||
|
||||
@@ -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>
|
||||
|
||||
@@ -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>
|
||||
|
||||
@@ -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>
|
||||
|
||||
@@ -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>
|
||||
|
||||
@@ -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>
|
||||
|
||||
@@ -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>
|
||||
|
||||
@@ -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>
|
||||
|
||||
@@ -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>
|
||||
|
||||
@@ -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>
|
||||
|
||||
@@ -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>
|
||||
|
||||
@@ -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>
|
||||
|
||||
@@ -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>
|
||||
|
||||
@@ -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>
|
||||
|
||||
@@ -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>
|
||||
|
||||
@@ -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>
|
||||
|
||||
@@ -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>
|
||||
|
||||
@@ -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>
|
||||
|
||||
@@ -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>
|
||||
|
||||
@@ -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);
|
||||
}
|
||||
|
||||
|
||||
@@ -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;
|
||||
|
||||
@@ -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);
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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;
|
||||
}
|
||||
Executable
+60
@@ -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)
|
||||
Reference in New Issue
Block a user