* 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.
- 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.
- 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
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.
- 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
- 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
- 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
- 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
- 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
- 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
- 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
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
- 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
- New baseline minimum platform is Ubuntu 22.04
- Qt6 requires at least 6.2
- some deprecations may be flagged on later versions (e.g. 6.8)
- CMake requires at least 3.22
- Include build-tests.yml github action to validate builds on mulitple platforms
- QtTest is no longer optional since it easily comes along for the ride with Qt
- Replaced QStringRef in model::SubstitutionField with simple ParserState class
- Removed deprecations up to Qt 6.2
- Modifies printing model to be similar to glabels-3.x.
- Allow simple projects to print by-the-page (#51)
- Added collated vs uncollated document merges
- Added ability to separate merge groups by page
- Updated man pages
- Updated misc developer documentation
- use "shared" pointer between Model and undo/redo instances
- adds missing initializers to Merge and Text classes
- adds checkpoints for mouse resize, barcode, and image reset.
- renames the position dialog checkpoint from Move -> Position to differentiate it from a mouse move.
- adds the Undo/Redo action descriptions to the menu items.
- adds unit tests for the Merge and Model change, and for ColorNode, RawText and TextNode.
- Increased range of copies spinbox to 100x the number of iterms per page (#51)
- Fixed issue that blocked user from holding down on spinbox controls
- Minor layout tweaks