Han Xin: Add user options (Version and ECC level)

This commit is contained in:
Robin Stuart 2016-04-30 10:25:16 +01:00
parent 8eb5525c8c
commit 4ae120ab35
9 changed files with 2012 additions and 95 deletions

246
Makefile
View File

@ -1,18 +1,240 @@
# Make libzint and zint together # CMAKE generated file: DO NOT EDIT!
# Generated by "Unix Makefiles" Generator, CMake Version 3.2
zint: # Default target executed when no arguments are given to make.
$(MAKE) -C backend/ default_target: all
$(MAKE) -C frontend/ .PHONY : default_target
install: # Allow only one "make -f Makefile2" at a time, but pass parallelism.
$(MAKE) install -C backend/ .NOTPARALLEL:
$(MAKE) install -C frontend/
uninstall: #=============================================================================
$(MAKE) uninstall -C frontend/ # Special targets provided by cmake.
$(MAKE) uninstall -C backend/
# Disable implicit rules so canonical targets will work.
.SUFFIXES:
# Remove some rules from gmake that .SUFFIXES does not remove.
SUFFIXES =
.SUFFIXES: .hpux_make_needs_suffix_list
# Suppress display of executed commands.
$(VERBOSE).SILENT:
# A target that is always out of date.
cmake_force:
.PHONY : cmake_force
#=============================================================================
# Set environment variables for the build.
# The shell in which to execute make rules.
SHELL = /bin/sh
# The CMake executable.
CMAKE_COMMAND = /usr/bin/cmake
# The command to remove a file.
RM = /usr/bin/cmake -E remove -f
# Escaping for special characters.
EQUALS = =
# The top-level source directory on which CMake was run.
CMAKE_SOURCE_DIR = /home/hooper/zint/zint-code
# The top-level build directory on which CMake was run.
CMAKE_BINARY_DIR = /home/hooper/zint/zint-code
#=============================================================================
# Targets provided globally by CMake.
# Special rule for the target install/strip
install/strip: preinstall
@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan "Installing the project stripped..."
/usr/bin/cmake -DCMAKE_INSTALL_DO_STRIP=1 -P cmake_install.cmake
.PHONY : install/strip
# Special rule for the target install/strip
install/strip/fast: install/strip
.PHONY : install/strip/fast
# Special rule for the target edit_cache
edit_cache:
@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan "No interactive CMake dialog available..."
/usr/bin/cmake -E echo No\ interactive\ CMake\ dialog\ available.
.PHONY : edit_cache
# Special rule for the target edit_cache
edit_cache/fast: edit_cache
.PHONY : edit_cache/fast
# Special rule for the target rebuild_cache
rebuild_cache:
@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan "Running CMake to regenerate build system..."
/usr/bin/cmake -H$(CMAKE_SOURCE_DIR) -B$(CMAKE_BINARY_DIR)
.PHONY : rebuild_cache
# Special rule for the target rebuild_cache
rebuild_cache/fast: rebuild_cache
.PHONY : rebuild_cache/fast
# Special rule for the target install
install: preinstall
@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan "Install the project..."
/usr/bin/cmake -P cmake_install.cmake
.PHONY : install
# Special rule for the target install
install/fast: preinstall/fast
@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan "Install the project..."
/usr/bin/cmake -P cmake_install.cmake
.PHONY : install/fast
# Special rule for the target list_install_components
list_install_components:
@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan "Available install components are: \"Devel\" \"Unspecified\""
.PHONY : list_install_components
# Special rule for the target list_install_components
list_install_components/fast: list_install_components
.PHONY : list_install_components/fast
# Special rule for the target install/local
install/local: preinstall
@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan "Installing only the local directory..."
/usr/bin/cmake -DCMAKE_INSTALL_LOCAL_ONLY=1 -P cmake_install.cmake
.PHONY : install/local
# Special rule for the target install/local
install/local/fast: install/local
.PHONY : install/local/fast
# The main all target
all: cmake_check_build_system
$(CMAKE_COMMAND) -E cmake_progress_start /home/hooper/zint/zint-code/CMakeFiles /home/hooper/zint/zint-code/CMakeFiles/progress.marks
$(MAKE) -f CMakeFiles/Makefile2 all
$(CMAKE_COMMAND) -E cmake_progress_start /home/hooper/zint/zint-code/CMakeFiles 0
.PHONY : all
# The main clean target
clean: clean:
$(MAKE) clean -C backend/ $(MAKE) -f CMakeFiles/Makefile2 clean
$(MAKE) clean -C frontend/ .PHONY : clean
# The main clean target
clean/fast: clean
.PHONY : clean/fast
# Prepare targets for installation.
preinstall: all
$(MAKE) -f CMakeFiles/Makefile2 preinstall
.PHONY : preinstall
# Prepare targets for installation.
preinstall/fast:
$(MAKE) -f CMakeFiles/Makefile2 preinstall
.PHONY : preinstall/fast
# clear depends
depend:
$(CMAKE_COMMAND) -H$(CMAKE_SOURCE_DIR) -B$(CMAKE_BINARY_DIR) --check-build-system CMakeFiles/Makefile.cmake 1
.PHONY : depend
#=============================================================================
# Target rules for targets named uninstall
# Build rule for target.
uninstall: cmake_check_build_system
$(MAKE) -f CMakeFiles/Makefile2 uninstall
.PHONY : uninstall
# fast build rule for target.
uninstall/fast:
$(MAKE) -f CMakeFiles/uninstall.dir/build.make CMakeFiles/uninstall.dir/build
.PHONY : uninstall/fast
#=============================================================================
# Target rules for targets named zint
# Build rule for target.
zint: cmake_check_build_system
$(MAKE) -f CMakeFiles/Makefile2 zint
.PHONY : zint
# fast build rule for target.
zint/fast:
$(MAKE) -f backend/CMakeFiles/zint.dir/build.make backend/CMakeFiles/zint.dir/build
.PHONY : zint/fast
#=============================================================================
# Target rules for targets named zint_frontend
# Build rule for target.
zint_frontend: cmake_check_build_system
$(MAKE) -f CMakeFiles/Makefile2 zint_frontend
.PHONY : zint_frontend
# fast build rule for target.
zint_frontend/fast:
$(MAKE) -f frontend/CMakeFiles/zint_frontend.dir/build.make frontend/CMakeFiles/zint_frontend.dir/build
.PHONY : zint_frontend/fast
#=============================================================================
# Target rules for targets named QZint
# Build rule for target.
QZint: cmake_check_build_system
$(MAKE) -f CMakeFiles/Makefile2 QZint
.PHONY : QZint
# fast build rule for target.
QZint/fast:
$(MAKE) -f backend_qt4/CMakeFiles/QZint.dir/build.make backend_qt4/CMakeFiles/QZint.dir/build
.PHONY : QZint/fast
#=============================================================================
# Target rules for targets named zint-qt
# Build rule for target.
zint-qt: cmake_check_build_system
$(MAKE) -f CMakeFiles/Makefile2 zint-qt
.PHONY : zint-qt
# fast build rule for target.
zint-qt/fast:
$(MAKE) -f frontend_qt4/CMakeFiles/zint-qt.dir/build.make frontend_qt4/CMakeFiles/zint-qt.dir/build
.PHONY : zint-qt/fast
# Help Target
help:
@echo "The following are some of the valid targets for this Makefile:"
@echo "... all (the default if no target is provided)"
@echo "... clean"
@echo "... depend"
@echo "... install/strip"
@echo "... uninstall"
@echo "... edit_cache"
@echo "... rebuild_cache"
@echo "... install"
@echo "... list_install_components"
@echo "... install/local"
@echo "... zint"
@echo "... zint_frontend"
@echo "... QZint"
@echo "... zint-qt"
.PHONY : help
#=============================================================================
# Special targets to cleanup operation of make.
# Special rule to run CMake to check the build system integrity.
# No rule that depends on this can have commands that come from listfiles
# because they might be regenerated.
cmake_check_build_system:
$(CMAKE_COMMAND) -H$(CMAKE_SOURCE_DIR) -B$(CMAKE_BINARY_DIR) --check-build-system CMakeFiles/Makefile.cmake 0
.PHONY : cmake_check_build_system

File diff suppressed because it is too large Load Diff

View File

@ -947,7 +947,7 @@ int hx_apply_bitmask(unsigned char *grid, int size) {
int han_xin(struct zint_symbol *symbol, const unsigned char source[], int length) { int han_xin(struct zint_symbol *symbol, const unsigned char source[], int length) {
char mode[length + 1]; char mode[length + 1];
int est_binlen; int est_binlen;
int ecc_level = 1; int ecc_level = symbol->option_1;
int i, j, version; int i, j, version;
int data_codewords, size; int data_codewords, size;
int est_codewords; int est_codewords;
@ -971,6 +971,10 @@ int han_xin(struct zint_symbol *symbol, const unsigned char source[], int length
binary[0] = '\0'; binary[0] = '\0';
if ((ecc_level <= 0) || (ecc_level >= 5)) {
ecc_level = 1;
}
calculate_binary(binary, mode, source, length); calculate_binary(binary, mode, source, length);
version = 85; version = 85;
@ -1008,6 +1012,35 @@ int han_xin(struct zint_symbol *symbol, const unsigned char source[], int length
return ZINT_ERROR_TOO_LONG; return ZINT_ERROR_TOO_LONG;
} }
if ((symbol->option_2 < 0) || (symbol->option_2 > 84)) {
symbol->option_2 = 0;
}
if (symbol->option_2 > version) {
version = symbol->option_2;
}
/* If there is spare capacity, increase the level of ECC */
switch (ecc_level) {
case 1:
if (est_codewords < hx_data_codewords_L2[version - 1]) {
ecc_level = 2;
data_codewords = hx_data_codewords_L2[version - 1];
}
case 2:
if (est_codewords < hx_data_codewords_L3[version - 1]) {
ecc_level = 3;
data_codewords = hx_data_codewords_L3[version - 1];
}
case 3:
if (est_codewords < hx_data_codewords_L4[version - 1]) {
ecc_level = 4;
data_codewords = hx_data_codewords_L4[version - 1];
}
}
printf("Version %d, ECC %d\n", version, ecc_level);
size = (version * 2) + 21; size = (version * 2) + 21;
#ifndef _MSC_VER #ifndef _MSC_VER
@ -1144,5 +1177,5 @@ int han_xin(struct zint_symbol *symbol, const unsigned char source[], int length
symbol->row_height[i] = 1; symbol->row_height[i] = 1;
} }
return 1; return 0;
} }

View File

@ -1,40 +1,212 @@
# Linux makefile for zint - requires libzint # CMAKE generated file: DO NOT EDIT!
# # Generated by "Unix Makefiles" Generator, CMake Version 3.2
# make compiles zint
# make install copies binary to /usr/local/bin
# make uninstall removes the binary
# make clean cleans up a previous compilation and any object or editor files
#
ZINT_VERSION:=-DZINT_VERSION=\"2.4.4\" # Default target executed when no arguments are given to make.
default_target: all
.PHONY : default_target
CC := gcc # Allow only one "make -f Makefile2" at a time, but pass parallelism.
INCLUDE := -I/usr/include .NOTPARALLEL:
CFLAGS := -g
prefix := /usr #=============================================================================
bindir := $(prefix)/bin # Special targets provided by cmake.
DESTDIR :=
LIBS:= -lz -lm -lpng
all: zint zint-static # Disable implicit rules so canonical targets will work.
.SUFFIXES:
main.o: main.c # Remove some rules from gmake that .SUFFIXES does not remove.
$(CC) -c -Wall $(INCLUDE) $(CFLAGS) $(ZINT_VERSION) -I../backend main.c -o main.o SUFFIXES =
zint: main.o .SUFFIXES: .hpux_make_needs_suffix_list
$(CC) -Wall $(INCLUDE) $(CFLAGS) $(ZINT_VERSION) -I../backend -L../backend main.o -o zint -lzint
zint-static: main.c # Suppress display of executed commands.
$(CC) -Wall $(INCLUDE) $(CFLAGS) $(ZINT_VERSION) -I../backend main.o -o zint-static ../backend/libzint.a $(LIBS) $(VERBOSE).SILENT:
.PHONY: install uninstall clean dist # A target that is always out of date.
cmake_force:
.PHONY : cmake_force
#=============================================================================
# Set environment variables for the build.
# The shell in which to execute make rules.
SHELL = /bin/sh
# The CMake executable.
CMAKE_COMMAND = /usr/bin/cmake
# The command to remove a file.
RM = /usr/bin/cmake -E remove -f
# Escaping for special characters.
EQUALS = =
# The top-level source directory on which CMake was run.
CMAKE_SOURCE_DIR = /home/hooper/zint/zint-code
# The top-level build directory on which CMake was run.
CMAKE_BINARY_DIR = /home/hooper/zint/zint-code
#=============================================================================
# Targets provided globally by CMake.
# Special rule for the target install/strip
install/strip: preinstall
@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan "Installing the project stripped..."
/usr/bin/cmake -DCMAKE_INSTALL_DO_STRIP=1 -P cmake_install.cmake
.PHONY : install/strip
# Special rule for the target install/strip
install/strip/fast: install/strip
.PHONY : install/strip/fast
# Special rule for the target edit_cache
edit_cache:
@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan "No interactive CMake dialog available..."
/usr/bin/cmake -E echo No\ interactive\ CMake\ dialog\ available.
.PHONY : edit_cache
# Special rule for the target edit_cache
edit_cache/fast: edit_cache
.PHONY : edit_cache/fast
# Special rule for the target rebuild_cache
rebuild_cache:
@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan "Running CMake to regenerate build system..."
/usr/bin/cmake -H$(CMAKE_SOURCE_DIR) -B$(CMAKE_BINARY_DIR)
.PHONY : rebuild_cache
# Special rule for the target rebuild_cache
rebuild_cache/fast: rebuild_cache
.PHONY : rebuild_cache/fast
# Special rule for the target install
install: preinstall
@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan "Install the project..."
/usr/bin/cmake -P cmake_install.cmake
.PHONY : install
# Special rule for the target install
install/fast: preinstall/fast
@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan "Install the project..."
/usr/bin/cmake -P cmake_install.cmake
.PHONY : install/fast
# Special rule for the target list_install_components
list_install_components:
@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan "Available install components are: \"Devel\" \"Unspecified\""
.PHONY : list_install_components
# Special rule for the target list_install_components
list_install_components/fast: list_install_components
.PHONY : list_install_components/fast
# Special rule for the target install/local
install/local: preinstall
@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan "Installing only the local directory..."
/usr/bin/cmake -DCMAKE_INSTALL_LOCAL_ONLY=1 -P cmake_install.cmake
.PHONY : install/local
# Special rule for the target install/local
install/local/fast: install/local
.PHONY : install/local/fast
# The main all target
all: cmake_check_build_system
cd /home/hooper/zint/zint-code && $(CMAKE_COMMAND) -E cmake_progress_start /home/hooper/zint/zint-code/CMakeFiles /home/hooper/zint/zint-code/frontend/CMakeFiles/progress.marks
cd /home/hooper/zint/zint-code && $(MAKE) -f CMakeFiles/Makefile2 frontend/all
$(CMAKE_COMMAND) -E cmake_progress_start /home/hooper/zint/zint-code/CMakeFiles 0
.PHONY : all
# The main clean target
clean: clean:
rm -f zint zint-static *.o *.a *~ *.png *.eps *.svg *.log cd /home/hooper/zint/zint-code && $(MAKE) -f CMakeFiles/Makefile2 frontend/clean
.PHONY : clean
install: # The main clean target
install -D -p zint $(DESTDIR)$(bindir)/zint clean/fast: clean
.PHONY : clean/fast
# Prepare targets for installation.
preinstall: all
cd /home/hooper/zint/zint-code && $(MAKE) -f CMakeFiles/Makefile2 frontend/preinstall
.PHONY : preinstall
# Prepare targets for installation.
preinstall/fast:
cd /home/hooper/zint/zint-code && $(MAKE) -f CMakeFiles/Makefile2 frontend/preinstall
.PHONY : preinstall/fast
# clear depends
depend:
cd /home/hooper/zint/zint-code && $(CMAKE_COMMAND) -H$(CMAKE_SOURCE_DIR) -B$(CMAKE_BINARY_DIR) --check-build-system CMakeFiles/Makefile.cmake 1
.PHONY : depend
# Convenience name for target.
frontend/CMakeFiles/zint_frontend.dir/rule:
cd /home/hooper/zint/zint-code && $(MAKE) -f CMakeFiles/Makefile2 frontend/CMakeFiles/zint_frontend.dir/rule
.PHONY : frontend/CMakeFiles/zint_frontend.dir/rule
# Convenience name for target.
zint_frontend: frontend/CMakeFiles/zint_frontend.dir/rule
.PHONY : zint_frontend
# fast build rule for target.
zint_frontend/fast:
cd /home/hooper/zint/zint-code && $(MAKE) -f frontend/CMakeFiles/zint_frontend.dir/build.make frontend/CMakeFiles/zint_frontend.dir/build
.PHONY : zint_frontend/fast
main.o: main.c.o
.PHONY : main.o
# target to build an object file
main.c.o:
cd /home/hooper/zint/zint-code && $(MAKE) -f frontend/CMakeFiles/zint_frontend.dir/build.make frontend/CMakeFiles/zint_frontend.dir/main.c.o
.PHONY : main.c.o
main.i: main.c.i
.PHONY : main.i
# target to preprocess a source file
main.c.i:
cd /home/hooper/zint/zint-code && $(MAKE) -f frontend/CMakeFiles/zint_frontend.dir/build.make frontend/CMakeFiles/zint_frontend.dir/main.c.i
.PHONY : main.c.i
main.s: main.c.s
.PHONY : main.s
# target to generate assembly for a file
main.c.s:
cd /home/hooper/zint/zint-code && $(MAKE) -f frontend/CMakeFiles/zint_frontend.dir/build.make frontend/CMakeFiles/zint_frontend.dir/main.c.s
.PHONY : main.c.s
# Help Target
help:
@echo "The following are some of the valid targets for this Makefile:"
@echo "... all (the default if no target is provided)"
@echo "... clean"
@echo "... depend"
@echo "... install/strip"
@echo "... edit_cache"
@echo "... rebuild_cache"
@echo "... install"
@echo "... zint_frontend"
@echo "... list_install_components"
@echo "... install/local"
@echo "... main.o"
@echo "... main.i"
@echo "... main.s"
.PHONY : help
#=============================================================================
# Special targets to cleanup operation of make.
# Special rule to run CMake to check the build system integrity.
# No rule that depends on this can have commands that come from listfiles
# because they might be regenerated.
cmake_check_build_system:
cd /home/hooper/zint/zint-code && $(CMAKE_COMMAND) -H$(CMAKE_SOURCE_DIR) -B$(CMAKE_BINARY_DIR) --check-build-system CMakeFiles/Makefile.cmake 0
.PHONY : cmake_check_build_system
uninstall:
rm $(DESTDIR)$(bindir)/zint

View File

@ -34,6 +34,7 @@ FORMS += extData.ui \
grpMSICheck.ui \ grpMSICheck.ui \
grpPDF417.ui \ grpPDF417.ui \
grpQR.ui \ grpQR.ui \
grpHX.ui \
mainWindow.ui mainWindow.ui
SOURCES += barcodeitem.cpp \ SOURCES += barcodeitem.cpp \

509
frontend_qt4/grpHX.ui Normal file
View File

@ -0,0 +1,509 @@
<?xml version="1.0" encoding="UTF-8"?>
<ui version="4.0">
<class>grpHX</class>
<widget class="QWidget" name="grpHX">
<property name="geometry">
<rect>
<x>0</x>
<y>0</y>
<width>441</width>
<height>300</height>
</rect>
</property>
<property name="windowTitle">
<string>Form</string>
</property>
<widget class="QWidget" name="layoutWidget">
<property name="geometry">
<rect>
<x>10</x>
<y>10</y>
<width>421</width>
<height>100</height>
</rect>
</property>
<layout class="QGridLayout" name="gridLayout">
<item row="0" column="0">
<widget class="QRadioButton" name="radHXAuto">
<property name="text">
<string>A&amp;utomatic Resizing</string>
</property>
<property name="checked">
<bool>true</bool>
</property>
</widget>
</item>
<item row="1" column="0">
<widget class="QRadioButton" name="radHXSize">
<property name="text">
<string>Adjust Si&amp;ze To:</string>
</property>
</widget>
</item>
<item row="1" column="1">
<widget class="QComboBox" name="cmbHXSize">
<property name="enabled">
<bool>true</bool>
</property>
<item>
<property name="text">
<string>23 x 23 (Version 1)</string>
</property>
</item>
<item>
<property name="text">
<string>25 x 25 (Version 2)</string>
</property>
</item>
<item>
<property name="text">
<string>27 x 27 (Version 3)</string>
</property>
</item>
<item>
<property name="text">
<string>29 x 29 (Version 4)</string>
</property>
</item>
<item>
<property name="text">
<string>31 x 31 (Version 5)</string>
</property>
</item>
<item>
<property name="text">
<string>33 x 33 (Version 6)</string>
</property>
</item>
<item>
<property name="text">
<string>35 x 35 (Version 7)</string>
</property>
</item>
<item>
<property name="text">
<string>37 x 37 (Version 8)</string>
</property>
</item>
<item>
<property name="text">
<string>39 x 39 (Version 9)</string>
</property>
</item>
<item>
<property name="text">
<string>41 x 41 (Version 10)</string>
</property>
</item>
<item>
<property name="text">
<string>43 x 43 (Version 11)</string>
</property>
</item>
<item>
<property name="text">
<string>45 x 45 (Version 12)</string>
</property>
</item>
<item>
<property name="text">
<string>47 x 47 (Version 13)</string>
</property>
</item>
<item>
<property name="text">
<string>49 x 49 (Version 14)</string>
</property>
</item>
<item>
<property name="text">
<string>51 x 51 (Version 15)</string>
</property>
</item>
<item>
<property name="text">
<string>53 x 53 (Version 16)</string>
</property>
</item>
<item>
<property name="text">
<string>55 x 55 (Version 17)</string>
</property>
</item>
<item>
<property name="text">
<string>57 x 57 (Version 18)</string>
</property>
</item>
<item>
<property name="text">
<string>59 x 59 (Version 19)</string>
</property>
</item>
<item>
<property name="text">
<string>61 x 61 (Version 20)</string>
</property>
</item>
<item>
<property name="text">
<string>63 x 63 (Version 21)</string>
</property>
</item>
<item>
<property name="text">
<string>65 x 65 (Version 22)</string>
</property>
</item>
<item>
<property name="text">
<string>67 x 67 (Version 23)</string>
</property>
</item>
<item>
<property name="text">
<string>69 x 69 (Version 24)</string>
</property>
</item>
<item>
<property name="text">
<string>71 x 71 (Version 25)</string>
</property>
</item>
<item>
<property name="text">
<string>73 x 73 (Version 26)</string>
</property>
</item>
<item>
<property name="text">
<string>75 x 75 (Version 27)</string>
</property>
</item>
<item>
<property name="text">
<string>77 x 77 (Version 28)</string>
</property>
</item>
<item>
<property name="text">
<string>79 x 79 (Version 29)</string>
</property>
</item>
<item>
<property name="text">
<string>81 x 81 (Version 30)</string>
</property>
</item>
<item>
<property name="text">
<string>83 x 83 (Version 31)</string>
</property>
</item>
<item>
<property name="text">
<string>85 x 85 (Version 32)</string>
</property>
</item>
<item>
<property name="text">
<string>87 x 87 (Version 33)</string>
</property>
</item>
<item>
<property name="text">
<string>89 x 89 (Version 34)</string>
</property>
</item>
<item>
<property name="text">
<string>91 x 91 (Version 35)</string>
</property>
</item>
<item>
<property name="text">
<string>93 x 93 (Version 36)</string>
</property>
</item>
<item>
<property name="text">
<string>95 x 95 (Version 37)</string>
</property>
</item>
<item>
<property name="text">
<string>97 x 97 (Version 38)</string>
</property>
</item>
<item>
<property name="text">
<string>99 x 99 (Version 39)</string>
</property>
</item>
<item>
<property name="text">
<string>101 x 101 (Version 40)</string>
</property>
</item>
<item>
<property name="text">
<string>103 x 103 (Version 41)</string>
</property>
</item>
<item>
<property name="text">
<string>105 x 105 (Version 42)</string>
</property>
</item>
<item>
<property name="text">
<string>107 x 107 (Version 43)</string>
</property>
</item>
<item>
<property name="text">
<string>109 x 109 (Version 44)</string>
</property>
</item>
<item>
<property name="text">
<string>111 x 111 (Version 45)</string>
</property>
</item>
<item>
<property name="text">
<string>113 x 113 (Version 46)</string>
</property>
</item>
<item>
<property name="text">
<string>115 x 115 (Version 47)</string>
</property>
</item>
<item>
<property name="text">
<string>117 x 117 (Version 48)</string>
</property>
</item>
<item>
<property name="text">
<string>119 x 119 (Version 49)</string>
</property>
</item>
<item>
<property name="text">
<string>121 x 121 (Version 50)</string>
</property>
</item>
<item>
<property name="text">
<string>123 x 123 (Version 51)</string>
</property>
</item>
<item>
<property name="text">
<string>125 x 125 (Version 52)</string>
</property>
</item>
<item>
<property name="text">
<string>127 x 127 (Version 53)</string>
</property>
</item>
<item>
<property name="text">
<string>129 x 129 (Version 54)</string>
</property>
</item>
<item>
<property name="text">
<string>131 x 131 (Version 55)</string>
</property>
</item>
<item>
<property name="text">
<string>133 x 133 (Version 56)</string>
</property>
</item>
<item>
<property name="text">
<string>135 x 135 (Version 57)</string>
</property>
</item>
<item>
<property name="text">
<string>137 x 137 (Version 58)</string>
</property>
</item>
<item>
<property name="text">
<string>139 x 139 (Version 59)</string>
</property>
</item>
<item>
<property name="text">
<string>141 x 141 (Version 60)</string>
</property>
</item>
<item>
<property name="text">
<string>143 x 143 (Version 61)</string>
</property>
</item>
<item>
<property name="text">
<string>145 x 145 (Version 62)</string>
</property>
</item>
<item>
<property name="text">
<string>147 x 147 (Version 63)</string>
</property>
</item>
<item>
<property name="text">
<string>149 x 149 (Version 64)</string>
</property>
</item>
<item>
<property name="text">
<string>151 x 151 (Version 65)</string>
</property>
</item>
<item>
<property name="text">
<string>153 x 153 (Version 66)</string>
</property>
</item>
<item>
<property name="text">
<string>155 x 155 (Version 67)</string>
</property>
</item>
<item>
<property name="text">
<string>157 x 157 (Version 68)</string>
</property>
</item>
<item>
<property name="text">
<string>159 x 159 (Version 69)</string>
</property>
</item>
<item>
<property name="text">
<string>161 x 161 (Version 70)</string>
</property>
</item>
<item>
<property name="text">
<string>163 x 163 (Version 71)</string>
</property>
</item>
<item>
<property name="text">
<string>165 x 165 (Version 72)</string>
</property>
</item>
<item>
<property name="text">
<string>167 x 167 (Version 73)</string>
</property>
</item>
<item>
<property name="text">
<string>169 x 169 (Version 74)</string>
</property>
</item>
<item>
<property name="text">
<string>171 x 171 (Version 75)</string>
</property>
</item>
<item>
<property name="text">
<string>173 x 173 (Version 76)</string>
</property>
</item>
<item>
<property name="text">
<string>175 x 175 (Version 77)</string>
</property>
</item>
<item>
<property name="text">
<string>177 x 177 (Version 78)</string>
</property>
</item>
<item>
<property name="text">
<string>179 x 179 (Version 79)</string>
</property>
</item>
<item>
<property name="text">
<string>181 x 181 (Version 80)</string>
</property>
</item>
<item>
<property name="text">
<string>183 x 183 (Version 81)</string>
</property>
</item>
<item>
<property name="text">
<string>185 x 185 (Version 82)</string>
</property>
</item>
<item>
<property name="text">
<string>187 x 187 (Version 83)</string>
</property>
</item>
<item>
<property name="text">
<string>189 x 189 (Version 84)</string>
</property>
</item>
</widget>
</item>
<item row="2" column="0">
<widget class="QRadioButton" name="radHXECC">
<property name="text">
<string>Add &amp;Error Correction:</string>
</property>
</widget>
</item>
<item row="2" column="1">
<widget class="QComboBox" name="cmbHXECC">
<property name="enabled">
<bool>true</bool>
</property>
<item>
<property name="text">
<string>~8% (Level L1)</string>
</property>
</item>
<item>
<property name="text">
<string>~15% (Level L2)</string>
</property>
</item>
<item>
<property name="text">
<string>~23% (Level L3)</string>
</property>
</item>
<item>
<property name="text">
<string>~30% (Level L4)</string>
</property>
</item>
</widget>
</item>
</layout>
</widget>
</widget>
<resources/>
<connections/>
</ui>

View File

@ -277,7 +277,7 @@
</layout> </layout>
</item> </item>
<item> <item>
<widget class="QGroupBox" name="grpAztecMode"> <widget class="QGroupBox" name="grpQRMode">
<property name="minimumSize"> <property name="minimumSize">
<size> <size>
<width>0</width> <width>0</width>
@ -329,8 +329,6 @@
</item> </item>
</layout> </layout>
</widget> </widget>
<zorder>gridLayoutWidget</zorder>
<zorder></zorder>
</widget> </widget>
</item> </item>
</layout> </layout>

View File

@ -68,7 +68,7 @@ MainWindow::MainWindow(QWidget* parent, Qt::WFlags fl)
"GS1 DataBar Omnidirectional", "GS1 DataBar Omnidirectional",
"GS1 DataBar Stacked", "GS1 DataBar Stacked",
"GS1 DataBar Stacked Omnidirectional", "GS1 DataBar Stacked Omnidirectional",
"Han Xin Code", "Han Xin (Chinese Sensible) Code",
"ITF-14", "ITF-14",
"International Standard Book Number (ISBN)", "International Standard Book Number (ISBN)",
"Japanese Postal Barcode", "Japanese Postal Barcode",
@ -384,6 +384,21 @@ void MainWindow::change_options()
connect(m_optionWidget->findChild<QObject*>("radQRHIBC"), SIGNAL(clicked( bool )), SLOT(update_preview())); connect(m_optionWidget->findChild<QObject*>("radQRHIBC"), SIGNAL(clicked( bool )), SLOT(update_preview()));
} }
if(metaObject()->enumerator(0).value(bstyle->currentIndex()) == BARCODE_HANXIN)
{
QFile file (":/grpHX.ui");
if (!file.open(QIODevice::ReadOnly))
return;
m_optionWidget=uiload.load(&file);
file.close();
tabMain->insertTab(1,m_optionWidget,tr("Han Xin Code"));
connect(m_optionWidget->findChild<QObject*>("radHXAuto"), SIGNAL(clicked( bool )), SLOT(update_preview()));
connect(m_optionWidget->findChild<QObject*>("radHXSize"), SIGNAL(clicked( bool )), SLOT(update_preview()));
connect(m_optionWidget->findChild<QObject*>("radHXECC"), SIGNAL(clicked( bool )), SLOT(update_preview()));
connect(m_optionWidget->findChild<QObject*>("cmbHXSize"), SIGNAL(currentIndexChanged( int )), SLOT(update_preview()));
connect(m_optionWidget->findChild<QObject*>("cmbHXECC"), SIGNAL(currentIndexChanged( int )), SLOT(update_preview()));
}
if(metaObject()->enumerator(0).value(bstyle->currentIndex()) == BARCODE_MICROQR) if(metaObject()->enumerator(0).value(bstyle->currentIndex()) == BARCODE_MICROQR)
{ {
QFile file(":/grpMQR.ui"); QFile file(":/grpMQR.ui");
@ -793,10 +808,16 @@ void MainWindow::update_preview()
if(m_optionWidget->findChild<QRadioButton*>("radC49GS1")->isChecked()) if(m_optionWidget->findChild<QRadioButton*>("radC49GS1")->isChecked())
m_bc.bc.setInputMode(GS1_MODE); m_bc.bc.setInputMode(GS1_MODE);
break; break;
case BARCODE_HANXIN: case BARCODE_HANXIN:
m_bc.bc.setSymbol(BARCODE_HANXIN); m_bc.bc.setSymbol(BARCODE_HANXIN);
// Space reserved for more options! if(m_optionWidget->findChild<QRadioButton*>("radHXSize")->isChecked())
m_bc.bc.setWidth(m_optionWidget->findChild<QComboBox*>("cmbHXSize")->currentIndex() + 1);
if(m_optionWidget->findChild<QRadioButton*>("radHXECC")->isChecked())
m_bc.bc.setSecurityLevel(m_optionWidget->findChild<QComboBox*>("cmbHXECC")->currentIndex() + 1);
break; break;
default: default:
m_bc.bc.setSymbol(metaObject()->enumerator(0).value(bstyle->currentIndex())); m_bc.bc.setSymbol(metaObject()->enumerator(0).value(bstyle->currentIndex()));
break; break;

View File

@ -21,5 +21,6 @@
<file>grpGrid.ui</file> <file>grpGrid.ui</file>
<file>grpDBExtend.ui</file> <file>grpDBExtend.ui</file>
<file>images/zint.png</file> <file>images/zint.png</file>
<file>grpHX.ui</file>
</qresource> </qresource>
</RCC> </RCC>