Commit Graph

619 Commits

Author SHA1 Message Date
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
Jaye Evins 1c902230fe Big-Ugly Style Update (#278)
* Bulk replaced tabs with spaces
* Bulk removed trailing whitespace from lines
* Replaced c-style comments with c++-style comments in file banners
* Replace nested namespace definitions with single concise definitions (C++17), this keeps the indentation more manageable
* Cleanup ordering and spacing of include directives
* Bulk renaming of header file extensions from '.h' to '.hpp'.
* Update CODING-STYLE.md
* Update target_compile_features from cxx_std_11 to cxx_std_20.
* Refresh .clang-format file.  Still needs a lot of tweaking.
3.99-master618
2026-01-07 19:43:34 -05:00
Jaye Evins 3cd173a37f Replaced all Qt foreach loops with modern C++ range-based loops. (#277) 2026-01-05 15:24:00 -05:00
Jaye Evins 45a92eda89 Base TemplatePicker on QListView instead of QListWidget (#276) 2026-01-05 14:09:00 -05:00
Jaye Evins 742b80fc47 Use canonical file paths for filenames in model (#275) 2026-01-02 13:34:44 -05:00
Jaye Evins d17bb2e1be Add merge input option to glabels-batch-qt. (#267,#274) 2026-01-01 19:51:38 -05:00
alextrical 3309837080 Add instructions to compile on MacOS AMD64 and ARM64 (#244)
* Add instructions to compile on MacOS AMD64 and ARM64
* Update build instructions for QT6
* Update BUILD-INSTRUCTIONS-MACOS.md
2025-12-30 21:26:00 -05:00
Martin Malec 19a8c246ad Update glabels-4 major version in doc from qt-5 to qt-6 (#269) 2025-12-30 18:48:27 -05:00
Jaye Evins ce8bbad26c Bypass Qt font metric calculations (#272)
- This originally showed up as fonts rendering differently on X11 than Wayland. (#230)
- Setting font size in points should be device and back end independent, however the same exact font face and size, on
  the same machine, sometimes results in different font metrics between the xcb and wayland Qt back ends.
- Setting font size in pixels, assuming a virtual DPI of 96 pixels/inch, results in consistent font metrics and rendering
  between these back ends. Furthermore, this virtual DPI works for either on-screen or hi-res printer QPainter contexts.
- This virtual DPI seems to work correctly with some limited testing with Windows and MacOS.
- Add rendering tests to build-tests CI script.
2025-12-30 00:33:17 -05:00
Jaye Evins 82b264a7a0 Manpages update for glabels-qt and glabels-batch-qt
- Document new verbose version option (-V/--Version) introduced in #257
2025-12-17 23:50:33 -05:00
Jaye Evins 90e236f847 Remove files from Settings::recentFileList(), if they fail to open. (#268)
- i.e. they no longer exist or have been moved
- update recent file menu in StartupView as Settings change
2025-12-17 21:26:30 -05:00
p0358 aba0f11616 Preparation for flatpack support (#255)
- Updates to project and desktop metadata in preparation for flatpak packaging
- These updates are independent of flatpack
- This commit unmingles the actual flatpack packaging from #255
2025-12-17 16:07:57 -05:00
Jaye Evins 41656aef6b Update README to specify repo is for glabels-qt
Clarify repository purpose and differentiate from legacy version.
2025-12-11 19:57:29 -05:00
Merikei 7f1fa64114 Fix typo that prevents user roll templates from having a customisable length (#263) 2025-12-10 13:38:44 -05:00
Jaye Evins 6c10571ba4 In MergeView, replace QTableWidget with QTableView with custom model (#266,#217)
QTableWidget was a major bottleneck for large merge sources (#217).  This is because a QTableWidgetItem needed to be created for every field in every record of the merge data, whether they are being displayed or not.  This was not a problem for small merge sources (only a few dozen records max), however for larger data sets this would severely affect performance and make the application unresponsive.  QTableView only renders the fields and records currently visible.
2025-12-10 13:17:25 -05:00
Jaye Evins f1e50d8574 Polling of available printers in now asynchronous (#264,#256)
- Increased polling interval from 1s to 10s
- Use QtConcurrent::run to initiate a poll asynchronously to main event loop
- Do not initiate a poll if the previous poll has not completed
- Use copies instead of references to mCurrentAvailablePrinters in public API
2025-12-09 09:22:54 -05:00
Jaye Evins b6cac2d208 Fix several compile issues (#261)
Fixed several code issues.  Mostly pedantic compiler warnings.  But also a sign issue exposed by newer compilers (#228, #260)
2025-12-06 15:58:38 -05:00
Jaye Evins 44a10fc796 Make detailed version information available to command line (#257)
- Moved detailed version information from ReportBugDialog to Version::details()
- Added QPA Platform information to verbose version information
- Added Qt version to detailed version information
- Added `-V` command line option to glabels-qt and glabels-batch-qt
3.99-master602
2025-12-03 20:43:37 -05:00
Jaye Evins 98b3e32bfd Add compiled Qt translation files (.qm) to .gitignore 3.99-master601 2025-11-29 17:35:45 -05:00
Mario Blättermann 5f36799f4c Sync all translations with Transifex (#251) 2025-11-29 17:24:10 -05:00
Jaye Evins 1f4f4aa221 Reload merge data (#252,#241)
* Added reloadSource() method to Merge class.
* Added reload button to MergeView
2025-11-29 00:16:21 -05:00
Jaye Evins 1ebddfc534 Minor CI updates
Added tag-snapshot.yml script
Removed obsolete appveyor and travis scripts
3.99-master598
2025-11-25 16:23:54 -05:00
Mario Blättermann 56501b5f0a Add new Polish translation to TRANSLATION_FILES.txt (#209)
* Fetching latest translations from Transifex

* Add new Polish translation to TRANSLATION_FILES.txt
2025-11-25 15:13:25 -05:00
Mario Blättermann 083425dbdd Update Ukrainian UI translation (#221) 2025-11-25 15:12:28 -05:00
CactusCollider ce4705f8c2 Update Fedora build example (#236) 2025-11-25 15:06:20 -05:00
p0358 de0bef9ec7 Fix problematic git log usage (#249)
Switches to git commands not affected by log.* config options when building version strings.
2025-11-25 14:14:46 -05:00
Jaye Evins bcc6b3ec9d PrintView improvements (#250)
- Allow printer selection directly from PrintView
- Print button bypasses the system print dialog, since label printing is quite different from typical printing tasks
- Separate button to optionally use system print dialog, if needed
2025-11-17 17:04:04 -05:00
Jaye Evins b69ada13db Update Linux build instructions for Ubuntu 24.04
Include `build-essential` package in prerequisites to install g++, make, etc., which are probably not present on a freshly installed Ubuntu system.
2025-11-17 16:35:21 -05:00
Jaye Evins 21343d49c8 Fix typo in README regarding snapshot releases
Corrected the spelling of 'imminint' to 'imminent' in the README.
2025-11-10 20:12:36 -05:00
Jaye Evins 9d516b7e1f Minor string cleanup (#248)
- Simplified some strings to not include unnecessary markup.
- Fix translator comments so that they actually make it to glabels_C.ts file
      - Reconciled the style of these comments.
      - Added translator comments
2025-11-10 17:46:07 -05:00
Jaye Evins e6e08872e0 Update built-in cursors. (#246)
- Not all Qt::CursorShapes are supported on all platforoms
   - e.g. on Wayland (Ubuntu 24.04) Qt::SizeAllCursor is not available and
     falls back to its arrow cursor
   - added built-in Crosshair and Move cursors, so that they should be available
     across all platforms
- Redesigned existing object creation cursors
   - Crosshairs are now 3-pixels wide
   - Added white outlines to all cursors to aid in visibility against diverse
     backgrounds
2025-11-05 14:29:15 -05:00
Jaye Evins 8c8e447336 Pointer cleanup (#242)
- Made greater use of smart pointers, eliminating many instances of manual memory management
- Do not use pointers at all for many non-polymorphic classes
- Assorted other code cleanup
2025-10-31 16:11:28 -04:00
Jaye Evins fd10d88be5 Revise README for CI snapshots and third-party packages
Updated the README to clarify the status of continuous integration snapshots and third-party package availability.
2025-10-17 18:57:53 -04:00
Jaye Evins e5be07101b Update BUILD-INSTRUCTIONS-LINUX.md
Minor edits to Linux build instructions.
2025-09-13 17:24:15 -04:00
Jaye Evins 9e4d18c789 Add optional dependencies to windows and macos targets in build-tests.yml (#229)
Install and validate integration with as many optional dependencies on all testing platforms when doing CI build tests.

- For windows-latest, use vcpkg to install zlib, libqrencode, and zint.
- For macos-latest, use brew to install zlib, qrencode, and zint.
- Made zint version detection more robust across platforms.
2025-09-10 23:27:03 -04:00
Peter Kessen 3bd78558b3 Display newlines in merge view (#108)
Display newlines in merge view as printable character
2025-09-05 14:23:52 -04:00
Jaye Evins ffd634075f Reorganize icon data as an embedded icon theme (#226) 2025-08-25 23:44:40 -04:00
Jaye Evins de85d47765 Small update to linux build instructions (#133)
Need to run ldconfig after installing zint, to update the dynamic linker's
run-time bindings.
2025-08-16 17:47:12 -04:00
Jaye Evins b6b62fcfb5 Update build-tests action to use zint-2.15.0 for ubuntu targets 2025-08-16 17:25:28 -04:00
Jaye Evins 0e7049ed73 Support libzint >= 2.15 (#225,#222,#186))
- Update libzint support for 2.15 as new baseline version, removing support for earlier versions, avoiding '#ifdef'-hell
- Based on #186

---------

Co-authored-by: gitlost <burmartke@gmail.com>
2025-08-16 17:00:14 -04:00
Jaye Evins fa96cc5a17 Add grid settings to preferences (#224)
- Allow origin to be either at the top-left corner or center of label (#174)
- For non-rectangular labels (cd, round, etc.) the origin will still
  always be at the center of the label.
- User controllable grid spacing
2025-08-14 15:47:22 -04:00
Jaye Evins f147407a46 Drag n drop (#223)
Added drop interface for image files, images, and text, dragged from other applications.  (#153,#223)

- Lock aspect ration on new image objects by default
- Communicate context menu click location to paste actions
2025-08-12 16:06:43 -04:00
Jakob Haufe 524e9cc9e9 Fix transifex URL (#220) 2025-08-01 10:05:55 -04:00
Jaye Evins 9c3e21faf3 Add ObjectsCenter action to center objects in label both h and v. (#184) 2025-07-31 18:01:22 -04:00
Jaye Evins 475971b701 Remember most recently used printer. (#215) 2025-07-28 15:11:36 -04:00
Jaye Evins 3a4bb61f44 Updates and cleanup of multi-patform build tests (#212)
- Simplify creation of build matrix.
 - Added macos-latest build
 - Renamed VERSION to VERSION.txt, this was problematic on macos build
 - Added placeholders for installing optional dependencies for windows and macos builds in the future.
2025-06-25 11:33:32 -04:00
Jaye Evins 4c0ce1146a Improvements to SelectTemplateDialog (#109 and #142)
- Added side pane for product preview and information
- Product selection is done with a separate pushbutton, so that user gets a
  chance to preview the complete product information before committing to the
  selection
- Supports two view modes: Grid View and List View
- View mode is automatically stored in Settings, so it will default to the
  user's prefered mode
- Should address most concerns in #109 and #142
2025-05-26 19:23:36 -04:00
Jaye Evins 43cbc8fc3c Added tooltips to TemplatePickerItems.
Longer names in QListWidget are often ellipsized, obsuring the template names.
The tooltips allow the user to see full names by hovering over items.
2025-05-15 18:03:23 -04:00
Jaye Evins ca68c84cad Handle filenames with periods in basename consistently. (#199)
Use QFileInfo::completeBaseName() instead of QFileInfo::baseName() in
Model::shortName().  This was already the case when building list of
recent labels in MainWindow.
2025-05-15 00:02:47 -04:00
Jaye Evins 18b0a1b09b Minor bug fixes
- model::Db::lookupPaperNameFromId() bad if-else-if
- model::StrUtil::formatFraction missing arg in QString
- Added unit tests for StrUtil
2025-05-08 11:09:11 -04:00