Download Latest Version quexf-1.21.0.zip (3.7 MB)
Email in envelope

Get an email when there's a new version of queXF

Home / quexf / quexf-1.19.0
Name Modified Size InfoDownloads / Week
Parent folder
README 2017-03-20 22.5 kB
quexf-1.19.0.zip 2017-03-20 3.7 MB
Totals: 2 Items   3.7 MB 0
queXS 1.19.0 - Changes since 1.18.2

*New feature: Refer to supervisor function
*New feature: Review of results overlay function
*New feature: Web based upload function

*Directory changes required:

mkdir scans
chown www-data:www-data scans
Use .htaccess to protect the uploads and scans directory

Example .htaccess file:
order deny,allow
deny from all

*Database changes required:

CREATE TABLE IF NOT EXISTS `supervisorquestionnaire` (
  `vid` smallint(5) unsigned NOT NULL,
  `qid` int(10) unsigned NOT NULL,
  PRIMARY KEY (`vid`,`qid`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;

queXF 1.18.2 - Changes since 1.18.1

*Added support for PHP 7 and MySQL 5.7
*Fixed bug: Can't search by Varname

*Database changes required (only if support for Mysql 5.7 required):

ALTER TABLE boxgroupstype MODIFY COLUMN sortorder INT(11) NOT NULL DEFAULT '1';

queXF 1.18.1 - Changes since 1.18.0

*New feature: Allow for gaps in boxes due to dithering (default width is 3 pixels)
*New feature: Add filename to output
*New feature: Import images as grayscale to avoid Ghostscripts dithering 
*New feature: New configuration item IMAGE_THRESHOLD to determine cutoff to monochrome
*New feature: Allow for barcode/OCR fields to be verified

*Fixed bug: Set default output width of text field to 1024
*Fixed bug: Update variable width automatically when editing labels
*Fixed bug: Update box detection to handle minimum width better 
*Fixed bug: Add UTF-8 encoding for correct translations

*Updated translations - thank you for contributing!

queXF 1.18.0 - Changes since 1.17.0

*New Feature: Don't use manual page setup by default as doesn't handle page scaling
*New Feature: Variable labelling when banding

*Fixed Bug: lp:1475507 Manual page setup doesn't take into account scaling of scanned document
*Fixed Bug: lp:1392161 Page setup not automatically populated on form import
*Fixed Bug: Multiple choice output of variable labels to PSPP/SPSS 
*Fixed Bug: Better handle barcodes read as text
*Fixed Bug: Missing php tag

*Updated translations: Thank you for the recent Russian translation!

*Database changes required:

ALTER TABLE `pages` ADD `usepagesetup` TINYINT( 1 ) NOT NULL DEFAULT '0' AFTER `BR_HORI_BRY`;

queXF 1.17.0 - Changes since 1.16.0

*New Feature: Update banding to allow for the merging of box groups (select over existing boxgroups to merge) and the creation of free text boxes on empty space
*New Feature: DELETE_ON_VERIFICATION will delete system generated data on verification to keep the database lean
*New Feature: Box edge detection as well as corner edge detection
*New Feature: OCR_ENABLED can be set to allow for form OCR using tesseract (can use as page identifiers or just to read printed text)
*New Feature: Secondary position for a form barcode can be defined in the config file

*Fixed Bug: Give error message if GS 9.10 installed which has bug - Added reference to bug lp:1328917 in testconfig
*Fixed Bug: ICR Improvements (Thanks to Damien Zammit) - Updated detection algorithm -  Reduce narrowness in aspect ratio when thinning
*Fixed Bug: lp:1386971 ICR reject or reassign an image when manual training
*Fixed Bug: ICR - Selecting all images at once exhausts memory
*Fixed Bug: Image not displaying when zoomed and not in database
*Fixed Bug: lp:1388658 Training ICR includes unverified images
*Fixed Bug: Replace short tags with full php tags

*Database changes required:

ALTER TABLE `pages` ADD `VERT_WIDTH_BOX` INT NOT NULL DEFAULT '54',
ADD `HORI_WIDTH_BOX` INT NOT NULL DEFAULT '54';


queXF 1.16.0 - Changes since 1.15.0

*New Feature: Verification - replaced GET to submit with POST and autofocus to assign button for faster form submission
*New Feature: Allow for images from scanned forms to be stored as files instead of in the database
*New Feature: Don't save NULL/empty values in database to save space

*Fixed Bug: Form templates listed in ascending order so newer forms harder to access - reversed
*Fixed Bug: Long text fields not verifying
*Fixed Bug: Database structure inefficent 

*Filesystem changes required:

Create a new directory called "images" that the web server process has write access to

*Database changes required:

ALTER TABLE `boxes` CHANGE `bid` `bid` INT UNSIGNED NOT NULL AUTO_INCREMENT ,
CHANGE `pid` `pid` INT UNSIGNED NOT NULL ,
CHANGE `bgid` `bgid` INT UNSIGNED NOT NULL;

ALTER TABLE `boxgroupstype` CHANGE `bgid` `bgid` INT UNSIGNED NOT NULL AUTO_INCREMENT ,
CHANGE `btid` `btid` TINYINT UNSIGNED NOT NULL ,
CHANGE `width` `width` INT UNSIGNED NOT NULL ,
CHANGE `pid` `pid` INT UNSIGNED NOT NULL ,
CHANGE `sid` `sid` INT UNSIGNED NULL DEFAULT NULL ;

ALTER TABLE `boxgrouptypes` CHANGE `btid` `btid` TINYINT UNSIGNED NOT NULL ;

ALTER TABLE `clientquestionnaire` CHANGE `cid` `cid` INT UNSIGNED NOT NULL ,
CHANGE `qid` `qid` INT UNSIGNED NOT NULL ;

ALTER TABLE `clients` CHANGE `cid` `cid` INT UNSIGNED NOT NULL AUTO_INCREMENT ;

ALTER TABLE `formboxes` CHANGE `bid` `bid` INT UNSIGNED NOT NULL ,
CHANGE `fid` `fid` INT UNSIGNED NOT NULL ,
CHANGE `filled` `filled` FLOAT NOT NULL ;

DELETE FROM `formboxverifychar` WHERE val IS NULL or val = ' ' or val = '';

DELETE FROM `formboxverifytext` WHERE val IS NULL or val = ' ' or val = '';

ALTER TABLE `formboxverifychar` CHANGE `vid` `vid` SMALLINT UNSIGNED NOT NULL ,
CHANGE `bid` `bid` INT UNSIGNED NOT NULL ,
CHANGE `fid` `fid` INT UNSIGNED NOT NULL;

ALTER TABLE `formboxverifychar` DROP PRIMARY KEY;

ALTER TABLE `formboxverifychar` ADD `fbvcid` BIGINT UNSIGNED NOT NULL AUTO_INCREMENT PRIMARY KEY FIRST ;

ALTER TABLE `formboxverifychar` ADD INDEX ( `bid` );

ALTER TABLE `formboxverifychar` ADD INDEX ( `fid` );

ALTER TABLE `formboxverifychar` ADD INDEX ( `vid` );

ALTER TABLE `formboxverifytext` CHANGE `vid` `vid` SMALLINT UNSIGNED NOT NULL ,
CHANGE `bid` `bid` INT UNSIGNED NOT NULL ,
CHANGE `fid` `fid` INT UNSIGNED NOT NULL ;

ALTER TABLE `formboxverifytext` DROP PRIMARY KEY;

ALTER TABLE `formboxverifytext` ADD `fbvtid` BIGINT UNSIGNED NOT NULL AUTO_INCREMENT PRIMARY KEY FIRST ;

ALTER TABLE `formboxverifytext` ADD INDEX ( `bid` );

ALTER TABLE `formboxverifytext` ADD INDEX ( `fid` );

ALTER TABLE `formboxverifytext` ADD INDEX ( `vid` );

ALTER TABLE `formpagenote` CHANGE `fpnid` `fpnid` INT UNSIGNED NOT NULL AUTO_INCREMENT ,
CHANGE `fid` `fid` INT UNSIGNED NOT NULL ,
CHANGE `pid` `pid` INT UNSIGNED NOT NULL ,
CHANGE `vid` `vid` SMALLINT UNSIGNED NOT NULL ;

ALTER TABLE `formpages` CHANGE `fid` `fid` INT UNSIGNED NOT NULL ,
CHANGE `pid` `pid` INT UNSIGNED NOT NULL ,
CHANGE `offx` `offx` SMALLINT NULL DEFAULT NULL COMMENT 'Offset X value',
CHANGE `offy` `offy` SMALLINT NULL DEFAULT NULL COMMENT 'Offset Y value',
CHANGE `costheta` `costheta` FLOAT NULL DEFAULT NULL ,
CHANGE `sintheta` `sintheta` FLOAT NULL DEFAULT NULL ,
CHANGE `scalex` `scalex` FLOAT NULL DEFAULT NULL ,
CHANGE `scaley` `scaley` FLOAT NULL DEFAULT NULL ,
CHANGE `centroidx` `centroidx` FLOAT NULL DEFAULT NULL ,
CHANGE `centroidy` `centroidy` FLOAT NULL DEFAULT NULL ,
CHANGE `width` `width` SMALLINT UNSIGNED NOT NULL DEFAULT '0',
CHANGE `height` `height` SMALLINT UNSIGNED NOT NULL DEFAULT '0';

ALTER TABLE `formpages` DROP PRIMARY KEY;

ALTER TABLE `formpages` ADD `fpid` INT UNSIGNED NOT NULL AUTO_INCREMENT PRIMARY KEY FIRST ;

ALTER TABLE `formpages` ADD UNIQUE (
`fid` ,
`pid`
);

ALTER TABLE `forms` CHANGE `fid` `fid` INT UNSIGNED NOT NULL AUTO_INCREMENT ,
CHANGE `qid` `qid` INT UNSIGNED NOT NULL ,
CHANGE `pfid` `pfid` INT UNSIGNED NULL DEFAULT NULL ,
CHANGE `assigned_vid` `assigned_vid` SMALLINT UNSIGNED NULL DEFAULT NULL ,
CHANGE `done` `done` TINYINT( 1 ) UNSIGNED NOT NULL DEFAULT '0',
CHANGE `rpc_id` `rpc_id` INT UNSIGNED NULL DEFAULT NULL ;

ALTER TABLE `forms` ADD `assigned` DATETIME NULL ,
ADD `completed` DATETIME NULL ;

ALTER TABLE `missingpages` CHANGE `mpid` `mpid` INT UNSIGNED NOT NULL AUTO_INCREMENT ,
CHANGE `fid` `fid` INT UNSIGNED NOT NULL ;

ALTER TABLE `ocrkb` CHANGE `kb` `kb` INT UNSIGNED NOT NULL AUTO_INCREMENT ;

ALTER TABLE `ocrkbboxgroup` CHANGE `btid` `btid` TINYINT UNSIGNED NOT NULL ,
CHANGE `kb` `kb` INT UNSIGNED NOT NULL ,
CHANGE `qid` `qid` INT UNSIGNED NOT NULL ;

ALTER TABLE `ocrkbdata` CHANGE `kb` `kb` INT UNSIGNED NOT NULL ;

ALTER TABLE `ocrprocess` CHANGE `fid` `fid` INT UNSIGNED NOT NULL ,
CHANGE `bid` `bid` INT UNSIGNED NOT NULL ,
CHANGE `vid` `vid` SMALLINT UNSIGNED NOT NULL ,
CHANGE `kb` `kb` INT UNSIGNED NOT NULL ;

ALTER TABLE `ocrtrain` CHANGE `ocrtid` `ocrtid` INT UNSIGNED NOT NULL AUTO_INCREMENT ,
CHANGE `kb` `kb` INT UNSIGNED NOT NULL DEFAULT '1',
CHANGE `fid` `fid` INT UNSIGNED NOT NULL ,
CHANGE `vid` `vid` SMALLINT UNSIGNED NOT NULL ,
CHANGE `bid` `bid` INT UNSIGNED NOT NULL ;

ALTER TABLE `pages` DROP `pidentifierbgid`;

ALTER TABLE `pages` CHANGE `pid` `pid` INT UNSIGNED NOT NULL AUTO_INCREMENT ,
CHANGE `qid` `qid` INT UNSIGNED NOT NULL ,
CHANGE `rotation` `rotation` FLOAT NOT NULL DEFAULT '0' COMMENT 'rotation of image in radians';

ALTER TABLE `process` CHANGE `process_id` `process_id` INT UNSIGNED NOT NULL AUTO_INCREMENT ,
CHANGE `type` `type` TINYINT UNSIGNED NOT NULL DEFAULT '1';

ALTER TABLE `process` DROP `data`;

ALTER TABLE `processforms` CHANGE `pfid` `pfid` INT UNSIGNED NOT NULL AUTO_INCREMENT ;

ALTER TABLE `process_log` CHANGE `process_log_id` `process_log_id` INT UNSIGNED NOT NULL AUTO_INCREMENT ,
CHANGE `process_id` `process_id` INT UNSIGNED NOT NULL ;

ALTER TABLE `questionnaires` CHANGE `qid` `qid` INT UNSIGNED NOT NULL AUTO_INCREMENT ;

ALTER TABLE `sections` CHANGE `sid` `sid` INT UNSIGNED NOT NULL AUTO_INCREMENT ,
CHANGE `qid` `qid` INT UNSIGNED NOT NULL ;

ALTER TABLE `verifierquestionnaire` CHANGE `vid` `vid` SMALLINT UNSIGNED NOT NULL ,
CHANGE `qid` `qid` INT UNSIGNED NOT NULL ;

ALTER TABLE `verifiers` CHANGE `vid` `vid` SMALLINT UNSIGNED NOT NULL AUTO_INCREMENT ,
CHANGE `currentfid` `currentfid` INT UNSIGNED NULL DEFAULT NULL ;

UPDATE `forms` as f, worklog as w
SET f.assigned = w.assigned, f.completed = w.completed
WHERE f.fid = w.fid;

DROP TABLE `worklog` ;

queXF 1.15.0 - Changes since 1.14.0

*Fixed Bug: lp:1316861 Duplicate forms can not be easily deleted
*New feature: Added single choice automatic verification

queXF 1.14.0 - Changes since queXF 1.13.6

*New Feature: Page edges detection validated and corrected if in error see: https://blueprints.launchpad.net/quexf/+spec/page-alignment-improvements
*Added DEBUG definition for additional output

queXF 1.13.6 - Changes since queXF 1.13.5

*Fixed Bug: lp:1248647 - problem with temp dir that includes spaces
*New feature: Added "Accept page" function to accept what is currently on this page without verifiying everything one by one
*Translations: Updated from Launchpad. Thanks to everyone who contributed!

queXF 1.13.5 - Changes since queXF 1.13.4

*New feature: Added remain to verify status by questionnaire
*New feature: Patch from John Milner to better handle dithered barcodes
*New feature: Added a CSV output where named fields are merged (CSV Merged)
*New feature: Added junk detection to barcode to improve recognition
*Fixed Bug: Verifer using GET to submit instead of POST
*Fixed Bug: Move default corner edges to 10 pixels from edge
*Fixed Bug: Allow importing of files with a space in the filename
*Fixed Bug: Manual ICR training displays images randomly on the page
*Fixed Bug: Listing failed files uses GET instead of POST and goes to successful files on submission
*Fixed Bug: Pagetest causing error at image boundary
*Fixed Bug: Reference to non existent image in CSS
*Fixed Bug: Content length causing download problems on some setups
*Fixed Bug: Error in CSV output for labelled Multiple choice questions (always returned as selected) 
*Fixed Bug: Missing XHTML header in modifybox.php
*Translations: Updated from Launchpad - Thank you again!

queXF 1.13.4 - Changes since queXF 1.13.3

*New feature: Can edit/add values and labels to boxes by mousing over them when banding
*Fixed Bug: Missing pages not completely processed
*Fixed Bug: Banding file not importing where no sections defined
*Fixed Bug: Output to PSPP messy and variable names can be non unique
*Fixed Bug: Page width selection can go over edge of page by 1 pixel causing notices/errors
*Translations: Updated from Launchpad - Thank you (especially to the Spanish translators)

queXF 1.13.3 - Changes since queXF 1.13.2

*New feature: Page compatability test to see if your form is compatible with queXF (also shows up if importing a new form fails)
*Fixed Bug: Banding information remained in database when form deleted
*Fixed Bug: Labels/values of 0 ignored/incorrecty replaced in output
*Translations: Updated translations from Launchpad and added build/move script

queXF 1.13.2 - Changes since queXF 1.13.1

*New feature: Use PAGE_GUIDE_X_PORTION and PAGE_GUIDE_Y_PORTION instead of defining bounding boxes for each corner line
*Fixed Bug: Data not downloading properly on some browsers - Removed content length from header

queXF 1.13.1 - Changes since queXF 1.13.0

*New feature: Added "Pages missing from scan" functions to allow for forms with pages missing to be rescanned
*New feature: Added config directive VERIFY_WITH_MISSING_PAGES (default: false) so forms with missing pages won't be assigned to be verified by default
*New feature: Added example ICR databases
*Fixed Bug: Renamed missing pages to "undetected pages" 
*Fixed Bug: Displays page properly when page is missing from scan

queXF 1.13.0 - Changes since queXF 1.12.2

*New feature: Automatically update queXS Limesurvey database with queXF form when verified (allow for a single dataset of data collected via paper, the web and CATI)
*Fixed Bug: Scale and rotation did not correctly handle case where the scale was exactly 0 and rotation exactly 0
*Fixed bug: CSV output from text/numeric (not long text) elements were ignoring internal spacing
*Fixed bug: full text elements were not being removed when reverifying a form
*Fixed bug: Fixed width output updated to handle where code width is greater than the string length of the number of categories
*Fixed bug: PSPP output updated to fix where variables start with a number (append a V) and to handle where category variables are strings instead of numeric

Database changes:

ALTER TABLE `questionnaires` ADD `rpc_server_url` TEXT NULL COMMENT 'XML RPC server to send verified data to';
ALTER TABLE `questionnaires` ADD `rpc_username` TEXT NULL , ADD `rpc_password` TEXT NULL ;
ALTER TABLE `questionnaires` ADD `limesurvey_sid` INT( 11 ) NULL ;
ALTER TABLE `forms` ADD `rpc_id` INT NULL ;
DROP TABLE `differences` ;

queXF 1.12.2 - Changes since queXF 1.12.1

*Fixed Bug: Don't list box groups that have no boxes attached to them when verifying as it breaks it
*Fixed Bug: Removed <p> tag from messages as making log look too big
*Fixed Bug: divide by zero warning caused when formpages doesn't have a width set
*Fixed Bug: verification of text fields with apostrophe would not insert in to database

queXF 1.12.1 - Changes since queXF 1.12.0

*Fixed Bug: Global $n8 causing ICR thinzs_np function to fail when guessing characters

queXF 1.12.0 - Changes since queXF 1.11.3

*New feature: Enabled ICR (Intelligent Character Recognition) and added training features (config directive: ICR_ENABLED)
*New feature: Allow the import and export of ICR Knowledge Bases (KB) for sharing
*New feature: Process log is done on line by line datestamped basis instead of text update
*New feature: Added output of corner edge detection area elements to queXF banding XML
*Deprecated: Removed old OCR stuff with Tesseract

Database changes:

ALTER TABLE `formboxverifychar` CHANGE `val` `val` CHAR( 1 ) CHARACTER SET utf8 COLLATE utf8_bin NULL DEFAULT NULL;
ALTER TABLE `formboxverifychar` ADD INDEX ( `val` );
ALTER TABLE `ocrtrain` ADD `kb` INT( 11 ) NOT NULL DEFAULT '1' AFTER `ocrtid` ;
ALTER TABLE `process` ADD `type` INT( 11 ) NOT NULL DEFAULT '1' AFTER `process_id`;

CREATE TABLE IF NOT EXISTS `ocrkbboxgroup` (
  `btid` int(11) NOT NULL,
  `kb` int(11) NOT NULL,
  `qid` int(11) NOT NULL,
  PRIMARY KEY  (`btid`,`kb`,`qid`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1;

CREATE TABLE IF NOT EXISTS `ocrprocess` (
  `ocrprocessid` int(11) NOT NULL auto_increment,
  `fid` int(11) NOT NULL,
  `bid` int(11) NOT NULL,
  `vid` int(11) NOT NULL,
  `val` char(1) character set utf8 collate utf8_bin NOT NULL,
  `kb` int(11) NOT NULL,
  PRIMARY KEY  (`ocrprocessid`),
  KEY `kb` (`kb`)
) ENGINE=InnoDB  DEFAULT CHARSET=latin1;

CREATE TABLE IF NOT EXISTS `process_log` (
  `process_log_id` bigint(20) NOT NULL auto_increment,
  `process_id` bigint(20) NOT NULL,
  `datetime` datetime NOT NULL,
  `data` text collate utf8_unicode_ci NOT NULL,
  PRIMARY KEY  (`process_log_id`),
  KEY `process_id` (`process_id`)
) ENGINE=InnoDB  DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;


queXF 1.11.3 - Changes since queXF 1.11.2

*Fixed Bug: testconfig failing where options are given to GS
*Fixed Bug: duplicate barcode data output if not first element

queXF 1.11.2 - Changes since queXF 1.11.1

*Fixed Bug: CSV output where barcode/longtext not outputting if first element in data
*Fixed Bug: testconfig script did not appear in index and failed as not referencing lang.inc.php
*New feature: testconfig now default default page and tests for directory based authentication and common settings

queXF 1.11.1 - Changes since queXF 1.11.0

*Fixed Bug: Verification boxes appear in wrong spot when original page form size differs to scan

queXF 1.11.0 - Changes since queXF 1.10.2

*Fixed Bug: Cannot verify when barcode selected on page
*Fixed Bug: Barcode tolerance is set to as close as possible

*Added new feature: Page setup now on a form by form basis - only requirement
is that the area of a page where a barcode belongs is specified 
(see BARCODE_TLX_PORTION, BARCODE_TLY_PORTION..etc), and that the
barcode length (see BARCODE_LENGTH_PID) is specified.

Once queXF detects the barcode it uses the stored page location details to
determine the page edges.

Page setup is now part of the form importation process.

Here are the changes required to the database from the previous version:

ALTER TABLE `formpages` ADD `width` INT( 11 ) NOT NULL DEFAULT '0',
ADD `height` INT( 11 ) NOT NULL DEFAULT '0';

ALTER TABLE `pages` ADD `width` INT( 11 ) NOT NULL DEFAULT '2480',
ADD `height` INT( 11 ) NOT NULL DEFAULT '3508',
ADD `TL_VERT_TLX` INT( 11 ) NOT NULL DEFAULT '54',
ADD `TL_VERT_TLY` INT( 11 ) NOT NULL DEFAULT '90',
ADD `TL_VERT_BRX` INT( 11 ) NOT NULL DEFAULT '390',
ADD `TL_VERT_BRY` INT( 11 ) NOT NULL DEFAULT '603',
ADD `TL_HORI_TLX` INT( 11 ) NOT NULL DEFAULT '54',
ADD `TL_HORI_TLY` INT( 11 ) NOT NULL DEFAULT '60',
ADD `TL_HORI_BRX` INT( 11 ) NOT NULL DEFAULT '669',
ADD `TL_HORI_BRY` INT( 11 ) NOT NULL DEFAULT '384',
ADD `TR_VERT_TLX` INT( 11 ) NOT NULL DEFAULT '2010',
ADD `TR_VERT_TLY` INT( 11 ) NOT NULL DEFAULT '81',
ADD `TR_VERT_BRX` INT( 11 ) NOT NULL DEFAULT '2433',
ADD `TR_VERT_BRY` INT( 11 ) NOT NULL DEFAULT '639',
ADD `TR_HORI_TLX` INT( 11 ) NOT NULL DEFAULT '1770',
ADD `TR_HORI_TLY` INT( 11 ) NOT NULL DEFAULT '66',
ADD `TR_HORI_BRX` INT( 11 ) NOT NULL DEFAULT '2433',
ADD `TR_HORI_BRY` INT( 11 ) NOT NULL DEFAULT '387',
ADD `BL_VERT_TLX` INT( 11 ) NOT NULL DEFAULT '54',
ADD `BL_VERT_TLY` INT( 11 ) NOT NULL DEFAULT '2922',
ADD `BL_VERT_BRX` INT( 11 ) NOT NULL DEFAULT '432',
ADD `BL_VERT_BRY` INT( 11 ) NOT NULL DEFAULT '3402',
ADD `BL_HORI_TLX` INT( 11 ) NOT NULL DEFAULT '54',
ADD `BL_HORI_TLY` INT( 11 ) NOT NULL DEFAULT '3105',
ADD `BL_HORI_BRX` INT( 11 ) NOT NULL DEFAULT '672',
ADD `BL_HORI_BRY` INT( 11 ) NOT NULL DEFAULT '3405',
ADD `BR_VERT_TLX` INT( 11 ) NOT NULL DEFAULT '2028',
ADD `BR_VERT_TLY` INT( 11 ) NOT NULL DEFAULT '2901',
ADD `BR_VERT_BRX` INT( 11 ) NOT NULL DEFAULT '2433',
ADD `BR_VERT_BRY` INT( 11 ) NOT NULL DEFAULT '3381',
ADD `BR_HORI_TLX` INT( 11 ) NOT NULL DEFAULT '1752',
ADD `BR_HORI_TLY` INT( 11 ) NOT NULL DEFAULT '3084',
ADD `BR_HORI_BRX` INT( 11 ) NOT NULL DEFAULT '2433',
ADD `BR_HORI_BRY` INT( 11 ) NOT NULL DEFAULT '3384',
ADD `VERT_WIDTH` INT( 11 ) NOT NULL DEFAULT '6',
ADD `HORI_WIDTH` INT( 11 ) NOT NULL DEFAULT '6';


queXF 1.10.2 - changes since 1.10.1

*Updated translations from Launchpad. Thank you for your translations!
*Fixed Bug: MISSING_PAGE_ASSIGN directive was being ignored
*Fixed Bug: Storing large sessions in the database caused performance issues so disabled
*Fixed bug: Remove unnecessary reference to boxgroups
*Fixed bug: Set default width for longtext to 1024
*Compatibility fix: Removed javascript links from admin index
*Updated to php-gettext 1.0.11
*Page setup feature: Added drawing of detected cornerlines in blue and barcode number in barcode box for validation

queXF 1.10.1 - Changes since 1.10.0

Fixed bug: Error when creating new questionnaire without banding XML

queXF 1.10.0 - Changes since 1.9.1:

queXF 1.10.0 and the simultaneous release of queXML 1.3.0 streamlines the paper questionnaire creation process by being able to produce a fully banded questionnaire from queXML. Once the PDF and associated banding XML file is imported to queXF, it is possible to begin scanning completed forms immediately, and export data with full question and value labelling from the original queXML file.

In addition, queXF 1.10.0 allows for the export of unverified data. This may be useful when your settings allow for very accurate OMR and also to view preliminary results before operator verification is complete.

In the backend - queXF 1.10.0 removes the need for using database views and some redundant tables.

Summary of SVN Log:

*Updated translation file and translations from Launchpad
*Added ability to download data that is not verified (just imported and OMR/OCR'ed)
*Updated database schema - removed use of views
*Added new test documents including banding XML document
*Updated default settings to allow for wider selections on A4 pages by default
*Updated default box colour to blue which assisted with colour blindness
*Added ability to import banding XML while importing a PDF file
*Removed references to boxgroups table which was redundant
*Data output now includes labels and sections/etc if banding XML is used
*BUG fix: Gave default value of 0 for 'sheets' column in questionnaires table
*BUG fix: Will not create a new questionnaire if cannot detect all page edges
*BUG fix: Will not apply transforms if not all edges detected
*BUG fix: Made sure boxes are processed in sortorder (javascript edit)
Source: README, updated 2017-03-20