diff --git a/backend_qt/qzint.cpp b/backend_qt/qzint.cpp
index 98323f40..c81560fe 100644
--- a/backend_qt/qzint.cpp
+++ b/backend_qt/qzint.cpp
@@ -42,6 +42,8 @@ namespace Zint {
m_option_3 = 0;
m_hidetext = 0;
m_dot_size = 4.0 / 5.0;
+ target_size_horiz = 0;
+ target_size_vert = 0;
}
QZint::~QZint() {
@@ -115,6 +117,11 @@ namespace Zint {
void QZint::setText(const QString & text) {
m_text = text;
}
+
+ void QZint::setTargetSize(int width, int height) {
+ target_size_horiz = width;
+ target_size_vert = height;
+ }
QString QZint::primaryMessage() {
return m_primaryMessage;
@@ -294,16 +301,20 @@ namespace Zint {
}
void QZint::render(QPainter & painter, const QRectF & paintRect, AspectRatioMode mode) {
- encode();
bool textdone;
- int comp_offset = 0, xoffset = m_whitespace, j, main_width = 0, addon_text_height = 0;
+ int comp_offset = 0;
+ int xoffset = m_whitespace;
+ int j, main_width = 0, addon_text_height = 0;
int yoffset = 0;
+
+ encode();
+
QString caption = QString::fromUtf8((const char *) m_zintSymbol->text, -1);
QFont fontSmall(fontstyle);
fontSmall.setPixelSize(fontPixelSizeSmall);
QFont fontLarge(fontstyle);
fontLarge.setPixelSize(fontPixelSizeLarge);
-
+
if (m_lastError.length()) {
painter.setFont(fontLarge);
painter.drawText(paintRect, Qt::AlignCenter, m_lastError);
@@ -312,6 +323,7 @@ namespace Zint {
painter.save();
painter.setClipRect(paintRect, Qt::IntersectClip);
+
qreal xtr = paintRect.x();
qreal ytr = paintRect.y();
@@ -334,8 +346,8 @@ namespace Zint {
qreal gwidth = m_zintSymbol->width;
qreal gheight = m_zintSymbol->height;
if (m_zintSymbol->symbology == BARCODE_MAXICODE) {
-// gheight *= (maxi_width);
-// gwidth *= (maxi_width + 1);
+ gheight *= (maxi_width);
+ gwidth *= (maxi_width + 1);
gwidth *= 2.0;
gheight *= 2.0;
}
@@ -358,27 +370,14 @@ namespace Zint {
textoffset = 0;
}
gwidth += m_zintSymbol->whitespace_width * 2;
-// switch (mode) {
-// case IgnoreAspectRatio:
-// xsf = (qreal) paintRect.width() / gwidth;
-// ysf = (qreal) paintRect.height() / gheight;
-// break;
-//
-// case KeepAspectRatio:
- if (paintRect.width() / gwidth < paintRect.height() / gheight) {
- ysf = xsf = (qreal) paintRect.width() / gwidth;
- ytr += (qreal) (paintRect.height() - gheight * ysf) / 2;
- } else {
- ysf = xsf = (qreal) paintRect.height() / gheight;
- xtr += (qreal) (paintRect.width() - gwidth * xsf) / 2;
- }
-// break;
-
-// case CenterBarCode:
-// xtr += ((qreal) paintRect.width() - gwidth * xsf) / 2;
-// ytr += ((qreal) paintRect.height() - gheight * ysf) / 2;
-// break;
-// }
+
+ if (paintRect.width() / gwidth < paintRect.height() / gheight) {
+ ysf = xsf = (qreal) paintRect.width() / gwidth;
+ ytr += (qreal) (paintRect.height() - gheight * ysf) / 2;
+ } else {
+ ysf = xsf = (qreal) paintRect.height() / gheight;
+ xtr += (qreal) (paintRect.width() - gwidth * xsf) / 2;
+ }
painter.setBackground(QBrush(m_bgColor));
painter.fillRect(paintRect, QBrush(m_bgColor));
@@ -386,11 +385,11 @@ namespace Zint {
painter.scale(xsf, ysf);
QPen p;
+
p.setColor(m_fgColor);
p.setWidth(m_borderWidth);
painter.setPen(p);
- QPainterPath pt;
if (m_zintSymbol->symbology != BARCODE_MAXICODE) {
/* Draw boundary bars or boxes around the symbol */
switch (m_border) {
diff --git a/backend_qt/qzint.h b/backend_qt/qzint.h
index 212c8945..c3192250 100644
--- a/backend_qt/qzint.h
+++ b/backend_qt/qzint.h
@@ -93,6 +93,8 @@ public:
bool save_to_file(QString filename);
void setHideText(bool hide);
+
+ void setTargetSize(int width, int height);
private:
void encode();
@@ -119,6 +121,8 @@ private:
int m_option_3;
bool m_hidetext;
float m_dot_size;
+ int target_size_horiz;
+ int target_size_vert;
};
}
#endif
diff --git a/frontend_qt/barcodeitem.cpp b/frontend_qt/barcodeitem.cpp
index 3639c2f5..9ab7cd04 100644
--- a/frontend_qt/barcodeitem.cpp
+++ b/frontend_qt/barcodeitem.cpp
@@ -20,15 +20,19 @@
BarcodeItem::BarcodeItem()
: QGraphicsItem()
{
- w=550;
- h=230;
+ w=693;
+ h=378; // Default widget size when created
}
-
BarcodeItem::~BarcodeItem()
{
}
+void BarcodeItem::setSize(int width, int height) {
+ w = width;
+ h = height;
+}
+
QRectF BarcodeItem::boundingRect() const
{
return QRectF(0, 0, w, h);
diff --git a/frontend_qt/barcodeitem.h b/frontend_qt/barcodeitem.h
index 165e654e..3c5225b6 100644
--- a/frontend_qt/barcodeitem.h
+++ b/frontend_qt/barcodeitem.h
@@ -29,12 +29,15 @@ class BarcodeItem : public QGraphicsItem
public:
BarcodeItem();
~BarcodeItem();
+ void setSize(int width, int height);
QRectF boundingRect() const;
void paint(QPainter * painter, const QStyleOptionGraphicsItem * option, QWidget * widget = 0);
+private:
+ int w, h;
+
public:
mutable Zint::QZint bc;
- int w,h;
Zint::QZint::AspectRatioMode ar;
};
diff --git a/frontend_qt/mainWindow.ui b/frontend_qt/mainWindow.ui
index f3affd47..ac697409 100644
--- a/frontend_qt/mainWindow.ui
+++ b/frontend_qt/mainWindow.ui
@@ -5,22 +5,24 @@
Qt::NonModal
+
+
+ 0
+ 0
+ 701
+ 724
+
+
-
+
0
0
- 590
- 600
-
-
-
-
- 590
- 600
+ 420
+ 500
@@ -41,32 +43,7 @@
-
-
-
-
- 0
- 0
-
-
-
-
- 0
- 0
-
-
-
-
- 1000
- 1000
-
-
-
- Resulting barcode shown here
-
-
- false
-
-
+
-
@@ -331,8 +308,8 @@ Remember to place [square brackets] around AI data
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
<html><head><meta name="qrichtext" content="1" /><style type="text/css">
p, li { white-space: pre-wrap; }
-</style></head><body style=" font-family:'Sans Serif'; font-size:9pt; font-weight:400; font-style:normal;">
-<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">Your Data Here!</p></body></html>
+</style></head><body style=" font-family:'Noto Sans [monotype]'; font-size:9pt; font-weight:400; font-style:normal;">
+<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'Sans Serif';">Your Data Here!</span></p></body></html>
false
diff --git a/frontend_qt/mainwindow.cpp b/frontend_qt/mainwindow.cpp
index a8f76f05..e18ec750 100644
--- a/frontend_qt/mainwindow.cpp
+++ b/frontend_qt/mainwindow.cpp
@@ -103,8 +103,10 @@ MainWindow::MainWindow(QWidget* parent, Qt::WindowFlags fl)
/* createActions();
createMenus(); */
+ scene = new QGraphicsScene(this);
+
setupUi(this);
- view->setScene(new QGraphicsScene);
+ view->setScene(scene);
m_fgcolor=qRgb(0,0,0);
m_bgcolor=qRgb(0xff,0xff,0xff);
@@ -114,8 +116,8 @@ MainWindow::MainWindow(QWidget* parent, Qt::WindowFlags fl)
}
bstyle->setCurrentIndex(10);
change_options();
+ scene->addItem(&m_bc);
update_preview();
- view->scene()->addItem(&m_bc);
connect(bstyle, SIGNAL(currentIndexChanged( int )), SLOT(change_options()));
connect(bstyle, SIGNAL(currentIndexChanged( int )), SLOT(update_preview()));
connect(heightb, SIGNAL(valueChanged( int )), SLOT(update_preview()));
@@ -141,6 +143,12 @@ MainWindow::~MainWindow()
{
}
+void MainWindow::resizeEvent(QResizeEvent* event)
+{
+ QWidget::resizeEvent(event);
+ update_preview();
+}
+
void MainWindow::reset_view()
{
m_fgcolor=qRgb(0,0,0);
@@ -588,8 +596,10 @@ void MainWindow::maxi_primary()
void MainWindow::update_preview()
{
- QString error;
- m_bc.ar=(Zint::QZint::AspectRatioMode)1;
+ int width = view->geometry().width();
+ int height = view->geometry().height();
+
+ //m_bc.ar=(Zint::QZint::AspectRatioMode)1;
if(chkComposite->isChecked() == true) {
m_bc.bc.setPrimaryMessage(txtData->text());
m_bc.bc.setText(txtComposite->toPlainText());
@@ -885,7 +895,8 @@ void MainWindow::update_preview()
m_bc.bc.setWhitespace(spnWhitespace->value());
m_bc.bc.setFgColor(m_fgcolor);
m_bc.bc.setBgColor(m_bgcolor);
+ m_bc.setSize(width - 10, height - 10);
m_bc.update();
- view->scene()->update();
+ scene->setSceneRect(0, 0, width - 10, height - 10);
+ scene->update();
}
-
diff --git a/frontend_qt/mainwindow.h b/frontend_qt/mainwindow.h
index cf47695f..82af4b1c 100644
--- a/frontend_qt/mainwindow.h
+++ b/frontend_qt/mainwindow.h
@@ -20,6 +20,7 @@
#include
#include
#include
+#include
#include "ui_mainWindow.h"
#include "barcodeitem.h"
@@ -119,6 +120,9 @@ public slots:
void maxi_primary();
void change_print_scale();
+protected:
+ void resizeEvent(QResizeEvent *event);
+
private slots:
bool save();
void about();
@@ -134,6 +138,7 @@ private:
QColor m_fgcolor,m_bgcolor;
BarcodeItem m_bc;
QWidget *m_optionWidget;
+ QGraphicsScene *scene;
/* QMenu *fileMenu;
QMenu *helpMenu;
QAction *saveAct;