/*************************************************************************** * This file is part of the Lime Report project * * Copyright (C) 2021 by Alexander Arin * * arin_a@bk.ru * * * ** GNU General Public License Usage ** * * * This library is free software: you can redistribute it and/or modify * * it under the terms of the GNU General Public License as published by * * the Free Software Foundation, either version 3 of the License, or * * (at your option) any later version. * * You should have received a copy of the GNU General Public License * * along with this program. If not, see . * * * ** GNU Lesser General Public License ** * * * This library is free software: you can redistribute it and/or modify * * it under the terms of the GNU Lesser General Public License as * * published by the Free Software Foundation, either version 3 of the * * License, or (at your option) any later version. * * You should have received a copy of the GNU Lesser General Public * * License along with this library. * * If not, see . * * * * This library 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. * ****************************************************************************/ #ifndef LRBARCODEITEM_H #define LRBARCODEITEM_H #include "lritemdesignintf.h" #include namespace LimeReport{ class BarcodeItem : public LimeReport::ContentItemDesignIntf { Q_OBJECT Q_PROPERTY(QString content READ content WRITE setContent) Q_PROPERTY(BarcodeType barcodeType READ barcodeType WRITE setBarcodeType) Q_PROPERTY(QString datasource READ datasource WRITE setDatasource) Q_PROPERTY(QString field READ field WRITE setField) Q_PROPERTY(QString testValue READ designTestValue WRITE setDesignTestValue) Q_PROPERTY(QColor foregroundColor READ foregroundColor WRITE setForegroundColor) Q_PROPERTY(QColor backgroundColor READ backgroundColor WRITE setBackgroundColor) Q_PROPERTY(int whitespace READ whitespace WRITE setWhitespace) Q_PROPERTY(AngleType angle READ angle WRITE setAngle) Q_PROPERTY(int barcodeWidth READ barcodeWidth WRITE setBarcodeWidth) Q_PROPERTY(int securityLevel READ securityLevel WRITE setSecurityLevel) Q_PROPERTY(int pdf417CodeWords READ pdf417CodeWords WRITE setPdf417CodeWords) Q_PROPERTY(InputMode inputMode READ inputMode WRITE setInputMode) Q_PROPERTY(bool hideText READ hideText WRITE setHideText) Q_PROPERTY(int option3 READ option3 WRITE setOption3) Q_PROPERTY(bool hideIfEmpty READ hideIfEmpty WRITE setHideIfEmpty) public: enum BarcodeType { CODE11 =1, C25MATRIX =2, C25INTER =3, C25IATA =4, C25LOGIC =6, C25IND =7, CODE39 =8, EXCODE39 =9, EANX =13, EANX_CHK =14, EAN128 =16, CODABAR =18, CODE128 =20, DPLEIT =21, DPIDENT =22, CODE16K =23, CODE93 =25, FLAT =28, RSS14 =29, RSS_LTD =30, RSS_EXP =31, TELEPEN =32, UPCA =34, UPCE =37, POSTNET =40, MSI_PLESSEY =47, FIM =49, LOGMARS =50, PHARMA =51, PZN =52, PHARMA_TWO =53, PDF417 =55, PDF417TRUNC =56, MAXICODE =57, QRCODE =58, CODE128B =60, AUSPOST =63, AUSREPLY =66, AUSROUTE =67, AUSREDIRECT =68, ISBNX =69, RM4SCC =70, DATAMATRIX =71, ITF14 =72, CODABLOCKF =74, NVE18 =75, KOREAPOST =77, RSS14STACK =79, RSS14STACK_OMNI =80, RSS_EXPSTACK =81, PLANET =82, MICROPDF417 =84, ONECODE =85, PLESSEY =86, KIX =90, AZTEC =92, DAFT =93, ITALYPOST =94, DPD =96, MICROQR =97, HIBC_128 =98, HIBC_39 =99, HIBC_DM =102, HIBC_QR =104, HIBC_PDF =106, HIBC_MICPDF =108, HIBC_BLOCKF =110, HIBC_AZTEC =112, DOTCODE =115, HANXIN =116, TELEPEN_NUM =128, CODE32 =129, // EANX_CC =130, // EAN128_CC =131, // RSS14_CC =132, // RSS_LTD_CC =133, // RSS_EXP_CC =134, // UPCA_CC =135, // UPCE_CC =136, // RSS14STACK_CC =137, // RSS14_OMNI_CC =138, // RSS_EXPSTACK_CC =139, CHANNEL =140, CODEONE =141, GRIDMATRIX =142, UPNQR =143 }; enum AngleType{Angle0,Angle90,Angle180,Angle270}; enum InputMode{ DATA_INPUT_MODE = 0, UNICODE_INPUT_MODE = 1, GS1_INPUT_MODE = 2, KANJI_INPUT_MODE = 3, SJIS_INPUT_MODE = 4 }; #if (QT_VERSION >= QT_VERSION_CHECK(5, 5, 0)) Q_ENUM(BarcodeType) Q_ENUM(AngleType) Q_ENUM(InputMode) #else Q_ENUMS(BarcodeType) Q_ENUMS(AngleType) Q_ENUMS(InputMode) #endif BarcodeItem(QObject *owner, QGraphicsItem *parent); ~BarcodeItem(); virtual BaseDesignIntf* createSameTypeItem(QObject *owner, QGraphicsItem *parent); virtual void paint(QPainter *ppainter, const QStyleOptionGraphicsItem *option, QWidget *widget); virtual void updateItemSize(DataSourceManager *dataManager, RenderPass pass, int maxHeight); virtual bool isNeedUpdateSize(RenderPass pass) const; void setContent(const QString& content); QString content() const {return m_content;} void setBarcodeType(BarcodeType value); BarcodeType barcodeType(){return m_barcodeType;} QString datasource() const; void setDatasource(const QString &datasource); QString field() const; void setField(const QString &field); void setDesignTestValue(QString value); QString designTestValue(){return m_designTestValue;} QColor foregroundColor(){return m_foregroundColor;} void setForegroundColor(QColor value); QColor backgroundColor(){return m_backgroundColor;} void setBackgroundColor(QColor value); int whitespace(){return m_whitespace;} void setWhitespace(int value); AngleType angle() const; void setAngle(const AngleType &angle); int barcodeWidth() const; void setBarcodeWidth(int barcodeWidth); int securityLevel() const; void setSecurityLevel(int securityLevel); int pdf417CodeWords() const; void setPdf417CodeWords(int pdf417CodeWords); InputMode inputMode() const; void setInputMode(const InputMode &inputMode); bool hideText() const; void setHideText(bool hideText); int option3() const; void setOption3(int option3); bool hideIfEmpty() const; void setHideIfEmpty(bool hideIfEmpty); bool isEmpty() const; private: void expandContent(QString data, DataSourceManager *dataManager, RenderPass pass); private: QString m_content; QString m_datasource; QString m_field; QString m_designTestValue; BarcodeType m_barcodeType; QColor m_foregroundColor; QColor m_backgroundColor; int m_whitespace; AngleType m_angle; int m_barcodeWidth; int m_securityLevel; int m_pdf417CodeWords; InputMode m_inputMode; bool m_hideText; int m_option3; bool m_hideIfEmpty; }; } #endif // LRBARCODEITEM_H