zint/frontend_qt4/mainwindow.cpp

144 lines
5.4 KiB
C++
Raw Normal View History

2008-07-19 02:49:14 +12:00
/***************************************************************************
* Copyright (C) 2008 by BogDan Vatra *
* bogdan@licentia.eu *
2008-07-19 02:49:14 +12:00
* *
* This program is free software: you can redistribute it and/or modify *
2008-07-19 02:49:14 +12:00
* it under the terms of the GNU General Public License as published by *
* the Free Software Foundation, either version 3 of the License, or *
2008-07-19 02:49:14 +12:00
* (at your option) any later version. *
* This program is distributed in the hope that it will be useful, *
* but WITHOUT ANY WARRANTY; without even the implied warranty of *
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the *
* GNU General Public License for more details. *
* You should have received a copy of the GNU General Public License *
* along with this program. If not, see <http://www.gnu.org/licenses/>. *
2008-07-19 02:49:14 +12:00
***************************************************************************/
#include <QDebug>
#include <QGraphicsScene>
#include <QImage>
#include <QColorDialog>
#include "mainwindow.h"
MainWindow::MainWindow(QWidget* parent, Qt::WFlags fl)
: QWidget(parent, fl)
{
2008-10-08 03:28:32 +13:00
char bstyle_text[][40] = {
"Code 11", "Code 2 of 5 Matrix", "Code 2 of 5 Interleaved", "IATA Code 2 of 5",
"Code 2 of 5 Data Logic", "Code 2 of 5 Industrial", "Code 39", "Extended Code 39",
"EAN", "EAN-128", "Codabar", "Code 128", "DP Leitcode", "DP Identcode",
"Code 16k", "Code 93", "Flattermarken", "Databar",
"Databar Limited", "Databar Expanded", "Telepen", "UPC-A", "UPC-E",
"Postnet", "MSI Plessey", "FIM", "LOGMARS", "Pharmacode", "PZN",
"Pharmacode 2-track", "PDF417", "PDF417 Truncated", "Maxicode",
"QR Code", "Code 128 Subset B", "Auspost Standard", "Auspost Reply",
"Auspost Route", "Auspost Redirect", "ISBN", "Royal Mail 4-state",
"Data Matrix", "EAN-14", "Codablock-F", "NVE-18", "Databar Stacked",
"Databar Stacked Omni", "Databar Expanded Stacked", "PLANET",
"MicroPDF417", "USPS One Code", "UK Plessey", "Telepen Numeric",
2008-11-18 21:52:43 +13:00
"ITF-14", "Dutch Post KIX", "Aztec Code", "Micro QR Code", "Aztec Runes",
"Code 32", "Composite EAN", "Composite EAN-128", "Composite Databar",
2008-10-08 03:28:32 +13:00
"Composite Databar Limited", "Composite Databar Expanded",
"Composite UPC-A", "Composite UPC-E", "Composite Databar Stacked",
"Composite Databar Stacked Omni", "Composite Databar Expanded Stacked"
};
2008-07-19 02:49:14 +12:00
setupUi(this);
view->setScene(new QGraphicsScene);
m_fgcolor=qRgb(0,0,0);
m_bgcolor=qRgb(0xff,0xff,0xff);
2008-10-08 03:28:32 +13:00
for (int i=0;i<metaObject()->enumerator(0).keyCount();i++) {
2008-09-24 21:38:32 +12:00
bstyle->addItem(metaObject()->enumerator(0).key(i));
2008-10-08 03:28:32 +13:00
bstyle->setItemText(i,bstyle_text[i]);
}
bstyle->setCurrentIndex(11);
2008-07-19 02:49:14 +12:00
on_generate_clicked();
view->scene()->addItem(&m_bc);
2008-09-24 21:38:32 +12:00
connect(bstyle, SIGNAL(currentIndexChanged( int )), SLOT(on_generate_clicked()));
2008-07-19 02:49:14 +12:00
connect(heightb, SIGNAL(valueChanged( int )), SLOT(on_generate_clicked()));
connect(widthb, SIGNAL(valueChanged( int )), SLOT(on_generate_clicked()));
connect(security, SIGNAL(valueChanged( int )), SLOT(on_generate_clicked()));
connect(bwidth, SIGNAL(valueChanged( int )), SLOT(on_generate_clicked()));
connect(codewords, SIGNAL(valueChanged( int )), SLOT(on_generate_clicked()));
connect(iwidth, SIGNAL(valueChanged( int )), SLOT(on_generate_clicked()));
connect(iheight, SIGNAL(valueChanged( int )), SLOT(on_generate_clicked()));
connect(btype, SIGNAL(currentIndexChanged( int )), SLOT(on_generate_clicked()));
connect(primary, SIGNAL(textChanged( const QString& )), SLOT(on_generate_clicked()));
connect(text, SIGNAL(textChanged()), SLOT(on_generate_clicked()));
2008-10-11 23:30:35 +13:00
connect(aspectRatio, SIGNAL(currentIndexChanged( int )), SLOT(on_generate_clicked()));
2008-07-19 02:49:14 +12:00
}
MainWindow::~MainWindow()
{
}
void MainWindow::on_fgcolor_clicked()
{
m_fgcolor=QColorDialog::getColor(m_fgcolor,this);
on_generate_clicked();
}
void MainWindow::on_bgcolor_clicked()
{
m_bgcolor=QColorDialog::getColor(m_bgcolor,this);
on_generate_clicked();
}
void MainWindow::on_generate_clicked()
{
QString error;
m_bc.w=iwidth->value();
m_bc.h=iheight->value();
2008-10-11 23:30:35 +13:00
m_bc.ar=(Zint::QZint::AspectRatioMode)aspectRatio->currentIndex();
2008-07-19 02:49:14 +12:00
m_bc.bc.setText(text->toPlainText());
m_bc.bc.setPrimaryMessage(primary->text());
2008-09-24 21:38:32 +12:00
m_bc.bc.setSymbol(metaObject()->enumerator(0).value(bstyle->currentIndex()));
switch(m_bc.bc.symbol())
{
case BARCODE_MSI_PLESSEY:
m_bc.bc.setMsiExtraSymbology(msiPlessey->currentIndex());
break;
case BARCODE_CODE39:
m_bc.bc.setCode39ExtraSymbology(code39->currentIndex());
break;
case BARCODE_EXCODE39:
m_bc.bc.setExcode39ExtraSymbology(code39->currentIndex());
break;
}
2008-11-04 02:32:12 +13:00
m_bc.bc.setBorderType((Zint::QZint::BorderType)(btype->currentIndex()*2));
2008-07-19 02:49:14 +12:00
m_bc.bc.setBorderWidth(bwidth->value());
m_bc.bc.setHeight(heightb->value());
m_bc.bc.setWidth(widthb->value());
m_bc.bc.setSecurityLevel(security->value());
m_bc.bc.setPdf417CodeWords(codewords->value());
m_bc.bc.setFgColor(m_fgcolor);
m_bc.bc.setBgColor(m_bgcolor);
m_bc.update();
view->scene()->update();
}
2008-10-08 03:28:32 +13:00
void MainWindow::on_zoomIn_clicked()
{
view->scale(1.2,1.2);
}
void MainWindow::on_zoomOut_clicked()
{
view->scale(0.9,0.9);
}
void MainWindow::on_rotateAc_clicked()
{
view->rotate(-5);
}
void MainWindow::on_rotateC_clicked()
{
view->rotate(5);
}
void MainWindow::on_reset_clicked()
{
view->resetTransform();
}