Remove bitmap_byte_length
member from zint_symbol
(was only set on BMP output to length of BMP pixel array) EXCODE39: change to display check digit in HRT by default CODE39/EXCODE39/LOGMARS: new hidden check digit option (`option_2 = 2`) qr.c: suppress bogus gcc-13 warning (only appears on optimize) GUI: move some symbology-specific options into Data Tab so separate tab unnecessary (those with few options and no Composite/ECI), namely: all C25XXX, CODE39/EXCODE39/LOGMARS, MSI_PLESSEY, CODABAR, DAFT, DPD, MAILMARK_2D, ITF-14, PZN, UPNQR, CHANNEL, CODE93 and VIN, adjusting grp uis. change Data dialog button (ellipsis) QToolButton -> QPushButton & vice versa zap/clear/eye/swap/scale buttons QPushButton -> QToolButton for better mac compat (also makes sense); remove some mac hacks that no longer seem necessary; use folder icon for Export dialog directory button manual: document new Symbology-specific groupbox & CODE39/etc hidden check digit option; add annexes on Qt and Tcl backends; narrow some tables for better txt output; remove echoed image tags in txt (pandoc 3.1.5 regression?); add one-page HTML output to Makefile; also tex output (debug); add class attributes to images to aid HTML styling; various other fiddlings
14
ChangeLog
@ -3,7 +3,7 @@ Version 2.12.0.9 (dev) not released yet
|
||||
|
||||
**Incompatible changes**
|
||||
------------------------
|
||||
- Buffer lengths of fields `fgcolour` and `bgcolour` in `zint_symbol` extended
|
||||
- Buffer lengths of members `fgcolour` and `bgcolour` in `zint_symbol` extended
|
||||
10 -> 16 to allow for "C,M,Y,K" comma-separated decimal percentage strings
|
||||
- CMYK values for EPS (slightly) and TIF (significantly) have changed - now use
|
||||
the same RGB -> CMYK formula
|
||||
@ -15,8 +15,8 @@ Version 2.12.0.9 (dev) not released yet
|
||||
- Text height (font size) for SMALL_TEXT vector output reduced
|
||||
- For Windows, filenames are now assumed to be UTF-8 encoded. Affects `outfile`
|
||||
in `zint_symbol` and all API filename arguments
|
||||
- Never-used `fontsize` field removed from `zint_symbol`
|
||||
- Buffer length of field `text` (HRT) in `zint_symbol` extended 128 -> 160
|
||||
- Never-used `fontsize` member removed from `zint_symbol`
|
||||
- Buffer length of member `text` (HRT) in `zint_symbol` extended 128 -> 160
|
||||
(client buffers may need checking/extending)
|
||||
- Font of text of SVG vector output now "OCRB, monospace" (EAN/UPC) or
|
||||
"Arimo, Arial, sans-serif" (all others)
|
||||
@ -24,6 +24,9 @@ Version 2.12.0.9 (dev) not released yet
|
||||
- Unintended excess horizontal whitespace of Composite symbols removed, and
|
||||
quiet zone settings respected exactly, and centring of HRT (if any) now
|
||||
relative to linear part of symbol only rather than whole symbol
|
||||
- Unlikely-to-be-used `bitmap_byte_length` member removed from `zint_symbol`
|
||||
(was only set on BMP output to length of BMP pixel array)
|
||||
- EXCODE39 now defaults to displaying check digit in Human Readable Text (HRT)
|
||||
|
||||
Changes
|
||||
-------
|
||||
@ -73,6 +76,11 @@ Changes
|
||||
adjust text to baseline using values for Arimo rather than percentage
|
||||
- manual: expand size/alpha details in Section "5.4 Buffering Symbols in Memory
|
||||
(raster)" (cf ticket #291); add BSD info
|
||||
- EXCODE39: change to display check digit in HRT by default
|
||||
- CODE39/EXCODE39/LOGMARS: new hidden check digit option
|
||||
- GUI: move some symbology-specific options into Data Tab so separate tab
|
||||
unnecessary
|
||||
- manual: add annexes on Qt and Tcl backends
|
||||
|
||||
Bugs
|
||||
----
|
||||
|
@ -1,4 +1,4 @@
|
||||
% Tested on Ubuntu 20.04.4 LTS, Ubuntu 22.04 LTS and Fedora Linux 36 (Workstation Edition)
|
||||
% Tested on Ubuntu 20.04.4 LTS, Ubuntu 22.04 LTS and Fedora Linux 38 (Workstation Edition)
|
||||
|
||||
1. Prerequisites for building zint
|
||||
==================================
|
||||
@ -60,7 +60,7 @@ or Ubuntu 20.04
|
||||
|
||||
sudo apt install qt5-default qt5-uitools
|
||||
|
||||
or Fedora 36 (not recommended)
|
||||
or Fedora 38 (not recommended)
|
||||
|
||||
sudo dnf install qt5-qtbase-devel qt5-qttools-devel qt5-qttools-static qt5-qtsvg-devel
|
||||
|
||||
|
@ -122,8 +122,6 @@ INTERNAL int bmp_pixel_plot(struct zint_symbol *symbol, const unsigned char *pix
|
||||
}
|
||||
}
|
||||
|
||||
symbol->bitmap_byte_length = data_size;
|
||||
|
||||
file_header.header_field = 0x4d42; /* "BM" */
|
||||
file_header.file_size = file_size;
|
||||
file_header.reserved = 0;
|
||||
|
@ -248,7 +248,7 @@ INTERNAL int code39(struct zint_symbol *symbol, unsigned char source[], int leng
|
||||
|
||||
counter = 0;
|
||||
|
||||
if ((symbol->option_2 < 0) || (symbol->option_2 > 1)) {
|
||||
if ((symbol->option_2 < 0) || (symbol->option_2 > 2)) {
|
||||
symbol->option_2 = 0;
|
||||
}
|
||||
|
||||
@ -281,7 +281,7 @@ INTERNAL int code39(struct zint_symbol *symbol, unsigned char source[], int leng
|
||||
counter += posns[i];
|
||||
}
|
||||
|
||||
if (symbol->option_2 == 1) {
|
||||
if (symbol->option_2 == 1 || symbol->option_2 == 2) { /* Visible or hidden check digit */
|
||||
|
||||
char check_digit;
|
||||
counter %= 43;
|
||||
@ -294,8 +294,10 @@ INTERNAL int code39(struct zint_symbol *symbol, unsigned char source[], int leng
|
||||
check_digit = '_';
|
||||
}
|
||||
|
||||
if (symbol->option_2 == 1) { /* Visible check digit */
|
||||
localstr[0] = check_digit;
|
||||
localstr[1] = '\0';
|
||||
}
|
||||
if (symbol->debug & ZINT_DEBUG_PRINT) printf("Check digit: %c\n", check_digit);
|
||||
}
|
||||
|
||||
@ -442,6 +444,7 @@ INTERNAL int excode39(struct zint_symbol *symbol, unsigned char source[], int le
|
||||
|
||||
unsigned char buffer[85 * 2 + 1] = {0};
|
||||
unsigned char *b = buffer;
|
||||
unsigned char check_digit = '\0';
|
||||
int i;
|
||||
int error_number;
|
||||
|
||||
@ -469,9 +472,22 @@ INTERNAL int excode39(struct zint_symbol *symbol, unsigned char source[], int le
|
||||
/* Then sends the buffer to the C39 function */
|
||||
error_number = code39(symbol, buffer, b - buffer);
|
||||
|
||||
/* Save visible check digit */
|
||||
if (symbol->option_2 == 1) {
|
||||
const int len = (int) ustrlen(symbol->text);
|
||||
if (len > 0) {
|
||||
check_digit = symbol->text[len - 1];
|
||||
}
|
||||
}
|
||||
|
||||
/* Copy over source to HRT, subbing space for unprintables */
|
||||
for (i = 0; i < length; i++)
|
||||
symbol->text[i] = source[i] >= ' ' && source[i] != 0x7F ? source[i] : ' ';
|
||||
symbol->text[length] = '\0'; /* Chops off check digit */
|
||||
|
||||
if (check_digit) {
|
||||
symbol->text[i++] = check_digit;
|
||||
}
|
||||
symbol->text[i] = '\0';
|
||||
|
||||
return error_number;
|
||||
}
|
||||
|
@ -108,7 +108,6 @@ void ZBarcode_Clear(struct zint_symbol *symbol) {
|
||||
}
|
||||
symbol->bitmap_width = 0;
|
||||
symbol->bitmap_height = 0;
|
||||
symbol->bitmap_byte_length = 0;
|
||||
|
||||
/* If there is a rendered version, ensure its memory is released */
|
||||
vector_free(symbol);
|
||||
|
10
backend/qr.c
@ -871,6 +871,12 @@ static void qr_place_align(unsigned char grid[], const int size, int x, int y) {
|
||||
static void qr_setup_grid(unsigned char *grid, const int size, const int version) {
|
||||
int i, toggle = 1;
|
||||
|
||||
/* Suppress false positive gcc-13 warning (when optimizing only) "writing 1 byte into a region of size 0" */
|
||||
#if defined(__GNUC__) && __GNUC__ == 13
|
||||
#pragma GCC diagnostic push
|
||||
#pragma GCC diagnostic ignored "-Wstringop-overflow"
|
||||
#endif
|
||||
|
||||
/* Add timing patterns */
|
||||
for (i = 0; i < size; i++) {
|
||||
if (toggle == 1) {
|
||||
@ -902,6 +908,10 @@ static void qr_setup_grid(unsigned char *grid, const int size, const int version
|
||||
grid[(7 * size) + (size - 8)] = 0x10;
|
||||
grid[((size - 8) * size) + 7] = 0x10;
|
||||
|
||||
#if defined(__GNUC__) && __GNUC__ == 13
|
||||
#pragma GCC diagnostic pop
|
||||
#endif
|
||||
|
||||
/* Add alignment patterns */
|
||||
if (version != 1) {
|
||||
/* Version 1 does not have alignment patterns */
|
||||
|
@ -1,6 +1,6 @@
|
||||
/*
|
||||
libzint - the open source barcode library
|
||||
Copyright (C) 2020-2022 Robin Stuart <rstuart114@gmail.com>
|
||||
Copyright (C) 2020-2023 Robin Stuart <rstuart114@gmail.com>
|
||||
|
||||
Redistribution and use in source and binary forms, with or without
|
||||
modification, are permitted provided that the following conditions
|
||||
@ -124,35 +124,43 @@ static void test_hrt(const testCtx *const p_ctx) {
|
||||
/* 2*/ { BARCODE_CODE11, 2, "123-45", -1, "123-45" }, /* No checksums */
|
||||
/* 3*/ { BARCODE_CODE11, -1, "123456789012", -1, "123456789012-8" }, /* First check digit 10 (A) goes to hyphen */
|
||||
/* 4*/ { BARCODE_CODE39, -1, "ABC1234", -1, "*ABC1234*" },
|
||||
/* 5*/ { BARCODE_CODE39, -1, "abc1234", -1, "*ABC1234*" }, /* Converts to upper */
|
||||
/* 6*/ { BARCODE_CODE39, -1, "123456789", -1, "*123456789*" },
|
||||
/* 7*/ { BARCODE_CODE39, 1, "123456789", -1, "*1234567892*" }, /* With check digit */
|
||||
/* 8*/ { BARCODE_EXCODE39, -1, "ABC1234", -1, "ABC1234" },
|
||||
/* 9*/ { BARCODE_EXCODE39, -1, "abc1234", -1, "abc1234" },
|
||||
/* 10*/ { BARCODE_EXCODE39, 1, "abc1234", -1, "abc1234" }, /* With check digit (not displayed) */
|
||||
/* 11*/ { BARCODE_EXCODE39, -1, "a%\000\001$\177z\033\037!+/\\@A~", 16, "a% $ z !+/\\@A~" }, /* NUL, ctrls and DEL replaced with spaces */
|
||||
/* 12*/ { BARCODE_LOGMARS, -1, "ABC1234", -1, "ABC1234" },
|
||||
/* 13*/ { BARCODE_LOGMARS, -1, "abc1234", -1, "ABC1234" }, /* Converts to upper */
|
||||
/* 14*/ { BARCODE_LOGMARS, 1, "abc1234", -1, "ABC12340" }, /* With check digit */
|
||||
/* 15*/ { BARCODE_LOGMARS, 1, "12345/ABCDE", -1, "12345/ABCDET" }, /* With check digit */
|
||||
/* 16*/ { BARCODE_CODE93, -1, "ABC1234", -1, "ABC1234" }, /* No longer shows 2 check chars added (same as BWIPP and TEC-IT) */
|
||||
/* 17*/ { BARCODE_CODE93, 1, "ABC1234", -1, "ABC1234S5" }, /* Unless requested */
|
||||
/* 18*/ { BARCODE_CODE93, -1, "abc1234", -1, "abc1234" },
|
||||
/* 19*/ { BARCODE_CODE93, 1, "abc1234", -1, "abc1234ZG" },
|
||||
/* 20*/ { BARCODE_CODE93, -1, "A\001a\000b\177d\037e", 9, "A a b d e" }, /* NUL, ctrls and DEL replaced with spaces */
|
||||
/* 21*/ { BARCODE_PZN, -1, "12345", -1, "PZN - 00123458" }, /* Pads with zeroes if length < 7 */
|
||||
/* 22*/ { BARCODE_PZN, -1, "123456", -1, "PZN - 01234562" },
|
||||
/* 23*/ { BARCODE_PZN, -1, "1234567", -1, "PZN - 12345678" },
|
||||
/* 24*/ { BARCODE_PZN, -1, "12345678", -1, "PZN - 12345678" },
|
||||
/* 25*/ { BARCODE_PZN, 1, "1234", -1, "PZN - 0012345" }, /* PZN7, pads with zeroes if length < 6 */
|
||||
/* 26*/ { BARCODE_PZN, 1, "12345", -1, "PZN - 0123458" },
|
||||
/* 27*/ { BARCODE_PZN, 1, "123456", -1, "PZN - 1234562" },
|
||||
/* 28*/ { BARCODE_PZN, 1, "1234562", -1, "PZN - 1234562" },
|
||||
/* 29*/ { BARCODE_VIN, -1, "1FTCR10UXTPA78180", -1, "1FTCR10UXTPA78180" },
|
||||
/* 30*/ { BARCODE_VIN, 1, "2FTPX28L0XCA15511", -1, "2FTPX28L0XCA15511" }, /* Include Import char - no change */
|
||||
/* 31*/ { BARCODE_HIBC_39, -1, "ABC1234", -1, "*+ABC1234+*" },
|
||||
/* 32*/ { BARCODE_HIBC_39, -1, "abc1234", -1, "*+ABC1234+*" }, /* Converts to upper */
|
||||
/* 33*/ { BARCODE_HIBC_39, -1, "123456789", -1, "*+1234567890*" },
|
||||
/* 5*/ { BARCODE_CODE39, 1, "ABC1234", -1, "*ABC12340*" }, /* With visible check digit */
|
||||
/* 6*/ { BARCODE_CODE39, -1, "abc1234", -1, "*ABC1234*" }, /* Converts to upper */
|
||||
/* 7*/ { BARCODE_CODE39, 1, "abc1234", -1, "*ABC12340*" }, /* Converts to upper */
|
||||
/* 8*/ { BARCODE_CODE39, -1, "123456789", -1, "*123456789*" },
|
||||
/* 9*/ { BARCODE_CODE39, 1, "123456789", -1, "*1234567892*" }, /* With visible check digit */
|
||||
/* 10*/ { BARCODE_CODE39, 2, "123456789", -1, "*123456789*" }, /* With hidden check digit */
|
||||
/* 11*/ { BARCODE_EXCODE39, -1, "ABC1234", -1, "ABC1234" },
|
||||
/* 12*/ { BARCODE_EXCODE39, 1, "ABC1234", -1, "ABC12340" }, /* With visible check digit */
|
||||
/* 13*/ { BARCODE_EXCODE39, -1, "abc1234", -1, "abc1234" },
|
||||
/* 14*/ { BARCODE_EXCODE39, 1, "abc1234", -1, "abc1234." }, /* With visible check digit (previously was hidden) */
|
||||
/* 15*/ { BARCODE_EXCODE39, 2, "abc1234", -1, "abc1234" }, /* With hidden check digit */
|
||||
/* 16*/ { BARCODE_EXCODE39, -1, "a%\000\001$\177z\033\037!+/\\@A~", 16, "a% $ z !+/\\@A~" }, /* NUL, ctrls and DEL replaced with spaces */
|
||||
/* 17*/ { BARCODE_EXCODE39, 1, "a%\000\001$\177z\033\037!+/\\@A~", 16, "a% $ z !+/\\@A~L" }, /* With visible check digit */
|
||||
/* 18*/ { BARCODE_EXCODE39, 2, "a%\000\001$\177z\033\037!+/\\@A~", 16, "a% $ z !+/\\@A~" }, /* With hidden check digit */
|
||||
/* 19*/ { BARCODE_LOGMARS, -1, "ABC1234", -1, "ABC1234" },
|
||||
/* 20*/ { BARCODE_LOGMARS, -1, "abc1234", -1, "ABC1234" }, /* Converts to upper */
|
||||
/* 21*/ { BARCODE_LOGMARS, 1, "abc1234", -1, "ABC12340" }, /* With check digit */
|
||||
/* 22*/ { BARCODE_LOGMARS, 1, "12345/ABCDE", -1, "12345/ABCDET" }, /* With visible check digit */
|
||||
/* 23*/ { BARCODE_LOGMARS, 2, "12345/ABCDE", -1, "12345/ABCDE" }, /* With hidden check digit */
|
||||
/* 24*/ { BARCODE_CODE93, -1, "ABC1234", -1, "ABC1234" }, /* No longer shows 2 check chars added (same as BWIPP and TEC-IT) */
|
||||
/* 25*/ { BARCODE_CODE93, 1, "ABC1234", -1, "ABC1234S5" }, /* Unless requested */
|
||||
/* 26*/ { BARCODE_CODE93, -1, "abc1234", -1, "abc1234" },
|
||||
/* 27*/ { BARCODE_CODE93, 1, "abc1234", -1, "abc1234ZG" },
|
||||
/* 28*/ { BARCODE_CODE93, -1, "A\001a\000b\177d\037e", 9, "A a b d e" }, /* NUL, ctrls and DEL replaced with spaces */
|
||||
/* 29*/ { BARCODE_PZN, -1, "12345", -1, "PZN - 00123458" }, /* Pads with zeroes if length < 7 */
|
||||
/* 30*/ { BARCODE_PZN, -1, "123456", -1, "PZN - 01234562" },
|
||||
/* 31*/ { BARCODE_PZN, -1, "1234567", -1, "PZN - 12345678" },
|
||||
/* 32*/ { BARCODE_PZN, -1, "12345678", -1, "PZN - 12345678" },
|
||||
/* 33*/ { BARCODE_PZN, 1, "1234", -1, "PZN - 0012345" }, /* PZN7, pads with zeroes if length < 6 */
|
||||
/* 34*/ { BARCODE_PZN, 1, "12345", -1, "PZN - 0123458" },
|
||||
/* 35*/ { BARCODE_PZN, 1, "123456", -1, "PZN - 1234562" },
|
||||
/* 36*/ { BARCODE_PZN, 1, "1234562", -1, "PZN - 1234562" },
|
||||
/* 37*/ { BARCODE_VIN, -1, "1FTCR10UXTPA78180", -1, "1FTCR10UXTPA78180" },
|
||||
/* 38*/ { BARCODE_VIN, 1, "2FTPX28L0XCA15511", -1, "2FTPX28L0XCA15511" }, /* Include Import char - no change */
|
||||
/* 39*/ { BARCODE_HIBC_39, -1, "ABC1234", -1, "*+ABC1234+*" },
|
||||
/* 40*/ { BARCODE_HIBC_39, -1, "abc1234", -1, "*+ABC1234+*" }, /* Converts to upper */
|
||||
/* 41*/ { BARCODE_HIBC_39, -1, "123456789", -1, "*+1234567890*" },
|
||||
};
|
||||
int data_size = ARRAY_SIZE(data);
|
||||
int i, length, ret;
|
||||
@ -222,40 +230,45 @@ static void test_input(const testCtx *const p_ctx) {
|
||||
/* 25*/ { BARCODE_CODE39, -1, "\300", -1, ZINT_ERROR_INVALID_DATA, -1, -1 },
|
||||
/* 26*/ { BARCODE_CODE39, 0, "1", -1, 0, 1, 38 },
|
||||
/* 27*/ { BARCODE_CODE39, 1, "1", -1, 0, 1, 51 }, /* Check digit */
|
||||
/* 28*/ { BARCODE_CODE39, 2, "1", -1, 0, 1, 38 }, /* option_2 > 1 gnored */
|
||||
/* 29*/ { BARCODE_EXCODE39, -1, "A", -1, 0, 1, 38 },
|
||||
/* 30*/ { BARCODE_EXCODE39, -1, "a", -1, 0, 1, 51 },
|
||||
/* 31*/ { BARCODE_EXCODE39, -1, ",", -1, 0, 1, 51 },
|
||||
/* 32*/ { BARCODE_EXCODE39, -1, "\000", 1, 0, 1, 51 },
|
||||
/* 33*/ { BARCODE_EXCODE39, -1, "\300", -1, ZINT_ERROR_INVALID_DATA, -1, -1 },
|
||||
/* 34*/ { BARCODE_EXCODE39, -1, "é", -1, ZINT_ERROR_INVALID_DATA, -1, -1, },
|
||||
/* 35*/ { BARCODE_LOGMARS, -1, "A", -1, 0, 1, 47 },
|
||||
/* 36*/ { BARCODE_LOGMARS, -1, "a", -1, 0, 1, 47 },
|
||||
/* 37*/ { BARCODE_LOGMARS, -1, ",", -1, ZINT_ERROR_INVALID_DATA, -1, -1, },
|
||||
/* 38*/ { BARCODE_LOGMARS, -1, "\000", 1, ZINT_ERROR_INVALID_DATA, -1, -1, },
|
||||
/* 39*/ { BARCODE_LOGMARS, -1, "\300", -1, ZINT_ERROR_INVALID_DATA, -1, -1, },
|
||||
/* 40*/ { BARCODE_CODE93, -1, "A", -1, 0, 1, 46 },
|
||||
/* 41*/ { BARCODE_CODE93, -1, "a", -1, 0, 1, 55 },
|
||||
/* 42*/ { BARCODE_CODE93, -1, ",", -1, 0, 1, 55 },
|
||||
/* 43*/ { BARCODE_CODE93, -1, "\000", 1, 0, 1, 55 },
|
||||
/* 44*/ { BARCODE_CODE93, -1, "\300", -1, ZINT_ERROR_INVALID_DATA, -1, -1 },
|
||||
/* 45*/ { BARCODE_CODE93, -1, "é", -1, ZINT_ERROR_INVALID_DATA, -1, -1 },
|
||||
/* 46*/ { BARCODE_PZN, -1, "1", -1, 0, 1, 142 },
|
||||
/* 47*/ { BARCODE_PZN, -1, "A", -1, ZINT_ERROR_INVALID_DATA, -1, -1 },
|
||||
/* 48*/ { BARCODE_PZN, -1, "1000006", -1, ZINT_ERROR_INVALID_DATA, -1, -1 }, /* Check digit == 10 so can't be used */
|
||||
/* 49*/ { BARCODE_PZN, -1, "00000011", -1, ZINT_ERROR_INVALID_CHECK, -1, -1 },
|
||||
/* 50*/ { BARCODE_PZN, 1, "100009", -1, ZINT_ERROR_INVALID_DATA, -1, -1 }, /* Check digit == 10 so can't be used */
|
||||
/* 51*/ { BARCODE_PZN, 1, "0000011", -1, ZINT_ERROR_INVALID_CHECK, -1, -1 },
|
||||
/* 52*/ { BARCODE_VIN, -1, "5GZCZ43D13S812715", -1, 0, 1, 246 },
|
||||
/* 53*/ { BARCODE_VIN, -1, "5GZCZ43D23S812715", -1, ZINT_ERROR_INVALID_CHECK, -1, -1 }, /* North American with invalid check character */
|
||||
/* 54*/ { BARCODE_VIN, -1, "WP0ZZZ99ZTS392124", -1, 0, 1, 246 }, /* Not North American so no check */
|
||||
/* 55*/ { BARCODE_VIN, -1, "WP0ZZZ99ZTS392I24", -1, ZINT_ERROR_INVALID_DATA, -1, -1 }, /* I not allowed */
|
||||
/* 56*/ { BARCODE_VIN, -1, "WPOZZZ99ZTS392124", -1, ZINT_ERROR_INVALID_DATA, -1, -1 }, /* O not allowed */
|
||||
/* 57*/ { BARCODE_VIN, -1, "WPQZZZ99ZTS392124", -1, ZINT_ERROR_INVALID_DATA, -1, -1 }, /* Q not allowed */
|
||||
/* 58*/ { BARCODE_HIBC_39, -1, "a", -1, 0, 1, 79 }, /* Converts to upper */
|
||||
/* 59*/ { BARCODE_HIBC_39, -1, ",", -1, ZINT_ERROR_INVALID_DATA, -1, -1 },
|
||||
/* 60*/ { BARCODE_HIBC_39, -1, "\000", 1, ZINT_ERROR_INVALID_DATA, -1, -1 },
|
||||
/* 61*/ { BARCODE_HIBC_39, -1, "\300", -1, ZINT_ERROR_INVALID_DATA, -1, -1 },
|
||||
/* 28*/ { BARCODE_CODE39, 2, "1", -1, 0, 1, 51 }, /* Hidden check digit */
|
||||
/* 29*/ { BARCODE_CODE39, 3, "1", -1, 0, 1, 38 }, /* option_2 > 2 ignored */
|
||||
/* 30*/ { BARCODE_EXCODE39, -1, "A", -1, 0, 1, 38 },
|
||||
/* 31*/ { BARCODE_EXCODE39, 3, "A", -1, 0, 1, 38 }, /* option_2 > 2 ignored */
|
||||
/* 32*/ { BARCODE_EXCODE39, -1, "a", -1, 0, 1, 51 },
|
||||
/* 33*/ { BARCODE_EXCODE39, -1, ",", -1, 0, 1, 51 },
|
||||
/* 34*/ { BARCODE_EXCODE39, -1, "\000", 1, 0, 1, 51 },
|
||||
/* 35*/ { BARCODE_EXCODE39, -1, "\300", -1, ZINT_ERROR_INVALID_DATA, -1, -1 },
|
||||
/* 36*/ { BARCODE_EXCODE39, -1, "é", -1, ZINT_ERROR_INVALID_DATA, -1, -1, },
|
||||
/* 37*/ { BARCODE_LOGMARS, -1, "A", -1, 0, 1, 47 },
|
||||
/* 38*/ { BARCODE_LOGMARS, -1, "a", -1, 0, 1, 47 },
|
||||
/* 39*/ { BARCODE_LOGMARS, -1, ",", -1, ZINT_ERROR_INVALID_DATA, -1, -1, },
|
||||
/* 40*/ { BARCODE_LOGMARS, -1, "\000", 1, ZINT_ERROR_INVALID_DATA, -1, -1, },
|
||||
/* 41*/ { BARCODE_LOGMARS, -1, "\300", -1, ZINT_ERROR_INVALID_DATA, -1, -1, },
|
||||
/* 42*/ { BARCODE_LOGMARS, 3, "A", -1, 0, 1, 47 }, /* option_2 > 2 ignored */
|
||||
/* 43*/ { BARCODE_CODE93, -1, "A", -1, 0, 1, 46 },
|
||||
/* 44*/ { BARCODE_CODE93, -1, "a", -1, 0, 1, 55 },
|
||||
/* 45*/ { BARCODE_CODE93, -1, ",", -1, 0, 1, 55 },
|
||||
/* 46*/ { BARCODE_CODE93, -1, "\000", 1, 0, 1, 55 },
|
||||
/* 47*/ { BARCODE_CODE93, -1, "\300", -1, ZINT_ERROR_INVALID_DATA, -1, -1 },
|
||||
/* 48*/ { BARCODE_CODE93, -1, "é", -1, ZINT_ERROR_INVALID_DATA, -1, -1 },
|
||||
/* 49*/ { BARCODE_PZN, -1, "1", -1, 0, 1, 142 },
|
||||
/* 50*/ { BARCODE_PZN, -1, "A", -1, ZINT_ERROR_INVALID_DATA, -1, -1 },
|
||||
/* 51*/ { BARCODE_PZN, -1, "1000006", -1, ZINT_ERROR_INVALID_DATA, -1, -1 }, /* Check digit == 10 so can't be used */
|
||||
/* 52*/ { BARCODE_PZN, -1, "00000011", -1, ZINT_ERROR_INVALID_CHECK, -1, -1 },
|
||||
/* 53*/ { BARCODE_PZN, 1, "100009", -1, ZINT_ERROR_INVALID_DATA, -1, -1 }, /* Check digit == 10 so can't be used */
|
||||
/* 54*/ { BARCODE_PZN, 1, "0000011", -1, ZINT_ERROR_INVALID_CHECK, -1, -1 },
|
||||
/* 55*/ { BARCODE_VIN, -1, "5GZCZ43D13S812715", -1, 0, 1, 246 },
|
||||
/* 56*/ { BARCODE_VIN, -1, "5GZCZ43D23S812715", -1, ZINT_ERROR_INVALID_CHECK, -1, -1 }, /* North American with invalid check character */
|
||||
/* 57*/ { BARCODE_VIN, -1, "WP0ZZZ99ZTS392124", -1, 0, 1, 246 }, /* Not North American so no check */
|
||||
/* 58*/ { BARCODE_VIN, -1, "WP0ZZZ99ZTS392I24", -1, ZINT_ERROR_INVALID_DATA, -1, -1 }, /* I not allowed */
|
||||
/* 59*/ { BARCODE_VIN, -1, "WPOZZZ99ZTS392124", -1, ZINT_ERROR_INVALID_DATA, -1, -1 }, /* O not allowed */
|
||||
/* 60*/ { BARCODE_VIN, -1, "WPQZZZ99ZTS392124", -1, ZINT_ERROR_INVALID_DATA, -1, -1 }, /* Q not allowed */
|
||||
/* 61*/ { BARCODE_HIBC_39, -1, "a", -1, 0, 1, 79 }, /* Converts to upper */
|
||||
/* 62*/ { BARCODE_HIBC_39, -1, ",", -1, ZINT_ERROR_INVALID_DATA, -1, -1 },
|
||||
/* 63*/ { BARCODE_HIBC_39, -1, "\000", 1, ZINT_ERROR_INVALID_DATA, -1, -1 },
|
||||
/* 64*/ { BARCODE_HIBC_39, -1, "\300", -1, ZINT_ERROR_INVALID_DATA, -1, -1 },
|
||||
/* 65*/ { BARCODE_HIBC_39, 1, "a", -1, 0, 1, 79 }, /* option_2 ignored */
|
||||
/* 66*/ { BARCODE_HIBC_39, 2, "a", -1, 0, 1, 79 }, /* option_2 ignored */
|
||||
};
|
||||
int data_size = ARRAY_SIZE(data);
|
||||
int i, length, ret;
|
||||
|
@ -1335,7 +1335,6 @@ static void test_clear(const testCtx *const p_ctx) {
|
||||
|
||||
assert_nonzero(symbol->rows, "ZBarcode_Buffer() rows 0\n");
|
||||
assert_nonzero(symbol->width, "ZBarcode_Buffer() width 0\n");
|
||||
assert_zero(symbol->bitmap_byte_length, "ZBarcode_Buffer() bitmap_byte_length %d != 0\n", (int) symbol->bitmap_byte_length);
|
||||
assert_null(symbol->vector, "ZBarcode_Buffer() vector != NULL\n");
|
||||
|
||||
ZBarcode_Clear(symbol);
|
||||
@ -1347,7 +1346,6 @@ static void test_clear(const testCtx *const p_ctx) {
|
||||
|
||||
assert_zero(symbol->rows, "ZBarcode_Buffer() rows %d != 0\n", symbol->rows);
|
||||
assert_zero(symbol->width, "ZBarcode_Buffer() width %d != 0\n", symbol->width);
|
||||
assert_zero(symbol->bitmap_byte_length, "ZBarcode_Buffer() bitmap_byte_length %d != 0\n", (int) symbol->bitmap_byte_length);
|
||||
assert_null(symbol->vector, "ZBarcode_Buffer() vector != NULL\n");
|
||||
|
||||
/* Vector */
|
||||
@ -1371,7 +1369,6 @@ static void test_clear(const testCtx *const p_ctx) {
|
||||
assert_nonzero(symbol->width, "ZBarcode_Buffer_Vector() width 0\n");
|
||||
assert_null(symbol->bitmap, "ZBarcode_Buffer_Vector() bitmap != NULL\n");
|
||||
assert_null(symbol->alphamap, "ZBarcode_Buffer_Vector() alphamap != NULL\n");
|
||||
assert_zero(symbol->bitmap_byte_length, "ZBarcode_Buffer_Vector() bitmap_byte_length %d != 0\n", (int) symbol->bitmap_byte_length);
|
||||
|
||||
ZBarcode_Clear(symbol);
|
||||
|
||||
@ -1379,7 +1376,6 @@ static void test_clear(const testCtx *const p_ctx) {
|
||||
|
||||
assert_zero(symbol->rows, "ZBarcode_Buffer_Vector() rows %d != 0\n", symbol->rows);
|
||||
assert_zero(symbol->width, "ZBarcode_Buffer_Vector() width %d != 0\n", symbol->width);
|
||||
assert_zero(symbol->bitmap_byte_length, "ZBarcode_Buffer_Vector() bitmap_byte_length %d != 0\n", (int) symbol->bitmap_byte_length);
|
||||
assert_null(symbol->bitmap, "ZBarcode_Buffer_Vector() bitmap != NULL\n");
|
||||
assert_null(symbol->alphamap, "ZBarcode_Buffer_Vector() alphamap != NULL\n");
|
||||
assert_zero(symbol->bitmap_width, "ZBarcode_Buffer_Vector() bitmap_width %d != 0\n", symbol->bitmap_width);
|
||||
|
@ -130,7 +130,6 @@ extern "C" {
|
||||
int bitmap_width; /* Width of bitmap image (raster output only) */
|
||||
int bitmap_height; /* Height of bitmap image (raster output only) */
|
||||
unsigned char *alphamap; /* Array of alpha values used (raster output only) */
|
||||
unsigned int bitmap_byte_length; /* Size of BMP bitmap data (raster output only) */
|
||||
struct zint_vector *vector; /* Pointer to vector header (vector output only) */
|
||||
};
|
||||
|
||||
@ -290,7 +289,7 @@ extern "C" {
|
||||
/* Note: CODE16K, CODE49, CODABLOCKF, ITF14, EAN/UPC have default quiet zones
|
||||
*/
|
||||
#define BARCODE_NO_QUIET_ZONES 0x1000 /* Disable quiet zones, notably those with defaults as listed above */
|
||||
#define COMPLIANT_HEIGHT 0x2000 /* Warn if height not compliant and use standard height (if any) as default */
|
||||
#define COMPLIANT_HEIGHT 0x2000 /* Warn if height not compliant, or use standard height (if any) as default */
|
||||
#define EANUPC_GUARD_WHITESPACE 0x4000 /* Add quiet zone indicators ("<"/">") to HRT whitespace (EAN/UPC) */
|
||||
#define EMBED_VECTOR_FONT 0x8000 /* Embed font in vector output - currently only for SVG output */
|
||||
|
||||
|
@ -1,5 +1,5 @@
|
||||
# Makefile for generating "manual.txt" and "manual.pdf" from "manual.pmd" using pandoc
|
||||
# Copyright (C) 2022 <rstuart114@gmail.com>
|
||||
# Makefile for generating "manual.txt" and "manual.pdf" from "manual.pmd" and "zint.1" from "zint.1.pmd" using pandoc
|
||||
# Copyright (C) 2022-2023 <rstuart114@gmail.com>
|
||||
#
|
||||
# Requires a recent version of pandoc, plus pandoc-tablenos, xelatex and various other packages - see "README"
|
||||
# .svg images generated by "zint_images.sh"
|
||||
@ -9,7 +9,6 @@ OUT_PDF = manual.pdf
|
||||
OUT_TXT = manual.txt
|
||||
INC_HEADER_PDF = inc_header_pdf.tex
|
||||
INC_BEFORE_BODY_PDF = inc_before_body_pdf.tex
|
||||
INCLUDES_PDF = $(INC_HEADER_PDF) $(INC_BEFORE_BODY_PDF)
|
||||
INC_PDF = --include-in-header $(INC_HEADER_PDF) --include-before-body $(INC_BEFORE_BODY_PDF)
|
||||
INCLUDES_TXT = inc_header_txt.tex
|
||||
INC_TXT = --include-in-header $(INCLUDES_TXT)
|
||||
@ -24,6 +23,7 @@ IMAGES = \
|
||||
images/gui_menus.png \
|
||||
images/gui_composite.png \
|
||||
images/gui_segs.png \
|
||||
images/gui_c25inter.png \
|
||||
images/gui_aztec.png \
|
||||
images/gui_appearance.png \
|
||||
images/gui_scaling.png \
|
||||
@ -36,6 +36,7 @@ IMAGES = \
|
||||
images/gui_sequence.png \
|
||||
images/gui_export.png \
|
||||
images/gui_cli_equivalent.png \
|
||||
images/tcl_demo.png \
|
||||
images/pdf417_heightperrow.svg \
|
||||
images/code128_box.svg \
|
||||
images/qrcode_box.svg \
|
||||
@ -149,7 +150,7 @@ MAN_PAGE_OPTS = -s -t man
|
||||
|
||||
all : $(OUT_PDF) $(OUT_TXT) $(OUT_MAN_PAGE)
|
||||
|
||||
$(OUT_PDF) : $(SOURCE) $(SOURCE_MAN_PAGE) $(HIGHLIGHT_THEME) $(INC_HEADER_PDF) $(INC_BEFORE_BODY_PDF) $(IMAGES) Makefile
|
||||
$(OUT_PDF) : $(SOURCE) $(SOURCE_MAN_PAGE) $(INC_HEADER_PDF) $(INC_BEFORE_BODY_PDF) $(IMAGES) Makefile
|
||||
pandoc $(SOURCE_MAN_PAGE) -f markdown \
|
||||
$(PDF_OPTS) \
|
||||
-o $(TEX_MAN_PAGE)
|
||||
@ -165,13 +166,52 @@ $(OUT_TXT) : $(SOURCE) $(SOURCE_MAN_PAGE) $(INCLUDES_TXT) Makefile
|
||||
-V $(MAIN_FONT) -V $(MONO_FONT) -V $(CJK_FONT) \
|
||||
$(TXT_OPTS) \
|
||||
-o $(OUT_TXT)
|
||||
# Indent Man Page sections in TOC and remove trailing spaces
|
||||
# Indent Man Page sections in TOC, remove trailing spaces and echoed image tags
|
||||
sed -i \
|
||||
-e 's/^\(- [A-Z][A-Z ]*\)$$/ \1/' \
|
||||
-e 's/ *$$//' \
|
||||
-e '/^\[.*\]$$/{N;N;s/\[\(.*\)\]\n\n\1/[\1]/;p;d}' \
|
||||
$(OUT_TXT)
|
||||
# Wrap
|
||||
sed -i '/.\{81\}/{s/.\{80\}/&\n/}' $(OUT_TXT)
|
||||
|
||||
$(OUT_MAN_PAGE) : $(SOURCE_MAN_PAGE) Makefile
|
||||
pandoc $(SOURCE_MAN_PAGE) -f markdown \
|
||||
$(MAN_PAGE_OPTS) \
|
||||
-o $(OUT_MAN_PAGE)
|
||||
|
||||
# For debugging
|
||||
|
||||
manual.tex : $(SOURCE) $(SOURCE_MAN_PAGE) $(INC_HEADER_PDF) $(INC_BEFORE_BODY_PDF) $(IMAGES) Makefile
|
||||
pandoc $(SOURCE_MAN_PAGE) -f markdown \
|
||||
$(PDF_OPTS) \
|
||||
-o $(TEX_MAN_PAGE)
|
||||
sed -i -e 's/section{/subsection{/' $(TEX_MAN_PAGE) # Convert man page sections to subsections
|
||||
pandoc $(SOURCE) -f markdown $(INC_PDF) --toc --toc-depth=4 \
|
||||
-V $(MAIN_FONT) -V $(MONO_FONT) -V $(CJK_FONT) -V block-headings \
|
||||
$(PDF_OPTS) \
|
||||
--include-after-body $(TEX_MAN_PAGE) \
|
||||
-s -o manual.tex
|
||||
|
||||
# HTML one-page (uses modified "templates/styles.html", unchanged "templates/default.html")
|
||||
|
||||
OUT_HTML = manual.html
|
||||
HTML_OPTS = --filter pandoc-tablenos -M tablenos-warning-level=0 --highlight-style=haddock \
|
||||
--template=templates/default.html --eol=lf -s -t html
|
||||
INC_BEFORE_BODY_HTML = inc_before_body_html.html
|
||||
INC_HTML = --include-before-body $(INC_BEFORE_BODY_HTML)
|
||||
TEMPLATES_HTML = templates/default.html templates/styles.html
|
||||
|
||||
$(OUT_HTML) : $(SOURCE) $(SOURCE_MAN_PAGE) $(INC_BEFORE_BODY_HTML) $(TEMPLATES_HTML) Makefile
|
||||
pandoc $(SOURCE) $(SOURCE_MAN_PAGE) -f markdown+link_attributes $(INC_HTML) --toc --toc-depth=4 \
|
||||
-V $(MAIN_FONT) -V $(MONO_FONT) -V $(CJK_FONT) \
|
||||
$(HTML_OPTS) \
|
||||
-o $(OUT_HTML)
|
||||
# Indent Man Page sections in TOC, change Man Page sections h1 -> h2, remove Man Page meta, fix Table captions
|
||||
sed -i \
|
||||
-e 's/\(Man Page ZINT(1)<\/a>\)<\/li>/\1<ul>/' \
|
||||
-e 's/\(AUTHORS<\/a><\/li>\)/\1<\/ul><\/li>/' \
|
||||
-e 's/^<h1\([^>]*>[A-Z][A-Z ]*<\/\)h1>$$/<h2\1h2>/' \
|
||||
-e 's/^<p>% ZINT(1)[^<]*<\/p>//' \
|
||||
-e 's/<caption><span>Table\(.:[^:]*\):/<caption><span>Table\1/' \
|
||||
$(OUT_HTML)
|
||||
|
10
docs/README
@ -2,8 +2,8 @@ For generation of "docs/manual.pdf" and "docs/manual.txt" from "manual.pmd" usin
|
||||
|
||||
On Ubuntu/Debian (tested on Ubuntu 22.04)
|
||||
|
||||
wget https://github.com/jgm/pandoc/releases/download/3.1.4/pandoc-3.1.4-1-amd64.deb
|
||||
sudo dpkg -i pandoc-3.1.4-1-amd64.deb
|
||||
wget https://github.com/jgm/pandoc/releases/download/3.1.5/pandoc-3.1.5-1-amd64.deb
|
||||
sudo dpkg -i pandoc-3.1.5-1-amd64.deb
|
||||
sudo apt install python3-pip
|
||||
pip install pandoc-tablenos --user
|
||||
export PATH=~/.local/bin:"$PATH"
|
||||
@ -18,9 +18,9 @@ On Ubuntu/Debian (tested on Ubuntu 22.04)
|
||||
|
||||
On Fedora (tested on Fedora Linux 38 (Workstation Edition))
|
||||
|
||||
wget https://github.com/jgm/pandoc/releases/download/3.1.4/pandoc-3.1.4-linux-amd64.tar.gz
|
||||
tar xf pandoc-3.1.4-linux-amd64.tar.gz
|
||||
sudo mv -i pandoc-3.1.4/bin/pandoc /usr/local/bin
|
||||
wget https://github.com/jgm/pandoc/releases/download/3.1.5/pandoc-3.1.5-linux-amd64.tar.gz
|
||||
tar xf pandoc-3.1.5-linux-amd64.tar.gz
|
||||
sudo mv -i pandoc-3.1.5/bin/pandoc /usr/local/bin
|
||||
sudo dnf install python3-pip
|
||||
pip install pandoc-tablenos --user
|
||||
export PATH=~/.local/bin:"$PATH"
|
||||
|
Before Width: | Height: | Size: 332 KiB After Width: | Height: | Size: 331 KiB |
Before Width: | Height: | Size: 227 KiB After Width: | Height: | Size: 227 KiB |
BIN
docs/images/gui_c25inter.png
Normal file
After Width: | Height: | Size: 211 KiB |
Before Width: | Height: | Size: 276 KiB After Width: | Height: | Size: 272 KiB |
Before Width: | Height: | Size: 120 KiB After Width: | Height: | Size: 119 KiB |
Before Width: | Height: | Size: 235 KiB After Width: | Height: | Size: 235 KiB |
Before Width: | Height: | Size: 256 KiB After Width: | Height: | Size: 256 KiB |
BIN
docs/images/tcl_demo.png
Normal file
After Width: | Height: | Size: 35 KiB |
4
docs/inc_before_body_html.html
Normal file
@ -0,0 +1,4 @@
|
||||
<div id="banner">
|
||||
<img src="images/zint.png" class="img_hdr">
|
||||
<img src="images/zint-qt.png" class="img_hdr">
|
||||
</div>
|
@ -20,7 +20,6 @@
|
||||
|
||||
%% Text and background color for inline code
|
||||
\usepackage{xcolor}
|
||||
\usepackage{fvextra}
|
||||
\definecolor{icfg}{HTML}{331a33}
|
||||
\let\oldtexttt\texttt
|
||||
\renewcommand{\texttt}[1]{\textcolor{icfg}{\oldtexttt{#1}}}
|
||||
|
1309
docs/manual.pmd
709
docs/manual.txt
76
docs/templates/default.html
vendored
Normal file
@ -0,0 +1,76 @@
|
||||
<!DOCTYPE html>
|
||||
<html xmlns="http://www.w3.org/1999/xhtml" lang="$lang$" xml:lang="$lang$"$if(dir)$ dir="$dir$"$endif$>
|
||||
<head>
|
||||
<meta charset="utf-8" />
|
||||
<meta name="generator" content="pandoc" />
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0, user-scalable=yes" />
|
||||
$for(author-meta)$
|
||||
<meta name="author" content="$author-meta$" />
|
||||
$endfor$
|
||||
$if(date-meta)$
|
||||
<meta name="dcterms.date" content="$date-meta$" />
|
||||
$endif$
|
||||
$if(keywords)$
|
||||
<meta name="keywords" content="$for(keywords)$$keywords$$sep$, $endfor$" />
|
||||
$endif$
|
||||
$if(description-meta)$
|
||||
<meta name="description" content="$description-meta$" />
|
||||
$endif$
|
||||
<title>$if(title-prefix)$$title-prefix$ – $endif$$pagetitle$</title>
|
||||
<style>
|
||||
$styles.html()$
|
||||
</style>
|
||||
$for(css)$
|
||||
<link rel="stylesheet" href="$css$" />
|
||||
$endfor$
|
||||
$for(header-includes)$
|
||||
$header-includes$
|
||||
$endfor$
|
||||
$if(math)$
|
||||
$if(mathjax)$
|
||||
<script src="https://polyfill.io/v3/polyfill.min.js?features=es6"></script>
|
||||
$endif$
|
||||
$math$
|
||||
$endif$
|
||||
<!--[if lt IE 9]>
|
||||
<script src="//cdnjs.cloudflare.com/ajax/libs/html5shiv/3.7.3/html5shiv-printshiv.min.js"></script>
|
||||
<![endif]-->
|
||||
</head>
|
||||
<body>
|
||||
$for(include-before)$
|
||||
$include-before$
|
||||
$endfor$
|
||||
$if(title)$
|
||||
<header id="title-block-header">
|
||||
<h1 class="title">$title$</h1>
|
||||
$if(subtitle)$
|
||||
<p class="subtitle">$subtitle$</p>
|
||||
$endif$
|
||||
$for(author)$
|
||||
<p class="author">$author$</p>
|
||||
$endfor$
|
||||
$if(date)$
|
||||
<p class="date">$date$</p>
|
||||
$endif$
|
||||
$if(abstract)$
|
||||
<div class="abstract">
|
||||
<div class="abstract-title">$abstract-title$</div>
|
||||
$abstract$
|
||||
</div>
|
||||
$endif$
|
||||
</header>
|
||||
$endif$
|
||||
$if(toc)$
|
||||
<nav id="$idprefix$TOC" role="doc-toc">
|
||||
$if(toc-title)$
|
||||
<h2 id="$idprefix$toc-title">$toc-title$</h2>
|
||||
$endif$
|
||||
$table-of-contents$
|
||||
</nav>
|
||||
$endif$
|
||||
$body$
|
||||
$for(include-after)$
|
||||
$include-after$
|
||||
$endfor$
|
||||
</body>
|
||||
</html>
|
291
docs/templates/styles.html
vendored
Normal file
@ -0,0 +1,291 @@
|
||||
$if(document-css)$
|
||||
html {
|
||||
$if(mainfont)$
|
||||
font-family: $mainfont$;
|
||||
$endif$
|
||||
$if(fontsize)$
|
||||
font-size: $fontsize$;
|
||||
$endif$
|
||||
$if(linestretch)$
|
||||
line-height: $linestretch$;
|
||||
$endif$
|
||||
color: $if(fontcolor)$$fontcolor$$else$#1a1a1a$endif$;
|
||||
background-color: $if(backgroundcolor)$$backgroundcolor$$else$#fdfdfd$endif$;
|
||||
}
|
||||
body {
|
||||
margin: 0 auto;
|
||||
max-width: $if(maxwidth)$$maxwidth$$else$50em$endif$;
|
||||
padding-left: $if(margin-left)$$margin-left$$else$50px$endif$;
|
||||
padding-right: $if(margin-right)$$margin-right$$else$50px$endif$;
|
||||
padding-top: $if(margin-top)$$margin-top$$else$50px$endif$;
|
||||
padding-bottom: $if(margin-bottom)$$margin-bottom$$else$50px$endif$;
|
||||
hyphens: auto;
|
||||
overflow-wrap: break-word;
|
||||
text-rendering: optimizeLegibility;
|
||||
font-kerning: normal;
|
||||
}
|
||||
@media (max-width: 600px) {
|
||||
body {
|
||||
font-size: 0.9em;
|
||||
padding: 12px;
|
||||
}
|
||||
h1 {
|
||||
font-size: 1.8em;
|
||||
}
|
||||
}
|
||||
@media print {
|
||||
html {
|
||||
background-color: $if(backgroundcolor)$$backgroundcolor$$else$white$endif$;
|
||||
}
|
||||
body {
|
||||
background-color: transparent;
|
||||
color: black;
|
||||
font-size: 12pt;
|
||||
}
|
||||
p, h2, h3 {
|
||||
orphans: 3;
|
||||
widows: 3;
|
||||
}
|
||||
h2, h3, h4 {
|
||||
page-break-after: avoid;
|
||||
}
|
||||
}
|
||||
p {
|
||||
margin: 1em 0;
|
||||
}
|
||||
a {
|
||||
color: $if(linkcolor)$$linkcolor$$else$#800000$endif$;
|
||||
}
|
||||
a:visited {
|
||||
color: $if(linkcolor)$$linkcolor$$else$#800000$endif$;
|
||||
}
|
||||
a:not(:hover) {
|
||||
text-decoration: none;
|
||||
}
|
||||
figure {
|
||||
margin-left: 0;
|
||||
margin-right: 0;
|
||||
text-align: center;
|
||||
}
|
||||
img {
|
||||
max-width: 100%;
|
||||
}
|
||||
img.btn {
|
||||
height: 0.9em;
|
||||
}
|
||||
img.win {
|
||||
max-width: 80%;
|
||||
}
|
||||
img.pop {
|
||||
max-width: 60%;
|
||||
}
|
||||
img[src*="gui_set_printing_scale.png"] {
|
||||
max-width: 50%;
|
||||
}
|
||||
img.lin {
|
||||
max-height: 10em;
|
||||
}
|
||||
img[src*="code128_rotate90.svg"] {
|
||||
max-height: 20em;
|
||||
}
|
||||
img.i2d {
|
||||
max-height: 10em;
|
||||
}
|
||||
img[src*="upnqr.svg"] {
|
||||
max-height: 20em;
|
||||
}
|
||||
img.i2dbig {
|
||||
}
|
||||
img.trk {
|
||||
max-height: 3em;
|
||||
}
|
||||
img[src*="fim.svg"] {
|
||||
max-height: 10em;
|
||||
}
|
||||
img.dotty {
|
||||
max-height: 7em;
|
||||
}
|
||||
img.ultra {
|
||||
max-height: 12em;
|
||||
}
|
||||
img.upcean {
|
||||
max-height: 12em;
|
||||
}
|
||||
h1, h2, h3, h4, h5, h6 {
|
||||
margin-top: 1.4em;
|
||||
}
|
||||
h5, h6 {
|
||||
font-size: 1em;
|
||||
font-style: italic;
|
||||
}
|
||||
h6 {
|
||||
font-weight: normal;
|
||||
}
|
||||
ol, ul {
|
||||
padding-left: 1.7em;
|
||||
margin-top: 1em;
|
||||
}
|
||||
li > ol, li > ul {
|
||||
margin-top: 0;
|
||||
}
|
||||
dt {
|
||||
font-weight:bold;
|
||||
}
|
||||
blockquote {
|
||||
margin: 1em 0 1em 1.7em;
|
||||
padding-left: 1em;
|
||||
border-left: 2px solid #e6e6e6;
|
||||
color: #606060;
|
||||
}
|
||||
$if(abstract)$
|
||||
div.abstract {
|
||||
margin: 2em 2em 2em 2em;
|
||||
text-align: left;
|
||||
font-size: 85%;
|
||||
}
|
||||
div.abstract-title {
|
||||
font-weight: bold;
|
||||
text-align: center;
|
||||
padding: 0;
|
||||
margin-bottom: 0.5em;
|
||||
}
|
||||
$endif$
|
||||
code {
|
||||
font-family: $if(monofont)$$monofont$$else$Menlo, Monaco, Consolas, 'Lucida Console', monospace$endif$;
|
||||
$if(monobackgroundcolor)$
|
||||
background-color: $monobackgroundcolor$;
|
||||
padding: .2em .4em;
|
||||
$endif$
|
||||
font-size: 90%;
|
||||
margin: 0;
|
||||
hyphens: manual;
|
||||
color: #000000;
|
||||
}
|
||||
pre {
|
||||
margin: 1em 0;
|
||||
$if(monobackgroundcolor)$
|
||||
background-color: $monobackgroundcolor$;
|
||||
padding: 1em;
|
||||
$endif$
|
||||
overflow: auto;
|
||||
}
|
||||
pre code {
|
||||
padding: 0;
|
||||
overflow: visible;
|
||||
overflow-wrap: normal;
|
||||
}
|
||||
.sourceCode {
|
||||
background-color: transparent;
|
||||
overflow: visible;
|
||||
}
|
||||
div.sourceCode {
|
||||
background-color: #f5f5f5;
|
||||
padding: 0.3em 0;
|
||||
}
|
||||
aside.footnotes {
|
||||
font-size:90%;
|
||||
}
|
||||
hr {
|
||||
background-color: #1a1a1a;
|
||||
border: none;
|
||||
height: 1px;
|
||||
margin: 1em 0;
|
||||
}
|
||||
table {
|
||||
margin: 0 auto 0.4em auto;
|
||||
border-collapse: collapse;
|
||||
overflow-x: auto;
|
||||
font-variant-numeric: lining-nums tabular-nums;
|
||||
}
|
||||
#tbl\:gridmatrix_eccs {
|
||||
margin-top: 1em;
|
||||
}
|
||||
table caption {
|
||||
margin-bottom: 0.75em;
|
||||
}
|
||||
tbody {
|
||||
margin-top: 0.5em;
|
||||
border-top: 1px solid $if(fontcolor)$$fontcolor$$else$#1a1a1a$endif$;
|
||||
border-bottom: 1px solid $if(fontcolor)$$fontcolor$$else$#1a1a1a$endif$;
|
||||
}
|
||||
th {
|
||||
border-top: 1px solid $if(fontcolor)$$fontcolor$$else$#1a1a1a$endif$;
|
||||
padding: 0.25em 0.5em 0.25em 0.5em;
|
||||
}
|
||||
td {
|
||||
padding: 0.125em 0.5em 0.25em 0.5em;
|
||||
vertical-align: top;
|
||||
}
|
||||
header {
|
||||
margin-bottom: 4em;
|
||||
text-align: center;
|
||||
}
|
||||
#banner {
|
||||
text-align: center;
|
||||
}
|
||||
#banner img.img_hdr {
|
||||
height: 7em;
|
||||
}
|
||||
#TOC {
|
||||
font-size: 115%;
|
||||
}
|
||||
#TOC li {
|
||||
list-style: none;
|
||||
margin-bottom: 0.1em;
|
||||
margin-top: 0.2em;
|
||||
}
|
||||
#TOC ul {
|
||||
padding-left: 1.3em;
|
||||
}
|
||||
#TOC > ul {
|
||||
padding-left: 0;
|
||||
}
|
||||
#TOC > ul > li {
|
||||
margin-top: 0.5em;
|
||||
}
|
||||
#TOC > ul > li > a {
|
||||
font-weight: bold;
|
||||
}
|
||||
#TOC a:not(:hover) {
|
||||
color: #1a1a1a;
|
||||
text-decoration: none;
|
||||
}
|
||||
dd > p {
|
||||
margin-bottom:1.5em;
|
||||
margin-top:0.5em;
|
||||
}
|
||||
#exit-status + dl > dt {
|
||||
float: left;
|
||||
}
|
||||
#exit-status + dl > dd {
|
||||
margin-bottom: 1em;
|
||||
}
|
||||
|
||||
$endif$
|
||||
code{white-space: pre-wrap;}
|
||||
span.smallcaps{font-variant: small-caps;}
|
||||
div.columns{display: flex; gap: min(4vw, 1.5em);}
|
||||
div.column{flex: auto; overflow-x: auto;}
|
||||
div.hanging-indent{margin-left: 1.5em; text-indent: -1.5em;}
|
||||
/* The extra [class] is a hack that increases specificity enough to
|
||||
override a similar rule in reveal.js */
|
||||
ul.task-list[class]{list-style: none;}
|
||||
ul.task-list li input[type="checkbox"] {
|
||||
font-size: inherit;
|
||||
width: 0.8em;
|
||||
margin: 0 0.8em 0.2em -1.6em;
|
||||
vertical-align: middle;
|
||||
}
|
||||
$if(quotes)$
|
||||
q { quotes: "“" "”" "‘" "’"; }
|
||||
$endif$
|
||||
$if(displaymath-css)$
|
||||
.display.math{display: block; text-align: center; margin: 0.5rem auto;}
|
||||
$endif$
|
||||
$if(highlighting-css)$
|
||||
/* CSS for syntax highlighting */
|
||||
$highlighting-css$
|
||||
$endif$
|
||||
$if(csl-css)$
|
||||
$styles.citations.html()$
|
||||
$endif$
|
@ -1,4 +1,4 @@
|
||||
.\" Automatically generated by Pandoc 3.1.4
|
||||
.\" Automatically generated by Pandoc 3.1.5
|
||||
.\"
|
||||
.\" Define V font for inline verbatim, using C font in formats
|
||||
.\" that render this, and otherwise B font.
|
||||
@ -497,10 +497,10 @@ Code 11 0 to 2 (2 visible check digits to none)
|
||||
0 (default 2 visible check digits)
|
||||
1 (1 visible check digit)
|
||||
2 (no check digits)
|
||||
Code 39 1 (add visible check digit)
|
||||
Code 39 1 or 2 (add visible or hidden check digit)
|
||||
Code 93 1 (hide the default check characters)
|
||||
EXCODE39 1 (add visible check digit)
|
||||
LOGMARS 1 (add visible check digit)
|
||||
EXCODE39 1 or 2 (add visible or hidden check digit)
|
||||
LOGMARS 1 or 2 (add visible or hidden check digit)
|
||||
MSI Plessey 0 to 6 (none to various visible options)
|
||||
1, 2 (mod-10, mod-10 + mod-10)
|
||||
3, 4 (mod-11 IBM, mod-11 IBM + mod-10)
|
||||
|
@ -27,54 +27,67 @@ Paintbrush (`PCX`), Portable Network Format (`PNG`), Scalable Vector Graphic (`S
|
||||
# OPTIONS
|
||||
|
||||
`-h`, `--help`
|
||||
|
||||
: Print usage information summarizing command line options.
|
||||
|
||||
`-b TYPE`, `--barcode=TYPE`
|
||||
|
||||
: Set the barcode symbology that will be used to encode the data. *TYPE* is the number or name of the barcode
|
||||
symbology. If not given, the symbology defaults to 20 (Code 128). To see what types are available, use the `-t` |
|
||||
`--types` option. Type names are case-insensitive, and non-alphanumerics are ignored.
|
||||
|
||||
`--addongap=INTEGER`
|
||||
|
||||
: For EAN/UPC symbologies, set the gap between the main data and the add-on. *INTEGER* is in integral multiples of
|
||||
the X-dimension. The maximum gap that can be set is 12. The minimum is 7, except for UPC-A, when the minimum is 9.
|
||||
|
||||
`--batch`
|
||||
|
||||
: Treat each line of an input file specified with `-i` | `--input` as a separate data set and produce a barcode
|
||||
image for each one. The barcode images are outputted by default to numbered filenames starting with "00001.png",
|
||||
"00002.png" etc., which can be changed by using the `-o` | `--output` option.
|
||||
|
||||
`--bg=COLOUR`
|
||||
|
||||
: Specify a background (paper) colour where *COLOUR* is in hexadecimal `RRGGBB` or `RRGGBBAA` format or in decimal
|
||||
`C,M,Y,K` percentages format.
|
||||
|
||||
`--binary`
|
||||
|
||||
: Treat input data as raw 8-bit binary data instead of the default UTF-8. Automatic code page translation to an ECI
|
||||
page is disabled, and no validation of the data's character encoding takes place.
|
||||
|
||||
`--bind`
|
||||
|
||||
: Add horizontal boundary bars (also known as bearer bars) to the symbol. The width of the boundary bars is
|
||||
specified by the `--border` option. `--bind` can also be used to add row separator bars to symbols stacked with
|
||||
multiple `-d` | `--data` inputs, in which case the width of the separator bars is specified with the `--separator`
|
||||
option.
|
||||
|
||||
`--bindtop`
|
||||
|
||||
: Add a horizontal boundary bar to the top of the symbol. The width of the boundary bar is specified by the
|
||||
`--border` option.
|
||||
|
||||
`--bold`
|
||||
|
||||
: Use bold text for the Human Readable Text (HRT).
|
||||
|
||||
`--border=INTEGER`
|
||||
|
||||
: Set the width of boundary bars (`--bind` or `--bindtop`) or box borders (`--box`), where *INTEGER* is in integral
|
||||
multiples of the X-dimension. The default is zero.
|
||||
|
||||
`--box`
|
||||
|
||||
: Add a box around the symbol. The width of the borders is specified by the `--border` option.
|
||||
|
||||
`--cmyk`
|
||||
|
||||
: Use the CMYK colour space when outputting to Encapsulated PostScript (EPS) or TIF files.
|
||||
|
||||
`--cols=INTEGER`
|
||||
|
||||
: Set the number of data columns in the symbol to *INTEGER*. Affects Codablock-F, DotCode, GS1 DataBar Expanded
|
||||
Stacked (DBAR_EXPSTK), MicroPDF417 and PDF417 symbols.
|
||||
|
||||
@ -394,10 +407,10 @@ Paintbrush (`PCX`), Portable Network Format (`PNG`), Scalable Vector Graphic (`S
|
||||
0 (default 2 visible check digits)
|
||||
1 (1 visible check digit)
|
||||
2 (no check digits)
|
||||
Code 39 1 (add visible check digit)
|
||||
Code 39 1 or 2 (add visible or hidden check digit)
|
||||
Code 93 1 (hide the default check characters)
|
||||
EXCODE39 1 (add visible check digit)
|
||||
LOGMARS 1 (add visible check digit)
|
||||
EXCODE39 1 or 2 (add visible or hidden check digit)
|
||||
LOGMARS 1 or 2 (add visible or hidden check digit)
|
||||
MSI Plessey 0 to 6 (none to various visible options)
|
||||
1, 2 (mod-10, mod-10 + mod-10)
|
||||
3, 4 (mod-11 IBM, mod-11 IBM + mod-10)
|
||||
|
@ -1,6 +1,6 @@
|
||||
/*
|
||||
Zint Barcode Generator - the open source barcode generator
|
||||
Copyright (C) 2009-2022 Robin Stuart <rstuart114@gmail.com>
|
||||
Copyright (C) 2009-2023 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
|
||||
@ -57,6 +57,8 @@ ExportWindow::ExportWindow(BarcodeItem *bc, const QString& output_data)
|
||||
|
||||
QIcon closeIcon(QIcon::fromTheme(QSL("window-close"), QIcon(QSL(":res/x.svg"))));
|
||||
btnCancel->setIcon(closeIcon);
|
||||
QIcon folderIcon(QIcon::fromTheme(QSL("folder"), QIcon(QSL(":res/folder.svg"))));
|
||||
btnDestPath->setIcon(folderIcon);
|
||||
|
||||
connect(btnCancel, SIGNAL( clicked( bool )), SLOT(close()));
|
||||
connect(btnOK, SIGNAL( clicked( bool )), SLOT(process()));
|
||||
|
@ -20,7 +20,7 @@
|
||||
<property name="modal">
|
||||
<bool>true</bool>
|
||||
</property>
|
||||
<layout class="QVBoxLayout" name="verticalLayout">
|
||||
<layout class="QVBoxLayout" name="vLayoutData">
|
||||
<item>
|
||||
<widget class="QLabel" name="label">
|
||||
<property name="text">
|
||||
@ -45,7 +45,7 @@
|
||||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
<layout class="QHBoxLayout" name="horizontalLayout">
|
||||
<layout class="QHBoxLayout" name="hLayoutData">
|
||||
<property name="sizeConstraint">
|
||||
<enum>QLayout::SetDefaultConstraint</enum>
|
||||
</property>
|
||||
|
@ -19,7 +19,22 @@
|
||||
<property name="windowTitle">
|
||||
<string>Form</string>
|
||||
</property>
|
||||
<layout class="QVBoxLayout" name="verticalLayout">
|
||||
<layout class="QVBoxLayout" name="vLayoutC11">
|
||||
<property name="contentMargins">
|
||||
<number>0</number>
|
||||
</property>
|
||||
<property name="leftMargin">
|
||||
<number>0</number>
|
||||
</property>
|
||||
<property name="topMargin">
|
||||
<number>0</number>
|
||||
</property>
|
||||
<property name="rightMargin">
|
||||
<number>0</number>
|
||||
</property>
|
||||
<property name="bottomMargin">
|
||||
<number>0</number>
|
||||
</property>
|
||||
<item>
|
||||
<widget class="QGroupBox" name="grpC11CheckDigits">
|
||||
<property name="title">
|
||||
@ -65,22 +80,6 @@
|
||||
</layout>
|
||||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
<spacer name="verticalSpacer">
|
||||
<property name="orientation">
|
||||
<enum>Qt::Vertical</enum>
|
||||
</property>
|
||||
<property name="sizeType">
|
||||
<enum>QSizePolicy::MinimumExpanding</enum>
|
||||
</property>
|
||||
<property name="sizeHint" stdset="0">
|
||||
<size>
|
||||
<width>20</width>
|
||||
<height>40</height>
|
||||
</size>
|
||||
</property>
|
||||
</spacer>
|
||||
</item>
|
||||
</layout>
|
||||
</widget>
|
||||
<resources/>
|
||||
|
@ -19,7 +19,22 @@
|
||||
<property name="windowTitle">
|
||||
<string>Form</string>
|
||||
</property>
|
||||
<layout class="QVBoxLayout" name="verticalLayout">
|
||||
<layout class="QVBoxLayout" name="vLayoutC25">
|
||||
<property name="contentMargins">
|
||||
<number>0</number>
|
||||
</property>
|
||||
<property name="leftMargin">
|
||||
<number>0</number>
|
||||
</property>
|
||||
<property name="topMargin">
|
||||
<number>0</number>
|
||||
</property>
|
||||
<property name="rightMargin">
|
||||
<number>0</number>
|
||||
</property>
|
||||
<property name="bottomMargin">
|
||||
<number>0</number>
|
||||
</property>
|
||||
<item>
|
||||
<widget class="QGroupBox" name="grpC25Check">
|
||||
<property name="title">
|
||||
@ -66,19 +81,6 @@ do not display in Human Readable Text</string>
|
||||
</layout>
|
||||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
<spacer name="verticalSpacer">
|
||||
<property name="orientation">
|
||||
<enum>Qt::Vertical</enum>
|
||||
</property>
|
||||
<property name="sizeHint" stdset="0">
|
||||
<size>
|
||||
<width>20</width>
|
||||
<height>40</height>
|
||||
</size>
|
||||
</property>
|
||||
</spacer>
|
||||
</item>
|
||||
</layout>
|
||||
</widget>
|
||||
<resources/>
|
||||
|
@ -19,7 +19,22 @@
|
||||
<property name="windowTitle">
|
||||
<string>Form</string>
|
||||
</property>
|
||||
<layout class="QVBoxLayout" name="verticalLayoutC39">
|
||||
<layout class="QVBoxLayout" name="vLayoutC39">
|
||||
<property name="contentMargins">
|
||||
<number>0</number>
|
||||
</property>
|
||||
<property name="leftMargin">
|
||||
<number>0</number>
|
||||
</property>
|
||||
<property name="topMargin">
|
||||
<number>0</number>
|
||||
</property>
|
||||
<property name="rightMargin">
|
||||
<number>0</number>
|
||||
</property>
|
||||
<property name="bottomMargin">
|
||||
<number>0</number>
|
||||
</property>
|
||||
<item>
|
||||
<widget class="QGroupBox" name="grpC39Check">
|
||||
<property name="title">
|
||||
@ -42,7 +57,28 @@
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="1" column="0" colspan="2">
|
||||
<item row="0" column="1">
|
||||
<widget class="QRadioButton" name="radC39Check">
|
||||
<property name="text">
|
||||
<string>&Mod-43 Check Digit</string>
|
||||
</property>
|
||||
<property name="toolTip">
|
||||
<string>Add mod-43 check character</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="1" column="0">
|
||||
<widget class="QRadioButton" name="radC39CheckHide">
|
||||
<property name="text">
|
||||
<string>&Hidden Mod-43 Check Digit</string>
|
||||
</property>
|
||||
<property name="toolTip">
|
||||
<string>Add mod-43 check character but
|
||||
do not display in Human Readable Text</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="1" column="1">
|
||||
<widget class="QRadioButton" name="radC39HIBC">
|
||||
<property name="text">
|
||||
<string>H&IBC (Mod-43 Check Digit added)</string>
|
||||
@ -55,32 +91,9 @@ the data with a slash "/"</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="0" column="1">
|
||||
<widget class="QRadioButton" name="radC39Check">
|
||||
<property name="text">
|
||||
<string>&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="verticalSpacerC39">
|
||||
<property name="orientation">
|
||||
<enum>Qt::Vertical</enum>
|
||||
</property>
|
||||
<property name="sizeHint" stdset="0">
|
||||
<size>
|
||||
<width>20</width>
|
||||
<height>40</height>
|
||||
</size>
|
||||
</property>
|
||||
</spacer>
|
||||
</item>
|
||||
</layout>
|
||||
</widget>
|
||||
<resources/>
|
||||
|
@ -13,7 +13,22 @@
|
||||
<property name="windowTitle">
|
||||
<string>Form</string>
|
||||
</property>
|
||||
<layout class="QVBoxLayout" name="verticalLayout">
|
||||
<layout class="QVBoxLayout" name="vLayoutC93">
|
||||
<property name="contentMargins">
|
||||
<number>0</number>
|
||||
</property>
|
||||
<property name="leftMargin">
|
||||
<number>0</number>
|
||||
</property>
|
||||
<property name="topMargin">
|
||||
<number>0</number>
|
||||
</property>
|
||||
<property name="rightMargin">
|
||||
<number>0</number>
|
||||
</property>
|
||||
<property name="bottomMargin">
|
||||
<number>0</number>
|
||||
</property>
|
||||
<item>
|
||||
<widget class="QCheckBox" name="chkC93ShowChecks">
|
||||
<property name="text">
|
||||
@ -28,19 +43,6 @@ the Human Readable Text</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
<spacer name="verticalSpacer">
|
||||
<property name="orientation">
|
||||
<enum>Qt::Vertical</enum>
|
||||
</property>
|
||||
<property name="sizeHint" stdset="0">
|
||||
<size>
|
||||
<width>20</width>
|
||||
<height>40</height>
|
||||
</size>
|
||||
</property>
|
||||
</spacer>
|
||||
</item>
|
||||
</layout>
|
||||
</widget>
|
||||
<resources/>
|
||||
|
@ -1,7 +1,7 @@
|
||||
<ui version="4.0" >
|
||||
<ui version="4.0">
|
||||
<class>grpChannel</class>
|
||||
<widget class="QWidget" name="grpChannel" >
|
||||
<property name="geometry" >
|
||||
<widget class="QWidget" name="grpChannel">
|
||||
<property name="geometry">
|
||||
<rect>
|
||||
<x>0</x>
|
||||
<y>0</y>
|
||||
@ -15,18 +15,33 @@
|
||||
<height>16777215</height>
|
||||
</size>
|
||||
</property>
|
||||
<property name="windowTitle" >
|
||||
<property name="windowTitle">
|
||||
<string>Form</string>
|
||||
</property>
|
||||
<layout class="QVBoxLayout" name="verticalLayout" >
|
||||
<layout class="QVBoxLayout" name="vLayoutChannel">
|
||||
<property name="contentMargins">
|
||||
<number>0</number>
|
||||
</property>
|
||||
<property name="leftMargin">
|
||||
<number>0</number>
|
||||
</property>
|
||||
<property name="topMargin">
|
||||
<number>0</number>
|
||||
</property>
|
||||
<property name="rightMargin">
|
||||
<number>0</number>
|
||||
</property>
|
||||
<property name="bottomMargin">
|
||||
<number>0</number>
|
||||
</property>
|
||||
<item>
|
||||
<layout class="QHBoxLayout" name="horizontalLayout" >
|
||||
<layout class="QHBoxLayout" name="hLayoutChannel">
|
||||
<item>
|
||||
<widget class="QLabel" name="lblChannel" >
|
||||
<property name="text" >
|
||||
<widget class="QLabel" name="lblChannel">
|
||||
<property name="text">
|
||||
<string>&Number of Channels:</string>
|
||||
</property>
|
||||
<property name="toolTip" >
|
||||
<property name="toolTip">
|
||||
<string>The number of channels determines the<br />range of numbers that can be encoded<table cellspacing="3">
|
||||
><tr><th align=left>Channels&nbsp;</th><th align=left>Range</th></tr>
|
||||
<tr><td>3&nbsp;</td><td>0 to 26</td></tr>
|
||||
@ -37,17 +52,17 @@
|
||||
<tr><td>8&nbsp;</td><td>0 to 7742862</td></tr>
|
||||
</table></string>
|
||||
</property>
|
||||
<property name="alignment" >
|
||||
<property name="alignment">
|
||||
<set>Qt::AlignLeading|Qt::AlignLeft|Qt::AlignVCenter</set>
|
||||
</property>
|
||||
<property name="buddy" >
|
||||
<property name="buddy">
|
||||
<cstring>cmbChannel</cstring>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
<widget class="QComboBox" name="cmbChannel" >
|
||||
<property name="toolTip" >
|
||||
<widget class="QComboBox" name="cmbChannel">
|
||||
<property name="toolTip">
|
||||
<string>The number of channels determines the<br />range of numbers that can be encoded<table cellspacing="3">
|
||||
><tr><th align=left>Channels&nbsp;</th><th align=left>Range</th></tr>
|
||||
<tr><td>3&nbsp;</td><td>0 to 26</td></tr>
|
||||
@ -59,37 +74,37 @@
|
||||
</table></string>
|
||||
</property>
|
||||
<item>
|
||||
<property name="text" >
|
||||
<property name="text">
|
||||
<string>Automatic</string>
|
||||
</property>
|
||||
</item>
|
||||
<item>
|
||||
<property name="text" >
|
||||
<property name="text">
|
||||
<string>3</string>
|
||||
</property>
|
||||
</item>
|
||||
<item>
|
||||
<property name="text" >
|
||||
<property name="text">
|
||||
<string>4</string>
|
||||
</property>
|
||||
</item>
|
||||
<item>
|
||||
<property name="text" >
|
||||
<property name="text">
|
||||
<string>5</string>
|
||||
</property>
|
||||
</item>
|
||||
<item>
|
||||
<property name="text" >
|
||||
<property name="text">
|
||||
<string>6</string>
|
||||
</property>
|
||||
</item>
|
||||
<item>
|
||||
<property name="text" >
|
||||
<property name="text">
|
||||
<string>7</string>
|
||||
</property>
|
||||
</item>
|
||||
<item>
|
||||
<property name="text" >
|
||||
<property name="text">
|
||||
<string>8</string>
|
||||
</property>
|
||||
</item>
|
||||
@ -97,19 +112,6 @@
|
||||
</item>
|
||||
</layout>
|
||||
</item>
|
||||
<item>
|
||||
<spacer name="verticalSpacer" >
|
||||
<property name="orientation" >
|
||||
<enum>Qt::Vertical</enum>
|
||||
</property>
|
||||
<property name="sizeHint" stdset="0" >
|
||||
<size>
|
||||
<width>20</width>
|
||||
<height>30</height>
|
||||
</size>
|
||||
</property>
|
||||
</spacer>
|
||||
</item>
|
||||
</layout>
|
||||
</widget>
|
||||
<resources/>
|
||||
|
@ -13,7 +13,22 @@
|
||||
<property name="windowTitle">
|
||||
<string>Form</string>
|
||||
</property>
|
||||
<layout class="QVBoxLayout" name="verticalLayout">
|
||||
<layout class="QVBoxLayout" name="vLayoutCodabar">
|
||||
<property name="contentMargins">
|
||||
<number>0</number>
|
||||
</property>
|
||||
<property name="leftMargin">
|
||||
<number>0</number>
|
||||
</property>
|
||||
<property name="topMargin">
|
||||
<number>0</number>
|
||||
</property>
|
||||
<property name="rightMargin">
|
||||
<number>0</number>
|
||||
</property>
|
||||
<property name="bottomMargin">
|
||||
<number>0</number>
|
||||
</property>
|
||||
<item>
|
||||
<widget class="QGroupBox" name="grpCodabarCheck">
|
||||
<property name="title">
|
||||
@ -60,19 +75,6 @@ not display in Human Readable Text</string>
|
||||
</layout>
|
||||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
<spacer name="verticalSpacer">
|
||||
<property name="orientation">
|
||||
<enum>Qt::Vertical</enum>
|
||||
</property>
|
||||
<property name="sizeHint" stdset="0">
|
||||
<size>
|
||||
<width>20</width>
|
||||
<height>40</height>
|
||||
</size>
|
||||
</property>
|
||||
</spacer>
|
||||
</item>
|
||||
</layout>
|
||||
</widget>
|
||||
<resources/>
|
||||
|
@ -19,9 +19,9 @@
|
||||
<property name="windowTitle">
|
||||
<string>Form</string>
|
||||
</property>
|
||||
<layout class="QVBoxLayout" name="verticalLayout">
|
||||
<layout class="QVBoxLayout" name="vLayoutC1">
|
||||
<item>
|
||||
<layout class="QGridLayout" name="gridLayout">
|
||||
<layout class="QGridLayout" name="gLayoutC1">
|
||||
<item row="0" column="0">
|
||||
<widget class="QLabel" name="lblC1Size">
|
||||
<property name="text">
|
||||
@ -121,7 +121,7 @@ variable widths</string>
|
||||
<property name="toolTip">
|
||||
<string>How to process data</string>
|
||||
</property>
|
||||
<layout class="QGridLayout" name="gridLayoutC1EncodingMode">
|
||||
<layout class="QGridLayout" name="gLayoutC1EncodingMode">
|
||||
<property name="sizeConstraint">
|
||||
<enum>QLayout::SetMinimumSize</enum>
|
||||
</property>
|
||||
@ -163,7 +163,7 @@ formatted with Application Identifiers (AIs)
|
||||
128 symbols (not available for Version S)
|
||||
(ignored if disabled)</string>
|
||||
</property>
|
||||
<layout class="QGridLayout" name="gridLayoutC1StructApp">
|
||||
<layout class="QGridLayout" name="gLayoutC1StructApp">
|
||||
<item row="0" column="0">
|
||||
<widget class="QLabel" name="lblC1StructAppCount">
|
||||
<property name="text">
|
||||
@ -313,7 +313,7 @@ Value ranges from 1 to count
|
||||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
<spacer name="verticalSpacer">
|
||||
<spacer name="vSpacerC1">
|
||||
<property name="orientation">
|
||||
<enum>Qt::Vertical</enum>
|
||||
</property>
|
||||
|
@ -19,9 +19,24 @@
|
||||
<property name="windowTitle">
|
||||
<string>Form</string>
|
||||
</property>
|
||||
<layout class="QVBoxLayout" name="verticalLayout">
|
||||
<layout class="QVBoxLayout" name="vLayoutDAFT">
|
||||
<property name="contentMargins">
|
||||
<number>0</number>
|
||||
</property>
|
||||
<property name="leftMargin">
|
||||
<number>0</number>
|
||||
</property>
|
||||
<property name="topMargin">
|
||||
<number>0</number>
|
||||
</property>
|
||||
<property name="rightMargin">
|
||||
<number>0</number>
|
||||
</property>
|
||||
<property name="bottomMargin">
|
||||
<number>0</number>
|
||||
</property>
|
||||
<item>
|
||||
<layout class="QHBoxLayout" name="horizontalLayout">
|
||||
<layout class="QHBoxLayout" name="hLayoutDAFT">
|
||||
<item>
|
||||
<widget class="QLabel" name="lblDAFTTrackerRatio">
|
||||
<property name="text">
|
||||
@ -85,7 +100,7 @@
|
||||
</layout>
|
||||
</item>
|
||||
<item>
|
||||
<widget class="QLabel" name="noteTrackerRatios">
|
||||
<widget class="QLabel" name="noteDAFTTrackerRatios">
|
||||
<property name="sizePolicy">
|
||||
<sizepolicy hsizetype="Preferred" vsizetype="Fixed">
|
||||
<horstretch>0</horstretch>
|
||||
@ -93,14 +108,13 @@
|
||||
</sizepolicy>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string>Examples of tracker ratios:<table cellspacing="3">
|
||||
<tr><td>Australia Post&nbsp;</td><td>26%</td></tr>
|
||||
<tr><td>Japan Post&nbsp;</td><td>33%</td></tr>
|
||||
<tr><td>PLANET, POSTNET&nbsp;</td><td><i>25% (Tracker and Ascender only)</i></td></tr>
|
||||
<tr><td>Royal Mail, Dutch Post&nbsp;</td><td>25.6%</td></tr>
|
||||
<tr><td>USPS Intelligent Mail&nbsp;</td><td>33.1%</td></tr>
|
||||
<tr><td>Default&nbsp;</td><td>25%</td></tr>
|
||||
</table></string>
|
||||
<string>Examples of tracker ratios:
|
||||
Australia Post 26%,
|
||||
Dutch Post & Royal Mail 25.6%,
|
||||
Japan Post 33%,
|
||||
PLANET & POSTNET <i>25% (Tracker and Ascender only)</i>,
|
||||
USPS Intelligent Mail 33.1%
|
||||
</string>
|
||||
</property>
|
||||
<property name="textFormat">
|
||||
<enum>Qt::RichText</enum>
|
||||
@ -113,19 +127,6 @@
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
<spacer name="verticalSpacer">
|
||||
<property name="orientation">
|
||||
<enum>Qt::Vertical</enum>
|
||||
</property>
|
||||
<property name="sizeHint" stdset="0">
|
||||
<size>
|
||||
<width>20</width>
|
||||
<height>30</height>
|
||||
</size>
|
||||
</property>
|
||||
</spacer>
|
||||
</item>
|
||||
</layout>
|
||||
</widget>
|
||||
<resources/>
|
||||
|
@ -13,7 +13,22 @@
|
||||
<property name="windowTitle">
|
||||
<string>Form</string>
|
||||
</property>
|
||||
<layout class="QVBoxLayout" name="verticalLayout">
|
||||
<layout class="QVBoxLayout" name="vLayoutDPD">
|
||||
<property name="contentMargins">
|
||||
<number>0</number>
|
||||
</property>
|
||||
<property name="leftMargin">
|
||||
<number>0</number>
|
||||
</property>
|
||||
<property name="topMargin">
|
||||
<number>0</number>
|
||||
</property>
|
||||
<property name="rightMargin">
|
||||
<number>0</number>
|
||||
</property>
|
||||
<property name="bottomMargin">
|
||||
<number>0</number>
|
||||
</property>
|
||||
<item>
|
||||
<widget class="QCheckBox" name="chkDPDRelabel">
|
||||
<property name="text">
|
||||
@ -29,19 +44,6 @@ Input is 27 characters</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
<spacer name="verticalSpacer">
|
||||
<property name="orientation">
|
||||
<enum>Qt::Vertical</enum>
|
||||
</property>
|
||||
<property name="sizeHint" stdset="0">
|
||||
<size>
|
||||
<width>20</width>
|
||||
<height>40</height>
|
||||
</size>
|
||||
</property>
|
||||
</spacer>
|
||||
</item>
|
||||
</layout>
|
||||
</widget>
|
||||
<resources/>
|
||||
|
@ -19,9 +19,9 @@
|
||||
<property name="windowTitle">
|
||||
<string>Form</string>
|
||||
</property>
|
||||
<layout class="QVBoxLayout" name="verticalLayout">
|
||||
<layout class="QVBoxLayout" name="vLayoutDot">
|
||||
<item>
|
||||
<layout class="QGridLayout" name="gridLayout">
|
||||
<layout class="QGridLayout" name="gLayoutDot">
|
||||
<item row="0" column="0">
|
||||
<widget class="QLabel" name="lblDotCols">
|
||||
<property name="text">
|
||||
@ -1112,7 +1112,7 @@ as 0 to 3 with the corners lit</string>
|
||||
<property name="toolTip">
|
||||
<string>How to process data</string>
|
||||
</property>
|
||||
<layout class="QGridLayout" name="gridLayoutDotEncodingMode">
|
||||
<layout class="QGridLayout" name="gLayoutDotEncodingMode">
|
||||
<property name="sizeConstraint">
|
||||
<enum>QLayout::SetMinimumSize</enum>
|
||||
</property>
|
||||
@ -1152,7 +1152,7 @@ formatted with Application Identifiers (AIs)</string>
|
||||
<string>DotCode supports Structured Append of up to
|
||||
35 symbols</string>
|
||||
</property>
|
||||
<layout class="QGridLayout" name="gridLayoutDotStructApp">
|
||||
<layout class="QGridLayout" name="gLayoutDotStructApp">
|
||||
<item row="0" column="0">
|
||||
<widget class="QLabel" name="lblDotStructAppCount">
|
||||
<property name="text">
|
||||
@ -1643,7 +1643,7 @@ Value ranges from 1 to count
|
||||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
<spacer name="verticalSpacer">
|
||||
<spacer name="vSpacerDot">
|
||||
<property name="orientation">
|
||||
<enum>Qt::Vertical</enum>
|
||||
</property>
|
||||
|
@ -19,9 +19,9 @@
|
||||
<property name="windowTitle">
|
||||
<string>Form</string>
|
||||
</property>
|
||||
<layout class="QVBoxLayout" name="verticalLayout">
|
||||
<layout class="QVBoxLayout" name="vLayoutGrid">
|
||||
<item>
|
||||
<layout class="QGridLayout" name="gridLayout">
|
||||
<layout class="QGridLayout" name="gLayoutGrid">
|
||||
<item row="0" column="0">
|
||||
<widget class="QLabel" name="labelGridSize">
|
||||
<property name="text">
|
||||
@ -214,7 +214,7 @@ and Latin data</string>
|
||||
<string>Grid Matrix supports Structured Append of up to
|
||||
16 symbols</string>
|
||||
</property>
|
||||
<layout class="QGridLayout" name="gridLayoutGridStructApp">
|
||||
<layout class="QGridLayout" name="gLayoutGridStructApp">
|
||||
<item row="0" column="0">
|
||||
<widget class="QLabel" name="lblGridStructAppCount">
|
||||
<property name="text">
|
||||
@ -521,7 +521,7 @@ Value ranges from 0 to 255
|
||||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
<spacer name="verticalSpacer">
|
||||
<spacer name="vSpacerGrid">
|
||||
<property name="orientation">
|
||||
<enum>Qt::Vertical</enum>
|
||||
</property>
|
||||
|
@ -19,9 +19,9 @@
|
||||
<property name="windowTitle">
|
||||
<string>Form</string>
|
||||
</property>
|
||||
<layout class="QVBoxLayout" name="verticalLayout">
|
||||
<layout class="QVBoxLayout" name="vLayoutHX">
|
||||
<item>
|
||||
<layout class="QGridLayout" name="gridLayout">
|
||||
<layout class="QGridLayout" name="gLayoutHX">
|
||||
<item row="0" column="0">
|
||||
<widget class="QLabel" name="labelHXSize">
|
||||
<property name="text">
|
||||
@ -579,7 +579,7 @@ and Latin data</string>
|
||||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
<spacer name="verticalSpacer">
|
||||
<spacer name="vSpacerHX">
|
||||
<property name="orientation">
|
||||
<enum>Qt::Vertical</enum>
|
||||
</property>
|
||||
|
@ -19,7 +19,22 @@
|
||||
<property name="windowTitle">
|
||||
<string>Form</string>
|
||||
</property>
|
||||
<layout class="QVBoxLayout" name="verticalLayout">
|
||||
<layout class="QVBoxLayout" name="vLayoutITF14">
|
||||
<property name="contentMargins">
|
||||
<number>0</number>
|
||||
</property>
|
||||
<property name="leftMargin">
|
||||
<number>0</number>
|
||||
</property>
|
||||
<property name="topMargin">
|
||||
<number>0</number>
|
||||
</property>
|
||||
<property name="rightMargin">
|
||||
<number>0</number>
|
||||
</property>
|
||||
<property name="bottomMargin">
|
||||
<number>0</number>
|
||||
</property>
|
||||
<item>
|
||||
<widget class="QCheckBox" name="chkITF14NoQuietZones">
|
||||
<property name="text">
|
||||
@ -33,19 +48,6 @@
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
<spacer name="verticalSpacer">
|
||||
<property name="orientation">
|
||||
<enum>Qt::Vertical</enum>
|
||||
</property>
|
||||
<property name="sizeHint" stdset="0">
|
||||
<size>
|
||||
<width>20</width>
|
||||
<height>40</height>
|
||||
</size>
|
||||
</property>
|
||||
</spacer>
|
||||
</item>
|
||||
</layout>
|
||||
</widget>
|
||||
<resources/>
|
||||
|
@ -1,7 +1,7 @@
|
||||
<ui version="4.0" >
|
||||
<ui version="4.0">
|
||||
<class>grpMQR</class>
|
||||
<widget class="QWidget" name="grpMQR" >
|
||||
<property name="geometry" >
|
||||
<widget class="QWidget" name="grpMQR">
|
||||
<property name="geometry">
|
||||
<rect>
|
||||
<x>0</x>
|
||||
<y>0</y>
|
||||
@ -15,15 +15,15 @@
|
||||
<height>16777215</height>
|
||||
</size>
|
||||
</property>
|
||||
<property name="windowTitle" >
|
||||
<property name="windowTitle">
|
||||
<string>Form</string>
|
||||
</property>
|
||||
<layout class="QVBoxLayout" name="verticalLayout" >
|
||||
<layout class="QVBoxLayout" name="vLayoutMQR">
|
||||
<item>
|
||||
<layout class="QGridLayout" name="gridLayout" >
|
||||
<item row="0" column="0" >
|
||||
<widget class="QLabel" name="lavelMQRSize" >
|
||||
<property name="text" >
|
||||
<layout class="QGridLayout" name="gLayoutMQR">
|
||||
<item row="0" column="0">
|
||||
<widget class="QLabel" name="lblMQRSize">
|
||||
<property name="text">
|
||||
<string>Si&ze:</string>
|
||||
</property>
|
||||
<property name="toolTip">
|
||||
@ -34,8 +34,8 @@
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="0" column="1" >
|
||||
<widget class="QComboBox" name="cmbMQRSize" >
|
||||
<item row="0" column="1">
|
||||
<widget class="QComboBox" name="cmbMQRSize">
|
||||
<property name="toolTip">
|
||||
<string>Set size (version) of symbol</string>
|
||||
</property>
|
||||
@ -45,30 +45,30 @@
|
||||
</property>
|
||||
</item>
|
||||
<item>
|
||||
<property name="text" >
|
||||
<property name="text">
|
||||
<string>11 x 11 (Version M1)</string>
|
||||
</property>
|
||||
</item>
|
||||
<item>
|
||||
<property name="text" >
|
||||
<property name="text">
|
||||
<string>13 x 13 (Version M2)</string>
|
||||
</property>
|
||||
</item>
|
||||
<item>
|
||||
<property name="text" >
|
||||
<property name="text">
|
||||
<string>15 x 15 (Version M3)</string>
|
||||
</property>
|
||||
</item>
|
||||
<item>
|
||||
<property name="text" >
|
||||
<property name="text">
|
||||
<string>17 x 17 (Version M4)</string>
|
||||
</property>
|
||||
</item>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="1" column="0" >
|
||||
<widget class="QLabel" name="labelMQRECC" >
|
||||
<property name="text" >
|
||||
<item row="1" column="0">
|
||||
<widget class="QLabel" name="lblMQRECC">
|
||||
<property name="text">
|
||||
<string>E&rror Correction:</string>
|
||||
</property>
|
||||
<property name="toolTip">
|
||||
@ -80,8 +80,8 @@ error correction codewords</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="1" column="1" >
|
||||
<widget class="QComboBox" name="cmbMQRECC" >
|
||||
<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>
|
||||
@ -92,24 +92,24 @@ error correction codewords</string>
|
||||
</property>
|
||||
</item>
|
||||
<item>
|
||||
<property name="text" >
|
||||
<property name="text">
|
||||
<string>~20% (Level L)</string>
|
||||
</property>
|
||||
</item>
|
||||
<item>
|
||||
<property name="text" >
|
||||
<property name="text">
|
||||
<string>~37% (Level M)</string>
|
||||
</property>
|
||||
</item>
|
||||
<item>
|
||||
<property name="text" >
|
||||
<property name="text">
|
||||
<string>~55% (Level Q)</string>
|
||||
</property>
|
||||
</item>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="2" column="0">
|
||||
<widget class="QLabel" name="labelMQRMask">
|
||||
<widget class="QLabel" name="lblMQRMask">
|
||||
<property name="text">
|
||||
<string>&Mask:</string>
|
||||
</property>
|
||||
@ -170,14 +170,14 @@ and Latin data</string>
|
||||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
<spacer name="verticalSpacer" >
|
||||
<property name="orientation" >
|
||||
<spacer name="vSpacerMQR">
|
||||
<property name="orientation">
|
||||
<enum>Qt::Vertical</enum>
|
||||
</property>
|
||||
<property name="sizeType">
|
||||
<enum>QSizePolicy::MinimumExpanding</enum>
|
||||
</property>
|
||||
<property name="sizeHint" stdset="0" >
|
||||
<property name="sizeHint" stdset="0">
|
||||
<size>
|
||||
<width>20</width>
|
||||
<height>50</height>
|
||||
|
@ -1,7 +1,7 @@
|
||||
<ui version="4.0" >
|
||||
<ui version="4.0">
|
||||
<class>grpMSICheck</class>
|
||||
<widget class="QWidget" name="grpMSICheck" >
|
||||
<property name="geometry" >
|
||||
<widget class="QWidget" name="grpMSICheck">
|
||||
<property name="geometry">
|
||||
<rect>
|
||||
<x>0</x>
|
||||
<y>0</y>
|
||||
@ -15,21 +15,36 @@
|
||||
<height>16777215</height>
|
||||
</size>
|
||||
</property>
|
||||
<property name="windowTitle" >
|
||||
<property name="windowTitle">
|
||||
<string>Form</string>
|
||||
</property>
|
||||
<layout class="QVBoxLayout" name="verticalLayout" >
|
||||
<layout class="QVBoxLayout" name="vLayoutMSI">
|
||||
<property name="contentMargins">
|
||||
<number>0</number>
|
||||
</property>
|
||||
<property name="leftMargin">
|
||||
<number>0</number>
|
||||
</property>
|
||||
<property name="topMargin">
|
||||
<number>0</number>
|
||||
</property>
|
||||
<property name="rightMargin">
|
||||
<number>0</number>
|
||||
</property>
|
||||
<property name="bottomMargin">
|
||||
<number>0</number>
|
||||
</property>
|
||||
<item>
|
||||
<layout class="QHBoxLayout" name="horizontalLayout" >
|
||||
<layout class="QHBoxLayout" name="hLayoutMSI">
|
||||
<item>
|
||||
<widget class="QLabel" name="lblMSICheck" >
|
||||
<property name="text" >
|
||||
<widget class="QLabel" name="lblMSICheck">
|
||||
<property name="text">
|
||||
<string>&Check Digit:</string>
|
||||
</property>
|
||||
<property name="alignment" >
|
||||
<property name="alignment">
|
||||
<set>Qt::AlignLeading|Qt::AlignLeft|Qt::AlignVCenter</set>
|
||||
</property>
|
||||
<property name="buddy" >
|
||||
<property name="buddy">
|
||||
<cstring>cmbMSICheck</cstring>
|
||||
</property>
|
||||
<property name="toolTip">
|
||||
@ -40,44 +55,44 @@ Mod-11 (NCR) uses NCR weightings</string>
|
||||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
<widget class="QComboBox" name="cmbMSICheck" >
|
||||
<widget class="QComboBox" name="cmbMSICheck">
|
||||
<property name="toolTip">
|
||||
<string>Mod-10 uses Luhn algorithm
|
||||
Mod-11 (IBM) uses IBM weightings
|
||||
Mod-11 (NCR) uses NCR weightings</string>
|
||||
</property>
|
||||
<item>
|
||||
<property name="text" >
|
||||
<property name="text">
|
||||
<string>None</string>
|
||||
</property>
|
||||
</item>
|
||||
<item>
|
||||
<property name="text" >
|
||||
<property name="text">
|
||||
<string>Mod-10</string>
|
||||
</property>
|
||||
</item>
|
||||
<item>
|
||||
<property name="text" >
|
||||
<property name="text">
|
||||
<string>Mod-10 & Mod-10</string>
|
||||
</property>
|
||||
</item>
|
||||
<item>
|
||||
<property name="text" >
|
||||
<property name="text">
|
||||
<string>Mod-11 (IBM)</string>
|
||||
</property>
|
||||
</item>
|
||||
<item>
|
||||
<property name="text" >
|
||||
<property name="text">
|
||||
<string>Mod-11 (IBM) & Mod-10</string>
|
||||
</property>
|
||||
</item>
|
||||
<item>
|
||||
<property name="text" >
|
||||
<property name="text">
|
||||
<string>Mod-11 (NCR)</string>
|
||||
</property>
|
||||
</item>
|
||||
<item>
|
||||
<property name="text" >
|
||||
<property name="text">
|
||||
<string>Mod-11 (NCR) & Mod-10</string>
|
||||
</property>
|
||||
</item>
|
||||
@ -99,19 +114,6 @@ in Human Readable Text</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
<spacer name="verticalSpacer" >
|
||||
<property name="orientation" >
|
||||
<enum>Qt::Vertical</enum>
|
||||
</property>
|
||||
<property name="sizeHint" stdset="0" >
|
||||
<size>
|
||||
<width>20</width>
|
||||
<height>31</height>
|
||||
</size>
|
||||
</property>
|
||||
</spacer>
|
||||
</item>
|
||||
</layout>
|
||||
</widget>
|
||||
<resources/>
|
||||
|
@ -19,7 +19,22 @@
|
||||
<property name="windowTitle">
|
||||
<string>Form</string>
|
||||
</property>
|
||||
<layout class="QVBoxLayout" name="verticalLayoutMailmark2D">
|
||||
<layout class="QVBoxLayout" name="vLayoutMailmark2D">
|
||||
<property name="contentMargins">
|
||||
<number>0</number>
|
||||
</property>
|
||||
<property name="leftMargin">
|
||||
<number>0</number>
|
||||
</property>
|
||||
<property name="topMargin">
|
||||
<number>0</number>
|
||||
</property>
|
||||
<property name="rightMargin">
|
||||
<number>0</number>
|
||||
</property>
|
||||
<property name="bottomMargin">
|
||||
<number>0</number>
|
||||
</property>
|
||||
<item>
|
||||
<layout class="QGridLayout" name="gridLayoutMailmark2D">
|
||||
<item row="0" column="0">
|
||||
@ -98,19 +113,6 @@ size selection, suppressing rectangular version 30
|
||||
</item>
|
||||
</layout>
|
||||
</item>
|
||||
<item>
|
||||
<spacer name="verticalSpacerMailmark2D">
|
||||
<property name="orientation">
|
||||
<enum>Qt::Vertical</enum>
|
||||
</property>
|
||||
<property name="sizeHint" stdset="0">
|
||||
<size>
|
||||
<width>20</width>
|
||||
<height>0</height>
|
||||
</size>
|
||||
</property>
|
||||
</spacer>
|
||||
</item>
|
||||
</layout>
|
||||
</widget>
|
||||
<resources/>
|
||||
|
@ -1,7 +1,7 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<ui version="4.0">
|
||||
<class>grpMicroPDF</class>
|
||||
<widget class="QWidget" name="grpMicroPDF">
|
||||
<class>grpMaxicode</class>
|
||||
<widget class="QWidget" name="grpMaxicode">
|
||||
<property name="geometry">
|
||||
<rect>
|
||||
<x>0</x>
|
||||
@ -19,9 +19,9 @@
|
||||
<property name="windowTitle">
|
||||
<string>Form</string>
|
||||
</property>
|
||||
<layout class="QVBoxLayout" name="verticalLayout">
|
||||
<layout class="QVBoxLayout" name="vLayoutMaxi">
|
||||
<item>
|
||||
<layout class="QGridLayout" name="gridLayout">
|
||||
<layout class="QGridLayout" name="gLayoutMaxi">
|
||||
<item row="0" column="0">
|
||||
<widget class="QLabel" name="lblMaxiMode">
|
||||
<property name="text">
|
||||
@ -94,7 +94,7 @@ Mode 6 sets the scanner (Reader Initialisation/Programming)</string>
|
||||
<property name="toolTip">
|
||||
<string>For Modes 2 and 3 only</string>
|
||||
</property>
|
||||
<layout class="QGridLayout" name="gridLayoutMaxiSCM">
|
||||
<layout class="QGridLayout" name="gLayoutMaxiSCM">
|
||||
<item row="0" column="0">
|
||||
<widget class="QLabel" name="lblMaxiSCMPostcode">
|
||||
<property name="enabled">
|
||||
@ -337,7 +337,7 @@ specified as follows
|
||||
<string>MaxiCode supports Structured Append of up to
|
||||
8 symbols</string>
|
||||
</property>
|
||||
<layout class="QGridLayout" name="gridLayoutMaxiStructApp">
|
||||
<layout class="QGridLayout" name="gLayoutMaxiStructApp">
|
||||
<item row="0" column="0">
|
||||
<widget class="QLabel" name="lblMaxiStructAppCount">
|
||||
<property name="toolTip">
|
||||
@ -558,7 +558,7 @@ Value ranges from 1 to count
|
||||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
<spacer name="verticalSpacer">
|
||||
<spacer name="vSpacerMaxi">
|
||||
<property name="orientation">
|
||||
<enum>Qt::Vertical</enum>
|
||||
</property>
|
||||
|
@ -19,7 +19,22 @@
|
||||
<property name="windowTitle">
|
||||
<string>Form</string>
|
||||
</property>
|
||||
<layout class="QVBoxLayout" name="verticalLayout">
|
||||
<layout class="QVBoxLayout" name="vLayoutPZN">
|
||||
<property name="contentMargins">
|
||||
<number>0</number>
|
||||
</property>
|
||||
<property name="leftMargin">
|
||||
<number>0</number>
|
||||
</property>
|
||||
<property name="topMargin">
|
||||
<number>0</number>
|
||||
</property>
|
||||
<property name="rightMargin">
|
||||
<number>0</number>
|
||||
</property>
|
||||
<property name="bottomMargin">
|
||||
<number>0</number>
|
||||
</property>
|
||||
<item>
|
||||
<widget class="QCheckBox" name="chkPZN7">
|
||||
<property name="text">
|
||||
@ -33,19 +48,6 @@
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
<spacer name="verticalSpacer">
|
||||
<property name="orientation">
|
||||
<enum>Qt::Vertical</enum>
|
||||
</property>
|
||||
<property name="sizeHint" stdset="0">
|
||||
<size>
|
||||
<width>20</width>
|
||||
<height>40</height>
|
||||
</size>
|
||||
</property>
|
||||
</spacer>
|
||||
</item>
|
||||
</layout>
|
||||
</widget>
|
||||
<resources/>
|
||||
|
@ -19,7 +19,7 @@
|
||||
<property name="windowTitle">
|
||||
<string>Form</string>
|
||||
</property>
|
||||
<layout class="QVBoxLayout" name="verticalLayout">
|
||||
<layout class="QVBoxLayout" name="vLayoutRMQR">
|
||||
<item>
|
||||
<layout class="QGridLayout" name="grpRMQROptions">
|
||||
<item row="0" column="0">
|
||||
@ -287,7 +287,7 @@ error correction codewords</string>
|
||||
<property name="toolTip">
|
||||
<string>How to process data</string>
|
||||
</property>
|
||||
<layout class="QGridLayout" name="gridLayoutRMQREncodingMode">
|
||||
<layout class="QGridLayout" name="gLayoutRMQREncodingMode">
|
||||
<property name="sizeConstraint">
|
||||
<enum>QLayout::SetMinimumSize</enum>
|
||||
</property>
|
||||
@ -333,7 +333,7 @@ and Latin data</string>
|
||||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
<spacer name="verticalSpacer">
|
||||
<spacer name="vSpacerRMQR">
|
||||
<property name="orientation">
|
||||
<enum>Qt::Vertical</enum>
|
||||
</property>
|
||||
|
@ -19,7 +19,22 @@
|
||||
<property name="windowTitle">
|
||||
<string>Form</string>
|
||||
</property>
|
||||
<layout class="QVBoxLayout" name="verticalLayoutUPNQR">
|
||||
<layout class="QVBoxLayout" name="vLayoutUPNQR">
|
||||
<property name="contentMargins">
|
||||
<number>0</number>
|
||||
</property>
|
||||
<property name="leftMargin">
|
||||
<number>0</number>
|
||||
</property>
|
||||
<property name="topMargin">
|
||||
<number>0</number>
|
||||
</property>
|
||||
<property name="rightMargin">
|
||||
<number>0</number>
|
||||
</property>
|
||||
<property name="bottomMargin">
|
||||
<number>0</number>
|
||||
</property>
|
||||
<item>
|
||||
<layout class="QGridLayout" name="gridLayoutUPNQR">
|
||||
<item row="0" column="0">
|
||||
@ -103,22 +118,6 @@ when automatically selecting a mask</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
<spacer name="verticalSpacerQR">
|
||||
<property name="orientation">
|
||||
<enum>Qt::Vertical</enum>
|
||||
</property>
|
||||
<property name="sizeType">
|
||||
<enum>QSizePolicy::MinimumExpanding</enum>
|
||||
</property>
|
||||
<property name="sizeHint" stdset="0">
|
||||
<size>
|
||||
<width>20</width>
|
||||
<height>0</height>
|
||||
</size>
|
||||
</property>
|
||||
</spacer>
|
||||
</item>
|
||||
</layout>
|
||||
</widget>
|
||||
<resources/>
|
||||
|
@ -19,9 +19,9 @@
|
||||
<property name="windowTitle">
|
||||
<string>Form</string>
|
||||
</property>
|
||||
<layout class="QVBoxLayout" name="verticalLayout">
|
||||
<layout class="QVBoxLayout" name="vLayoutUltra">
|
||||
<item>
|
||||
<layout class="QGridLayout" name="gridLayout">
|
||||
<layout class="QGridLayout" name="gLayoutUltra">
|
||||
<item row="0" column="0">
|
||||
<widget class="QRadioButton" name="radUltraAuto">
|
||||
<property name="text">
|
||||
@ -147,7 +147,7 @@ error correction codewords</string>
|
||||
<property name="toolTip">
|
||||
<string>How to process data</string>
|
||||
</property>
|
||||
<layout class="QGridLayout" name="gridLayoutUltraEncodingMode">
|
||||
<layout class="QGridLayout" name="gLayoutUltraEncodingMode">
|
||||
<property name="sizeConstraint">
|
||||
<enum>QLayout::SetMinimumSize</enum>
|
||||
</property>
|
||||
@ -187,7 +187,7 @@ formatted with Application Identifiers (AIs)</string>
|
||||
<string>Ultracode supports Structured Append of up to
|
||||
8 symbols</string>
|
||||
</property>
|
||||
<layout class="QGridLayout" name="gridLayoutUltraStructApp">
|
||||
<layout class="QGridLayout" name="gLayoutUltraStructApp">
|
||||
<item row="0" column="0">
|
||||
<widget class="QLabel" name="lblUltraStructAppCount">
|
||||
<property name="text">
|
||||
@ -417,7 +417,7 @@ Value ranges from 1 to 80088
|
||||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
<spacer name="verticalSpacer">
|
||||
<spacer name="vSpacerUltra">
|
||||
<property name="orientation">
|
||||
<enum>Qt::Vertical</enum>
|
||||
</property>
|
||||
|
@ -19,9 +19,24 @@
|
||||
<property name="windowTitle">
|
||||
<string>Form</string>
|
||||
</property>
|
||||
<layout class="QVBoxLayout" name="verticalLayout">
|
||||
<layout class="QVBoxLayout" name="vLayoutVIN">
|
||||
<property name="contentMargins">
|
||||
<number>0</number>
|
||||
</property>
|
||||
<property name="leftMargin">
|
||||
<number>0</number>
|
||||
</property>
|
||||
<property name="topMargin">
|
||||
<number>0</number>
|
||||
</property>
|
||||
<property name="rightMargin">
|
||||
<number>0</number>
|
||||
</property>
|
||||
<property name="bottomMargin">
|
||||
<number>0</number>
|
||||
</property>
|
||||
<item>
|
||||
<layout class="QGridLayout" name="gridLayout">
|
||||
<layout class="QGridLayout" name="gLayoutVIN">
|
||||
<item row="0" column="0">
|
||||
<widget class="QCheckBox" name="chkVINImportChar">
|
||||
<property name="text">
|
||||
@ -38,19 +53,6 @@
|
||||
</item>
|
||||
</layout>
|
||||
</item>
|
||||
<item>
|
||||
<spacer name="verticalSpacer">
|
||||
<property name="orientation">
|
||||
<enum>Qt::Vertical</enum>
|
||||
</property>
|
||||
<property name="sizeHint" stdset="0">
|
||||
<size>
|
||||
<width>20</width>
|
||||
<height>40</height>
|
||||
</size>
|
||||
</property>
|
||||
</spacer>
|
||||
</item>
|
||||
</layout>
|
||||
</widget>
|
||||
<resources/>
|
||||
|
@ -174,11 +174,11 @@
|
||||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
<widget class="QToolButton" name="btnMoreData">
|
||||
<property name="minimumSize">
|
||||
<widget class="QPushButton" name="btnMoreData">
|
||||
<property name="maximumSize">
|
||||
<size>
|
||||
<width>0</width>
|
||||
<height>26</height>
|
||||
<width>34</width>
|
||||
<height>16777215</height>
|
||||
</size>
|
||||
</property>
|
||||
<property name="toolTip">
|
||||
@ -191,7 +191,7 @@ or import from file</string>
|
||||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
<widget class="QPushButton" name="btnClearData">
|
||||
<widget class="QToolButton" name="btnClearData">
|
||||
<property name="maximumSize">
|
||||
<size>
|
||||
<width>22</width>
|
||||
@ -464,7 +464,7 @@ or import from file</string>
|
||||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
<widget class="QPushButton" name="btnZap">
|
||||
<widget class="QToolButton" name="btnZap">
|
||||
<property name="maximumSize">
|
||||
<size>
|
||||
<width>22</width>
|
||||
@ -619,7 +619,7 @@ Remember to place [square brackets] around AI identifiers</string>
|
||||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
<widget class="QPushButton" name="btnClearComposite">
|
||||
<widget class="QToolButton" name="btnClearComposite">
|
||||
<property name="enabled">
|
||||
<bool>false</bool>
|
||||
</property>
|
||||
@ -925,11 +925,11 @@ Extended Channel Interpretation (ECI)</string>
|
||||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
<widget class="QToolButton" name="btnMoreDataSeg1">
|
||||
<property name="minimumSize">
|
||||
<widget class="QPushButton" name="btnMoreDataSeg1">
|
||||
<property name="maximumSize">
|
||||
<size>
|
||||
<width>0</width>
|
||||
<height>26</height>
|
||||
<width>34</width>
|
||||
<height>16777215</height>
|
||||
</size>
|
||||
</property>
|
||||
<property name="toolTip">
|
||||
@ -942,7 +942,7 @@ or import from file</string>
|
||||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
<widget class="QPushButton" name="btnClearDataSeg1">
|
||||
<widget class="QToolButton" name="btnClearDataSeg1">
|
||||
<property name="maximumSize">
|
||||
<size>
|
||||
<width>22</width>
|
||||
@ -1186,11 +1186,11 @@ or import from file</string>
|
||||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
<widget class="QToolButton" name="btnMoreDataSeg2">
|
||||
<property name="minimumSize">
|
||||
<widget class="QPushButton" name="btnMoreDataSeg2">
|
||||
<property name="maximumSize">
|
||||
<size>
|
||||
<width>0</width>
|
||||
<height>26</height>
|
||||
<width>34</width>
|
||||
<height>16777215</height>
|
||||
</size>
|
||||
</property>
|
||||
<property name="toolTip">
|
||||
@ -1203,7 +1203,7 @@ or import from file</string>
|
||||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
<widget class="QPushButton" name="btnClearDataSeg2">
|
||||
<widget class="QToolButton" name="btnClearDataSeg2">
|
||||
<property name="maximumSize">
|
||||
<size>
|
||||
<width>22</width>
|
||||
@ -1447,11 +1447,11 @@ or import from file</string>
|
||||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
<widget class="QToolButton" name="btnMoreDataSeg3">
|
||||
<property name="minimumSize">
|
||||
<widget class="QPushButton" name="btnMoreDataSeg3">
|
||||
<property name="maximumSize">
|
||||
<size>
|
||||
<width>0</width>
|
||||
<height>26</height>
|
||||
<width>34</width>
|
||||
<height>16777215</height>
|
||||
</size>
|
||||
</property>
|
||||
<property name="toolTip">
|
||||
@ -1464,7 +1464,7 @@ or import from file</string>
|
||||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
<widget class="QPushButton" name="btnClearDataSeg3">
|
||||
<widget class="QToolButton" name="btnClearDataSeg3">
|
||||
<property name="maximumSize">
|
||||
<size>
|
||||
<width>22</width>
|
||||
@ -1484,6 +1484,39 @@ or import from file</string>
|
||||
</layout>
|
||||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
<widget class="QGroupBox" name="grpSpecific">
|
||||
<property name="enabled">
|
||||
<bool>true</bool>
|
||||
</property>
|
||||
<property name="sizePolicy">
|
||||
<sizepolicy hsizetype="Minimum" vsizetype="Minimum">
|
||||
<horstretch>0</horstretch>
|
||||
<verstretch>0</verstretch>
|
||||
</sizepolicy>
|
||||
</property>
|
||||
<property name="minimumSize">
|
||||
<size>
|
||||
<width>0</width>
|
||||
<height>0</height>
|
||||
</size>
|
||||
</property>
|
||||
<property name="maximumSize">
|
||||
<size>
|
||||
<width>16777215</width>
|
||||
<height>400</height>
|
||||
</size>
|
||||
</property>
|
||||
<property name="toolTip">
|
||||
<string>Additional Settings</string>
|
||||
</property>
|
||||
<property name="title">
|
||||
<string>Options</string>
|
||||
</property>
|
||||
<layout class="QVBoxLayout" name="vLayoutSpecific">
|
||||
</layout>
|
||||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
<spacer name="vSpacerData">
|
||||
<property name="orientation">
|
||||
@ -1623,8 +1656,8 @@ as delimiters for GS1 Application Identifiers
|
||||
<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
|
||||
<string>Warn if height specified not compliant with specification,
|
||||
or use standard height (if any) for default
|
||||
(ignored if disabled)</string>
|
||||
</property>
|
||||
<property name="text">
|
||||
@ -1903,6 +1936,9 @@ the barcode in X-dimensions</string>
|
||||
<string>Gap between barcode and text in X-dimensions
|
||||
(ignored if disabled)</string>
|
||||
</property>
|
||||
<property name="specialValueText">
|
||||
<string>Default</string>
|
||||
</property>
|
||||
<property name="prefix">
|
||||
<string/>
|
||||
</property>
|
||||
@ -1924,13 +1960,10 @@ the barcode in X-dimensions</string>
|
||||
<property name="value">
|
||||
<double>0.000000000000000</double>
|
||||
</property>
|
||||
<property name="specialValueText">
|
||||
<string>Default</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="7" column="2">
|
||||
<widget class="QPushButton" name="btnClearTextGap">
|
||||
<widget class="QToolButton" name="btnClearTextGap">
|
||||
<property name="maximumSize">
|
||||
<size>
|
||||
<width>22</width>
|
||||
@ -1989,7 +2022,7 @@ the barcode in X-dimensions</string>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="8" column="2">
|
||||
<widget class="QPushButton" name="btnScale">
|
||||
<widget class="QToolButton" name="btnScale">
|
||||
<property name="maximumSize">
|
||||
<size>
|
||||
<width>22</width>
|
||||
@ -2067,7 +2100,7 @@ or decimal "C,M,Y,K" percentages (0-100)</string>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="0" column="5">
|
||||
<widget class="QPushButton" name="fgcolor">
|
||||
<widget class="QToolButton" name="fgcolor">
|
||||
<property name="maximumSize">
|
||||
<size>
|
||||
<width>22</width>
|
||||
@ -2122,7 +2155,7 @@ e.g. "FFFFFF00"</string>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="1" column="5">
|
||||
<widget class="QPushButton" name="bgcolor">
|
||||
<widget class="QToolButton" name="bgcolor">
|
||||
<property name="maximumSize">
|
||||
<size>
|
||||
<width>22</width>
|
||||
@ -2173,7 +2206,7 @@ e.g. "FFFFFF00"</string>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="2" column="5">
|
||||
<widget class="QPushButton" name="btnReverse">
|
||||
<widget class="QToolButton" name="btnReverse">
|
||||
<property name="maximumSize">
|
||||
<size>
|
||||
<width>22</width>
|
||||
|
@ -184,22 +184,6 @@ static const struct bstyle_item bstyle_items[] = {
|
||||
};
|
||||
|
||||
#ifdef Q_OS_MACOS
|
||||
/* Helper to make widgets look ok on macOS */
|
||||
void MainWindow::mac_hack(QWidget *win)
|
||||
{
|
||||
if (!win) {
|
||||
return;
|
||||
}
|
||||
QList<QWidget *> widgets = win->findChildren<QWidget *>();
|
||||
for (int i = 0, cnt = widgets.size(); i < cnt; i++) {
|
||||
widgets[i]->setAttribute(Qt::WA_MacNormalSize);
|
||||
}
|
||||
QList<QGroupBox *> grps = win->findChildren<QGroupBox *>();
|
||||
for (int i = 0, cnt = grps.size(); i < cnt; i++) {
|
||||
// TODO: top of groupbox too near to previous element - how to fix??
|
||||
grps[i]->setAlignment(Qt::AlignHCenter); // Poor man's workaround for above
|
||||
}
|
||||
}
|
||||
|
||||
/* Helper to make data tab vertical layouts look ok on macOS */
|
||||
void MainWindow::mac_hack_vLayouts(QWidget *win)
|
||||
@ -208,7 +192,7 @@ void MainWindow::mac_hack_vLayouts(QWidget *win)
|
||||
for (int i = 0, cnt = vlayouts.size(); i < cnt; i++) {
|
||||
if (vlayouts[i]->objectName() == "vLayoutData" || vlayouts[i]->objectName() == "vLayoutComposite"
|
||||
|| vlayouts[i]->objectName() == "vLayoutSegs") {
|
||||
vlayouts[i]->setSpacing(0);
|
||||
vlayouts[i]->setSpacing(2);
|
||||
// If set spacing on QVBoxLayout then it seems its QHBoxLayout children inherit this so undo
|
||||
QList<QHBoxLayout *> hlayouts = vlayouts[i]->findChildren<QHBoxLayout *>();
|
||||
for (int j = 0, cnt = hlayouts.size(); j < cnt; j++) {
|
||||
@ -257,7 +241,6 @@ MainWindow::MainWindow(QWidget *parent, Qt::WindowFlags fl)
|
||||
QVariant saved_geometry = settings.value(QSL("studio/window_geometry"));
|
||||
|
||||
#ifdef Q_OS_MACOS
|
||||
QApplication::setDesktopSettingsAware(false); // Makes group boxes use standard font (may do other stuff)
|
||||
// Standard width 360 too narrow
|
||||
if (saved_geometry.isNull()) {
|
||||
// Seems this is necessary on macOS to get a reasonable initial height
|
||||
@ -265,7 +248,6 @@ MainWindow::MainWindow(QWidget *parent, Qt::WindowFlags fl)
|
||||
} else {
|
||||
setMinimumSize(QSize(460, 0));
|
||||
}
|
||||
mac_hack(this);
|
||||
mac_hack_vLayouts(this);
|
||||
mac_hack_statusBars(this, "statusBar");
|
||||
vLayoutTabData->setContentsMargins(QMargins(20, 0, 20, 0));
|
||||
@ -654,13 +636,13 @@ void MainWindow::reverse_colours()
|
||||
update_preview();
|
||||
}
|
||||
|
||||
void MainWindow::setColorTxtBtn(const QString &colorStr, QLineEdit *txt, QPushButton* btn) {
|
||||
void MainWindow::setColorTxtBtn(const QString &colorStr, QLineEdit *txt, QToolButton* btn) {
|
||||
if (colorStr != txt->text()) {
|
||||
int cursorPos = txt->cursorPosition();
|
||||
txt->setText(colorStr);
|
||||
txt->setCursorPosition(cursorPos);
|
||||
}
|
||||
btn->setStyleSheet(QSL("QPushButton {background-color:") + str_to_qcolor(colorStr).name() + QSL(";}"));
|
||||
btn->setStyleSheet(QSL("QToolButton {background-color:") + str_to_qcolor(colorStr).name() + QSL(";}"));
|
||||
}
|
||||
|
||||
bool MainWindow::save()
|
||||
@ -1096,7 +1078,7 @@ void MainWindow::on_bgcolor_clicked()
|
||||
SLOT(bgcolor_changed(const QColor&)));
|
||||
}
|
||||
|
||||
void MainWindow::color_clicked(QString &colorStr, QLineEdit *txt, QPushButton *btn, const QString& title,
|
||||
void MainWindow::color_clicked(QString &colorStr, QLineEdit *txt, QToolButton *btn, const QString& title,
|
||||
QByteArray& geometry, const char *color_changed)
|
||||
{
|
||||
QString original = colorStr;
|
||||
@ -1148,7 +1130,7 @@ void MainWindow::bgcolor_edited()
|
||||
color_edited(m_bgstr, txt_bgcolor, bgcolor);
|
||||
}
|
||||
|
||||
void MainWindow::color_edited(QString &colorStr, QLineEdit *txt, QPushButton *btn)
|
||||
void MainWindow::color_edited(QString &colorStr, QLineEdit *txt, QToolButton *btn)
|
||||
{
|
||||
QString new_str = txt->text().trimmed();
|
||||
if (new_str.indexOf(colorRE) != 0) {
|
||||
@ -1694,9 +1676,16 @@ void MainWindow::change_options()
|
||||
}
|
||||
statusBar->clearMessage();
|
||||
|
||||
if (tabMain->count() == 3)
|
||||
grpSpecific->hide();
|
||||
if (m_optionWidget) {
|
||||
if (tabMain->count() == 3) {
|
||||
tabMain->removeTab(1);
|
||||
|
||||
} else {
|
||||
vLayoutSpecific->removeWidget(m_optionWidget);
|
||||
}
|
||||
delete m_optionWidget;
|
||||
m_optionWidget = nullptr;
|
||||
}
|
||||
chkComposite->setText(tr("Add &2D Component"));
|
||||
combobox_item_enabled(cmbCompType, 3, false); // CC-C
|
||||
btype->setItemText(0, tr("No border"));
|
||||
@ -1837,7 +1826,8 @@ void MainWindow::change_options()
|
||||
m_optionWidget = uiload.load(&file);
|
||||
file.close();
|
||||
load_sub_settings(settings, symbology);
|
||||
tabMain->insertTab(1, m_optionWidget, tr("MSI Pless&ey"));
|
||||
vLayoutSpecific->addWidget(m_optionWidget);
|
||||
grpSpecific->show();
|
||||
connect(get_widget(QSL("cmbMSICheck")), SIGNAL(currentIndexChanged( int )), SLOT(update_preview()));
|
||||
connect(get_widget(QSL("cmbMSICheck")), SIGNAL(currentIndexChanged( int )), SLOT(msi_plessey_ui_set()));
|
||||
connect(get_widget(QSL("chkMSICheckText")), SIGNAL(toggled( bool )), SLOT(update_preview()));
|
||||
@ -1849,7 +1839,8 @@ void MainWindow::change_options()
|
||||
m_optionWidget = uiload.load(&file);
|
||||
file.close();
|
||||
load_sub_settings(settings, symbology);
|
||||
tabMain->insertTab(1, m_optionWidget, tr("Cod&e 11"));
|
||||
vLayoutSpecific->addWidget(m_optionWidget);
|
||||
grpSpecific->show();
|
||||
connect(get_widget(QSL("radC11TwoCheckDigits")), SIGNAL(toggled( bool )), SLOT(update_preview()));
|
||||
connect(get_widget(QSL("radC11OneCheckDigit")), SIGNAL(toggled( bool )), SLOT(update_preview()));
|
||||
connect(get_widget(QSL("radC11NoCheckDigits")), SIGNAL(toggled( bool )), SLOT(update_preview()));
|
||||
@ -1861,11 +1852,8 @@ void MainWindow::change_options()
|
||||
m_optionWidget = uiload.load(&file);
|
||||
file.close();
|
||||
load_sub_settings(settings, symbology);
|
||||
static const QString names[] = {
|
||||
QSL("Standard"), QSL("Interleaved"), QSL("IATA"), QSL(""), QSL("Data Logic"), QSL("Industrial")
|
||||
};
|
||||
/*: %1 is name of variant (Standard, Interleaved, IATA, Data Logic, Industrial) */
|
||||
tabMain->insertTab(1, m_optionWidget, tr("Cod&e 2 of 5 %1").arg(names[symbology - BARCODE_C25STANDARD]));
|
||||
vLayoutSpecific->addWidget(m_optionWidget);
|
||||
grpSpecific->show();
|
||||
connect(get_widget(QSL("radC25Stand")), SIGNAL(toggled( bool )), SLOT(update_preview()));
|
||||
connect(get_widget(QSL("radC25Check")), SIGNAL(toggled( bool )), SLOT(update_preview()));
|
||||
connect(get_widget(QSL("radC25CheckHide")), SIGNAL(toggled( bool )), SLOT(update_preview()));
|
||||
@ -1878,15 +1866,13 @@ void MainWindow::change_options()
|
||||
m_optionWidget = uiload.load(&file);
|
||||
file.close();
|
||||
load_sub_settings(settings, symbology);
|
||||
vLayoutSpecific->addWidget(m_optionWidget);
|
||||
grpSpecific->show();
|
||||
connect(get_widget(QSL("radC39Stand")), SIGNAL(toggled( bool )), SLOT(update_preview()));
|
||||
connect(get_widget(QSL("radC39Check")), SIGNAL(toggled( bool )), SLOT(update_preview()));
|
||||
connect(get_widget(QSL("radC39CheckHide")), SIGNAL(toggled( bool )), SLOT(update_preview()));
|
||||
QRadioButton *radC39HIBC = m_optionWidget->findChild<QRadioButton*>(QSL("radC39HIBC"));
|
||||
if (symbology == BARCODE_EXCODE39 || symbology == BARCODE_LOGMARS) {
|
||||
if (symbology == BARCODE_EXCODE39) {
|
||||
tabMain->insertTab(1, m_optionWidget, tr("Cod&e 39 Extended"));
|
||||
} else {
|
||||
tabMain->insertTab(1, m_optionWidget, tr("LOGM&ARS"));
|
||||
}
|
||||
if (radC39HIBC->isChecked()) {
|
||||
radC39HIBC->setChecked(false);
|
||||
m_optionWidget->findChild<QRadioButton*>(QSL("radC39Stand"))->setChecked(true);
|
||||
@ -1895,7 +1881,6 @@ void MainWindow::change_options()
|
||||
radC39HIBC->hide();
|
||||
} else {
|
||||
connect(get_widget(QSL("radC39HIBC")), SIGNAL(toggled( bool )), SLOT(update_preview()));
|
||||
tabMain->insertTab(1, m_optionWidget, tr("Cod&e 39"));
|
||||
radC39HIBC->setEnabled(true);
|
||||
radC39HIBC->show();
|
||||
}
|
||||
@ -1929,7 +1914,8 @@ void MainWindow::change_options()
|
||||
m_optionWidget = uiload.load(&file);
|
||||
file.close();
|
||||
load_sub_settings(settings, symbology);
|
||||
tabMain->insertTab(1, m_optionWidget, tr("Cod&abar"));
|
||||
vLayoutSpecific->addWidget(m_optionWidget);
|
||||
grpSpecific->show();
|
||||
connect(get_widget(QSL("radCodabarStand")), SIGNAL(toggled( bool )), SLOT(update_preview()));
|
||||
connect(get_widget(QSL("radCodabarCheckHide")), SIGNAL(toggled( bool )), SLOT(update_preview()));
|
||||
connect(get_widget(QSL("radCodabarCheck")), SIGNAL(toggled( bool )), SLOT(update_preview()));
|
||||
@ -1964,8 +1950,9 @@ void MainWindow::change_options()
|
||||
m_optionWidget = uiload.load(&file);
|
||||
file.close();
|
||||
load_sub_settings(settings, symbology);
|
||||
tabMain->insertTab(1, m_optionWidget, tr("D&AFT"));
|
||||
set_smaller_font(QSL("noteTrackerRatios"));
|
||||
vLayoutSpecific->addWidget(m_optionWidget);
|
||||
grpSpecific->show();
|
||||
set_smaller_font(QSL("noteDAFTTrackerRatios"));
|
||||
connect(get_widget(QSL("spnDAFTTrackerRatio")), SIGNAL(valueChanged( double )), SLOT(daft_ui_set()));
|
||||
connect(get_widget(QSL("spnDAFTTrackerRatio")), SIGNAL(valueChanged( double )), SLOT(update_preview()));
|
||||
connect(get_widget(QSL("btnDAFTTrackerDefault")), SIGNAL(clicked( bool )), SLOT(daft_tracker_default()));
|
||||
@ -1979,7 +1966,8 @@ void MainWindow::change_options()
|
||||
m_optionWidget = uiload.load(&file);
|
||||
file.close();
|
||||
load_sub_settings(settings, symbology);
|
||||
tabMain->insertTab(1, m_optionWidget, tr("DPD Cod&e"));
|
||||
vLayoutSpecific->addWidget(m_optionWidget);
|
||||
grpSpecific->show();
|
||||
connect(get_widget(QSL("chkDPDRelabel")), SIGNAL(toggled( bool )), SLOT(update_preview()));
|
||||
}
|
||||
|
||||
@ -2012,8 +2000,8 @@ void MainWindow::change_options()
|
||||
m_optionWidget = uiload.load(&file);
|
||||
file.close();
|
||||
load_sub_settings(settings, symbology);
|
||||
structapp_ui_set();
|
||||
tabMain->insertTab(1, m_optionWidget, tr("2D M&ailmark"));
|
||||
vLayoutSpecific->addWidget(m_optionWidget);
|
||||
grpSpecific->show();
|
||||
connect(get_widget(QSL("cmbMailmark2DSize")), SIGNAL(currentIndexChanged( int )), SLOT(update_preview()));
|
||||
connect(get_widget(QSL("chkMailmark2DRectangle")), SIGNAL(toggled( bool )), SLOT(update_preview()));
|
||||
}
|
||||
@ -2025,7 +2013,8 @@ void MainWindow::change_options()
|
||||
m_optionWidget = uiload.load(&file);
|
||||
file.close();
|
||||
load_sub_settings(settings, symbology);
|
||||
tabMain->insertTab(1, m_optionWidget, tr("ITF-1&4"));
|
||||
vLayoutSpecific->addWidget(m_optionWidget);
|
||||
grpSpecific->show();
|
||||
connect(get_widget(QSL("chkITF14NoQuietZones")), SIGNAL(toggled( bool )), SLOT(update_preview()));
|
||||
}
|
||||
|
||||
@ -2035,7 +2024,8 @@ void MainWindow::change_options()
|
||||
m_optionWidget = uiload.load(&file);
|
||||
file.close();
|
||||
load_sub_settings(settings, symbology);
|
||||
tabMain->insertTab(1, m_optionWidget, tr("PZN"));
|
||||
vLayoutSpecific->addWidget(m_optionWidget);
|
||||
grpSpecific->show();
|
||||
connect(get_widget(QSL("chkPZN7")), SIGNAL(toggled( bool )), SLOT(update_preview()));
|
||||
}
|
||||
|
||||
@ -2067,7 +2057,8 @@ void MainWindow::change_options()
|
||||
m_optionWidget = uiload.load(&file);
|
||||
file.close();
|
||||
load_sub_settings(settings, symbology);
|
||||
tabMain->insertTab(1, m_optionWidget, tr("UP&NQR"));
|
||||
vLayoutSpecific->addWidget(m_optionWidget);
|
||||
grpSpecific->show();
|
||||
connect(get_widget(QSL("cmbUPNQRMask")), SIGNAL(currentIndexChanged( int )), SLOT(update_preview()));
|
||||
connect(get_widget(QSL("chkUPNQRFast")), SIGNAL(toggled( bool )), SLOT(update_preview()));
|
||||
}
|
||||
@ -2161,7 +2152,8 @@ void MainWindow::change_options()
|
||||
m_optionWidget = uiload.load(&file);
|
||||
file.close();
|
||||
load_sub_settings(settings, symbology);
|
||||
tabMain->insertTab(1, m_optionWidget, tr("Channel Cod&e"));
|
||||
vLayoutSpecific->addWidget(m_optionWidget);
|
||||
grpSpecific->show();
|
||||
connect(get_widget(QSL("cmbChannel")), SIGNAL(currentIndexChanged( int )), SLOT(update_preview()));
|
||||
|
||||
} else if (symbology == BARCODE_CODEONE) {
|
||||
@ -2209,7 +2201,8 @@ void MainWindow::change_options()
|
||||
m_optionWidget = uiload.load(&file);
|
||||
file.close();
|
||||
load_sub_settings(settings, symbology);
|
||||
tabMain->insertTab(1, m_optionWidget, tr("Cod&e 93"));
|
||||
vLayoutSpecific->addWidget(m_optionWidget);
|
||||
grpSpecific->show();
|
||||
connect(get_widget(QSL("chkC93ShowChecks")), SIGNAL(toggled( bool )), SLOT(update_preview()));
|
||||
}
|
||||
|
||||
@ -2324,7 +2317,8 @@ void MainWindow::change_options()
|
||||
m_optionWidget = uiload.load(&file);
|
||||
file.close();
|
||||
load_sub_settings(settings, symbology);
|
||||
tabMain->insertTab(1, m_optionWidget, tr("&VIN"));
|
||||
vLayoutSpecific->addWidget(m_optionWidget);
|
||||
grpSpecific->show();
|
||||
connect(get_widget(QSL("chkVINImportChar")), SIGNAL(toggled( bool )), SLOT(update_preview()));
|
||||
|
||||
} else {
|
||||
@ -2332,10 +2326,6 @@ void MainWindow::change_options()
|
||||
load_sub_settings(settings, symbology);
|
||||
}
|
||||
|
||||
#ifdef Q_OS_MACOS
|
||||
mac_hack(m_optionWidget);
|
||||
#endif
|
||||
|
||||
switch (symbology) {
|
||||
case BARCODE_CODE128:
|
||||
case BARCODE_EANX:
|
||||
@ -2916,24 +2906,31 @@ void MainWindow::update_preview()
|
||||
break;
|
||||
|
||||
case BARCODE_CODE39:
|
||||
if (get_rad_val(QSL("radC39HIBC")))
|
||||
if (get_rad_val(QSL("radC39HIBC"))) {
|
||||
m_bc.bc.setSymbol(BARCODE_HIBC_39);
|
||||
else {
|
||||
} else {
|
||||
m_bc.bc.setSymbol(BARCODE_CODE39);
|
||||
if (get_rad_val(QSL("radC39Check")))
|
||||
if (get_rad_val(QSL("radC39Check"))) {
|
||||
m_bc.bc.setOption2(1);
|
||||
} else if (get_rad_val(QSL("radC39CheckHide"))) {
|
||||
m_bc.bc.setOption2(2);
|
||||
}
|
||||
}
|
||||
break;
|
||||
case BARCODE_EXCODE39:
|
||||
m_bc.bc.setSymbol(BARCODE_EXCODE39);
|
||||
if (get_rad_val(QSL("radC39Check")))
|
||||
if (get_rad_val(QSL("radC39Check"))) {
|
||||
m_bc.bc.setOption2(1);
|
||||
|
||||
} else if (get_rad_val(QSL("radC39CheckHide"))) {
|
||||
m_bc.bc.setOption2(2);
|
||||
}
|
||||
break;
|
||||
case BARCODE_LOGMARS:
|
||||
m_bc.bc.setSymbol(BARCODE_LOGMARS);
|
||||
if (get_rad_val(QSL("radC39Check"))) {
|
||||
m_bc.bc.setOption2(1);
|
||||
} else if (get_rad_val(QSL("radC39CheckHide"))) {
|
||||
m_bc.bc.setOption2(2);
|
||||
}
|
||||
break;
|
||||
|
||||
@ -4225,16 +4222,17 @@ void MainWindow::save_sub_settings(QSettings &settings, int symbology)
|
||||
case BARCODE_CODE39:
|
||||
case BARCODE_HIBC_39:
|
||||
settings.setValue(QSL("studio/bc/code39/check_digit"), get_rad_grp_index(
|
||||
QStringList() << QSL("radC39Stand") << QSL("radC39Check") << QSL("radC39HIBC")));
|
||||
QStringList() << QSL("radC39Stand") << QSL("radC39Check") << QSL("radC39HIBC")
|
||||
<< QSL("radC39CheckHide")));
|
||||
break;
|
||||
|
||||
case BARCODE_EXCODE39:
|
||||
settings.setValue(QSL("studio/bc/excode39/check_digit"), get_rad_grp_index(
|
||||
QStringList() << QSL("radC39Stand") << QSL("radC39Check")));
|
||||
QStringList() << QSL("radC39Stand") << QSL("radC39Check") << QSL("radC39CheckHide")));
|
||||
break;
|
||||
case BARCODE_LOGMARS:
|
||||
settings.setValue(QSL("studio/bc/logmars/check_digit"), get_rad_grp_index(
|
||||
QStringList() << QSL("radC39Stand") << QSL("radC39Check")));
|
||||
QStringList() << QSL("radC39Stand") << QSL("radC39Check") << QSL("radC39CheckHide")));
|
||||
break;
|
||||
|
||||
case BARCODE_CODE16K:
|
||||
@ -4660,16 +4658,17 @@ void MainWindow::load_sub_settings(QSettings &settings, int symbology)
|
||||
case BARCODE_CODE39:
|
||||
case BARCODE_HIBC_39:
|
||||
set_rad_from_setting(settings, QSL("studio/bc/code39/check_digit"),
|
||||
QStringList() << QSL("radC39Stand") << QSL("radC39Check") << QSL("radC39HIBC"));
|
||||
QStringList() << QSL("radC39Stand") << QSL("radC39Check") << QSL("radC39HIBC")
|
||||
<< QSL("radC39CheckHide"));
|
||||
break;
|
||||
|
||||
case BARCODE_EXCODE39:
|
||||
set_rad_from_setting(settings, QSL("studio/bc/excode39/check_digit"),
|
||||
QStringList() << QSL("radC39Stand") << QSL("radC39Check"));
|
||||
QStringList() << QSL("radC39Stand") << QSL("radC39Check") << QSL("radC39CheckHide"));
|
||||
break;
|
||||
case BARCODE_LOGMARS:
|
||||
set_rad_from_setting(settings, QSL("studio/bc/logmars/check_digit"),
|
||||
QStringList() << QSL("radC39Stand") << QSL("radC39Check"));
|
||||
QStringList() << QSL("radC39Stand") << QSL("radC39Check") << QSL("radC39CheckHide"));
|
||||
break;
|
||||
|
||||
case BARCODE_CODE16K:
|
||||
|
@ -28,6 +28,7 @@ class QLabel;
|
||||
class QShortcut;
|
||||
class QDoubleSpinBox;
|
||||
class QPushButton;
|
||||
class QToolButton;
|
||||
|
||||
#include "ui_mainWindow.h"
|
||||
#include "barcodeitem.h"
|
||||
@ -45,7 +46,6 @@ public:
|
||||
static QString get_zint_version(void);
|
||||
|
||||
#ifdef Q_OS_MACOS
|
||||
static void mac_hack(QWidget *win);
|
||||
static void mac_hack_vLayouts(QWidget *win);
|
||||
static void mac_hack_statusBars(QWidget *win, const char *name = nullptr);
|
||||
#endif
|
||||
@ -136,10 +136,10 @@ protected:
|
||||
|
||||
bool clear_data_eci_seg(int seg_no);
|
||||
|
||||
void color_clicked(QString &colorStr, QLineEdit *txt, QPushButton *btn, const QString& title,
|
||||
void color_clicked(QString &colorStr, QLineEdit *txt, QToolButton *btn, const QString& title,
|
||||
QByteArray& geometry, const char *color_changed);
|
||||
void color_edited(QString &colorStr, QLineEdit *txt, QPushButton *btn);
|
||||
void setColorTxtBtn(const QString &colorStr, QLineEdit *txt, QPushButton* btn);
|
||||
void color_edited(QString &colorStr, QLineEdit *txt, QToolButton *btn);
|
||||
void setColorTxtBtn(const QString &colorStr, QLineEdit *txt, QToolButton* btn);
|
||||
|
||||
virtual void resizeEvent(QResizeEvent *event) override;
|
||||
virtual bool event(QEvent *event) override;
|
||||
|
1
frontend_qt/res/folder.svg
Normal 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="lucide lucide-folder"><path d="M4 20h16a2 2 0 0 0 2-2V8a2 2 0 0 0-2-2h-7.93a2 2 0 0 1-1.66-.9l-.82-1.2A2 2 0 0 0 7.93 3H4a2 2 0 0 0-2 2v13c0 1.1.9 2 2 2Z"/></svg>
|
After Width: | Height: | Size: 351 B |
@ -41,6 +41,7 @@
|
||||
<file>res/copy.svg</file>
|
||||
<file>res/delete.svg</file>
|
||||
<file>res/download.svg</file>
|
||||
<file>res/folder.svg</file>
|
||||
<file>res/help-circle.svg</file>
|
||||
<file>res/menu.svg</file>
|
||||
<file>res/monitor-bg.svg</file>
|
||||
|