Skip to content

Commit

Permalink
Merge pull request #554 from tannerhelland/snap-support
Browse files Browse the repository at this point in the history
Relates to #498, #539, #532, possibly others. Thank you to everyone who suggested this feature.

PhotoDemon can now automagically "snap" objects to common targets. Which targets are used for snapping can be set in the `View > Snap` to menu. Current options include canvas bounds, layers, and centerlines (e.g. the center of the document and layers). A master menu item (and associated hotkey) can quickly enable/disable all snapping behavior, if required.

The `Tools > Options < Interface` panel lets you set snap distance (in screen pixels, not image pixels - same as Photoshop). The current default is 8 screen pixels, which is the same as other photo editors.

Next up: I want to add an option to "view smart guides" (probably named something else in the final build). Photoshop uses this feature to show you which boundary is being snapped, as snapping can become confusing on images with many layers.
  • Loading branch information
tannerhelland authored Apr 19, 2024
2 parents 16c0e18 + 6d0b353 commit 6d4f137
Show file tree
Hide file tree
Showing 31 changed files with 1,416 additions and 220 deletions.
49 changes: 37 additions & 12 deletions App/PhotoDemon/Languages/French.xml
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@

<langid>fr-FR</langid>
<langname>Français</langname>
<langversion>6.7.617</langversion>
<langversion>6.7.619</langversion>
<langstatus>Complete</langstatus>

<author>Jean Jacques Piedfort (orig. Frank Donckers)</author>
Expand Down Expand Up @@ -5544,6 +5544,31 @@ La valeur finale doit être entre %3 and %4.</translation>
<translation>Montrer la barre des statuts</translation>
</phrase>

<phrase>
<original>Snap</original>
<translation></translation>
</phrase>

<phrase>
<original>Snap to</original>
<translation></translation>
</phrase>

<phrase>
<original>Canvas edges</original>
<translation></translation>
</phrase>

<phrase>
<original>Centerlines</original>
<translation></translation>
</phrase>

<phrase>
<original>Layers</original>
<translation>Calques</translation>
</phrase>

<phrase>
<original>Window</original>
<translation>Fenêtre</translation>
Expand Down Expand Up @@ -5584,11 +5609,6 @@ La valeur finale doit être entre %3 and %4.</translation>
<translation>Options des outils</translation>
</phrase>

<phrase>
<original>Layers</original>
<translation>Calques</translation>
</phrase>

<phrase>
<original>Image tabstrip</original>
<translation>Ruban d'image</translation>
Expand Down Expand Up @@ -5747,7 +5767,7 @@ La mise à jour est traitée automatiquement en arrière-plan. Vous recevrez une
<translation>Langue changée avec succès.</translation>
</phrase>

<!-- MainWindow.frm contains 394 phrases. 216 were duplicates of existing phrases, so only 178 new phrases were written to file. -->
<!-- MainWindow.frm contains 399 phrases. 217 were duplicates of existing phrases, so only 182 new phrases were written to file. -->

<phrase>
<original>Monochrome Conversion</original>
Expand Down Expand Up @@ -13377,6 +13397,11 @@ Pour continuer, veuillez télécharger une copie récente de PhotoDemon sur phot
<translation>couleur d'arrière plan de la zone de travail</translation>
</phrase>

<phrase>
<original>snap distance (in pixels)</original>
<translation></translation>
</phrase>

<phrase>
<original>when images arrive from an external source (like Windows Explorer)</original>
<translation>quand des images viennent d'une source extérieure (tel que l'Explorateur de Windows).</translation>
Expand Down Expand Up @@ -14048,7 +14073,7 @@ Si vous choisissez de désactiver les mises à jour, n'oubliez pas de visiter ph
<translation>Ce nouvel emplacement de dossier temporaire ne prendra effet qu'après le redémarrage du programme.</translation>
</phrase>

<!-- Tools_Options.frm contains 194 phrases. 55 were duplicates of existing phrases, so only 139 new phrases were written to file. -->
<!-- Tools_Options.frm contains 195 phrases. 55 were duplicates of existing phrases, so only 140 new phrases were written to file. -->

<phrase>
<original>Reset all library options</original>
Expand Down Expand Up @@ -14258,10 +14283,10 @@ Si vous choisissez de désactiver les mises à jour, n'oubliez pas de visiter ph

<!-- Automatic text generation complete. -->

<phrasecount>2695</phrasecount>
<phrasecount>2700</phrasecount>

<!-- As of this build, PhotoDemon contains 5690 phrases. -->
<!-- 2995 are duplicates, so only 2695 unique phrases have been written to file. -->
<!-- These 2695 phrases contain approximately 11694 total words. -->
<!-- As of this build, PhotoDemon contains 5696 phrases. -->
<!-- 2996 are duplicates, so only 2700 unique phrases have been written to file. -->
<!-- These 2700 phrases contain approximately 11704 total words. -->

</pdData>
49 changes: 37 additions & 12 deletions App/PhotoDemon/Languages/German.xml
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@

<langid>de-DE</langid>
<langname>Deutsch (German)</langname>
<langversion>9.2.312</langversion>
<langversion>9.2.314</langversion>
<langstatus>Up-to-date</langstatus>

<author>rk (ehem. Frank Donckers, Helmut Kuerbiss)</author>
Expand Down Expand Up @@ -5545,6 +5545,31 @@ Der finale Wert muss zwischen %3 und %4 liegen.</translation>
<translation>Statusleiste zeigen</translation>
</phrase>

<phrase>
<original>Snap</original>
<translation></translation>
</phrase>

<phrase>
<original>Snap to</original>
<translation></translation>
</phrase>

<phrase>
<original>Canvas edges</original>
<translation></translation>
</phrase>

<phrase>
<original>Centerlines</original>
<translation></translation>
</phrase>

<phrase>
<original>Layers</original>
<translation>Layer</translation>
</phrase>

<phrase>
<original>Window</original>
<translation>Fenster</translation>
Expand Down Expand Up @@ -5585,11 +5610,6 @@ Der finale Wert muss zwischen %3 und %4 liegen.</translation>
<translation>Tooloptionen</translation>
</phrase>

<phrase>
<original>Layers</original>
<translation>Layer</translation>
</phrase>

<phrase>
<original>Image tabstrip</original>
<translation>Bild-Tabstrip</translation>
Expand Down Expand Up @@ -5748,7 +5768,7 @@ Das Update wird automatisch im Hintergrund verarbeitet. Sie werden eine neue Ben
<translation>Sprache erfolgreich geändert.</translation>
</phrase>

<!-- MainWindow.frm contains 394 phrases. 216 were duplicates of existing phrases, so only 178 new phrases were written to file. -->
<!-- MainWindow.frm contains 399 phrases. 217 were duplicates of existing phrases, so only 182 new phrases were written to file. -->

<phrase>
<original>Monochrome Conversion</original>
Expand Down Expand Up @@ -13370,6 +13390,11 @@ Um fortzusetzen, laden Sie bitte eine neue Version von PhotoDemon von photodemon
<translation>Leinwand-Hintergrundfarbe</translation>
</phrase>

<phrase>
<original>snap distance (in pixels)</original>
<translation></translation>
</phrase>

<phrase>
<original>when images arrive from an external source (like Windows Explorer)</original>
<translation>Wenn Bilder aus einer externen Quelle (wie Windows-Explorer) ankommen</translation>
Expand Down Expand Up @@ -14032,7 +14057,7 @@ Wenn Sie sich dennoch dafür entscheiden, Updates zu deaktivieren, vergessen Sie
<translation>Dieser neue Ort des temporären Ordners wird erst wirksam, wenn Sie das Programm neu starten.</translation>
</phrase>

<!-- Tools_Options.frm contains 194 phrases. 55 were duplicates of existing phrases, so only 139 new phrases were written to file. -->
<!-- Tools_Options.frm contains 195 phrases. 55 were duplicates of existing phrases, so only 140 new phrases were written to file. -->

<phrase>
<original>Reset all library options</original>
Expand Down Expand Up @@ -14242,10 +14267,10 @@ Wenn Sie sich dennoch dafür entscheiden, Updates zu deaktivieren, vergessen Sie

<!-- Automatic text generation complete. -->

<phrasecount>2695</phrasecount>
<phrasecount>2700</phrasecount>

<!-- As of this build, PhotoDemon contains 5690 phrases. -->
<!-- 2995 are duplicates, so only 2695 unique phrases have been written to file. -->
<!-- These 2695 phrases contain approximately 11694 total words. -->
<!-- As of this build, PhotoDemon contains 5696 phrases. -->
<!-- 2996 are duplicates, so only 2700 unique phrases have been written to file. -->
<!-- These 2700 phrases contain approximately 11704 total words. -->

</pdData>
49 changes: 37 additions & 12 deletions App/PhotoDemon/Languages/Indonesian.xml
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@

<langid>id-ID</langid>
<langname>Bahasa Indonesia (ID)</langname>
<langversion>8.9.1717</langversion>
<langversion>8.9.1719</langversion>
<langstatus>Terselesaikan</langstatus>

<author>Ari Sohandri Putra</author>
Expand Down Expand Up @@ -5540,6 +5540,31 @@ The final value must be between %3 and %4.</original>
<translation></translation>
</phrase>

<phrase>
<original>Snap</original>
<translation></translation>
</phrase>

<phrase>
<original>Snap to</original>
<translation></translation>
</phrase>

<phrase>
<original>Canvas edges</original>
<translation></translation>
</phrase>

<phrase>
<original>Centerlines</original>
<translation></translation>
</phrase>

<phrase>
<original>Layers</original>
<translation>Lapisan</translation>
</phrase>

<phrase>
<original>Window</original>
<translation>jendela</translation>
Expand Down Expand Up @@ -5580,11 +5605,6 @@ The final value must be between %3 and %4.</original>
<translation>Opsi Alat</translation>
</phrase>

<phrase>
<original>Layers</original>
<translation>Lapisan</translation>
</phrase>

<phrase>
<original>Image tabstrip</original>
<translation>Tab gambar</translation>
Expand Down Expand Up @@ -5743,7 +5763,7 @@ Pembaruan sedang diproses secara otomatis di latar belakang. Anda akan menerima
<translation>Bahasa berhasil diubah.</translation>
</phrase>

<!-- MainWindow.frm contains 394 phrases. 216 were duplicates of existing phrases, so only 178 new phrases were written to file. -->
<!-- MainWindow.frm contains 399 phrases. 217 were duplicates of existing phrases, so only 182 new phrases were written to file. -->

<phrase>
<original>Monochrome Conversion</original>
Expand Down Expand Up @@ -13366,6 +13386,11 @@ Untuk melanjutkan, unduh salinan PhotoDemon yang diperbarui dari photodemon.org.
<translation></translation>
</phrase>

<phrase>
<original>snap distance (in pixels)</original>
<translation></translation>
</phrase>

<phrase>
<original>when images arrive from an external source (like Windows Explorer)</original>
<translation></translation>
Expand Down Expand Up @@ -14028,7 +14053,7 @@ Jika Anda masih memilih untuk menonaktifkan pembaruan, pastikan untuk mengunjung
<translation>Lokasi folder sementara yang baru ini tidak akan berlaku sampai Anda memulai ulang program.</translation>
</phrase>

<!-- Tools_Options.frm contains 194 phrases. 55 were duplicates of existing phrases, so only 139 new phrases were written to file. -->
<!-- Tools_Options.frm contains 195 phrases. 55 were duplicates of existing phrases, so only 140 new phrases were written to file. -->

<phrase>
<original>Reset all library options</original>
Expand Down Expand Up @@ -14238,10 +14263,10 @@ Jika Anda masih memilih untuk menonaktifkan pembaruan, pastikan untuk mengunjung

<!-- Automatic text generation complete. -->

<phrasecount>2695</phrasecount>
<phrasecount>2700</phrasecount>

<!-- As of this build, PhotoDemon contains 5690 phrases. -->
<!-- 2995 are duplicates, so only 2695 unique phrases have been written to file. -->
<!-- These 2695 phrases contain approximately 11694 total words. -->
<!-- As of this build, PhotoDemon contains 5696 phrases. -->
<!-- 2996 are duplicates, so only 2700 unique phrases have been written to file. -->
<!-- These 2700 phrases contain approximately 11704 total words. -->

</pdData>
49 changes: 37 additions & 12 deletions App/PhotoDemon/Languages/Italian.xml
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@

<langid>it-IT</langid>
<langname>Italiano</langname>
<langversion>8.9.1634</langversion>
<langversion>8.9.1636</langversion>
<langstatus>Completa</langstatus>

<author>GioRock, ManfroMarce</author>
Expand Down Expand Up @@ -5544,6 +5544,31 @@ Il valore finale deve essere compreso tra %3 e %4.</translation>
<translation>Mostra barra di stato</translation>
</phrase>

<phrase>
<original>Snap</original>
<translation></translation>
</phrase>

<phrase>
<original>Snap to</original>
<translation></translation>
</phrase>

<phrase>
<original>Canvas edges</original>
<translation></translation>
</phrase>

<phrase>
<original>Centerlines</original>
<translation></translation>
</phrase>

<phrase>
<original>Layers</original>
<translation>Livelli</translation>
</phrase>

<phrase>
<original>Window</original>
<translation>Finestra</translation>
Expand Down Expand Up @@ -5584,11 +5609,6 @@ Il valore finale deve essere compreso tra %3 e %4.</translation>
<translation>Opzioni strumenti</translation>
</phrase>

<phrase>
<original>Layers</original>
<translation>Livelli</translation>
</phrase>

<phrase>
<original>Image tabstrip</original>
<translation>Striscia delle immagini</translation>
Expand Down Expand Up @@ -5747,7 +5767,7 @@ L'aggiornamento viene elaborato automaticamente in background. Riceverai una nu
<translation>Lingua modificata con successo.</translation>
</phrase>

<!-- MainWindow.frm contains 394 phrases. 216 were duplicates of existing phrases, so only 178 new phrases were written to file. -->
<!-- MainWindow.frm contains 399 phrases. 217 were duplicates of existing phrases, so only 182 new phrases were written to file. -->

<phrase>
<original>Monochrome Conversion</original>
Expand Down Expand Up @@ -13371,6 +13391,11 @@ Per continuare, si prega di scaricare una nuova copia di PhotoDemon da photodemo
<translation>colore di sfondo della tela</translation>
</phrase>

<phrase>
<original>snap distance (in pixels)</original>
<translation></translation>
</phrase>

<phrase>
<original>when images arrive from an external source (like Windows Explorer)</original>
<translation>quando le immagini arrivano da una fonte esterna (come Esplora risorse)</translation>
Expand Down Expand Up @@ -14033,7 +14058,7 @@ Se si sceglie comunque di disabilitare gli aggiornamenti, non dimenticate di vis
<translation>La nuova posizione della cartella temporanea non avrà effetto finché non si riavvia il programma.</translation>
</phrase>

<!-- Tools_Options.frm contains 194 phrases. 55 were duplicates of existing phrases, so only 139 new phrases were written to file. -->
<!-- Tools_Options.frm contains 195 phrases. 55 were duplicates of existing phrases, so only 140 new phrases were written to file. -->

<phrase>
<original>Reset all library options</original>
Expand Down Expand Up @@ -14243,10 +14268,10 @@ Se si sceglie comunque di disabilitare gli aggiornamenti, non dimenticate di vis

<!-- Automatic text generation complete. -->

<phrasecount>2695</phrasecount>
<phrasecount>2700</phrasecount>

<!-- As of this build, PhotoDemon contains 5690 phrases. -->
<!-- 2995 are duplicates, so only 2695 unique phrases have been written to file. -->
<!-- These 2695 phrases contain approximately 11694 total words. -->
<!-- As of this build, PhotoDemon contains 5696 phrases. -->
<!-- 2996 are duplicates, so only 2700 unique phrases have been written to file. -->
<!-- These 2700 phrases contain approximately 11704 total words. -->

</pdData>
Loading

0 comments on commit 6d4f137

Please sign in to comment.