1 /*
2     SPDX-FileCopyrightText: 2010-2016 Sune Vuorela <sune@vuorela.dk>
3 
4     SPDX-License-Identifier: MIT
5 */
6 
7 #include "prison.h"
8 
9 #include "barcodeexamplewidget.h"
10 // Prison
11 #include <prison/abstractbarcode.h>
12 #include <prison/prison.h>
13 // Qt
14 #include <QDebug>
15 #include <QHBoxLayout>
16 #include <QLineEdit>
17 #include <QPushButton>
18 #include <QSplitter>
19 
data_changed()20 void main_window::data_changed()
21 {
22     QString result = m_lineedit->text();
23     m_dmw->setData(result);
24     m_qrw->setData(result);
25     m_39w->setData(result);
26     m_93w->setData(result);
27     m_nullw->setData(result);
28     m_dmcolor->setData(result);
29     m_qrcolor->setData(result);
30     m_39color->setData(result);
31     m_93color->setData(result);
32 }
33 
main_window()34 main_window::main_window()
35 {
36     QHBoxLayout *lay = new QHBoxLayout();
37     m_lineedit = new QLineEdit(this);
38     QPushButton *but = new QPushButton(this);
39     connect(but, &QPushButton::clicked, this, &main_window::data_changed);
40     lay->addWidget(m_lineedit);
41     lay->addWidget(but);
42 
43     QVBoxLayout *mainlay = new QVBoxLayout(this);
44 
45     {
46         Prison::AbstractBarcode *barcode = Prison::createBarcode(Prison::DataMatrix);
47         if (!barcode) {
48             qDebug() << "unsupported barcode, showing a black square";
49         }
50         m_dmw = new BarcodeExampleWidget(barcode, this);
51     }
52     {
53         Prison::AbstractBarcode *barcode = Prison::createBarcode(Prison::QRCode);
54         if (!barcode) {
55             qDebug() << "unsupported barcode, showing a black square";
56         }
57         m_qrw = new BarcodeExampleWidget(barcode, this);
58     }
59     {
60         Prison::AbstractBarcode *barcode = Prison::createBarcode(Prison::Code39);
61         if (!barcode) {
62             qDebug() << "unsupported barcode, showing a black square";
63         }
64         m_39w = new BarcodeExampleWidget(barcode, this);
65     }
66     {
67         Prison::AbstractBarcode *barcode = Prison::createBarcode(Prison::Code93);
68         if (!barcode) {
69             qDebug() << "unsupported barcode, showing a black square";
70         }
71         m_93w = new BarcodeExampleWidget(barcode, this);
72     }
73     {
74         Prison::AbstractBarcode *dmcolorcode = Prison::createBarcode(Prison::DataMatrix);
75         if (dmcolorcode) {
76             dmcolorcode->setForegroundColor(Qt::red);
77             dmcolorcode->setBackgroundColor(Qt::darkBlue);
78         } else {
79             qDebug() << "unsupported barcode, showing a black square";
80         }
81         m_dmcolor = new BarcodeExampleWidget(dmcolorcode, this);
82     }
83     {
84         Prison::AbstractBarcode *qrcolorcode = Prison::createBarcode(Prison::QRCode);
85         if (qrcolorcode) {
86             qrcolorcode->setForegroundColor(Qt::red);
87             qrcolorcode->setBackgroundColor(Qt::darkBlue);
88         } else {
89             qDebug() << "unsupported barcode, showing a black square";
90         }
91         m_qrcolor = new BarcodeExampleWidget(qrcolorcode, this);
92     }
93     {
94         Prison::AbstractBarcode *c39colorcode = Prison::createBarcode(Prison::Code39);
95         if (c39colorcode) {
96             c39colorcode->setForegroundColor(Qt::red);
97             c39colorcode->setBackgroundColor(Qt::darkBlue);
98         } else {
99             qDebug() << "unsupported barcode, showing a black square";
100         }
101         m_39color = new BarcodeExampleWidget(c39colorcode, this);
102     }
103     {
104         Prison::AbstractBarcode *c93colorcode = Prison::createBarcode(Prison::Code93);
105         if (c93colorcode) {
106             c93colorcode->setForegroundColor(Qt::red);
107             c93colorcode->setBackgroundColor(Qt::darkBlue);
108         } else {
109             qDebug() << "unsupported barcode, showing a black square";
110         }
111         m_93color = new BarcodeExampleWidget(c93colorcode, this);
112     }
113 
114     m_nullw = new BarcodeExampleWidget(nullptr, this);
115 
116     QSplitter *splitter = new QSplitter(Qt::Vertical);
117     splitter->addWidget(m_dmw);
118     splitter->addWidget(m_qrw);
119     splitter->addWidget(m_39w);
120     splitter->addWidget(m_93w);
121     splitter->addWidget(m_dmcolor);
122     splitter->addWidget(m_qrcolor);
123     splitter->addWidget(m_39color);
124     splitter->addWidget(m_93color);
125     splitter->addWidget(m_nullw);
126 
127     mainlay->addLayout(lay);
128     mainlay->addWidget(splitter);
129 
130     m_lineedit->setText(QStringLiteral("AOEUIAOEUIAOEUI"));
131     data_changed();
132 }
133