18 Commits

Author SHA1 Message Date
Seth 9dc6776bb4 chore: add sethLabels deployment-fork scaffold
Adds Seth's homelab convention files on top of upstream glabels-qt master:
CLAUDE.md (project instructions), IDEA.md (brief), DECISIONS.md (decision
log, empty), and the kickoff handoff under .claude/handoffs/. Appends a
clearly-marked sethLabels section to .gitignore for .backup/, the
GITEA_API.md symlink, .env files, and handoff drafts.

This is the only non-upstream commit on main. All preceding history is
authored by the glabels.org team (Jaye Evins et al.) and untouched.
Future upstream merges should fast-forward or rebase cleanly since the
scaffold lives in distinct files at repo root.

No source-code changes. License unchanged (GPL-3.0).
2026-04-29 09:04:54 -04:00
Jaye Evins d1ee78e58a Fix incorrect font sizes (#321)
Recently, when chasing the font size differences between the wayland and xcb Qt backends, I ended up normalizing on the wayland sizing when bypassing the backend's font metrics calculation (#272).  Unfortunately, the wayland backend was not rendering the font sizes correctly, and it was a mistake to duplicate its behavior. 

* Assume a virtual DPI of 72 pixels/in instead of 96 when compulting font size
  - Based on testing, this produces the correct font size
  - Updated reference labels.
* No longer need to scale fonts when importing glabels-3 files.
  - The glabels-3 font sizes were correct afterall!  (#306)
  - No longer need to compensate for scale factor in unit tests when importing glabels-3 files.
2026-03-27 15:47:46 -04:00
Jaye Evins 06675f8314 Create template style guide and minor updates to templates and docs (#314)
* Add style guide for creating product template submissions.
* Some updates to TODO.md.  (#270)
* Remove Meta nodes with deprecated product_url attributes.
2026-02-22 16:54:07 -05:00
Jaye Evins 226841fe38 Minor UI cleanup (#313)
* Adjust tab-order of widgets to follow a logical spatial order.  (#309)
* Remove default attribute from Print button in PrintView.  (#308)
2026-02-18 11:38:38 -05:00
Jaye Evins 6ad97b76dc Reconcile LINGUAS with #290. 2026-02-11 17:21:55 -05:00
Weblate (bot) 1220c04f37 Translations update from Fedora Weblate (#290)
* Translated using Weblate (Swedish)

Currently translated at 100.0% (107 of 107 strings)

Translation: glabels-qt/templates
Translate-URL: https://translate.fedoraproject.org/projects/glabels-qt/templates/sv/

* Translated using Weblate (Swedish)

Currently translated at 100.0% (667 of 667 strings)

Translation: glabels-qt/glabels
Translate-URL: https://translate.fedoraproject.org/projects/glabels-qt/glabels/sv/

* Translated using Weblate (Portuguese (Brazil))

Currently translated at 93.5% (624 of 667 strings)

Translation: glabels-qt/glabels
Translate-URL: https://translate.fedoraproject.org/projects/glabels-qt/glabels/pt_BR/

* Translated using Weblate (Italian)

Currently translated at 100.0% (667 of 667 strings)

Translation: glabels-qt/glabels
Translate-URL: https://translate.fedoraproject.org/projects/glabels-qt/glabels/it/

* Translated using Weblate (Estonian)

Currently translated at 0.9% (1 of 107 strings)

Translation: glabels-qt/templates
Translate-URL: https://translate.fedoraproject.org/projects/glabels-qt/templates/et/

* Translated using Weblate (Estonian)

Currently translated at 1.9% (13 of 669 strings)

Translation: glabels-qt/glabels
Translate-URL: https://translate.fedoraproject.org/projects/glabels-qt/glabels/et/

* Translated using Weblate (Indonesian)

Currently translated at 99.8% (666 of 667 strings)

Translation: glabels-qt/glabels
Translate-URL: https://translate.fedoraproject.org/projects/glabels-qt/glabels/id/

* Translated using Weblate (Portuguese (Brazil))

Currently translated at 98.6% (658 of 667 strings)

Translation: glabels-qt/glabels
Translate-URL: https://translate.fedoraproject.org/projects/glabels-qt/glabels/pt_BR/

* Translated using Weblate (Indonesian)

Currently translated at 100.0% (107 of 107 strings)

Translation: glabels-qt/templates
Translate-URL: https://translate.fedoraproject.org/projects/glabels-qt/templates/id/

* Translated using Weblate (Greek)

Currently translated at 0.5% (4 of 667 strings)

Translation: glabels-qt/glabels
Translate-URL: https://translate.fedoraproject.org/projects/glabels-qt/glabels/el/

* Translated using Weblate (Dutch)

Currently translated at 98.5% (555 of 563 strings)

Translation: glabels-qt/glabels
Translate-URL: https://translate.fedoraproject.org/projects/glabels-qt/glabels/nl/

* Translated using Weblate (Danish)

Currently translated at 31.3% (209 of 667 strings)

Translation: glabels-qt/glabels
Translate-URL: https://translate.fedoraproject.org/projects/glabels-qt/glabels/da/

* Translated using Weblate (Czech)

Currently translated at 31.3% (209 of 667 strings)

Translation: glabels-qt/glabels
Translate-URL: https://translate.fedoraproject.org/projects/glabels-qt/glabels/cs/

* Translated using Weblate (Danish)

Currently translated at 73.0% (487 of 667 strings)

Translation: glabels-qt/glabels
Translate-URL: https://translate.fedoraproject.org/projects/glabels-qt/glabels/da/

* Translated using Weblate (Czech)

Currently translated at 54.8% (366 of 667 strings)

Translation: glabels-qt/glabels
Translate-URL: https://translate.fedoraproject.org/projects/glabels-qt/glabels/cs/

* Translated using Weblate (Hungarian)

Currently translated at 31.3% (209 of 667 strings)

Translation: glabels-qt/glabels
Translate-URL: https://translate.fedoraproject.org/projects/glabels-qt/glabels/hu/

* Translated using Weblate (Hungarian)

Currently translated at 63.8% (426 of 667 strings)

Translation: glabels-qt/glabels
Translate-URL: https://translate.fedoraproject.org/projects/glabels-qt/glabels/hu/

* Translated using Weblate (Romanian)

Currently translated at 30.8% (206 of 667 strings)

Translation: glabels-qt/glabels
Translate-URL: https://translate.fedoraproject.org/projects/glabels-qt/glabels/ro/

* Translated using Weblate (Norwegian Bokmål)

Currently translated at 56.1% (316 of 563 strings)

Translation: glabels-qt/glabels
Translate-URL: https://translate.fedoraproject.org/projects/glabels-qt/glabels/nb_NO/

* Translated using Weblate (Chinese (Traditional) (zh_TW))

Currently translated at 26.2% (175 of 667 strings)

Translation: glabels-qt/glabels
Translate-URL: https://translate.fedoraproject.org/projects/glabels-qt/glabels/zh_TW/

* Translated using Weblate (Romanian)

Currently translated at 65.3% (436 of 667 strings)

Translation: glabels-qt/glabels
Translate-URL: https://translate.fedoraproject.org/projects/glabels-qt/glabels/ro/

* Translated using Weblate (Slovenian)

Currently translated at 31.1% (208 of 667 strings)

Translation: glabels-qt/glabels
Translate-URL: https://translate.fedoraproject.org/projects/glabels-qt/glabels/sl/

* Translated using Weblate (Portuguese)

Currently translated at 39.2% (221 of 563 strings)

Translation: glabels-qt/glabels
Translate-URL: https://translate.fedoraproject.org/projects/glabels-qt/glabels/pt/

* Translated using Weblate (Serbian (Latin script))

Currently translated at 31.3% (209 of 667 strings)

Translation: glabels-qt/glabels
Translate-URL: https://translate.fedoraproject.org/projects/glabels-qt/glabels/sr_Latn/

* Translated using Weblate (Russian)

Currently translated at 31.1% (208 of 667 strings)

Translation: glabels-qt/glabels
Translate-URL: https://translate.fedoraproject.org/projects/glabels-qt/glabels/ru/

* Translated using Weblate (Greek)

Currently translated at 31.7% (212 of 667 strings)

Translation: glabels-qt/glabels
Translate-URL: https://translate.fedoraproject.org/projects/glabels-qt/glabels/el/

* Translated using Weblate (Catalan)

Currently translated at 21.2% (142 of 667 strings)

Translation: glabels-qt/glabels
Translate-URL: https://translate.fedoraproject.org/projects/glabels-qt/glabels/ca/

* Translated using Weblate (English (United Kingdom))

Currently translated at 31.1% (208 of 667 strings)

Translation: glabels-qt/glabels
Translate-URL: https://translate.fedoraproject.org/projects/glabels-qt/glabels/en_GB/

* Translated using Weblate (Arabic)

Currently translated at 14.3% (96 of 667 strings)

Translation: glabels-qt/glabels
Translate-URL: https://translate.fedoraproject.org/projects/glabels-qt/glabels/ar/

* Translated using Weblate (Chinese (Simplified) (zh_CN))

Currently translated at 24.5% (164 of 667 strings)

Translation: glabels-qt/glabels
Translate-URL: https://translate.fedoraproject.org/projects/glabels-qt/glabels/zh_CN/

* Translated using Weblate (Serbian)

Currently translated at 31.3% (209 of 667 strings)

Translation: glabels-qt/glabels
Translate-URL: https://translate.fedoraproject.org/projects/glabels-qt/glabels/sr/

* Translated using Weblate (Occitan)

Currently translated at 39.2% (221 of 563 strings)

Translation: glabels-qt/glabels
Translate-URL: https://translate.fedoraproject.org/projects/glabels-qt/glabels/oc/

* Translated using Weblate (Korean)

Currently translated at 19.1% (128 of 667 strings)

Translation: glabels-qt/glabels
Translate-URL: https://translate.fedoraproject.org/projects/glabels-qt/glabels/ko/

* Translated using Weblate (Galician)

Currently translated at 9.2% (62 of 667 strings)

Translation: glabels-qt/glabels
Translate-URL: https://translate.fedoraproject.org/projects/glabels-qt/glabels/gl/

* Translated using Weblate (Finnish)

Currently translated at 24.2% (162 of 667 strings)

Translation: glabels-qt/glabels
Translate-URL: https://translate.fedoraproject.org/projects/glabels-qt/glabels/fi/

* Translated using Weblate (Esperanto)

Currently translated at 24.4% (163 of 667 strings)

Translation: glabels-qt/glabels
Translate-URL: https://translate.fedoraproject.org/projects/glabels-qt/glabels/eo/

* Translated using Weblate (Latvian)

Currently translated at 31.3% (209 of 667 strings)

Translation: glabels-qt/glabels
Translate-URL: https://translate.fedoraproject.org/projects/glabels-qt/glabels/lv/

* Translated using Weblate (Japanese)

Currently translated at 31.1% (208 of 667 strings)

Translation: glabels-qt/glabels
Translate-URL: https://translate.fedoraproject.org/projects/glabels-qt/glabels/ja/

* Translated using Weblate (Bosnian)

Currently translated at 31.3% (209 of 667 strings)

Translation: glabels-qt/glabels
Translate-URL: https://translate.fedoraproject.org/projects/glabels-qt/glabels/bs/

* Translated using Weblate (Chinese (Hong Kong) (zh_HK))

Currently translated at 26.2% (175 of 667 strings)

Translation: glabels-qt/glabels
Translate-URL: https://translate.fedoraproject.org/projects/glabels-qt/glabels/zh_HK/

* Translated using Weblate (Turkish)

Currently translated at 31.3% (209 of 667 strings)

Translation: glabels-qt/glabels
Translate-URL: https://translate.fedoraproject.org/projects/glabels-qt/glabels/tr/

* Translated using Weblate (Slovak)

Currently translated at 33.7% (225 of 667 strings)

Translation: glabels-qt/glabels
Translate-URL: https://translate.fedoraproject.org/projects/glabels-qt/glabels/sk/

* Translated using Weblate (Serbian)

Currently translated at 46.7% (50 of 107 strings)

Translation: glabels-qt/templates
Translate-URL: https://translate.fedoraproject.org/projects/glabels-qt/templates/sr/

* Translated using Weblate (Occitan)

Currently translated at 64.6% (364 of 563 strings)

Translation: glabels-qt/glabels
Translate-URL: https://translate.fedoraproject.org/projects/glabels-qt/glabels/oc/

* Translated using Weblate (Dutch)

Currently translated at 28.8% (30 of 104 strings)

Translation: glabels-qt/templates
Translate-URL: https://translate.fedoraproject.org/projects/glabels-qt/templates/nl/

* Translated using Weblate (Turkish)

Currently translated at 53.6% (358 of 667 strings)

Translation: glabels-qt/glabels
Translate-URL: https://translate.fedoraproject.org/projects/glabels-qt/glabels/tr/

* Translated using Weblate (Korean)

Currently translated at 40.6% (271 of 667 strings)

Translation: glabels-qt/glabels
Translate-URL: https://translate.fedoraproject.org/projects/glabels-qt/glabels/ko/

* Translated using Weblate (Russian)

Currently translated at 29.9% (32 of 107 strings)

Translation: glabels-qt/templates
Translate-URL: https://translate.fedoraproject.org/projects/glabels-qt/templates/ru/

* Translated using Weblate (Latvian)

Currently translated at 59.9% (400 of 667 strings)

Translation: glabels-qt/glabels
Translate-URL: https://translate.fedoraproject.org/projects/glabels-qt/glabels/lv/

* Translated using Weblate (Arabic)

Currently translated at 27.8% (186 of 667 strings)

Translation: glabels-qt/glabels
Translate-URL: https://translate.fedoraproject.org/projects/glabels-qt/glabels/ar/

* Translated using Weblate (Japanese)

Currently translated at 28.0% (30 of 107 strings)

Translation: glabels-qt/templates
Translate-URL: https://translate.fedoraproject.org/projects/glabels-qt/templates/ja/

* Translated using Weblate (Serbian)

Currently translated at 51.2% (342 of 667 strings)

Translation: glabels-qt/glabels
Translate-URL: https://translate.fedoraproject.org/projects/glabels-qt/glabels/sr/

* Translated using Weblate (Catalan)

Currently translated at 46.3% (309 of 667 strings)

Translation: glabels-qt/glabels
Translate-URL: https://translate.fedoraproject.org/projects/glabels-qt/glabels/ca/

* Translated using Weblate (Slovak)

Currently translated at 67.4% (450 of 667 strings)

Translation: glabels-qt/glabels
Translate-URL: https://translate.fedoraproject.org/projects/glabels-qt/glabels/sk/

* Translated using Weblate (Bosnian)

Currently translated at 53.2% (355 of 667 strings)

Translation: glabels-qt/glabels
Translate-URL: https://translate.fedoraproject.org/projects/glabels-qt/glabels/bs/

* Translated using Weblate (Serbian (Latin script))

Currently translated at 46.7% (50 of 107 strings)

Translation: glabels-qt/templates
Translate-URL: https://translate.fedoraproject.org/projects/glabels-qt/templates/sr_Latn/

* Translated using Weblate (Greek)

Currently translated at 55.9% (373 of 667 strings)

Translation: glabels-qt/glabels
Translate-URL: https://translate.fedoraproject.org/projects/glabels-qt/glabels/el/

* Translated using Weblate (Esperanto)

Currently translated at 56.0% (374 of 667 strings)

Translation: glabels-qt/glabels
Translate-URL: https://translate.fedoraproject.org/projects/glabels-qt/glabels/eo/

* Translated using Weblate (Portuguese)

Currently translated at 48.0% (50 of 104 strings)

Translation: glabels-qt/templates
Translate-URL: https://translate.fedoraproject.org/projects/glabels-qt/templates/pt/

* Translated using Weblate (Slovenian)

Currently translated at 58.4% (390 of 667 strings)

Translation: glabels-qt/glabels
Translate-URL: https://translate.fedoraproject.org/projects/glabels-qt/glabels/sl/

* Translated using Weblate (Norwegian Bokmål)

Currently translated at 14.4% (15 of 104 strings)

Translation: glabels-qt/templates
Translate-URL: https://translate.fedoraproject.org/projects/glabels-qt/templates/nb_NO/

* Translated using Weblate (Spanish)

Currently translated at 39.2% (42 of 107 strings)

Translation: glabels-qt/templates
Translate-URL: https://translate.fedoraproject.org/projects/glabels-qt/templates/es/

* Translated using Weblate (Turkish)

Currently translated at 29.9% (32 of 107 strings)

Translation: glabels-qt/templates
Translate-URL: https://translate.fedoraproject.org/projects/glabels-qt/templates/tr/

* Translated using Weblate (Finnish)

Currently translated at 54.1% (361 of 667 strings)

Translation: glabels-qt/glabels
Translate-URL: https://translate.fedoraproject.org/projects/glabels-qt/glabels/fi/

* Translated using Weblate (Occitan)

Currently translated at 47.1% (49 of 104 strings)

Translation: glabels-qt/templates
Translate-URL: https://translate.fedoraproject.org/projects/glabels-qt/templates/oc/

* Translated using Weblate (Romanian)

Currently translated at 27.1% (29 of 107 strings)

Translation: glabels-qt/templates
Translate-URL: https://translate.fedoraproject.org/projects/glabels-qt/templates/ro/

* Translated using Weblate (Russian)

Currently translated at 54.7% (365 of 667 strings)

Translation: glabels-qt/glabels
Translate-URL: https://translate.fedoraproject.org/projects/glabels-qt/glabels/ru/

* Translated using Weblate (Slovenian)

Currently translated at 29.9% (32 of 107 strings)

Translation: glabels-qt/templates
Translate-URL: https://translate.fedoraproject.org/projects/glabels-qt/templates/sl/

* Translated using Weblate (Korean)

Currently translated at 4.6% (5 of 107 strings)

Translation: glabels-qt/templates
Translate-URL: https://translate.fedoraproject.org/projects/glabels-qt/templates/ko/

* Translated using Weblate (Portuguese)

Currently translated at 93.2% (525 of 563 strings)

Translation: glabels-qt/glabels
Translate-URL: https://translate.fedoraproject.org/projects/glabels-qt/glabels/pt/

* Translated using Weblate (Portuguese)

Currently translated at 93.2% (525 of 563 strings)

Translation: glabels-qt/glabels
Translate-URL: https://translate.fedoraproject.org/projects/glabels-qt/glabels/pt/

* Translated using Weblate (Slovak)

Currently translated at 15.8% (17 of 107 strings)

Translation: glabels-qt/templates
Translate-URL: https://translate.fedoraproject.org/projects/glabels-qt/templates/sk/

* Translated using Weblate (Serbian (Latin script))

Currently translated at 53.5% (357 of 667 strings)

Translation: glabels-qt/glabels
Translate-URL: https://translate.fedoraproject.org/projects/glabels-qt/glabels/sr_Latn/

* Translated using Weblate (Galician)

Currently translated at 26.9% (180 of 667 strings)

Translation: glabels-qt/glabels
Translate-URL: https://translate.fedoraproject.org/projects/glabels-qt/glabels/gl/

* Translated using Weblate (Latvian)

Currently translated at 46.7% (50 of 107 strings)

Translation: glabels-qt/templates
Translate-URL: https://translate.fedoraproject.org/projects/glabels-qt/templates/lv/

* Translated using Weblate (Japanese)

Currently translated at 55.0% (367 of 667 strings)

Translation: glabels-qt/glabels
Translate-URL: https://translate.fedoraproject.org/projects/glabels-qt/glabels/ja/

* Translated using Weblate (Chinese (Hong Kong) (zh_HK))

Currently translated at 54.1% (361 of 667 strings)

Translation: glabels-qt/glabels
Translate-URL: https://translate.fedoraproject.org/projects/glabels-qt/glabels/zh_HK/

* Translated using Weblate (Chinese (Traditional) (zh_TW))

Currently translated at 53.9% (360 of 667 strings)

Translation: glabels-qt/glabels
Translate-URL: https://translate.fedoraproject.org/projects/glabels-qt/glabels/zh_TW/

* Translated using Weblate (Chinese (Simplified) (zh_CN))

Currently translated at 49.9% (333 of 667 strings)

Translation: glabels-qt/glabels
Translate-URL: https://translate.fedoraproject.org/projects/glabels-qt/glabels/zh_CN/

* Translated using Weblate (Spanish)

Currently translated at 40.1% (43 of 107 strings)

Translation: glabels-qt/templates
Translate-URL: https://translate.fedoraproject.org/projects/glabels-qt/templates/es/

* Translated using Weblate (Indonesian)

Currently translated at 100.0% (667 of 667 strings)

Translation: glabels-qt/glabels
Translate-URL: https://translate.fedoraproject.org/projects/glabels-qt/glabels/id/

* Translated using Weblate (Spanish)

Currently translated at 64.7% (432 of 667 strings)

Translation: glabels-qt/glabels
Translate-URL: https://translate.fedoraproject.org/projects/glabels-qt/glabels/es/

* Translated using Weblate (German)

Currently translated at 100.0% (107 of 107 strings)

Translation: glabels-qt/templates
Translate-URL: https://translate.fedoraproject.org/projects/glabels-qt/templates/de/

* Translated using Weblate (Danish)

Currently translated at 100.0% (107 of 107 strings)

Translation: glabels-qt/templates
Translate-URL: https://translate.fedoraproject.org/projects/glabels-qt/templates/da/

* Translated using Weblate (Danish)

Currently translated at 100.0% (667 of 667 strings)

Translation: glabels-qt/glabels
Translate-URL: https://translate.fedoraproject.org/projects/glabels-qt/glabels/da/

* Added translation using Weblate (Kabyle)

* Added translation using Weblate (Kabyle)

* Translated using Weblate (Kabyle)

Currently translated at 8.8% (59 of 669 strings)

Translation: glabels-qt/glabels
Translate-URL: https://translate.fedoraproject.org/projects/glabels-qt/glabels/kab/

---------

Co-authored-by: Daniel Nylander <po@danielnylander.se>
Co-authored-by: Rafael Fontenelle <rafaelff@gnome.org>
Co-authored-by: Nathan <nathan95@live.it>
Co-authored-by: Priit Jõerüüt <jrtkbfdr@users.noreply.translate.fedoraproject.org>
Co-authored-by: Arif Budiman <arifpedia@gmail.com>
Co-authored-by: Jim Spentzos <jimspentzos2000@gmail.com>
Co-authored-by: Mario Blättermann <mario.blaettermann@gmail.com>
Co-authored-by: Juan Jose Pablos <juanjo@apertus.es>
Co-authored-by: Andika Triwidada <andika@gmail.com>
Co-authored-by: joe dalton <joedalton2@yahoo.dk>
Co-authored-by: ButterflyOfFire <butterflyoffire@users.noreply.translate.fedoraproject.org>
2026-02-11 17:16:04 -05:00
Jaye Evins e6673a0a24 Add generic templates (#307)
- Add generic full-page templates.  (This feature from 3.4 was missing)
- Also add generic half-page, quarter-page, and envelope templates.
- Add several more common envelope sizes to page-sizes.xml
- Qt print backend does not need pwg_size.
    - Replace with pwg_class, to distinguish between ISO and NA sizes
2026-02-11 11:27:41 -05:00
Jaye Evins 993e1e460d Tweaks to glabels-3 text object compatability. (#306)
This commit partially addresses issues in #296.  Due to the fact that glabels-3
and glabels-4 use different underlying technologies for rendering text, a
pixel-perfect import can probably never be fully achieved.

This commit focuses on small adjustments to imported text objects to approximate
the visual appearance of these objects.

- glabels-3 rendered text at 75% of stated font size, compensate by adjusting
  font size of imported object.
- Text boxes behave differently in glabels-4 than in glabels-3.  In glabels-4,
  text boxes must be of a fixed size, so compensate when a variable sized
  box (when w=0 and/or h=0) is detected and fix the size to the natural text
  size.
- In glabels-3, the fixed margin size (3pt) was not used in the text baseline
  calculations.  Compensate by adjusting vertical position of imported text
  object.
2026-02-05 18:45:18 -05:00
Mario Blättermann 73d90c28f8 Add hint to README.md about unofficial Fedora package (#302) 2026-02-02 00:27:14 -05:00
Mario Blättermann 6018daf56e Update TRANSLATIONS.md (#297) 2026-01-28 17:49:27 -05:00
Mario Blättermann d51091e089 Update README.md regarding the Archlinux package (#295)
I'm no longer maintaining the Archlinux package. Changed to the name and Github page of the new maintainer.
2026-01-26 01:15:36 -05:00
Jaye Evins 78448a44c9 Replace TRANSLATION_FILES.txt cmake include file with LINGUAS file (#287)
Generate lists of translation (.ts) files by reading LINGUAS in CMake.
2026-01-16 14:17:36 -05:00
Weblate (bot) 0f758456b4 Translations update from Fedora Weblate (#288)
* Translated using Weblate (Ukrainian)

Currently translated at 99.8% (666 of 667 strings)

Translation: glabels-qt/glabels
Translate-URL: https://translate.fedoraproject.org/projects/glabels-qt/glabels/uk/

* Translated using Weblate (Italian)

Currently translated at 91.9% (613 of 667 strings)

Translation: glabels-qt/glabels
Translate-URL: https://translate.fedoraproject.org/projects/glabels-qt/glabels/it/

* Translated using Weblate (Polish)

Currently translated at 73.3% (489 of 667 strings)

Translation: glabels-qt/glabels
Translate-URL: https://translate.fedoraproject.org/projects/glabels-qt/glabels/pl/

* Translated using Weblate (Portuguese (Brazil))

Currently translated at 90.2% (602 of 667 strings)

Translation: glabels-qt/glabels
Translate-URL: https://translate.fedoraproject.org/projects/glabels-qt/glabels/pt_BR/

* Translated using Weblate (French)

Currently translated at 99.2% (662 of 667 strings)

Translation: glabels-qt/glabels
Translate-URL: https://translate.fedoraproject.org/projects/glabels-qt/glabels/fr/

* Translated using Weblate (Spanish)

Currently translated at 64.7% (432 of 667 strings)

Translation: glabels-qt/glabels
Translate-URL: https://translate.fedoraproject.org/projects/glabels-qt/glabels/es/

* Translated using Weblate (French)

Currently translated at 100.0% (107 of 107 strings)

Translation: glabels-qt/templates
Translate-URL: https://translate.fedoraproject.org/projects/glabels-qt/templates/fr/

* Translated using Weblate (German)

Currently translated at 100.0% (667 of 667 strings)

Translation: glabels-qt/glabels
Translate-URL: https://translate.fedoraproject.org/projects/glabels-qt/glabels/de/

* Translated using Weblate (German)

Currently translated at 100.0% (667 of 667 strings)

Translation: glabels-qt/glabels
Translate-URL: https://translate.fedoraproject.org/projects/glabels-qt/glabels/de/

* Translated using Weblate (French)

Currently translated at 100.0% (667 of 667 strings)

Translation: glabels-qt/glabels
Translate-URL: https://translate.fedoraproject.org/projects/glabels-qt/glabels/fr/

* Translated using Weblate (French)

Currently translated at 100.0% (667 of 667 strings)

Translation: glabels-qt/glabels
Translate-URL: https://translate.fedoraproject.org/projects/glabels-qt/glabels/fr/

* Added translation using Weblate (Estonian)

* Added translation using Weblate (Estonian)

---------

Co-authored-by: Rafael Fontenelle <rafaelff@gnome.org>
Co-authored-by: meteos meteos <meteos@free.fr>
Co-authored-by: Mario Blättermann <mario.blaettermann@gmail.com>
Co-authored-by: Priit Jõerüüt <jrtkbfdr@users.noreply.translate.fedoraproject.org>
Co-authored-by: Jaye Evins <evins@snaught.com>
2026-01-16 14:00:56 -05:00
Weblate (bot) 9341a3b6a2 Translations update from Fedora Weblate (#285)
* Translated using Weblate (Ukrainian)

Currently translated at 99.8% (666 of 667 strings)

Translation: glabels-qt/glabels
Translate-URL: https://translate.fedoraproject.org/projects/glabels-qt/glabels/uk/

* Translated using Weblate (Italian)

Currently translated at 91.9% (613 of 667 strings)

Translation: glabels-qt/glabels
Translate-URL: https://translate.fedoraproject.org/projects/glabels-qt/glabels/it/

* Translated using Weblate (Polish)

Currently translated at 73.3% (489 of 667 strings)

Translation: glabels-qt/glabels
Translate-URL: https://translate.fedoraproject.org/projects/glabels-qt/glabels/pl/

* Translated using Weblate (Portuguese (Brazil))

Currently translated at 90.2% (602 of 667 strings)

Translation: glabels-qt/glabels
Translate-URL: https://translate.fedoraproject.org/projects/glabels-qt/glabels/pt_BR/

* Translated using Weblate (French)

Currently translated at 99.2% (662 of 667 strings)

Translation: glabels-qt/glabels
Translate-URL: https://translate.fedoraproject.org/projects/glabels-qt/glabels/fr/

* Translated using Weblate (Spanish)

Currently translated at 64.7% (432 of 667 strings)

Translation: glabels-qt/glabels
Translate-URL: https://translate.fedoraproject.org/projects/glabels-qt/glabels/es/

* Translated using Weblate (French)

Currently translated at 100.0% (107 of 107 strings)

Translation: glabels-qt/templates
Translate-URL: https://translate.fedoraproject.org/projects/glabels-qt/templates/fr/

* Translated using Weblate (German)

Currently translated at 100.0% (667 of 667 strings)

Translation: glabels-qt/glabels
Translate-URL: https://translate.fedoraproject.org/projects/glabels-qt/glabels/de/

* Translated using Weblate (German)

Currently translated at 100.0% (667 of 667 strings)

Translation: glabels-qt/glabels
Translate-URL: https://translate.fedoraproject.org/projects/glabels-qt/glabels/de/

* Translated using Weblate (French)

Currently translated at 100.0% (667 of 667 strings)

Translation: glabels-qt/glabels
Translate-URL: https://translate.fedoraproject.org/projects/glabels-qt/glabels/fr/

---------

Co-authored-by: Rafael Fontenelle <rafaelff@gnome.org>
Co-authored-by: meteos meteos <meteos@free.fr>
Co-authored-by: Mario Blättermann <mario.blaettermann@gmail.com>
2026-01-15 17:32:29 -05:00
Rafael Fontenelle 56713aa86f Delete translations/templates_en.ts (#284) 2026-01-14 15:51:51 -05:00
Rafael Fontenelle 1b8b6e55dc Remove redundant pl_PL locale (#283) 2026-01-14 13:57:53 -05:00
Jaye Evins 4b16b0900b Update copyright notices for 2026. (#280) 2026-01-13 19:19:42 -05:00
Jaye Evins 7cadf5308d Implement sizeHint in TemplatePicker's HTML item delegate. (#279)
Height is not always dominated by icon size on all platforms, potentially
cutting off text.
2026-01-13 00:59:47 -05:00
405 changed files with 26755 additions and 23984 deletions
@@ -0,0 +1,73 @@
# Handoff: sethLabels scaffolded — no code yet
## Session Metadata
- Created: 2026-04-29 12:58:23 UTC
- Project: /home/claude/bin/sethLabels
- Branch: n/a (no git repo yet)
- Session duration: ~5 min
- Live URL: n/a
## Handoff Chain
- **Continues from:** None — this is the project's first handoff.
- **Supersedes:** None.
## Current State Summary
Project directory scaffolded per `~/bin/CREATE_PROJECT.md` as a deployment fork of upstream [glabels-qt](https://github.com/j-evins/glabels-qt). No code has been pulled, no git repo initialized, no Gitea repo created. Only the `~/bin/`-convention files exist:
```
sethLabels/
├── CLAUDE.md durable project instructions
├── DECISIONS.md empty decision log (template-derived, header set)
├── GITEA_API.md symlink → ~/bin/GITEA_API.md
├── IDEA.md plain-language brief
└── .claude/handoffs/
└── 2026-04-29-125823-scaffold-only.md (this file)
```
Phase: **ideation**. Nothing is running anywhere. No upstream commit pinned. No build attempted.
## Architecture Overview
This is a *deployment fork* — the discipline is to keep the diff against `j-evins/glabels-qt` master surgical so we can rebase periodically without pain. Anything we add should be additive (new files: deploy scripts, packaging recipes, Seth-specific templates) rather than invasive edits to upstream source. If we need to patch upstream code, prefer a thin patch series we can replay.
Stack is Qt + CMake + C++ (GPL-3.0). Target host is **steel141** (Debian 13). A future option is a headless print-server CT, but that's not part of this scaffold's scope.
## Critical Files
| File | Purpose | Relevance |
|------|---------|-----------|
| `~/bin/sethLabels/IDEA.md` | Plain-language brief — why this fork exists | Read first if upstream choice or scope feels unclear |
| `~/bin/sethLabels/CLAUDE.md` | Durable project instructions | Loaded every session |
| `~/bin/sethLabels/DECISIONS.md` | Empty — populate as architectural choices land | Write to when locking in upstream-pin strategy, Qt5-vs-Qt6, etc. |
| `~/bin/CREATE_PROJECT.md` | Recipe used to scaffold this | Reference if future projects need the same shape |
## Suggested Next Steps (ordered)
The user said *just scaffold + handoff* — none of this was attempted. Pick up here next session:
1. **Decide upstream-tracking strategy.** Options:
- (a) Clone `j-evins/glabels-qt` into this dir, push to Gitea as `sethLabels`, add upstream as a remote, merge from `upstream/master` periodically.
- (b) Keep upstream as a git submodule and layer deployment glue around it.
Record the choice in `DECISIONS.md` before pulling code.
2. **Verify upstream is alive.** Check `j-evins/glabels-qt` for last commit date + open issues; this is a fork of mate-desktop's glabels lineage and forks-of-forks have a tendency to bitrot. If `j-evins` is stale, the real upstream might be elsewhere — re-evaluate before forking.
3. **Confirm Qt version.** Upstream's `CMakeLists.txt` will say Qt5 or Qt6. Debian 13 ships both — pick whichever upstream targets.
4. **Build it once on steel141** to establish the known-good build recipe. Capture exact `apt install` deps and CMake invocation in a `BUILD.md` (or in `CLAUDE.md` if short).
5. **Initialize git + push to Gitea.** `gitea create sethLabels``gitea remote sethLabels``gitea push`. Use a descriptive commit message like `init: scaffold + import upstream glabels-qt @ <sha>`.
6. **Only then** start any deployment-specific work (templates, packaging, install scripts).
## Open Questions
- Is `j-evins/glabels-qt` actually the right upstream, or should we be tracking a different fork? (See "verify upstream is alive" above.)
- Does Seth want a `.deb` package, an AppImage, or just a built binary in `/usr/local/bin`?
- Is there a printer model or label-stock library we should pre-load as default templates?
These don't block scaffolding — they block the *first real coding session*. Ask before implementing.
## Risks / Watch-outs
- Upstream is GPL-3.0. Any code we add that links against it must also be GPL-3.0-compatible. Don't accidentally relicense.
- "Deployment fork" failure mode: scope creep into a real fork. If we find ourselves writing >100 lines of upstream-source patches, that's a signal to either upstream the change or rethink whether we actually want a fork.
- glabels-qt is one of those projects with multiple competing forks (j-evins, jimevins-original, mate-desktop's glabels-3, etc.). Pin the upstream we choose explicitly in `DECISIONS.md` so we don't drift.
+13
View File
@@ -40,3 +40,16 @@ TEST-DATA
SAV*
OLD*
# === sethLabels (deployment fork) additions ===
# Local backup snapshots (per ~/.claude/CLAUDE.md safety rule)
.backup/
# Local-only symlink to ~/bin/GITEA_API.md (target is outside the repo)
GITEA_API.md
# Secrets / env
.env
.env.*
# Handoff drafts (operator scratch — final handoffs ARE committed)
.claude/handoffs/*.draft.md
+27
View File
@@ -0,0 +1,27 @@
# sethLabels
> Deployment fork of glabels-qt — Qt label designer/printer, packaged for Seth's homelab.
## Start Here
**Read the latest handoff first:** `.claude/handoffs/` (most recent file).
It has session state, in-progress work, and ordered next steps.
Then check `IDEA.md` for the project brief and `DECISIONS.md` for settled choices.
## Project Identity
sethLabels is a thin deployment fork of [glabels-qt](https://github.com/j-evins/glabels-qt). Upstream is the real project — this fork's job is to keep a known-good build recipe, any deployment glue (packaging, install paths, default templates), and any local patches in one place, while staying close enough to upstream `master` that periodic rebases stay cheap.
## Current State
- **Phase:** ideation (just scaffolded — no code, no upstream pull yet)
- **Repo:** not yet (will live at `git.sethpc.xyz/Seth/sethLabels` once first commit lands)
- **Deploy target:** steel141 (Debian 13) — primary; CT for headless print serving optional/later
- **Upstream:** https://github.com/j-evins/glabels-qt (GPL-3.0, Qt + CMake + C++)
## Conventions
- This is a **fork**, not a from-scratch rewrite. Pull upstream first; only patch what we need to change. Keep diffs surgical.
- Preserve upstream license (GPL-3.0) and copyright headers.
- See `~/bin/CLAUDE.md` for global homelab conventions (gitea CLI, conventional commits, credentials handling).
+12
View File
@@ -0,0 +1,12 @@
# DECISIONS.md — sethLabels Decision Log
Project-specific decisions. For global/cross-cutting decisions, see `~/bin/DECISIONS.md`.
Format: `YYYY-MM-DD: <decision> — <why>`
## Architecture
## Implementation
## Deferred / Rejected
<!-- Decisions NOT to do something are just as valuable -- prevents re-proposing rejected ideas -->
+20
View File
@@ -0,0 +1,20 @@
# IDEA.md — Project Idea
## What is this?
sethLabels is a deployment fork of [glabels-qt](https://github.com/j-evins/glabels-qt) — a Qt-based desktop application for designing and printing labels, business cards, and similar small-format documents (with CSV mail-merge and barcode support).
The fork exists to layer Seth's deployment-specific concerns (packaging, install paths, default templates, branding, any local patches) on top of upstream without forking the whole project lifecycle. Goal is to keep the diff small enough to rebase onto upstream `master` periodically.
## Problem it solves
Need a reliable, scriptable label designer/printer for homelab + household use (shipping labels, equipment tags, drive labels for the tank pool, cable labels, etc.). Upstream glabels-qt is solid but has no published Debian 13 / current-Ubuntu binaries and the build needs some hand-holding. This fork bakes a known-good build recipe + any local templates + deployment scripts into one repo.
## Constraints / preferences
- **Upstream:** https://github.com/j-evins/glabels-qt (track this, don't drift)
- **Stack:** Qt (5 or 6 — TBD based on upstream's current state), CMake, C++
- **Target hosts:** steel141 primarily (Debian 13). Maybe a CT for headless print serving later.
- **Branding/customization:** minimal — this is for personal use, not a product
- **License:** glabels-qt is GPL-3.0 — preserve it; any contributions stay GPL-3.0
- **Repo:** Gitea at `git.sethpc.xyz/Seth/sethLabels` (TBD until first push)
+3 -2
View File
@@ -34,13 +34,14 @@ There are currently no official releases of gLabels 4.
Currently there are no self-hosted binary snapshot releases available. I plan to make these available again once 4.0 is more imminent. In the mean time, I encourage you to try building the code yourself.
Some third-party packages may be available available:
Some third-party packages may be available:
| Platform | Files | Notes |
|:----------|:-------------------------------------------------------------------------------------|:--------------------------------------------------------------|
| Archlinux | [Archlinux User Repository Page](https://aur.archlinux.org/packages/glabels-qt-git/) | Maintained by [Mario Blättermann](https://github.com/mariobl) |
| Archlinux | [Archlinux User Repository Page](https://aur.archlinux.org/packages/glabels-qt-git/) | Maintained by [Maud Spierings](https://github.com/SpieringsAE) |
| Ubuntu | [PPA Page](https://code.launchpad.net/~krisives/+archive/ubuntu/glabels-qt) | Maintained by [Kristopher Ives](https://github.com/krisives) |
| Fedora | [Copr Repository Page](https://copr.fedorainfracloud.org/coprs/mariobl/glabels-qt/) | Maintained by [Mario Blättermann](https://github.com/mariobl) |
+1 -1
View File
@@ -1,6 +1,6 @@
// Backends.cpp
//
// Copyright (C) 2014 Jaye Evins <evins@snaught.com>
// Copyright (C) 2014-2026 Jaye Evins <evins@snaught.com>
//
// This file is part of gLabels-qt.
//
+1 -1
View File
@@ -1,6 +1,6 @@
// Backends.hpp
//
// Copyright (C) 2014 Jaye Evins <evins@snaught.com>
// Copyright (C) 2014-2026 Jaye Evins <evins@snaught.com>
//
// This file is part of gLabels-qt.
//
+1 -1
View File
@@ -1,6 +1,6 @@
// GnuBarcode.cpp
//
// Copyright (C) 2017 Jaye Evins <evins@snaught.com>
// Copyright (C) 2017-2026 Jaye Evins <evins@snaught.com>
//
// This file is part of gLabels-qt.
//
+1 -1
View File
@@ -1,6 +1,6 @@
// GnuBarcode.hpp
//
// Copyright (C) 2017 Jaye Evins <evins@snaught.com>
// Copyright (C) 2017-2026 Jaye Evins <evins@snaught.com>
//
// This file is part of gLabels-qt.
//
+1 -1
View File
@@ -1,6 +1,6 @@
// QrEncode.cpp
//
// Copyright (C) 2017 Jaye Evins <evins@snaught.com>
// Copyright (C) 2017-2026 Jaye Evins <evins@snaught.com>
//
// This file is part of gLabels-qt.
//
+1 -1
View File
@@ -1,6 +1,6 @@
// QrEncode.hpp
//
// Copyright (C) 2017 Jaye Evins <evins@snaught.com>
// Copyright (C) 2017-2026 Jaye Evins <evins@snaught.com>
//
// This file is part of gLabels-qt.
//
+1 -1
View File
@@ -1,6 +1,6 @@
// Style.cpp
//
// Copyright (C) 2013 Jaye Evins <evins@snaught.com>
// Copyright (C) 2013-2026 Jaye Evins <evins@snaught.com>
//
// This file is part of gLabels-qt.
//
+1 -1
View File
@@ -1,6 +1,6 @@
// Style.hpp
//
// Copyright (C) 2013 Jaye Evins <evins@snaught.com>
// Copyright (C) 2013-2026 Jaye Evins <evins@snaught.com>
//
// This file is part of gLabels-qt.
//
+1 -1
View File
@@ -1,6 +1,6 @@
// Zint.cpp
//
// Copyright (C) 2017 Jaye Evins <evins@snaught.com>
// Copyright (C) 2017-2026 Jaye Evins <evins@snaught.com>
//
// This file is part of gLabels-qt.
//
+1 -1
View File
@@ -1,6 +1,6 @@
// Zint.hpp
//
// Copyright (C) 2017 Jaye Evins <evins@snaught.com>
// Copyright (C) 2017-2026 Jaye Evins <evins@snaught.com>
//
// This file is part of gLabels-qt.
//
+1 -1
View File
@@ -1,6 +1,6 @@
// Merge/Factory.cpp
//
// Copyright (C) 2016 Jaye Evins <evins@snaught.com>
// Copyright (C) 2016-2026 Jaye Evins <evins@snaught.com>
//
// This file is part of gLabels-qt.
//
+1 -1
View File
@@ -1,6 +1,6 @@
// Merge/Factory.hpp
//
// Copyright (C) 2016 Jaye Evins <evins@snaught.com>
// Copyright (C) 2016-2026 Jaye Evins <evins@snaught.com>
//
// This file is part of gLabels-qt.
//
+1 -1
View File
@@ -1,6 +1,6 @@
// Merge/Merge.cpp
//
// Copyright (C) 2015-2016 Jaye Evins <evins@snaught.com>
// Copyright (C) 2015-2026 Jaye Evins <evins@snaught.com>
//
// This file is part of gLabels-qt.
//
+1 -1
View File
@@ -1,6 +1,6 @@
// Merge/Merge.hpp
//
// Copyright (C) 2015-2016 Jaye Evins <evins@snaught.com>
// Copyright (C) 2015-2026 Jaye Evins <evins@snaught.com>
//
// This file is part of gLabels-qt.
//
+1 -1
View File
@@ -1,6 +1,6 @@
// Merge/None.cpp
//
// Copyright (C) 2015-2016 Jaye Evins <evins@snaught.com>
// Copyright (C) 2015-2026 Jaye Evins <evins@snaught.com>
//
// This file is part of gLabels-qt.
//
+1 -1
View File
@@ -1,6 +1,6 @@
// Merge/None.hpp
//
// Copyright (C) 2015-2016 Jaye Evins <evins@snaught.com>
// Copyright (C) 2015-2026 Jaye Evins <evins@snaught.com>
//
// This file is part of gLabels-qt.
//
+1 -1
View File
@@ -1,6 +1,6 @@
// Merge/Record.cpp
//
// Copyright (C) 2013-2016 Jaye Evins <evins@snaught.com>
// Copyright (C) 2013-2026 Jaye Evins <evins@snaught.com>
//
// This file is part of gLabels-qt.
//
+1 -1
View File
@@ -1,6 +1,6 @@
// Merge/Record.hpp
//
// Copyright (C) 2013-2016 Jaye Evins <evins@snaught.com>
// Copyright (C) 2013-2026 Jaye Evins <evins@snaught.com>
//
// This file is part of gLabels-qt.
//
+1 -1
View File
@@ -1,6 +1,6 @@
// Merge/Text.cpp
//
// Copyright (C) 2016 Jaye Evins <evins@snaught.com>
// Copyright (C) 2016-2026 Jaye Evins <evins@snaught.com>
//
// This file is part of gLabels-qt.
//
+1 -1
View File
@@ -1,6 +1,6 @@
// Merge/Text.hpp
//
// Copyright (C) 2016 Jaye Evins <evins@snaught.com>
// Copyright (C) 2016-2026 Jaye Evins <evins@snaught.com>
//
// This file is part of gLabels-qt.
//
+1 -1
View File
@@ -1,6 +1,6 @@
// Merge/TextColon.cpp
//
// Copyright (C) 2016 Jaye Evins <evins@snaught.com>
// Copyright (C) 2016-2026 Jaye Evins <evins@snaught.com>
//
// This file is part of gLabels-qt.
//
+1 -1
View File
@@ -1,6 +1,6 @@
// Merge/TextColon.hpp
//
// Copyright (C) 2016 Jaye Evins <evins@snaught.com>
// Copyright (C) 2016-2026 Jaye Evins <evins@snaught.com>
//
// This file is part of gLabels-qt.
//
+1 -1
View File
@@ -1,6 +1,6 @@
// Merge/TextColonKeys.cpp
//
// Copyright (C) 2016 Jaye Evins <evins@snaught.com>
// Copyright (C) 2016-2026 Jaye Evins <evins@snaught.com>
//
// This file is part of gLabels-qt.
//
+1 -1
View File
@@ -1,6 +1,6 @@
// Merge/TextColonKeys.hpp
//
// Copyright (C) 2016 Jaye Evins <evins@snaught.com>
// Copyright (C) 2016-2026 Jaye Evins <evins@snaught.com>
//
// This file is part of gLabels-qt.
//
+1 -1
View File
@@ -1,6 +1,6 @@
// Merge/TextCsv.cpp
//
// Copyright (C) 2016 Jaye Evins <evins@snaught.com>
// Copyright (C) 2016-2026 Jaye Evins <evins@snaught.com>
//
// This file is part of gLabels-qt.
//
+1 -1
View File
@@ -1,6 +1,6 @@
// Merge/TextCsv.hpp
//
// Copyright (C) 2016 Jaye Evins <evins@snaught.com>
// Copyright (C) 2016-2026 Jaye Evins <evins@snaught.com>
//
// This file is part of gLabels-qt.
//
+1 -1
View File
@@ -1,6 +1,6 @@
// Merge/TextCsvKeys.cpp
//
// Copyright (C) 2016 Jaye Evins <evins@snaught.com>
// Copyright (C) 2016-2026 Jaye Evins <evins@snaught.com>
//
// This file is part of gLabels-qt.
//
+1 -1
View File
@@ -1,6 +1,6 @@
// Merge/TextCsvKeys.hpp
//
// Copyright (C) 2016 Jaye Evins <evins@snaught.com>
// Copyright (C) 2016-2026 Jaye Evins <evins@snaught.com>
//
// This file is part of gLabels-qt.
//
+1 -1
View File
@@ -1,6 +1,6 @@
// Merge/TextSemicolon.cpp
//
// Copyright (C) 2016 Jaye Evins <evins@snaught.com>
// Copyright (C) 2016-2026 Jaye Evins <evins@snaught.com>
//
// This file is part of gLabels-qt.
//
+1 -1
View File
@@ -1,6 +1,6 @@
// Merge/TextSemicolon.hpp
//
// Copyright (C) 2016 Jaye Evins <evins@snaught.com>
// Copyright (C) 2016-2026 Jaye Evins <evins@snaught.com>
//
// This file is part of gLabels-qt.
//
+1 -1
View File
@@ -1,6 +1,6 @@
// Merge/TextSemicolonKeys.cpp
//
// Copyright (C) 2016 Jaye Evins <evins@snaught.com>
// Copyright (C) 2016-2026 Jaye Evins <evins@snaught.com>
//
// This file is part of gLabels-qt.
//
+1 -1
View File
@@ -1,6 +1,6 @@
// Merge/TextSemicolonKeys.hpp
//
// Copyright (C) 2016 Jaye Evins <evins@snaught.com>
// Copyright (C) 2016-2026 Jaye Evins <evins@snaught.com>
//
// This file is part of gLabels-qt.
//
+1 -1
View File
@@ -1,6 +1,6 @@
// Merge/TextTsv.cpp
//
// Copyright (C) 2016 Jaye Evins <evins@snaught.com>
// Copyright (C) 2016-2026 Jaye Evins <evins@snaught.com>
//
// This file is part of gLabels-qt.
//
+1 -1
View File
@@ -1,6 +1,6 @@
// Merge/TextTsv.hpp
//
// Copyright (C) 2016 Jaye Evins <evins@snaught.com>
// Copyright (C) 2016-2026 Jaye Evins <evins@snaught.com>
//
// This file is part of gLabels-qt.
//
+1 -1
View File
@@ -1,6 +1,6 @@
// Merge/TextTsvKeys.cpp
//
// Copyright (C) 2016 Jaye Evins <evins@snaught.com>
// Copyright (C) 2016-2026 Jaye Evins <evins@snaught.com>
//
// This file is part of gLabels-qt.
//
+1 -1
View File
@@ -1,6 +1,6 @@
// Merge/TextTsvKeys.hpp
//
// Copyright (C) 2016 Jaye Evins <evins@snaught.com>
// Copyright (C) 2016-2026 Jaye Evins <evins@snaught.com>
//
// This file is part of gLabels-qt.
//
+1 -1
View File
@@ -26,7 +26,7 @@ How To Contribute to gLabels
### Would you like to submit new product templates?
* Before submitting, please read [PRODUCT-TEMPLATES.md](PRODUCT-TEMPLATES.md) located in this directory.
* Before submitting, please read [PRODUCT-TEMPLATES.md](PRODUCT-TEMPLATES.md) and [TEMPLATE-STYLE.md](TEMPLATE-STYLE.md) located in this directory.
* [Open an issue](https://github.com/j-evins/glabels-qt/issues/new) and attach your completed product template file(s).
+4 -2
View File
@@ -1,7 +1,9 @@
Manually Creating Product Templates
===================================
This document is a reference for manually creating *gLabels* product templates.
This document is a reference for manually creating *gLabels* product templates. See
[TEMPLATE-STYLE.md](TEMPLATE-STYLE.md) located in this directory for style guidelines
for product template submissions.
*gLabels* searches for templates in several locations as described here:</p>
@@ -83,7 +85,7 @@ Property | Type | Description
*_description* | string | Translatable description of stationery product. Used in predefined labels instead of description.
*width* | distance | Page width. Only valid if `size="other"` or `size="roll"`.
*height* | distance | Page height. Only valid if `size="other"`. Value is ignored if `size="roll"`.
*equiv* | string | Equivalent part number. If this property is present, the template is a clone of another template of the same brand. The template will inherit all properties, except brand and name from the other template. This equiv property must refer to a previously defined template - *gLabels* does not currently support forward references.
*equiv* | string | Equivalent part number. If this property is present, the template is a clone of another template of the same brand. The template will inherit all properties, except *part* from the other template. This equiv property must refer to a previously defined template - *gLabels* does not currently support forward references.
### Guidelines for Creating Product Descriptions
+120
View File
@@ -0,0 +1,120 @@
gLabels Product Template Style Guide
====================================
This file describes the prefered style for product template submissions. See
[PRODUCT-TEMPLATES.md](PRODUCT-TEMPLATES.md) located in this directory for detailed
systax documentation.
Organization
------------
Template files are located in the [templates](../templates/) directory. The following
is the naming convention for these files:
<pre><i>brand</i>-<i>class</i>-templates.xml</pre>
Where *brand* is the lowercase brand name, and *class* is the media size class (currently
`iso`, `us`, and `other`).
Templates should be sorted in [natural order](https://en.wikipedia.org/wiki/Natural_sort_order)
by part number within each file. An exception to this rule is to group equivalent templates
directly below their referenced template. For example:
```xml
<Template brand="Avery" part="5126" size="US-Letter" _description="Shipping labels">
<Meta category="label"/>
<Meta category="rectangle-label"/>
<Meta category="mail"/>
<Label-rectangle id="0" width="8.5in" height="5.5in" round="0in" x_waste="0in" y_waste="0in">
<Markup-margin size="9pt"/>
<Layout nx="1" ny="2" x0="0in" y0="0in" dx="0in" dy="5.5in"/>
</Label-rectangle>
</Template>
<Template brand="Avery" part="5526" equiv="5126"/>
<Template brand="Avery" part="8126" equiv="5126"/>
<Template brand="Avery" part="15516" equiv="5126"/>
<Template brand="Avery" part="18126" equiv="5126"/>
<Template brand="Avery" part="5159" size="US-Letter" _description="Address labels">...
```
When creating a new template file, it must be added to the variable template_files in
the [CMakeLists.txt](../templates/CMakeLists.txt) file in this same directory.
*Template* Node Attributes
--------------------------
### *brand* Attribute
This is the brand name or manufacturer of the product. It must match one of the vendors
in the [vendors.xml](../templates/vendors.xml) file. Add a new vendor line if it does not
currently exist.
### *part* Attribute
This is the actual part number of the product. This is usually a short set of numbers and/or
letters. This is not a description or name of the product. The following are examples
of part numbers:
- `5160`
- `WL-102`
- `J8435B`
Sometimes a product includes multiple label types, either as separate sheets or different
types of labels on the same sheet. In these cases, providing a short suffix to part number
is acceptable. For example:
- `3274.1`, `3274.2`, and `3274.3`
- `5931-Disc`, and `5931-Spine`
### *_description* Attribute
- Descriptions should be short. They should describe what the product is in very simple terms
without being too detailed. They should not describe details such as size, quantity, layout,
color, or material. The description should not include brand or part number information.
Size, quantity, layout, brand, and part number are described by other elements of the
template - do not repeat them in the description.
- If at all possible, try to reuse descriptions from other templates (this keeps the
number of unique strings that need translation to a minimum).
- Don't repeat the brand or part number in the description.
- Only capitalize the first word of the description.
The following are good bad descriptions:
| description | Good/Bad | Notes |
|:-------------------------|:--------:|:----------------------------------------------|
| `Address labels` | ✅ | |
| `Address Labels` | ❌ | Capitalized second word of description. |
| `Business cards` | ✅ | |
| `Multipurpose labels` | ✅ | |
| `CD/DVD labels` | ✅ | |
| `19mm x 30mm labels` | ❌ | Don't include size information. |
| `Labels 15 per sheet` | ❌ | Don't include layout or quantity information. |
| `Dymo continuous labels` | ❌ | Don't include brand or part number. |
*Meta* Node Attributes
----------------------
### *category* Attribute
- All templates should include all appropriate `<Meta category=...` nodes.
- Categories must match one of the existing categories in the [categories.xml](../templates/categories.xml) file. Do not add new categories!
- All templates should include either a `<Meta category="label"/>` or `<Meta category="card"/>` node.
### *product_url* Attribute
Unfortunately, manufacturer websites are constantly being updated and rearranged, rendering such deep URLs obsolete very quickly. Therefore,
use of this attribute is deprecated.
+11 -1
View File
@@ -39,7 +39,7 @@ To Do List for gLabels 4.0 -- 2019-10-07
To Do List for post gLabels 4.0 -- 2019-03-17
To Do List for post gLabels 4.0 -- 2026-02-18
=============================================
- [ ] Create a "built-in" merge source
@@ -71,4 +71,14 @@ To Do List for post gLabels 4.0 -- 2019-03-17
The current built-in fixed margin seems to confuse people when dealing with
different horizontal and vertical alignments.
- [ ] Add support for arbitrary DPI when defining templates. Some label
printers use native units in their label specifications (e.g. pins, pixels, etc.)
This would look something like this
`... dpi="300" ... width="525d" height="350d" ...`
These would be converted to model::Distance when parsing.
- [ ] Resurrect the evolution and vcard backends. This would be optional based
on availability.
+7 -2
View File
@@ -1,4 +1,9 @@
## Translation management
# Translations
We manage all translations within a [transifex](https://explore.transifex.com/glabels/). Please don't send your files via Github, use only transifex.
The translations of the user interface, the template database and the user manual (which is still under development)
are maintained at [Fedora Weblate](https://translate.fedoraproject.org/projects/glabels-qt/). Please always use
Weblate for translation submissions; we do not accept contributions from outside this platform. For more information about
using Weblate, read the [documentation](https://docs.weblate.org/en/latest/).
To contribute to translations, you need an account in the [Fedora Account System](https://accounts.fedoraproject.org/).
More information about the account system can be found [here](https://docs.fedoraproject.org/en-US/fedora-accounts/).
+1 -1
View File
@@ -1,6 +1,6 @@
// main.cpp
//
// Copyright (C) 2013-2016 Jaye Evins <evins@snaught.com>
// Copyright (C) 2013-2026 Jaye Evins <evins@snaught.com>
//
// This file is part of gLabels-qt.
//
+2 -2
View File
@@ -1,6 +1,6 @@
// AboutDialog.cpp
//
// Copyright (C) 2016 Jaye Evins <evins@snaught.com>
// Copyright (C) 2016-2026 Jaye Evins <evins@snaught.com>
//
// This file is part of gLabels-qt.
//
@@ -43,7 +43,7 @@ namespace glabels
QString description = tr("A program to create labels and business cards.");
QString copyright = "Copyright &copy; 2018 Jaye Evins <evins@snaught.com>";
QString copyright = "Copyright &copy; 2016-2026 Jaye Evins <evins@snaught.com>";
QString licenseParagraph1 =
tr( "gLabels is free software: you can redistribute it and/or modify "
+1 -1
View File
@@ -1,6 +1,6 @@
// AboutDialog.hpp
//
// Copyright (C) 2016 Jaye Evins <evins@snaught.com>
// Copyright (C) 2016-2026 Jaye Evins <evins@snaught.com>
//
// This file is part of gLabels-qt.
//
+1 -1
View File
@@ -1,6 +1,6 @@
// BarcodeMenu.cpp
//
// Copyright (C) 2014 Jaye Evins <evins@snaught.com>
// Copyright (C) 2014-2026 Jaye Evins <evins@snaught.com>
//
// This file is part of gLabels-qt.
//
+1 -1
View File
@@ -1,6 +1,6 @@
// BarcodeMenu.hpp
//
// Copyright (C) 2014 Jaye Evins <evins@snaught.com>
// Copyright (C) 2014-2026 Jaye Evins <evins@snaught.com>
//
// This file is part of gLabels-qt.
//
+1 -1
View File
@@ -1,6 +1,6 @@
// BarcodeMenuButton.cpp
//
// Copyright (C) 2014 Jaye Evins <evins@snaught.com>
// Copyright (C) 2014-2026 Jaye Evins <evins@snaught.com>
//
// This file is part of gLabels-qt.
//
+1 -1
View File
@@ -1,6 +1,6 @@
// BarcodeMenuButton.hpp
//
// Copyright (C) 2014 Jaye Evins <evins@snaught.com>
// Copyright (C) 2014-2026 Jaye Evins <evins@snaught.com>
//
// This file is part of gLabels-qt.
//
+1 -1
View File
@@ -1,6 +1,6 @@
// BarcodeMenuItem.cpp
//
// Copyright (C) 2014 Jaye Evins <evins@snaught.com>
// Copyright (C) 2014-2026 Jaye Evins <evins@snaught.com>
//
// This file is part of gLabels-qt.
//
+1 -1
View File
@@ -1,6 +1,6 @@
// BarcodeMenuItem.hpp
//
// Copyright (C) 2014 Jaye Evins <evins@snaught.com>
// Copyright (C) 2014-2026 Jaye Evins <evins@snaught.com>
//
// This file is part of gLabels-qt.
//
+1 -1
View File
@@ -1,6 +1,6 @@
// ColorButton.cpp
//
// Copyright (C) 2014-2016 Jaye Evins <evins@snaught.com>
// Copyright (C) 2014-2026 Jaye Evins <evins@snaught.com>
//
// This file is part of gLabels-qt.
//
+1 -1
View File
@@ -1,6 +1,6 @@
// ColorButton.hpp
//
// Copyright (C) 2014-2016 Jaye Evins <evins@snaught.com>
// Copyright (C) 2014-2026 Jaye Evins <evins@snaught.com>
//
// This file is part of gLabels-qt.
//
+1 -1
View File
@@ -1,6 +1,6 @@
// ColorHistory.cpp
//
// Copyright (C) 2014-2016 Jaye Evins <evins@snaught.com>
// Copyright (C) 2014-2026 Jaye Evins <evins@snaught.com>
//
// This file is part of gLabels-qt.
//
+1 -1
View File
@@ -1,6 +1,6 @@
// ColorHistory.hpp
//
// Copyright (C) 2014-2016 Jaye Evins <evins@snaught.com>
// Copyright (C) 2014-2026 Jaye Evins <evins@snaught.com>
//
// This file is part of gLabels-qt.
//
+1 -1
View File
@@ -1,6 +1,6 @@
// ColorPaletteDialog.cpp
//
// Copyright (C) 2014-2016 Jaye Evins <evins@snaught.com>
// Copyright (C) 2014-2026 Jaye Evins <evins@snaught.com>
//
// This file is part of gLabels-qt.
//
+1 -1
View File
@@ -1,6 +1,6 @@
// ColorPaletteDialog.hpp
//
// Copyright (C) 2014-2016 Jaye Evins <evins@snaught.com>
// Copyright (C) 2014-2026 Jaye Evins <evins@snaught.com>
//
// This file is part of gLabels-qt.
//
+1 -1
View File
@@ -1,6 +1,6 @@
// ColorPaletteItem.cpp
//
// Copyright (C) 2014 Jaye Evins <evins@snaught.com>
// Copyright (C) 2014-2026 Jaye Evins <evins@snaught.com>
//
// This file is part of gLabels-qt.
//
+1 -1
View File
@@ -1,6 +1,6 @@
// ColorPaletteItem.hpp
//
// Copyright (C) 2014 Jaye Evins <evins@snaught.com>
// Copyright (C) 2014-2026 Jaye Evins <evins@snaught.com>
//
// This file is part of gLabels-qt.
//
+1 -1
View File
@@ -1,6 +1,6 @@
// ColorSwatch.cpp
//
// Copyright (C) 2014 Jaye Evins <evins@snaught.com>
// Copyright (C) 2014-2026 Jaye Evins <evins@snaught.com>
//
// This file is part of gLabels-qt.
//
+1 -1
View File
@@ -1,6 +1,6 @@
// ColorSwatch.hpp
//
// Copyright (C) 2014 Jaye Evins <evins@snaught.com>
// Copyright (C) 2014-2026 Jaye Evins <evins@snaught.com>
//
// This file is part of gLabels-qt.
//
+1 -1
View File
@@ -1,6 +1,6 @@
// Cursors.cpp
//
// Copyright (C) 2013 Jaye Evins <evins@snaught.com>
// Copyright (C) 2013-2026 Jaye Evins <evins@snaught.com>
//
// This file is part of gLabels-qt.
//
+1 -1
View File
@@ -1,6 +1,6 @@
// Cursors.hpp
//
// Copyright (C) 2013 Jaye Evins <evins@snaught.com>
// Copyright (C) 2013-2026 Jaye Evins <evins@snaught.com>
//
// This file is part of gLabels-qt.
//
+1 -1
View File
@@ -1,6 +1,6 @@
// EditVariableDialog.cpp
//
// Copyright (C) 2019 Jaye Evins <evins@snaught.com>
// Copyright (C) 2019-2026 Jaye Evins <evins@snaught.com>
//
// This file is part of gLabels-qt.
//
+1 -1
View File
@@ -1,6 +1,6 @@
// EditVariableDialog.hpp
//
// Copyright (C) 2019 Jaye Evins <evins@snaught.com>
// Copyright (C) 2019-2026 Jaye Evins <evins@snaught.com>
//
// This file is part of gLabels-qt.
//
+1 -1
View File
@@ -1,6 +1,6 @@
// FieldButton.cpp
//
// Copyright (C) 2019 Jaye Evins <evins@snaught.com>
// Copyright (C) 2019-2026 Jaye Evins <evins@snaught.com>
//
// This file is part of gLabels-qt.
//
+1 -1
View File
@@ -1,6 +1,6 @@
// FieldButton.hpp
//
// Copyright (C) 2019 Jaye Evins <evins@snaught.com>
// Copyright (C) 2019-2026 Jaye Evins <evins@snaught.com>
//
// This file is part of gLabels-qt.
//
+1 -1
View File
@@ -1,6 +1,6 @@
// File.cpp
//
// Copyright (C) 2014 Jaye Evins <evins@snaught.com>
// Copyright (C) 2014-2026 Jaye Evins <evins@snaught.com>
//
// This file is part of gLabels-qt.
//
+1 -1
View File
@@ -1,6 +1,6 @@
// File.hpp
//
// Copyright (C) 2017 Jaye Evins <evins@snaught.com>
// Copyright (C) 2017-2026 Jaye Evins <evins@snaught.com>
//
// This file is part of gLabels-qt.
//
+1 -1
View File
@@ -1,6 +1,6 @@
// Help.cpp
//
// Copyright (C) 2013 Jaye Evins <evins@snaught.com>
// Copyright (C) 2013-2026 Jaye Evins <evins@snaught.com>
//
// This file is part of gLabels-qt.
//
+1 -1
View File
@@ -1,6 +1,6 @@
// Help.hpp
//
// Copyright (C) 2013 Jaye Evins <evins@snaught.com>
// Copyright (C) 2013-2026 Jaye Evins <evins@snaught.com>
//
// This file is part of gLabels-qt.
//
+1 -1
View File
@@ -1,6 +1,6 @@
// LabelEditor.cpp
//
// Copyright (C) 2013-2016 Jaye Evins <evins@snaught.com>
// Copyright (C) 2013-2026 Jaye Evins <evins@snaught.com>
//
// This file is part of gLabels-qt.
//
+1 -1
View File
@@ -1,6 +1,6 @@
// LabelEditor.hpp
//
// Copyright (C) 2013-2016 Jaye Evins <evins@snaught.com>
// Copyright (C) 2013-2026 Jaye Evins <evins@snaught.com>
//
// This file is part of gLabels-qt.
//
+1 -1
View File
@@ -1,6 +1,6 @@
// MainWindow.cpp
//
// Copyright (C) 2014-2016 Jaye Evins <evins@snaught.com>
// Copyright (C) 2014-2026 Jaye Evins <evins@snaught.com>
//
// This file is part of gLabels-qt.
//
+1 -1
View File
@@ -1,6 +1,6 @@
// MainWindow.hpp
//
// Copyright (C) 2014 Jaye Evins <evins@snaught.com>
// Copyright (C) 2014-2026 Jaye Evins <evins@snaught.com>
//
// This file is part of gLabels-qt.
//
+1 -1
View File
@@ -1,6 +1,6 @@
// MergeTableModel.cpp
//
// Copyright (C) 2025 Jaye Evins <evins@snaught.com>
// Copyright (C) 2025-2026 Jaye Evins <evins@snaught.com>
//
// This file is part of gLabels-qt.
//
+1 -1
View File
@@ -1,6 +1,6 @@
// MergeTableModel.hpp
//
// Copyright (C) 2025 Jaye Evins <evins@snaught.com>
// Copyright (C) 2025-2026 Jaye Evins <evins@snaught.com>
//
// This file is part of gLabels-qt.
//
+1 -1
View File
@@ -1,6 +1,6 @@
// MergeView.cpp
//
// Copyright (C) 2016 Jaye Evins <evins@snaught.com>
// Copyright (C) 2016-2026 Jaye Evins <evins@snaught.com>
//
// This file is part of gLabels-qt.
//
+1 -1
View File
@@ -1,6 +1,6 @@
// MergeView.hpp
//
// Copyright (C) 2016 Jaye Evins <evins@snaught.com>
// Copyright (C) 2016-2026 Jaye Evins <evins@snaught.com>
//
// This file is part of gLabels-qt.
//
+1 -1
View File
@@ -1,6 +1,6 @@
// MiniPreviewPixmap.cpp
//
// Copyright (C) 2013-2016 Jaye Evins <evins@snaught.com>
// Copyright (C) 2013-2026 Jaye Evins <evins@snaught.com>
//
// This file is part of gLabels-qt.
//
+1 -1
View File
@@ -1,6 +1,6 @@
// MiniPreviewPixmap.hpp
//
// Copyright (C) 2013-2016 Jaye Evins <evins@snaught.com>
// Copyright (C) 2013-2026 Jaye Evins <evins@snaught.com>
//
// This file is part of gLabels-qt.
//
+1 -1
View File
@@ -1,6 +1,6 @@
// NotebookUtil.cpp
//
// Copyright (C) 2015 Jaye Evins <evins@snaught.com>
// Copyright (C) 2015-2026 Jaye Evins <evins@snaught.com>
//
// This file is part of gLabels-qt.
//
+1 -1
View File
@@ -1,6 +1,6 @@
// NotebookUtil.hpp
//
// Copyright (C) 2015 Jaye Evins <evins@snaught.com>
// Copyright (C) 2015-2026 Jaye Evins <evins@snaught.com>
//
// This file is part of gLabels-qt.
//
+1 -1
View File
@@ -1,6 +1,6 @@
// ObjectEditor.cpp
//
// Copyright (C) 2013-2016 Jaye Evins <evins@snaught.com>
// Copyright (C) 2013-2026 Jaye Evins <evins@snaught.com>
//
// This file is part of gLabels-qt.
//
+1 -1
View File
@@ -1,6 +1,6 @@
// ObjectEditor.hpp
//
// Copyright (C) 2013 Jaye Evins <evins@snaught.com>
// Copyright (C) 2013-2026 Jaye Evins <evins@snaught.com>
//
// This file is part of gLabels-qt.
//
+1 -1
View File
@@ -1,6 +1,6 @@
// PreferencesDialog.cpp
//
// Copyright (C) 2016 Jaye Evins <evins@snaught.com>
// Copyright (C) 2016-2026 Jaye Evins <evins@snaught.com>
//
// This file is part of gLabels-qt.
//
+1 -1
View File
@@ -1,6 +1,6 @@
// PreferencesDialog.hpp
//
// Copyright (C) 2016 Jaye Evins <evins@snaught.com>
// Copyright (C) 2016-2026 Jaye Evins <evins@snaught.com>
//
// This file is part of gLabels-qt.
//
+1 -1
View File
@@ -1,6 +1,6 @@
// Preview.cpp
//
// Copyright (C) 2013-2016 Jaye Evins <evins@snaught.com>
// Copyright (C) 2013-2026 Jaye Evins <evins@snaught.com>
//
// This file is part of gLabels-qt.
//
+1 -1
View File
@@ -1,6 +1,6 @@
// Preview.hpp
//
// Copyright (C) 2013-2016 Jaye Evins <evins@snaught.com>
// Copyright (C) 2013-2026 Jaye Evins <evins@snaught.com>
//
// This file is part of gLabels-qt.
//
+1 -1
View File
@@ -1,6 +1,6 @@
// PreviewOverlayItem.cpp
//
// Copyright (C) 2013 Jaye Evins <evins@snaught.com>
// Copyright (C) 2013-2026 Jaye Evins <evins@snaught.com>
//
// This file is part of gLabels-qt.
//
+1 -1
View File
@@ -1,6 +1,6 @@
// PreviewOverlayItem.hpp
//
// Copyright (C) 2013 Jaye Evins <evins@snaught.com>
// Copyright (C) 2013-2026 Jaye Evins <evins@snaught.com>
//
// This file is part of gLabels-qt.
//
+1 -1
View File
@@ -1,6 +1,6 @@
// PrintView.cpp
//
// Copyright (C) 2013-2016 Jaye Evins <evins@snaught.com>
// Copyright (C) 2013-2026 Jaye Evins <evins@snaught.com>
//
// This file is part of gLabels-qt.
//
+1 -1
View File
@@ -1,6 +1,6 @@
// PrintView.hpp
//
// Copyright (C) 2013-2016 Jaye Evins <evins@snaught.com>
// Copyright (C) 2013-2026 Jaye Evins <evins@snaught.com>
//
// This file is part of gLabels-qt.
//
+1 -1
View File
@@ -1,6 +1,6 @@
// PrinterMonitor.cpp
//
// Copyright (C) 2025 Jaye Evins <evins@snaught.com>
// Copyright (C) 2025-2026 Jaye Evins <evins@snaught.com>
//
// This file is part of gLabels-qt.
//
+1 -1
View File
@@ -1,6 +1,6 @@
// PrinterMonitor.hpp
//
// Copyright (C) 2025 Jaye Evins <evins@snaught.com>
// Copyright (C) 2025-2026 Jaye Evins <evins@snaught.com>
//
// This file is part of gLabels-qt.
//

Some files were not shown because too many files have changed in this diff Show More