Now with Grid Matrix!

This commit is contained in:
hooper114 2009-10-21 09:08:44 +00:00
parent de7219126a
commit a55b21704e
8 changed files with 2202 additions and 1055 deletions

View File

@ -19,7 +19,6 @@
*/ */
unsigned long int gb2312_lookup[] = { unsigned long int gb2312_lookup[] = {
{
0x00A4, 0xA1E8, 0x00A4, 0xA1E8,
0x00A7, 0xA1EC, 0x00A7, 0xA1EC,
0x00A8, 0xA1A7, 0x00A8, 0xA1A7,
@ -7465,4 +7464,4 @@ unsigned long int gb2312_lookup[] = {
0xFFE1, 0xA1EA, 0xFFE1, 0xA1EA,
0xFFE3, 0xA3FE, 0xFFE3, 0xA3FE,
0xFFE5, 0xA3A4 0xFFE5, 0xA3A4
} };

File diff suppressed because it is too large Load Diff

View File

@ -16,4 +16,144 @@
You should have received a copy of the GNU General Public License along You should have received a copy of the GNU General Public License along
with this program; if not, write to the Free Software Foundation, Inc., with this program; if not, write to the Free Software Foundation, Inc.,
51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
*/ */
#define GM_NUMBER 1
#define GM_LOWER 2
#define GM_UPPER 3
#define GM_MIXED 4
#define GM_CONTROL 5
#define GM_BYTE 6
#define GM_CHINESE 7
#define EUROPIUM "0123456789ABCDEFGHIJKLMOPRSTUVWXYZabcdefghijklmnopqrstuvwxyz "
static char shift_set[] = {
/* From Table 7 - Encoding of control characters */
0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, /* NULL -> SI */
0x10, 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17, 0x18, 0x19, 0x1a, 0x1b, 0x1c, 0x1d, 0x1e, 0x1f, /* DLE -> US */
'!', '"', '#', '$', '%', '&', '\'', '(', ')', '*', '+', ',', '-', '.', '/', ':',
';', '<', '=', '>', '?', '@', '[', '\\', ']', '^', '_', '`', '{', '|', '}', '~'
};
static int gm_recommend_cw[] = { 9, 30, 59, 114, 170, 237, 315, 405, 506, 618, 741, 875, 1021 };
static int gm_total_cw[] = { 18, 50, 98, 162, 242, 338, 450, 578, 722, 882, 1058, 1250, 1458 };
static int gm_data_codewords[] = {
0, 15, 13, 11, 9,
45, 40, 35, 30, 25,
89, 79, 69, 59, 49,
146, 130, 114, 98, 81,
218, 194, 170, 146, 121,
305, 271, 237, 203, 169,
405, 360, 315, 270, 225,
521, 463, 405, 347, 289,
650, 578, 506, 434, 361,
794, 706, 618, 530, 441,
953, 847, 741, 635, 529,
1125, 1000, 875, 750, 625,
1313, 1167, 1021, 875, 729
};
static int gm_n1[] = { 18, 50, 98, 81, 121, 113, 113, 116, 121, 126, 118, 125, 122 };
static int gm_b1[] = { 1, 1, 1, 2, 2, 2, 2, 3, 2, 7, 5, 10, 6 };
static int gm_b2[] = { 0, 0, 0, 0, 0, 1, 2, 2, 4, 0, 4, 0, 6 };
static int gm_ebeb[] = {
/* E1 B3 E2 B4 */
0, 0, 0, 0, // version 1
3, 1, 0, 0,
5, 1, 0, 0,
7, 1, 0, 0,
9, 1, 0, 0,
5, 1, 0, 0, // version 2
10, 1, 0, 0,
15, 1, 0, 0,
20, 1, 0, 0,
25, 1, 0, 0,
9, 1, 0, 0, // version 3
19, 1, 0, 0,
29, 1, 0, 0,
39, 1, 0, 0,
49, 1, 0, 0,
8, 2, 0, 0, // version 4
16, 2, 0, 0,
24, 2, 0, 0,
32, 2, 0, 0,
41, 1, 10, 1,
12, 2, 0, 0, // version 5
24, 2, 0, 0,
36, 2, 0, 0,
48, 2, 0, 0,
61, 1, 60, 1,
11, 3, 0, 0, // version 6
23, 1, 22, 2,
34, 2, 33, 1,
45, 3, 0, 0,
57, 1, 56, 2,
12, 1, 11, 3, // version 7
23, 2, 22, 2,
34, 3, 33, 1,
45, 4, 0, 0,
57, 1, 56, 3,
12, 2, 11, 3, // version 8
23, 5, 0, 0,
35, 3, 34, 2,
47, 1, 46, 4,
58, 4, 57, 1,
12, 6, 0, 0, // version 9
24, 6, 0, 0,
36, 6, 0, 0,
48, 6, 0, 0,
61, 1, 60, 5,
13, 4, 12, 3, // version 10
26, 1, 25, 6,
38, 5, 37, 2,
51, 2, 50, 5,
63, 7, 0, 0,
12, 6, 11, 3, // version 11
24, 4, 23, 5,
36, 2, 35, 7,
47, 9, 0, 0,
59, 7, 58, 2,
13, 5, 12, 5, // version 12
25, 10, 0, 0,
38, 5, 37, 5,
50, 10, 0, 0,
63, 5, 62, 5,
13, 1, 12, 11, //version 13
25, 3, 24, 9,
37, 5, 36, 7,
49, 7, 48, 5,
61, 9, 60, 3
};
static int gm_macro_matrix[] = {
728,625,626,627,628,629,630,631,632,633,634,635,636,637,638,639,640,641,642,643,644,645,646,647,648,649,650,
727,624,529,530,531,532,533,534,535,536,537,538,539,540,541,542,543,544,545,546,547,548,549,550,551,552,651,
726,623,528,441,442,443,444,445,446,447,448,449,450,451,452,453,454,455,456,457,458,459,460,461,462,553,652,
725,622,527,440,361,362,363,364,365,366,367,368,369,370,371,372,373,374,375,376,377,378,379,380,463,554,653,
724,621,526,439,360,289,290,291,292,293,294,295,296,297,298,299,300,301,302,303,304,305,306,381,464,555,654,
723,620,525,438,359,288,225,226,227,228,229,230,231,232,233,234,235,236,237,238,239,240,307,382,465,556,655,
722,619,524,437,358,287,224,169,170,171,172,173,174,175,176,177,178,179,180,181,182,241,308,383,466,557,656,
721,618,523,436,357,286,223,168,121,122,123,124,125,126,127,128,129,130,131,132,183,242,309,384,467,558,657,
720,617,522,435,356,285,222,167,120,81,82,83,84,85,86,87,88,89,90,133,184,243,310,385,468,559,658,
719,616,521,434,355,284,221,166,119,80,49,50,51,52,53,54,55,56,91,134,185,244,311,386,469,560,659,
718,615,520,433,354,283,220,165,118,79,48,25,26,27,28,29,30,57,92,135,186,245,312,387,470,561,660,
717,614,519,432,353,282,219,164,117,78,47,24,9,10,11,12,31,58,93,136,187,246,313,388,471,562,661,
716,613,518,431,352,281,218,163,116,77,46,23,8,1,2,13,32,59,94,137,188,247,314,389,472,563,662,
715,612,517,430,351,280,217,162,115,76,45,22,7,0,3,14,33,60,95,138,189,248,315,390,473,564,663,
714,611,516,429,350,279,216,161,114,75,44,21,6,5,4,15,34,61,96,139,190,249,316,391,474,565,664,
713,610,515,428,349,278,215,160,113,74,43,20,19,18,17,16,35,62,97,140,191,250,317,392,475,566,665,
712,609,514,427,348,277,214,159,112,73,42,41,40,39,38,37,36,63,98,141,192,251,318,393,476,567,666,
711,608,513,426,347,276,213,158,111,72,71,70,69,68,67,66,65,64,99,142,193,252,319,394,477,568,667,
710,607,512,425,346,275,212,157,110,109,108,107,106,105,104,103,102,101,100,143,194,253,320,395,478,569,668,
709,606,511,424,345,274,211,156,155,154,153,152,151,150,149,148,147,146,145,144,195,254,321,396,479,570,669,
708,605,510,423,344,273,210,209,208,207,206,205,204,203,202,201,200,199,198,197,196,255,322,397,480,571,670,
707,604,509,422,343,272,271,270,269,268,267,266,265,264,263,262,261,260,259,258,257,256,323,398,481,572,671,
706,603,508,421,342,341,340,339,338,337,336,335,334,333,332,331,330,329,328,327,326,325,324,399,482,573,672,
705,602,507,420,419,418,417,416,415,414,413,412,411,410,409,408,407,406,405,404,403,402,401,400,483,574,673,
704,601,506,505,504,503,502,501,500,499,498,497,496,495,494,493,492,491,490,489,488,487,486,485,484,575,674,
703,600,599,598,597,596,595,594,593,592,591,590,589,588,587,586,585,584,583,582,581,580,579,578,577,576,675,
702,701,700,699,698,697,696,695,694,693,692,691,690,689,688,687,686,685,684,683,682,681,680,679,678,677,676,
};

File diff suppressed because it is too large Load Diff

View File

@ -1,100 +1,103 @@
/* /*
Zint Barcode Generator - the open source barcode generator Zint Barcode Generator - the open source barcode generator
Copyright (C) 2009 Robin Stuart <robin@zint.org.uk> Copyright (C) 2009 Robin Stuart <robin@zint.org.uk>
This program is free software; you can redistribute it and/or modify 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 it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 3 of the License, or the Free Software Foundation; either version 3 of the License, or
(at your option) any later version. (at your option) any later version.
This program is distributed in the hope that it will be useful, This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details. GNU General Public License for more details.
You should have received a copy of the GNU General Public License along You should have received a copy of the GNU General Public License along
with this program; if not, write to the Free Software Foundation, Inc., with this program; if not, write to the Free Software Foundation, Inc.,
51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
*/ */
#include <QDebug> #include <QDebug>
#include <QFileDialog> #include <QFileDialog>
#include <QUiLoader> #include <QUiLoader>
#include <QStringList> #include <QStringList>
#include <QMessageBox> #include <QMessageBox>
#include "datawindow.h" #include "datawindow.h"
#include <stdio.h> #include <stdio.h>
DataWindow::DataWindow() DataWindow::DataWindow()
{ {
setupUi(this); setupUi(this);
connect(btnCancel, SIGNAL( clicked( bool )), SLOT(quit_now())); connect(btnCancel, SIGNAL( clicked( bool )), SLOT(quit_now()));
connect(btnReset, SIGNAL( clicked( bool )), SLOT(clear_data())); connect(btnReset, SIGNAL( clicked( bool )), SLOT(clear_data()));
connect(btnOK, SIGNAL( clicked( bool )), SLOT(okay())); connect(btnOK, SIGNAL( clicked( bool )), SLOT(okay()));
} }
DataWindow::DataWindow(QString input) DataWindow::DataWindow(QString input)
{ {
setupUi(this); setupUi(this);
txtDataInput->setPlainText(input); txtDataInput->setPlainText(input);
txtDataInput->moveCursor(QTextCursor::End, QTextCursor::MoveAnchor); txtDataInput->moveCursor(QTextCursor::End, QTextCursor::MoveAnchor);
connect(btnCancel, SIGNAL( clicked( bool )), SLOT(quit_now())); connect(btnCancel, SIGNAL( clicked( bool )), SLOT(quit_now()));
connect(btnReset, SIGNAL( clicked( bool )), SLOT(clear_data())); connect(btnReset, SIGNAL( clicked( bool )), SLOT(clear_data()));
connect(btnOK, SIGNAL( clicked( bool )), SLOT(okay())); connect(btnOK, SIGNAL( clicked( bool )), SLOT(okay()));
connect(btnFromFile, SIGNAL( clicked( bool )), SLOT(from_file())); connect(btnFromFile, SIGNAL( clicked( bool )), SLOT(from_file()));
} }
DataWindow::~DataWindow() DataWindow::~DataWindow()
{ {
} }
void DataWindow::quit_now() void DataWindow::quit_now()
{ {
Valid = 0; Valid = 0;
close(); close();
} }
void DataWindow::clear_data() void DataWindow::clear_data()
{ {
txtDataInput->clear(); txtDataInput->clear();
} }
void DataWindow::okay() void DataWindow::okay()
{ {
Valid = 1; Valid = 1;
DataOutput = txtDataInput->toPlainText(); DataOutput = txtDataInput->toPlainText();
close(); close();
} }
void DataWindow::from_file() void DataWindow::from_file()
{ {
QString fileName; //QString fileName;
QFileDialog fdialog; //QFileDialog fdialog;
QFile file; QFile file;
QString outstream;
char *c; //fdialog.setFileMode(QFileDialog::ExistingFile);
//
fdialog.setFileMode(QFileDialog::ExistingFile); //if(fdialog.exec()) {
// fileName = fdialog.selectedFiles().at(0);
if(fdialog.exec()) { //} else {
fileName = fdialog.selectedFiles().at(0); // return;
} else { //}
return;
} QString fileName = QFileDialog::getOpenFileName(this,
tr("Open File"),
file.setFileName(fileName); "./",
if(!file.open(QIODevice::ReadOnly)) { tr("All Files (*);;Text Files (*.txt)"));
QMessageBox::critical(this, tr("Open Error"), tr("Could not open selected file.")); if (fileName.isEmpty())
return; return;
}
file.setFileName(fileName);
while(file.getChar(c)) { if(!file.open(QIODevice::ReadOnly)) {
outstream += QChar(*c); QMessageBox::critical(this, tr("Open Error"), tr("Could not open selected file."));
} return;
}
txtDataInput->setPlainText(outstream);
file.close(); QByteArray outstream = file.readAll();
txtDataInput->setPlainText(QString(outstream));
file.close();
} }

View File

@ -31,17 +31,17 @@ MainWindow::MainWindow(QWidget* parent, Qt::WFlags fl)
{ {
char bstyle_text[][50] = { char bstyle_text[][50] = {
"Australia Post Standard Customer", "Australia Post Redirect Code",
"Australia Post Reply-Paid", "Australia Post Reply-Paid",
"Australia Post Routing Code", "Australia Post Routing Code",
"Australia Post Redirect Code", "Australia Post Standard Customer",
"Aztec Code", "Aztec Code (ISO 24778)",
"Aztec Runes", "Aztec Runes",
"Channel Code", "Channel Code",
"Codabar", "Codabar",
"Codablock-F", "Codablock-F",
"Code 11", "Code 11",
"Code 128", "Code 128 (ISO 15417)",
"Code 16k", "Code 16k",
"Code 2 of 5 Data Logic", "Code 2 of 5 Data Logic",
"Code 2 of 5 IATA", "Code 2 of 5 IATA",
@ -49,7 +49,7 @@ MainWindow::MainWindow(QWidget* parent, Qt::WFlags fl)
"Code 2 of 5 Interleaved", "Code 2 of 5 Interleaved",
"Code 2 of 5 Matrix", "Code 2 of 5 Matrix",
"Code 32 (Italian Pharmacode)", "Code 32 (Italian Pharmacode)",
"Code 39", "Code 39 (ISO 16388)",
"Code 39 Extended", "Code 39 Extended",
"Code 49", "Code 49",
"Code 93", "Code 93",
@ -60,37 +60,38 @@ MainWindow::MainWindow(QWidget* parent, Qt::WFlags fl)
"Databar Limited", "Databar Limited",
"Databar Stacked", "Databar Stacked",
"Databar Stacked Omnidirectional", "Databar Stacked Omnidirectional",
"Data Matrix", "Data Matrix (ISO 16022)",
"Deutsche Post Identcode", "Deutsche Post Identcode",
"Deutsche Post Leitcode", "Deutsche Post Leitcode",
"Dutch Post KIX", "Dutch Post KIX",
"EAN-14", "EAN-14",
"European Article Number (EAN)", "European Article Number (EAN)",
"FIM", "Facing Identification Mark (FIM)",
"Flattermarken", "Flattermarken",
"Grid Matrix",
"ITF-14", "ITF-14",
"International Standard Book Number (ISBN)", "International Standard Book Number (ISBN)",
"Japanese Postal Barcode", "Japanese Postal Barcode",
"Korean Postal Barcode", "Korean Postal Barcode",
"LOGMARS", "LOGMARS",
"Maxicode", "Maxicode (ISO 16023)",
"MicroPDF417", "MicroPDF417 (ISO 24728)",
"Micro QR Code", "Micro QR Code",
"MSI Plessey", "MSI Plessey",
"NVE-18", "NVE-18",
"PDF417", "PDF417 (ISO 15438)",
"Pharmacode", "Pharmacode",
"Pharmacode 2-track", "Pharmacode 2-track",
"Pharma Zentralnummer (PZN)", "Pharma Zentralnummer (PZN)",
"PLANET", "PLANET",
"Postnet", "Postnet",
"QR Code", "QR Code (ISO 18004)",
"Royal Mail 4-state Barcode", "Royal Mail 4-state Barcode",
"Telepen", "Telepen",
"Telepen Numeric", "Telepen Numeric",
"UK Plessey", "UK Plessey",
"UPC-A", "Universal Product Code (UPC-A)",
"UPC-E", "Universal Product Code (UPC-E)",
"USPS One Code" "USPS One Code"
}; };

View File

@ -38,10 +38,10 @@ class MainWindow : public QWidget, private Ui::mainWindow
public: public:
enum BarcodeTypes enum BarcodeTypes
{ {
AUSPOST =63, AUSREDIRECT =68,
AUSREPLY =66, AUSREPLY =66,
AUSROUTE =67, AUSROUTE =67,
AUSREDIRECT =68, AUSPOST =63,
AZTEC =92, AZTEC =92,
AZRUNE =128, AZRUNE =128,
CHANNEL =140, CHANNEL =140,
@ -75,6 +75,7 @@ public:
EANX =13, EANX =13,
FIM =49, FIM =49,
FLAT =28, FLAT =28,
GRIDMATRIX =142,
ITF14 =89, ITF14 =89,
ISBNX =69, ISBNX =69,
JAPANPOST =76, JAPANPOST =76,

View File

@ -1,192 +1,196 @@
/* /*
Zint Barcode Generator - the open source barcode generator Zint Barcode Generator - the open source barcode generator
Copyright (C) 2009 Robin Stuart <robin@zint.org.uk> Copyright (C) 2009 Robin Stuart <robin@zint.org.uk>
This program is free software; you can redistribute it and/or modify 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 it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 3 of the License, or the Free Software Foundation; either version 3 of the License, or
(at your option) any later version. (at your option) any later version.
This program is distributed in the hope that it will be useful, This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details. GNU General Public License for more details.
You should have received a copy of the GNU General Public License along You should have received a copy of the GNU General Public License along
with this program; if not, write to the Free Software Foundation, Inc., with this program; if not, write to the Free Software Foundation, Inc.,
51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
*/ */
#include <QDebug> #include <QDebug>
#include <QFile> #include <QFile>
#include <QUiLoader> #include <QUiLoader>
#include <QFileDialog> #include <QFileDialog>
#include <QMessageBox> #include <QMessageBox>
#include "sequencewindow.h" #include "sequencewindow.h"
#include "exportwindow.h" #include "exportwindow.h"
#include <stdio.h> #include <stdio.h>
SequenceWindow::SequenceWindow() SequenceWindow::SequenceWindow()
{ {
setupUi(this); setupUi(this);
QValidator *intvalid = new QIntValidator(this); QValidator *intvalid = new QIntValidator(this);
linStartVal->setValidator(intvalid); linStartVal->setValidator(intvalid);
linEndVal->setValidator(intvalid); linEndVal->setValidator(intvalid);
linIncVal->setValidator(intvalid); linIncVal->setValidator(intvalid);
connect(btnClose, SIGNAL( clicked( bool )), SLOT(quit_now())); connect(btnClose, SIGNAL( clicked( bool )), SLOT(quit_now()));
connect(btnReset, SIGNAL( clicked( bool )), SLOT(reset_preview())); connect(btnReset, SIGNAL( clicked( bool )), SLOT(reset_preview()));
connect(btnCreate, SIGNAL( clicked( bool )), SLOT(create_sequence())); connect(btnCreate, SIGNAL( clicked( bool )), SLOT(create_sequence()));
connect(txtPreview, SIGNAL( textChanged()), SLOT(check_generate())); connect(txtPreview, SIGNAL( textChanged()), SLOT(check_generate()));
connect(btnImport, SIGNAL( clicked( bool )), SLOT(import())); connect(btnImport, SIGNAL( clicked( bool )), SLOT(import()));
connect(btnExport, SIGNAL( clicked( bool )), SLOT(generate_sequence())); connect(btnExport, SIGNAL( clicked( bool )), SLOT(generate_sequence()));
} }
SequenceWindow::~SequenceWindow() SequenceWindow::~SequenceWindow()
{ {
} }
void SequenceWindow::quit_now() void SequenceWindow::quit_now()
{ {
close(); close();
} }
void SequenceWindow::reset_preview() void SequenceWindow::reset_preview()
{ {
txtPreview->clear(); txtPreview->clear();
} }
QString SequenceWindow::apply_format(QString raw_number) QString SequenceWindow::apply_format(QString raw_number)
{ {
QString adjusted, reversed; QString adjusted, reversed;
QString format; QString format;
int format_len, input_len, i, inpos; int format_len, input_len, i, inpos;
char format_char; char format_char;
QChar format_qchar; QChar format_qchar;
format = linFormat->text(); format = linFormat->text();
input_len = raw_number.length(); input_len = raw_number.length();
format_len = format.length(); format_len = format.length();
inpos = input_len; inpos = input_len;
for(i = format_len; i > 0; i--) { for(i = format_len; i > 0; i--) {
format_qchar = format[i - 1]; format_qchar = format[i - 1];
format_char = format_qchar.toAscii(); format_char = format_qchar.toAscii();
switch(format_char) { switch(format_char) {
case '#': case '#':
if (inpos > 0) { if (inpos > 0) {
adjusted += raw_number[inpos - 1]; adjusted += raw_number[inpos - 1];
inpos--; inpos--;
} else { } else {
adjusted += ' '; adjusted += ' ';
} }
break; break;
case '$': case '$':
if (inpos > 0) { if (inpos > 0) {
adjusted += raw_number[inpos - 1]; adjusted += raw_number[inpos - 1];
inpos--; inpos--;
} else { } else {
adjusted += '0'; adjusted += '0';
} }
break; break;
case '*': case '*':
if (inpos > 0) { if (inpos > 0) {
adjusted += raw_number[inpos - 1]; adjusted += raw_number[inpos - 1];
inpos--; inpos--;
} else { } else {
adjusted += '*'; adjusted += '*';
} }
break; break;
default: default:
adjusted += format_char; adjusted += format_char;
break; break;
} }
} }
for(i = format_len; i > 0; i--) { for(i = format_len; i > 0; i--) {
reversed += adjusted[i - 1]; reversed += adjusted[i - 1];
} }
return reversed; return reversed;
} }
void SequenceWindow::create_sequence() void SequenceWindow::create_sequence()
{ {
QString startval, endval, incval, part, outputtext; QString startval, endval, incval, part, outputtext;
int start, stop, step, i; int start, stop, step, i;
bool ok; bool ok;
startval = linStartVal->text(); startval = linStartVal->text();
endval = linEndVal->text(); endval = linEndVal->text();
incval = linIncVal->text(); incval = linIncVal->text();
start = startval.toInt(&ok, 10); start = startval.toInt(&ok, 10);
stop = endval.toInt(&ok, 10); stop = endval.toInt(&ok, 10);
step = incval.toInt(&ok, 10); step = incval.toInt(&ok, 10);
if((stop <= start) || (step <= 0)) { if((stop <= start) || (step <= 0)) {
QMessageBox::critical(this, tr("Sequence Error"), tr("One or more of the input values is incorrect.")); QMessageBox::critical(this, tr("Sequence Error"), tr("One or more of the input values is incorrect."));
return; return;
} }
for(i = start; i <= stop; i += step) { for(i = start; i <= stop; i += step) {
part = apply_format(QString::number(i, 10)); part = apply_format(QString::number(i, 10));
part += '\n'; part += '\n';
outputtext += part; outputtext += part;
} }
txtPreview->setPlainText(outputtext); txtPreview->setPlainText(outputtext);
} }
void SequenceWindow::check_generate() void SequenceWindow::check_generate()
{ {
QString preview_copy; QString preview_copy;
preview_copy = txtPreview->toPlainText(); preview_copy = txtPreview->toPlainText();
if(preview_copy.isEmpty()) { if(preview_copy.isEmpty()) {
btnExport->setEnabled(false); btnExport->setEnabled(false);
} else { } else {
btnExport->setEnabled(true); btnExport->setEnabled(true);
} }
} }
void SequenceWindow::import() void SequenceWindow::import()
{ {
QString fileName; //QString fileName;
QFileDialog fdialog; //QFileDialog fdialog;
QFile file; QFile file;
QString outstream; QString selectedFilter;
char *c;
//fdialog.setFileMode(QFileDialog::ExistingFile);
fdialog.setFileMode(QFileDialog::ExistingFile);
//if(fdialog.exec()) {
if(fdialog.exec()) { // fileName = fdialog.selectedFiles().at(0);
fileName = fdialog.selectedFiles().at(0); //} else {
} else { // return;
return; //}
}
QString fileName = QFileDialog::getOpenFileName(this,
file.setFileName(fileName); tr("Import File"),
if(!file.open(QIODevice::ReadOnly | QIODevice::Text)) { "./",
QMessageBox::critical(this, tr("Open Error"), tr("Could not open selected file.")); tr("All Files (*);;Text Files (*.txt)"));
return; if (fileName.isEmpty())
} return;
while(file.getChar(c)) { file.setFileName(fileName);
outstream += QChar(*c); if(!file.open(QIODevice::ReadOnly | QIODevice::Text)) {
} QMessageBox::critical(this, tr("Open Error"), tr("Could not open selected file."));
return;
txtPreview->setPlainText(outstream); }
file.close();
} QByteArray outstream = file.readAll();
void SequenceWindow::generate_sequence() txtPreview->setPlainText(QString(outstream));
{ file.close();
int returnval; }
ExportWindow dlg; void SequenceWindow::generate_sequence()
dlg.barcode = barcode; {
dlg.output_data = txtPreview->toPlainText(); int returnval;
returnval = dlg.exec();
ExportWindow dlg;
dlg.barcode = barcode;
dlg.output_data = txtPreview->toPlainText();
returnval = dlg.exec();
} }