+ bugfixed DLL-export when building shared libraries

+ CMAKE now properly adds the Build-type when building libraries
+ removed some more compiler warning
This commit is contained in:
jkriege2 2019-06-22 14:21:32 +02:00
parent 77d799a742
commit 34b31812ba
146 changed files with 1200 additions and 721 deletions

1
.gitignore vendored
View File

@ -93,3 +93,4 @@ moc_predefs.h
*.prl
Sicherungskopie_*
/examples/simpletest_rgbimageplot_opencv/opencv
/build

View File

@ -26,7 +26,7 @@ if(NOT DEFINED BUILD_EXAMPLES)
option(BUILD_EXAMPLES "Build examples" ON)
endif()
if(NOT DEFINED BUILD_HAS_OPENCV)
option(BUILD_HAS_OPENCV "OpenCV available?" OFF)
option(BUILD_HAS_OPENCV "OpenCV available? If yes, OpenCV examples are built when BUILD_EXAMPLES=ON" OFF)
endif()
if(NOT DEFINED LIB_INSTALL)
option(LIB_INSTALL "Install library" ON)
@ -54,13 +54,7 @@ set(CMAKE_AUTOUIC ON)
# Find includes in the build directories
set(CMAKE_INCLUDE_CURRENT_DIR ON)
# Set a default build type if none was specified
#if(NOT CMAKE_BUILD_TYPE AND NOT CMAKE_CONFIGURATION_TYPES)
# message(STATUS "Setting build type to 'Debug' as none was specified")
# set(CMAKE_BUILD_TYPE Debug CACHE STRING "Choose the type of build" FORCE)
# # Set the possible values of build type for cmake-gui
# set_property(CACHE CMAKE_BUILD_TYPE PROPERTY STRINGS "Debug" "Release" "MinSizeRel" "RelWithDebInfo")
#endif()
if (NOT CMAKE_INSTALL_LIBDIR)
set(CMAKE_INSTALL_LIBDIR "lib")
@ -91,21 +85,29 @@ if(MSVC)
# To fix error: C2338: va_start argument must not
# have reference type and must not be parenthesized
add_definitions(/D_CRT_NO_VA_START_VALIDATION)
if(BUILD_INCLUDE_XITS_FONTS)
add_definitions(/DAUTOLOAD_XITS_FONTS)
add_definitions(/DUSE_XITS_FONTS )
else()
add_definitions(/DNO_XITS_FONTS )
endif()
set(CMAKE_MSVCIDE_RUN_PATH ${CMAKE_PREFIX_PATH};${Qt5_DIR}/bin)
else()
add_compile_options(-fexceptions)
if(BUILD_HIGH_COMPILE_WARNING_LEVEL)
add_compile_options(-Wall -Wextra) # -Wimplicit-fallthrough -Wuninitialized -Wmaybe-uninitialized) # -Wmisleading-indentation -Weffc++)
endif(BUILD_HIGH_COMPILE_WARNING_LEVEL)
endif()
if(BUILD_INCLUDE_XITS_FONTS)
add_definitions(-DAUTOLOAD_XITS_FONTS -DUSE_XITS_FONTS )
else()
add_definitions(-DNO_XITS_FONTS )
if(BUILD_INCLUDE_XITS_FONTS)
add_definitions(-DAUTOLOAD_XITS_FONTS)
add_definitions(-DUSE_XITS_FONTS )
else()
add_definitions(-DNO_XITS_FONTS )
endif()
endif()
if(BUILD_DECORATE_LIBNAMES_WITH_BUILDTYPE)
set(LIBNAME_ADDITION "_${CMAKE_BUILD_TYPE}")
set(LIBNAME_ADDITION "_$<CONFIG>") #"_${CMAKE_BUILD_TYPE}")
else()
set(LIBNAME_ADDITION )
endif()

View File

@ -60,18 +60,17 @@ The [Screenshots-page](./screenshots/) contains several screenshots, partly take
## Building
Simply use CMake, e.g. from QTCreator, or by calling something like:
JKQTPlotter contains two different build systems: A modern [CMake](https://cmake.org/)-based build and an older QMake-based build (which works out of the box with Qt 5.x). Both systems are explained in detail in http://jkriege2.github.io/JKQtPlotter/page_buildinstructions.html.
With [CMake](https://cmake.org/) you can easily build JKQTPlotter and all its examples, by calling something like:
```
$ mkdir build; cd build
$ cmake ../
$ make
$ make install
$ cmake .. -G "<cmake_generator>" "-DCMAKE_PREFIX_PATH=<path_to_your_qt_sources>"
$ cmake --build . --config "Debug"
```
Building instructions for QMake can be found here:
- include necessary files into QMake project: [`./lib/*.pri`](./lib/README.md)
- [build a static library](./staticlib): [`./qmake/staticlib/*.pro`](./qmake/staticlib/README.md)
- [build a shared library (DLL, SO, ...)](./sharedlib): [`./qmake/sharedlib/*.pro`](./qmake/sharedlib/README.md)
## Continuous Integration Status

View File

@ -17,35 +17,35 @@ environment:
CMAKE_GENERATOR: "MinGW Makefiles"
USE_CMAKE: true
MSBUILD_FLAGS:
- QTABI: mingw53_32
ARCH: x86
QMAKESPEC: win32-g++
MAKETOOL: mingw32-make
USE_CMAKE: false
# - QTABI: mingw53_32
# ARCH: x86
# QMAKESPEC: win32-g++
# MAKETOOL: mingw32-make
# USE_CMAKE: false
- QTABI: msvc2017_64
ARCH: x64
VSVER: 2017
CMAKE_GENERATOR: "Visual Studio 15 2017 Win64"
USE_CMAKE: true
MSBUILD_FLAGS: /verbosity:minimal /maxcpucount
- QTABI: msvc2017_64
ARCH: x64
VSVER: 2017
QMAKESPEC: win32-msvc
MAKETOOL: jom
USE_CMAKE: false
# - QTABI: msvc2017_64
# ARCH: x64
# VSVER: 2017
# QMAKESPEC: win32-msvc
# MAKETOOL: jom
# USE_CMAKE: false
- QTABI: msvc2015
ARCH: x86
VSVER: 14
CMAKE_GENERATOR: "Visual Studio 15 2017"
USE_CMAKE: true
MSBUILD_FLAGS: /verbosity:minimal /maxcpucount
- QTABI: msvc2015
ARCH: x86
VSVER: 14
QMAKESPEC: win32-msvc
MAKETOOL: jom
USE_CMAKE: false
# - QTABI: msvc2015
# ARCH: x86
# VSVER: 14
# QMAKESPEC: win32-msvc
# MAKETOOL: jom
# USE_CMAKE: false
skip_tags: true

View File

@ -7,23 +7,68 @@ This page explains how to use JKQTPlotter in your own Projects
\section page_buildinstructions_CMAKE Build using CMake
The preferred way to build JKQTPlotter is using CMake. The CMake-build is defined in `CMakeLists.txt` files, found in many of the directories of the code repository.
\subsection page_buildinstructions_CMAKE_RUN Running a Build with CMake
You can build JKQTPlotter (and also the examples) by:
- Either opening the file <a href="https://github.com/jkriege2/JKQtPlotter/blob/master/CMakeLists.txt">CMakeLists.txt</a> in QTCreator (which has CMake integration)
- Or by calling something like this from the source directory:
\code{.sh}
$ mkdir build; cd build
$ cmake ../
$ make
$ make install
\endcode
The preferred way to build JKQTPlotter is using <a href="https://cmake.org/">CMake</a>. The CMake-build is defined in `CMakeLists.txt` files, found in many of the directories of the code repository.
You can build JKQTPlotter (and also the examples) by either opening the file <a href="https://github.com/jkriege2/JKQtPlotter/blob/master/CMakeLists.txt">CMakeLists.txt</a> in QTCreator (which has CMake integration), or by calling \c CMake by hand. How to do this depends on your local system und build environment.
\subsubsection page_buildinstructions_CMAKE_MAKEFILE Building with MinGW/GNU/... Makefiles
You can use (MinGW) Makefiles by calling:
\code{.sh}
$ mkdir build
$ cd build
$ cmake .. -G "MinGW Makefiles" "-DCMAKE_PREFIX_PATH=<path_to_your_qt_sources>"
$ cmake --build . --config "Debug"
\endcode
\subsubsection page_buildinstructions_CMAKE_VSTUDIO Building with Visual Studio
For Visual Studio it could look like this:
\code{.sh}
$ mkdir build
$ cd build
$ cmake .. -G "Visual Studio 15 2017 Win64" "-DCMAKE_PREFIX_PATH=<path_to_your_qt_sources>"
\endcode
Where \c <path_to_your_qt_sources> could be e.g. \c C:/development/Qt5/5.12.0/msvc2017_64 . This call results in a Visual Studio solution \c build/JKQTPlotter.sln that you can load and compile from the Visual Studio IDE. Alternatively you can also build the solution directly calling:
\code{.sh}
$ cmake --build . --config "Debug"
\endcode
\subsection page_buildinstructions_CMAKE_CONFIG Configuring a Build with CMake
The CMake build system offers several configuration variables that you may set/change to modify the outcome of the build:
- \c CMAKE_PREFIX_PATH : add the path to your Qt installatrion to this variable, so the \c find_package(Qt5...) commands find the libraries you want to use
- \c BUILD_SHARED_LIBS : Build as shared library (default: \c ON )
- \c BUILD_STATIC_LIBS : Build as static library (default: \c ON )
- \c BUILD_INCLUDE_XITS_FONTS : Include XITS fonts as resources in library (default: \c ON )
- \c BUILD_DECORATE_LIBNAMES_WITH_BUILDTYPE : If set, the build-type is appended to the library name (default: \c ON )
- \c BUILD_HIGH_COMPILE_WARNING_LEVEL : Set Compiler Warning level to high (default: \c OFF )
- \c BUILD_EXAMPLES : Build examples (default: \c ON )
- \c BUILD_HAS_OPENCV : OpenCV available? If yes, OpenCV examples are built when BUILD_EXAMPLES=ON (default: \c OFF )
- \c LIB_INSTALL : Install library (default: \c ON )
- \c CMAKE_INSTALL_PREFIX : Install directory (default: \c${CMAKE_CURRENT_SOURCE_DIR}/install )
.
\section page_buildinstructions_QMAKE Build using QMake
\subsection page_buildinstructions_QMAKEINCLUDE QMake Include Project
If you want to simply include the JKQTPlotter Source code into your projects, without build a shared or static library and linking against it, you can use one of these QMake-Include files:
- <a href="https://github.com/jkriege2/JKQtPlotter/blob/master/lib/jkqtplotter.pri">lib/jkqtplotter.pri</a> includes the complete library (JKQTPlotter, JKQTFastPlotter, JKQTMathText)
- <a href="https://github.com/jkriege2/JKQtPlotter/blob/master/lib/jkqtmathtext.pri">lib/jkqtmathtext.pri</a> includes only JKQTMathText
@ -32,7 +77,7 @@ If you want to simply include the JKQTPlotter Source code into your projects, wi
In your QMake-projects it is then sufficient to add a line like:
\code{.qmake}
include(<PATHTOJKQTPLOTTERDIR>/lib/jkqtplotter.pri)
include(<PATHTOJKQTPLOTTERDIR>/lib/jkqtplotter.pri)
\endcode
\subsection page_buildinstructions_QMAKESTATIC QMake Static Library
@ -91,6 +136,7 @@ DEPENDPATH += \
<PATHTOJKQTPLOTTERDIR>/lib \
<PATHTOJKQTPLOTTERDIR>/qmake/sharedlib/jkqtplotterlib
INCLUDEPATH += <PATHTOJKQTPLOTTERDIR>/lib
DEFINES += JKQTCOMMON_LIB_IN_DLL JKQTFASTPLOTTER_LIB_IN_DLL JKQTMATHTEXT_LIB_IN_DLL JKQTPLOTTER_LIB_IN_DLL
CONFIG (debug, debug|release) {
# ensure that DLLs are copied to the output directory
install_jkqtplotter_dll.files = <PATHTOJKQTPLOTTERDIR>/qmake/sharedlib/jkqtplotterlib/debug/jkqtplotterlib_debug.*

View File

@ -15,9 +15,9 @@ set(UIS advplotstyling.qrc )
add_executable(${EXENAME} WIN32 ${SOURCES} ${HEADERS} ${RESOURCES} ${UIS})
target_include_directories(${EXENAME} PRIVATE ../../lib)
if(BUILD_STATIC_LIBS)
target_link_libraries(${EXENAME} JKQTPlotterLib${LIBNAME_ADDITION})
target_link_libraries(${EXENAME} JKQTPlotterLib)
elseif(BUILD_SHARED_LIBS)
target_link_libraries(${EXENAME} JKQTPlotterSharedLib${LIBNAME_ADDITION})
target_link_libraries(${EXENAME} JKQTPlotterSharedLib)
endif()
# Installation

View File

@ -15,9 +15,9 @@ set(UIS )
add_executable(${EXENAME} WIN32 ${SOURCES} ${HEADERS} ${RESOURCES} ${UIS})
target_include_directories(${EXENAME} PRIVATE ../../lib)
if(BUILD_STATIC_LIBS)
target_link_libraries(${EXENAME} JKQTPlotterLib${LIBNAME_ADDITION})
target_link_libraries(${EXENAME} JKQTPlotterLib)
elseif(BUILD_SHARED_LIBS)
target_link_libraries(${EXENAME} JKQTPlotterSharedLib${LIBNAME_ADDITION})
target_link_libraries(${EXENAME} JKQTPlotterSharedLib)
endif()

View File

@ -15,9 +15,9 @@ set(UIS )
add_executable(${EXENAME} WIN32 ${SOURCES} ${HEADERS} ${RESOURCES} ${UIS})
target_include_directories(${EXENAME} PRIVATE ../../lib)
if(BUILD_STATIC_LIBS)
target_link_libraries(${EXENAME} JKQTPlotterLib${LIBNAME_ADDITION})
target_link_libraries(${EXENAME} JKQTPlotterLib)
elseif(BUILD_SHARED_LIBS)
target_link_libraries(${EXENAME} JKQTPlotterSharedLib${LIBNAME_ADDITION})
target_link_libraries(${EXENAME} JKQTPlotterSharedLib)
endif()

View File

@ -15,9 +15,9 @@ set(UIS )
add_executable(${EXENAME} WIN32 ${SOURCES} ${HEADERS} ${RESOURCES} ${UIS})
target_include_directories(${EXENAME} PRIVATE ../../lib)
if(BUILD_STATIC_LIBS)
target_link_libraries(${EXENAME} JKQTPlotterLib${LIBNAME_ADDITION})
target_link_libraries(${EXENAME} JKQTPlotterLib)
elseif(BUILD_SHARED_LIBS)
target_link_libraries(${EXENAME} JKQTPlotterSharedLib${LIBNAME_ADDITION})
target_link_libraries(${EXENAME} JKQTPlotterSharedLib)
endif()

View File

@ -15,9 +15,9 @@ set(UIS )
add_executable(${EXENAME} WIN32 ${SOURCES} ${HEADERS} ${RESOURCES} ${UIS})
target_include_directories(${EXENAME} PRIVATE ../../lib)
if(BUILD_STATIC_LIBS)
target_link_libraries(${EXENAME} JKQTPlotterLib${LIBNAME_ADDITION})
target_link_libraries(${EXENAME} JKQTPlotterLib)
elseif(BUILD_SHARED_LIBS)
target_link_libraries(${EXENAME} JKQTPlotterSharedLib${LIBNAME_ADDITION})
target_link_libraries(${EXENAME} JKQTPlotterSharedLib)
endif()

View File

@ -15,9 +15,9 @@ set(UIS )
add_executable(${EXENAME} WIN32 ${SOURCES} ${HEADERS} ${RESOURCES} ${UIS})
target_include_directories(${EXENAME} PRIVATE ../../lib)
if(BUILD_STATIC_LIBS)
target_link_libraries(${EXENAME} JKQTPlotterLib${LIBNAME_ADDITION})
target_link_libraries(${EXENAME} JKQTPlotterLib)
elseif(BUILD_SHARED_LIBS)
target_link_libraries(${EXENAME} JKQTPlotterSharedLib${LIBNAME_ADDITION})
target_link_libraries(${EXENAME} JKQTPlotterSharedLib)
endif()

View File

@ -15,9 +15,9 @@ set(UIS )
add_executable(${EXENAME} WIN32 ${SOURCES} ${HEADERS} ${RESOURCES} ${UIS})
target_include_directories(${EXENAME} PRIVATE ../../lib)
if(BUILD_STATIC_LIBS)
target_link_libraries(${EXENAME} JKQTPlotterLib${LIBNAME_ADDITION})
target_link_libraries(${EXENAME} JKQTPlotterLib)
elseif(BUILD_SHARED_LIBS)
target_link_libraries(${EXENAME} JKQTPlotterSharedLib${LIBNAME_ADDITION})
target_link_libraries(${EXENAME} JKQTPlotterSharedLib)
endif()

View File

@ -15,9 +15,9 @@ set(UIS )
add_executable(${EXENAME} WIN32 ${SOURCES} ${HEADERS} ${RESOURCES} ${UIS})
target_include_directories(${EXENAME} PRIVATE ../../lib)
if(BUILD_STATIC_LIBS)
target_link_libraries(${EXENAME} JKQTPlotterLib${LIBNAME_ADDITION})
target_link_libraries(${EXENAME} JKQTPlotterLib)
elseif(BUILD_SHARED_LIBS)
target_link_libraries(${EXENAME} JKQTPlotterSharedLib${LIBNAME_ADDITION})
target_link_libraries(${EXENAME} JKQTPlotterSharedLib)
endif()

View File

@ -15,9 +15,9 @@ set(UIS )
add_executable(${EXENAME} WIN32 ${SOURCES} ${HEADERS} ${RESOURCES} ${UIS})
target_include_directories(${EXENAME} PRIVATE ../../lib)
if(BUILD_STATIC_LIBS)
target_link_libraries(${EXENAME} JKQTPlotterLib${LIBNAME_ADDITION})
target_link_libraries(${EXENAME} JKQTPlotterLib)
elseif(BUILD_SHARED_LIBS)
target_link_libraries(${EXENAME} JKQTPlotterSharedLib${LIBNAME_ADDITION})
target_link_libraries(${EXENAME} JKQTPlotterSharedLib)
endif()

View File

@ -15,9 +15,9 @@ set(UIS )
add_executable(${EXENAME} WIN32 ${SOURCES} ${HEADERS} ${RESOURCES} ${UIS})
target_include_directories(${EXENAME} PRIVATE ../../lib)
if(BUILD_STATIC_LIBS)
target_link_libraries(${EXENAME} JKQTPlotterLib${LIBNAME_ADDITION})
target_link_libraries(${EXENAME} JKQTPlotterLib)
elseif(BUILD_SHARED_LIBS)
target_link_libraries(${EXENAME} JKQTPlotterSharedLib${LIBNAME_ADDITION})
target_link_libraries(${EXENAME} JKQTPlotterSharedLib)
endif()

View File

@ -15,9 +15,9 @@ set(UIS )
add_executable(${EXENAME} WIN32 ${SOURCES} ${HEADERS} ${RESOURCES} ${UIS})
target_include_directories(${EXENAME} PRIVATE ../../lib)
if(BUILD_STATIC_LIBS)
target_link_libraries(${EXENAME} JKQTPlotterLib${LIBNAME_ADDITION})
target_link_libraries(${EXENAME} JKQTPlotterLib)
elseif(BUILD_SHARED_LIBS)
target_link_libraries(${EXENAME} JKQTPlotterSharedLib${LIBNAME_ADDITION})
target_link_libraries(${EXENAME} JKQTPlotterSharedLib)
endif()

View File

@ -15,9 +15,9 @@ set(UIS )
add_executable(${EXENAME} WIN32 ${SOURCES} ${HEADERS} ${RESOURCES} ${UIS})
target_include_directories(${EXENAME} PRIVATE ../../lib)
if(BUILD_STATIC_LIBS)
target_link_libraries(${EXENAME} JKQTPlotterLib${LIBNAME_ADDITION})
target_link_libraries(${EXENAME} JKQTPlotterLib)
elseif(BUILD_SHARED_LIBS)
target_link_libraries(${EXENAME} JKQTPlotterSharedLib${LIBNAME_ADDITION})
target_link_libraries(${EXENAME} JKQTPlotterSharedLib)
endif()

View File

@ -15,9 +15,9 @@ set(UIS )
add_executable(${EXENAME} WIN32 ${SOURCES} ${HEADERS} ${RESOURCES} ${UIS})
target_include_directories(${EXENAME} PRIVATE ../../lib)
if(BUILD_STATIC_LIBS)
target_link_libraries(${EXENAME} JKQTPlotterLib${LIBNAME_ADDITION})
target_link_libraries(${EXENAME} JKQTPlotterLib)
elseif(BUILD_SHARED_LIBS)
target_link_libraries(${EXENAME} JKQTPlotterSharedLib${LIBNAME_ADDITION})
target_link_libraries(${EXENAME} JKQTPlotterSharedLib)
endif()

View File

@ -15,9 +15,9 @@ set(UIS )
add_executable(${EXENAME} WIN32 ${SOURCES} ${HEADERS} ${RESOURCES} ${UIS})
target_include_directories(${EXENAME} PRIVATE ../../lib)
if(BUILD_STATIC_LIBS)
target_link_libraries(${EXENAME} JKQTPlotterLib${LIBNAME_ADDITION})
target_link_libraries(${EXENAME} JKQTPlotterLib)
elseif(BUILD_SHARED_LIBS)
target_link_libraries(${EXENAME} JKQTPlotterSharedLib${LIBNAME_ADDITION})
target_link_libraries(${EXENAME} JKQTPlotterSharedLib)
endif()

View File

@ -15,9 +15,9 @@ set(UIS )
add_executable(${EXENAME} WIN32 ${SOURCES} ${HEADERS} ${RESOURCES} ${UIS})
target_include_directories(${EXENAME} PRIVATE ../../lib)
if(BUILD_STATIC_LIBS)
target_link_libraries(${EXENAME} JKQTPlotterLib${LIBNAME_ADDITION})
target_link_libraries(${EXENAME} JKQTPlotterLib)
elseif(BUILD_SHARED_LIBS)
target_link_libraries(${EXENAME} JKQTPlotterSharedLib${LIBNAME_ADDITION})
target_link_libraries(${EXENAME} JKQTPlotterSharedLib)
endif()

View File

@ -15,9 +15,9 @@ set(UIS )
add_executable(${EXENAME} WIN32 ${SOURCES} ${HEADERS} ${RESOURCES} ${UIS})
target_include_directories(${EXENAME} PRIVATE ../../lib)
if(BUILD_STATIC_LIBS)
target_link_libraries(${EXENAME} JKQTPlotterLib${LIBNAME_ADDITION})
target_link_libraries(${EXENAME} JKQTPlotterLib)
elseif(BUILD_SHARED_LIBS)
target_link_libraries(${EXENAME} JKQTPlotterSharedLib${LIBNAME_ADDITION})
target_link_libraries(${EXENAME} JKQTPlotterSharedLib)
endif()

View File

@ -15,9 +15,9 @@ set(UIS )
add_executable(${EXENAME} WIN32 ${SOURCES} ${HEADERS} ${RESOURCES} ${UIS})
target_include_directories(${EXENAME} PRIVATE ../../lib)
if(BUILD_STATIC_LIBS)
target_link_libraries(${EXENAME} JKQTPlotterLib${LIBNAME_ADDITION})
target_link_libraries(${EXENAME} JKQTPlotterLib)
elseif(BUILD_SHARED_LIBS)
target_link_libraries(${EXENAME} JKQTPlotterSharedLib${LIBNAME_ADDITION})
target_link_libraries(${EXENAME} JKQTPlotterSharedLib)
endif()

View File

@ -15,9 +15,9 @@ set(UIS )
add_executable(${EXENAME} WIN32 ${SOURCES} ${HEADERS} ${RESOURCES} ${UIS})
target_include_directories(${EXENAME} PRIVATE ../../lib)
if(BUILD_STATIC_LIBS)
target_link_libraries(${EXENAME} JKQTPlotterLib${LIBNAME_ADDITION})
target_link_libraries(${EXENAME} JKQTPlotterLib)
elseif(BUILD_SHARED_LIBS)
target_link_libraries(${EXENAME} JKQTPlotterSharedLib${LIBNAME_ADDITION})
target_link_libraries(${EXENAME} JKQTPlotterSharedLib)
endif()

View File

@ -15,9 +15,9 @@ set(UIS )
add_executable(${EXENAME} WIN32 ${SOURCES} ${HEADERS} ${RESOURCES} ${UIS})
target_include_directories(${EXENAME} PRIVATE ../../lib)
if(BUILD_STATIC_LIBS)
target_link_libraries(${EXENAME} JKQTPlotterLib${LIBNAME_ADDITION})
target_link_libraries(${EXENAME} JKQTPlotterLib)
elseif(BUILD_SHARED_LIBS)
target_link_libraries(${EXENAME} JKQTPlotterSharedLib${LIBNAME_ADDITION})
target_link_libraries(${EXENAME} JKQTPlotterSharedLib)
endif()

View File

@ -17,9 +17,9 @@ if (BUILD_HAS_OPENCV)
add_executable(${EXENAME} WIN32 ${SOURCES} ${HEADERS} ${RESOURCES} ${UIS})
target_include_directories(${EXENAME} PRIVATE ../../lib)
if(BUILD_STATIC_LIBS)
target_link_libraries(${EXENAME} JKQTPlotterLib${LIBNAME_ADDITION})
target_link_libraries(${EXENAME} JKQTPlotterLib)
elseif(BUILD_SHARED_LIBS)
target_link_libraries(${EXENAME} JKQTPlotterSharedLib${LIBNAME_ADDITION})
target_link_libraries(${EXENAME} JKQTPlotterSharedLib)
endif()
include_directories( ${OpenCV_INCLUDE_DIRS} )
target_link_libraries(${EXENAME} ${OpenCV_LIBS} )

View File

@ -15,9 +15,9 @@ set(UIS )
add_executable(${EXENAME} WIN32 ${SOURCES} ${HEADERS} ${RESOURCES} ${UIS})
target_include_directories(${EXENAME} PRIVATE ../../lib)
if(BUILD_STATIC_LIBS)
target_link_libraries(${EXENAME} JKQTPlotterLib${LIBNAME_ADDITION})
target_link_libraries(${EXENAME} JKQTPlotterLib)
elseif(BUILD_SHARED_LIBS)
target_link_libraries(${EXENAME} JKQTPlotterSharedLib${LIBNAME_ADDITION})
target_link_libraries(${EXENAME} JKQTPlotterSharedLib)
endif()

View File

@ -18,9 +18,9 @@ set(UIS )
add_executable(${EXENAME} WIN32 ${SOURCES} ${HEADERS} ${RESOURCES} ${UIS})
target_include_directories(${EXENAME} PRIVATE ../../lib)
if(BUILD_STATIC_LIBS)
target_link_libraries(${EXENAME} JKQTFastPlotterLib${LIBNAME_ADDITION})
target_link_libraries(${EXENAME} JKQTFastPlotterLib)
elseif(BUILD_SHARED_LIBS)
target_link_libraries(${EXENAME} JKQTFastPlotterSharedLib${LIBNAME_ADDITION})
target_link_libraries(${EXENAME} JKQTFastPlotterSharedLib)
endif()

View File

@ -17,9 +17,9 @@ set(UIS )
add_executable(${EXENAME} WIN32 ${SOURCES} ${HEADERS} ${RESOURCES} ${UIS})
target_include_directories(${EXENAME} PRIVATE ../../lib)
if(BUILD_STATIC_LIBS)
target_link_libraries(${EXENAME} JKQTMathTextLib${LIBNAME_ADDITION})
target_link_libraries(${EXENAME} JKQTMathTextLib)
elseif(BUILD_SHARED_LIBS)
target_link_libraries(${EXENAME} JKQTMathTextSharedLib${LIBNAME_ADDITION})
target_link_libraries(${EXENAME} JKQTMathTextSharedLib)
endif()

View File

@ -18,9 +18,9 @@ set(UIS testform.ui )
add_executable(${EXENAME} WIN32 ${SOURCES} ${HEADERS} ${RESOURCES} ${UIS})
target_include_directories(${EXENAME} PRIVATE ../../lib)
if(BUILD_STATIC_LIBS)
target_link_libraries(${EXENAME} JKQTMathTextLib${LIBNAME_ADDITION})
target_link_libraries(${EXENAME} JKQTMathTextLib)
elseif(BUILD_SHARED_LIBS)
target_link_libraries(${EXENAME} JKQTMathTextSharedLib${LIBNAME_ADDITION})
target_link_libraries(${EXENAME} JKQTMathTextSharedLib)
endif()

View File

@ -25,9 +25,9 @@ set(UIS )
add_executable(${EXENAME} WIN32 ${SOURCES} ${HEADERS} ${RESOURCES} ${UIS})
target_include_directories(${EXENAME} PRIVATE ../../lib)
if(BUILD_STATIC_LIBS)
target_link_libraries(${EXENAME} JKQTPlotterLib${LIBNAME_ADDITION})
target_link_libraries(${EXENAME} JKQTPlotterLib)
elseif(BUILD_SHARED_LIBS)
target_link_libraries(${EXENAME} JKQTPlotterSharedLib${LIBNAME_ADDITION})
target_link_libraries(${EXENAME} JKQTPlotterSharedLib)
endif()

View File

@ -39,12 +39,12 @@
#ifdef EMFENGINE_DLL
# ifdef EMFENGINE_DLL_BUILD
# define EMFENGINEJKQTP_LIB_EXPORT Q_DECL_EXPORT
# define EMFENGINEJKQTCOMMON_LIB_EXPORT Q_DECL_EXPORT
# else
# define EMFENGINEJKQTP_LIB_EXPORT Q_DECL_IMPORT
# define EMFENGINEJKQTCOMMON_LIB_EXPORT Q_DECL_IMPORT
# endif
#else
# define EMFENGINEJKQTP_LIB_EXPORT
# define EMFENGINEJKQTCOMMON_LIB_EXPORT
#endif
#ifdef HAVE_GDIPLUS
@ -120,7 +120,7 @@ private:
void resetClipping();
};
class EMFENGINEJKQTP_LIB_EXPORT EmfPaintDevice : public QPaintDevice
class EMFENGINEJKQTCOMMON_LIB_EXPORT EmfPaintDevice : public QPaintDevice
{
public:
EmfPaintDevice(const QSize& s, const QString& fileName);

View File

@ -32,7 +32,7 @@ TestWidgetContourPlots::TestWidgetContourPlots(QWidget *parent) :
layoutContour->addWidget(plotDensity);
QVector<double> histAlex;
uint histAlexNx,histAlexNy;
size_t histAlexNx,histAlexNy;
// choose the test data
histAlex.clear();
@ -47,7 +47,7 @@ TestWidgetContourPlots::TestWidgetContourPlots(QWidget *parent) :
histAlex.append(6);
histAlex.resize(16);
histAlexNx=(uint)sqrt(histAlex.size());
histAlexNx=(size_t)sqrt(histAlex.size());
histAlexNy=histAlexNx;
auto ds=plotDensity->getPlotter()->getDatastore();

View File

@ -15,9 +15,9 @@ set(UIS )
add_executable(${EXENAME} WIN32 ${SOURCES} ${HEADERS} ${RESOURCES} ${UIS})
target_include_directories(${EXENAME} PRIVATE ../../lib)
if(BUILD_STATIC_LIBS)
target_link_libraries(${EXENAME} JKQTPlotterLib${LIBNAME_ADDITION})
target_link_libraries(${EXENAME} JKQTPlotterLib)
elseif(BUILD_SHARED_LIBS)
target_link_libraries(${EXENAME} JKQTPlotterSharedLib${LIBNAME_ADDITION})
target_link_libraries(${EXENAME} JKQTPlotterSharedLib)
endif()

View File

@ -15,9 +15,9 @@ set(UIS test_multiplot_ui.ui )
add_executable(${EXENAME} WIN32 ${SOURCES} ${HEADERS} ${RESOURCES} ${UIS})
target_include_directories(${EXENAME} PRIVATE ../../lib)
if(BUILD_STATIC_LIBS)
target_link_libraries(${EXENAME} JKQTPlotterLib${LIBNAME_ADDITION})
target_link_libraries(${EXENAME} JKQTPlotterLib)
elseif(BUILD_SHARED_LIBS)
target_link_libraries(${EXENAME} JKQTPlotterSharedLib${LIBNAME_ADDITION})
target_link_libraries(${EXENAME} JKQTPlotterSharedLib)
endif()

View File

@ -15,9 +15,9 @@ set(UIS )
add_executable(${EXENAME} WIN32 ${SOURCES} ${HEADERS} ${RESOURCES} ${UIS})
target_include_directories(${EXENAME} PRIVATE ../../lib)
if(BUILD_STATIC_LIBS)
target_link_libraries(${EXENAME} JKQTPlotterLib${LIBNAME_ADDITION})
target_link_libraries(${EXENAME} JKQTPlotterLib)
elseif(BUILD_SHARED_LIBS)
target_link_libraries(${EXENAME} JKQTPlotterSharedLib${LIBNAME_ADDITION})
target_link_libraries(${EXENAME} JKQTPlotterSharedLib)
endif()

View File

@ -15,9 +15,9 @@ set(UIS )
add_executable(${EXENAME} WIN32 ${SOURCES} ${HEADERS} ${RESOURCES} ${UIS})
target_include_directories(${EXENAME} PRIVATE ../../lib)
if(BUILD_STATIC_LIBS)
target_link_libraries(${EXENAME} JKQTPlotterLib${LIBNAME_ADDITION})
target_link_libraries(${EXENAME} JKQTPlotterLib)
elseif(BUILD_SHARED_LIBS)
target_link_libraries(${EXENAME} JKQTPlotterSharedLib${LIBNAME_ADDITION})
target_link_libraries(${EXENAME} JKQTPlotterSharedLib)
endif()

View File

@ -15,9 +15,9 @@ set(UIS )
add_executable(${EXENAME} WIN32 ${SOURCES} ${HEADERS} ${RESOURCES} ${UIS})
target_include_directories(${EXENAME} PRIVATE ../../lib)
if(BUILD_STATIC_LIBS)
target_link_libraries(${EXENAME} JKQTPlotterLib${LIBNAME_ADDITION})
target_link_libraries(${EXENAME} JKQTPlotterLib)
elseif(BUILD_SHARED_LIBS)
target_link_libraries(${EXENAME} JKQTPlotterSharedLib${LIBNAME_ADDITION})
target_link_libraries(${EXENAME} JKQTPlotterSharedLib)
endif()

View File

@ -15,9 +15,9 @@ set(UIS )
add_executable(${EXENAME} WIN32 ${SOURCES} ${HEADERS} ${RESOURCES} ${UIS})
target_include_directories(${EXENAME} PRIVATE ../../lib)
if(BUILD_STATIC_LIBS)
target_link_libraries(${EXENAME} JKQTPlotterLib${LIBNAME_ADDITION})
target_link_libraries(${EXENAME} JKQTPlotterLib)
elseif(BUILD_SHARED_LIBS)
target_link_libraries(${EXENAME} JKQTPlotterSharedLib${LIBNAME_ADDITION})
target_link_libraries(${EXENAME} JKQTPlotterSharedLib)
endif()

View File

@ -15,9 +15,9 @@ set(UIS )
add_executable(${EXENAME} WIN32 ${SOURCES} ${HEADERS} ${RESOURCES} ${UIS})
target_include_directories(${EXENAME} PRIVATE ../../lib)
if(BUILD_STATIC_LIBS)
target_link_libraries(${EXENAME} JKQTPlotterLib${LIBNAME_ADDITION})
target_link_libraries(${EXENAME} JKQTPlotterLib)
elseif(BUILD_SHARED_LIBS)
target_link_libraries(${EXENAME} JKQTPlotterSharedLib${LIBNAME_ADDITION})
target_link_libraries(${EXENAME} JKQTPlotterSharedLib)
endif()

View File

@ -17,9 +17,9 @@ if (BUILD_HAS_OPENCV)
add_executable(${EXENAME} WIN32 ${SOURCES} ${HEADERS} ${RESOURCES} ${UIS})
target_include_directories(${EXENAME} PRIVATE ../../lib)
if(BUILD_STATIC_LIBS)
target_link_libraries(${EXENAME} JKQTPlotterLib${LIBNAME_ADDITION})
target_link_libraries(${EXENAME} JKQTPlotterLib)
elseif(BUILD_SHARED_LIBS)
target_link_libraries(${EXENAME} JKQTPlotterSharedLib${LIBNAME_ADDITION})
target_link_libraries(${EXENAME} JKQTPlotterSharedLib)
endif()
include_directories( ${OpenCV_INCLUDE_DIRS} )
target_link_libraries(${EXENAME} ${OpenCV_LIBS} )

View File

@ -15,9 +15,9 @@ set(UIS )
add_executable(${EXENAME} WIN32 ${SOURCES} ${HEADERS} ${RESOURCES} ${UIS})
target_include_directories(${EXENAME} PRIVATE ../../lib)
if(BUILD_STATIC_LIBS)
target_link_libraries(${EXENAME} JKQTPlotterLib${LIBNAME_ADDITION})
target_link_libraries(${EXENAME} JKQTPlotterLib)
elseif(BUILD_SHARED_LIBS)
target_link_libraries(${EXENAME} JKQTPlotterSharedLib${LIBNAME_ADDITION})
target_link_libraries(${EXENAME} JKQTPlotterSharedLib)
endif()

View File

@ -15,9 +15,9 @@ set(UIS )
add_executable(${EXENAME} WIN32 ${SOURCES} ${HEADERS} ${RESOURCES} ${UIS})
target_include_directories(${EXENAME} PRIVATE ../../lib)
if(BUILD_STATIC_LIBS)
target_link_libraries(${EXENAME} JKQTPlotterLib${LIBNAME_ADDITION})
target_link_libraries(${EXENAME} JKQTPlotterLib)
elseif(BUILD_SHARED_LIBS)
target_link_libraries(${EXENAME} JKQTPlotterSharedLib${LIBNAME_ADDITION})
target_link_libraries(${EXENAME} JKQTPlotterSharedLib)
endif()

View File

@ -15,9 +15,9 @@ set(UIS )
add_executable(${EXENAME} WIN32 ${SOURCES} ${HEADERS} ${RESOURCES} ${UIS})
target_include_directories(${EXENAME} PRIVATE ../../lib)
if(BUILD_STATIC_LIBS)
target_link_libraries(${EXENAME} JKQTPlotterLib${LIBNAME_ADDITION})
target_link_libraries(${EXENAME} JKQTPlotterLib)
elseif(BUILD_SHARED_LIBS)
target_link_libraries(${EXENAME} JKQTPlotterSharedLib${LIBNAME_ADDITION})
target_link_libraries(${EXENAME} JKQTPlotterSharedLib)
endif()

View File

@ -15,9 +15,9 @@ set(UIS )
add_executable(${EXENAME} WIN32 ${SOURCES} ${HEADERS} ${RESOURCES} ${UIS})
target_include_directories(${EXENAME} PRIVATE ../../lib)
if(BUILD_STATIC_LIBS)
target_link_libraries(${EXENAME} JKQTPlotterLib${LIBNAME_ADDITION})
target_link_libraries(${EXENAME} JKQTPlotterLib)
elseif(BUILD_SHARED_LIBS)
target_link_libraries(${EXENAME} JKQTPlotterSharedLib${LIBNAME_ADDITION})
target_link_libraries(${EXENAME} JKQTPlotterSharedLib)
endif()

View File

@ -15,9 +15,9 @@ set(UIS )
add_executable(${EXENAME} WIN32 ${SOURCES} ${HEADERS} ${RESOURCES} ${UIS})
target_include_directories(${EXENAME} PRIVATE ../../lib)
if(BUILD_STATIC_LIBS)
target_link_libraries(${EXENAME} JKQTPlotterLib${LIBNAME_ADDITION})
target_link_libraries(${EXENAME} JKQTPlotterLib)
elseif(BUILD_SHARED_LIBS)
target_link_libraries(${EXENAME} JKQTPlotterSharedLib${LIBNAME_ADDITION})
target_link_libraries(${EXENAME} JKQTPlotterSharedLib)
endif()

View File

@ -15,9 +15,9 @@ set(UIS )
add_executable(${EXENAME} WIN32 ${SOURCES} ${HEADERS} ${RESOURCES} ${UIS})
target_include_directories(${EXENAME} PRIVATE ../../lib)
if(BUILD_STATIC_LIBS)
target_link_libraries(${EXENAME} JKQTPlotterLib${LIBNAME_ADDITION})
target_link_libraries(${EXENAME} JKQTPlotterLib)
elseif(BUILD_SHARED_LIBS)
target_link_libraries(${EXENAME} JKQTPlotterSharedLib${LIBNAME_ADDITION})
target_link_libraries(${EXENAME} JKQTPlotterSharedLib)
endif()

View File

@ -15,9 +15,9 @@ set(UIS test_styling.ui )
add_executable(${EXENAME} WIN32 ${SOURCES} ${HEADERS} ${RESOURCES} ${UIS})
target_include_directories(${EXENAME} PRIVATE ../../lib)
if(BUILD_STATIC_LIBS)
target_link_libraries(${EXENAME} JKQTPlotterLib${LIBNAME_ADDITION})
target_link_libraries(${EXENAME} JKQTPlotterLib)
elseif(BUILD_SHARED_LIBS)
target_link_libraries(${EXENAME} JKQTPlotterSharedLib${LIBNAME_ADDITION})
target_link_libraries(${EXENAME} JKQTPlotterSharedLib)
endif()

View File

@ -15,9 +15,9 @@ set(UIS )
add_executable(${EXENAME} WIN32 ${SOURCES} ${HEADERS} ${RESOURCES} ${UIS})
target_include_directories(${EXENAME} PRIVATE ../../lib)
if(BUILD_STATIC_LIBS)
target_link_libraries(${EXENAME} JKQTPlotterLib${LIBNAME_ADDITION})
target_link_libraries(${EXENAME} JKQTPlotterLib)
elseif(BUILD_SHARED_LIBS)
target_link_libraries(${EXENAME} JKQTPlotterSharedLib${LIBNAME_ADDITION})
target_link_libraries(${EXENAME} JKQTPlotterSharedLib)
endif()

View File

@ -15,9 +15,9 @@ set(UIS )
add_executable(${EXENAME} WIN32 ${SOURCES} ${HEADERS} ${RESOURCES} ${UIS})
target_include_directories(${EXENAME} PRIVATE ../../lib)
if(BUILD_STATIC_LIBS)
target_link_libraries(${EXENAME} JKQTPlotterLib${LIBNAME_ADDITION})
target_link_libraries(${EXENAME} JKQTPlotterLib)
elseif(BUILD_SHARED_LIBS)
target_link_libraries(${EXENAME} JKQTPlotterSharedLib${LIBNAME_ADDITION})
target_link_libraries(${EXENAME} JKQTPlotterSharedLib)
endif()

View File

@ -15,9 +15,9 @@ set(UIS formwithjkqtplotter.ui )
add_executable(${EXENAME} WIN32 ${SOURCES} ${HEADERS} ${RESOURCES} ${UIS})
target_include_directories(${EXENAME} PRIVATE ../../lib)
if(BUILD_STATIC_LIBS)
target_link_libraries(${EXENAME} JKQTPlotterLib${LIBNAME_ADDITION})
target_link_libraries(${EXENAME} JKQTPlotterLib)
elseif(BUILD_SHARED_LIBS)
target_link_libraries(${EXENAME} JKQTPlotterSharedLib${LIBNAME_ADDITION})
target_link_libraries(${EXENAME} JKQTPlotterSharedLib)
endif()

View File

@ -15,9 +15,9 @@ set(UIS )
add_executable(${EXENAME} WIN32 ${SOURCES} ${HEADERS} ${RESOURCES} ${UIS})
target_include_directories(${EXENAME} PRIVATE ../../lib)
if(BUILD_STATIC_LIBS)
target_link_libraries(${EXENAME} JKQTPlotterLib${LIBNAME_ADDITION})
target_link_libraries(${EXENAME} JKQTPlotterLib)
elseif(BUILD_SHARED_LIBS)
target_link_libraries(${EXENAME} JKQTPlotterSharedLib${LIBNAME_ADDITION})
target_link_libraries(${EXENAME} JKQTPlotterSharedLib)
endif()

View File

@ -457,7 +457,7 @@ void TestUserInteraction::contextMenuOpened(double x, double y, QMenu *contextMe
labMouseAction->setText(QString("contextMenuOpened(x=%1, y=%2)").arg(x).arg(y));
}
void TestUserInteraction::zoomChangedLocally(double newxmin, double newxmax, double newymin, double newymax, JKQTPlotter */*sender*/)
void TestUserInteraction::zoomChangedLocally(double newxmin, double newxmax, double newymin, double newymax, JKQTPlotter * /*sender*/)
{
labMouseAction->setText(QString("zoomChangedLocally(x=%1..%2, y=%3..%4)").arg(newxmin).arg(newxmax).arg(newymin).arg(newymax));
}

View File

@ -15,9 +15,9 @@ set(UIS )
add_executable(${EXENAME} WIN32 ${SOURCES} ${HEADERS} ${RESOURCES} ${UIS})
target_include_directories(${EXENAME} PRIVATE ../../lib)
if(BUILD_STATIC_LIBS)
target_link_libraries(${EXENAME} JKQTPlotterLib${LIBNAME_ADDITION})
target_link_libraries(${EXENAME} JKQTPlotterLib)
elseif(BUILD_SHARED_LIBS)
target_link_libraries(${EXENAME} JKQTPlotterSharedLib${LIBNAME_ADDITION})
target_link_libraries(${EXENAME} JKQTPlotterSharedLib)
endif()

View File

@ -3,14 +3,16 @@ cmake_minimum_required(VERSION 3.0)
set(libBasename JKQTCommon)
if(BUILD_SHARED_LIBS)
set(libsh_name ${libBasename}SharedLib${LIBNAME_ADDITION})
set(${libsh_name}_LIBRARY ${libsh_name} PARENT_SCOPE)
set(libsh_name ${libBasename}SharedLib)
set(libsh_name_decorated ${libsh_name}${LIBNAME_ADDITION})
set(${libBasename}_SHARED_LIBRARY ${libsh_name_decorated} CACHE STRING "name of static library for ${libBasename}" FORCE)
message( STATUS "-- Building ${libsh_name}" )
endif(BUILD_SHARED_LIBS)
if(BUILD_STATIC_LIBS)
set(lib_name ${libBasename}Lib${LIBNAME_ADDITION})
set(${lib_name}_LIBRARY ${lib_name} PARENT_SCOPE)
set(lib_name ${libBasename}Lib)
set(lib_name_decorated ${lib_name}${LIBNAME_ADDITION})
set(${libBasename}_STATIC_LIBRARY ${lib_name_decorated} CACHE STRING "name of static library for ${libBasename}" FORCE)
message( STATUS "-- Building ${lib_name}" )
endif(BUILD_STATIC_LIBS)
@ -40,7 +42,7 @@ set(SOURCES
)
set(HEADERS
jkqtp_imexport.h
jkqtcommon_imexport.h
jkqtpdebuggingtools.h
jkqtpmathtools.h
jkqtpalgorithms.h
@ -67,14 +69,19 @@ set(HEADERS
if(BUILD_SHARED_LIBS)
add_library(${libsh_name} SHARED ${SOURCES} ${HEADERS})
set_property(TARGET ${libsh_name} PROPERTY VERSION "${PROJECT_VERSION}")
set_property(TARGET ${libsh_name} PROPERTY OUTPUT_NAME "${libsh_name_decorated}")
target_link_libraries(${libsh_name} Qt5::Core Qt5::Gui Qt5::Widgets Qt5::PrintSupport)
target_compile_definitions(${libsh_name} PUBLIC JKQTP_LIB_IN_DLL)
target_compile_definitions(${libsh_name} PRIVATE JKQTP_LIB_EXPORT_LIBRARY)
target_compile_definitions(${libsh_name} PUBLIC JKQTCOMMON_LIB_IN_DLL)
target_compile_definitions(${libsh_name} PRIVATE JKQTCOMMON_LIB_EXPORT_LIBRARY)
set_property(TARGET ${libsh_name} PROPERTY WINDOWS_EXPORT_ALL_SYMBOLS "ON")
# include(GenerateExportHeader)
# generate_export_header(${libsh_name})
endif()
if(BUILD_STATIC_LIBS)
add_library(${lib_name} STATIC ${SOURCES} ${HEADERS})
set_property(TARGET ${lib_name} PROPERTY VERSION "${PROJECT_VERSION}")
set_property(TARGET ${lib_name} PROPERTY OUTPUT_NAME "${lib_name_decorated}")
target_link_libraries(${lib_name} Qt5::Core Qt5::Gui Qt5::Widgets Qt5::PrintSupport)
endif()

View File

@ -0,0 +1,108 @@
#ifndef jkqtcommon_IMPORT_H
#define jkqtcommon_IMPORT_H
/*
Copyright (c) 2008-2019 Jan W. Krieger (<jan@jkrieger.de>)
last modification: $LastChangedDate: 2015-04-02 13:55:22 +0200 (Do, 02 Apr 2015) $ (revision $Rev: 3902 $)
This software is free software: you can redistribute it and/or modify
it under the terms of the GNU Lesser General Public License (LGPL) as published by
the Free Software Foundation, either version 2.1 of the License, or
(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 Lesser General Public License (LGPL) for more details.
You should have received a copy of the GNU Lesser General Public License (LGPL)
along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
/*! \def JKQTCOMMON_LIB_EXPORT
\ingroup tools
This define allows to export functions and classes from the jkqtcommon-library when building a dynamic/shared library.
Usage is as follows:
\code
#include "jkqtcommon/jkqtcommon_imexport.h"
class JKQTCOMMON_LIB_EXPORT exportedClassName {
...
};
JKQTCOMMON_LIB_EXPORT void exportedFunctionName();
\endcode
These macros append the appropriate \c __declspec(dllexport) and \c __declspec(dllimport)
to the function/class body and thus tell windows compilers to export these sysmbols from
the shared library, or import them from a shared library.
Note that these attributes are only necessary on windows systems!
These macros are controlled by two other macros:
- \c JKQTCOMMON_LIB_IN_DLL declares that the application should link against a shared version of
JKQTCommon, i.e. \c JKQTCommonSharedLib_XYZ .
This needs to be defined while compiling the library and while compiling
any application linking against \c JKQTCommonSharedLib_XYZ.
- \c JKQTCOMMON_LIB_EXPORT_LIBRARY is only defined while compiling JKQTCommon into \c JKQTCommonSharedLib_XYZ
and ensures thet the symbols are exported. If it is not defined (e.g. while
compiling an application), the symbols are imported
.
*/
/*! \def JKQTCOMMON_LIB_IN_DLL
\ingroup tools
\brief declares that the application should link against a shared version of
JKQTCommon, i.e. \c JKQTCommonSharedLib_XYZ .
This needs to be defined while compiling the library and while compiling
any application linking against \c JKQTCommonSharedLib_XYZ.
*/
/*! \def JKQTCOMMON_LIB_EXPORT_LIBRARY
\ingroup tools
\brief is only defined while compiling JKQTCommon into \c JKQTCommonSharedLib_XYZ
and ensures thet the symbols are exported. If it is not defined (e.g. while
compiling an application), the symbols are imported
*/
# ifndef __WINDOWS__
# if defined(WIN32) || defined(WIN64) || defined(_MSC_VER) || defined(_WIN32)
# define __WINDOWS__
# endif
# endif
#ifdef __WINDOWS__
# ifdef JKQTCOMMON_LIB_IN_DLL
# ifndef JKQTCOMMON_LIB_EXPORT
# ifdef JKQTCOMMON_LIB_EXPORT_LIBRARY
/* We are building this library */
# define JKQTCOMMON_LIB_EXPORT __declspec(dllexport)
# else
/* We are using this library */
# define JKQTCOMMON_LIB_EXPORT __declspec(dllimport)
# endif
# endif
# else
# ifndef JKQTCOMMON_LIB_EXPORT
# define JKQTCOMMON_LIB_EXPORT
# endif
# endif
#else
# define JKQTCOMMON_LIB_EXPORT
#endif
#endif // jkqtcommon_IMPORT_H

View File

@ -1,76 +0,0 @@
#ifndef jkqtp_IMPORT_H
#define jkqtp_IMPORT_H
/*
Copyright (c) 2008-2019 Jan W. Krieger (<jan@jkrieger.de>)
last modification: $LastChangedDate: 2015-04-02 13:55:22 +0200 (Do, 02 Apr 2015) $ (revision $Rev: 3902 $)
This software is free software: you can redistribute it and/or modify
it under the terms of the GNU Lesser General Public License (LGPL) as published by
the Free Software Foundation, either version 2.1 of the License, or
(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 Lesser General Public License (LGPL) for more details.
You should have received a copy of the GNU Lesser General Public License (LGPL)
along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
/*! \file jkqtp_imexport.h
\ingroup tools
This file allows to export functions and classes from this directory in a dynamic/shared lib and to append the
correct __declspec() declaration on windows. If you want to export one, make sure you have set
\code
#include "jkqtcommon/jkqtp_imexport.h"
class JKQTP_LIB_EXPORT exportedClassName {
...
};
JKQTP_LIB_EXPORT void exportedFunctionName();
\endcode
Then when compiling define the preprocessor symbol \c JKQTP_LIB_IN_DLL when exporting AND using the classes/functions.
When compiling the classes for export, also define the preprocessor symbol \c JKQTP_LIB_EXPORT_LIBRARY .
*/
# ifndef __WINDOWS__
# if defined(WIN32) || defined(WIN64) || defined(_MSC_VER) || defined(_WIN32)
# define __WINDOWS__
# endif
# endif
#ifdef __WINDOWS__
# ifdef JKQTP_LIB_IN_DLL
# if defined(JKQTP_LIB_EXPORT_LIBRARY)
# define JKQTP_LIB_EXPORT __declspec(dllexport)
# else
# define JKQTP_LIB_EXPORT __declspec(dllimport)
# endif
# else
# define JKQTP_LIB_EXPORT
# endif
#else
# define JKQTP_LIB_EXPORT
#endif
#endif // jkqtp_IMPORT_H

View File

@ -21,7 +21,7 @@
#ifndef JKQTPALGORITHMS_H_INCLUDED
#define JKQTPALGORITHMS_H_INCLUDED
#include "jkqtcommon/jkqtp_imexport.h"
#include "jkqtcommon/jkqtcommon_imexport.h"

View File

@ -34,7 +34,7 @@
#include <ostream>
#include <iomanip>
#include <sstream>
#include "jkqtcommon/jkqtp_imexport.h"
#include "jkqtcommon/jkqtcommon_imexport.h"
#ifdef _OPENMP

View File

@ -30,7 +30,7 @@ const int JKQTPImageTools::PALETTE_ICON_WIDTH = 64;
const int JKQTPImageTools::PALETTE_IMAGEICON_HEIGHT = 64;
const int JKQTPImageTools::LUTSIZE = 256;
QList<int*> global_jkqtpimagetools_lutstore = QList<int*>();
QList<int*> JKQTPImageTools::global_jkqtpimagetools_lutstore = QList<int*>();
bool JKQTPImagePlot_buildDefinedPaletteLessThan(const QPair<double, QRgb> &s1, const QPair<double, QRgb> &s2)

View File

@ -24,7 +24,7 @@
#include <QDebug>
#include <QImage>
#include <QStringList>
#include "jkqtcommon/jkqtp_imexport.h"
#include "jkqtcommon/jkqtcommon_imexport.h"
#include <cmath>
#include <cfloat>
#include <stdint.h>
@ -34,19 +34,26 @@
\ingroup jkqtptools_qt
\internal
*/
struct JKQTP_LIB_EXPORT JKQTPImageTools {
struct JKQTPImageTools {
/*! \brief Width of the Palette-Icons, generated e.g. by JKQTPMathImageGetPaletteIcon()
\ingroup jkqtptools_qt */
static const int PALETTE_ICON_WIDTH;
static JKQTCOMMON_LIB_EXPORT const int PALETTE_ICON_WIDTH;
/*! \brief Height of the Palette-Icons, generated e.g. by JKQTPMathImageGetPaletteIcon()
\ingroup jkqtptools_qt */
static const int PALETTE_IMAGEICON_HEIGHT;
static JKQTCOMMON_LIB_EXPORT const int PALETTE_IMAGEICON_HEIGHT;
/*! \brief size of the lookup tables used by JKQTFPimagePlot_array2image()
\ingroup jkqtplotter_imagelots_tools
*/
static const int LUTSIZE;
static JKQTCOMMON_LIB_EXPORT const int LUTSIZE;
/*! \brief internal global storage object for lookup-tables
\ingroup jkqtplotter_imagelots_tools
\internal
*/
static JKQTCOMMON_LIB_EXPORT QList<int*> global_jkqtpimagetools_lutstore;
};
@ -133,13 +140,13 @@ enum JKQTPMathImageColorPalette {
\ingroup jkqtplotter_imagelots_tools
\see String2JKQTPMathImageColorPalette()
*/
JKQTP_LIB_EXPORT QString JKQTPMathImageColorPalette2String(JKQTPMathImageColorPalette p);
JKQTCOMMON_LIB_EXPORT QString JKQTPMathImageColorPalette2String(JKQTPMathImageColorPalette p);
/*! \brief convert the palette name \a p to JKQTPMathImageColorPalette (compatible with String2JKQTPMathImageColorPalette() )
\ingroup jkqtplotter_imagelots_tools
\see JKQTPMathImageColorPalette2String()
*/
JKQTP_LIB_EXPORT JKQTPMathImageColorPalette String2JKQTPMathImageColorPalette(const QString& p);
JKQTCOMMON_LIB_EXPORT JKQTPMathImageColorPalette String2JKQTPMathImageColorPalette(const QString& p);
@ -552,7 +559,7 @@ inline QList<T> JKQTPImagePlot_makeQList(const T& defaultVal, int N=1) {
\a lut needs to have \c lut_size) entries
*/
void JKQTP_LIB_EXPORT JKQTPImagePlot_buildDefinedPaletteLinInterpolate(int* lut, QList<QPair<double, QRgb> > items, int lut_size=JKQTPImageTools::LUTSIZE);
void JKQTCOMMON_LIB_EXPORT JKQTPImagePlot_buildDefinedPaletteLinInterpolate(int* lut, QList<QPair<double, QRgb> > items, int lut_size=JKQTPImageTools::LUTSIZE);
/*! \brief build a linearly interpolated palette in \a lut with \a N entries that are provided as (double, QRgb) value pairss in the variable arguments
\ingroup jkqtplotter_imagelots_tools
@ -562,7 +569,7 @@ void JKQTP_LIB_EXPORT JKQTPImagePlot_buildDefinedPaletteLinInterpolate(int* lut,
\a lut needs to have \c lut_size) entries
*/
void JKQTP_LIB_EXPORT JKQTPImagePlot_buildDefinedPaletteLinInterpolate(int* lut, int N, ...);
void JKQTCOMMON_LIB_EXPORT JKQTPImagePlot_buildDefinedPaletteLinInterpolate(int* lut, int N, ...);
/*! \brief build a palette in \a lut with \a N entries that are provided in \a items
\ingroup jkqtplotter_imagelots_tools
@ -572,16 +579,16 @@ void JKQTP_LIB_EXPORT JKQTPImagePlot_buildDefinedPaletteLinInterpolate(int* lut,
\a lut needs to have \c JKQTPImageTools::LUTSIZE) entries
*/
void JKQTP_LIB_EXPORT JKQTPImagePlot_buildDefinedPalette(int* lut, QList<QPair<double, QRgb> > items);
void JKQTCOMMON_LIB_EXPORT JKQTPImagePlot_buildDefinedPalette(int* lut, QList<QPair<double, QRgb> > items);
/*! \brief build a palette in \a lut with \a N entries that are provided as as (double, QRgb) value pairss in the variable arguments
\ingroup jkqtplotter_imagelots_tools
*/
void JKQTP_LIB_EXPORT JKQTPImagePlot_buildDefinedPalette(int* lut, int N, ...);
void JKQTCOMMON_LIB_EXPORT JKQTPImagePlot_buildDefinedPalette(int* lut, int N, ...);
/*! \brief return a list of all globally available LUTs
\ingroup jkqtplotter_imagelots_tools */
QStringList JKQTP_LIB_EXPORT JKQTPImagePlot_getPredefinedPalettes();
QStringList JKQTCOMMON_LIB_EXPORT JKQTPImagePlot_getPredefinedPalettes();
@ -589,20 +596,14 @@ QStringList JKQTP_LIB_EXPORT JKQTPImagePlot_getPredefinedPalettes();
\ingroup jkqtplotter_imagelots_tools
\internal
*/
JKQTP_LIB_EXPORT int* JKQTPImagePlot_getCreateLUT(QList<int *> &lutstore, JKQTPMathImageColorPalette palette);
JKQTCOMMON_LIB_EXPORT int* JKQTPImagePlot_getCreateLUT(QList<int *> &lutstore, JKQTPMathImageColorPalette palette);
/*! \brief frees a list of LUTs
\ingroup jkqtplotter_imagelots_tools
\internal
*/
void JKQTP_LIB_EXPORT JKQTPImagePlot_freeLUTs(QList<int *> &lutstore);
void JKQTCOMMON_LIB_EXPORT JKQTPImagePlot_freeLUTs(QList<int *> &lutstore);
/*! \brief internal global storage object for lookup-tables
\ingroup jkqtplotter_imagelots_tools
\internal
*/
extern JKQTP_LIB_EXPORT QList<int*> global_jkqtpimagetools_lutstore;
/*! \brief convert a 2D image (as 1D array) into a QImage with given palette (see JKQTFPColorPalette)
\ingroup jkqtplotter_imagelots_tools
@ -678,7 +679,7 @@ inline void JKQTPImagePlot_array2image(const T* dbl_in, int width, int height, Q
const int* lut_used=nullptr;
int lutSize=JKQTPImageTools::LUTSIZE;
if (global_jkqtpimagetools_lutstore.size()<=0) global_jkqtpimagetools_lutstore=JKQTPImagePlot_makeQList<int*>(nullptr, JKQTPImagePlot_getPredefinedPalettes().size()+2);
if (JKQTPImageTools::global_jkqtpimagetools_lutstore.size()<=0) JKQTPImageTools::global_jkqtpimagetools_lutstore =JKQTPImagePlot_makeQList<int*>(nullptr, JKQTPImagePlot_getPredefinedPalettes().size()+2);
img = QImage(width, height, QImage::Format_ARGB32);
@ -692,7 +693,7 @@ inline void JKQTPImagePlot_array2image(const T* dbl_in, int width, int height, Q
lutSize=lutUserSize;
//qDebug()<<"user palette "<<lutUser<<lutUserSize;
} else {
lut_used=JKQTPImagePlot_getCreateLUT(global_jkqtpimagetools_lutstore, palette);
lut_used=JKQTPImagePlot_getCreateLUT(JKQTPImageTools::global_jkqtpimagetools_lutstore, palette);
}
@ -770,31 +771,31 @@ inline void JKQTPImagePlot_array2image(const T* dbl_in, int width, int height, Q
/*! \brief generates a QImage with width \a width and height 1 for the i-th color palette (\a i is based on the list returned by JKQTPImagePlot_getPredefinedPalettes() )
\ingroup jkqtplotter_imagelots_tools */
QImage JKQTP_LIB_EXPORT JKQTPMathImageGetPaletteImage(int i, int width);
QImage JKQTCOMMON_LIB_EXPORT JKQTPMathImageGetPaletteImage(int i, int width);
/*! \brief generates a QImage with width \a width and height \a height for the i-th color palette (\a i is based on the list returned by JKQTPImagePlot_getPredefinedPalettes() )
\ingroup jkqtplotter_imagelots_tools */
QImage JKQTP_LIB_EXPORT JKQTPMathImageGetPaletteImage(int i, int width, int height);
QImage JKQTCOMMON_LIB_EXPORT JKQTPMathImageGetPaletteImage(int i, int width, int height);
/*! \brief generates a QImage with width \a width and height 1 for a specific JKQTPMathImageColorPalette
\ingroup jkqtplotter_imagelots_tools */
QImage JKQTP_LIB_EXPORT JKQTPMathImageGetPaletteImage(JKQTPMathImageColorPalette palette, int width);
QImage JKQTCOMMON_LIB_EXPORT JKQTPMathImageGetPaletteImage(JKQTPMathImageColorPalette palette, int width);
/*! \brief generates a QImage with width \a width and height \a height for a specific JKQTPMathImageColorPalette
\ingroup jkqtplotter_imagelots_tools */
QImage JKQTP_LIB_EXPORT JKQTPMathImageGetPaletteImage(JKQTPMathImageColorPalette palette, int width, int height);
QImage JKQTCOMMON_LIB_EXPORT JKQTPMathImageGetPaletteImage(JKQTPMathImageColorPalette palette, int width, int height);
/*! \brief generates a QImage with width \a width and height 1 for a lookup-table \a lut with \a lut_size entries
\ingroup jkqtplotter_imagelots_tools */
QImage JKQTP_LIB_EXPORT JKQTPMathImageGetPaletteImage(int* lut, int lut_size, int width);
QImage JKQTCOMMON_LIB_EXPORT JKQTPMathImageGetPaletteImage(int* lut, int lut_size, int width);
/*! \brief generates a QImage with width \a width and height \a height for a lookup-table \a lut with \a lut_size entries
\ingroup jkqtplotter_imagelots_tools */
QImage JKQTP_LIB_EXPORT JKQTPMathImageGetAlphaPaletteImage(int* lut, int lut_size, int width, int height);
QImage JKQTCOMMON_LIB_EXPORT JKQTPMathImageGetAlphaPaletteImage(int* lut, int lut_size, int width, int height);
/*! \brief generates a QIcon for the i-th color palette (\a i is based on the list returned by JKQTPImagePlot_getPredefinedPalettes() )
\ingroup jkqtplotter_imagelots_tools */
QIcon JKQTP_LIB_EXPORT JKQTPMathImageGetPaletteIcon(int i) ;
QIcon JKQTCOMMON_LIB_EXPORT JKQTPMathImageGetPaletteIcon(int i) ;
/*! \brief generates a QIcon for a specific JKQTPMathImageColorPalette
\ingroup jkqtplotter_imagelots_tools */
QIcon JKQTP_LIB_EXPORT JKQTPMathImageGetPaletteIcon(JKQTPMathImageColorPalette palette) ;
QIcon JKQTCOMMON_LIB_EXPORT JKQTPMathImageGetPaletteIcon(JKQTPMathImageColorPalette palette) ;

View File

@ -21,7 +21,7 @@
#ifndef JKQTPDEBUGGINGTOOLS_H_INCLUDED
#define JKQTPDEBUGGINGTOOLS_H_INCLUDED
#include "jkqtcommon/jkqtp_imexport.h"
#include "jkqtcommon/jkqtcommon_imexport.h"
#include <QString>
#include <QElapsedTimer>
@ -52,7 +52,7 @@
/** \brief RAII construct that times its lifetime, outputting properly indented qDebug()-message
* \ingroup jkqtptools_debugging
*/
class JKQTP_LIB_EXPORT JKQTPAutoOutputTimer : public QElapsedTimer
class JKQTCOMMON_LIB_EXPORT JKQTPAutoOutputTimer : public QElapsedTimer
{
public:
explicit JKQTPAutoOutputTimer(const QString& message);

View File

@ -20,7 +20,7 @@
#ifndef JKQTPDRAWINGTOOLS_H_INCLUDED
#define JKQTPDRAWINGTOOLS_H_INCLUDED
#include "jkqtcommon/jkqtp_imexport.h"
#include "jkqtcommon/jkqtcommon_imexport.h"
#include <QPaintDevice>
#include <QPainter>
#include <QPolygonF>
@ -44,10 +44,10 @@ class JKQTPEnhancedPainter; // forward
/*! \brief tool class with static values used by JKQTPlotter/JKQTBasePlotter
\ingroup jkqtptools_drawing
*/
struct JKQTP_LIB_EXPORT JKQTPlotterDrawingTools {
struct JKQTPlotterDrawingTools {
/** \brief smallest linewidth any line in JKQTPlotter/JKQTBasePlotter may have
*/
static const double ABS_MIN_LINEWIDTH;
static JKQTCOMMON_LIB_EXPORT const double ABS_MIN_LINEWIDTH;
};
@ -137,16 +137,16 @@ enum JKQTPGraphSymbols {
/** \brief converts a JKQTPGraphSymbols variable into a identifier string
* \ingroup jkqtptools_drawing
*/
JKQTP_LIB_EXPORT QString JKQTPGraphSymbols2String(JKQTPGraphSymbols pos);
JKQTCOMMON_LIB_EXPORT QString JKQTPGraphSymbols2String(JKQTPGraphSymbols pos);
/** \brief converts a JKQTPGraphSymbols variable into a human-readable string
* \ingroup jkqtptools_drawing
*/
JKQTP_LIB_EXPORT QString JKQTPGraphSymbols2NameString(JKQTPGraphSymbols pos);
JKQTCOMMON_LIB_EXPORT QString JKQTPGraphSymbols2NameString(JKQTPGraphSymbols pos);
/** \brief converts a String into a JKQTPGraphSymbols
* \ingroup jkqtptools_drawing
*/
JKQTP_LIB_EXPORT JKQTPGraphSymbols String2JKQTPGraphSymbols(const QString& pos);
JKQTCOMMON_LIB_EXPORT JKQTPGraphSymbols String2JKQTPGraphSymbols(const QString& pos);
@ -154,7 +154,7 @@ JKQTP_LIB_EXPORT JKQTPGraphSymbols String2JKQTPGraphSymbols(const QString& pos);
/** \brief rotate a rectangle by given angle (rotates all points around the center of the rectangle and returns it as a QPolygonF)
* \ingroup jkqtptools_drawing
*/
JKQTP_LIB_EXPORT QPolygonF jkqtpRotateRect(QRectF r, double angle);
JKQTCOMMON_LIB_EXPORT QPolygonF jkqtpRotateRect(QRectF r, double angle);
/*! \brief plot the specified symbol at pixel position x,y
\ingroup jkqtptools_drawing
@ -184,7 +184,7 @@ inline void JKQTPPlotSymbol(TPainter& painter, double x, double y, JKQTPGraphSym
\param color color of the symbol lines
\param fillColor color of the symbol filling
*/
JKQTP_LIB_EXPORT void JKQTPPlotSymbol(QPaintDevice& paintDevice, double x, double y, JKQTPGraphSymbols symbol, double size, double symbolLineWidth, QColor color, QColor fillColor);
JKQTCOMMON_LIB_EXPORT void JKQTPPlotSymbol(QPaintDevice& paintDevice, double x, double y, JKQTPGraphSymbols symbol, double size, double symbolLineWidth, QColor color, QColor fillColor);
/*! \brief draw an ellipse without setting pen or brush, or saving the painter!
@ -204,7 +204,7 @@ JKQTP_LIB_EXPORT void JKQTPPlotSymbol(QPaintDevice& paintDevice, double x, doubl
\note all angles are given in degrees [0..360]
*/
JKQTP_LIB_EXPORT QVector<QPointF> JKQTPDrawEllipse(double x, double y, double a, double b, double angle_start=0, double angle_end=360, double alpha=0, int controlPoints=180, QPointF* x_start=nullptr, QPointF* x_end=nullptr);
JKQTCOMMON_LIB_EXPORT QVector<QPointF> JKQTPDrawEllipse(double x, double y, double a, double b, double angle_start=0, double angle_end=360, double alpha=0, int controlPoints=180, QPointF* x_start=nullptr, QPointF* x_end=nullptr);
/*! \brief draw a tooltip, using the current brush and pen of the provided painter
\ingroup jkqtptools_drawing
@ -226,7 +226,7 @@ inline void JKQTPDrawTooltip(TPainter& painter, double x, double y, const QRectF
* \param distanceThreshold if two end-points are closer together as this value, they are united to a single point
* \return a cleaned polygon, where all consecutive points that were closer than distanceThreshold are united
*/
JKQTP_LIB_EXPORT QPolygonF JKQTPCleanPolygon(const QPolygonF& poly, double distanceThreshold=0.3);
JKQTCOMMON_LIB_EXPORT QPolygonF JKQTPCleanPolygon(const QPolygonF& poly, double distanceThreshold=0.3);
/** \brief takes a list of QLineF objesct \a lines and tries to combine as many of them as possible to QPolygonF objects.
* <b>Note: This method implements an incomplete algorithm with \a searchMaxSurroundingElements>0, as solving
@ -238,7 +238,7 @@ JKQTP_LIB_EXPORT QPolygonF JKQTPCleanPolygon(const QPolygonF& poly, double dista
* \param searchMaxSurroundingElements limits the search for a connected polygon to at most this number of neighbors
* \return a vector of QPolygonF objects, which contain longer line-segments formed from \a lines
*/
JKQTP_LIB_EXPORT QVector<QPolygonF> JKQTPUnifyLinesToPolygons(const QVector<QLineF>& lines, double distanceThreshold=0.3, int searchMaxSurroundingElements=10);
JKQTCOMMON_LIB_EXPORT QVector<QPolygonF> JKQTPUnifyLinesToPolygons(const QVector<QLineF>& lines, double distanceThreshold=0.3, int searchMaxSurroundingElements=10);

View File

@ -20,7 +20,7 @@
#ifndef JKQTPENHANCED_PAINTERS_H
#define JKQTPENHANCED_PAINTERS_H
#include "jkqtcommon/jkqtp_imexport.h"
#include "jkqtcommon/jkqtcommon_imexport.h"
#include <QPainter>
@ -30,7 +30,7 @@
*/
class JKQTP_LIB_EXPORT JKQTPEnhancedPainter : public QPainter {
class JKQTCOMMON_LIB_EXPORT JKQTPEnhancedPainter : public QPainter {
Q_GADGET
public:
JKQTPEnhancedPainter(QPaintDevice* device);

View File

@ -1,5 +1,5 @@
/*
Copyright (c) 2008-2015 Jan W. Krieger (<jan@jkrieger.de>, <j.krieger@dkfz.de>) (DKFZ) & IWR, University of Heidelberg
Copyright (c) 2008-2019 Jan W. Krieger (<jan@jkrieger.de>, <j.krieger@dkfz.de>) (DKFZ) & IWR, University of Heidelberg
last modification: $LastChangedDate: 2015-06-10 19:19:10 +0200 (Mi, 10 Jun 2015) $ (revision $Rev: 3976 $)

View File

@ -1,5 +1,5 @@
/*
Copyright (c) 2008-2015 Jan W. Krieger (<jan@jkrieger.de>, <j.krieger@dkfz.de>) (DKFZ) & IWR, University of Heidelberg
Copyright (c) 2008-2019 Jan W. Krieger (<jan@jkrieger.de>, <j.krieger@dkfz.de>) (DKFZ) & IWR, University of Heidelberg
last modification: $LastChangedDate: 2015-06-10 19:19:10 +0200 (Mi, 10 Jun 2015) $ (revision $Rev: 3976 $)
@ -23,7 +23,7 @@
#include <cstdlib>
#include <iostream>
#include "jkqtp_imexport.h"
#include "jkqtcommon_imexport.h"
#ifndef __WINDOWS__
# if defined(WIN32) || defined(WIN64) || defined(_MSC_VER) || defined(_WIN32)
@ -127,7 +127,7 @@
* \test you can find an example application in the file \link test_hrestimer.cpp \endlink.
*
*/
class JKQTP_LIB_EXPORT JKQTPHighResTimer {
class JKQTCOMMON_LIB_EXPORT JKQTPHighResTimer {
protected:
#ifdef __WINDOWS__
/** \brief internal: time stamp of the last call of start() */

View File

@ -35,7 +35,7 @@
#include <ostream>
#include <iomanip>
#include <sstream>
#include "jkqtcommon/jkqtp_imexport.h"
#include "jkqtcommon/jkqtcommon_imexport.h"
#include "jkqtcommon/jkqtparraytools.h"
#include "jkqtcommon/jkqtpmathtools.h"
#include "jkqtcommon/jkqtpstringtools.h"

View File

@ -47,7 +47,7 @@
#include <ctype.h>
#include <list>
#include <utility>
#include "jkqtp_imexport.h"
#include "jkqtcommon_imexport.h"
#ifndef JKQTPMATHPARSER_H
#define JKQTPMATHPARSER_H
@ -235,7 +235,7 @@
}
\endcode
*/
class JKQTP_LIB_EXPORT JKQTPMathParser
class JKQTCOMMON_LIB_EXPORT JKQTPMathParser
{
protected:
void* data;
@ -315,7 +315,7 @@ class JKQTP_LIB_EXPORT JKQTPMathParser
/** \brief result of any expression
* \ingroup jkmpultil*/
struct JKQTP_LIB_EXPORT jkmpResult {
struct JKQTCOMMON_LIB_EXPORT jkmpResult {
jkmpResult();
bool isValid;
@ -336,7 +336,7 @@ class JKQTP_LIB_EXPORT JKQTPMathParser
* only contains pointers to the data
* \ingroup jkmpultil
*/
struct JKQTP_LIB_EXPORT jkmpVariable {
struct JKQTCOMMON_LIB_EXPORT jkmpVariable {
jkmpVariable();
jkmpResultType type; /*!< \brief type of the variable */
bool internal; /*!< \brief this is an internal variable */
@ -348,7 +348,7 @@ class JKQTP_LIB_EXPORT JKQTPMathParser
/** \brief This struct is for managing temporary variables. It is generally like jkmpVariable.
* \ingroup jkmpultil
*/
struct JKQTP_LIB_EXPORT jkmpTempVariable {
struct JKQTCOMMON_LIB_EXPORT jkmpTempVariable {
std::string name; /*!< \brief name of the variable */
jkmpResultType type; /*!< \brief type of the variable */
bool internal; /*!< \brief this is an internal variable */
@ -385,7 +385,7 @@ class JKQTP_LIB_EXPORT JKQTPMathParser
/** \brief description of a user registered function */
struct JKQTP_LIB_EXPORT jkmpFunctionDescriptor {
struct JKQTCOMMON_LIB_EXPORT jkmpFunctionDescriptor {
jkmpEvaluateFunc function; /*!< \brief a pointer to the function implementation */
std::string name; /*!< \brief name of the function */
};
@ -400,7 +400,7 @@ class JKQTP_LIB_EXPORT JKQTPMathParser
* All allowed node types must inherit from jkmpNode
* \ingroup jkmpNodes
*/
class JKQTP_LIB_EXPORT jkmpNode {
class JKQTCOMMON_LIB_EXPORT jkmpNode {
protected:
JKQTPMathParser* parser; /*!< \brief points to the parser object that is used to evaluate this node */
jkmpNode* parent; /*!< \brief points to the parent node */
@ -430,7 +430,7 @@ class JKQTP_LIB_EXPORT JKQTPMathParser
* add (+), subtract (-), multiply (*), divide (/), a to the power of b (a^b)
* \ingroup jkmpNodes
*/
class JKQTP_LIB_EXPORT jkmpBinaryArithmeticNode: public jkmpNode {
class JKQTCOMMON_LIB_EXPORT jkmpBinaryArithmeticNode: public jkmpNode {
private:
jkmpNode* left, *right;
char operation;
@ -455,7 +455,7 @@ class JKQTP_LIB_EXPORT JKQTPMathParser
* \brief This class represents a binary boolean operation: and, or, xor, nor, nand
* \ingroup jkmpNodes
*/
class JKQTP_LIB_EXPORT jkmpBinaryBoolNode: public jkmpNode {
class JKQTCOMMON_LIB_EXPORT jkmpBinaryBoolNode: public jkmpNode {
private:
jkmpNode* left, *right;
char operation;
@ -480,7 +480,7 @@ class JKQTP_LIB_EXPORT JKQTPMathParser
* \brief This class represents a binary compare operation: !=, ==, >=, <=, >, <
* \ingroup jkmpNodes
*/
class JKQTP_LIB_EXPORT jkmpCompareNode: public jkmpNode {
class JKQTCOMMON_LIB_EXPORT jkmpCompareNode: public jkmpNode {
private:
jkmpNode* left, *right;
char operation;
@ -505,7 +505,7 @@ class JKQTP_LIB_EXPORT JKQTPMathParser
* \brief This class represents a unary operations: ! (bool negation), - (arithmetic negation)
* \ingroup jkmpNodes
*/
class JKQTP_LIB_EXPORT jkmpUnaryNode: public jkmpNode {
class JKQTCOMMON_LIB_EXPORT jkmpUnaryNode: public jkmpNode {
private:
jkmpNode* child;
char operation;
@ -529,7 +529,7 @@ class JKQTP_LIB_EXPORT JKQTPMathParser
* \brief This class represents a variable assignment (a = expression)
* \ingroup jkmpNodes
*/
class JKQTP_LIB_EXPORT jkmpVariableAssignNode: public jkmpNode {
class JKQTCOMMON_LIB_EXPORT jkmpVariableAssignNode: public jkmpNode {
private:
jkmpNode* child;
std::string variable;
@ -554,7 +554,7 @@ class JKQTP_LIB_EXPORT JKQTPMathParser
* \brief This class represents a number, a string contant or a boolean contant (true/false)
* \ingroup jkmpNodes
*/
class JKQTP_LIB_EXPORT jkmpConstantNode: public jkmpNode {
class JKQTCOMMON_LIB_EXPORT jkmpConstantNode: public jkmpNode {
private:
jkmpResult data;
public:
@ -573,7 +573,7 @@ class JKQTP_LIB_EXPORT JKQTPMathParser
* \brief This class represents a variable.
* \ingroup jkmpNodes
*/
class JKQTP_LIB_EXPORT jkmpVariableNode: public jkmpNode {
class JKQTCOMMON_LIB_EXPORT jkmpVariableNode: public jkmpNode {
private:
std::string var;
public:
@ -598,7 +598,7 @@ class JKQTP_LIB_EXPORT JKQTPMathParser
*
* Functions may have 8 parameters at the most.
*/
class JKQTP_LIB_EXPORT jkmpFunctionNode: public jkmpNode {
class JKQTCOMMON_LIB_EXPORT jkmpFunctionNode: public jkmpNode {
private:
std::string fun;
jkmpNode** child;
@ -627,7 +627,7 @@ class JKQTP_LIB_EXPORT JKQTPMathParser
*
* when evaluating the result will be the result of the last node in the list.
*/
class JKQTP_LIB_EXPORT jkmpNodeList: public jkmpNode {
class JKQTCOMMON_LIB_EXPORT jkmpNodeList: public jkmpNode {
private:
std::vector<jkmpNode*> list;
public:
@ -666,7 +666,7 @@ class JKQTP_LIB_EXPORT JKQTPMathParser
* error handler and assign it (function pointer) to the global variable jkmathparser_exception_function.
* If this is not nullptr this function will be called instead of throwing an exception.
*/
class JKQTP_LIB_EXPORT jkmpException : public std::exception {
class JKQTCOMMON_LIB_EXPORT jkmpException : public std::exception {
private:
/** \brief the error message */
std::string errormessage;

View File

@ -21,7 +21,7 @@
#ifndef jkqtpmathtools_H_INCLUDED
#define jkqtpmathtools_H_INCLUDED
#include "jkqtcommon/jkqtp_imexport.h"
#include "jkqtcommon/jkqtcommon_imexport.h"
#include "jkqtcommon/jkqtpstringtools.h"
#include <cmath>
#include <limits>
@ -374,7 +374,7 @@ inline double jkqtp_polyEval(double x, PolyItP firstP, PolyItP lastP) {
/*! \brief a C++-functor, which evaluates a polynomial
\ingroup jkqtptools_math_basic
*/
struct JKQTP_LIB_EXPORT JKQTPPolynomialFunctor {
struct JKQTCOMMON_LIB_EXPORT JKQTPPolynomialFunctor {
std::vector<double> P;
template <class PolyItP>
inline JKQTPPolynomialFunctor(PolyItP firstP, PolyItP lastP) {

View File

@ -34,7 +34,7 @@
#include <ostream>
#include <iomanip>
#include <sstream>
#include "jkqtcommon/jkqtp_imexport.h"
#include "jkqtcommon/jkqtcommon_imexport.h"
#include "jkqtcommon/jkqtplinalgtools.h"
#include "jkqtcommon/jkqtparraytools.h"
#include "jkqtcommon/jkqtpdebuggingtools.h"
@ -1018,7 +1018,7 @@ inline void jkqtpstat5NumberStatisticsAndOutliers(InputIt first, InputIt last, O
\ingroup jkqtptools_math_statistics_basic
\see https://en.wikipedia.org/wiki/Five-number_summary, jkqtpstat5NumberStatistics()
*/
struct JKQTP_LIB_EXPORT JKQTPStat5NumberStatistics {
struct JKQTCOMMON_LIB_EXPORT JKQTPStat5NumberStatistics {
JKQTPStat5NumberStatistics();
/** \brief minimum value */

View File

@ -34,7 +34,7 @@
#include <ostream>
#include <iomanip>
#include <sstream>
#include "jkqtcommon/jkqtp_imexport.h"
#include "jkqtcommon/jkqtcommon_imexport.h"
#include "jkqtcommon/jkqtplinalgtools.h"
#include "jkqtcommon/jkqtparraytools.h"
#include "jkqtcommon/jkqtpdebuggingtools.h"
@ -60,13 +60,13 @@ typedef std::function<double(double)> JKQTPStatGroupDefinitionFunctor1D;
\see JKQTPStatGroupDefinitionFunctor1D
*/
JKQTP_LIB_EXPORT double jkqtpstatGroupingIdentity1D(double v);
JKQTCOMMON_LIB_EXPORT double jkqtpstatGroupingIdentity1D(double v);
/*! \brief use a rounded column value as group ID directly \f$ f(x)=\mbox{round}(x) \f$
\ingroup jkqtptools_math_statistics_grouped
\see JKQTPStatGroupDefinitionFunctor1D
*/
JKQTP_LIB_EXPORT double jkqtpstatGroupingRound1D(double v);
JKQTCOMMON_LIB_EXPORT double jkqtpstatGroupingRound1D(double v);
/*! \brief assign each value to groups \f$ \mbox{firstGroupCenter} \f$ , \f$ \mbox{firstGroupCenter}\pm\mbox{groupWidth}/2\f$ , \f$ \mbox{firstGroupCenter}\pm2\cdot\mbox{groupWidth}/2 \f$ , \f$ \mbox{firstGroupCenter}\pm3\cdot\mbox{groupWidth}/2 \f$ , ...
\ingroup jkqtptools_math_statistics_grouped
@ -74,7 +74,7 @@ JKQTP_LIB_EXPORT double jkqtpstatGroupingRound1D(double v);
\see JKQTPStatGroupDefinitionFunctor1D, jkqtpstatMakeGroupingCustomRound1D() for a factory-function that returns a functor of this function bound to specific arguments.
*/
JKQTP_LIB_EXPORT double jkqtpstatGroupingCustomRound1D(double v, double firstGroupCenter, double groupWidth);
JKQTCOMMON_LIB_EXPORT double jkqtpstatGroupingCustomRound1D(double v, double firstGroupCenter, double groupWidth);
/*! \brief generates a functor of jkqtpstatGroupingCustomRound1D() with the two paramaters \a firstGroupCenter and \a groupWidth fixed to the given values
\ingroup jkqtptools_math_statistics_grouped
@ -82,7 +82,7 @@ JKQTP_LIB_EXPORT double jkqtpstatGroupingCustomRound1D(double v, double firstGro
\see JKQTPStatGroupDefinitionFunctor1D, jkqtpstatGroupingCustomRound1D()
*/
JKQTP_LIB_EXPORT JKQTPStatGroupDefinitionFunctor1D jkqtpstatMakeGroupingCustomRound1D(double firstGroupCenter, double groupWidth);
JKQTCOMMON_LIB_EXPORT JKQTPStatGroupDefinitionFunctor1D jkqtpstatMakeGroupingCustomRound1D(double firstGroupCenter, double groupWidth);

View File

@ -34,7 +34,7 @@
#include <ostream>
#include <iomanip>
#include <sstream>
#include "jkqtcommon/jkqtp_imexport.h"
#include "jkqtcommon/jkqtcommon_imexport.h"
#include "jkqtcommon/jkqtplinalgtools.h"
#include "jkqtcommon/jkqtparraytools.h"
#include "jkqtcommon/jkqtpdebuggingtools.h"

View File

@ -34,7 +34,7 @@
#include <ostream>
#include <iomanip>
#include <sstream>
#include "jkqtcommon/jkqtp_imexport.h"
#include "jkqtcommon/jkqtcommon_imexport.h"
#include "jkqtcommon/jkqtplinalgtools.h"
#include "jkqtcommon/jkqtparraytools.h"
#include "jkqtcommon/jkqtpdebuggingtools.h"
@ -49,64 +49,64 @@
\f[ k(t):=\frac{1}{\sqrt{2\pi}}\exp \left(-\frac{1}{2}t^2\right) \f]
*/
JKQTP_LIB_EXPORT double jkqtpstatKernel1DGaussian(double t);
JKQTCOMMON_LIB_EXPORT double jkqtpstatKernel1DGaussian(double t);
/*! \brief a 1D Cauchy kernel function, e.g. for Kernel Density Estimation
\ingroup jkqtptools_math_statistics_1dkde_kernels
\f[ k(t):=\frac{1}{\pi(1+t^2)} \f]
*/
JKQTP_LIB_EXPORT double jkqtpstatKernel1DCauchy(double t);
JKQTCOMMON_LIB_EXPORT double jkqtpstatKernel1DCauchy(double t);
/*! \brief a 1D Picard kernel function, e.g. for Kernel Density Estimation
\ingroup jkqtptools_math_statistics_1dkde_kernels
\f[ k(t):=\frac{1}{2}\exp(-|t|) \f]
*/
JKQTP_LIB_EXPORT double jkqtpstatKernel1DPicard(double t);
JKQTCOMMON_LIB_EXPORT double jkqtpstatKernel1DPicard(double t);
/*! \brief a 1D Epanechnikov kernel function, e.g. for Kernel Density Estimation
\ingroup jkqtptools_math_statistics_1dkde_kernels
\f[ k(t) :=\begin{cases}\frac{3}{4} ( 1- t^2 ), & \text{if }t\in [-1;1]\\0, & \text{else}\end{cases} \f]
*/
JKQTP_LIB_EXPORT double jkqtpstatKernel1DEpanechnikov(double t);
JKQTCOMMON_LIB_EXPORT double jkqtpstatKernel1DEpanechnikov(double t);
/*! \brief a 1D uniform kernel function, e.g. for Kernel Density Estimation
\ingroup jkqtptools_math_statistics_1dkde_kernels
\f[ k(t) :=\begin{cases}0.5, & \text{if }t\in [-1;1]\\0, & \text{else}\end{cases} \f]
*/
JKQTP_LIB_EXPORT double jkqtpstatKernel1DUniform(double t);
JKQTCOMMON_LIB_EXPORT double jkqtpstatKernel1DUniform(double t);
/*! \brief a 1D Epanechnikov kernel function, e.g. for Kernel Density Estimation
\ingroup jkqtptools_math_statistics_1dkde_kernels
\f[ k(t) :=\begin{cases}1-|t|, & \text{if }t\in [-1;1]\\0, & \text{else}\end{cases} \f]
*/
JKQTP_LIB_EXPORT double jkqtpstatKernel1DTriangle(double t);
JKQTCOMMON_LIB_EXPORT double jkqtpstatKernel1DTriangle(double t);
/*! \brief a 1D quartic kernel function, e.g. for Kernel Density Estimation
\ingroup jkqtptools_math_statistics_1dkde_kernels
\f[ k(t) :=\begin{cases}\frac{15}{16}(1-t^2)^2, & \text{if }t\in [-1;1]\\0, & \text{else}\end{cases} \f]
*/
JKQTP_LIB_EXPORT double jkqtpstatKernel1DQuartic(double t);
JKQTCOMMON_LIB_EXPORT double jkqtpstatKernel1DQuartic(double t);
/*! \brief a 1D triweight kernel function, e.g. for Kernel Density Estimation
\ingroup jkqtptools_math_statistics_1dkde_kernels
\f[ k(t) :=\begin{cases}\frac{35}{32}(1-t^2)^3, & \text{if }t\in [-1;1]\\0, & \text{else}\end{cases} \f]
*/
JKQTP_LIB_EXPORT double jkqtpstatKernel1DTriweight(double t);
JKQTCOMMON_LIB_EXPORT double jkqtpstatKernel1DTriweight(double t);
/*! \brief a 1D tricube kernel function, e.g. for Kernel Density Estimation
\ingroup jkqtptools_math_statistics_1dkde_kernels
\f[ k(t) :=\begin{cases}\frac{70}{81}(1-|t|^3)^3, & \text{if }t\in [-1;1]\\0, & \text{else}\end{cases} \f]
*/
JKQTP_LIB_EXPORT double jkqtpstatKernel1DTricube(double t);
JKQTCOMMON_LIB_EXPORT double jkqtpstatKernel1DTricube(double t);
/*! \brief a 1D cosine kernel function, e.g. for Kernel Density Estimation
\ingroup jkqtptools_math_statistics_1dkde_kernels
\f[ k(t) :=\begin{cases}\frac{\pi}{4}\cos\left(\frac{\pi}{2}t\right), & \text{if }t\in [-1;1]\\0, & \text{else}\end{cases} \f]
*/
JKQTP_LIB_EXPORT double jkqtpstatKernel1DCosine(double t);
JKQTCOMMON_LIB_EXPORT double jkqtpstatKernel1DCosine(double t);
@ -125,14 +125,14 @@ JKQTP_LIB_EXPORT double jkqtpstatKernel1DCosine(double t);
\f[ k(t_x, t_y):=\frac{1}{2\pi}\exp \left(-\frac{t_x^2+t_y^2}{2}\right) \f]
*/
JKQTP_LIB_EXPORT double jkqtpstatKernel2DGaussian(double tx, double ty);
JKQTCOMMON_LIB_EXPORT double jkqtpstatKernel2DGaussian(double tx, double ty);
/*! \brief a 1D Gaussian kernel function, e.g. for Kernel Density Estimation
\ingroup jkqtptools_math_statistics_2dkde_kernels
\f[ k(t_x, t_y):=\begin{cases}\frac{1}{4}, & \text{if }t_x,t_y\in [-1;1]\\0, & \text{else}\end{cases} \f]
*/
JKQTP_LIB_EXPORT double jkqtpstatKernel2DUniform(double tx, double ty);
JKQTCOMMON_LIB_EXPORT double jkqtpstatKernel2DUniform(double tx, double ty);

View File

@ -34,7 +34,7 @@
#include <ostream>
#include <iomanip>
#include <sstream>
#include "jkqtcommon/jkqtp_imexport.h"
#include "jkqtcommon/jkqtcommon_imexport.h"
#include "jkqtcommon/jkqtplinalgtools.h"
#include "jkqtcommon/jkqtparraytools.h"
#include "jkqtcommon/jkqtpdebuggingtools.h"

View File

@ -34,7 +34,7 @@
#include <ostream>
#include <iomanip>
#include <sstream>
#include "jkqtcommon/jkqtp_imexport.h"
#include "jkqtcommon/jkqtcommon_imexport.h"
#include "jkqtcommon/jkqtplinalgtools.h"
#include "jkqtcommon/jkqtparraytools.h"
#include "jkqtcommon/jkqtpdebuggingtools.h"
@ -278,37 +278,37 @@ enum class JKQTPStatRegressionModelType {
/*! \brief Generates functors \c f(x,a,b) for the models from JKQTPStatRegressionModelType in \a type
\ingroup jkqtptools_math_statistics_regression
*/
JKQTP_LIB_EXPORT std::function<double(double, double, double)> jkqtpStatGenerateRegressionModel(JKQTPStatRegressionModelType type);
JKQTCOMMON_LIB_EXPORT std::function<double(double, double, double)> jkqtpStatGenerateRegressionModel(JKQTPStatRegressionModelType type);
/*! \brief Generates a LaTeX string for the models from JKQTPStatRegressionModelType in \a type
\ingroup jkqtptools_math_statistics_regression
*/
JKQTP_LIB_EXPORT QString jkqtpstatRegressionModel2Latex(JKQTPStatRegressionModelType type, double a, double b);
JKQTCOMMON_LIB_EXPORT QString jkqtpstatRegressionModel2Latex(JKQTPStatRegressionModelType type, double a, double b);
/*! \brief Generates functors \c f(x) for the models from JKQTPStatRegressionModelType in \a type and binds the parameter values \a and \a b to the returned function
\ingroup jkqtptools_math_statistics_regression
*/
JKQTP_LIB_EXPORT std::function<double(double)> jkqtpStatGenerateRegressionModel(JKQTPStatRegressionModelType type, double a, double b);
JKQTCOMMON_LIB_EXPORT std::function<double(double)> jkqtpStatGenerateRegressionModel(JKQTPStatRegressionModelType type, double a, double b);
/*! \brief Generates the transformation function for x-data (\c result.first ) and y-data (\c result.second ) for each regression model in JKQTPStatRegressionModelType in \a type
\ingroup jkqtptools_math_statistics_regression
\internal
*/
JKQTP_LIB_EXPORT std::pair<std::function<double(double)>,std::function<double(double)> > jkqtpStatGenerateTransformation(JKQTPStatRegressionModelType type);
JKQTCOMMON_LIB_EXPORT std::pair<std::function<double(double)>,std::function<double(double)> > jkqtpStatGenerateTransformation(JKQTPStatRegressionModelType type);
/*! \brief Generates the transformation function for a-parameter (offset, \c result.first : transform, \c result.second : back-transform) for each regression model in JKQTPStatRegressionModelType in \a type
\ingroup jkqtptools_math_statistics_regression
\internal
*/
JKQTP_LIB_EXPORT std::pair<std::function<double(double)>,std::function<double(double)> > jkqtpStatGenerateParameterATransformation(JKQTPStatRegressionModelType type);
JKQTCOMMON_LIB_EXPORT std::pair<std::function<double(double)>,std::function<double(double)> > jkqtpStatGenerateParameterATransformation(JKQTPStatRegressionModelType type);
/*! \brief Generates the transformation function for b-parameter (slope, \c result.first : transform, \c result.second : back-transform) for each regression model in JKQTPStatRegressionModelType in \a type
\ingroup jkqtptools_math_statistics_regression
\internal
*/
JKQTP_LIB_EXPORT std::pair<std::function<double(double)>,std::function<double(double)> > jkqtpStatGenerateParameterBTransformation(JKQTPStatRegressionModelType type);
JKQTCOMMON_LIB_EXPORT std::pair<std::function<double(double)>,std::function<double(double)> > jkqtpStatGenerateParameterBTransformation(JKQTPStatRegressionModelType type);
/*! \brief calculate the linear regression coefficients for a given data range \a firstX / \a firstY ... \a lastX / \a lastY where the model is defined by \a type

View File

@ -85,7 +85,7 @@ std::string jkqtp_tolower(const std::string& s){
va_list ap;
char buffer[4096];
va_start (ap, templ);
vsprintf (buffer, templ.c_str(), ap);
vsnprintf(buffer, 4096, templ.c_str(), ap);
va_end (ap);
std::string ret(buffer);
return ret;
@ -140,7 +140,7 @@ std::string jkqtp_tolower(const std::string& s){
if (dpos==std::string::npos) {
return r;
} else {
long i=r.size()-1;
long i= static_cast<long>(r.size())-1;
bool nonz=false;
while (i>=0) {
//std::cout<<i<<"\n";

View File

@ -21,7 +21,7 @@
#ifndef JKQTPSTRINGTOOLS_H_INCLUDED
#define JKQTPSTRINGTOOLS_H_INCLUDED
#include "jkqtcommon/jkqtp_imexport.h"
#include "jkqtcommon/jkqtcommon_imexport.h"
#include <QString>
#include <QLocale>
#include <QPainter>
@ -30,21 +30,21 @@
/** \brief converts a QT::PenStyle into a string
* \ingroup jkqtptools_string
*/
JKQTP_LIB_EXPORT QString jkqtp_QPenStyle2String(Qt::PenStyle style);
JKQTCOMMON_LIB_EXPORT QString jkqtp_QPenStyle2String(Qt::PenStyle style);
/** \brief converts a QString into a Qt::PenStyle
* \ingroup jkqtptools_string
*/
JKQTP_LIB_EXPORT Qt::PenStyle jkqtp_String2QPenStyle(const QString& style);
JKQTCOMMON_LIB_EXPORT Qt::PenStyle jkqtp_String2QPenStyle(const QString& style);
/** \brief converts a QT::BrushStyle into a string
* \ingroup jkqtptools_string
*/
JKQTP_LIB_EXPORT QString jkqtp_QBrushStyle2String(Qt::BrushStyle style);
JKQTCOMMON_LIB_EXPORT QString jkqtp_QBrushStyle2String(Qt::BrushStyle style);
/** \brief converts a QString into a Qt::BrushStyle
* \ingroup jkqtptools_string
*/
JKQTP_LIB_EXPORT Qt::BrushStyle jkqtp_String2QBrushStyle(const QString& style);
JKQTCOMMON_LIB_EXPORT Qt::BrushStyle jkqtp_String2QBrushStyle(const QString& style);
@ -75,55 +75,55 @@ inline QString JKQTPDoubleToQString(double value, int prec = 10, char f = 'g', Q
/** \brief convert a string to lower-case characters
* \ingroup jkqtptools_string
*/
JKQTP_LIB_EXPORT std::string jkqtp_tolower(const std::string& s);
JKQTCOMMON_LIB_EXPORT std::string jkqtp_tolower(const std::string& s);
/** \brief convert a string to a boolean
* \ingroup jkqtptools_string
*/
JKQTP_LIB_EXPORT bool jkqtp_strtobool(const std::string& data);
JKQTCOMMON_LIB_EXPORT bool jkqtp_strtobool(const std::string& data);
/** \brief convert a string to upper-case
* \ingroup jkqtptools_string
*/
JKQTP_LIB_EXPORT std::string jkqtp_toupper(const std::string& s);
JKQTCOMMON_LIB_EXPORT std::string jkqtp_toupper(const std::string& s);
/** \brief std::string wrapper around sprintf()
* \ingroup jkqtptools_string
*/
JKQTP_LIB_EXPORT std::string jkqtp_format(const std::string& templ, ...);
JKQTCOMMON_LIB_EXPORT std::string jkqtp_format(const std::string& templ, ...);
/** \brief convert a number of bytes to a string, formatting e.g. 1024 as 1kB, ...
* \ingroup jkqtptools_string
*/
JKQTP_LIB_EXPORT std::string jkqtp_bytestostr(double bytes);
JKQTCOMMON_LIB_EXPORT std::string jkqtp_bytestostr(double bytes);
/** \brief convert an integer to a string
* \ingroup jkqtptools_string
*/
JKQTP_LIB_EXPORT std::string jkqtp_inttostr(long data);
JKQTCOMMON_LIB_EXPORT std::string jkqtp_inttostr(long data);
/** \brief convert an integer to a hex string
* \ingroup jkqtptools_string
*/
JKQTP_LIB_EXPORT std::string jkqtp_inttohex(long data);
JKQTCOMMON_LIB_EXPORT std::string jkqtp_inttohex(long data);
/** \brief convert an unsigned int to a string
* \ingroup jkqtptools_string
*/
JKQTP_LIB_EXPORT std::string jkqtp_uinttostr(unsigned long data);
JKQTCOMMON_LIB_EXPORT std::string jkqtp_uinttostr(unsigned long data);
/** \brief convert a double to a string
* \ingroup jkqtptools_string
*/
JKQTP_LIB_EXPORT std::string jkqtp_floattostr(double data, int past_comma=-1, bool remove_trail0=false, double belowIsZero=1e-16);
JKQTCOMMON_LIB_EXPORT std::string jkqtp_floattostr(double data, int past_comma=-1, bool remove_trail0=false, double belowIsZero=1e-16);
/** \brief convert a double to a string, encoding powers of ten as characters, e.g. \c jkqtp_floattounitstr(1000,"g") will result in "1kg"
* \ingroup jkqtptools_string
*/
JKQTP_LIB_EXPORT std::string jkqtp_floattounitstr(double dataa, const std::string& unitname);
JKQTCOMMON_LIB_EXPORT std::string jkqtp_floattounitstr(double dataa, const std::string& unitname);
/** \brief convert a boolean to a string
* \ingroup jkqtptools_string
*/
JKQTP_LIB_EXPORT std::string jkqtp_booltostr(bool data);
JKQTCOMMON_LIB_EXPORT std::string jkqtp_booltostr(bool data);
/** \brief converts a RGBA color into a string
* \ingroup jkqtptools_string
*
@ -135,57 +135,57 @@ JKQTP_LIB_EXPORT std::string jkqtp_booltostr(bool data);
* \param a alpha value of the color to convert
* \param useSpecialTransparencySyntax is set (\c true ), the function uses a special syntax to denote color and transparency: \c color,trans
*/
JKQTP_LIB_EXPORT QString jkqtp_rgbtostring(unsigned char r, unsigned char g, unsigned char b, unsigned char a=255, bool useSpecialTransparencySyntax=true);
JKQTCOMMON_LIB_EXPORT QString jkqtp_rgbtostring(unsigned char r, unsigned char g, unsigned char b, unsigned char a=255, bool useSpecialTransparencySyntax=true);
/** \brief converts a QColor into a string using the jkqtp_rgbtostring() method.
* \ingroup jkqtptools_string
*
* This returns a QString which contains the name of named colors and the RGBA values in a QT readable form othertwise.
*/
JKQTP_LIB_EXPORT QString jkqtp_QColor2String(QColor color, bool useSpecialTransparencySyntax=true);
JKQTCOMMON_LIB_EXPORT QString jkqtp_QColor2String(QColor color, bool useSpecialTransparencySyntax=true);
/** \brief converts a QString into a QColor, compatible with jkqtp_QColor2String(QColor color);
* \ingroup jkqtptools_string
*
* This returns a QString which contains the name of named colors and the RGBA values in a QT readable form othertwise.
*/
JKQTP_LIB_EXPORT QColor jkqtp_String2QColor(const QString& color);
JKQTCOMMON_LIB_EXPORT QColor jkqtp_String2QColor(const QString& color);
/** \brief clean a string to be usable as a variable name, e.g. in an expression parser, or a C++-expression
* \ingroup jkqtptools_string
*/
JKQTP_LIB_EXPORT std::string jkqtp_to_valid_variable_name(const std::string& input);
JKQTCOMMON_LIB_EXPORT std::string jkqtp_to_valid_variable_name(const std::string& input);
/** \brief convert a double to a string, encoding powers of ten as characters, e.g. \c jkqtp_floattounitstr(1000) will result in "1k"
* \ingroup jkqtptools_string
*/
JKQTP_LIB_EXPORT std::string jkqtp_floattounitstr(double data, int past_comma=5, bool remove_trail0=false);
JKQTCOMMON_LIB_EXPORT std::string jkqtp_floattounitstr(double data, int past_comma=5, bool remove_trail0=false);
/** \brief convert a double to a string, encoding powers of ten as exponent in LaTeX notation (e.g. <code>-1.23\\cdot 10^{-5}</code>)
* \ingroup jkqtptools_string
*/
JKQTP_LIB_EXPORT std::string jkqtp_floattolatexstr(double data, int past_comma=5, bool remove_trail0=false, double belowIsZero=1e-16, double minNoExponent=1e-3, double maxNoExponent=1e4, bool ensurePlusMinus=false);
JKQTCOMMON_LIB_EXPORT std::string jkqtp_floattolatexstr(double data, int past_comma=5, bool remove_trail0=false, double belowIsZero=1e-16, double minNoExponent=1e-3, double maxNoExponent=1e4, bool ensurePlusMinus=false);
/** \brief convert a double to a string, encoding powers of ten as exponent with HTML tags
* \ingroup jkqtptools_string
*/
JKQTP_LIB_EXPORT std::string jkqtp_floattohtmlstr(double data, int past_comma=5, bool remove_trail0=false, double belowIsZero=1e-16, double minNoExponent=1e-3, double maxNoExponent=1e4);
JKQTCOMMON_LIB_EXPORT std::string jkqtp_floattohtmlstr(double data, int past_comma=5, bool remove_trail0=false, double belowIsZero=1e-16, double minNoExponent=1e-3, double maxNoExponent=1e4);
/** \brief convert a double to a string, encoding powers of ten as characters, e.g. \c jkqtp_floattounitstr(1000) will result in "1k"
* \ingroup jkqtptools_string
*/
JKQTP_LIB_EXPORT QString jkqtp_floattounitqstr(double data, int past_comma=5, bool remove_trail0=false);
JKQTCOMMON_LIB_EXPORT QString jkqtp_floattounitqstr(double data, int past_comma=5, bool remove_trail0=false);
/** \brief convert a double to a string, encoding powers of ten as exponent in LaTeX notation (e.g. <code>-1.23\\cdot 10^{-5}</code>)
* \ingroup jkqtptools_string
*/
JKQTP_LIB_EXPORT QString jkqtp_floattolatexqstr(double data, int past_comma=5, bool remove_trail0=false, double belowIsZero=1e-16, double minNoExponent=1e-3, double maxNoExponent=1e4, bool ensurePlusMinus=false);
JKQTCOMMON_LIB_EXPORT QString jkqtp_floattolatexqstr(double data, int past_comma=5, bool remove_trail0=false, double belowIsZero=1e-16, double minNoExponent=1e-3, double maxNoExponent=1e4, bool ensurePlusMinus=false);
/** \brief convert a double to a string, encoding powers of ten as exponent with HTML tags
* \ingroup jkqtptools_string
*/
JKQTP_LIB_EXPORT QString jkqtp_floattohtmlqstr(double data, int past_comma=5, bool remove_trail0=false, double belowIsZero=1e-16, double minNoExponent=1e-3, double maxNoExponent=1e4);
JKQTCOMMON_LIB_EXPORT QString jkqtp_floattohtmlqstr(double data, int past_comma=5, bool remove_trail0=false, double belowIsZero=1e-16, double minNoExponent=1e-3, double maxNoExponent=1e4);
/** \brief convert a character to a string
* \ingroup jkqtptools_string
*/
JKQTP_LIB_EXPORT std::string jkqtp_chartostr(char data);
JKQTCOMMON_LIB_EXPORT std::string jkqtp_chartostr(char data);

View File

@ -97,7 +97,7 @@ QString jkVariantListToString(const QList<QVariant>& data, const QString& separa
return r;
}
JKQTP_LIB_EXPORT QString jkqtp_filenameize(const QString& data) {
JKQTCOMMON_LIB_EXPORT QString jkqtp_filenameize(const QString& data) {
QString r;
QString data1=data.simplified();
for (int i=0; i<data1.size(); i++) {

View File

@ -24,7 +24,7 @@
#ifndef JKQTTOOLS_H
#define JKQTTOOLS_H
#include "jkqtcommon/jkqtp_imexport.h"
#include "jkqtcommon/jkqtcommon_imexport.h"
#include <QSettings>
#include <QWidget>
#include <QSplitter>
@ -38,7 +38,7 @@
\param widget the widget to store
\param prefix this prefix is prepended to the QSettings keys
*/
JKQTP_LIB_EXPORT void jksaveWidgetGeometry(QSettings& settings, QWidget* widget, const QString& prefix=QString(""));
JKQTCOMMON_LIB_EXPORT void jksaveWidgetGeometry(QSettings& settings, QWidget* widget, const QString& prefix=QString(""));
/*! \brief load the geometry of a given widget to a QSettings
\ingroup jkqtpjkqtptools_qt
@ -49,7 +49,7 @@ JKQTP_LIB_EXPORT void jksaveWidgetGeometry(QSettings& settings, QWidget* widget,
\param[out] widget the widget to change
\param prefix this prefix is prepended to the QSettings keys
*/
JKQTP_LIB_EXPORT void jkloadWidgetGeometry(QSettings& settings, QWidget* widget, const QString& prefix=QString(""));
JKQTCOMMON_LIB_EXPORT void jkloadWidgetGeometry(QSettings& settings, QWidget* widget, const QString& prefix=QString(""));
/*! \brief load the geometry of a given widget to a QSettings
@ -63,7 +63,7 @@ JKQTP_LIB_EXPORT void jkloadWidgetGeometry(QSettings& settings, QWidget* widget,
\param defaultSize default size of the widget
\param prefix this prefix is prepended to the QSettings keys
*/
JKQTP_LIB_EXPORT void jkloadWidgetGeometry(QSettings& settings, QWidget* widget, QPoint defaultPosition, QSize defaultSize, const QString& prefix=QString(""));
JKQTCOMMON_LIB_EXPORT void jkloadWidgetGeometry(QSettings& settings, QWidget* widget, QPoint defaultPosition, QSize defaultSize, const QString& prefix=QString(""));
/*! \brief store the geometry of a given widget to a QSettings
\ingroup jkqtpjkqtptools_qt
@ -74,7 +74,7 @@ JKQTP_LIB_EXPORT void jkloadWidgetGeometry(QSettings& settings, QWidget* widget,
\param widget the widget to store
\param prefix this prefix is prepended to the QSettings keys
*/
JKQTP_LIB_EXPORT void jksaveSplitter(QSettings& settings, QSplitter* splitter, const QString& prefix=QString(""));
JKQTCOMMON_LIB_EXPORT void jksaveSplitter(QSettings& settings, QSplitter* splitter, const QString& prefix=QString(""));
/*! \brief load the geometry of a given widget to a QSettings
\ingroup jkqtpjkqtptools_qt
@ -85,23 +85,23 @@ JKQTP_LIB_EXPORT void jksaveSplitter(QSettings& settings, QSplitter* splitter, c
\param[out] plitter the plitter to change
\param prefix this prefix is prepended to the QSettings keys
*/
JKQTP_LIB_EXPORT void jkloadSplitter(QSettings& settings, QSplitter* splitter, const QString& prefix=QString(""));
JKQTCOMMON_LIB_EXPORT void jkloadSplitter(QSettings& settings, QSplitter* splitter, const QString& prefix=QString(""));
/*! \brief convert a QList<QVariant> to a string
\ingroup jkqtpjkqtptools_qt
*/
JKQTP_LIB_EXPORT QString jkVariantListToString(const QList<QVariant>& data, const QString& separator=QString(", "));
JKQTCOMMON_LIB_EXPORT QString jkVariantListToString(const QList<QVariant>& data, const QString& separator=QString(", "));
/*! \brief filename-ize a string, i.e. replace every non-number and non-character (and also not <code> _ -</code>) character to \c _
\ingroup tools */
JKQTP_LIB_EXPORT QString jkqtp_filenameize(const QString& data);
JKQTCOMMON_LIB_EXPORT QString jkqtp_filenameize(const QString& data);
/** \brief create a valid variable name from the string, i.e. a string with only characters and digits and \c '_'. ALso the first character has to be a charcter.
* \ingroup tools */
JKQTP_LIB_EXPORT QString jkqtp_toValidVariableName(const QString& input);
JKQTCOMMON_LIB_EXPORT QString jkqtp_toValidVariableName(const QString& input);
/** \brief convert a <a href="http://doc.qt.io/qt-5/qt.html#KeyboardModifier-enum">Qt::KeyboardModifiers</a> to a <a href="http://doc.qt.io/qt-5/qstring.html">QString</a>
* \ingroup tools
@ -111,14 +111,14 @@ JKQTP_LIB_EXPORT QString jkqtp_toValidVariableName(const QString& input);
*
* \see jkqtp_String2KeyboardModifiers()
*/
JKQTP_LIB_EXPORT QString jkqtp_KeyboardModifiers2String(Qt::KeyboardModifiers modifiers, bool useNONE=true);
JKQTCOMMON_LIB_EXPORT QString jkqtp_KeyboardModifiers2String(Qt::KeyboardModifiers modifiers, bool useNONE=true);
/** \brief convert a <a href="http://doc.qt.io/qt-5/qstring.html">QString</a> (created by jkqtp_KeyboardModifiers2String() ) to <a href="http://doc.qt.io/qt-5/qt.html#KeyboardModifier-enum">Qt::KeyboardModifiers</a>
* \ingroup tools
*
* \see jkqtp_KeyboardModifiers2String()
*/
JKQTP_LIB_EXPORT Qt::KeyboardModifiers jkqtp_String2KeyboardModifiers(const QString& modifiers);
JKQTCOMMON_LIB_EXPORT Qt::KeyboardModifiers jkqtp_String2KeyboardModifiers(const QString& modifiers);
/** \brief convert a <a href="http://doc.qt.io/qt-5/qt.html#MouseButton-enum">Qt::MouseButton</a> to a <a href="http://doc.qt.io/qt-5/qstring.html">QString</a>
* \ingroup tools
*
@ -127,13 +127,13 @@ JKQTP_LIB_EXPORT Qt::KeyboardModifiers jkqtp_String2KeyboardModifiers(const QStr
*
* \see jkqtp_MouseButton2String()
*/
JKQTP_LIB_EXPORT QString jkqtp_MouseButton2String(Qt::MouseButton button, bool useNONE=true);
JKQTCOMMON_LIB_EXPORT QString jkqtp_MouseButton2String(Qt::MouseButton button, bool useNONE=true);
/** \brief convert a <a href="http://doc.qt.io/qt-5/qstring.html">QString</a> (created by jkqtp_MouseButton2String() ) to <a href="http://doc.qt.io/qt-5/qt.html#MouseButton-enum">Qt::MouseButton</a>
* \ingroup tools
*
* \see jkqtp_MouseButton2String()
*/
JKQTP_LIB_EXPORT Qt::MouseButton jkqtp_String2MouseButton(const QString &button);
JKQTCOMMON_LIB_EXPORT Qt::MouseButton jkqtp_String2MouseButton(const QString &button);
#endif // JKQTTOOLS_H

View File

@ -3,14 +3,16 @@ cmake_minimum_required(VERSION 3.0)
set(libBasename JKQTFastPlotter)
if(BUILD_SHARED_LIBS)
set(libsh_name ${libBasename}SharedLib${LIBNAME_ADDITION})
set(${libsh_name}_LIBRARY ${libsh_name} PARENT_SCOPE)
set(libsh_name ${libBasename}SharedLib)
set(libsh_name_decorated ${libsh_name}${LIBNAME_ADDITION})
set(${libBasename}_SHARED_LIBRARY ${libsh_name_decorated} CACHE STRING "name of static library for ${libBasename}" FORCE)
message( STATUS "-- Building ${libsh_name}" )
endif(BUILD_SHARED_LIBS)
if(BUILD_STATIC_LIBS)
set(lib_name ${libBasename}Lib${LIBNAME_ADDITION})
set(${lib_name}_LIBRARY ${lib_name} PARENT_SCOPE)
set(lib_name ${libBasename}Lib)
set(lib_name_decorated ${lib_name}${LIBNAME_ADDITION})
set(${libBasename}_STATIC_LIBRARY ${lib_name_decorated} CACHE STRING "name of static library for ${libBasename}" FORCE)
message( STATUS "-- Building ${lib_name}" )
endif(BUILD_STATIC_LIBS)
@ -22,6 +24,7 @@ set(SOURCES
set(HEADERS
jkqtfastplotter.h
jkqtfastplotter_imexport.h
)
@ -29,15 +32,20 @@ set(HEADERS
if(BUILD_SHARED_LIBS)
add_library(${libsh_name} SHARED ${SOURCES} ${HEADERS} ${RESOURCES})
set_property(TARGET ${libsh_name} PROPERTY VERSION "${PROJECT_VERSION}")
target_link_libraries(${libsh_name} Qt5::Core Qt5::Gui Qt5::Widgets Qt5::PrintSupport Qt5::OpenGL JKQTCommonSharedLib${LIBNAME_ADDITION})
target_compile_definitions(${libsh_name} PUBLIC JKQTP_LIB_IN_DLL)
target_compile_definitions(${libsh_name} PRIVATE JKQTP_LIB_EXPORT_LIBRARY)
set_property(TARGET ${libsh_name} PROPERTY OUTPUT_NAME "${libsh_name_decorated}")
target_link_libraries(${libsh_name} Qt5::Core Qt5::Gui Qt5::Widgets Qt5::PrintSupport Qt5::OpenGL JKQTCommonSharedLib)
target_compile_definitions(${libsh_name} PUBLIC JKQTFASTPLOTTER_LIB_IN_DLL)
target_compile_definitions(${libsh_name} PRIVATE JKQTFASTPLOTTER_LIB_EXPORT_LIBRARY)
set_property(TARGET ${libsh_name} PROPERTY WINDOWS_EXPORT_ALL_SYMBOLS "ON")
# include(GenerateExportHeader)
# generate_export_header(${libsh_name})
endif()
if(BUILD_STATIC_LIBS)
add_library(${lib_name} STATIC ${SOURCES} ${HEADERS} ${RESOURCES})
set_property(TARGET ${lib_name} PROPERTY VERSION "${PROJECT_VERSION}")
target_link_libraries(${lib_name} Qt5::Core Qt5::Gui Qt5::Widgets Qt5::PrintSupport Qt5::OpenGL JKQTCommonLib${LIBNAME_ADDITION})
set_property(TARGET ${lib_name} PROPERTY OUTPUT_NAME "${lib_name_decorated}")
target_link_libraries(${lib_name} Qt5::Core Qt5::Gui Qt5::Widgets Qt5::PrintSupport Qt5::OpenGL JKQTCommonLib)
endif()

View File

@ -1,5 +1,5 @@
/*
Copyright (c) 2008-2015 Jan W. Krieger (<jan@jkrieger.de>, <j.krieger@dkfz.de>) (DKFZ) & IWR, University of Heidelberg
Copyright (c) 2008-2019 Jan W. Krieger (<jan@jkrieger.de>, <j.krieger@dkfz.de>) (DKFZ) & IWR, University of Heidelberg

View File

@ -1,5 +1,5 @@
/*
Copyright (c) 2008-2015 Jan W. Krieger (<jan@jkrieger.de>, <j.krieger@dkfz.de>) (DKFZ) & IWR, University of Heidelberg
Copyright (c) 2008-2019 Jan W. Krieger (<jan@jkrieger.de>, <j.krieger@dkfz.de>) (DKFZ) & IWR, University of Heidelberg
@ -18,17 +18,11 @@
*/
/*
Name: jkqtpfastplotter.h
Copyright: (c) 2010-2019
Author: Jan krieger <jan@jkrieger.de>, http://www.jkrieger.de/
*/
#ifndef JKQTFASTPLOTTER_H
#define JKQTFASTPLOTTER_H
#include "jkqtcommon/jkqtp_imexport.h"
#include "jkqtfastplotter_imexport.h"
#include <QWidget>
#include <QVector>
#include <QSettings>
@ -89,7 +83,7 @@ class JKQTFPPlot;
.
*/
class JKQTP_LIB_EXPORT JKQTFastPlotter : public QGLWidget {
class JKQTFASTPLOTTER_LIB_EXPORT JKQTFastPlotter : public QGLWidget {
Q_OBJECT
public:
@ -1004,7 +998,7 @@ class JKQTP_LIB_EXPORT JKQTFastPlotter : public QGLWidget {
/*! \brief base class for all plots that may be plotted by JKQTFastPlotter
\ingroup jkqtfastplotter
*/
class JKQTP_LIB_EXPORT JKQTFPPlot: public QObject {
class JKQTFASTPLOTTER_LIB_EXPORT JKQTFPPlot: public QObject {
Q_OBJECT
protected:
/** \brief parent class, i.e. the plotter to plot on */
@ -1046,7 +1040,7 @@ class JKQTP_LIB_EXPORT JKQTFPPlot: public QObject {
This class plots data as (x,y) points connected by straight lines. If errors for the y values are
provided, also y+/-yerr errorlines are drawn.
*/
class JKQTP_LIB_EXPORT JKQTFPLinePlot: public JKQTFPPlot {
class JKQTFASTPLOTTER_LIB_EXPORT JKQTFPLinePlot: public JKQTFPPlot {
public:
/** \brief used to store which datatype is used for the plot data */
enum DataType {
@ -1274,7 +1268,7 @@ class JKQTP_LIB_EXPORT JKQTFPLinePlot: public JKQTFPPlot {
This class does not support y errors!
*/
class JKQTP_LIB_EXPORT JKQTFPVCrossPlot: public JKQTFPLinePlot {
class JKQTFASTPLOTTER_LIB_EXPORT JKQTFPVCrossPlot: public JKQTFPLinePlot {
Q_OBJECT
public:
/*! \brief class constructor
@ -1329,7 +1323,7 @@ class JKQTP_LIB_EXPORT JKQTFPVCrossPlot: public JKQTFPLinePlot {
This class does not support y errors!
*/
class JKQTP_LIB_EXPORT JKQTFPVBarPlot: public JKQTFPLinePlot {
class JKQTFASTPLOTTER_LIB_EXPORT JKQTFPVBarPlot: public JKQTFPLinePlot {
Q_OBJECT
public:
/*! \brief class constructor
@ -1364,7 +1358,7 @@ class JKQTP_LIB_EXPORT JKQTFPVBarPlot: public JKQTFPLinePlot {
\ingroup jkqtfastplotter
*/
class JKQTP_LIB_EXPORT JKQTFPXRangePlot: public JKQTFPPlot {
class JKQTFASTPLOTTER_LIB_EXPORT JKQTFPXRangePlot: public JKQTFPPlot {
Q_OBJECT
protected:
/** \brief start of x range */
@ -1528,7 +1522,7 @@ class JKQTP_LIB_EXPORT JKQTFPXRangePlot: public JKQTFPPlot {
\ingroup jkqtfastplotter
*/
class JKQTP_LIB_EXPORT JKQTFPYRangePlot: public JKQTFPPlot {
class JKQTFASTPLOTTER_LIB_EXPORT JKQTFPYRangePlot: public JKQTFPPlot {
Q_OBJECT
protected:
/** \brief start of x range */
@ -1691,7 +1685,7 @@ class JKQTP_LIB_EXPORT JKQTFPYRangePlot: public JKQTFPPlot {
/*! \brief a plot of a QImage
\ingroup jkqtfastplotter
*/
class JKQTP_LIB_EXPORT JKQTFPQImagePlot: public JKQTFPPlot {
class JKQTFASTPLOTTER_LIB_EXPORT JKQTFPQImagePlot: public JKQTFPPlot {
Q_OBJECT
protected:
/** \brief image to plot */
@ -2352,17 +2346,17 @@ inline void JKQTFPimagePlot_array2image(T* dbl, int width, int height, QImage &i
\ingroup jkqtfastplotter
\see JKQTFPimagePlot_array2image()
*/
JKQTP_LIB_EXPORT QStringList JKQTFPimagePlot_getPalettes();
JKQTFASTPLOTTER_LIB_EXPORT QStringList JKQTFPimagePlot_getPalettes();
/*! \brief get QIcon representing the given palette
\ingroup jkqtfastplotter
\see JKQTFPimagePlot_array2image()
*/
JKQTP_LIB_EXPORT QIcon JKQTFPimagePlot_getPaletteIcon(int i);
JKQTFASTPLOTTER_LIB_EXPORT QIcon JKQTFPimagePlot_getPaletteIcon(int i);
/*! \brief get QIcon representing the given palette
\ingroup jkqtfastplotter
\see JKQTFPimagePlot_array2image()
*/
JKQTP_LIB_EXPORT QIcon JKQTFPimagePlot_getPaletteIcon(JKQTFPColorPalette palette);
JKQTFASTPLOTTER_LIB_EXPORT QIcon JKQTFPimagePlot_getPaletteIcon(JKQTFPColorPalette palette);
/*! \brief plots a given grayscale image with a given color palette
@ -2373,7 +2367,7 @@ JKQTP_LIB_EXPORT QIcon JKQTFPimagePlot_getPaletteIcon(JKQTFPColorPalette palette
.
*/
class JKQTP_LIB_EXPORT JKQTFPimagePlot: public JKQTFPPlot {
class JKQTFASTPLOTTER_LIB_EXPORT JKQTFPimagePlot: public JKQTFPPlot {
Q_OBJECT
protected:
/** \brief image to plot */
@ -2744,7 +2738,7 @@ inline void JKQTFPRGBImageOverlayPlot_array2image(T* dbl, int width, int height,
.
*/
class JKQTP_LIB_EXPORT JKQTFPRGBImageOverlayPlot: public JKQTFPPlot {
class JKQTFASTPLOTTER_LIB_EXPORT JKQTFPRGBImageOverlayPlot: public JKQTFPPlot {
Q_OBJECT
protected:
/** \brief image to plot */
@ -3106,7 +3100,7 @@ class JKQTP_LIB_EXPORT JKQTFPRGBImageOverlayPlot: public JKQTFPPlot {
\ingroup jkqtfastplotter
*/
class JKQTP_LIB_EXPORT JKQTFPimageOverlayPlot: public JKQTFPPlot {
class JKQTFASTPLOTTER_LIB_EXPORT JKQTFPimageOverlayPlot: public JKQTFPPlot {
Q_OBJECT
public:
enum SymbolType {
@ -3261,7 +3255,7 @@ class JKQTP_LIB_EXPORT JKQTFPimageOverlayPlot: public JKQTFPPlot {
\ingroup jkqtfastplotter
*/
class JKQTP_LIB_EXPORT JKQTFPQScaleBarXPlot: public JKQTFPPlot {
class JKQTFASTPLOTTER_LIB_EXPORT JKQTFPQScaleBarXPlot: public JKQTFPPlot {
Q_OBJECT
public:
enum Position {
@ -3385,7 +3379,7 @@ class JKQTP_LIB_EXPORT JKQTFPQScaleBarXPlot: public JKQTFPPlot {
\ingroup jkqtfastplotter
*/
class JKQTP_LIB_EXPORT JKQTFPQOverlayLinearGridPlot: public JKQTFPPlot {
class JKQTFASTPLOTTER_LIB_EXPORT JKQTFPQOverlayLinearGridPlot: public JKQTFPPlot {
Q_OBJECT
protected:

View File

@ -0,0 +1,108 @@
#ifndef jkqtfastplotter_IMPORT_H
#define jkqtfastplotter_IMPORT_H
/*
Copyright (c) 2008-2019 Jan W. Krieger (<jan@jkrieger.de>)
last modification: $LastChangedDate: 2015-04-02 13:55:22 +0200 (Do, 02 Apr 2015) $ (revision $Rev: 3902 $)
This software is free software: you can redistribute it and/or modify
it under the terms of the GNU Lesser General Public License (LGPL) as published by
the Free Software Foundation, either version 2.1 of the License, or
(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 Lesser General Public License (LGPL) for more details.
You should have received a copy of the GNU Lesser General Public License (LGPL)
along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
/*! \def JKQTFASTPLOTTER_LIB_EXPORT
\ingroup tools
This define allows to export functions and classes from the jkqtcommon-library when building a dynamic/shared library.
Usage is as follows:
\code
#include "jkqtfastplotter/jkqtfastplotter_imexport.h"
class JKQTFASTPLOTTER_LIB_EXPORT exportedClassName {
...
};
JKQTFASTPLOTTER_LIB_EXPORT void exportedFunctionName();
\endcode
These macros append the appropriate \c __declspec(dllexport) and \c __declspec(dllimport)
to the function/class body and thus tell windows compilers to export these sysmbols from
the shared library, or import them from a shared library.
Note that these attributes are only necessary on windows systems!
These macros are controlled by two other macros:
- \c JKQTFASTPLOTTER_LIB_IN_DLL declares that the application should link against a shared version of
JKQTFastPlotter, i.e. \c JKQTFastPlotterSharedLib_XYZ .
This needs to be defined while compiling the library and while compiling
any application linking against \c JKQTFastPlotterSharedLib_XYZ.
- \c JKQTFASTPLOTTER_LIB_EXPORT_LIBRARY is only defined while compiling JKQTFastPlotter into \c JKQTFastPlotterSharedLib_XYZ
and ensures thet the symbols are exported. If it is not defined (e.g. while
compiling an application), the symbols are imported
.
*/
/*! \def JKQTFASTPLOTTER_LIB_IN_DLL
\ingroup tools
\brief declares that the application should link against a shared version of
JKQTFastPlotter, i.e. \c JKQTFastPlotterSharedLib_XYZ .
This needs to be defined while compiling the library and while compiling
any application linking against \c JKQTFastPlotterSharedLib_XYZ.
*/
/*! \def JKQTFASTPLOTTER_LIB_EXPORT_LIBRARY
\ingroup tools
\brief is only defined while compiling JKQTFastPlotter into \c JKQTFastPlotterSharedLib_XYZ
and ensures thet the symbols are exported. If it is not defined (e.g. while
compiling an application), the symbols are imported
*/
# ifndef __WINDOWS__
# if defined(WIN32) || defined(WIN64) || defined(_MSC_VER) || defined(_WIN32)
# define __WINDOWS__
# endif
# endif
#ifdef __WINDOWS__
# ifdef JKQTFASTPLOTTER_LIB_IN_DLL
# ifndef JKQTFASTPLOTTER_LIB_EXPORT
# ifdef JKQTFASTPLOTTER_LIB_EXPORT_LIBRARY
/* We are building this library */
# define JKQTFASTPLOTTER_LIB_EXPORT __declspec(dllexport)
# else
/* We are using this library */
# define JKQTFASTPLOTTER_LIB_EXPORT __declspec(dllimport)
# endif
# endif
# else
# ifndef JKQTFASTPLOTTER_LIB_EXPORT
# define JKQTFASTPLOTTER_LIB_EXPORT
# endif
# endif
#else
# define JKQTFASTPLOTTER_LIB_EXPORT
#endif
#endif // jkqtfastplotter_IMPORT_H

View File

@ -3,14 +3,16 @@ cmake_minimum_required(VERSION 3.0)
set(libBasename JKQTMathText)
if(BUILD_SHARED_LIBS)
set(libsh_name ${libBasename}SharedLib${LIBNAME_ADDITION})
set(${libsh_name}_LIBRARY ${libsh_name} PARENT_SCOPE)
set(libsh_name ${libBasename}SharedLib)
set(libsh_name_decorated ${libsh_name}${LIBNAME_ADDITION})
set(${libBasename}_SHARED_LIBRARY ${libsh_name_decorated} CACHE STRING "name of static library for ${libBasename}" FORCE)
message( STATUS "-- Building ${libsh_name}" )
endif(BUILD_SHARED_LIBS)
if(BUILD_STATIC_LIBS)
set(lib_name ${libBasename}Lib${LIBNAME_ADDITION})
set(${lib_name}_LIBRARY ${lib_name} PARENT_SCOPE)
set(lib_name ${libBasename}Lib)
set(lib_name_decorated ${lib_name}${LIBNAME_ADDITION})
set(${libBasename}_STATIC_LIBRARY ${lib_name_decorated} CACHE STRING "name of static library for ${libBasename}" FORCE)
message( STATUS "-- Building ${lib_name}" )
endif(BUILD_STATIC_LIBS)
@ -23,6 +25,7 @@ set(SOURCES
set(HEADERS
jkqtmathtext.h
jkqtmathtext_imexport.h
)
if(BUILD_INCLUDE_XITS_FONTS)
@ -35,15 +38,20 @@ endif(BUILD_INCLUDE_XITS_FONTS)
if(BUILD_SHARED_LIBS)
add_library(${libsh_name} SHARED ${SOURCES} ${HEADERS} ${RESOURCES})
set_property(TARGET ${libsh_name} PROPERTY VERSION "${PROJECT_VERSION}")
target_link_libraries(${libsh_name} Qt5::Core Qt5::Gui Qt5::Widgets Qt5::PrintSupport JKQTCommonSharedLib${LIBNAME_ADDITION})
target_compile_definitions(${libsh_name} PUBLIC JKQTP_LIB_IN_DLL)
target_compile_definitions(${libsh_name} PRIVATE JKQTP_LIB_EXPORT_LIBRARY)
set_property(TARGET ${libsh_name} PROPERTY OUTPUT_NAME "${libsh_name_decorated}")
target_link_libraries(${libsh_name} Qt5::Core Qt5::Gui Qt5::Widgets Qt5::PrintSupport JKQTCommonSharedLib)
target_compile_definitions(${libsh_name} PUBLIC JKQTMATHTEXT_LIB_IN_DLL)
target_compile_definitions(${libsh_name} PRIVATE JKQTMATHTEXT_LIB_EXPORT_LIBRARY)
set_property(TARGET ${libsh_name} PROPERTY WINDOWS_EXPORT_ALL_SYMBOLS "ON")
# include(GenerateExportHeader)
# generate_export_header(${libsh_name})
endif()
if(BUILD_STATIC_LIBS)
add_library(${lib_name} STATIC ${SOURCES} ${HEADERS} ${RESOURCES})
set_property(TARGET ${lib_name} PROPERTY VERSION "${PROJECT_VERSION}")
target_link_libraries(${lib_name} Qt5::Core Qt5::Gui Qt5::Widgets Qt5::PrintSupport JKQTCommonLib${LIBNAME_ADDITION})
set_property(TARGET ${lib_name} PROPERTY OUTPUT_NAME "${lib_name_decorated}")
target_link_libraries(${lib_name} Qt5::Core Qt5::Gui Qt5::Widgets Qt5::PrintSupport JKQTCommonLib)
endif()

View File

@ -36,7 +36,7 @@
#include <QString>
#include <QSet>
#include <QFile>
#include "jkqtcommon/jkqtp_imexport.h"
#include "jkqtmathtext/jkqtmathtext_imexport.h"
#include <QWidget>
#include <QLabel>
#include <QHash>
@ -46,7 +46,7 @@
/** \brief initialized Qt-ressources necessary for JKQTMathText
* \ingroup jkqtmathtext
*/
JKQTP_LIB_EXPORT void initJKQTMathTextResources();
JKQTMATHTEXT_LIB_EXPORT void initJKQTMathTextResources();
/*! \brief this class parses a LaTeX string and can then draw the contained text/equation onto a <a href="http://doc.qt.io/qt-5/qpainter.html">QPainter</a>
\ingroup jkqtmathtext
@ -217,7 +217,7 @@ JKQTP_LIB_EXPORT void initJKQTMathTextResources();
*/
class JKQTP_LIB_EXPORT JKQTMathText : public QObject {
class JKQTMATHTEXT_LIB_EXPORT JKQTMathText : public QObject {
Q_OBJECT
public:
/** \brief minimum linewidth allowed in a JKQTMathText (given in pt) */
@ -703,7 +703,7 @@ class JKQTP_LIB_EXPORT JKQTMathText : public QObject {
};
/** \brief beschreibt die Größe eines Knotens */
struct JKQTP_LIB_EXPORT MTnodeSize {
struct JKQTMATHTEXT_LIB_EXPORT MTnodeSize {
MTnodeSize();
double width;
double baselineHeight;
@ -718,7 +718,7 @@ class JKQTP_LIB_EXPORT JKQTMathText : public QObject {
*
* \image html jkqtmathtext_node_geo.png
*/
class JKQTP_LIB_EXPORT MTnode {
class JKQTMATHTEXT_LIB_EXPORT MTnode {
public:
MTnode(JKQTMathText* parent);
virtual ~MTnode();
@ -789,7 +789,7 @@ class JKQTP_LIB_EXPORT JKQTMathText : public QObject {
/** \brief subclass representing one text node in the syntax tree
* \ingroup jkqtmathtext_items
*/
class JKQTP_LIB_EXPORT MTtextNode: public MTnode {
class JKQTMATHTEXT_LIB_EXPORT MTtextNode: public MTnode {
public:
MTtextNode(JKQTMathText* parent, const QString& text, bool addWhitespace, bool stripInnerWhitepace=false);
virtual ~MTtextNode() override;
@ -811,7 +811,7 @@ class JKQTP_LIB_EXPORT JKQTMathText : public QObject {
/** \brief subclass representing one text node in the syntax tree
* \ingroup jkqtmathtext_items
*/
class JKQTP_LIB_EXPORT MTplainTextNode: public MTtextNode {
class JKQTMATHTEXT_LIB_EXPORT MTplainTextNode: public MTtextNode {
public:
MTplainTextNode(JKQTMathText* parent, const QString& text, bool addWhitespace, bool stripInnerWhitepace=false);
/** \copydoc MTnode::getTypeName() */
@ -823,7 +823,7 @@ class JKQTP_LIB_EXPORT JKQTMathText : public QObject {
/** \brief subclass representing one whitepsace node in the syntax tree
* \ingroup jkqtmathtext_items
*/
class JKQTP_LIB_EXPORT MTwhitespaceNode: public MTtextNode {
class JKQTMATHTEXT_LIB_EXPORT MTwhitespaceNode: public MTtextNode {
public:
MTwhitespaceNode(JKQTMathText* parent);
virtual ~MTwhitespaceNode() override;
@ -837,7 +837,7 @@ class JKQTP_LIB_EXPORT JKQTMathText : public QObject {
/** \brief subclass representing one symbol (e.g. \c \\alpha , \c \\cdot ...) node in the syntax tree
* \ingroup jkqtmathtext_items
*/
class JKQTP_LIB_EXPORT MTsymbolNode: public MTnode {
class JKQTMATHTEXT_LIB_EXPORT MTsymbolNode: public MTnode {
public:
MTsymbolNode(JKQTMathText* parent, const QString& name, bool addWhitespace);
virtual ~MTsymbolNode() override;
@ -881,7 +881,7 @@ class JKQTP_LIB_EXPORT JKQTMathText : public QObject {
/** \brief subclass representing a list of nodes in the syntax tree
* \ingroup jkqtmathtext_items
*/
class JKQTP_LIB_EXPORT MTlistNode: public MTnode {
class JKQTMATHTEXT_LIB_EXPORT MTlistNode: public MTnode {
public:
MTlistNode(JKQTMathText* parent);
virtual ~MTlistNode() override;
@ -906,7 +906,7 @@ class JKQTP_LIB_EXPORT JKQTMathText : public QObject {
/** \brief subclass representing an instruction node with exactly one argument in the syntax tree
* \ingroup jkqtmathtext_items
*/
class JKQTP_LIB_EXPORT MTinstruction1Node: public MTnode {
class JKQTMATHTEXT_LIB_EXPORT MTinstruction1Node: public MTnode {
public:
MTinstruction1Node(JKQTMathText* parent, const QString& name, MTnode* child, const QStringList& parameters=QStringList());
virtual ~MTinstruction1Node() override;
@ -942,7 +942,7 @@ class JKQTP_LIB_EXPORT JKQTMathText : public QObject {
*
* \image html jkqtmathtext_subscriptnode_getSizeInternal.png
*/
class JKQTP_LIB_EXPORT MTsubscriptNode: public MTnode {
class JKQTMATHTEXT_LIB_EXPORT MTsubscriptNode: public MTnode {
public:
MTsubscriptNode(JKQTMathText* parent, MTnode* child);
virtual ~MTsubscriptNode() override;
@ -970,7 +970,7 @@ class JKQTP_LIB_EXPORT JKQTMathText : public QObject {
*
* \note a MTlistNode might modify the positioning slightly for special cases (e.g. \c \\int , \c \\sum ... or after braces)
*/
class JKQTP_LIB_EXPORT MTsuperscriptNode: public MTnode {
class JKQTMATHTEXT_LIB_EXPORT MTsuperscriptNode: public MTnode {
public:
MTsuperscriptNode(JKQTMathText* parent, MTnode* child);
virtual ~MTsuperscriptNode() override;
@ -995,7 +995,7 @@ class JKQTP_LIB_EXPORT JKQTMathText : public QObject {
/** \brief subclass representing a brace node
* \ingroup jkqtmathtext_items
*/
class JKQTP_LIB_EXPORT MTbraceNode: public MTnode {
class JKQTMATHTEXT_LIB_EXPORT MTbraceNode: public MTnode {
public:
MTbraceNode(JKQTMathText* parent, const QString& openbrace, const QString& closebrace, MTnode* child, bool showRightBrace=true);
virtual ~MTbraceNode() override;
@ -1038,7 +1038,7 @@ class JKQTP_LIB_EXPORT JKQTMathText : public QObject {
/** \brief subclass representing a sqrt node
* \ingroup jkqtmathtext_items
*/
class JKQTP_LIB_EXPORT MTsqrtNode: public MTnode {
class JKQTMATHTEXT_LIB_EXPORT MTsqrtNode: public MTnode {
public:
MTsqrtNode(JKQTMathText* parent, MTnode* child, int degree=2);
virtual ~MTsqrtNode() override;
@ -1082,7 +1082,7 @@ class JKQTP_LIB_EXPORT JKQTMathText : public QObject {
/** \brief subclass representing a \\frac node
* \ingroup jkqtmathtext_items
*/
class JKQTP_LIB_EXPORT MTfracNode: public MTnode {
class JKQTMATHTEXT_LIB_EXPORT MTfracNode: public MTnode {
public:
MTfracNode(JKQTMathText* parent, MTnode* child_top, MTnode* child_bottom, MTfracMode mode);
virtual ~MTfracNode() override;
@ -1116,7 +1116,7 @@ class JKQTP_LIB_EXPORT JKQTMathText : public QObject {
/** \brief subclass representing a \\begin{matrix} node
* \ingroup jkqtmathtext_items
*/
class JKQTP_LIB_EXPORT MTmatrixNode: public MTnode {
class JKQTMATHTEXT_LIB_EXPORT MTmatrixNode: public MTnode {
public:
MTmatrixNode(JKQTMathText* parent, QVector<QVector<MTnode*> > children);
virtual ~MTmatrixNode() override;
@ -1165,7 +1165,7 @@ class JKQTP_LIB_EXPORT JKQTMathText : public QObject {
/** \brief subclass representing a decorated text m (e.g. \c \\vec \c \\hat ...) node
* \ingroup jkqtmathtext_items
*/
class JKQTP_LIB_EXPORT MTdecoratedNode: public MTnode {
class JKQTMATHTEXT_LIB_EXPORT MTdecoratedNode: public MTnode {
public:
MTdecoratedNode(JKQTMathText* parent, MTdecoration decoration, MTnode* child);
virtual ~MTdecoratedNode() override;
@ -1423,7 +1423,7 @@ class JKQTP_LIB_EXPORT JKQTMathText : public QObject {
return this->parsedNode;
}
struct JKQTP_LIB_EXPORT tbrData {
struct JKQTMATHTEXT_LIB_EXPORT tbrData {
explicit tbrData(const QFont& f, const QString& text, QPaintDevice *pd);
QFontMetricsF fm;
QString text;
@ -1434,7 +1434,7 @@ class JKQTP_LIB_EXPORT JKQTMathText : public QObject {
bool operator==(const tbrData& other) const;
};
struct JKQTP_LIB_EXPORT tbrDataH {
struct JKQTMATHTEXT_LIB_EXPORT tbrDataH {
explicit tbrDataH(const QFont& f, const QString& text, QPaintDevice *pd);
QString text;
QFont f;
@ -1461,7 +1461,7 @@ inline uint qHash(const JKQTMathText::tbrDataH& data) {
\see JKQTMathText
*/
class JKQTP_LIB_EXPORT JKQTMathTextLabel: public QLabel {
class JKQTMATHTEXT_LIB_EXPORT JKQTMathTextLabel: public QLabel {
Q_OBJECT
public:
explicit JKQTMathTextLabel(QWidget* parent=nullptr);

View File

@ -0,0 +1,108 @@
#ifndef JKQTMATHTEXT_IMPORT_H
#define JKQTMATHTEXT_IMPORT_H
/*
Copyright (c) 2008-2019 Jan W. Krieger (<jan@jkrieger.de>)
last modification: $LastChangedDate: 2015-04-02 13:55:22 +0200 (Do, 02 Apr 2015) $ (revision $Rev: 3902 $)
This software is free software: you can redistribute it and/or modify
it under the terms of the GNU Lesser General Public License (LGPL) as published by
the Free Software Foundation, either version 2.1 of the License, or
(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 Lesser General Public License (LGPL) for more details.
You should have received a copy of the GNU Lesser General Public License (LGPL)
along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
/*! \def JKQTMATHTEXT_LIB_EXPORT
\ingroup jkqtmathtext
This define allows to export functions and classes from the jkqtcommon-library when building a dynamic/shared library.
Usage is as follows:
\code
#include "jkqtmathtext/jkqtmathtext_imexport.h"
class JKQTMATHTEXT_LIB_EXPORT exportedClassName {
...
};
JKQTMATHTEXT_LIB_EXPORT void exportedFunctionName();
\endcode
These macros append the appropriate \c __declspec(dllexport) and \c __declspec(dllimport)
to the function/class body and thus tell windows compilers to export these sysmbols from
the shared library, or import them from a shared library.
Note that these attributes are only necessary on windows systems!
These macros are controlled by two other macros:
- \c JKQTMATHTEXT_LIB_IN_DLL declares that the application should link against a shared version of
JKQTMathText, i.e. \c JKQTMathTextSharedLib_XYZ .
This needs to be defined while compiling the library and while compiling
any application linking against \c JKQTMathTextSharedLib_XYZ.
- \c JKQTMATHTEXT_LIB_EXPORT_LIBRARY is only defined while compiling JKQTMathText into \c JKQTMathTextSharedLib_XYZ
and ensures thet the symbols are exported. If it is not defined (e.g. while
compiling an application), the symbols are imported
.
*/
/*! \def JKQTMATHTEXT_LIB_IN_DLL
\ingroup jkqtmathtext
\brief declares that the application should link against a shared version of
JKQTMathText, i.e. \c JKQTMathTextSharedLib_XYZ .
This needs to be defined while compiling the library and while compiling
any application linking against \c JKQTMathTextSharedLib_XYZ.
*/
/*! \def JKQTMATHTEXT_LIB_EXPORT_LIBRARY
\ingroup jkqtmathtext
\brief is only defined while compiling JKQTMathText into \c JKQTMathTextSharedLib_XYZ
and ensures thet the symbols are exported. If it is not defined (e.g. while
compiling an application), the symbols are imported
*/
# ifndef __WINDOWS__
# if defined(WIN32) || defined(WIN64) || defined(_MSC_VER) || defined(_WIN32)
# define __WINDOWS__
# endif
# endif
#ifdef __WINDOWS__
# ifdef JKQTMATHTEXT_LIB_IN_DLL
# ifndef JKQTMATHTEXT_LIB_EXPORT
# ifdef JKQTMATHTEXT_LIB_EXPORT_LIBRARY
/* We are building this library */
# define JKQTMATHTEXT_LIB_EXPORT __declspec(dllexport)
# else
/* We are using this library */
# define JKQTMATHTEXT_LIB_EXPORT __declspec(dllimport)
# endif
# endif
# else
# ifndef JKQTMATHTEXT_LIB_EXPORT
# define JKQTMATHTEXT_LIB_EXPORT
# endif
# endif
#else
# define JKQTMATHTEXT_LIB_EXPORT
#endif
#endif // JKQTMATHTEXT_IMPORT_H

View File

@ -16,7 +16,7 @@ isEmpty(JKQTP_COMMON_PRI_INCLUDED) {
DEFINES += NOMINMAX
}
HEADERS += $$PWD/jkqtcommon/jkqtp_imexport.h \
HEADERS += $$PWD/jkqtcommon/jkqtcommon_imexport.h \
$$PWD/jkqtcommon/jkqtpdebuggingtools.h \
$$PWD/jkqtcommon/jkqtpmathtools.h \
$$PWD/jkqtcommon/jkqtpalgorithms.h \

View File

@ -3,14 +3,16 @@ cmake_minimum_required(VERSION 3.0)
set(libBasename JKQTPlotter)
if(BUILD_SHARED_LIBS)
set(libsh_name ${libBasename}SharedLib${LIBNAME_ADDITION})
set(${libsh_name}_LIBRARY ${libsh_name} PARENT_SCOPE)
set(libsh_name ${libBasename}SharedLib)
set(libsh_name_decorated ${libsh_name}${LIBNAME_ADDITION})
set(${libBasename}_SHARED_LIBRARY ${libsh_name_decorated} CACHE STRING "name of static library for ${libBasename}" FORCE)
message( STATUS "-- Building ${libsh_name}" )
endif(BUILD_SHARED_LIBS)
if(BUILD_STATIC_LIBS)
set(lib_name ${libBasename}Lib${LIBNAME_ADDITION})
set(${lib_name}_LIBRARY ${lib_name} PARENT_SCOPE)
set(lib_name ${libBasename}Lib)
set(lib_name_decorated ${lib_name}${LIBNAME_ADDITION})
set(${libBasename}_STATIC_LIBRARY ${lib_name_decorated} CACHE STRING "name of static library for ${libBasename}" FORCE)
message( STATUS "-- Building ${lib_name}" )
endif(BUILD_STATIC_LIBS)
@ -82,6 +84,7 @@ set(HEADERS
jkqtpcoordinateaxes.h
jkqtpcoordinateaxesstyle.h
jkqtpimagetools.h
jkqtplotter_imexport.h
)
set(HEADERS_GRAPHS
graphs/jkqtpboxplot.h
@ -125,15 +128,20 @@ set(RESOURCES
if(BUILD_SHARED_LIBS)
add_library(${libsh_name} SHARED ${SOURCES} ${SOURCES_GRAPHS} ${SOURCES_GUI} ${SOURCES_OVERLAYS} ${HEADERS} ${HEADERS_GRAPHS} ${HEADERS_GUI} ${HEADERS_OVERLAYS} ${RESOURCES})
set_property(TARGET ${libsh_name} PROPERTY VERSION "${PROJECT_VERSION}")
target_link_libraries(${libsh_name} Qt5::Core Qt5::Gui Qt5::Widgets Qt5::PrintSupport Qt5::Svg Qt5::Xml JKQTCommonSharedLib${LIBNAME_ADDITION} JKQTMathTextSharedLib${LIBNAME_ADDITION})
target_compile_definitions(${libsh_name} PUBLIC JKQTP_LIB_IN_DLL)
target_compile_definitions(${libsh_name} PRIVATE JKQTP_LIB_EXPORT_LIBRARY)
set_property(TARGET ${libsh_name} PROPERTY OUTPUT_NAME "${libsh_name_decorated}")
target_link_libraries(${libsh_name} Qt5::Core Qt5::Gui Qt5::Widgets Qt5::PrintSupport Qt5::Svg Qt5::Xml JKQTCommonSharedLib JKQTMathTextSharedLib)
target_compile_definitions(${libsh_name} PUBLIC JKQTPLOTTER_LIB_IN_DLL)
target_compile_definitions(${libsh_name} PRIVATE JKQTPLOTTER_LIB_EXPORT_LIBRARY)
set_property(TARGET ${libsh_name} PROPERTY WINDOWS_EXPORT_ALL_SYMBOLS "ON")
# include(GenerateExportHeader)
# generate_export_header(${libsh_name})
endif()
if(BUILD_STATIC_LIBS)
add_library(${lib_name} STATIC ${SOURCES} ${SOURCES_GRAPHS} ${SOURCES_GUI} ${SOURCES_OVERLAYS} ${HEADERS} ${HEADERS_GRAPHS} ${HEADERS_GUI} ${HEADERS_OVERLAYS} ${RESOURCES})
set_property(TARGET ${lib_name} PROPERTY VERSION "${PROJECT_VERSION}")
target_link_libraries(${lib_name} Qt5::Core Qt5::Gui Qt5::Widgets Qt5::PrintSupport Qt5::Svg Qt5::Xml JKQTCommonLib${LIBNAME_ADDITION} JKQTMathTextLib${LIBNAME_ADDITION})
set_property(TARGET ${lib_name} PROPERTY OUTPUT_NAME "${lib_name_decorated}")
target_link_libraries(${lib_name} Qt5::Core Qt5::Gui Qt5::Widgets Qt5::PrintSupport Qt5::Svg Qt5::Xml JKQTCommonLib JKQTMathTextLib)
endif()

View File

@ -84,7 +84,7 @@ void JKQTPBarVerticalGraph::draw(JKQTPEnhancedPainter& painter) {
QBrush b=getFillBrush(painter, parent);
int imax=qMin(datastore->getRows(static_cast<size_t>(xColumn)), datastore->getRows(static_cast<size_t>(yColumn)));
int imax=static_cast<int>(qMin(datastore->getRows(static_cast<size_t>(xColumn)), datastore->getRows(static_cast<size_t>(yColumn))));
int imin=0;
if (imax<imin) {
@ -167,7 +167,7 @@ bool JKQTPBarVerticalGraph::getXMinMax(double& minx, double& maxx, double& small
JKQTPDatastore* datastore=parent->getDatastore();
int imin=0;
int imax=qMin(datastore->getRows(static_cast<size_t>(xColumn)), datastore->getRows(static_cast<size_t>(yColumn)));
int imax=static_cast<int>(qMin(datastore->getRows(static_cast<size_t>(xColumn)), datastore->getRows(static_cast<size_t>(yColumn))));
if (imax<imin) {
int h=imin;
imin=imax;
@ -222,7 +222,7 @@ bool JKQTPBarVerticalGraph::getYMinMax(double& miny, double& maxy, double& small
JKQTPDatastore* datastore=parent->getDatastore();
int imin=0;
int imax=qMin(datastore->getRows(static_cast<size_t>(xColumn)), datastore->getRows(static_cast<size_t>(yColumn)));
int imax=static_cast<int>(qMin(datastore->getRows(static_cast<size_t>(xColumn)), datastore->getRows(static_cast<size_t>(yColumn))));
if (imax<imin) {
int h=imin;
imin=imax;
@ -328,7 +328,7 @@ void JKQTPBarHorizontalGraph::draw(JKQTPEnhancedPainter& painter) {
QBrush b=getFillBrush(painter, parent);
int imax=qMin(datastore->getRows(static_cast<size_t>(xColumn)), datastore->getRows(static_cast<size_t>(yColumn)));
int imax=static_cast<int>(qMin(datastore->getRows(static_cast<size_t>(xColumn)), datastore->getRows(static_cast<size_t>(yColumn))));
int imin=0;
if (imax<imin) {
int h=imin;
@ -414,7 +414,7 @@ bool JKQTPBarHorizontalGraph::getXMinMax(double& minx, double& maxx, double& sma
JKQTPDatastore* datastore=parent->getDatastore();
int imin=0;
int imax=qMin(datastore->getRows(static_cast<size_t>(xColumn)), datastore->getRows(static_cast<size_t>(xColumn)));
int imax=static_cast<int>(qMin(datastore->getRows(static_cast<size_t>(xColumn)), datastore->getRows(static_cast<size_t>(yColumn))));
if (imax<imin) {
int h=imin;
imin=imax;
@ -457,7 +457,7 @@ bool JKQTPBarHorizontalGraph::getYMinMax(double& miny, double& maxy, double& sma
JKQTPDatastore* datastore=parent->getDatastore();
int imin=0;
int imax=qMin(datastore->getRows(static_cast<size_t>(xColumn)), datastore->getRows(static_cast<size_t>(yColumn)));
int imax=static_cast<int>(qMin(datastore->getRows(static_cast<size_t>(xColumn)), datastore->getRows(static_cast<size_t>(yColumn))));
if (imax<imin) {
int h=imin;
imin=imax;
@ -607,7 +607,7 @@ bool JKQTPBarHorizontalErrorGraph::getXMinMax(double &minx, double &maxx, double
JKQTPDatastore* datastore=parent->getDatastore();
int imin=0;
int imax=qMin(datastore->getRows(static_cast<size_t>(xColumn)), datastore->getRows(static_cast<size_t>(yColumn)));
int imax=static_cast<int>(qMin(datastore->getRows(static_cast<size_t>(xColumn)), datastore->getRows(static_cast<size_t>(yColumn))));
if (imax<imin) {
int h=imin;
imin=imax;
@ -676,7 +676,7 @@ bool JKQTPBarVerticalErrorGraph::getYMinMax(double &miny, double &maxy, double &
JKQTPDatastore* datastore=parent->getDatastore();
int imin=0;
int imax=qMin(datastore->getRows(static_cast<size_t>(xColumn)), datastore->getRows(static_cast<size_t>(yColumn)));
int imax=static_cast<int>(qMin(datastore->getRows(static_cast<size_t>(xColumn)), datastore->getRows(static_cast<size_t>(yColumn))));
if (imax<imin) {
int h=imin;
imin=imax;
@ -717,7 +717,7 @@ bool JKQTPBarVerticalErrorGraph::getYMinMax(double &miny, double &maxy, double &
JKQTPDatastore* datastore=parent->getDatastore();
int imin=0;
int imax=qMin(datastore->getRows(static_cast<size_t>(xColumn)), datastore->getRows(static_cast<size_t>(yColumn)));
int imax=static_cast<int>(qMin(datastore->getRows(static_cast<size_t>(xColumn)), datastore->getRows(static_cast<size_t>(yColumn))));
if (imax<imin) {
int h=imin;
imin=imax;

View File

@ -21,7 +21,7 @@
#include <QPainter>
#include <QPair>
#include "jkqtplotter/jkqtptools.h"
#include "jkqtcommon/jkqtp_imexport.h"
#include "jkqtplotter/jkqtplotter_imexport.h"
#include "jkqtplotter/jkqtpimagetools.h"
#include "jkqtplotter/jkqtpgraphsbase.h"
#include "jkqtplotter/jkqtpgraphsbaseerrors.h"
@ -56,7 +56,7 @@
\see JKQTPBarHorizontalGraph, \ref JKQTPlotterBarcharts, jkqtpstatAddHHistogram1D(), jkqtpstatAddHHistogram1DAutoranged()
*/
class JKQTP_LIB_EXPORT JKQTPBarVerticalGraph: public JKQTPXYGraph, public JKQTPGraphLineStyleMixin, public JKQTPGraphFillStyleMixin {
class JKQTPLOTTER_LIB_EXPORT JKQTPBarVerticalGraph: public JKQTPXYGraph, public JKQTPGraphLineStyleMixin, public JKQTPGraphFillStyleMixin {
Q_OBJECT
public:
/** \brief class constructor */
@ -175,7 +175,7 @@ class JKQTP_LIB_EXPORT JKQTPBarVerticalGraph: public JKQTPXYGraph, public JKQTPG
*
* \see JKQTPBarVerticalGraph, \ref JKQTPlotterStackedBarChart
*/
class JKQTP_LIB_EXPORT JKQTPBarVerticalStackableGraph: public JKQTPBarVerticalGraph {
class JKQTPLOTTER_LIB_EXPORT JKQTPBarVerticalStackableGraph: public JKQTPBarVerticalGraph {
Q_OBJECT
public:
/** \brief class constructor */
@ -215,7 +215,7 @@ class JKQTP_LIB_EXPORT JKQTPBarVerticalStackableGraph: public JKQTPBarVerticalGr
*
* \see jkqtpstatAddYErrorBarGraph(), JKQTPBarVerticalGraph, \ref JKQTPlotterBarcharts
*/
class JKQTP_LIB_EXPORT JKQTPBarVerticalErrorGraph: public JKQTPBarVerticalGraph, public JKQTPYGraphErrors {
class JKQTPLOTTER_LIB_EXPORT JKQTPBarVerticalErrorGraph: public JKQTPBarVerticalGraph, public JKQTPYGraphErrors {
Q_OBJECT
public:
/** \brief class constructor */
@ -249,7 +249,7 @@ class JKQTP_LIB_EXPORT JKQTPBarVerticalErrorGraph: public JKQTPBarVerticalGraph,
\see \ref JKQTPlotterBarcharts, jkqtpstatAddVHistogram1D(), jkqtpstatAddVHistogram1DAutoranged()
*/
class JKQTP_LIB_EXPORT JKQTPBarHorizontalGraph: public JKQTPBarVerticalGraph {
class JKQTPLOTTER_LIB_EXPORT JKQTPBarHorizontalGraph: public JKQTPBarVerticalGraph {
Q_OBJECT
public:
/** \brief class constructor */
@ -287,7 +287,7 @@ class JKQTP_LIB_EXPORT JKQTPBarHorizontalGraph: public JKQTPBarVerticalGraph {
*
* \see JKQTPBarHorizontalGraph, \ref JKQTPlotterStackedBarChart
*/
class JKQTP_LIB_EXPORT JKQTPBarHorizontalStackableGraph: public JKQTPBarHorizontalGraph {
class JKQTPLOTTER_LIB_EXPORT JKQTPBarHorizontalStackableGraph: public JKQTPBarHorizontalGraph {
Q_OBJECT
public:
/** \brief class constructor */
@ -328,7 +328,7 @@ class JKQTP_LIB_EXPORT JKQTPBarHorizontalStackableGraph: public JKQTPBarHorizont
* \see jkqtpstatAddXErrorBarGraph(), JKQTPBarHorizontalGraph, \ref JKQTPlotterBarcharts
*
*/
class JKQTP_LIB_EXPORT JKQTPBarHorizontalErrorGraph: public JKQTPBarHorizontalGraph, public JKQTPXGraphErrors {
class JKQTPLOTTER_LIB_EXPORT JKQTPBarHorizontalErrorGraph: public JKQTPBarHorizontalGraph, public JKQTPXGraphErrors {
Q_OBJECT
public:
/** \brief class constructor */

View File

@ -257,7 +257,7 @@ bool JKQTPBoxplotVerticalGraph::getYMinMax(double& miny, double& maxy, double& s
JKQTPDatastore* datastore=parent->getDatastore();
int imin=0;
int imax=datastore->getRows(medianColumn);
int imax= static_cast<int>(datastore->getRows(medianColumn));
if (imax<imin) {
int h=imin;
imin=imax;
@ -478,7 +478,7 @@ bool JKQTPBoxplotHorizontalGraph::getXMinMax(double& miny, double& maxy, double&
JKQTPDatastore* datastore=parent->getDatastore();
int imin=0;
int imax=datastore->getRows(medianColumn);
int imax= static_cast<int>(datastore->getRows(medianColumn));
if (imax<imin) {
int h=imin;
imin=imax;

View File

@ -22,7 +22,7 @@
#include <QPainter>
#include <QPair>
#include "jkqtplotter/jkqtptools.h"
#include "jkqtcommon/jkqtp_imexport.h"
#include "jkqtplotter/jkqtplotter_imexport.h"
#include "jkqtplotter/jkqtpimagetools.h"
#include "jkqtplotter/jkqtpgraphsbase.h"
#include "jkqtplotter/graphs/jkqtpboxplotstylingmixins.h"
@ -98,7 +98,7 @@
\see \ref JKQTPlotterBoxplotsGraphs, jkqtpstatVAddBoxplots(),\ref JKQTPlotterBasicJKQTPDatastoreStatisticsGroupedStat, \ref JKQTPlotterBasicJKQTPDatastoreStatistics, \ref JKQTPlotterBoxplotStyling
*/
class JKQTP_LIB_EXPORT JKQTPBoxplotVerticalGraph: public JKQTPGraph, public JKQTPGraphBoxplotStyleMixin {
class JKQTPLOTTER_LIB_EXPORT JKQTPBoxplotVerticalGraph: public JKQTPGraph, public JKQTPGraphBoxplotStyleMixin {
Q_OBJECT
public:
@ -255,7 +255,7 @@ class JKQTP_LIB_EXPORT JKQTPBoxplotVerticalGraph: public JKQTPGraph, public JKQT
\see JKQTPBoxplotVerticalGraph \ref JKQTPlotterBoxplotsGraphs, jkqtpstatHAddBoxplots(), \ref JKQTPlotterBasicJKQTPDatastoreStatisticsGroupedStat, \ref JKQTPlotterBasicJKQTPDatastoreStatistics, \ref JKQTPlotterBoxplotStyling
*/
class JKQTP_LIB_EXPORT JKQTPBoxplotHorizontalGraph: public JKQTPBoxplotVerticalGraph {
class JKQTPLOTTER_LIB_EXPORT JKQTPBoxplotHorizontalGraph: public JKQTPBoxplotVerticalGraph {
Q_OBJECT
public:
/** \brief class constructor */
@ -309,7 +309,7 @@ class JKQTP_LIB_EXPORT JKQTPBoxplotHorizontalGraph: public JKQTPBoxplotVerticalG
\see jkqtpstatVAddBoxplot(), \ref JKQTPlotterBasicJKQTPDatastoreStatistics, \ref JKQTPlotterBoxplotsGraphs, \ref JKQTPlotterBoxplotStyling, jkqtpstatAddVBoxplotAndOutliers()
*/
class JKQTP_LIB_EXPORT JKQTPBoxplotVerticalElement: public JKQTPPlotObject, public JKQTPGraphBoxplotStyleMixin {
class JKQTPLOTTER_LIB_EXPORT JKQTPBoxplotVerticalElement: public JKQTPPlotObject, public JKQTPGraphBoxplotStyleMixin {
Q_OBJECT
public:
/** \brief class constructor */
@ -433,7 +433,7 @@ class JKQTP_LIB_EXPORT JKQTPBoxplotVerticalElement: public JKQTPPlotObject, publ
\see JKQTPBoxplotVerticalElement, jkqtpstatHAddBoxplot(), \ref JKQTPlotterBasicJKQTPDatastoreStatistics, \ref JKQTPlotterBoxplotsGraphs, \ref JKQTPlotterBoxplotStyling, jkqtpstatAddHBoxplotAndOutliers()
*/
class JKQTP_LIB_EXPORT JKQTPBoxplotHorizontalElement: public JKQTPBoxplotVerticalElement {
class JKQTPLOTTER_LIB_EXPORT JKQTPBoxplotHorizontalElement: public JKQTPBoxplotVerticalElement {
Q_OBJECT
public:
/** \brief class constructor */

View File

@ -21,7 +21,7 @@
#include <QString>
#include <QPainter>
#include "jkqtplotter/jkqtptools.h"
#include "jkqtcommon/jkqtp_imexport.h"
#include "jkqtplotter/jkqtplotter_imexport.h"
#include "jkqtplotter/jkqtpgraphsbase.h"
#include "jkqtplotter/jkqtpgraphsbasestylingmixins.h"
@ -42,7 +42,7 @@
\image html test_styledboxplot.png
*/
class JKQTP_LIB_EXPORT JKQTPGraphBoxplotStyleMixin: public JKQTPGraphLineStyleMixin, public JKQTPGraphFillStyleMixin {
class JKQTPLOTTER_LIB_EXPORT JKQTPGraphBoxplotStyleMixin: public JKQTPGraphLineStyleMixin, public JKQTPGraphFillStyleMixin {
Q_GADGET
public:
/** \brief class constructor */

View File

@ -439,11 +439,16 @@ JKQTPColumnContourPlot::JKQTPColumnContourPlot(JKQTPlotter *parent):
void JKQTPColumnContourPlot::setImageColumn(int __value)
{
this->imageColumn = __value;
if (parent && __value>=0 && parent->getDatastore()) {
setNx(parent->getDatastore()->getColumnImageWidth(__value));
setNy(parent->getDatastore()->getColumnImageHeight(__value));
}
this->imageColumn = __value;
if (parent && __value >= 0 && parent->getDatastore()) {
setNx(parent->getDatastore()->getColumnImageWidth(__value));
setNy(parent->getDatastore()->getColumnImageHeight(__value));
}
}
void JKQTPColumnContourPlot::setImageColumn(size_t __value)
{
setImageColumn(static_cast<int>(__value));
}
int JKQTPColumnContourPlot::getImageColumn() const
@ -465,6 +470,6 @@ void JKQTPColumnContourPlot::ensureImageData()
} else {
this->datatype=JKQTPMathImageBase::DoubleArray;
this->data=parent->getDatastore()->getColumnPointer(imageColumn,0);
this->Ny=parent->getDatastore()->getRows(imageColumn)/this->Nx;
this->Ny=static_cast<int>(parent->getDatastore()->getRows(imageColumn)/this->Nx);
}
}

View File

@ -32,7 +32,7 @@
#include "jkqtplotter/jkqtpbaseelements.h"
#include "jkqtplotter/graphs/jkqtpimage.h"
#include "jkqtplotter/jkqtpgraphsbasestylingmixins.h"
#include "jkqtcommon/jkqtp_imexport.h"
#include "jkqtplotter/jkqtplotter_imexport.h"
#include "jkqtplotter/jkqtpimagetools.h"
@ -73,7 +73,7 @@
* is necessary. If it doesn't match, the contours are recalculated. In addition several methods that change certain
* properties of the plot will force a recalculation. Finally you can call clearCachedContours() to force a recalculation!
*/
class JKQTP_LIB_EXPORT JKQTPContourPlot: public JKQTPMathImage, public JKQTPGraphLineStyleMixin {
class JKQTPLOTTER_LIB_EXPORT JKQTPContourPlot: public JKQTPMathImage, public JKQTPGraphLineStyleMixin {
Q_OBJECT
public:
/** \brief options of how the colors for the contours are chosen (note that all images in the documentation show the same graph, just with different coloring modes!)*/
@ -250,7 +250,7 @@ class JKQTP_LIB_EXPORT JKQTPContourPlot: public JKQTPMathImage, public JKQTPGrap
*
* \see jkqtpstatAddKDE2DContour(), jkqtpstatAddHistogram2DContour(), \ref JKQTPlotterContourPlot, \ref JKQTPlotterBasicJKQTPDatastoreStatistics2D
*/
class JKQTP_LIB_EXPORT JKQTPColumnContourPlot: public JKQTPContourPlot {
class JKQTPLOTTER_LIB_EXPORT JKQTPColumnContourPlot: public JKQTPContourPlot {
Q_OBJECT
public:
@ -261,7 +261,10 @@ class JKQTP_LIB_EXPORT JKQTPColumnContourPlot: public JKQTPContourPlot {
JKQTPColumnContourPlot(JKQTPlotter* parent);
/*! \copydoc imageColumn */
virtual void setImageColumn(int __value);
void setImageColumn(int __value);
/*! \copydoc imageColumn */
void setImageColumn(size_t __value);
/*! \copydoc imageColumn */
int getImageColumn() const;

View File

@ -302,7 +302,7 @@ void JKQTPXFunctionLineGraph::collectParameters()
iparams.clear();
JKQTPDatastore* datastore=parent->getDatastore();
int imin=0;
int imax=datastore->getRows(parameterColumn);
int imax=static_cast<int>(datastore->getRows(parameterColumn));
for (int i=imin; i<imax; i++) {
double xv=datastore->get(parameterColumn,i);
@ -325,7 +325,7 @@ void JKQTPXFunctionLineGraph::collectParameters()
ierrorparams.clear();
JKQTPDatastore* datastore=parent->getDatastore();
int imin=0;
int imax=datastore->getRows(errorParameterColumn);
int imax= static_cast<int>(datastore->getRows(errorParameterColumn));
for (int i=imin; i<imax; i++) {
double xv=datastore->get(errorParameterColumn,i);

View File

@ -24,7 +24,7 @@
#include <QPair>
#include "jkqtplotter/graphs/jkqtpscatter.h"
#include "jkqtplotter/jkqtpgraphsbasestylingmixins.h"
#include "jkqtcommon/jkqtp_imexport.h"
#include "jkqtplotter/jkqtplotter_imexport.h"
#include <functional>
#ifndef jkqtpgraphsevaluatedfunction_H
@ -68,7 +68,7 @@ typedef std::function<double(double)> jkqtpSimplePlotFunctionType;
\see \ref JKQTPlotterFunctionPlots, jkqtpstatAddPolyFit(), jkqtpstatAddWeightedRegression(), jkqtpstatAddRobustIRLSRegression(), jkqtpstatAddRegression(), jkqtpstatAddLinearWeightedRegression(), jkqtpstatAddRobustIRLSLinearRegression(), jkqtpstatAddLinearRegression()
*/
class JKQTP_LIB_EXPORT JKQTPXFunctionLineGraph: public JKQTPGraph, public JKQTPGraphLineStyleMixin, public JKQTPGraphFillStyleMixin {
class JKQTPLOTTER_LIB_EXPORT JKQTPXFunctionLineGraph: public JKQTPGraph, public JKQTPGraphLineStyleMixin, public JKQTPGraphFillStyleMixin {
Q_OBJECT
public:
@ -396,7 +396,7 @@ class JKQTP_LIB_EXPORT JKQTPXFunctionLineGraph: public JKQTPGraph, public JKQTPG
\see \ref JKQTPlotterFunctionPlots
*/
class JKQTP_LIB_EXPORT JKQTPYFunctionLineGraph: public JKQTPXFunctionLineGraph {
class JKQTPLOTTER_LIB_EXPORT JKQTPYFunctionLineGraph: public JKQTPXFunctionLineGraph {
Q_OBJECT
public:
/** \brief class constructor */

View File

@ -18,7 +18,7 @@
*/
#include "jkqtcommon/jkqtp_imexport.h"
#include "jkqtplotter/jkqtplotter_imexport.h"
#include "jkqtplotter/jkqtpgraphsbase.h"
#include "jkqtplotter/jkqtpgraphsbaseerrors.h"
#include "jkqtplotter/graphs/jkqtpspecialline.h"
@ -37,7 +37,7 @@
\see \ref JKQTPlotterFilledGraphs
*/
class JKQTP_LIB_EXPORT JKQTPFilledCurveXGraph: public JKQTPSpecialLineHorizontalGraph {
class JKQTPLOTTER_LIB_EXPORT JKQTPFilledCurveXGraph: public JKQTPSpecialLineHorizontalGraph {
Q_OBJECT
public:
/** \brief class constructor */
@ -56,7 +56,7 @@ class JKQTP_LIB_EXPORT JKQTPFilledCurveXGraph: public JKQTPSpecialLineHorizontal
\see \ref JKQTPlotterFilledGraphs, jkqtpstatAddXErrorFilledCurveGraph()
*/
class JKQTP_LIB_EXPORT JKQTPFilledCurveXErrorGraph: public JKQTPFilledCurveXGraph, public JKQTPYGraphErrors {
class JKQTPLOTTER_LIB_EXPORT JKQTPFilledCurveXErrorGraph: public JKQTPFilledCurveXGraph, public JKQTPYGraphErrors {
Q_OBJECT
public:
/** \brief class constructor */
@ -85,7 +85,7 @@ class JKQTP_LIB_EXPORT JKQTPFilledCurveXErrorGraph: public JKQTPFilledCurveXGrap
\see \ref JKQTPlotterFilledGraphs
*/
class JKQTP_LIB_EXPORT JKQTPFilledCurveYGraph: public JKQTPSpecialLineVerticalGraph {
class JKQTPLOTTER_LIB_EXPORT JKQTPFilledCurveYGraph: public JKQTPSpecialLineVerticalGraph {
Q_OBJECT
public:
/** \brief class constructor */
@ -105,7 +105,7 @@ class JKQTP_LIB_EXPORT JKQTPFilledCurveYGraph: public JKQTPSpecialLineVerticalGr
\see \ref JKQTPlotterFilledGraphs, jkqtpstatAddYErrorFilledCurveGraph()
*/
class JKQTP_LIB_EXPORT JKQTPFilledCurveYErrorGraph: public JKQTPFilledCurveYGraph, public JKQTPXGraphErrors {
class JKQTPLOTTER_LIB_EXPORT JKQTPFilledCurveYErrorGraph: public JKQTPFilledCurveYGraph, public JKQTPXGraphErrors {
Q_OBJECT
public:
/** \brief class constructor */
@ -139,7 +139,7 @@ class JKQTP_LIB_EXPORT JKQTPFilledCurveYErrorGraph: public JKQTPFilledCurveYGrap
\see \ref JKQTPlotterDateTimeAxes
*/
class JKQTP_LIB_EXPORT JKQTPFilledVerticalRangeGraph: public JKQTPXYGraph, public JKQTPGraphLineStyleMixin, public JKQTPGraphFillStyleMixin {
class JKQTPLOTTER_LIB_EXPORT JKQTPFilledVerticalRangeGraph: public JKQTPXYGraph, public JKQTPGraphLineStyleMixin, public JKQTPGraphFillStyleMixin {
Q_OBJECT
public:
/** \brief class constructor */

View File

@ -24,7 +24,7 @@
#include "jkqtplotter/graphs/jkqtpscatter.h"
#include "jkqtplotter/jkqtpgraphsbasestylingmixins.h"
#include "jkqtplotter/jkqtptools.h"
#include "jkqtcommon/jkqtp_imexport.h"
#include "jkqtplotter/jkqtplotter_imexport.h"
#include "jkqtmathtext/jkqtmathtext.h"
#ifndef jkqtpgraphsgeometric_H_INCLUDED
@ -36,7 +36,7 @@
\ingroup jkqtplotter_geoplots
*/
class JKQTP_LIB_EXPORT JKQTPGeoBaseLine: public JKQTPPlotObject, public JKQTPGraphLineStyleMixin {
class JKQTPLOTTER_LIB_EXPORT JKQTPGeoBaseLine: public JKQTPPlotObject, public JKQTPGraphLineStyleMixin {
Q_OBJECT
public:
/*! \brief class contructor
@ -86,7 +86,7 @@ class JKQTP_LIB_EXPORT JKQTPGeoBaseLine: public JKQTPPlotObject, public JKQTPGra
\ingroup jkqtplotter_geoplots
*/
class JKQTP_LIB_EXPORT JKQTPGeoBaseFilled: public JKQTPGeoBaseLine, public JKQTPGraphFillStyleMixin {
class JKQTPLOTTER_LIB_EXPORT JKQTPGeoBaseFilled: public JKQTPGeoBaseLine, public JKQTPGraphFillStyleMixin {
Q_OBJECT
public:
/*! \brief class contructor
@ -154,7 +154,7 @@ class JKQTP_LIB_EXPORT JKQTPGeoBaseFilled: public JKQTPGeoBaseLine, public JKQTP
\ingroup jkqtplotter_geoplots
*/
class JKQTP_LIB_EXPORT JKQTPGeoSymbol: public JKQTPPlotObject, public JKQTPGraphSymbolStyleMixin {
class JKQTPLOTTER_LIB_EXPORT JKQTPGeoSymbol: public JKQTPPlotObject, public JKQTPGraphSymbolStyleMixin {
Q_OBJECT
public:
/*! \brief class contructor
@ -219,7 +219,7 @@ class JKQTP_LIB_EXPORT JKQTPGeoSymbol: public JKQTPPlotObject, public JKQTPGraph
\ingroup jkqtplotter_geoplots
*/
class JKQTP_LIB_EXPORT JKQTPGeoText: public JKQTPPlotObject, public JKQTPGraphTextStyleMixin {
class JKQTPLOTTER_LIB_EXPORT JKQTPGeoText: public JKQTPPlotObject, public JKQTPGraphTextStyleMixin {
Q_OBJECT
public:
/*! \brief class contructor
@ -306,7 +306,7 @@ class JKQTP_LIB_EXPORT JKQTPGeoText: public JKQTPPlotObject, public JKQTPGraphTe
\image html plot_geoline.png
*/
class JKQTP_LIB_EXPORT JKQTPGeoLine: public JKQTPGeoBaseLine {
class JKQTPLOTTER_LIB_EXPORT JKQTPGeoLine: public JKQTPGeoBaseLine {
Q_OBJECT
public:
/*! \brief class constructor
@ -404,7 +404,7 @@ class JKQTP_LIB_EXPORT JKQTPGeoLine: public JKQTPGeoBaseLine {
\image html plot_geoinfiniteline.png
*/
class JKQTP_LIB_EXPORT JKQTPGeoInfiniteLine: public JKQTPGeoBaseLine {
class JKQTPLOTTER_LIB_EXPORT JKQTPGeoInfiniteLine: public JKQTPGeoBaseLine {
Q_OBJECT
public:
/*! \brief class constructor
@ -482,7 +482,7 @@ class JKQTP_LIB_EXPORT JKQTPGeoInfiniteLine: public JKQTPGeoBaseLine {
\image html plot_geolines.png
*/
class JKQTP_LIB_EXPORT JKQTPGeoPolyLines: public JKQTPGeoBaseLine {
class JKQTPLOTTER_LIB_EXPORT JKQTPGeoPolyLines: public JKQTPGeoBaseLine {
Q_OBJECT
public:
/*! \brief class constructor
@ -549,7 +549,7 @@ class JKQTP_LIB_EXPORT JKQTPGeoPolyLines: public JKQTPGeoBaseLine {
\image html plot_georectangle.png
*/
class JKQTP_LIB_EXPORT JKQTPGeoRectangle: public JKQTPGeoBaseFilled {
class JKQTPLOTTER_LIB_EXPORT JKQTPGeoRectangle: public JKQTPGeoBaseFilled {
Q_OBJECT
public:
/*! \brief class constructor
@ -691,7 +691,7 @@ protected:
\image html plot_geopolygon.png
*/
class JKQTP_LIB_EXPORT JKQTPGeoPolygon: public JKQTPGeoBaseFilled {
class JKQTPLOTTER_LIB_EXPORT JKQTPGeoPolygon: public JKQTPGeoBaseFilled {
Q_OBJECT
public:
/*! \brief class constructor
@ -773,7 +773,7 @@ class JKQTP_LIB_EXPORT JKQTPGeoPolygon: public JKQTPGeoBaseFilled {
\see <a href="http://www.codeguru.com/cpp/g-m/gdi/article.php/c131">http://www.codeguru.com/cpp/g-m/gdi/article.php/c131</a> and
<a href="http://en.wikipedia.org/wiki/Ellipse#General_parametric_form">http://en.wikipedia.org/wiki/Ellipse#General_parametric_form</a>
*/
class JKQTP_LIB_EXPORT JKQTPGeoEllipse: public JKQTPGeoRectangle {
class JKQTPLOTTER_LIB_EXPORT JKQTPGeoEllipse: public JKQTPGeoRectangle {
Q_OBJECT
public:
/*! \brief class constructor
@ -879,7 +879,7 @@ class JKQTP_LIB_EXPORT JKQTPGeoEllipse: public JKQTPGeoRectangle {
\image html plot_geoarc.png
*/
class JKQTP_LIB_EXPORT JKQTPGeoArc: public JKQTPGeoBaseLine {
class JKQTPLOTTER_LIB_EXPORT JKQTPGeoArc: public JKQTPGeoBaseLine {
Q_OBJECT
public:
/*! \brief class constructor
@ -988,7 +988,7 @@ class JKQTP_LIB_EXPORT JKQTPGeoArc: public JKQTPGeoBaseLine {
\image html plot_geopie.png
*/
class JKQTP_LIB_EXPORT JKQTPGeoPie: public JKQTPGeoEllipse {
class JKQTPLOTTER_LIB_EXPORT JKQTPGeoPie: public JKQTPGeoEllipse {
Q_OBJECT
public:
/*! \brief class constructor
@ -1057,7 +1057,7 @@ class JKQTP_LIB_EXPORT JKQTPGeoPie: public JKQTPGeoEllipse {
\image html plot_geochord.png
*/
class JKQTP_LIB_EXPORT JKQTPGeoChord: public JKQTPGeoPie {
class JKQTPLOTTER_LIB_EXPORT JKQTPGeoChord: public JKQTPGeoPie {
Q_OBJECT
public:
/*! \brief class constructor

View File

@ -417,7 +417,12 @@ void JKQTPMathImageBase::drawKeyMarker(JKQTPEnhancedPainter &/*painter*/, QRectF
void JKQTPMathImageBase::setNx(int __value)
{
this->Nx = __value;
this->Nx = __value;
}
void JKQTPMathImageBase::setNx(size_t __value)
{
this->Nx = static_cast<int>(__value);
}
int JKQTPMathImageBase::getNx() const
@ -427,7 +432,12 @@ int JKQTPMathImageBase::getNx() const
void JKQTPMathImageBase::setNy(int __value)
{
this->Ny = __value;
this->Ny = __value;
}
void JKQTPMathImageBase::setNy(size_t __value)
{
this->Ny = static_cast<int>(__value);
}
int JKQTPMathImageBase::getNy() const
@ -1670,8 +1680,8 @@ JKQTPColumnMathImage::JKQTPColumnMathImage(double x, double y, double width, dou
this->modifierColumn=-1;
this->imageColumn=imageColumn;
if (parent && imageColumn>=0 && parent->getDatastore()) {
Nx=parent->getDatastore()->getColumnImageWidth(imageColumn);
Ny=parent->getDatastore()->getColumnImageHeight(imageColumn);
Nx= static_cast<int>(parent->getDatastore()->getColumnImageWidth(imageColumn));
Ny= static_cast<int>(parent->getDatastore()->getColumnImageHeight(imageColumn));
}
this->datatype=JKQTPMathImageBase::DoubleArray;
}
@ -1696,6 +1706,15 @@ JKQTPColumnMathImage::JKQTPColumnMathImage(double x, double y, double width, dou
{
}
void JKQTPColumnMathImage::setImageColumn(size_t __value)
{
setImageColumn(static_cast<int>(__value));
}
void JKQTPColumnMathImage::setModifierColumn(size_t __value)
{
setImageColumn(static_cast<int>(__value));
}
void JKQTPColumnMathImage::setImageColumn(int __value)
{
this->imageColumn = __value;
@ -1739,7 +1758,7 @@ void JKQTPColumnMathImage::ensureImageData()
} else {
this->datatype=JKQTPMathImageBase::DoubleArray;
this->data=parent->getDatastore()->getColumnPointer(imageColumn,0);
this->Ny=parent->getDatastore()->getRows(imageColumn)/this->Nx;
this->Ny= static_cast<int>(parent->getDatastore()->getRows(imageColumn)/this->Nx);
}
if (this->Nx==0 || modifierColumn<0 || !parent->getDatastore()->getColumnPointer(modifierColumn,0)) {
this->dataModifier=nullptr;

View File

@ -29,7 +29,7 @@
#include "jkqtplotter/graphs/jkqtpscatter.h"
#include "jkqtplotter/jkqtptools.h"
#include "jkqtplotter/jkqtpbaseelements.h"
#include "jkqtcommon/jkqtp_imexport.h"
#include "jkqtplotter/jkqtplotter_imexport.h"
#include "jkqtplotter/jkqtpimagetools.h"
@ -37,7 +37,7 @@
/*! \brief base class for plotting an image
\ingroup jkqtplotter_imagelots_elements
*/
class JKQTP_LIB_EXPORT JKQTPImageBase: public JKQTPGraph {
class JKQTPLOTTER_LIB_EXPORT JKQTPImageBase: public JKQTPGraph {
Q_OBJECT
public:
/** \brief class constructor
@ -130,7 +130,7 @@ class JKQTP_LIB_EXPORT JKQTPImageBase: public JKQTPGraph {
\image html imageplot.png
*/
class JKQTP_LIB_EXPORT JKQTPMathImageBase: public JKQTPImageBase {
class JKQTPLOTTER_LIB_EXPORT JKQTPMathImageBase: public JKQTPImageBase {
Q_OBJECT
public:
/** \brief possible datatypes of the data array, plotted by this class. */
@ -230,13 +230,17 @@ class JKQTP_LIB_EXPORT JKQTPMathImageBase: public JKQTPImageBase {
/** \brief plots a key marker inside the specified rectangle \a rect */
virtual void drawKeyMarker(JKQTPEnhancedPainter& painter, QRectF& rect) override;
/*! \copydoc Nx */
void setNx(int __value);
/*! \copydoc Nx */
/*! \copydoc Nx */
void setNx(int __value);
/*! \copydoc Nx */
void setNx(size_t __value);
/*! \copydoc Nx */
int getNx() const;
/*! \copydoc Ny */
void setNy(int __value);
/*! \copydoc Ny */
/*! \copydoc Ny */
void setNy(size_t __value);
/*! \copydoc Ny */
int getNy() const;
/*! \copydoc data */
virtual void setData(void* __value);
@ -337,7 +341,7 @@ class JKQTP_LIB_EXPORT JKQTPMathImageBase: public JKQTPImageBase {
\see \ref JKQTPlotterImagePlotQImageRGB
*/
class JKQTP_LIB_EXPORT JKQTPImage: public JKQTPImageBase {
class JKQTPLOTTER_LIB_EXPORT JKQTPImage: public JKQTPImageBase {
Q_OBJECT
public:
@ -472,7 +476,7 @@ class JKQTP_LIB_EXPORT JKQTPImage: public JKQTPImageBase {
\see \ref JKQTPlotterImagePlotNoDatastore
*/
class JKQTP_LIB_EXPORT JKQTPMathImage: public JKQTPMathImageBase {
class JKQTPLOTTER_LIB_EXPORT JKQTPMathImage: public JKQTPMathImageBase {
Q_OBJECT
public:
@ -1000,7 +1004,7 @@ int JKQTPMathImage::getModifierSampleSize() const {
\see jkqtpstatAddKDE2DImage(), jkqtpstatAddHistogram2DImage(), \ref JKQTPlotterImagePlot, \ref JKQTPlotterImagePlotModifier, \ref JKQTPlotterImagePlotOpenCV
*/
class JKQTP_LIB_EXPORT JKQTPColumnMathImage: public JKQTPMathImage {
class JKQTPLOTTER_LIB_EXPORT JKQTPColumnMathImage: public JKQTPMathImage {
Q_OBJECT
public:
@ -1072,11 +1076,16 @@ class JKQTP_LIB_EXPORT JKQTPColumnMathImage: public JKQTPMathImage {
/*! \copydoc imageColumn */
virtual void setImageColumn(int __value);
/*! \copydoc imageColumn */
virtual void setImageColumn(size_t __value);
/*! \copydoc imageColumn */
int getImageColumn() const;
/*! \copydoc modifierColumn */
virtual void setModifierColumn(int __value);
/*! \copydoc modifierColumn */
/*! \copydoc modifierColumn */
virtual void setModifierColumn(size_t __value);
/*! \copydoc modifierColumn */
int getModifierColumn() const;
/** \copydoc JKQTPGraph::usesColumn() */

Some files were not shown because too many files have changed in this diff Show More