- cmake: remove zintconfig.h.in for now as incompatible with MSVC

project builds (will add back in future if go fully CMake)
- NO_PNG -> ZINT_NO_PNG and new API function `Zint_NoPng()` to
  determine if no PNG support in libzint; replace use in GUI with
  backend_qt method `noPng()`
This commit is contained in:
gitlost 2022-11-24 14:18:31 +00:00
parent 536a581d9e
commit 6393813cff
31 changed files with 138 additions and 156 deletions

View File

@ -31,6 +31,11 @@ Changes
- DPD: add top boundary (width 3X) by default, using new BARCODE_BIND_TOP;
"relabel" option; some compliance checks
- manual: fuller DPD doc; some spelling typos, formatting
- cmake: fixes for static build and install directories, props koprok
- cmake: remove zintconfig.h.in for now as incompatible with MSVC project builds
(will add back in future if go fully CMake)
- NO_PNG -> ZINT_NO_PNG and new API function `Zint_NoPng()` to determine if no
PNG support in libzint; replace use in GUI with backend_qt method `noPng()`
Bugs
----

View File

@ -4,8 +4,6 @@
project(zint)
configure_file(zintconfig.h.in ${CMAKE_CURRENT_SOURCE_DIR}/zintconfig.h)
set(zint_COMMON_SRCS common.c library.c large.c reedsol.c gs1.c eci.c general_field.c)
set(zint_ONEDIM_SRCS bc412.c code.c code128.c 2of5.c upcean.c telepen.c medical.c plessey.c rss.c)
set(zint_POSTAL_SRCS postal.c auspost.c imail.c mailmark.c)
@ -69,7 +67,7 @@ endif()
if(ZINT_USE_PNG AND PNG_FOUND)
zint_target_link_libraries(PNG::PNG)
else()
zint_target_compile_definitions(PUBLIC NO_PNG)
zint_target_compile_definitions(PRIVATE ZINT_NO_PNG)
endif()
if(ZINT_TEST)

View File

@ -34,8 +34,8 @@ LIB_OBJ:= $(COMMON_OBJ) $(ONEDIM_OBJ) $(TWODIM_OBJ) $(POSTAL_OBJ) $(OUTPUT_OBJ)
DLL_OBJ:= $(LIB_OBJ:.o=.lo) dllversion.lo
ifeq ($(NO_PNG),true)
DEFINES+= -DNO_PNG
ifeq ($(ZINT_NO_PNG),true)
DEFINES+= -DZINT_NO_PNG
else
DEFINES_DLL+= -DPNG_DLL -DZLIB_DLL
LIBS+= -lpng -lz

View File

@ -61,7 +61,7 @@ struct zint_symbol *ZBarcode_Create(void) {
symbol->fgcolor = &symbol->fgcolour[0];
strcpy(symbol->bgcolour, "ffffff");
symbol->bgcolor = &symbol->bgcolour[0];
#ifdef NO_PNG
#ifdef ZINT_NO_PNG
strcpy(symbol->outfile, "out.gif");
#else
strcpy(symbol->outfile, "out.png");
@ -1856,6 +1856,15 @@ unsigned int ZBarcode_Cap(int symbol_id, unsigned int cap_flag) {
return result;
}
/* Whether Zint built without PNG support */
int ZBarcode_NoPng(void) {
#ifdef ZINT_NO_PNG
return 1;
#else
return 0;
#endif
}
/* Return the version of Zint linked to */
int ZBarcode_Version(void) {
if (ZINT_VERSION_BUILD) {

View File

@ -30,7 +30,7 @@
*/
/* SPDX-License-Identifier: BSD-3-Clause */
#ifndef NO_PNG
#ifndef ZINT_NO_PNG
#include <errno.h>
#include <stdio.h>
@ -348,4 +348,4 @@ INTERNAL int png_pixel_plot(struct zint_symbol *symbol, unsigned char *pixelbuf)
/* https://stackoverflow.com/a/26541331 Suppresses gcc warning ISO C forbids an empty translation unit */
typedef int make_iso_compilers_happy;
/* vim: set ts=4 sw=4 et : */
#endif /* NO_PNG */
#endif /* ZINT_NO_PNG */

View File

@ -49,9 +49,9 @@
#define UPCEAN_TEXT 1
#ifndef NO_PNG
#ifndef ZINT_NO_PNG
INTERNAL int png_pixel_plot(struct zint_symbol *symbol, unsigned char *pixelbuf);
#endif /* NO_PNG */
#endif /* ZINT_NO_PNG */
INTERNAL int bmp_pixel_plot(struct zint_symbol *symbol, unsigned char *pixelbuf);
INTERNAL int pcx_pixel_plot(struct zint_symbol *symbol, unsigned char *pixelbuf);
INTERNAL int gif_pixel_plot(struct zint_symbol *symbol, unsigned char *pixelbuf);
@ -233,7 +233,7 @@ static int save_raster_image_to_file(struct zint_symbol *symbol, const int image
}
break;
case OUT_PNG_FILE:
#ifndef NO_PNG
#ifndef ZINT_NO_PNG
error_number = png_pixel_plot(symbol, rotated_pixbuf);
#else
if (rotate_angle) {
@ -1335,12 +1335,12 @@ static int plot_raster_default(struct zint_symbol *symbol, const int rotate_angl
INTERNAL int plot_raster(struct zint_symbol *symbol, int rotate_angle, int file_type) {
int error;
#ifdef NO_PNG
#ifdef ZINT_NO_PNG
if (file_type == OUT_PNG_FILE) {
strcpy(symbol->errtxt, "660: PNG format disabled at compile time");
return ZINT_ERROR_INVALID_OPTION;
}
#endif /* NO_PNG */
#endif /* ZINT_NO_PNG */
error = out_check_colour_options(symbol);
if (error != 0) {

View File

@ -25,12 +25,18 @@ if(ZINT_SHARED)
add_library(testcommon ${testcommon_SRCS})
target_link_libraries(testcommon zint)
target_include_directories(testcommon PUBLIC ${zint_backend_tests_SOURCE_DIR})
if(NOT (ZINT_USE_PNG AND PNG_FOUND))
target_compile_definitions(testcommon PRIVATE ZINT_NO_PNG)
endif()
endif()
if(ZINT_STATIC)
add_library(testcommon-static ${testcommon_SRCS})
target_link_libraries(testcommon-static zint-static)
target_include_directories(testcommon-static PUBLIC ${zint_backend_tests_SOURCE_DIR})
if(NOT (ZINT_USE_PNG AND PNG_FOUND))
target_compile_definitions(testcommon-static PRIVATE ZINT_NO_PNG)
endif()
endif()
zint_add_test(2of5 test_2of5)

View File

@ -102,9 +102,9 @@ static void test_print(const testCtx *const p_ctx) {
}
for (j = 0; j < exts_size; j++) {
#ifdef NO_PNG
if (strcmp(exts[j], "png") == 0) continue;
#endif
if (ZBarcode_NoPng() && strcmp(exts[j], "png") == 0) continue;
assert_nonzero(sizeof(data_subdir) > strlen(data_dir) + 1 + strlen(exts[j]),
"sizeof(data_subdir) (%d) <= strlen(data_dir) (%d) + 1 + strlen(%s) (%d)\n",
(int) sizeof(data_subdir), (int) strlen(data_dir), exts[j], (int) strlen(exts[j]));

View File

@ -38,7 +38,7 @@
#include <windows.h>
#include <direct.h>
#endif
#ifndef NO_PNG
#ifndef ZINT_NO_PNG
#include <png.h>
#include <zlib.h>
#include <setjmp.h>
@ -1363,7 +1363,7 @@ int testUtilRename(const char *oldpath, const char *newpath) {
/* Compare 2 PNG files */
int testUtilCmpPngs(const char *png1, const char *png2) {
int ret = -1;
#ifdef NO_PNG
#ifdef ZINT_NO_PNG
(void)png1; (void)png2;
#else
FILE *fp1;

View File

@ -102,7 +102,7 @@ extern "C" {
char bgcolour[10]; /* Background as RGB/RGBA hexadecimal string, 6 or 8 characters, NUL-terminated */
char *fgcolor; /* Pointer to fgcolour (alternate spelling) */
char *bgcolor; /* Pointer to bgcolour (alternate spelling) */
char outfile[256]; /* Name of file to output to, NUL-terminated. Default "out.png" ("out.gif" if NO_PNG) */
char outfile[256]; /* Name of file to output to, NUL-terminated. Default "out.png" ("out.gif" if no PNG) */
char primary[128]; /* Primary message data (MaxiCode, Composite), NUL-terminated */
int option_1; /* Symbol-specific options (see "../docs/manual.txt") */
int option_2; /* Symbol-specific options */
@ -442,6 +442,10 @@ extern "C" {
/* Return the capability flags for symbology `symbol_id` that match `cap_flag` */
ZINT_EXTERN unsigned int ZBarcode_Cap(int symbol_id, unsigned int cap_flag);
/* Whether Zint built without PNG support */
ZINT_EXTERN int ZBarcode_NoPng(void);
/* Return the version of Zint linked to */
ZINT_EXTERN int ZBarcode_Version(void);

View File

@ -1,4 +1,5 @@
/* zintconfig.h - the configured options and settings for libzint, generated from "zintconfig.h.in" by CMake */
/* zintconfig.h - the configured options and settings for libzint
NOTE: previously generated by CMake from "zintconfig.h.in", disabled for now */
/*
libzint - the open source barcode library
Copyright (C) 2021-2022 Robin Stuart <rstuart114@gmail.com>

View File

@ -1,42 +0,0 @@
/* zintconfig.h - the configured options and settings for libzint, generated from "zintconfig.h.in" by CMake */
/*
libzint - the open source barcode library
Copyright (C) 2021-2022 Robin Stuart <rstuart114@gmail.com>
Redistribution and use in source and binary forms, with or without
modification, are permitted provided that the following conditions
are met:
1. Redistributions of source code must retain the above copyright
notice, this list of conditions and the following disclaimer.
2. Redistributions in binary form must reproduce the above copyright
notice, this list of conditions and the following disclaimer in the
documentation and/or other materials provided with the distribution.
3. Neither the name of the project nor the names of its contributors
may be used to endorse or promote products derived from this software
without specific prior written permission.
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
SUCH DAMAGE.
*/
/* SPDX-License-Identifier: BSD-3-Clause */
#ifndef ZINTCONFIG_H
#define ZINTCONFIG_H
#define ZINT_VERSION_MAJOR @ZINT_VERSION_MAJOR@
#define ZINT_VERSION_MINOR @ZINT_VERSION_MINOR@
#define ZINT_VERSION_RELEASE @ZINT_VERSION_RELEASE@
#define ZINT_VERSION_BUILD @ZINT_VERSION_BUILD@
/* vim: set ts=4 sw=4 et : */
#endif /* ZINTCONFIG_H */

View File

@ -19,7 +19,7 @@ INCLUDEPATH += ../backend
#EDIT THIS !!!!
DEFINES += ZINT_VERSION="\\\"2.11.1.9\\\""
!contains(DEFINES, NO_PNG) {
!contains(DEFINES, ZINT_NO_PNG) {
INCLUDEPATH += ../../lpng
INCLUDEPATH += ../../zlib
}

View File

@ -13,7 +13,7 @@ INCLUDEPATH += ../backend d:\\opt\\include
DEFINES += _CRT_SECURE_NO_WARNINGS _CRT_NONSTDC_NO_WARNINGS ZINT_VERSION=\\\"$$VERSION\\\" include=""
!contains(DEFINES, NO_PNG) {
!contains(DEFINES, ZINT_NO_PNG) {
SOURCES += ../backend/png.c
}

View File

@ -682,6 +682,10 @@ namespace Zint {
return m_lastError.length();
}
bool QZint::noPng() const {
return ZBarcode_NoPng() == 1;
}
int QZint::getVersion() const {
return ZBarcode_Version();
}

View File

@ -196,6 +196,9 @@ public:
/* Note: legacy argument `mode` is not used */
void render(QPainter& painter, const QRectF& paintRect, AspectRatioMode mode = IgnoreAspectRatio);
/* Whether Zint library "libzint" built with PNG support or not (`ZBarcode_NoPng()`) */
bool noPng() const;
int getVersion() const;
/* Translate settings into Command Line equivalent. Set `win` to use Windows escaping of data.

View File

@ -6235,7 +6235,7 @@ fi
PKG_CFLAGS="$PKG_CFLAGS -I../backend -DNO_PNG=1 -DZINT_VERSION=PACKAGE_VERSION"
PKG_CFLAGS="$PKG_CFLAGS -I../backend -DZINT_NO_PNG=1 -DZINT_VERSION=PACKAGE_VERSION"

View File

@ -115,7 +115,7 @@ TEA_ADD_SOURCES([
../backend/vector.c
zint.c
])
TEA_ADD_CFLAGS([-I../backend -DNO_PNG=1 -DZINT_VERSION=PACKAGE_VERSION])
TEA_ADD_CFLAGS([-I../backend -DZINT_NO_PNG=1 -DZINT_VERSION=PACKAGE_VERSION])
TEA_ADD_STUB_SOURCES([])
TEA_ADD_TCL_SOURCES([demo/demo.tcl])

View File

@ -43,7 +43,7 @@ RSC=rc.exe
# PROP Ignore_Export_Lib 0
# PROP Target_Dir ""
# ADD BASE CPP /nologo /MT /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /D "_MBCS" /D "_USRDLL" /D "ZINT_TCL_EXPORTS" /YX /FD /c
# ADD CPP /nologo /MD /W3 /GX /O2 /I "..\backend" /I "C:\Tcl\include" /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /D "_MBCS" /D "_USRDLL" /D "ZINT_TCL_EXPORTS" /D "NO_PNG" /FR /YX /FD /D ZINT_VERSION="\"2.11.1.9\"" /c
# ADD CPP /nologo /MD /W3 /GX /O2 /I "..\backend" /I "C:\Tcl\include" /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /D "_MBCS" /D "_USRDLL" /D "ZINT_TCL_EXPORTS" /D "ZINT_NO_PNG" /FR /YX /FD /D ZINT_VERSION="\"2.11.1.9\"" /c
# ADD BASE MTL /nologo /D "NDEBUG" /mktyplib203 /win32
# ADD MTL /nologo /D "NDEBUG" /mktyplib203 /win32
# ADD BASE RSC /l 0x407 /d "NDEBUG"
@ -70,7 +70,7 @@ LINK32=link.exe
# PROP Ignore_Export_Lib 0
# PROP Target_Dir ""
# ADD BASE CPP /nologo /MTd /W3 /Gm /GX /ZI /Od /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /D "_MBCS" /D "_USRDLL" /D "ZINT_TCL_EXPORTS" /YX /FD /GZ /c
# ADD CPP /nologo /MD /W3 /Gm /GX /ZI /Od /I "..\backend" /I "C:\Tcl\include" /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /D "_MBCS" /D "_USRDLL" /D "ZINT_TCL_EXPORTS" /D "NO_PNG" /FR /YX /FD /GZ /D ZINT_VERSION="\"2.11.1.9\"" /c
# ADD CPP /nologo /MD /W3 /Gm /GX /ZI /Od /I "..\backend" /I "C:\Tcl\include" /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /D "_MBCS" /D "_USRDLL" /D "ZINT_TCL_EXPORTS" /D "ZINT_NO_PNG" /FR /YX /FD /GZ /D ZINT_VERSION="\"2.11.1.9\"" /c
# ADD BASE MTL /nologo /D "_DEBUG" /mktyplib203 /win32
# ADD MTL /nologo /D "_DEBUG" /mktyplib203 /win32
# ADD BASE RSC /l 0x407 /d "_DEBUG"

View File

@ -2248,6 +2248,15 @@ if (cap & ZINT_CAP_ECI) {
## 5.14 Zint Version
Whether the Zint library linked to was built with PNG support may be determined
with:
```c
int ZBarcode_NoPng();
```
which returns 1 if no PNG support is available, else zero.
Lastly, the version of the Zint library linked to is returned by:
```c

View File

@ -2241,6 +2241,13 @@ For example:
5.14 Zint Version
Whether the Zint library linked to was built with PNG support may be determined
with:
int ZBarcode_NoPng();
which returns 1 if no PNG support is available, else zero.
Lastly, the version of the Zint library linked to is returned by:
int ZBarcode_Version();

View File

@ -1000,7 +1000,7 @@ int main(int argc, char **argv) {
fprintf(stderr, "Error 151: Memory failure\n");
exit(ZINT_ERROR_MEMORY);
}
no_png = strcmp(my_symbol->outfile, "out.gif") == 0;
no_png = ZBarcode_NoPng();
if (argc == 1) {
ZBarcode_Delete(my_symbol);

View File

@ -1176,11 +1176,7 @@ static void test_other_opts(const testCtx *const p_ctx) {
char cmd[4096];
char buf[8192];
#ifdef NO_PNG
const char *outfilename = "out.gif";
#else
const char *outfilename = "out.png";
#endif
const char *outfilename = ZBarcode_NoPng() ? "out.gif" : "out.png";
testStart("test_other_opts");
@ -1244,11 +1240,7 @@ static void test_exit_status(const testCtx *const p_ctx) {
char cmd[4096];
char buf[8192];
#ifdef NO_PNG
const char *outfilename = "out.gif";
#else
const char *outfilename = "out.png";
#endif
const char *outfilename = ZBarcode_NoPng() ? "out.gif" : "out.png";
testStart("test_exit_status");

View File

@ -34,6 +34,11 @@ ExportWindow::ExportWindow(BarcodeItem *bc, const QString& output_data)
: m_bc(bc), m_output_data(output_data), m_lines(0)
{
setupUi(this);
if (m_bc->bc.noPng()) {
cmbFileType->removeItem(0); // PNG
}
QSettings settings;
#if QT_VERSION < 0x60000
settings.setIniCodec("UTF-8");
@ -47,7 +52,8 @@ ExportWindow::ExportWindow(BarcodeItem *bc, const QString& output_data)
linPrefix->setText(settings.value(QSL("studio/export/file_prefix"), QSL("bcs_")).toString());
linPostfix->setText(settings.value(QSL("studio/export/file_postfix"), QSL("")).toString());
cmbFileName->setCurrentIndex(settings.value(QSL("studio/export/name_format"), 0).toInt());
cmbFileFormat->setCurrentIndex(settings.value(QSL("studio/export/filetype"), 0).toInt());
cmbFileType->setCurrentIndex(std::min(settings.value(QSL("studio/export/filetype"), 0).toInt(),
cmbFileType->count() - 1));
QIcon closeIcon(QIcon::fromTheme(QSL("window-close"), QIcon(QSL(":res/x.svg"))));
btnCancel->setIcon(closeIcon);
@ -77,7 +83,7 @@ ExportWindow::~ExportWindow()
settings.setValue(QSL("studio/export/file_prefix"), linPrefix->text());
settings.setValue(QSL("studio/export/file_postfix"), linPostfix->text());
settings.setValue(QSL("studio/export/name_format"), cmbFileName->currentIndex());
settings.setValue(QSL("studio/export/filetype"), cmbFileFormat->currentIndex());
settings.setValue(QSL("studio/export/filetype"), cmbFileType->currentIndex());
}
void ExportWindow::get_directory()
@ -122,25 +128,11 @@ void ExportWindow::process()
}
QString suffix;
switch (cmbFileFormat->currentIndex()) {
#ifdef NO_PNG
case 0: suffix = QSL(".eps"); break;
case 1: suffix = QSL(".gif"); break;
case 2: suffix = QSL(".svg"); break;
case 3: suffix = QSL(".bmp"); break;
case 4: suffix = QSL(".pcx"); break;
case 5: suffix = QSL(".emf"); break;
case 6: suffix = QSL(".tif"); break;
#else
case 0: suffix = QSL(".png"); break;
case 1: suffix = QSL(".eps"); break;
case 2: suffix = QSL(".gif"); break;
case 3: suffix = QSL(".svg"); break;
case 4: suffix = QSL(".bmp"); break;
case 5: suffix = QSL(".pcx"); break;
case 6: suffix = QSL(".emf"); break;
case 7: suffix = QSL(".tif"); break;
#endif
int suffixIdx = cmbFileType->currentText().lastIndexOf(QSL("(*."));
if (suffixIdx == -1) {
suffix = m_bc->bc.noPng() ? QSL(".gif") : QSL(".png");
} else {
suffix = cmbFileType->currentText().mid(suffixIdx + 2, 4);
}
QString filePathPrefix = linDestPath->text() % QDir::separator() % linPrefix->text();

View File

@ -143,12 +143,12 @@
<string>The type of file which you want to create</string>
</property>
<property name="buddy">
<cstring>cmbFileFormat</cstring>
<cstring>cmbFileType</cstring>
</property>
</widget>
</item>
<item row="4" column="1" colspan="2">
<widget class="QComboBox" name="cmbFileFormat">
<widget class="QComboBox" name="cmbFileType">
<property name="toolTip">
<string>The type of file which you want to create</string>
</property>

View File

@ -4,7 +4,7 @@ DEPENDPATH += . debug release
INCLUDEPATH += .
INCLUDEPATH += ../backend
INCLUDEPATH += ../backend_qt
!contains(DEFINES, NO_PNG) {
!contains(DEFINES, ZINT_NO_PNG) {
INCLUDEPATH += ../../lpng
INCLUDEPATH += ../../zlib
}
@ -82,7 +82,7 @@ QMAKE_LIBDIR += ../backend_qt/release
LIBS += -lQt5Core
QMAKE_LIBDIR += C:/qt/5.15.2static/lib
!contains(DEFINES, NO_PNG) {
!contains(DEFINES, ZINT_NO_PNG) {
# Win
win32:LIBS += -llibpng16 -lzlib
win32:QMAKE_LIBDIR+="../../lpng/projects/vstudio/Release Library"

View File

@ -50,9 +50,7 @@ static const QKeySequence openCLISeq(Qt::SHIFT | Qt::CTRL | Qt::Key_C);
static const QKeySequence copyBMPSeq(Qt::SHIFT | Qt::CTRL | Qt::Key_B);
static const QKeySequence copyEMFSeq(Qt::SHIFT | Qt::CTRL | Qt::Key_E);
static const QKeySequence copyGIFSeq(Qt::SHIFT | Qt::CTRL | Qt::Key_G);
#ifndef NO_PNG
static const QKeySequence copyPNGSeq(Qt::SHIFT | Qt::CTRL | Qt::Key_P);
#endif
static const QKeySequence copySVGSeq(Qt::SHIFT | Qt::CTRL | Qt::Key_S);
static const QKeySequence copyTIFSeq(Qt::SHIFT | Qt::CTRL | Qt::Key_T);
@ -355,10 +353,10 @@ MainWindow::MainWindow(QWidget *parent, Qt::WindowFlags fl)
connect(m_copyEMFShortcut, SIGNAL(activated()), SLOT(copy_to_clipboard_emf()));
m_copyGIFShortcut = new QShortcut(copyGIFSeq, this);
connect(m_copyGIFShortcut, SIGNAL(activated()), SLOT(copy_to_clipboard_gif()));
#ifndef NO_PNG
m_copyPNGShortcut = new QShortcut(copyPNGSeq, this);
connect(m_copyPNGShortcut, SIGNAL(activated()), SLOT(copy_to_clipboard_png()));
#endif
if (!m_bc.bc.noPng()) {
m_copyPNGShortcut = new QShortcut(copyPNGSeq, this);
connect(m_copyPNGShortcut, SIGNAL(activated()), SLOT(copy_to_clipboard_png()));
}
m_copySVGShortcut = new QShortcut(copySVGSeq, this);
connect(m_copySVGShortcut, SIGNAL(activated()), SLOT(copy_to_clipboard_svg()));
m_copyTIFShortcut = new QShortcut(copyTIFSeq, this);
@ -594,20 +592,20 @@ bool MainWindow::save()
QDir::toNativeSeparators(QDir::homePath())).toString());
suffixes << QSL("eps") << QSL("gif") << QSL("svg") << QSL("bmp") << QSL("pcx") << QSL("emf") << QSL("tif");
#ifdef NO_PNG
suffix = settings.value(QSL("studio/default_suffix"), QSL("gif")).toString();
save_dialog.setNameFilter(tr(
"Encapsulated PostScript (*.eps);;Graphics Interchange Format (*.gif)"
";;Scalable Vector Graphic (*.svg);;Windows Bitmap (*.bmp);;ZSoft PC Painter Image (*.pcx)"
";;Enhanced Metafile (*.emf);;Tagged Image File Format (*.tif)"));
#else
suffix = settings.value(QSL("studio/default_suffix"), QSL("png")).toString();
save_dialog.setNameFilter(tr(
"Portable Network Graphic (*.png);;Encapsulated PostScript (*.eps);;Graphics Interchange Format (*.gif)"
";;Scalable Vector Graphic (*.svg);;Windows Bitmap (*.bmp);;ZSoft PC Painter Image (*.pcx)"
";;Enhanced Metafile (*.emf);;Tagged Image File Format (*.tif)"));
suffixes << QSL("png");
#endif
if (m_bc.bc.noPng()) {
suffix = settings.value(QSL("studio/default_suffix"), QSL("gif")).toString();
save_dialog.setNameFilter(tr(
"Encapsulated PostScript (*.eps);;Graphics Interchange Format (*.gif)"
";;Scalable Vector Graphic (*.svg);;Windows Bitmap (*.bmp);;ZSoft PC Painter Image (*.pcx)"
";;Enhanced Metafile (*.emf);;Tagged Image File Format (*.tif)"));
} else {
suffix = settings.value(QSL("studio/default_suffix"), QSL("png")).toString();
save_dialog.setNameFilter(tr(
"Portable Network Graphic (*.png);;Encapsulated PostScript (*.eps);;Graphics Interchange Format (*.gif)"
";;Scalable Vector Graphic (*.svg);;Windows Bitmap (*.bmp);;ZSoft PC Painter Image (*.pcx)"
";;Enhanced Metafile (*.emf);;Tagged Image File Format (*.tif)"));
suffixes << QSL("png");
}
if (QString::compare(suffix, QSL("png"), Qt::CaseInsensitive) == 0)
save_dialog.selectNameFilter(tr("Portable Network Graphic (*.png)"));
@ -1290,14 +1288,12 @@ void MainWindow::copy_to_clipboard_pcx()
copy_to_clipboard(QSL(".zint.pcx"), QSL("PCX"), "image/x-pcx");
}
#ifndef NO_PNG
void MainWindow::copy_to_clipboard_png()
{
copy_to_clipboard(QSL(".zint.png"), QSL("PNG"));
if (!m_bc.bc.noPng()) {
copy_to_clipboard(QSL(".zint.png"), QSL("PNG"));
}
}
#else
void MainWindow::copy_to_clipboard_png() {} // Workaround Qt not parsing #ifndef NO_PNG in slots
#endif
void MainWindow::copy_to_clipboard_svg()
{
@ -1394,9 +1390,9 @@ void MainWindow::view_context_menu(const QPoint &pos)
#ifdef MAINWINDOW_COPY_PCX
menu.addAction(m_copyPCXAct);
#endif
#ifndef NO_PNG
menu.addAction(m_copyPNGAct);
#endif
if (!m_bc.bc.noPng()) {
menu.addAction(m_copyPNGAct);
}
menu.addAction(m_copySVGAct);
menu.addAction(m_copyTIFAct);
menu.addSeparator();
@ -2984,12 +2980,12 @@ void MainWindow::createActions()
connect(m_copyPCXAct, SIGNAL(triggered()), this, SLOT(copy_to_clipboard_pcx()));
#endif
#ifndef NO_PNG
m_copyPNGAct = new QAction(copyIcon, tr("Copy as &PNG"), this);
m_copyPNGAct->setStatusTip(tr("Copy to clipboard as PNG"));
m_copyPNGAct->setShortcut(copyPNGSeq);
connect(m_copyPNGAct, SIGNAL(triggered()), this, SLOT(copy_to_clipboard_png()));
#endif
if (!m_bc.bc.noPng()) {
m_copyPNGAct = new QAction(copyIcon, tr("Copy as &PNG"), this);
m_copyPNGAct->setStatusTip(tr("Copy to clipboard as PNG"));
m_copyPNGAct->setShortcut(copyPNGSeq);
connect(m_copyPNGAct, SIGNAL(triggered()), this, SLOT(copy_to_clipboard_png()));
}
m_copySVGAct = new QAction(copyIcon, tr("Copy as S&VG"), this);
m_copySVGAct->setStatusTip(tr("Copy to clipboard as SVG"));
@ -3048,9 +3044,9 @@ void MainWindow::createMenu()
#ifdef MAINWINDOW_COPY_PCX
m_menu->addAction(m_copyPCXAct);
#endif
#ifndef NO_PNG
m_menu->addAction(m_copyPNGAct);
#endif
if (!m_bc.bc.noPng()) {
m_menu->addAction(m_copyPNGAct);
}
m_menu->addAction(m_copySVGAct);
m_menu->addAction(m_copyTIFAct);
m_menu->addSeparator();
@ -3083,9 +3079,9 @@ void MainWindow::enableActions()
#ifdef MAINWINDOW_COPY_PCX
m_copyPCXAct->setEnabled(enabled);
#endif
#ifndef NO_PNG
m_copyPNGAct->setEnabled(enabled);
#endif
if (!m_bc.bc.noPng()) {
m_copyPNGAct->setEnabled(enabled);
}
m_copySVGAct->setEnabled(enabled);
m_copyTIFAct->setEnabled(enabled);
m_openCLIAct->setEnabled(enabled);
@ -3096,9 +3092,9 @@ void MainWindow::enableActions()
m_copyBMPShortcut->setEnabled(enabled);
m_copyEMFShortcut->setEnabled(enabled);
m_copyGIFShortcut->setEnabled(enabled);
#ifndef NO_PNG
m_copyPNGShortcut->setEnabled(enabled);
#endif
if (!m_bc.bc.noPng()) {
m_copyPNGShortcut->setEnabled(enabled);
}
m_copySVGShortcut->setEnabled(enabled);
m_copyTIFShortcut->setEnabled(enabled);
}

View File

@ -102,7 +102,7 @@ public slots:
void copy_to_clipboard_emf();
void copy_to_clipboard_eps();
void copy_to_clipboard_gif();
void copy_to_clipboard_png(); // Note Qt can't handle #ifndef NO_PNG in slots
void copy_to_clipboard_png();
void copy_to_clipboard_pcx();
void copy_to_clipboard_svg();
void copy_to_clipboard_tif();
@ -201,9 +201,7 @@ private:
QShortcut *m_copyBMPShortcut;
QShortcut *m_copyEMFShortcut;
QShortcut *m_copyGIFShortcut;
#ifndef NO_PNG
QShortcut *m_copyPNGShortcut;
#endif
QShortcut *m_copySVGShortcut;
QShortcut *m_copyTIFShortcut;
QAction *m_copyBMPAct;

View File

@ -117,7 +117,7 @@
<ClCompile>
<Optimization>Disabled</Optimization>
<AdditionalIncludeDirectories>..\..\..\zlib\;..\..\..\lpng\;..\..\..\lpng\build;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<PreprocessorDefinitions>WIN32;_DEBUG;_WINDOWS;_USRDLL;_CRT_SECURE_NO_WARNINGS;_CRT_NONSTDC_NO_WARNINGS;ZINT_VERSION="2.11.1.9";NO_PNG;BUILD_ZINT_DLL;ZLIB_DLL;PNG_DLL;DEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<PreprocessorDefinitions>WIN32;_DEBUG;_WINDOWS;_USRDLL;_CRT_SECURE_NO_WARNINGS;_CRT_NONSTDC_NO_WARNINGS;ZINT_VERSION="2.11.1.9";ZINT_NO_PNG;BUILD_ZINT_DLL;ZLIB_DLL;PNG_DLL;DEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<MinimalRebuild>true</MinimalRebuild>
<ExceptionHandling />
<BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
@ -149,7 +149,7 @@
<ClCompile>
<Optimization>Disabled</Optimization>
<AdditionalIncludeDirectories>..\..\..\zlib\;..\..\..\lpng\;..\..\..\lpng\build;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<PreprocessorDefinitions>NO_PNG;WIN32;_DEBUG;_WINDOWS;_USRDLL;_CRT_SECURE_NO_WARNINGS;_CRT_NONSTDC_NO_WARNINGS;ZINT_VERSION="2.11.1.9";BUILD_ZINT_DLL;ZLIB_DLL;PNG_DLL;DEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<PreprocessorDefinitions>ZINT_NO_PNG;WIN32;_DEBUG;_WINDOWS;_USRDLL;_CRT_SECURE_NO_WARNINGS;_CRT_NONSTDC_NO_WARNINGS;ZINT_VERSION="2.11.1.9";BUILD_ZINT_DLL;ZLIB_DLL;PNG_DLL;DEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<ExceptionHandling>
</ExceptionHandling>
<BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
@ -182,7 +182,7 @@
<Optimization>MaxSpeed</Optimization>
<IntrinsicFunctions>false</IntrinsicFunctions>
<AdditionalIncludeDirectories>..\..\..\zlib\;..\..\..\lpng\;..\..\..\lpng\build;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<PreprocessorDefinitions>WIN32;NDEBUG;_WINDOWS;_USRDLL;_CRT_SECURE_NO_WARNINGS;_CRT_NONSTDC_NO_WARNINGS;ZINT_VERSION="2.11.1.9";BUILD_ZINT_DLL;ZLIB_DLL;PNG_DLL;NO_PNG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<PreprocessorDefinitions>WIN32;NDEBUG;_WINDOWS;_USRDLL;_CRT_SECURE_NO_WARNINGS;_CRT_NONSTDC_NO_WARNINGS;ZINT_VERSION="2.11.1.9";BUILD_ZINT_DLL;ZLIB_DLL;PNG_DLL;ZINT_NO_PNG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<StringPooling>true</StringPooling>
<ExceptionHandling />
<RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
@ -215,7 +215,7 @@
<Optimization>MaxSpeed</Optimization>
<IntrinsicFunctions>false</IntrinsicFunctions>
<AdditionalIncludeDirectories>..\..\..\zlib\;..\..\..\lpng\;..\..\..\lpng\build;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<PreprocessorDefinitions>WIN32;NDEBUG;_WINDOWS;_USRDLL;_CRT_SECURE_NO_WARNINGS;_CRT_NONSTDC_NO_WARNINGS;ZINT_VERSION="2.11.1.9";BUILD_ZINT_DLL;NO_PNG;ZLIB_DLL;PNG_DLL;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<PreprocessorDefinitions>WIN32;NDEBUG;_WINDOWS;_USRDLL;_CRT_SECURE_NO_WARNINGS;_CRT_NONSTDC_NO_WARNINGS;ZINT_VERSION="2.11.1.9";BUILD_ZINT_DLL;ZINT_NO_PNG;ZLIB_DLL;PNG_DLL;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<StringPooling>true</StringPooling>
<ExceptionHandling>
</ExceptionHandling>

View File

@ -39,7 +39,7 @@
<Optimization>MaxSpeed</Optimization>
<IntrinsicFunctions>true</IntrinsicFunctions>
<AdditionalIncludeDirectories>d:\opt1\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<PreprocessorDefinitions>WIN32;NDEBUG;_LIB;_CRT_SECURE_NO_WARNINGS;_CRT_NONSTDC_NO_WARNINGS;ZINT_VERSION="2.11.1.9";NO_PNG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<PreprocessorDefinitions>WIN32;NDEBUG;_LIB;_CRT_SECURE_NO_WARNINGS;_CRT_NONSTDC_NO_WARNINGS;ZINT_VERSION="2.11.1.9";ZINT_NO_PNG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<StringPooling>true</StringPooling>
<ExceptionHandling>
</ExceptionHandling>

View File

@ -66,7 +66,7 @@ LINK32=link.exe
# PROP Ignore_Export_Lib 0
# PROP Target_Dir ""
# ADD BASE CPP /nologo /W3 /Gm /GX /ZI /Od /D "WIN32" /D "_DEBUG" /D "_CONSOLE" /D "_MBCS" /YX /FD /GZ /c
# ADD CPP /nologo /MTd /W3 /Gm /GX /ZI /Od /I "..\..\backend" /I "..\..\..\lpng" /I "..\..\..\zlib" /D "WIN32" /D "_DEBUG" /D "_CONSOLE" /D "_MBCS" /D "NO_PNG" /D "DEBUG" /YX /FD /GZ /D ZINT_VERSION="\"2.11.1.9\"" /c
# ADD CPP /nologo /MTd /W3 /Gm /GX /ZI /Od /I "..\..\backend" /I "..\..\..\lpng" /I "..\..\..\zlib" /D "WIN32" /D "_DEBUG" /D "_CONSOLE" /D "_MBCS" /D "ZINT_NO_PNG" /D "DEBUG" /YX /FD /GZ /D ZINT_VERSION="\"2.11.1.9\"" /c
# ADD BASE RSC /l 0x407 /d "_DEBUG"
# ADD RSC /l 0x407 /d "_DEBUG"
BSC32=bscmake.exe