Add compliant height, using ZINT_COMPLIANT_HEIGHT flag for back-compatibility

Rename barcode funcs to same as BARCODE_XXX name
library: barcode funcs array for dispatch, used for ZBarcode_ValidID() also
general: change is_sane() comparison to nonzero from ZINT_ERROR_INVALID_OPTION
MAILMARK: fuller error messages
CODABAR: add option to show check character in HRT
zint.h: use 0xNNNN for OR-able defines
GUI: add guard descent height reset button, add Zint version to window title,
  static get_zint_version() method, use QStringLiteral (QSL shorthand),
  use SIGNAL(toggled()), add errtxt "popup" and status bar, add icons,
  add saveAs shortcut, add main menu, context menus and actions, add help,
  reset_view() -> reset_colours(), add copy to clipboard as EMF/GIF/PNG/TIF,
  lessen triggering of update_preview(), shorten names of getters/setters,
  simplify/shorten some update_preview() logic in switch,
  CODEONE disable structapp for Version S
qzint.cpp: add on_errored signal, add missing getters, add test
This commit is contained in:
gitlost 2021-10-09 00:13:39 +01:00
parent 206ae26d20
commit 72eac41c34
82 changed files with 5570 additions and 3774 deletions

View file

@ -16,7 +16,7 @@
***************************************************************************/
/* vim: set ts=4 sw=4 et : */
#include <QDebug>
//#include <QDebug>
#include "barcodeitem.h"
BarcodeItem::BarcodeItem()

View file

@ -54,6 +54,9 @@ be set based on data</string>
</item>
<item row="1" column="1">
<widget class="QComboBox" name="cmbAztecSize">
<property name="maxVisibleItems">
<number>21</number>
</property>
<property name="enabled">
<bool>false</bool>
</property>

View file

@ -25,12 +25,18 @@
<property name="title">
<string>Check Digits</string>
</property>
<property name="toolTip">
<string>Check digits options</string>
</property>
<layout class="QGridLayout" name="gridLayoutC11CheckDigits">
<item row="0" column="0">
<widget class="QRadioButton" name="radC11TwoCheckDigits">
<property name="text">
<string>&amp;Two (Mod-11)</string>
</property>
<property name="toolTip">
<string>Add 2 mod-11 check digits</string>
</property>
<property name="checked">
<bool>true</bool>
</property>
@ -41,6 +47,9 @@
<property name="text">
<string>&amp;One (Mod-11)</string>
</property>
<property name="toolTip">
<string>Add 1 mod-11 check digit</string>
</property>
</widget>
</item>
<item row="1" column="0">
@ -48,6 +57,9 @@
<property name="text">
<string>&amp;No Check Digit</string>
</property>
<property name="toolTip">
<string>Do not add any check digits</string>
</property>
</widget>
</item>
</layout>

View file

@ -28,7 +28,8 @@
<string>&amp;Row Separator Height:</string>
</property>
<property name="toolTip">
<string>Height in X-dimensions of horizontal lines separating rows</string>
<string>Height in X-dimensions of horizontal lines
separating rows</string>
</property>
<property name="buddy">
<cstring>cmbC16kRowSepHeight</cstring>
@ -38,7 +39,8 @@
<item row="0" column="1">
<widget class="QComboBox" name="cmbC16kRowSepHeight">
<property name="toolTip">
<string>Height in X-dimensions of horizontal lines separating rows</string>
<string>Height in X-dimensions of horizontal lines
separating rows</string>
</property>
<item>
<property name="text">

View file

@ -21,41 +21,50 @@
</property>
<layout class="QVBoxLayout" name="verticalLayout">
<item>
<layout class="QGridLayout" name="gridLayout">
<item row="0" column="0">
<widget class="QRadioButton" name="radC25Stand">
<property name="text">
<string>&amp;No Check Digit</string>
</property>
<property name="checked">
<bool>true</bool>
</property>
<property name="toolTip">
<string>No check digit added</string>
</property>
</widget>
</item>
<item row="0" column="1">
<widget class="QRadioButton" name="radC25Check">
<property name="text">
<string>&amp;Check Digit</string>
</property>
<property name="toolTip">
<string>Add standard GS1 mod-10 weighted check digit</string>
</property>
</widget>
</item>
<item row="1" column="0">
<widget class="QRadioButton" name="radC25CheckHide">
<property name="text">
<string>Check Digit, Not Shown in &amp;Text</string>
</property>
<property name="toolTip">
<string>Add standard GS1 check digit but do not display in Human Readable Text</string>
</property>
</widget>
</item>
</layout>
<widget class="QGroupBox" name="grpC25Check">
<property name="title">
<string>Check Digit</string>
</property>
<property name="toolTip">
<string>Check digit options</string>
</property>
<layout class="QGridLayout" name="gridLayoutC25Check">
<item row="0" column="0">
<widget class="QRadioButton" name="radC25Stand">
<property name="text">
<string>&amp;No Check Digit</string>
</property>
<property name="checked">
<bool>true</bool>
</property>
<property name="toolTip">
<string>Do not add check digit</string>
</property>
</widget>
</item>
<item row="0" column="1">
<widget class="QRadioButton" name="radC25Check">
<property name="text">
<string>&amp;Check Digit</string>
</property>
<property name="toolTip">
<string>Add standard GS1 mod-10 check digit</string>
</property>
</widget>
</item>
<item row="1" column="0">
<widget class="QRadioButton" name="radC25CheckHide">
<property name="text">
<string>&amp;Hidden Check Digit</string>
</property>
<property name="toolTip">
<string>Add standard GS1 mod-10 check digit but
do not display in Human Readable Text</string>
</property>
</widget>
</item>
</layout>
</widget>
</item>
<item>
<spacer name="verticalSpacer">

View file

@ -21,32 +21,52 @@
</property>
<layout class="QVBoxLayout" name="verticalLayout">
<item>
<layout class="QGridLayout" name="gridLayout">
<item row="0" column="0">
<widget class="QRadioButton" name="radC39Stand">
<property name="text">
<string>&amp;No Check Digit</string>
</property>
<property name="checked">
<bool>true</bool>
</property>
</widget>
</item>
<item row="1" column="0">
<widget class="QRadioButton" name="radC39HIBC">
<property name="text">
<string>H&amp;IBC 39</string>
</property>
</widget>
</item>
<item row="0" column="1">
<widget class="QRadioButton" name="radC39Check">
<property name="text">
<string>&amp;Mod-43 Check Digit</string>
</property>
</widget>
</item>
</layout>
<widget class="QGroupBox" name="grpC39Check">
<property name="title">
<string>Check Digit</string>
</property>
<property name="toolTip">
<string>Check character options</string>
</property>
<layout class="QGridLayout" name="gridLayoutCheck">
<item row="0" column="0">
<widget class="QRadioButton" name="radC39Stand">
<property name="text">
<string>&amp;No Check Digit</string>
</property>
<property name="toolTip">
<string>Do not add check character</string>
</property>
<property name="checked">
<bool>true</bool>
</property>
</widget>
</item>
<item row="1" column="0" colspan="2">
<widget class="QRadioButton" name="radC39HIBC">
<property name="text">
<string>H&amp;IBC 39 (Mod-43 Check Digit added)</string>
</property>
<property name="toolTip">
<string>Process data as a Health Industry Barcode (HIBC)
Labeler Identification Code (LIC)
For Provider Applications Standard (PAS), preface
the data with a slash &quot;/&quot;</string>
</property>
</widget>
</item>
<item row="0" column="1">
<widget class="QRadioButton" name="radC39Check">
<property name="text">
<string>&amp;Mod-43 Check Digit</string>
</property>
<property name="toolTip">
<string>Add mod-43 check character</string>
</property>
</widget>
</item>
</layout>
</widget>
</item>
<item>
<spacer name="verticalSpacer">

View file

@ -28,7 +28,8 @@
<string>&amp;Row Separator Height:</string>
</property>
<property name="toolTip">
<string>Height in X-dimensions of horizontal lines separating rows</string>
<string>Height in X-dimensions of horizontal lines
separating rows</string>
</property>
<property name="buddy">
<cstring>cmbC49RowSepHeight</cstring>
@ -38,7 +39,8 @@
<item row="0" column="1">
<widget class="QComboBox" name="cmbC49RowSepHeight">
<property name="toolTip">
<string>Height in X-dimensions of horizontal lines separating rows</string>
<string>Height in X-dimensions of horizontal lines
separating rows</string>
</property>
<item>
<property name="text">

View file

@ -20,7 +20,8 @@
<string>Show &amp;Check Characters in Text</string>
</property>
<property name="toolTip">
<string>Display the 2 check characters in the Human Readable Text</string>
<string>Display the 2 check characters in
the Human Readable Text</string>
</property>
<property name="checked">
<bool>false</bool>

View file

@ -26,6 +26,17 @@
<property name="text" >
<string>&amp;Number of Channels:</string>
</property>
<property name="toolTip" >
<string>The number of channels determines the&lt;br /&gt;range of numbers that can be encoded&lt;table cellspacing=&quot;3&quot;&gt;
&gt;&lt;tr&gt;&lt;th align=left&gt;Channels&amp;nbsp;&lt;/th&gt;&lt;th align=left&gt;Range&lt;/th&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;3&amp;nbsp;&lt;/td&gt;&lt;td&gt;0 to 26&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;4&amp;nbsp;&lt;/td&gt;&lt;td&gt;0 to 292&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;5&amp;nbsp;&lt;/td&gt;&lt;td&gt;0 to 3493&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;6&amp;nbsp;&lt;/td&gt;&lt;td&gt;0 to 44072&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;7&amp;nbsp;&lt;/td&gt;&lt;td&gt;0 to 576688&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;8&amp;nbsp;&lt;/td&gt;&lt;td&gt;0 to 7742862&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</string>
</property>
<property name="alignment" >
<set>Qt::AlignLeading|Qt::AlignLeft|Qt::AlignVCenter</set>
</property>
@ -36,6 +47,17 @@
</item>
<item>
<widget class="QComboBox" name="cmbChannel" >
<property name="toolTip" >
<string>The number of channels determines the&lt;br /&gt;range of numbers that can be encoded&lt;table cellspacing=&quot;3&quot;&gt;
&gt;&lt;tr&gt;&lt;th align=left&gt;Channels&amp;nbsp;&lt;/th&gt;&lt;th align=left&gt;Range&lt;/th&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;3&amp;nbsp;&lt;/td&gt;&lt;td&gt;0 to 26&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;4&amp;nbsp;&lt;/td&gt;&lt;td&gt;0 to 292&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;5&amp;nbsp;&lt;/td&gt;&lt;td&gt;0 to 3493&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;6&amp;nbsp;&lt;/td&gt;&lt;td&gt;0 to 44072&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;7&amp;nbsp;&lt;/td&gt;&lt;td&gt;0 to 576688&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;8&amp;nbsp;&lt;/td&gt;&lt;td&gt;0 to 7742862&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</string>
</property>
<item>
<property name="text" >
<string>Automatic</string>

View file

@ -15,13 +15,49 @@
</property>
<layout class="QVBoxLayout" name="verticalLayout">
<item>
<widget class="QCheckBox" name="chkCodabarCheck">
<property name="text">
<string>Add &amp;Check Character (Mod-16)</string>
<widget class="QGroupBox" name="grpCodabarCheck">
<property name="title">
<string>Check Digit</string>
</property>
<property name="checked">
<bool>false</bool>
<property name="toolTip">
<string>Check character options</string>
</property>
<layout class="QGridLayout" name="gridLayoutCodabarCheck">
<item row="0" column="0">
<widget class="QRadioButton" name="radCodabarStand">
<property name="text">
<string>&amp;No Check Digit</string>
</property>
<property name="checked">
<bool>true</bool>
</property>
<property name="toolTip">
<string>Do not add check character</string>
</property>
</widget>
</item>
<item row="0" column="1">
<widget class="QRadioButton" name="radCodabarCheck">
<property name="text">
<string>&amp;Check Digit</string>
</property>
<property name="toolTip">
<string>Add mod-16 check character</string>
</property>
</widget>
</item>
<item row="1" column="0">
<widget class="QRadioButton" name="radCodabarCheckHide">
<property name="text">
<string>&amp;Hidden Check Digit</string>
</property>
<property name="toolTip">
<string>Add mod-16 check character but do
not display in Human Readable Text</string>
</property>
</widget>
</item>
</layout>
</widget>
</item>
<item>

View file

@ -599,7 +599,8 @@
<string>&amp;Row Separator Height:</string>
</property>
<property name="toolTip">
<string>Height in X-dimensions of horizontal lines separating rows</string>
<string>Height in X-dimensions of horizontal lines
separating rows</string>
</property>
<property name="buddy">
<cstring>cmbCbfRowSepHeight</cstring>
@ -609,7 +610,8 @@
<item row="2" column="1">
<widget class="QComboBox" name="cmbCbfRowSepHeight">
<property name="toolTip">
<string>Height in X-dimensions of horizontal lines separating rows</string>
<string>Height in X-dimensions of horizontal lines
separating rows</string>
</property>
<item>
<property name="text">

View file

@ -28,7 +28,11 @@
<string>Symbol Si&amp;ze:</string>
</property>
<property name="toolTip">
<string>Set size (version) of symbol</string>
<string>Set size (H x W) of symbol
Versions A to H have fixed heights and
fixed widths
Versions S and T have fixed heights but
variable widths</string>
</property>
<property name="alignment">
<set>Qt::AlignLeading|Qt::AlignLeft|Qt::AlignVCenter</set>
@ -40,8 +44,15 @@
</item>
<item row="0" column="1">
<widget class="QComboBox" name="cmbC1Size">
<property name="maxVisibleItems">
<number>11</number>
</property>
<property name="toolTip">
<string>Set size (version) of symbol</string>
<string>Set size (H x W) of symbol
Versions A to H have fixed heights and
fixed widths
Versions S and T have fixed heights but
variable widths</string>
</property>
<item>
<property name="text">
@ -149,7 +160,8 @@ formatted with Application Identifiers (AIs)
</property>
<property name="toolTip">
<string>Code One supports Structured Append of up to
128 symbols</string>
128 symbols (not available for Version S)
(ignored if disabled)</string>
</property>
<layout class="QGridLayout" name="gridLayoutC1StructApp">
<item row="0" column="0">
@ -178,7 +190,7 @@ containing a total of this number of symbols
Value ranges from 1 (Disabled) to 128</string>
</property>
<property name="specialValueText">
<string>1 (Disabled)</string>
<string> 1 (Disabled)</string>
</property>
<property name="minimum">
<number>1</number>

View file

@ -80,7 +80,7 @@
<string>Examples of tracker ratios:&lt;table cellspacing=&quot;3&quot;&gt;
&lt;tr&gt;&lt;td&gt;Australia Post&amp;nbsp;&lt;/td&gt;&lt;td&gt;26%&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;Japan Post&amp;nbsp;&lt;/td&gt;&lt;td&gt;33%&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;PLANET, POSTNET&amp;nbsp;&lt;/td&gt;&lt;td&gt;40%&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;PLANET, POSTNET&amp;nbsp;&lt;/td&gt;&lt;td&gt;&lt;i&gt;25% (Tracker and Ascender only)&lt;/i&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;Royal Mail, Dutch Post&amp;nbsp;&lt;/td&gt;&lt;td&gt;25.6%&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;USPS Intelligent Mail&amp;nbsp;&lt;/td&gt;&lt;td&gt;33.1%&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;Default&amp;nbsp;&lt;/td&gt;&lt;td&gt;25%&lt;/td&gt;&lt;/tr&gt;

View file

@ -1050,9 +1050,6 @@ as 0 to 3 with the corners lit</string>
</item>
<item row="1" column="1">
<widget class="QComboBox" name="cmbDotMask">
<property name="maxVisibleItems">
<number>8</number>
</property>
<property name="toolTip">
<string>Manually specify which mask to use
The prime masks 0&apos; to 3&apos; are the same

View file

@ -37,6 +37,9 @@
</item>
<item row="0" column="1">
<widget class="QComboBox" name="cmbGridSize">
<property name="maxVisibleItems">
<number>14</number>
</property>
<property name="toolTip">
<string>Set size (version) of symbol</string>
</property>
@ -197,7 +200,8 @@ error correction codewords</string>
<bool>false</bool>
</property>
<property name="toolTip">
<string>Use Hanzi multibyte encoding for binary and Latin data</string>
<string>Use Hanzi multibyte encoding for binary
and Latin data</string>
</property>
</widget>
</item>

View file

@ -27,6 +27,9 @@
<property name="text">
<string>Si&amp;ze:</string>
</property>
<property name="toolTip">
<string>Set size (version) of symbol</string>
</property>
<property name="buddy">
<cstring>cmbHXSize</cstring>
</property>
@ -37,6 +40,9 @@
<property name="maxVisibleItems">
<number>21</number>
</property>
<property name="toolTip">
<string>Set size (version) of symbol</string>
</property>
<item>
<property name="text">
<string>Automatic</string>
@ -469,6 +475,10 @@
<property name="text">
<string>E&amp;rror Correction:</string>
</property>
<property name="toolTip">
<string>Set percentage of capacity to use for
error correction codewords</string>
</property>
<property name="buddy">
<cstring>cmbHXECC</cstring>
</property>
@ -476,6 +486,10 @@
</item>
<item row="1" column="1">
<widget class="QComboBox" name="cmbHXECC">
<property name="toolTip">
<string>Set percentage of capacity to use for
error correction codewords</string>
</property>
<item>
<property name="text">
<string>Automatic</string>
@ -508,6 +522,9 @@
<property name="text">
<string>&amp;Mask:</string>
</property>
<property name="toolTip">
<string>Manually specify which mask to use</string>
</property>
<property name="buddy">
<cstring>cmbHXMask</cstring>
</property>
@ -515,8 +532,8 @@
</item>
<item row="2" column="1">
<widget class="QComboBox" name="cmbHXMask">
<property name="maxVisibleItems">
<number>4</number>
<property name="toolTip">
<string>Manually specify which mask to use</string>
</property>
<item>
<property name="text">
@ -556,7 +573,8 @@
<bool>false</bool>
</property>
<property name="toolTip">
<string>Use Hanzi multibyte encoding for binary and Latin data</string>
<string>Use Hanzi multibyte encoding for binary
and Latin data</string>
</property>
</widget>
</item>

View file

@ -26,6 +26,9 @@
<property name="text" >
<string>Si&amp;ze:</string>
</property>
<property name="toolTip">
<string>Set size (version) of symbol</string>
</property>
<property name="buddy">
<cstring>cmbMQRSize</cstring>
</property>
@ -33,6 +36,9 @@
</item>
<item row="0" column="1" >
<widget class="QComboBox" name="cmbMQRSize" >
<property name="toolTip">
<string>Set size (version) of symbol</string>
</property>
<item>
<property name="text">
<string>Automatic</string>
@ -65,6 +71,10 @@
<property name="text" >
<string>E&amp;rror Correction:</string>
</property>
<property name="toolTip">
<string>Set percentage of capacity to use for
error correction codewords</string>
</property>
<property name="buddy">
<cstring>cmbMQRECC</cstring>
</property>
@ -72,6 +82,10 @@
</item>
<item row="1" column="1" >
<widget class="QComboBox" name="cmbMQRECC" >
<property name="toolTip">
<string>Set percentage of capacity to use for
error correction codewords</string>
</property>
<item>
<property name="text">
<string>Automatic</string>
@ -99,6 +113,9 @@
<property name="text">
<string>&amp;Mask:</string>
</property>
<property name="toolTip">
<string>Manually specify which mask to use</string>
</property>
<property name="buddy">
<cstring>cmbMQRMask</cstring>
</property>
@ -106,8 +123,8 @@
</item>
<item row="2" column="1">
<widget class="QComboBox" name="cmbMQRMask">
<property name="maxVisibleItems">
<number>4</number>
<property name="toolTip">
<string>Manually specify which mask to use</string>
</property>
<item>
<property name="text">
@ -147,7 +164,8 @@
<bool>false</bool>
</property>
<property name="toolTip">
<string>Use Kanji multibyte encoding for binary and Latin data</string>
<string>Use Kanji multibyte encoding for binary
and Latin data</string>
</property>
</widget>
</item>

View file

@ -91,7 +91,8 @@ Mod-11 (NCR) uses NCR weightings</string>
<string>Do not show check digit(s) in &amp;Text</string>
</property>
<property name="toolTip">
<string>Add check digit(s) but do not display in Human Readable Text</string>
<string>Add check digit(s) but do not display
in Human Readable Text</string>
</property>
<property name="checked">
<bool>false</bool>

View file

@ -149,7 +149,7 @@ containing a total of this number of symbols
Value ranges from 1 (Disabled) to 99999</string>
</property>
<property name="specialValueText">
<string>1 (Disabled)</string>
<string> 1 (Disabled)</string>
</property>
<property name="minimum">
<number>1</number>

View file

@ -39,6 +39,9 @@
</item>
<item row="0" column="1" >
<widget class="QComboBox" name="cmbPDFCols" >
<property name="maxVisibleItems">
<number>21</number>
</property>
<property name="toolTip">
<string>Set number of data characters in a row</string>
</property>
@ -362,7 +365,7 @@ containing a total of this number of symbols
Value ranges from 1 (Disabled) to 99999</string>
</property>
<property name="specialValueText">
<string>1 (Disabled)</string>
<string> 1 (Disabled)</string>
</property>
<property name="minimum">
<number>1</number>

View file

@ -312,9 +312,6 @@ error correction codewords</string>
</item>
<item row="2" column="1">
<widget class="QComboBox" name="cmbQRMask">
<property name="maxVisibleItems">
<number>8</number>
</property>
<property name="toolTip">
<string>Manually specify which mask to use</string>
</property>
@ -428,7 +425,8 @@ the data with a slash &quot;/&quot;</string>
<bool>false</bool>
</property>
<property name="toolTip">
<string>Use Kanji multibyte encoding for binary and Latin data</string>
<string>Use Kanji multibyte encoding for binary
and Latin data</string>
</property>
</widget>
</item>

View file

@ -327,7 +327,8 @@ formatted with Application Identifiers (AIs)</string>
<bool>false</bool>
</property>
<property name="toolTip">
<string>Use Kanji multibyte encoding for binary and Latin data</string>
<string>Use Kanji multibyte encoding for binary
and Latin data</string>
</property>
</widget>
</item>

View file

@ -73,8 +73,7 @@ main symbol and add-on (if any)
<widget class="QLabel" name="lblUPCAGuardDescent">
<property name="toolTip">
<string>Height in X-dimensions that the guard bars
descend below the main bars
Default 5
descend below the main bars (default 5X)
(ignored if disabled)</string>
</property>
<property name="text">
@ -89,38 +88,70 @@ Default 5
</widget>
</item>
<item row="1" column="1">
<widget class="QDoubleSpinBox" name="spnUPCAGuardDescent">
<property name="toolTip">
<layout class="QHBoxLayout" name="horzLayoutUPCAGuardDescent">
<item>
<widget class="QDoubleSpinBox" name="spnUPCAGuardDescent">
<property name="toolTip">
<string>Height in X-dimensions that the guard bars
descend below the main bars
Default 5
descend below the main bars (default 5X)
(ignored if disabled)</string>
</property>
<property name="prefix">
<string/>
</property>
<property name="suffix">
<string> X</string>
</property>
<property name="decimals">
<number>3</number>
</property>
<property name="minimum">
<double>0.000000000000000</double>
</property>
<property name="maximum">
<double>20.000000000000000</double>
</property>
<property name="singleStep">
<double>0.100000000000000</double>
</property>
<property name="value">
<double>5.000000000000000</double>
</property>
<property name="accelerated">
<bool>true</bool>
</property>
</widget>
</property>
<property name="prefix">
<string/>
</property>
<property name="suffix">
<string> X</string>
</property>
<property name="decimals">
<number>3</number>
</property>
<property name="minimum">
<double>0.000000000000000</double>
</property>
<property name="maximum">
<double>20.000000000000000</double>
</property>
<property name="singleStep">
<double>0.100000000000000</double>
</property>
<property name="value">
<double>5.000000000000000</double>
</property>
<property name="accelerated">
<bool>true</bool>
</property>
<property name="sizePolicy">
<sizepolicy hsizetype="Minimum" vsizetype="Fixed">
<horstretch>2</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
</widget>
</item>
<item>
<widget class="QPushButton" name="btnUPCAGuardReset">
<property name="toolTip">
<string>Reset guard bars descent height
to default 5X</string>
</property>
<property name="text">
<string>&amp;Reset</string>
</property>
<property name="sizePolicy">
<sizepolicy hsizetype="Preferred" vsizetype="Fixed">
<horstretch>1</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<property name="sizeHint" stdset="0">
<size>
<width>40</width>
<height>20</height>
</size>
</property>
</widget>
</item>
</layout>
</item>
</layout>
</item>

View file

@ -83,8 +83,7 @@ main symbol and add-on (if any)
<widget class="QLabel" name="lblUPCEANGuardDescent">
<property name="toolTip">
<string>Height in X-dimensions that the guard bars
descend below the main bars
Default 5
descend below the main bars (default 5X)
(ignored if disabled)</string>
</property>
<property name="text">
@ -99,38 +98,70 @@ Default 5
</widget>
</item>
<item row="1" column="1">
<widget class="QDoubleSpinBox" name="spnUPCEANGuardDescent">
<property name="toolTip">
<string>Height in X-dimensions that the guard bars
descend below the main bars
Default 5
<layout class="QHBoxLayout" name="horzLayoutUPCEANGuardDescent">
<item>
<widget class="QDoubleSpinBox" name="spnUPCEANGuardDescent">
<property name="toolTip">
<string>Height in X-dimensions that the guard bars
descend below the main bars (default 5X)
(ignored if disabled)</string>
</property>
<property name="prefix">
<string/>
</property>
<property name="suffix">
<string> X</string>
</property>
<property name="decimals">
<number>3</number>
</property>
<property name="minimum">
<double>0.000000000000000</double>
</property>
<property name="maximum">
<double>20.000000000000000</double>
</property>
<property name="singleStep">
<double>0.100000000000000</double>
</property>
<property name="value">
<double>5.000000000000000</double>
</property>
<property name="accelerated">
<bool>true</bool>
</property>
</widget>
</property>
<property name="prefix">
<string/>
</property>
<property name="suffix">
<string> X</string>
</property>
<property name="decimals">
<number>3</number>
</property>
<property name="minimum">
<double>0.000000000000000</double>
</property>
<property name="maximum">
<double>20.000000000000000</double>
</property>
<property name="singleStep">
<double>0.100000000000000</double>
</property>
<property name="value">
<double>5.000000000000000</double>
</property>
<property name="accelerated">
<bool>true</bool>
</property>
<property name="sizePolicy">
<sizepolicy hsizetype="Minimum" vsizetype="Fixed">
<horstretch>2</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
</widget>
</item>
<item>
<widget class="QPushButton" name="btnUPCEANGuardReset">
<property name="toolTip">
<string>Reset guard bars descent height
to default 5X</string>
</property>
<property name="text">
<string>&amp;Reset</string>
</property>
<property name="sizePolicy">
<sizepolicy hsizetype="Preferred" vsizetype="Fixed">
<horstretch>1</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<property name="sizeHint" stdset="0">
<size>
<width>40</width>
<height>20</height>
</size>
</property>
</widget>
</item>
</layout>
</item>
</layout>
</item>

View file

@ -27,6 +27,10 @@
<property name="text">
<string>&amp;Import Character Prefix</string>
</property>
<property name="toolTip">
<string>Preface data with import character &apos;I&apos;
(not shown in Human Readable Text)</string>
</property>
<property name="checked">
<bool>false</bool>
</property>

View file

@ -30,6 +30,8 @@ int main(int argc, char *argv[])
QApplication app(argc, argv);
MainWindow w;
// Seem to need to do this before showing the window
w.setWindowTitle(w.windowTitle() + ' ' + MainWindow::get_zint_version());
w.show();
return app.exec();
}

View file

@ -41,9 +41,49 @@
<property name="locale">
<locale language="English" country="UnitedStates"/>
</property>
<layout class="QVBoxLayout" name="verticalLayout_5">
<layout class="QVBoxLayout" name="verticalLayoutMain">
<item>
<widget class="QGraphicsView" name="view"/>
<widget class="QGraphicsView" name="view">
<property name="minimumSize">
<size>
<width>0</width>
<height>10</height>
</size>
</property>
<property name="contextMenuPolicy">
<enum>Qt::CustomContextMenu</enum>
</property>
</widget>
</item>
<item>
<widget class="QSplitter" name="errtxtBarContainer">
<property name="frameShape">
<enum>QFrame::StyledPanel</enum>
</property>
<property name="frameShadow">
<enum>QFrame::Plain</enum>
</property>
<property name="orientation">
<enum>Qt::Horizontal</enum>
</property>
<property name="visible">
<bool>false</bool>
</property>
<widget class="QStatusBar" name="errtxtBar">
<property name="contextMenuPolicy">
<enum>Qt::CustomContextMenu</enum>
</property>
<property name="autoFillBackground">
<bool>true</bool>
</property>
<property name="styleSheet">
<string notr="true"/>
</property>
<property name="sizeGripEnabled">
<bool>false</bool>
</property>
</widget>
</widget>
</item>
<item>
<layout class="QHBoxLayout" name="horizontalLayout">
@ -659,18 +699,37 @@ as delimiters for GS1 Application Identifiers
<item>
<layout class="QGridLayout" name="gridLayout">
<item row="0" column="0" colspan="2">
<widget class="QCheckBox" name="chkAutoHeight">
<property name="toolTip">
<string>Use default height
<layout class="QHBoxLayout" name="horizontalLayoutAutoHeight">
<item>
<widget class="QCheckBox" name="chkAutoHeight">
<property name="toolTip">
<string>Use default height
(ignored if disabled)</string>
</property>
<property name="text">
<string>Auto&amp;matic Height</string>
</property>
<property name="checked">
<bool>true</bool>
</property>
</widget>
</property>
<property name="text">
<string>Auto&amp;matic Height</string>
</property>
<property name="checked">
<bool>true</bool>
</property>
</widget>
</item>
<item>
<widget class="QCheckBox" name="chkCompliantHeight">
<property name="toolTip">
<string>Warn if height not compliant with specification
and use standard height (if any) for default
(ignored if disabled)</string>
</property>
<property name="text">
<string>Com&amp;pliant Height</string>
</property>
<property name="checked">
<bool>false</bool>
</property>
</widget>
</item>
</layout>
</item>
<item row="1" column="0">
<widget class="QLabel" name="lblHeight">
@ -701,6 +760,9 @@ as delimiters for GS1 Application Identifiers
<string>Overall symbol height in X-dimensions
(ignored if disabled)</string>
</property>
<property name="accelerated">
<bool>true</bool>
</property>
<property name="prefix">
<string/>
</property>
@ -722,9 +784,6 @@ as delimiters for GS1 Application Identifiers
<property name="value">
<double>50.000000000000000</double>
</property>
<property name="accelerated">
<bool>true</bool>
</property>
</widget>
</item>
<item row="2" column="0">
@ -1156,19 +1215,19 @@ in X-dimensions</string>
<item>
<layout class="QGridLayout" name="gridLayout_2">
<item row="0" column="0">
<widget class="QPushButton" name="btnAbout">
<widget class="QPushButton" name="btnMenu">
<property name="toolTip">
<string>About Zint</string>
<string>Show menu</string>
</property>
<property name="text">
<string>Abo&amp;ut</string>
<string>Men&amp;u</string>
</property>
</widget>
</item>
<item row="0" column="1">
<spacer name="horizontalSpacer_2">
<property name="orientation">
<enum>Qt::Horizontal</enum>
<widget class="QStatusBar" name="statusBar">
<property name="sizeGripEnabled">
<bool>false</bool>
</property>
<property name="sizeHint" stdset="0">
<size>
@ -1176,7 +1235,7 @@ in X-dimensions</string>
<height>20</height>
</size>
</property>
</spacer>
</widget>
</item>
<item row="0" column="2">
<widget class="QPushButton" name="btnCopyBMP">
@ -1184,7 +1243,7 @@ in X-dimensions</string>
<string>Copy to clipboard as BMP</string>
</property>
<property name="text">
<string>Copy &amp;BMP</string>
<string> &amp;BMP</string>
</property>
</widget>
</item>
@ -1194,7 +1253,7 @@ in X-dimensions</string>
<string>Copy to clipboard as SVG</string>
</property>
<property name="text">
<string>Copy S&amp;VG</string>
<string> S&amp;VG</string>
</property>
</widget>
</item>

File diff suppressed because it is too large Load diff

View file

@ -1,6 +1,6 @@
/***************************************************************************
* Copyright (C) 2008 by BogDan Vatra <bogdan@licentia.eu> *
* Copyright (C) 2009-2020 by Robin Stuart <rstuart114@gmail.com> *
* Copyright (C) 2009-2021 by Robin Stuart <rstuart114@gmail.com> *
* *
* This program is free software: you can redistribute it and/or modify *
* it under the terms of the GNU General Public License as published by *
@ -13,6 +13,7 @@
* You should have received a copy of the GNU General Public License *
* along with this program. If not, see <http://www.gnu.org/licenses/>. *
***************************************************************************/
/* vim: set ts=4 sw=4 et : */
#ifndef MAINWINDOW_H
#define MAINWINDOW_H
@ -26,6 +27,7 @@
#include "barcodeitem.h"
class QLabel;
class QShortcut;
class MainWindow : public QWidget, private Ui::mainWindow
{
@ -35,6 +37,8 @@ public:
MainWindow(QWidget *parent = 0, Qt::WindowFlags fl = Qt::WindowFlags());
~MainWindow();
static QString get_zint_version();
public slots:
void update_preview();
void change_options();
@ -42,72 +46,120 @@ public slots:
void on_bgcolor_clicked();
void composite_ui_set();
void composite_ean_check();
void maxi_scm();
void maxi_scm_ui_set();
void msi_plessey_ui_set();
void change_print_scale();
void change_cmyk();
void autoheight_ui_set();
void HRTShow_ui_set();
void dotty_ui_set();
void codeone_ui_set();
void structapp_ui_set();
void on_encoded();
void filter_symbologies();
void on_errored();
void filter_symbologies();
bool save();
void about();
void help();
void quit_now();
void menu();
void reset_colours();
int open_data_dialog();
int open_sequence_dialog();
void copy_to_clipboard_bmp();
void copy_to_clipboard_emf();
void copy_to_clipboard_eps();
void copy_to_clipboard_gif();
#ifndef NO_PNG
void copy_to_clipboard_png();
#endif
void copy_to_clipboard_pcx();
void copy_to_clipboard_svg();
void copy_to_clipboard_tif();
void copy_to_clipboard_errtxt();
void guard_reset_upcean();
void guard_reset_upca();
void view_context_menu(const QPoint &pos);
void errtxtBar_context_menu(const QPoint &pos);
protected:
void resizeEvent(QResizeEvent *event);
void combobox_item_enabled(QComboBox *comboBox, int index, bool enabled);
void upcean_addon_gap(const char *comboBoxName, const char *labelName, int base);
void upcean_guard_descent(const char *spnBoxName, const char *labelName);
bool event(QEvent *event) override;
void combobox_item_enabled(QComboBox *comboBox, int index, bool enabled);
void upcean_addon_gap(const QString &comboBoxName, const QString &labelName, int base);
void upcean_guard_descent(const QString &spnBoxName, const QString &labelName);
void guard_reset(const QString &spnBoxName);
void set_gs1_mode(bool gs1_mode);
void set_smaller_font(QLabel *note);
void set_smaller_font(const QString &labelName);
QObject *widget_obj(const char *name);
void createActions();
void createMenu();
void enableActions(bool enabled);
const char *get_setting_name(int symbology);
void copy_to_clipboard(const QString &filename, const QString &name, const char *mimeType = nullptr);
int get_button_group_index(const QStringList &children);
void set_radiobutton_from_setting(QSettings &settings, const QString &setting, const QStringList &children,
int default_val = 0);
void errtxtBar_clear();
void errtxtBar_set(bool isError);
int get_combobox_index(const QString &child);
void set_combobox_from_setting(QSettings &settings, const QString &setting, const QString &child,
int default_val = 0);
QPoint get_context_menu_pos(const QPoint &pos, QWidget *widget);
int get_checkbox_val(const QString &child);
void set_checkbox_from_setting(QSettings &settings, const QString &setting, const QString &child,
int default_val = 0);
QWidget *get_widget(const QString &name);
double get_doublespinbox_val(const QString &child);
void set_doublespinbox_from_setting(QSettings &settings, const QString &setting, const QString &child,
float default_val = 0.0f);
const QString &get_setting_name(int symbology);
QString get_lineedit_val(const QString &child);
void set_lineedit_from_setting(QSettings &settings, const QString &setting, const QString &child,
const char *default_val = "");
int get_rad_grp_index(const QStringList &names);
void set_rad_from_setting(QSettings &settings, const QString &setting, const QStringList &names,
int default_val = 0);
bool get_rad_val(const QString &name);
int get_spinbox_val(const QString &child);
void set_spinbox_from_setting(QSettings &settings, const QString &setting, const QString &child,
int default_val = 0);
int get_cmb_index(const QString &name);
void set_cmb_from_setting(QSettings &settings, const QString &setting, const QString &name, int default_val = 0);
void save_sub_settings(QSettings &settings, int symbology);
void load_sub_settings(QSettings &settings, int symbology);
int get_chk_val(const QString &name);
void set_chk_from_setting(QSettings &settings, const QString &setting, const QString &name, int default_val = 0);
private slots:
bool save();
void about();
void quit_now();
void reset_view();
int open_data_dialog();
int open_sequence_dialog();
void copy_to_clipboard_svg();
void copy_to_clipboard_bmp();
double get_dspn_val(const QString &name);
void set_dspn_from_setting(QSettings &settings, const QString &setting, const QString &name,
float default_val = 0.0f);
QString get_txt_val(const QString &name);
void set_txt_from_setting(QSettings &settings, const QString &setting, const QString &name,
const QString &default_val);
int get_spn_val(const QString &name);
void set_spn_from_setting(QSettings &settings, const QString &setting, const QString &name, int default_val = 0);
void save_sub_settings(QSettings &settings, int symbology);
void load_sub_settings(QSettings &settings, int symbology);
private:
QColor m_fgcolor,m_bgcolor;
BarcodeItem m_bc;
QWidget *m_optionWidget;
QGraphicsScene *scene;
int m_symbology;
int m_symbology;
QShortcut *m_saveAsShortcut;
QMenu *m_menu;
QAction *m_copyBMPAct;
QAction *m_copyEMFAct;
QAction *m_copyEPSAct;
QAction *m_copyGIFAct;
QAction *m_copyPCXAct;
QAction *m_copyPNGAct;
QAction *m_copySVGAct;
QAction *m_copyTIFAct;
QAction *m_saveAsAct;
QAction *m_aboutAct;
QAction *m_helpAct;
QAction *m_quitAct;
QAction *m_copyErrtxtAct;
};
#endif

View file

@ -0,0 +1,21 @@
The MIT License (MIT)
Copyright (c) 2013-2017 Cole Bemis
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.

1
frontend_qt/res/copy.svg Normal file
View file

@ -0,0 +1 @@
<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="feather feather-copy"><rect x="9" y="9" width="13" height="13" rx="2" ry="2"></rect><path d="M5 15H4a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h9a2 2 0 0 1 2 2v1"></path></svg>

After

Width:  |  Height:  |  Size: 351 B

View file

@ -0,0 +1 @@
<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="feather feather-download"><path d="M21 15v4a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-4"></path><polyline points="7 10 12 15 17 10"></polyline><line x1="12" y1="15" x2="12" y2="3"></line></svg>

After

Width:  |  Height:  |  Size: 370 B

View file

@ -0,0 +1 @@
<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="feather feather-help-circle"><circle cx="12" cy="12" r="10"></circle><path d="M9.09 9a3 3 0 0 1 5.83 1c0 2-3 3-3 3"></path><line x1="12" y1="17" x2="12.01" y2="17"></line></svg>

After

Width:  |  Height:  |  Size: 365 B

1
frontend_qt/res/menu.svg Normal file
View file

@ -0,0 +1 @@
<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="feather feather-menu"><line x1="3" y1="12" x2="21" y2="12"></line><line x1="3" y1="6" x2="21" y2="6"></line><line x1="3" y1="18" x2="21" y2="18"></line></svg>

After

Width:  |  Height:  |  Size: 346 B

1
frontend_qt/res/x.svg Normal file
View file

@ -0,0 +1 @@
<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="feather feather-x"><line x1="18" y1="6" x2="6" y2="18"></line><line x1="6" y1="6" x2="18" y2="18"></line></svg>

After

Width:  |  Height:  |  Size: 299 B

View file

@ -32,5 +32,10 @@
<file>grpUPCEAN.ui</file>
<file>grpVIN.ui</file>
<file>res/zint-qt.ico</file>
<file>res/copy.svg</file>
<file>res/download.svg</file>
<file>res/help-circle.svg</file>
<file>res/menu.svg</file>
<file>res/x.svg</file>
</qresource>
</RCC>