mirror of
https://github.com/jkriege2/JKQtPlotter.git
synced 2024-11-15 10:05:47 +08:00
partly solve issue #81 by making print-support optional. In addition it can be switched off with the CMake-option JKQtPlotter_BUILD_FORCE_NO_PRINTER_SUPPORT=ON
This commit is contained in:
parent
d132009679
commit
d8c1524f61
@ -13,6 +13,9 @@ endif()
|
||||
if(NOT DEFINED JKQtPlotter_BUILD_EXAMPLES)
|
||||
option(JKQtPlotter_BUILD_EXAMPLES "Build the examples examples" ON)
|
||||
endif()
|
||||
if(NOT DEFINED JKQtPlotter_BUILD_FORCE_NO_PRINTER_SUPPORT)
|
||||
option(JKQtPlotter_BUILD_FORCE_NO_PRINTER_SUPPORT "Build the library with printer support switched off, even if it is available" OFF)
|
||||
endif()
|
||||
if(NOT DEFINED CMAKE_INSTALL_PREFIX)
|
||||
option(CMAKE_INSTALL_PREFIX "Install directory" ${CMAKE_CURRENT_SOURCE_DIR}/install)
|
||||
endif()
|
||||
|
@ -4,17 +4,27 @@ set(CMAKE_AUTOMOC ON)
|
||||
set(CMAKE_AUTORCC ON)
|
||||
set(CMAKE_AUTOUIC ON)
|
||||
|
||||
find_package(QT NAMES Qt6 Qt5 COMPONENTS Core Gui Widgets PrintSupport Svg Xml OpenGL REQUIRED)
|
||||
find_package(Qt${QT_VERSION_MAJOR} COMPONENTS Core Gui Widgets PrintSupport Svg Xml OpenGL REQUIRED)
|
||||
find_package(QT NAMES Qt6 Qt5 COMPONENTS Core REQUIRED)
|
||||
find_package(Qt${QT_VERSION_MAJOR} COMPONENTS Core Gui Widgets Svg Xml OpenGL REQUIRED)
|
||||
if(${QT_VERSION_MAJOR} VERSION_GREATER_EQUAL "6")
|
||||
find_package(Qt${QT_VERSION_MAJOR} REQUIRED COMPONENTS OpenGLWidgets)
|
||||
endif()
|
||||
|
||||
# configure compiler
|
||||
if(${QT_VERSION_MAJOR} VERSION_LESS "6" )
|
||||
set(CMAKE_CXX_STANDARD 11)
|
||||
set(CMAKE_CXX_STANDARD_REQUIRED on)
|
||||
if(NOT ${JKQtPlotter_BUILD_FORCE_NO_PRINTER_SUPPORT})
|
||||
find_package(Qt${QT_VERSION_MAJOR} OPTIONAL_COMPONENTS PrintSupport)
|
||||
else()
|
||||
set(CMAKE_CXX_STANDARD 17)
|
||||
set(CMAKE_CXX_STANDARD_REQUIRED on)
|
||||
message(STATUS "WARNING: not searching for Qt${QT_VERSION_MAJOR}::PrintSupport, because JKQtPlotter_BUILD_FORCE_NO_PRINTER_SUPPORT=${JKQtPlotter_BUILD_FORCE_NO_PRINTER_SUPPORT}")
|
||||
endif()
|
||||
|
||||
|
||||
set(JKQtPlotter_HAS_NO_PRINTER_SUPPORT FALSE)
|
||||
if(JKQtPlotter_BUILD_FORCE_NO_PRINTER_SUPPORT)
|
||||
set(JKQtPlotter_HAS_NO_PRINTER_SUPPORT TRUE)
|
||||
else()
|
||||
if(TARGET Qt${QT_VERSION_MAJOR}::PrintSupport)
|
||||
else()
|
||||
set(JKQtPlotter_HAS_NO_PRINTER_SUPPORT TRUE)
|
||||
endif()
|
||||
if(${QT_VERSION_MAJOR} VERSION_LESS "5" )
|
||||
set(JKQtPlotter_HAS_NO_PRINTER_SUPPORT FALSE)
|
||||
endif()
|
||||
endif()
|
||||
|
@ -51,6 +51,7 @@ The CMake build system offers several configuration variables that you may set/c
|
||||
- \c JKQtPlotter_BUILD_SHARED_LIBS : Build as shared library (default: \c ON )
|
||||
- \c JKQtPlotter_BUILD_STATIC_LIBS : Build as static library (default: \c ON )
|
||||
- \c JKQtPlotter_BUILD_INCLUDE_XITS_FONTS : Include XITS fonts as resources in library (default: \c ON )
|
||||
- \c JKQtPlotter_BUILD_FORCE_NO_PRINTER_SUPPORT : switches off print-support (when set to \c ON ), even if the current platform supports it (default: \c OFF )
|
||||
- \c JKQtPlotter_BUILD_DECORATE_LIBNAMES_WITH_BUILDTYPE : If set, the build-type is appended to the library name (default: \c ON )
|
||||
- \c JKQtPlotter_BUILD_EXAMPLES : Build examples (default: \c ON )
|
||||
- \c CMAKE_INSTALL_PREFIX : Install directory for the library
|
||||
|
@ -33,7 +33,7 @@ This page lists several todos and wishes for future version of JKQTPlotter
|
||||
<li>graphs: add candlestick charts (financial, see https://en.m.wikipedia.org/wiki/Candlestick_chart)</li>
|
||||
<li>graphs: add OHLC charts (financial, see https://en.m.wikipedia.org/wiki/Open-high-low-close_chart)</li>
|
||||
<li>graphs: explore/demonstrate/improve plotting speed for large dataset (e.g. only draw visible elements, use algorithm to draw fewer lines if they overlay ...)</li>
|
||||
<li></li>
|
||||
<li>plot: refactor print preview/export preview code </li>
|
||||
<li></li>
|
||||
<li></li>
|
||||
</ul></li>
|
||||
|
@ -27,6 +27,7 @@ Changes, compared to \ref page_whatsnew_V4_0_0 "v4.0.0" include:
|
||||
<li>NEW: new "seaborn" style for plots</li>
|
||||
<li>NEW/BREAKING CHANGE: changed JKQTPColorDerivationMode into a struct, which extends its capabilities above the previously available few enum-items</li>
|
||||
<li>NEW: added debug-feature to show boxes around text in the plot</li>
|
||||
<li>BREAKING: Print-Support can now be switched off with a CMAKE-option JKQtPlotter_BUILD_FORCE_NO_PRINTER_SUPPORT=ON. This also switches off PDF and SVG export, partly solves issue <a href="https://github.com/jkriege2/JKQtPlotter/issues/81">#81</a>, many thanks to <a href="https://github.com/sufuk">user:sufuk</a> for contributing part of the code and supplying the idea! </li>
|
||||
</ul>
|
||||
|
||||
<li>JKQTMathText:<ul>
|
||||
|
@ -15,9 +15,9 @@ set(UIS )
|
||||
add_executable(${EXENAME} WIN32 ${SOURCES} ${HEADERS} ${RESOURCES} ${UIS})
|
||||
target_include_directories(${EXENAME} PRIVATE ../../lib)
|
||||
if(JKQtPlotter_BUILD_STATIC_LIBS)
|
||||
target_link_libraries(${EXENAME} JKQTPlotterLib Qt${QT_VERSION_MAJOR}::PrintSupport Qt${QT_VERSION_MAJOR}::Xml)
|
||||
target_link_libraries(${EXENAME} JKQTPlotterLib)
|
||||
elseif(JKQtPlotter_BUILD_SHARED_LIBS)
|
||||
target_link_libraries(${EXENAME} JKQTPlotterSharedLib Qt${QT_VERSION_MAJOR}::PrintSupport Qt${QT_VERSION_MAJOR}::Xml)
|
||||
target_link_libraries(${EXENAME} JKQTPlotterSharedLib)
|
||||
endif()
|
||||
|
||||
|
||||
|
@ -38,10 +38,14 @@ TestUserInteraction::TestUserInteraction(QWidget *parent) :
|
||||
// Some of the are also available in the context menu and toolbar of the JKQTPlotter
|
||||
// others are not
|
||||
QMenu* menuPlot=menuBar()->addMenu("Plot-Menu");
|
||||
#ifndef JKQTPLOTTER_COMPILE_WITHOUT_PRINTSUPPORT
|
||||
menuPlot->addAction(plot->getPlotter()->getActionPrint());
|
||||
#endif
|
||||
QMenu* menuPlotS=menuPlot->addMenu("Save ...");
|
||||
menuPlotS->addAction(plot->getPlotter()->getActionSaveData());
|
||||
#ifndef JKQTPLOTTER_COMPILE_WITHOUT_PRINTSUPPORT
|
||||
menuPlotS->addAction(plot->getPlotter()->getActionSavePDF()); // not available from JKQTPlotter by default
|
||||
#endif
|
||||
menuPlotS->addAction(plot->getPlotter()->getActionSavePlot());
|
||||
QMenu* menuPlotZ=menuPlot->addMenu("Zoom ...");
|
||||
menuPlotZ->addAction(plot->getPlotter()->getActionZoomAll());
|
||||
|
@ -20,8 +20,15 @@ message( STATUS "Processor Name: ${CMAKE_SYSTEM_PROCESSOR}" )
|
||||
message( STATUS "Using Qt: ${QT_VERSION}" )
|
||||
message( STATUS " [at ${QT_DIR}]" )
|
||||
if(JKQtPlotter_BUILD_INCLUDE_XITS_FONTS)
|
||||
message( STATUS "Using XITS fonts" )
|
||||
message( STATUS "XITS fonts: LINKED IN" )
|
||||
else()
|
||||
message( STATUS "XITS fonts: NOT AVAILABLE IN LIB" )
|
||||
endif(JKQtPlotter_BUILD_INCLUDE_XITS_FONTS)
|
||||
if(${JKQtPlotter_HAS_NO_PRINTER_SUPPORT})
|
||||
message( STATUS "Print support: OFF" )
|
||||
else()
|
||||
message( STATUS "Print support: ON" )
|
||||
endif()
|
||||
message( STATUS "Installing to: ${CMAKE_INSTALL_PREFIX}" )
|
||||
message( STATUS "=============================================================================" )
|
||||
message( STATUS )
|
||||
|
@ -95,35 +95,39 @@ set(HEADERS
|
||||
|
||||
include(CMakePackageConfigHelpers)
|
||||
|
||||
|
||||
if(JKQtPlotter_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} PUBLIC Qt${QT_VERSION_MAJOR}::Core Qt${QT_VERSION_MAJOR}::Gui Qt${QT_VERSION_MAJOR}::Xml Qt${QT_VERSION_MAJOR}::Widgets)
|
||||
target_compile_definitions(${libsh_name} PUBLIC JKQTCOMMON_LIB_IN_DLL)
|
||||
target_compile_definitions(${libsh_name} PRIVATE JKQTCOMMON_LIB_EXPORT_LIBRARY)
|
||||
function(JKQtCommon_setDefaultLibOptions TARGETNAME)
|
||||
set_property(TARGET ${TARGETNAME} PROPERTY VERSION "${PROJECT_VERSION}")
|
||||
target_link_libraries(${TARGETNAME} PUBLIC Qt${QT_VERSION_MAJOR}::Core Qt${QT_VERSION_MAJOR}::Gui Qt${QT_VERSION_MAJOR}::Xml Qt${QT_VERSION_MAJOR}::Widgets)
|
||||
if(${QT_VERSION_MAJOR} VERSION_LESS "6")
|
||||
set_property(TARGET ${libsh_name} PROPERTY CXX_STANDARD 11)
|
||||
set_property(TARGET ${libsh_name} PROPERTY CXX_STANDARD_REQUIRED TRUE)
|
||||
target_compile_features(${libsh_name} PUBLIC cxx_std_11)
|
||||
set_property(TARGET ${TARGETNAME} PROPERTY CXX_STANDARD 11)
|
||||
set_property(TARGET ${TARGETNAME} PROPERTY CXX_STANDARD_REQUIRED TRUE)
|
||||
target_compile_features(${TARGETNAME} PUBLIC cxx_std_11)
|
||||
else()
|
||||
set_property(TARGET ${libsh_name} PROPERTY CXX_STANDARD 17)
|
||||
set_property(TARGET ${libsh_name} PROPERTY CXX_STANDARD_REQUIRED TRUE)
|
||||
target_compile_features(${libsh_name} PUBLIC cxx_std_17)
|
||||
set_property(TARGET ${TARGETNAME} PROPERTY CXX_STANDARD 17)
|
||||
set_property(TARGET ${TARGETNAME} PROPERTY CXX_STANDARD_REQUIRED TRUE)
|
||||
target_compile_features(${TARGETNAME} PUBLIC cxx_std_17)
|
||||
endif()
|
||||
if(MINGW)
|
||||
# COMPILER-SETTINGS FOR MINGW
|
||||
target_compile_options(${libsh_name} PUBLIC -fexceptions)
|
||||
target_compile_options(${TARGETNAME} PUBLIC -fexceptions)
|
||||
elseif(MSVC)
|
||||
# COMPILER-SETTINGS FOR MS VISUAL C++
|
||||
target_compile_options(${libsh_name} PUBLIC /EHsc)
|
||||
target_compile_definitions(${libsh_name} PUBLIC NOMINMAX)
|
||||
target_compile_options(${TARGETNAME} PUBLIC /EHsc)
|
||||
target_compile_definitions(${TARGETNAME} PUBLIC NOMINMAX)
|
||||
endif()
|
||||
target_include_directories(${libsh_name} PUBLIC
|
||||
target_include_directories(${TARGETNAME} PUBLIC
|
||||
$<BUILD_INTERFACE:${CMAKE_CURRENT_LIST_DIR}/../>
|
||||
$<INSTALL_INTERFACE:${CMAKE_INSTALL_INCLUDEDIR}>
|
||||
$<INSTALL_INTERFACE:${CMAKE_INSTALL_INCLUDEDIR}>
|
||||
)
|
||||
endfunction()
|
||||
|
||||
|
||||
if(JKQtPlotter_BUILD_SHARED_LIBS)
|
||||
add_library(${libsh_name} SHARED ${SOURCES} ${HEADERS} )
|
||||
JKQtCommon_setDefaultLibOptions(${libsh_name})
|
||||
set_property(TARGET ${libsh_name} PROPERTY OUTPUT_NAME "${libsh_name_decorated}")
|
||||
target_compile_definitions(${libsh_name} PUBLIC JKQTCOMMON_LIB_IN_DLL)
|
||||
target_compile_definitions(${libsh_name} PRIVATE JKQTCOMMON_LIB_EXPORT_LIBRARY)
|
||||
set_target_properties(${libsh_name} PROPERTIES WINDOWS_EXPORT_ALL_SYMBOLS "ON")
|
||||
write_basic_package_version_file(${CMAKE_CURRENT_BINARY_DIR}/${libsh_name}Version.cmake
|
||||
VERSION ${PROJECT_VERSION}
|
||||
@ -132,30 +136,8 @@ endif()
|
||||
|
||||
if(JKQtPlotter_BUILD_STATIC_LIBS)
|
||||
add_library(${lib_name} STATIC ${SOURCES} ${HEADERS})
|
||||
set_property(TARGET ${lib_name} PROPERTY VERSION "${PROJECT_VERSION}")
|
||||
JKQtCommon_setDefaultLibOptions(${lib_name})
|
||||
set_property(TARGET ${lib_name} PROPERTY OUTPUT_NAME "${lib_name_decorated}")
|
||||
if(${QT_VERSION_MAJOR} VERSION_LESS "6")
|
||||
set_property(TARGET ${lib_name} PROPERTY CXX_STANDARD 11)
|
||||
set_property(TARGET ${lib_name} PROPERTY CXX_STANDARD_REQUIRED TRUE)
|
||||
target_compile_features(${lib_name} PUBLIC cxx_std_11)
|
||||
else()
|
||||
set_property(TARGET ${lib_name} PROPERTY CXX_STANDARD 17)
|
||||
set_property(TARGET ${lib_name} PROPERTY CXX_STANDARD_REQUIRED TRUE)
|
||||
target_compile_features(${lib_name} PUBLIC cxx_std_17)
|
||||
endif()
|
||||
if(MINGW)
|
||||
# COMPILER-SETTINGS FOR MINGW
|
||||
target_compile_options(${lib_name} PUBLIC -fexceptions)
|
||||
elseif(MSVC)
|
||||
# COMPILER-SETTINGS FOR MS VISUAL C++
|
||||
target_compile_options(${lib_name} PUBLIC /EHsc)
|
||||
target_compile_definitions(${lib_name} PUBLIC NOMINMAX)
|
||||
endif()
|
||||
target_include_directories(${lib_name} PUBLIC
|
||||
$<BUILD_INTERFACE:${CMAKE_CURRENT_LIST_DIR}/../>
|
||||
$<INSTALL_INTERFACE:${CMAKE_INSTALL_INCLUDEDIR}>
|
||||
)
|
||||
target_link_libraries(${lib_name} PUBLIC Qt${QT_VERSION_MAJOR}::Core Qt${QT_VERSION_MAJOR}::Gui Qt${QT_VERSION_MAJOR}::Xml Qt${QT_VERSION_MAJOR}::Widgets)
|
||||
write_basic_package_version_file(${CMAKE_CURRENT_BINARY_DIR}/${lib_name}Version.cmake
|
||||
VERSION ${PROJECT_VERSION}
|
||||
COMPATIBILITY AnyNewerVersion )
|
||||
|
@ -34,36 +34,39 @@ set(HEADERS
|
||||
|
||||
include(CMakePackageConfigHelpers)
|
||||
|
||||
function(JKQtFastPlotter_setDefaultLibOptions TARGETNAME)
|
||||
set_property(TARGET ${TARGETNAME} PROPERTY VERSION "${PROJECT_VERSION}")
|
||||
target_link_libraries(${TARGETNAME} PUBLIC Qt${QT_VERSION_MAJOR}::Core Qt${QT_VERSION_MAJOR}::Gui Qt${QT_VERSION_MAJOR}::OpenGL Qt${QT_VERSION_MAJOR}::Widgets)
|
||||
if(${QT_VERSION_MAJOR} VERSION_LESS "6")
|
||||
set_property(TARGET ${TARGETNAME} PROPERTY CXX_STANDARD 11)
|
||||
set_property(TARGET ${TARGETNAME} PROPERTY CXX_STANDARD_REQUIRED TRUE)
|
||||
target_compile_features(${TARGETNAME} PUBLIC cxx_std_11)
|
||||
else()
|
||||
set_property(TARGET ${TARGETNAME} PROPERTY CXX_STANDARD 17)
|
||||
set_property(TARGET ${TARGETNAME} PROPERTY CXX_STANDARD_REQUIRED TRUE)
|
||||
target_compile_features(${TARGETNAME} PUBLIC cxx_std_17)
|
||||
endif()
|
||||
if(MINGW)
|
||||
# COMPILER-SETTINGS FOR MINGW
|
||||
target_compile_options(${TARGETNAME} PUBLIC -fexceptions)
|
||||
elseif(MSVC)
|
||||
# COMPILER-SETTINGS FOR MS VISUAL C++
|
||||
target_compile_options(${TARGETNAME} PUBLIC /EHsc)
|
||||
target_compile_definitions(${TARGETNAME} PUBLIC NOMINMAX)
|
||||
endif()
|
||||
target_include_directories(${TARGETNAME} PUBLIC
|
||||
$<BUILD_INTERFACE:${CMAKE_CURRENT_LIST_DIR}/../>
|
||||
$<INSTALL_INTERFACE:${CMAKE_INSTALL_INCLUDEDIR}>
|
||||
)
|
||||
endfunction()
|
||||
|
||||
if(JKQtPlotter_BUILD_SHARED_LIBS)
|
||||
add_library(${libsh_name} SHARED ${SOURCES} ${RESOURCES} ${HEADERS})
|
||||
set_property(TARGET ${libsh_name} PROPERTY VERSION "${PROJECT_VERSION}")
|
||||
JKQtFastPlotter_setDefaultLibOptions(${libsh_name})
|
||||
set_property(TARGET ${libsh_name} PROPERTY OUTPUT_NAME "${libsh_name_decorated}")
|
||||
target_link_libraries(${libsh_name} PUBLIC Qt${QT_VERSION_MAJOR}::Core Qt${QT_VERSION_MAJOR}::Gui Qt${QT_VERSION_MAJOR}::Widgets Qt${QT_VERSION_MAJOR}::OpenGL JKQTCommonSharedLib)
|
||||
if(${QT_VERSION_MAJOR} VERSION_LESS "6")
|
||||
set_property(TARGET ${libsh_name} PROPERTY CXX_STANDARD 11)
|
||||
set_property(TARGET ${libsh_name} PROPERTY CXX_STANDARD_REQUIRED TRUE)
|
||||
target_compile_features(${libsh_name} PUBLIC cxx_std_11)
|
||||
else()
|
||||
target_link_libraries(${libsh_name} PUBLIC Qt${QT_VERSION_MAJOR}::OpenGLWidgets)
|
||||
set_property(TARGET ${libsh_name} PROPERTY CXX_STANDARD 17)
|
||||
set_property(TARGET ${libsh_name} PROPERTY CXX_STANDARD_REQUIRED TRUE)
|
||||
target_compile_features(${libsh_name} PUBLIC cxx_std_17)
|
||||
endif()
|
||||
target_link_libraries(${libsh_name} PUBLIC JKQTCommonSharedLib)
|
||||
target_compile_definitions(${libsh_name} PUBLIC JKQTFASTPLOTTER_LIB_IN_DLL)
|
||||
if(MINGW)
|
||||
# COMPILER-SETTINGS FOR MINGW
|
||||
target_compile_options(${libsh_name} PUBLIC -fexceptions)
|
||||
elseif(MSVC)
|
||||
# COMPILER-SETTINGS FOR MS VISUAL C++
|
||||
target_compile_options(${libsh_name} PUBLIC /EHsc)
|
||||
target_compile_definitions(${libsh_name} PUBLIC NOMINMAX)
|
||||
endif()
|
||||
target_compile_definitions(${libsh_name} PRIVATE JKQTFASTPLOTTER_LIB_EXPORT_LIBRARY)
|
||||
target_include_directories(${libsh_name} PUBLIC
|
||||
$<BUILD_INTERFACE:${CMAKE_CURRENT_LIST_DIR}/../>
|
||||
$<INSTALL_INTERFACE:${CMAKE_INSTALL_INCLUDEDIR}>
|
||||
)
|
||||
set_target_properties(${libsh_name} PROPERTIES WINDOWS_EXPORT_ALL_SYMBOLS "ON")
|
||||
write_basic_package_version_file(${CMAKE_CURRENT_BINARY_DIR}/${libsh_name}Version.cmake
|
||||
VERSION ${PROJECT_VERSION}
|
||||
@ -72,31 +75,9 @@ endif()
|
||||
|
||||
if(JKQtPlotter_BUILD_STATIC_LIBS)
|
||||
add_library(${lib_name} STATIC ${SOURCES} ${RESOURCES} ${HEADERS})
|
||||
set_property(TARGET ${lib_name} PROPERTY VERSION "${PROJECT_VERSION}")
|
||||
JKQtFastPlotter_setDefaultLibOptions(${lib_name})
|
||||
set_property(TARGET ${lib_name} PROPERTY OUTPUT_NAME "${lib_name_decorated}")
|
||||
if(MINGW)
|
||||
# COMPILER-SETTINGS FOR MINGW
|
||||
target_compile_options(${lib_name} PUBLIC -fexceptions)
|
||||
elseif(MSVC)
|
||||
# COMPILER-SETTINGS FOR MS VISUAL C++
|
||||
target_compile_options(${lib_name} PUBLIC /EHsc)
|
||||
target_compile_definitions(${lib_name} PUBLIC NOMINMAX)
|
||||
endif()
|
||||
target_link_libraries(${lib_name} PUBLIC Qt${QT_VERSION_MAJOR}::Core Qt${QT_VERSION_MAJOR}::Gui Qt${QT_VERSION_MAJOR}::Widgets Qt${QT_VERSION_MAJOR}::OpenGL JKQTCommonLib)
|
||||
if(${QT_VERSION_MAJOR} VERSION_LESS "6")
|
||||
set_property(TARGET ${lib_name} PROPERTY CXX_STANDARD 11)
|
||||
set_property(TARGET ${lib_name} PROPERTY CXX_STANDARD_REQUIRED TRUE)
|
||||
target_compile_features(${lib_name} PUBLIC cxx_std_11)
|
||||
else()
|
||||
target_link_libraries(${lib_name} PUBLIC Qt${QT_VERSION_MAJOR}::OpenGLWidgets)
|
||||
set_property(TARGET ${lib_name} PROPERTY CXX_STANDARD 17)
|
||||
set_property(TARGET ${lib_name} PROPERTY CXX_STANDARD_REQUIRED TRUE)
|
||||
target_compile_features(${lib_name} PUBLIC cxx_std_17)
|
||||
endif()
|
||||
target_include_directories(${lib_name} PUBLIC
|
||||
$<BUILD_INTERFACE:${CMAKE_CURRENT_LIST_DIR}/../>
|
||||
$<INSTALL_INTERFACE:${CMAKE_INSTALL_INCLUDEDIR}>
|
||||
)
|
||||
target_link_libraries(${lib_name} PUBLIC JKQTCommonLib)
|
||||
write_basic_package_version_file(${CMAKE_CURRENT_BINARY_DIR}/${lib_name}Version.cmake
|
||||
VERSION ${PROJECT_VERSION}
|
||||
COMPATIBILITY AnyNewerVersion )
|
||||
|
@ -85,37 +85,42 @@ endif(JKQtPlotter_BUILD_INCLUDE_XITS_FONTS)
|
||||
|
||||
include(CMakePackageConfigHelpers)
|
||||
|
||||
if(JKQtPlotter_BUILD_SHARED_LIBS)
|
||||
add_library(${libsh_name} SHARED ${SOURCES} ${RESOURCES} ${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} PUBLIC Qt${QT_VERSION_MAJOR}::Core Qt${QT_VERSION_MAJOR}::Gui Qt${QT_VERSION_MAJOR}::Widgets JKQTCommonSharedLib)
|
||||
target_compile_definitions(${libsh_name} PUBLIC JKQTMATHTEXT_LIB_IN_DLL)
|
||||
target_compile_definitions(${libsh_name} PRIVATE JKQTMATHTEXT_LIB_EXPORT_LIBRARY)
|
||||
function(JKQtMathText_setDefaultLibOptions TARGETNAME)
|
||||
set_property(TARGET ${TARGETNAME} PROPERTY VERSION "${PROJECT_VERSION}")
|
||||
target_link_libraries(${TARGETNAME} PUBLIC Qt${QT_VERSION_MAJOR}::Core Qt${QT_VERSION_MAJOR}::Gui Qt${QT_VERSION_MAJOR}::Widgets)
|
||||
if(${QT_VERSION_MAJOR} VERSION_LESS "6")
|
||||
set_property(TARGET ${libsh_name} PROPERTY CXX_STANDARD 11)
|
||||
set_property(TARGET ${libsh_name} PROPERTY CXX_STANDARD_REQUIRED TRUE)
|
||||
target_compile_features(${libsh_name} PUBLIC cxx_std_11)
|
||||
set_property(TARGET ${TARGETNAME} PROPERTY CXX_STANDARD 11)
|
||||
set_property(TARGET ${TARGETNAME} PROPERTY CXX_STANDARD_REQUIRED TRUE)
|
||||
target_compile_features(${TARGETNAME} PUBLIC cxx_std_11)
|
||||
else()
|
||||
set_property(TARGET ${libsh_name} PROPERTY CXX_STANDARD 17)
|
||||
set_property(TARGET ${libsh_name} PROPERTY CXX_STANDARD_REQUIRED TRUE)
|
||||
target_compile_features(${libsh_name} PUBLIC cxx_std_17)
|
||||
set_property(TARGET ${TARGETNAME} PROPERTY CXX_STANDARD 17)
|
||||
set_property(TARGET ${TARGETNAME} PROPERTY CXX_STANDARD_REQUIRED TRUE)
|
||||
target_compile_features(${TARGETNAME} PUBLIC cxx_std_17)
|
||||
endif()
|
||||
if(MINGW)
|
||||
# COMPILER-SETTINGS FOR MINGW
|
||||
target_compile_options(${libsh_name} PUBLIC -fexceptions)
|
||||
target_compile_options(${TARGETNAME} PUBLIC -fexceptions)
|
||||
elseif(MSVC)
|
||||
# COMPILER-SETTINGS FOR MS VISUAL C++
|
||||
target_compile_options(${libsh_name} PUBLIC /EHsc)
|
||||
target_compile_definitions(${libsh_name} PUBLIC NOMINMAX)
|
||||
target_compile_options(${TARGETNAME} PUBLIC /EHsc)
|
||||
target_compile_definitions(${TARGETNAME} PUBLIC NOMINMAX)
|
||||
endif()
|
||||
target_include_directories(${libsh_name} PUBLIC
|
||||
target_include_directories(${TARGETNAME} PUBLIC
|
||||
$<BUILD_INTERFACE:${CMAKE_CURRENT_LIST_DIR}/../>
|
||||
$<INSTALL_INTERFACE:${CMAKE_INSTALL_INCLUDEDIR}>
|
||||
$<INSTALL_INTERFACE:${CMAKE_INSTALL_INCLUDEDIR}>
|
||||
)
|
||||
if(JKQtPlotter_BUILD_INCLUDE_XITS_FONTS)
|
||||
target_compile_definitions(${libsh_name} PRIVATE JKQTMATHTEXT_COMPILED_WITH_XITS)
|
||||
target_compile_definitions(${TARGETNAME} PRIVATE JKQTMATHTEXT_COMPILED_WITH_XITS)
|
||||
endif(JKQtPlotter_BUILD_INCLUDE_XITS_FONTS)
|
||||
endfunction()
|
||||
|
||||
if(JKQtPlotter_BUILD_SHARED_LIBS)
|
||||
add_library(${libsh_name} SHARED ${SOURCES} ${RESOURCES} ${HEADERS} )
|
||||
JKQtMathText_setDefaultLibOptions(${libsh_name})
|
||||
set_property(TARGET ${libsh_name} PROPERTY OUTPUT_NAME "${libsh_name_decorated}")
|
||||
target_link_libraries(${libsh_name} PUBLIC JKQTCommonSharedLib)
|
||||
target_compile_definitions(${libsh_name} PUBLIC JKQTMATHTEXT_LIB_IN_DLL)
|
||||
target_compile_definitions(${libsh_name} PRIVATE JKQTMATHTEXT_LIB_EXPORT_LIBRARY)
|
||||
set_target_properties(${libsh_name} PROPERTIES WINDOWS_EXPORT_ALL_SYMBOLS "ON")
|
||||
write_basic_package_version_file(${CMAKE_CURRENT_BINARY_DIR}/${libsh_name}Version.cmake
|
||||
VERSION ${PROJECT_VERSION}
|
||||
@ -124,33 +129,10 @@ endif()
|
||||
|
||||
if(JKQtPlotter_BUILD_STATIC_LIBS)
|
||||
add_library(${lib_name} STATIC ${SOURCES} ${RESOURCES} ${HEADERS})
|
||||
set_property(TARGET ${lib_name} PROPERTY VERSION "${PROJECT_VERSION}")
|
||||
JKQtMathText_setDefaultLibOptions(${libsh_name})
|
||||
set_property(TARGET ${lib_name} PROPERTY OUTPUT_NAME "${lib_name_decorated}")
|
||||
if(${QT_VERSION_MAJOR} VERSION_LESS "6")
|
||||
set_property(TARGET ${lib_name} PROPERTY CXX_STANDARD 11)
|
||||
set_property(TARGET ${lib_name} PROPERTY CXX_STANDARD_REQUIRED TRUE)
|
||||
target_compile_features(${lib_name} PUBLIC cxx_std_11)
|
||||
else()
|
||||
set_property(TARGET ${lib_name} PROPERTY CXX_STANDARD 17)
|
||||
set_property(TARGET ${lib_name} PROPERTY CXX_STANDARD_REQUIRED TRUE)
|
||||
target_compile_features(${lib_name} PUBLIC cxx_std_17)
|
||||
endif()
|
||||
if(MINGW)
|
||||
# COMPILER-SETTINGS FOR MINGW
|
||||
target_compile_options(${lib_name} PUBLIC -fexceptions)
|
||||
elseif(MSVC)
|
||||
# COMPILER-SETTINGS FOR MS VISUAL C++
|
||||
target_compile_options(${lib_name} PUBLIC /EHsc)
|
||||
target_compile_definitions(${lib_name} PUBLIC NOMINMAX)
|
||||
endif()
|
||||
if(JKQtPlotter_BUILD_INCLUDE_XITS_FONTS)
|
||||
target_compile_definitions(${lib_name} PRIVATE JKQTMATHTEXT_COMPILED_WITH_XITS)
|
||||
endif(JKQtPlotter_BUILD_INCLUDE_XITS_FONTS)
|
||||
target_link_libraries(${lib_name} PUBLIC Qt${QT_VERSION_MAJOR}::Core Qt${QT_VERSION_MAJOR}::Gui Qt${QT_VERSION_MAJOR}::Widgets JKQTCommonLib)
|
||||
target_include_directories(${lib_name} PUBLIC
|
||||
$<BUILD_INTERFACE:${CMAKE_CURRENT_LIST_DIR}/../>
|
||||
$<INSTALL_INTERFACE:${CMAKE_INSTALL_INCLUDEDIR}>
|
||||
)
|
||||
|
||||
target_link_libraries(${lib_name} PUBLIC JKQTCommonLib)
|
||||
write_basic_package_version_file(${CMAKE_CURRENT_BINARY_DIR}/${lib_name}Version.cmake
|
||||
VERSION ${PROJECT_VERSION}
|
||||
COMPATIBILITY AnyNewerVersion )
|
||||
|
@ -107,6 +107,8 @@ set(HEADERS_BASE
|
||||
$<INSTALL_INTERFACE:jkqtpimagetools.h>
|
||||
$<BUILD_INTERFACE:${CMAKE_CURRENT_LIST_DIR}/jkqtpgraphsbasestyle.h>
|
||||
$<INSTALL_INTERFACE:jkqtpgraphsbasestyle.h>
|
||||
$<BUILD_INTERFACE:${CMAKE_CURRENT_LIST_DIR}/jkqtplotter_configmacros.h>
|
||||
$<INSTALL_INTERFACE:jkqtplotter_configmacros.h>
|
||||
$<BUILD_INTERFACE:${CMAKE_CURRENT_LIST_DIR}/jkqtplotter_imexport.h>
|
||||
$<INSTALL_INTERFACE:jkqtplotter_imexport.h>
|
||||
)
|
||||
@ -188,6 +190,38 @@ set(RESOURCES
|
||||
|
||||
include(CMakePackageConfigHelpers)
|
||||
|
||||
function(JKQtPlottter_setDefaultLibOptions TARGETNAME)
|
||||
set_property(TARGET ${TARGETNAME} PROPERTY VERSION "${PROJECT_VERSION}")
|
||||
target_link_libraries(${TARGETNAME} PUBLIC Qt${QT_VERSION_MAJOR}::Core Qt${QT_VERSION_MAJOR}::Gui Qt${QT_VERSION_MAJOR}::Widgets Qt${QT_VERSION_MAJOR}::Svg Qt${QT_VERSION_MAJOR}::Xml)
|
||||
if(JKQtPlotter_HAS_NO_PRINTER_SUPPORT)
|
||||
target_compile_definitions(${TARGETNAME} PUBLIC JKQTPLOTTER_HAS_NO_PRINTSUPPORT)
|
||||
else()
|
||||
target_link_libraries(${TARGETNAME} PUBLIC Qt${QT_VERSION_MAJOR}::PrintSupport)
|
||||
target_compile_definitions(${TARGETNAME} PUBLIC JKQTPLOTTER_HAS_PRINTSUPPORT)
|
||||
endif()
|
||||
if(${QT_VERSION_MAJOR} VERSION_LESS "6")
|
||||
set_property(TARGET ${TARGETNAME} PROPERTY CXX_STANDARD 11)
|
||||
set_property(TARGET ${TARGETNAME} PROPERTY CXX_STANDARD_REQUIRED TRUE)
|
||||
target_compile_features(${TARGETNAME} PUBLIC cxx_std_11)
|
||||
else()
|
||||
set_property(TARGET ${TARGETNAME} PROPERTY CXX_STANDARD 17)
|
||||
set_property(TARGET ${TARGETNAME} PROPERTY CXX_STANDARD_REQUIRED TRUE)
|
||||
target_compile_features(${TARGETNAME} PUBLIC cxx_std_17)
|
||||
endif()
|
||||
if(MINGW)
|
||||
# COMPILER-SETTINGS FOR MINGW
|
||||
target_compile_options(${TARGETNAME} PUBLIC -fexceptions)
|
||||
elseif(MSVC)
|
||||
# COMPILER-SETTINGS FOR MS VISUAL C++
|
||||
target_compile_options(${TARGETNAME} PUBLIC /EHsc)
|
||||
target_compile_definitions(${TARGETNAME} PUBLIC NOMINMAX)
|
||||
endif()
|
||||
target_include_directories(${TARGETNAME} PUBLIC
|
||||
$<BUILD_INTERFACE:${CMAKE_CURRENT_LIST_DIR}/../>
|
||||
$<INSTALL_INTERFACE:${CMAKE_INSTALL_INCLUDEDIR}>
|
||||
)
|
||||
endfunction()
|
||||
|
||||
|
||||
if(JKQtPlotter_BUILD_SHARED_LIBS)
|
||||
add_library(${libsh_name} SHARED
|
||||
@ -199,32 +233,11 @@ if(JKQtPlotter_BUILD_SHARED_LIBS)
|
||||
${HEADERS_GRAPHS}
|
||||
${HEADERS_GUI}
|
||||
)
|
||||
set_property(TARGET ${libsh_name} PROPERTY VERSION "${PROJECT_VERSION}")
|
||||
JKQtPlottter_setDefaultLibOptions(${libsh_name})
|
||||
set_property(TARGET ${libsh_name} PROPERTY OUTPUT_NAME "${libsh_name_decorated}")
|
||||
target_link_libraries(${libsh_name} PUBLIC Qt${QT_VERSION_MAJOR}::Core Qt${QT_VERSION_MAJOR}::Gui Qt${QT_VERSION_MAJOR}::Widgets Qt${QT_VERSION_MAJOR}::PrintSupport Qt${QT_VERSION_MAJOR}::Svg Qt${QT_VERSION_MAJOR}::Xml JKQTCommonSharedLib JKQTMathTextSharedLib)
|
||||
if(${QT_VERSION_MAJOR} VERSION_LESS "6")
|
||||
set_property(TARGET ${libsh_name} PROPERTY CXX_STANDARD 11)
|
||||
set_property(TARGET ${libsh_name} PROPERTY CXX_STANDARD_REQUIRED TRUE)
|
||||
target_compile_features(${libsh_name} PUBLIC cxx_std_11)
|
||||
else()
|
||||
set_property(TARGET ${libsh_name} PROPERTY CXX_STANDARD 17)
|
||||
set_property(TARGET ${libsh_name} PROPERTY CXX_STANDARD_REQUIRED TRUE)
|
||||
target_compile_features(${libsh_name} PUBLIC cxx_std_17)
|
||||
endif()
|
||||
target_link_libraries(${libsh_name} PUBLIC JKQTCommonSharedLib JKQTMathTextSharedLib)
|
||||
target_compile_definitions(${libsh_name} PUBLIC JKQTPLOTTER_LIB_IN_DLL)
|
||||
target_compile_definitions(${libsh_name} PRIVATE JKQTPLOTTER_LIB_EXPORT_LIBRARY)
|
||||
if(MINGW)
|
||||
# COMPILER-SETTINGS FOR MINGW
|
||||
target_compile_options(${libsh_name} PUBLIC -fexceptions)
|
||||
elseif(MSVC)
|
||||
# COMPILER-SETTINGS FOR MS VISUAL C++
|
||||
target_compile_options(${libsh_name} PUBLIC /EHsc)
|
||||
target_compile_definitions(${libsh_name} PUBLIC NOMINMAX)
|
||||
endif()
|
||||
target_include_directories(${libsh_name} PUBLIC
|
||||
$<BUILD_INTERFACE:${CMAKE_CURRENT_LIST_DIR}/../>
|
||||
$<INSTALL_INTERFACE:${CMAKE_INSTALL_INCLUDEDIR}>
|
||||
)
|
||||
set_target_properties(${libsh_name} PROPERTIES WINDOWS_EXPORT_ALL_SYMBOLS "ON")
|
||||
write_basic_package_version_file(${CMAKE_CURRENT_BINARY_DIR}/${libsh_name}Version.cmake
|
||||
VERSION ${PROJECT_VERSION}
|
||||
@ -233,30 +246,9 @@ endif()
|
||||
|
||||
if(JKQtPlotter_BUILD_STATIC_LIBS)
|
||||
add_library(${lib_name} STATIC ${SOURCES_BASE} ${SOURCES_GRAPHS} ${SOURCES_GUI} ${RESOURCES} ${HEADERS_BASE} ${HEADERS_GRAPHS} ${HEADERS_GUI})
|
||||
set_property(TARGET ${lib_name} PROPERTY VERSION "${PROJECT_VERSION}")
|
||||
JKQtPlottter_setDefaultLibOptions(${lib_name})
|
||||
set_property(TARGET ${lib_name} PROPERTY OUTPUT_NAME "${lib_name_decorated}")
|
||||
if(${QT_VERSION_MAJOR} VERSION_LESS "6")
|
||||
set_property(TARGET ${lib_name} PROPERTY CXX_STANDARD 11)
|
||||
set_property(TARGET ${lib_name} PROPERTY CXX_STANDARD_REQUIRED TRUE)
|
||||
target_compile_features(${lib_name} PUBLIC cxx_std_11)
|
||||
else()
|
||||
set_property(TARGET ${lib_name} PROPERTY CXX_STANDARD 17)
|
||||
set_property(TARGET ${lib_name} PROPERTY CXX_STANDARD_REQUIRED TRUE)
|
||||
target_compile_features(${lib_name} PUBLIC cxx_std_17)
|
||||
endif()
|
||||
if(MINGW)
|
||||
# COMPILER-SETTINGS FOR MINGW
|
||||
target_compile_options(${lib_name} PUBLIC -fexceptions)
|
||||
elseif(MSVC)
|
||||
# COMPILER-SETTINGS FOR MS VISUAL C++
|
||||
target_compile_options(${lib_name} PUBLIC /EHsc)
|
||||
target_compile_definitions(${lib_name} PUBLIC NOMINMAX)
|
||||
endif()
|
||||
target_include_directories(${lib_name} PUBLIC
|
||||
$<BUILD_INTERFACE:${CMAKE_CURRENT_LIST_DIR}/../>
|
||||
$<INSTALL_INTERFACE:${CMAKE_INSTALL_INCLUDEDIR}>
|
||||
)
|
||||
target_link_libraries(${lib_name} PUBLIC Qt${QT_VERSION_MAJOR}::Core Qt${QT_VERSION_MAJOR}::Gui Qt${QT_VERSION_MAJOR}::Widgets Qt${QT_VERSION_MAJOR}::PrintSupport Qt${QT_VERSION_MAJOR}::Svg Qt${QT_VERSION_MAJOR}::Xml JKQTCommonLib JKQTMathTextLib)
|
||||
target_link_libraries(${lib_name} PUBLIC JKQTCommonLib JKQTMathTextLib)
|
||||
write_basic_package_version_file(${CMAKE_CURRENT_BINARY_DIR}/${lib_name}Version.cmake
|
||||
VERSION ${PROJECT_VERSION}
|
||||
COMPATIBILITY AnyNewerVersion )
|
||||
|
@ -6,7 +6,8 @@
|
||||
#
|
||||
|
||||
# package requires Qt 5/6
|
||||
find_package(Qt@QT_VERSION_MAJOR@ COMPONENTS Core Gui Widgets PrintSupport Svg Xml OpenGL REQUIRED)
|
||||
find_package(Qt@QT_VERSION_MAJOR@ COMPONENTS Core Gui Widgets Svg Xml OpenGL REQUIRED)
|
||||
find_package(Qt@QT_VERSION_MAJOR@ OPTIONAL_COMPONENTS PrintSupport)
|
||||
find_package(JKQTCommon@JKQTP_CURRENT_TARGET_SHAREDPART@Lib REQUIRED PATHS ${CMAKE_CURRENT_LIST_DIR} ${CMAKE_MODULE_PATH})
|
||||
find_package(JKQTMathText@JKQTP_CURRENT_TARGET_SHAREDPART@Lib REQUIRED PATHS ${CMAKE_CURRENT_LIST_DIR} ${CMAKE_MODULE_PATH})
|
||||
|
||||
|
@ -32,7 +32,10 @@ Copyright (c) 2008-2020 Jan W. Krieger (<jan@jkrieger.de>)
|
||||
#include <QCheckBox>
|
||||
#include <QDialogButtonBox>
|
||||
#include <QHeaderView>
|
||||
#include <QPrintDialog>
|
||||
#ifndef JKQTPLOTTER_COMPILE_WITHOUT_PRINTSUPPORT
|
||||
# include <QPrintDialog>
|
||||
# include <QPrinter>
|
||||
#endif
|
||||
#include <QLabel>
|
||||
#include "jkqtplotter/jkqtptools.h"
|
||||
#include "jkqtcommon/jkqtpenhancedpainter.h"
|
||||
@ -57,10 +60,12 @@ JKQTPEnhancedTableView::JKQTPEnhancedTableView(QWidget *parent):
|
||||
act=new QAction(QIcon(":/JKQTPlotter/jkqtp_copy16_nohead.png"), tr("Copy Selection to clipboard (as CSV ...) without header row/column"), this);
|
||||
connect(act, SIGNAL(triggered()), this, SLOT(copySelectionToCSVNoHead()));
|
||||
addAction(act);
|
||||
#ifndef JKQTPLOTTER_COMPILE_WITHOUT_PRINTSUPPORT
|
||||
act=new QAction(QIcon(":/JKQTPlotter/jkqtp_printtable.png"), tr("Print Table"), this);
|
||||
connect(act, SIGNAL(triggered()), this, SLOT(print()));
|
||||
addAction(act);
|
||||
printAction=act;
|
||||
#endif
|
||||
}
|
||||
|
||||
JKQTPEnhancedTableView::~JKQTPEnhancedTableView()
|
||||
@ -462,14 +467,16 @@ void JKQTPEnhancedTableView::keyPressEvent(QKeyEvent *event)
|
||||
if (event->matches(QKeySequence::Copy)) {
|
||||
copySelectionToExcel(Qt::EditRole, false);
|
||||
event->accept();
|
||||
#ifndef JKQTPLOTTER_COMPILE_WITHOUT_PRINTSUPPORT
|
||||
} else if (event->matches(QKeySequence::Print)) {
|
||||
print();
|
||||
event->accept();
|
||||
#endif
|
||||
} else QTableView::keyPressEvent(event);
|
||||
emit keyPressed(event->key(), event->modifiers(), event->text());
|
||||
}
|
||||
|
||||
|
||||
#ifndef JKQTPLOTTER_COMPILE_WITHOUT_PRINTSUPPORT
|
||||
void JKQTPEnhancedTableView::print()
|
||||
{
|
||||
QPrinter* tablePrinter=getPrinter(nullptr);
|
||||
@ -497,9 +504,9 @@ void JKQTPEnhancedTableView::print()
|
||||
delete tablePrinter;
|
||||
}
|
||||
}
|
||||
#endif
|
||||
|
||||
|
||||
|
||||
#ifndef JKQTPLOTTER_COMPILE_WITHOUT_PRINTSUPPORT
|
||||
void JKQTPEnhancedTableView::print(QPrinter *printer, bool onePageWide, bool onePageHigh)
|
||||
{
|
||||
QPrinter* p=printer;
|
||||
@ -607,6 +614,7 @@ void JKQTPEnhancedTableView::print(QPrinter *printer, bool onePageWide, bool one
|
||||
|
||||
/// PRINT DONE //////////////////////////////////////////////////////////////////////////////////
|
||||
}
|
||||
#endif
|
||||
|
||||
void JKQTPEnhancedTableView::paint(QPainter &painter, QRect pageRect)
|
||||
{
|
||||
@ -649,7 +657,11 @@ QSizeF JKQTPEnhancedTableView::getTotalSize() const
|
||||
return QSizeF((totalWidth), (totalHeight));
|
||||
}
|
||||
|
||||
#ifndef JKQTPLOTTER_COMPILE_WITHOUT_PRINTSUPPORT
|
||||
void JKQTPEnhancedTableView::paint(QPainter &painter, double scale, int page, double hhh, double vhw, const QList<int>& pageCols, const QList<int>& pageRows, QPrinter* p)
|
||||
#else
|
||||
void JKQTPEnhancedTableView::paint(QPainter &painter, double scale, int page, double hhh, double vhw, const QList<int>& pageCols, const QList<int>& pageRows)
|
||||
#endif
|
||||
{
|
||||
painter.save(); auto __finalpaint=JKQTPFinally([&painter]() {painter.restore();});
|
||||
QStyleOptionViewItem option;
|
||||
@ -736,17 +748,22 @@ void JKQTPEnhancedTableView::paint(QPainter &painter, double scale, int page, do
|
||||
}
|
||||
|
||||
|
||||
#ifndef JKQTPLOTTER_COMPILE_WITHOUT_PRINTSUPPORT
|
||||
if (p && pw<pagesWide-1) p->newPage();
|
||||
#endif
|
||||
}
|
||||
pageCnt++;
|
||||
}
|
||||
#ifndef JKQTPLOTTER_COMPILE_WITHOUT_PRINTSUPPORT
|
||||
if (p && ph<pagesHigh-1) p->newPage();
|
||||
#endif
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
||||
#ifndef JKQTPLOTTER_COMPILE_WITHOUT_PRINTSUPPORT
|
||||
QPrinter *JKQTPEnhancedTableView::getPrinter(QPrinter *printerIn, bool *localPrinter)
|
||||
{
|
||||
QPrinter* p=printerIn;
|
||||
@ -767,4 +784,4 @@ QPrinter *JKQTPEnhancedTableView::getPrinter(QPrinter *printerIn, bool *localPri
|
||||
|
||||
return p;
|
||||
}
|
||||
|
||||
#endif
|
||||
|
@ -21,8 +21,12 @@
|
||||
#ifndef JKQTPEnhancedTableView_H_INCLUDED
|
||||
#define JKQTPEnhancedTableView_H_INCLUDED
|
||||
#include "jkqtplotter/jkqtplotter_imexport.h"
|
||||
#include "jkqtplotter/jkqtplotter_configmacros.h"
|
||||
#include <QTableView>
|
||||
#include <QPrinter>
|
||||
#ifndef JKQTPLOTTER_COMPILE_WITHOUT_PRINTSUPPORT
|
||||
# include <QPrintDialog>
|
||||
# include <QPrinter>
|
||||
#endif
|
||||
|
||||
/*! \brief this class extends the <a href="http://doc.qt.io/qt-5/qtableview.html">QTableView</a>
|
||||
\ingroup jkqtptools_qtwidgets
|
||||
@ -46,6 +50,7 @@ class JKQTPLOTTER_LIB_EXPORT JKQTPEnhancedTableView : public QTableView {
|
||||
|
||||
/** \brief return the contents of the table view as HTML fragment */
|
||||
QString toHtml(int borderWidth=1, bool non_breaking=false, int fontSizePt=-1) const;
|
||||
#ifndef JKQTPLOTTER_COMPILE_WITHOUT_PRINTSUPPORT
|
||||
/** \brief print the contents of the table view
|
||||
*
|
||||
* \param printer the QPrinter to use for printing the table view
|
||||
@ -62,7 +67,7 @@ class JKQTPLOTTER_LIB_EXPORT JKQTPEnhancedTableView : public QTableView {
|
||||
* \image html JKQTPEnhancedTableViewPrintSinglepage.png "Print on one page (onePageWide=true onePageHigh=true)"
|
||||
*/
|
||||
void print(QPrinter* printer, bool onePageWide=false, bool onePageHigh=false);
|
||||
|
||||
#endif
|
||||
/** \brief draw the contents of the table-view into the given \a pageRect, using the given \a painter
|
||||
*
|
||||
* The output look like this:
|
||||
@ -74,9 +79,10 @@ class JKQTPLOTTER_LIB_EXPORT JKQTPEnhancedTableView : public QTableView {
|
||||
void paint(QPainter& painter, QRect pageRec=QRect());
|
||||
/** \brief returns the totoal size of the table-view \see paint() */
|
||||
QSizeF getTotalSize() const;
|
||||
#ifndef JKQTPLOTTER_COMPILE_WITHOUT_PRINTSUPPORT
|
||||
/** \brief return a QAction that prints the table using the methode print() \see print() */
|
||||
QAction* getActionPrint() const { return printAction; }
|
||||
|
||||
inline QAction* getActionPrint() { return printAction; }
|
||||
#endif
|
||||
signals:
|
||||
/** \brief emitted when a key is pressed in the context of this widget */
|
||||
void keyPressed(int key, Qt::KeyboardModifiers modifiers, const QString& text);
|
||||
@ -106,6 +112,7 @@ class JKQTPLOTTER_LIB_EXPORT JKQTPEnhancedTableView : public QTableView {
|
||||
* \see copySelectionToCSV()
|
||||
*/
|
||||
void copySelectionToCSVNoHead(int copyrole=Qt::EditRole, const QString& separator=", ", const QChar& decimalpoint='.');
|
||||
#ifndef JKQTPLOTTER_COMPILE_WITHOUT_PRINTSUPPORT
|
||||
/** \brief print the table contents
|
||||
*
|
||||
* Before printing this function opens a <a href="http://doc.qt.io/qt-5/qprintdialog.html">QPrintDialog</a> to select a printer
|
||||
@ -124,7 +131,7 @@ class JKQTPLOTTER_LIB_EXPORT JKQTPEnhancedTableView : public QTableView {
|
||||
*
|
||||
*/
|
||||
void print();
|
||||
|
||||
#endif
|
||||
protected:
|
||||
/** \brief handles key presses and reacts to some standard keys
|
||||
* \internal
|
||||
@ -133,11 +140,17 @@ class JKQTPLOTTER_LIB_EXPORT JKQTPEnhancedTableView : public QTableView {
|
||||
/** \brief internal paintig method
|
||||
* \internal
|
||||
*/
|
||||
void paint(QPainter &painter, double scale, int page, double hhh, double vhw, const QList<int>& pageCols, const QList<int>& pageRows, QPrinter* p=nullptr);
|
||||
#ifndef JKQTPLOTTER_COMPILE_WITHOUT_PRINTSUPPORT
|
||||
void paint(QPainter &painter, double scale, int page, double hhh, double vhw, const QList<int>& pageCols, const QList<int>& pageRows, QPrinter* p=nullptr);
|
||||
#else
|
||||
void paint(QPainter &painter, double scale, int page, double hhh, double vhw, const QList<int>& pageCols, const QList<int>& pageRows);
|
||||
#endif
|
||||
#ifndef JKQTPLOTTER_COMPILE_WITHOUT_PRINTSUPPORT
|
||||
/** \brief select a printer, using a print-selection dialog if necessary */
|
||||
QPrinter* getPrinter(QPrinter* printerIn=nullptr, bool *localPrinter=nullptr);
|
||||
/** \brief action that calls print() */
|
||||
QAction* printAction;
|
||||
#endif
|
||||
private:
|
||||
};
|
||||
|
||||
|
@ -28,14 +28,16 @@
|
||||
#include <QSvgGenerator>
|
||||
#include <QDebug>
|
||||
#include <QElapsedTimer>
|
||||
#include <QtPrintSupport/QPrintPreviewWidget>
|
||||
#include <QDialog>
|
||||
#include "jkqtplotter/jkqtpbaseplotter.h"
|
||||
#include "jkqtplotter/gui/jkqtpgraphsmodel.h"
|
||||
#include "jkqtplotter/gui/jkqtpenhancedtableview.h"
|
||||
#include <QPrinter>
|
||||
#include <QPrinterInfo>
|
||||
#include <QPrintDialog>
|
||||
#ifndef JKQTPLOTTER_COMPILE_WITHOUT_PRINTSUPPORT
|
||||
# include <QPrintDialog>
|
||||
# include <QPrinter>
|
||||
# include <QPrinterInfo>
|
||||
# include <QtPrintSupport/QPrintPreviewWidget>
|
||||
#endif
|
||||
#include <QGridLayout>
|
||||
#include <QCheckBox>
|
||||
#include <QDialogButtonBox>
|
||||
@ -191,7 +193,9 @@ JKQTBasePlotter::JKQTBasePlotter(bool datastore_internal, QObject* parent, JKQTP
|
||||
lineWidthMultiplier=1;
|
||||
userSettigsFilename=globalUserSettigsFilename;
|
||||
userSettigsPrefix=globalUserSettigsPrefix;
|
||||
#ifndef JKQTPLOTTER_COMPILE_WITHOUT_PRINTSUPPORT
|
||||
currentPrinter=QPrinterInfo::defaultPrinter().printerName();
|
||||
#endif
|
||||
|
||||
if (datastore_internal) {
|
||||
datastore=new JKQTPDatastore();
|
||||
@ -237,18 +241,22 @@ JKQTBasePlotter::JKQTBasePlotter(bool datastore_internal, QObject* parent, JKQTP
|
||||
actCopyPixelImage->setToolTip(tr("Copy the plot as a pixel image to the clipboard"));
|
||||
|
||||
|
||||
#ifndef JKQTPLOTTER_COMPILE_WITHOUT_PRINTSUPPORT
|
||||
actSavePDF=new QAction(QIcon(":/JKQTPlotter/jkqtp_savepdf.png"), tr("Save P&DF"), this);
|
||||
actSavePDF->setToolTip(tr("Save as PDF"));
|
||||
//toolbar->addAction(actSavePDF);
|
||||
actSaveSVG=new QAction(QIcon(":/JKQTPlotter/jkqtp_savesvg.png"), tr("Save S&VG"), this);
|
||||
actSaveSVG->setToolTip(tr("Save as Scalable Vector Graphics (SVG)"));
|
||||
//toolbar->addAction(actSaveSVG);
|
||||
#endif
|
||||
actSavePix=new QAction(QIcon(":/JKQTPlotter/jkqtp_savepix.png"), tr("Save &Image"), this);
|
||||
actSavePix->setToolTip(tr("Save as Pixel Image (PNG, JPEG, TIFF ...)"));
|
||||
//toolbar->addAction(actSavePix);
|
||||
|
||||
#ifndef JKQTPLOTTER_COMPILE_WITHOUT_PRINTSUPPORT
|
||||
actPrint=new QAction(QIcon(":/JKQTPlotter/jkqtp_print.png"), tr("&Print"), this);
|
||||
actPrint->setToolTip("Print");
|
||||
#endif
|
||||
//toolbar->addSeparator();
|
||||
actSaveCSV=new QAction(QIcon(":/JKQTPlotter/jkqtp_savecsv.png"), tr("Save &CSV"), this);
|
||||
actSaveCSV->setToolTip(tr("Save the data which is used for the plot as Comma Separated Values (CSV)"));
|
||||
@ -273,11 +281,13 @@ JKQTBasePlotter::JKQTBasePlotter(bool datastore_internal, QObject* parent, JKQTP
|
||||
connect(actCopyMatlab, SIGNAL(triggered()), this, SLOT(copyDataMatlab()));
|
||||
connect(actShowPlotData, SIGNAL(triggered()), this, SLOT(showPlotData()));
|
||||
|
||||
connect(actSavePDF, SIGNAL(triggered()), this, SLOT(saveAsPDF()));
|
||||
#ifndef JKQTPLOTTER_COMPILE_WITHOUT_PRINTSUPPORT
|
||||
connect(actPrint, SIGNAL(triggered()), this, SLOT(print()));
|
||||
connect(actSaveSVG, SIGNAL(triggered()), this, SLOT(saveAsSVG()));
|
||||
connect(actSavePDF, SIGNAL(triggered()), this, SLOT(saveAsPDF()));
|
||||
#endif
|
||||
connect(actSavePix, SIGNAL(triggered()), this, SLOT(saveAsPixelImage()));
|
||||
|
||||
connect(actPrint, SIGNAL(triggered()), this, SLOT(print()));
|
||||
connect(actSaveCSV, SIGNAL(triggered()), this, SLOT(saveAsCSV()));
|
||||
connect(actZoomAll, SIGNAL(triggered()), this, SLOT(zoomToFit()));
|
||||
connect(actZoomIn, SIGNAL(triggered()), this, SLOT(zoomIn()));
|
||||
@ -1466,7 +1476,7 @@ void JKQTBasePlotter::gridPaint(JKQTPEnhancedPainter& painter, QSizeF pageRect,
|
||||
}
|
||||
|
||||
|
||||
|
||||
#ifndef JKQTPLOTTER_COMPILE_WITHOUT_PRINTSUPPORT
|
||||
void JKQTBasePlotter::print(QPrinter* printer, bool displayPreview) {
|
||||
loadUserSettings();
|
||||
QPrinter* p=printer;
|
||||
@ -1503,12 +1513,14 @@ void JKQTBasePlotter::print(QPrinter* printer, bool displayPreview) {
|
||||
if (delP) delete p;
|
||||
saveUserSettings();
|
||||
}
|
||||
|
||||
#endif
|
||||
|
||||
|
||||
bool JKQTBasePlotter::printpreviewNew(QPaintDevice* paintDevice, bool setAbsolutePaperSize, double printsizeX_inMM, double printsizeY_inMM, bool displayPreview) {
|
||||
#ifndef JKQTPLOTTER_COMPILE_WITHOUT_PRINTSUPPORT
|
||||
QPrinter *printer=dynamic_cast<QPrinter*>(paintDevice);
|
||||
QSvgGenerator* svg=dynamic_cast<QSvgGenerator*>(paintDevice);
|
||||
#endif
|
||||
double lw=lineWidthMultiplier;
|
||||
double fs=fontSizeMultiplier;
|
||||
double oldP=paintMagnification;
|
||||
@ -1521,12 +1533,14 @@ bool JKQTBasePlotter::printpreviewNew(QPaintDevice* paintDevice, bool setAbsolut
|
||||
paintMagnification=1.0;
|
||||
gridPrintingCalc();
|
||||
|
||||
//double resolution=paintDevice->logicalDpiX();
|
||||
//if (printer) resolution=printer->resolution();
|
||||
|
||||
printAspect=gridPrintingSize.height()/gridPrintingSize.width();
|
||||
#ifndef JKQTPLOTTER_COMPILE_WITHOUT_PRINTSUPPORT
|
||||
if (printer) printPageSizeMM=printer->pageLayout().pageSize().size(QPageSize::Millimeter);
|
||||
else if (paintDevice) printPageSizeMM=QSizeF(paintDevice->widthMM(), paintDevice->heightMM());
|
||||
#else
|
||||
if (paintDevice) printPageSizeMM=QSizeF(paintDevice->widthMM(), paintDevice->heightMM());
|
||||
#endif
|
||||
printSizeX_Millimeter=double(gridPrintingSize.width())/96.0*25.4;//double(resolution)*25.4; // convert current widget size in pt to millimeters, assuming 96dpi (default screen resolution)
|
||||
printSizeY_Millimeter=double(gridPrintingSize.height())/96.0*25.4;//double(resolution)*25.4;
|
||||
if (printsizeX_inMM>0) printSizeX_Millimeter=printsizeX_inMM;
|
||||
@ -1553,6 +1567,7 @@ bool JKQTBasePlotter::printpreviewNew(QPaintDevice* paintDevice, bool setAbsolut
|
||||
dlg->setWindowTitle(tr("Graph print/export preview ..."));
|
||||
dlg->setWindowIcon(QIcon(":/JKQTPlotter/jkqtp_exportprintpreview.png"));
|
||||
|
||||
#ifndef JKQTPLOTTER_COMPILE_WITHOUT_PRINTSUPPORT
|
||||
bool delPrinter=false;
|
||||
if (svg) {
|
||||
printer=new QPrinter();
|
||||
@ -1571,11 +1586,9 @@ bool JKQTBasePlotter::printpreviewNew(QPaintDevice* paintDevice, bool setAbsolut
|
||||
delPrinter=true;
|
||||
}
|
||||
|
||||
|
||||
printPreview=new QPrintPreviewWidget(printer, dlg);
|
||||
connect(printPreview, SIGNAL(paintRequested(QPrinter*)), this, SLOT(printpreviewPaintRequestedNew(QPrinter*)));
|
||||
|
||||
|
||||
connect(printPreview, SIGNAL(paintRequested(QPrinter*)), this, SLOT(printpreviewPaintRequestedNewPrinter(QPrinter*)));
|
||||
#endif
|
||||
|
||||
spinSizeX=new JKQTPEnhancedDoubleSpinBox(dlg);
|
||||
spinSizeX->setRange(10,100000);
|
||||
@ -1604,9 +1617,11 @@ bool JKQTBasePlotter::printpreviewNew(QPaintDevice* paintDevice, bool setAbsolut
|
||||
|
||||
if (setAbsolutePaperSize) {
|
||||
layout->addWidget(new QLabel(tr("paper/plot size: ")), 0,layout->columnCount());
|
||||
#ifndef JKQTPLOTTER_COMPILE_WITHOUT_PRINTSUPPORT
|
||||
} else if (printer && !svg) {
|
||||
int y=layout->columnCount();
|
||||
layout->addWidget(new QLabel(tr("plot size: ")), 0,y);
|
||||
#endif
|
||||
} else {
|
||||
int y=layout->columnCount();
|
||||
layout->addWidget(new QLabel(tr("paper size: ")), 1,y);
|
||||
@ -1616,6 +1631,7 @@ bool JKQTBasePlotter::printpreviewNew(QPaintDevice* paintDevice, bool setAbsolut
|
||||
layout->addWidget(new QLabel(tr(" x ")), 0,layout->columnCount());
|
||||
layout->addWidget(spinSizeY, 0,layout->columnCount());
|
||||
layout->addWidget(chkAspect, 0,layout->columnCount());
|
||||
#ifndef JKQTPLOTTER_COMPILE_WITHOUT_PRINTSUPPORT
|
||||
if (!setAbsolutePaperSize && printer && !svg) {
|
||||
layout->addWidget(new QLabel(tr("%1x%2 mm^2").arg(printer->pageLayout().pageSize().size(QPageSize::Millimeter).width()).arg(printer->pageLayout().pageSize().size(QPageSize::Millimeter).height())), 1,layout->columnCount()-4, 1, 4);
|
||||
|
||||
@ -1647,7 +1663,7 @@ bool JKQTBasePlotter::printpreviewNew(QPaintDevice* paintDevice, bool setAbsolut
|
||||
layout->addWidget(chkSetMagnification, 0,layout->columnCount());
|
||||
layout->addWidget(spinMagnification, 0,layout->columnCount());
|
||||
}
|
||||
|
||||
#endif
|
||||
|
||||
|
||||
JKQTPEnhancedDoubleSpinBox* spinLineWidthMult=new JKQTPEnhancedDoubleSpinBox(dlg);
|
||||
@ -1685,7 +1701,9 @@ bool JKQTBasePlotter::printpreviewNew(QPaintDevice* paintDevice, bool setAbsolut
|
||||
layout->addWidget(spinFontSizeMult, 1,gpos+1);
|
||||
layout->addWidget(new QWidget(), 0,layout->columnCount());
|
||||
layout->setColumnStretch(layout->columnCount()-1, 1);
|
||||
#ifndef JKQTPLOTTER_COMPILE_WITHOUT_PRINTSUPPORT
|
||||
layout->addWidget(printPreview, layout->rowCount(),0, 1, layout->columnCount());
|
||||
#endif
|
||||
QDialogButtonBox* buttonBox = new QDialogButtonBox(QDialogButtonBox::Ok | QDialogButtonBox::Cancel);
|
||||
connect(buttonBox, SIGNAL(accepted()), dlg, SLOT(accept()));
|
||||
connect(buttonBox, SIGNAL(rejected()), dlg, SLOT(reject()));
|
||||
@ -1693,15 +1711,16 @@ bool JKQTBasePlotter::printpreviewNew(QPaintDevice* paintDevice, bool setAbsolut
|
||||
dlg->resize(800,500);
|
||||
|
||||
bool res=false;
|
||||
#ifndef JKQTPLOTTER_COMPILE_WITHOUT_PRINTSUPPORT
|
||||
if (printer) {
|
||||
if (!displayPreview || dlg->exec()==QDialog::Accepted) {
|
||||
//qDebug()<<svg<<printer<<delPrinter;
|
||||
if (svg) {
|
||||
printpreviewPaintRequestedNew(svg);
|
||||
printpreviewPaintRequestedNewPaintDevice(svg);
|
||||
} else if (!delPrinter) {
|
||||
printpreviewPaintRequestedNew(printer);
|
||||
printpreviewPaintRequestedNewPrinter(printer);
|
||||
} else {
|
||||
printpreviewPaintRequestedNew(paintDevice);
|
||||
printpreviewPaintRequestedNewPaintDevice(paintDevice);
|
||||
}
|
||||
res=true;
|
||||
}
|
||||
@ -1709,8 +1728,11 @@ bool JKQTBasePlotter::printpreviewNew(QPaintDevice* paintDevice, bool setAbsolut
|
||||
if ((svg||delPrinter) && printer) {
|
||||
delete printer;
|
||||
}
|
||||
#endif
|
||||
delete dlg;
|
||||
#ifndef JKQTPLOTTER_COMPILE_WITHOUT_PRINTSUPPORT
|
||||
printPreview=nullptr;
|
||||
#endif
|
||||
lineWidthMultiplier=lw;
|
||||
fontSizeMultiplier=fs;
|
||||
plotterStyle.widgetBackgroundBrush=bc;
|
||||
@ -1723,7 +1745,9 @@ bool JKQTBasePlotter::printpreviewNew(QPaintDevice* paintDevice, bool setAbsolut
|
||||
}
|
||||
|
||||
bool JKQTBasePlotter::exportpreview(QSizeF pageSize, bool unitIsMM) {
|
||||
#ifndef JKQTPLOTTER_COMPILE_WITHOUT_PRINTSUPPORT
|
||||
printPreview=nullptr;
|
||||
#endif
|
||||
printSizeX_Millimeter=pageSize.width();
|
||||
printSizeY_Millimeter=pageSize.height();
|
||||
printAspect=1;
|
||||
@ -1741,8 +1765,6 @@ bool JKQTBasePlotter::exportpreview(QSizeF pageSize, bool unitIsMM) {
|
||||
dlg->setLayout(layout);
|
||||
dlg->setWindowTitle(tr("Graph export preview ..."));
|
||||
dlg->setWindowIcon(QIcon(":/JKQTPlotter/jkqtp_exportprintpreview.png"));
|
||||
/*printPreview=new QPrintPreviewWidget(p, dlg);
|
||||
connect(printPreview, SIGNAL(paintRequested(QPrinter*)), this, SLOT(printpreviewPaintRequested(QPrinter*)));*/
|
||||
QScrollArea* scroll=new QScrollArea(dlg);
|
||||
{
|
||||
QPalette p(scroll->palette());
|
||||
@ -1913,6 +1935,7 @@ void JKQTBasePlotter::updatePreviewLabel() {
|
||||
}
|
||||
}
|
||||
|
||||
#ifndef JKQTPLOTTER_COMPILE_WITHOUT_PRINTSUPPORT
|
||||
void JKQTBasePlotter::printpreviewPaintRequested(QPrinter* printer) {
|
||||
double lw=lineWidthMultiplier;
|
||||
double fs=fontSizeMultiplier;
|
||||
@ -1989,17 +2012,20 @@ void JKQTBasePlotter::printpreviewPaintRequested(QPrinter* printer) {
|
||||
}
|
||||
|
||||
|
||||
void JKQTBasePlotter::printpreviewPaintRequestedNew(QPrinter* printer) {
|
||||
void JKQTBasePlotter::printpreviewPaintRequestedNewPrinter(QPrinter* printer) {
|
||||
QPaintDevice* paintDevice=dynamic_cast<QPaintDevice*>(printer);
|
||||
printpreviewPaintRequestedNew(paintDevice);
|
||||
printpreviewPaintRequestedNewPaintDevice(paintDevice);
|
||||
|
||||
}
|
||||
#endif
|
||||
|
||||
void JKQTBasePlotter::printpreviewPaintRequestedNew(QPaintDevice *paintDevice)
|
||||
void JKQTBasePlotter::printpreviewPaintRequestedNewPaintDevice(QPaintDevice *paintDevice)
|
||||
{
|
||||
//QPaintDevice* paintDevice=dynamic_cast<QPaintDevice*>(printer);
|
||||
#ifndef JKQTPLOTTER_COMPILE_WITHOUT_PRINTSUPPORT
|
||||
QPrinter* printer=dynamic_cast<QPrinter*>(paintDevice);
|
||||
QSvgGenerator* svg=dynamic_cast<QSvgGenerator*>(paintDevice);
|
||||
#endif
|
||||
|
||||
double lw=lineWidthMultiplier;
|
||||
double fs=fontSizeMultiplier;
|
||||
@ -2021,6 +2047,7 @@ void JKQTBasePlotter::printpreviewPaintRequestedNew(QPaintDevice *paintDevice)
|
||||
#ifdef SHOW_JKQTPLOTTER_DEBUG
|
||||
qDebug()<<"set printing abs. size to "<<QSizeF(printSizeX_Millimeter, printSizeY_Millimeter)<<" mm^2";
|
||||
#endif
|
||||
#ifndef JKQTPLOTTER_COMPILE_WITHOUT_PRINTSUPPORT
|
||||
if (printer) {
|
||||
printer->setPageOrientation(QPageLayout::Portrait);
|
||||
printer->setPageSize(QPageSize(QSizeF(printSizeX_Millimeter, printSizeY_Millimeter), QPageSize::Millimeter));
|
||||
@ -2029,24 +2056,29 @@ void JKQTBasePlotter::printpreviewPaintRequestedNew(QPaintDevice *paintDevice)
|
||||
svg->setSize(QSizeF(ceil(siz.width()*svg->resolution()/25.4), ceil(siz.height()*svg->resolution()/25.4)).toSize());
|
||||
svg->setViewBox(QRect(0,0,-1,-1));//*25.4/double(svg->resolution()), printSizeY_Millimeter*25.4/double(svg->resolution())));
|
||||
}
|
||||
|
||||
#endif
|
||||
}
|
||||
paintMagnification=gridPrintingSize.width()/(printSizeX_Millimeter/25.4*double(paintDevice->logicalDpiX()));
|
||||
if (!gridPrinting) widgetHeight=jkqtp_roundTo<int>(widgetWidth*printSizeY_Millimeter/printSizeX_Millimeter);
|
||||
|
||||
JKQTPEnhancedPainter painter;
|
||||
#ifndef JKQTPLOTTER_COMPILE_WITHOUT_PRINTSUPPORT
|
||||
if (printer) painter.begin(printer);
|
||||
else if (svg) painter.begin(svg);
|
||||
else painter.begin(paintDevice);
|
||||
|
||||
#else
|
||||
painter.begin(paintDevice);
|
||||
#endif
|
||||
if (printKeepAbsoluteFontSizes) {
|
||||
fontSizeMultiplier=1.0;//1.0/paintMagnification;
|
||||
}
|
||||
|
||||
#ifndef JKQTPLOTTER_COMPILE_WITHOUT_PRINTSUPPORT
|
||||
if (svg) {
|
||||
lineWidthMultiplier=lineWidthMultiplier*72.0/96.0;
|
||||
fontSizeMultiplier=fontSizeMultiplier*72.0/96.0;
|
||||
}
|
||||
#endif
|
||||
#ifdef SHOW_JKQTPLOTTER_DEBUG
|
||||
qDebug()<<"\n\n\n==========================================================================";
|
||||
qDebug()<<"printAspect = "<<printAspect;
|
||||
@ -2074,9 +2106,13 @@ void JKQTBasePlotter::printpreviewPaintRequestedNew(QPaintDevice *paintDevice)
|
||||
qDebug()<<"x-axis label fontsize = "<<xAxis->getLabelFontSize()<<" pt";
|
||||
qDebug()<<"y-axis label fontsize = "<<yAxis->getLabelFontSize()<<" pt";
|
||||
#endif
|
||||
#ifndef JKQTPLOTTER_COMPILE_WITHOUT_PRINTSUPPORT
|
||||
if (printer) gridPaint(painter, printer->pageLayout().paintRectPixels(printer->resolution()).size(), printScaleToPagesize, printScaleToPagesize);
|
||||
else if (svg) gridPaint(painter, svg->size(), printScaleToPagesize, printScaleToPagesize);
|
||||
else gridPaint(painter, QSizeF(paintDevice->width(), paintDevice->height()), printScaleToPagesize, printScaleToPagesize);
|
||||
#else
|
||||
gridPaint(painter, QSizeF(paintDevice->width(), paintDevice->height()), printScaleToPagesize, printScaleToPagesize);
|
||||
#endif
|
||||
painter.end();
|
||||
widgetWidth=oldWidgetWidth;
|
||||
widgetHeight=oldWidgetHeight;
|
||||
@ -2118,7 +2154,9 @@ void JKQTBasePlotter::exportpreviewPaintRequested(JKQTPEnhancedPainter &painter,
|
||||
|
||||
void JKQTBasePlotter::printpreviewSetZoom(double value) {
|
||||
printZoomFactor=value/100.0;
|
||||
#ifndef JKQTPLOTTER_COMPILE_WITHOUT_PRINTSUPPORT
|
||||
if (printPreview) printPreview->updatePreview();
|
||||
#endif
|
||||
if (exportPreviewLabel) updatePreviewLabel();
|
||||
}
|
||||
|
||||
@ -2129,15 +2167,20 @@ void JKQTBasePlotter::printpreviewSetSizeX(double value) {
|
||||
spinSizeY->setValue(printSizeY_Millimeter);
|
||||
}
|
||||
if (printDoUpdate) {
|
||||
#ifndef JKQTPLOTTER_COMPILE_WITHOUT_PRINTSUPPORT
|
||||
if (printPreview) printPreview->updatePreview();
|
||||
#endif
|
||||
if (exportPreviewLabel) updatePreviewLabel();
|
||||
}
|
||||
}
|
||||
|
||||
void JKQTBasePlotter::printpreviewSetSizeY(double value) {
|
||||
if (printKeepAspect) return;
|
||||
printSizeY_Millimeter=value;
|
||||
if (printDoUpdate) {
|
||||
#ifndef JKQTPLOTTER_COMPILE_WITHOUT_PRINTSUPPORT
|
||||
if (printPreview) printPreview->updatePreview();
|
||||
#endif
|
||||
if (exportPreviewLabel) updatePreviewLabel();
|
||||
}
|
||||
}
|
||||
@ -2148,16 +2191,17 @@ void JKQTBasePlotter::printpreviewSetSizeXNew(double value) {
|
||||
printSizeY_Millimeter=printSizeX_Millimeter*printAspect;
|
||||
spinSizeY->setValue(printSizeY_Millimeter);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
void JKQTBasePlotter::printpreviewSetSizeYNew(double value) {
|
||||
printSizeY_Millimeter=value;
|
||||
|
||||
}
|
||||
|
||||
void JKQTBasePlotter::printpreviewSetMagnification(double value) {
|
||||
printMagnification=value/100.0;
|
||||
#ifndef JKQTPLOTTER_COMPILE_WITHOUT_PRINTSUPPORT
|
||||
if (printPreview) printPreview->updatePreview();
|
||||
#endif
|
||||
if (exportPreviewLabel) updatePreviewLabel();
|
||||
}
|
||||
|
||||
@ -2183,14 +2227,18 @@ void JKQTBasePlotter::printpreviewSetAspectRatio(bool checked) {
|
||||
printSizeY_Millimeter=printSizeX_Millimeter*printAspect;
|
||||
spinSizeY->setValue(printSizeY_Millimeter);
|
||||
}
|
||||
#ifndef JKQTPLOTTER_COMPILE_WITHOUT_PRINTSUPPORT
|
||||
if (printPreview) printPreview->updatePreview();
|
||||
#endif
|
||||
if (exportPreviewLabel) updatePreviewLabel();
|
||||
}
|
||||
|
||||
void JKQTBasePlotter::printpreviewSetKeepAbsFontsize(bool checked)
|
||||
{
|
||||
printKeepAbsoluteFontSizes=checked;
|
||||
#ifndef JKQTPLOTTER_COMPILE_WITHOUT_PRINTSUPPORT
|
||||
if (printPreview) printPreview->updatePreview();
|
||||
#endif
|
||||
if (exportPreviewLabel) updatePreviewLabel();
|
||||
}
|
||||
|
||||
@ -2204,20 +2252,26 @@ void JKQTBasePlotter::printpreviewToggleMagnification(bool checked)
|
||||
|
||||
void JKQTBasePlotter::printpreviewSetLineWidthMultiplier(double value) {
|
||||
lineWidthPrintMultiplier=value/100.0;
|
||||
#ifndef JKQTPLOTTER_COMPILE_WITHOUT_PRINTSUPPORT
|
||||
if (printPreview) printPreview->updatePreview();
|
||||
#endif
|
||||
if (exportPreviewLabel) updatePreviewLabel();
|
||||
}
|
||||
|
||||
void JKQTBasePlotter::printpreviewSetFontSizeMultiplier(double value) {
|
||||
fontSizePrintMultiplier=value/100.0;
|
||||
#ifndef JKQTPLOTTER_COMPILE_WITHOUT_PRINTSUPPORT
|
||||
if (printPreview) printPreview->updatePreview();
|
||||
#endif
|
||||
if (exportPreviewLabel) updatePreviewLabel();
|
||||
}
|
||||
|
||||
void JKQTBasePlotter::printpreviewUpdate()
|
||||
{
|
||||
if (printDoUpdate) {
|
||||
#ifndef JKQTPLOTTER_COMPILE_WITHOUT_PRINTSUPPORT
|
||||
if (printPreview) printPreview->updatePreview();
|
||||
#endif
|
||||
if (exportPreviewLabel) updatePreviewLabel();
|
||||
}
|
||||
}
|
||||
@ -3201,14 +3255,7 @@ QAction *JKQTBasePlotter::getActionCopyMatlab() const {
|
||||
return this->actCopyMatlab;
|
||||
}
|
||||
|
||||
QAction *JKQTBasePlotter::getActionSavePDF() const {
|
||||
return this->actSavePDF;
|
||||
}
|
||||
|
||||
QAction *JKQTBasePlotter::getActionSavePix() const {
|
||||
return this->actSavePix;
|
||||
}
|
||||
|
||||
#ifndef JKQTPLOTTER_COMPILE_WITHOUT_PRINTSUPPORT
|
||||
QAction *JKQTBasePlotter::getActionSaveSVG() const {
|
||||
return this->actSaveSVG;
|
||||
}
|
||||
@ -3217,6 +3264,15 @@ QAction *JKQTBasePlotter::getActionPrint() const {
|
||||
return this->actPrint;
|
||||
}
|
||||
|
||||
QAction *JKQTBasePlotter::getActionSavePDF() const {
|
||||
return this->actSavePDF;
|
||||
}
|
||||
#endif
|
||||
|
||||
QAction *JKQTBasePlotter::getActionSavePix() const {
|
||||
return this->actSavePix;
|
||||
}
|
||||
|
||||
QAction *JKQTBasePlotter::getActionSaveCSV() const {
|
||||
return this->actSaveCSV;
|
||||
}
|
||||
@ -3577,6 +3633,7 @@ void JKQTBasePlotter::saveAsGerExcelCSV(const QString& filename) {
|
||||
saveUserSettings();
|
||||
}
|
||||
|
||||
#ifndef JKQTPLOTTER_COMPILE_WITHOUT_PRINTSUPPORT
|
||||
void JKQTBasePlotter::saveAsPDF(const QString& filename, bool displayPreview) {
|
||||
loadUserSettings();
|
||||
QString fn=filename;
|
||||
@ -3609,14 +3666,16 @@ void JKQTBasePlotter::saveAsPDF(const QString& filename, bool displayPreview) {
|
||||
}
|
||||
saveUserSettings();
|
||||
}
|
||||
|
||||
#endif
|
||||
|
||||
void JKQTBasePlotter::saveImage(const QString& filename, bool displayPreview) {
|
||||
loadUserSettings();
|
||||
QString fn=filename;
|
||||
QStringList filt;
|
||||
#ifndef JKQTPLOTTER_COMPILE_WITHOUT_PRINTSUPPORT
|
||||
filt<<tr("Portable Document Format PDF [Qt] (*.pdf)");
|
||||
filt<<tr("Scalable Vector Graphics [Qt] (*.svg)");
|
||||
#endif
|
||||
filt<<tr("PNG Image [Qt] (*.png)");
|
||||
filt<<tr("BMP Image [Qt] (*.bmp)");
|
||||
filt<<tr("TIFF Image [Qt] (*.tif *.tiff)");
|
||||
@ -3660,11 +3719,17 @@ void JKQTBasePlotter::saveImage(const QString& filename, bool displayPreview) {
|
||||
}
|
||||
}
|
||||
//qDebug()<<"filtID="<<filtID<<" isWithSpecialDeviceAdapter="<<isWithSpecialDeviceAdapter<<" adapterID="<<adapterID;
|
||||
#ifndef JKQTPLOTTER_COMPILE_WITHOUT_PRINTSUPPORT
|
||||
if (filtID==0) {
|
||||
saveAsPDF(fn, displayPreview);
|
||||
} else if (filtID==1) {
|
||||
return;
|
||||
}
|
||||
if (filtID==1) {
|
||||
saveAsSVG(fn, displayPreview);
|
||||
} else if (isWithSpecialDeviceAdapter && adapterID>=0 && adapterID<jkqtpPaintDeviceAdapters.size()) {
|
||||
return;
|
||||
}
|
||||
#endif
|
||||
if (isWithSpecialDeviceAdapter && adapterID>=0 && adapterID<jkqtpPaintDeviceAdapters.size()) {
|
||||
QString tempFM="";
|
||||
if (QFile::exists(fn)) {
|
||||
#ifdef QFWIDLIB_LIBRARY
|
||||
@ -3682,10 +3747,11 @@ void JKQTBasePlotter::saveImage(const QString& filename, bool displayPreview) {
|
||||
mathText.setUseUnparsed(!jkqtpPaintDeviceAdapters[adapterID]->useLatexParser());
|
||||
|
||||
gridPrintingCalc();
|
||||
QPaintDevice* svg=jkqtpPaintDeviceAdapters[adapterID]->createPaintdevice(fn, jkqtp_roundTo<int>(gridPrintingSize.width()), jkqtp_roundTo<int>(gridPrintingSize.height()));
|
||||
QPaintDevice* paintDevice=jkqtpPaintDeviceAdapters[adapterID]->createPaintdevice(fn, jkqtp_roundTo<int>(gridPrintingSize.width()), jkqtp_roundTo<int>(gridPrintingSize.height()));
|
||||
|
||||
if (!printpreviewNew(svg, jkqtpPaintDeviceAdapters[adapterID]->getSetAbsolutePaperSize(), jkqtpPaintDeviceAdapters[adapterID]->getPrintSizeXInMM(), jkqtpPaintDeviceAdapters[adapterID]->getPrintSizeYInMM(), displayPreview)) {
|
||||
delete svg;
|
||||
#ifndef JKQTPLOTTER_COMPILE_WITHOUT_PRINTSUPPORT
|
||||
if (!printpreviewNew(paintDevice, jkqtpPaintDeviceAdapters[adapterID]->getSetAbsolutePaperSize(), jkqtpPaintDeviceAdapters[adapterID]->getPrintSizeXInMM(), jkqtpPaintDeviceAdapters[adapterID]->getPrintSizeYInMM(), displayPreview)) {
|
||||
delete paintDevice;
|
||||
|
||||
|
||||
if (QFile::exists(tempFM)) {
|
||||
@ -3693,10 +3759,13 @@ void JKQTBasePlotter::saveImage(const QString& filename, bool displayPreview) {
|
||||
QFile::remove(tempFM);
|
||||
}
|
||||
} else {
|
||||
delete svg;
|
||||
svg=jkqtpPaintDeviceAdapters[adapterID]->createPaintdeviceMM(fn,printSizeX_Millimeter,printSizeY_Millimeter);
|
||||
printpreviewPaintRequestedNew(svg);
|
||||
delete svg;
|
||||
#else
|
||||
{
|
||||
#endif
|
||||
delete paintDevice;
|
||||
paintDevice=jkqtpPaintDeviceAdapters[adapterID]->createPaintdeviceMM(fn,printSizeX_Millimeter,printSizeY_Millimeter);
|
||||
printpreviewPaintRequestedNewPaintDevice(paintDevice);
|
||||
delete paintDevice;
|
||||
}
|
||||
|
||||
} else {
|
||||
@ -3714,12 +3783,6 @@ void JKQTBasePlotter::saveAsPixelImage(const QString& filename, bool displayPrev
|
||||
for (int i=0; i<writerformats.size(); i++) {
|
||||
filt<<QString("%1 Image (*.%2)").arg(QString(writerformats[i]).toUpper()).arg(QString(writerformats[i].toLower()));
|
||||
}
|
||||
/*filt<<tr("PNG Image (*.png)");
|
||||
filt<<tr("BMP Image (*.bmp)");
|
||||
filt<<tr("TIFF Image (*.tif *.tiff)");
|
||||
filt<<tr("JPEG Image (*.jpg *.jpeg)");
|
||||
filt<<tr("X11 Bitmap (*.xbm)");
|
||||
filt<<tr("X11 Pixmap (*.xpm)");*/
|
||||
QString selFormat;
|
||||
if (fn.isEmpty()) {
|
||||
selFormat=currentFileFormat;
|
||||
@ -3896,6 +3959,7 @@ void JKQTBasePlotter::copyPixelImage() {
|
||||
|
||||
}
|
||||
|
||||
#ifndef JKQTPLOTTER_COMPILE_WITHOUT_PRINTSUPPORT
|
||||
void JKQTBasePlotter::saveAsSVG(const QString& filename, bool displayPreview) {
|
||||
loadUserSettings();
|
||||
QString fn=filename;
|
||||
@ -3940,7 +4004,7 @@ void JKQTBasePlotter::saveAsSVG(const QString& filename, bool displayPreview) {
|
||||
}
|
||||
saveUserSettings();
|
||||
}
|
||||
|
||||
#endif
|
||||
|
||||
void JKQTBasePlotter::setPlotBorder(int left, int right, int top, int bottom){
|
||||
plotterStyle.plotBorderTop=top;
|
||||
@ -4960,7 +5024,9 @@ void JKQTBasePlotter::showPlotData() {
|
||||
|
||||
JKQTPEnhancedTableView* tv=new JKQTPEnhancedTableView(dlg);
|
||||
layout->addWidget(tv);
|
||||
#ifndef JKQTPLOTTER_COMPILE_WITHOUT_PRINTSUPPORT
|
||||
tb->addAction(tv->getActionPrint());
|
||||
#endif
|
||||
|
||||
JKQTPDatastoreModel* model=new JKQTPDatastoreModel(getDatastore(), this);
|
||||
tv->setModel(model);
|
||||
|
@ -20,6 +20,8 @@
|
||||
#ifndef JKQTPBASEPLOTTER_H
|
||||
#define JKQTPBASEPLOTTER_H
|
||||
|
||||
#include "jkqtplotter/jkqtplotter_configmacros.h"
|
||||
|
||||
#include "jkqtplotter/jkqtptools.h"
|
||||
#include "jkqtplotter/jkqtpdatastorage.h"
|
||||
#include "jkqtplotter/jkqtpbaseplotterstyle.h"
|
||||
@ -37,7 +39,10 @@
|
||||
#include <QMap>
|
||||
#include <QVector>
|
||||
#include <QPair>
|
||||
#include <QtPrintSupport/QPrintPreviewWidget>
|
||||
#ifndef JKQTPLOTTER_COMPILE_WITHOUT_PRINTSUPPORT
|
||||
# include <QPrinter>
|
||||
# include <QtPrintSupport/QPrintPreviewWidget>
|
||||
#endif
|
||||
#include <QDoubleSpinBox>
|
||||
#include <QLabel>
|
||||
#include <QPointer>
|
||||
@ -832,14 +837,16 @@ class JKQTPLOTTER_LIB_EXPORT JKQTBasePlotter: public QObject {
|
||||
QAction* getActionCopyPixelImage() const;
|
||||
/** \copydoc actCopyMatlab */
|
||||
QAction* getActionCopyMatlab() const;
|
||||
/** \copydoc actSavePDF */
|
||||
#ifndef JKQTPLOTTER_COMPILE_WITHOUT_PRINTSUPPORT
|
||||
/** \copydoc actSavePDF */
|
||||
QAction* getActionSavePDF() const;
|
||||
/** \copydoc actSaveSVG */
|
||||
QAction* getActionSaveSVG() const;
|
||||
/** \copydoc actPrint */
|
||||
QAction* getActionPrint() const;
|
||||
#endif
|
||||
/** \copydoc actSavePix */
|
||||
QAction* getActionSavePix() const;
|
||||
/** \copydoc actSaveSVG */
|
||||
QAction* getActionSaveSVG() const;
|
||||
/** \copydoc actPrint */
|
||||
QAction* getActionPrint() const;
|
||||
/** \copydoc actSaveCSV */
|
||||
QAction* getActionSaveCSV() const;
|
||||
/** \copydoc actZoomAll */
|
||||
@ -1311,11 +1318,19 @@ class JKQTPLOTTER_LIB_EXPORT JKQTBasePlotter: public QObject {
|
||||
/** \brief copy the current plot as a pixel image to the clipboard */
|
||||
void copyPixelImage();
|
||||
|
||||
/** \brief save the current plot as a SVG file, with the current widget aspect ratio, if filename is empty a file selection dialog is displayed */
|
||||
#ifndef JKQTPLOTTER_COMPILE_WITHOUT_PRINTSUPPORT
|
||||
/** \brief save the current plot as a SVG file, with the current widget aspect ratio, if filename is empty a file selection dialog is displayed
|
||||
*
|
||||
* \note Exporting to SVG requires QPrinter-support, if it is not available on your platform, this function will not be available either!
|
||||
*/
|
||||
void saveAsSVG(const QString& filename=QString(""), bool displayPreview=true);
|
||||
|
||||
/** \brief save the current plot as a PDF file, with the current widget aspect ratio, if filename is empty a file selection dialog is displayed */
|
||||
/** \brief save the current plot as a PDF file, with the current widget aspect ratio, if filename is empty a file selection dialog is displayed
|
||||
*
|
||||
* \note Exporting to PDF requires QPrinter-support, if it is not available on your platform, this function will not be available either!
|
||||
*/
|
||||
void saveAsPDF(const QString& filename=QString(""), bool displayPreview=true);
|
||||
#endif
|
||||
|
||||
/** \brief save the current plot as an image file, with the current widget aspect ratio, if filename is empty a file selection dialog is displayed.
|
||||
* The image format is extracted from the file extension (jpeg, tiff, png, pdf, ...) */
|
||||
@ -1386,8 +1401,13 @@ class JKQTPLOTTER_LIB_EXPORT JKQTBasePlotter: public QObject {
|
||||
*/
|
||||
void saveAsGerExcelCSV(const QString& filename=QString(""));
|
||||
|
||||
/** \brief print the current plot, if printer is \c nullptr a printer selection dialog is displayed */
|
||||
#ifndef JKQTPLOTTER_COMPILE_WITHOUT_PRINTSUPPORT
|
||||
/** \brief print the current plot, if printer is \c nullptr a printer selection dialog is displayed
|
||||
*
|
||||
* \note This function is only available on platforms with QPrinter support!
|
||||
*/
|
||||
void print(QPrinter* printer=nullptr, bool displayPreview=true);
|
||||
#endif
|
||||
|
||||
/** \brief this method zooms the graph so that all plotted datapoints are visible.
|
||||
*
|
||||
@ -1662,6 +1682,7 @@ class JKQTPLOTTER_LIB_EXPORT JKQTBasePlotter: public QObject {
|
||||
* The implementation in here returns zero size!
|
||||
*/
|
||||
void getKeyExtent(JKQTPEnhancedPainter& painter, double *width, double *height, double *text_width=nullptr, double *text_height=nullptr, int *columns_count=nullptr, int* lines_count=nullptr);
|
||||
|
||||
/** \brief show the print preview window for a given print \a p */
|
||||
bool printpreviewNew(QPaintDevice* paintDevice, bool setAbsolutePaperSize=false, double printsizeX_inMM=-1.0, double printsizeY_inMM=-1.0, bool displayPreview=true);
|
||||
|
||||
@ -1687,6 +1708,8 @@ class JKQTPLOTTER_LIB_EXPORT JKQTBasePlotter: public QObject {
|
||||
* \internal
|
||||
*/
|
||||
void updatePreviewLabel();
|
||||
|
||||
#ifndef JKQTPLOTTER_COMPILE_WITHOUT_PRINTSUPPORT
|
||||
/** \brief internal function for print preview
|
||||
* \internal
|
||||
*/
|
||||
@ -1694,15 +1717,12 @@ class JKQTPLOTTER_LIB_EXPORT JKQTBasePlotter: public QObject {
|
||||
/** \brief internal function for print preview
|
||||
* \internal
|
||||
*/
|
||||
void printpreviewPaintRequestedNew(QPrinter *printer);
|
||||
void printpreviewPaintRequestedNewPrinter(QPrinter *printer);
|
||||
#endif
|
||||
/** \brief internal function for print preview
|
||||
* \internal
|
||||
*/
|
||||
void printpreviewPaintRequestedNew(QPaintDevice *paintDevice);
|
||||
/** \brief internal function for export preview
|
||||
* \internal
|
||||
*/
|
||||
void exportpreviewPaintRequested(JKQTPEnhancedPainter& painter, QSize size);
|
||||
void printpreviewPaintRequestedNewPaintDevice(QPaintDevice *paintDevice);
|
||||
/** \brief internal function for print preview
|
||||
* \internal
|
||||
*/
|
||||
@ -1755,6 +1775,12 @@ class JKQTPLOTTER_LIB_EXPORT JKQTBasePlotter: public QObject {
|
||||
* \internal
|
||||
*/
|
||||
void printpreviewUpdate();
|
||||
|
||||
/** \brief internal function for export preview
|
||||
* \internal
|
||||
*/
|
||||
void exportpreviewPaintRequested(JKQTPEnhancedPainter& painter, QSize size);
|
||||
|
||||
/** \brief internal function for getDataColumnsByUser()
|
||||
* \internal
|
||||
*/
|
||||
@ -2069,14 +2095,16 @@ class JKQTPLOTTER_LIB_EXPORT JKQTBasePlotter: public QObject {
|
||||
QAction* actCopyPixelImage;
|
||||
/** \brief QAction which triggers copying of the data to the clipboard in Matlab format */
|
||||
QAction* actCopyMatlab;
|
||||
#ifndef JKQTPLOTTER_COMPILE_WITHOUT_PRINTSUPPORT
|
||||
/** \brief QAction which triggers the saving as PDF */
|
||||
QAction* actSavePDF;
|
||||
/** \brief QAction which triggers the saving as pixel image */
|
||||
QAction* actSavePix;
|
||||
/** \brief QAction which triggers the saving as Scalable Vector Graphics (SVG) */
|
||||
QAction* actSaveSVG;
|
||||
/** \brief QAction which triggers the printing */
|
||||
QAction* actPrint;
|
||||
#endif
|
||||
/** \brief QAction which triggers the saving as pixel image */
|
||||
QAction* actSavePix;
|
||||
/** \brief QAction which triggers the saving as CSV (data only) */
|
||||
QAction* actSaveCSV;
|
||||
/** \brief QAction which triggers zoom all */
|
||||
@ -2126,7 +2154,9 @@ class JKQTPLOTTER_LIB_EXPORT JKQTBasePlotter: public QObject {
|
||||
double printSizeX_Millimeter;
|
||||
double printSizeY_Millimeter;
|
||||
double printMagnification;
|
||||
#ifndef JKQTPLOTTER_COMPILE_WITHOUT_PRINTSUPPORT
|
||||
QPointer<QPrintPreviewWidget> printPreview;
|
||||
#endif
|
||||
QPointer<JKQTPEnhancedDoubleSpinBox> spinSizeX;
|
||||
QPointer<JKQTPEnhancedDoubleSpinBox> spinSizeY;
|
||||
QPointer<QLabel> exportPreviewLabel;
|
||||
|
@ -1078,7 +1078,9 @@ void JKQTPlotter::initContextMenu()
|
||||
|
||||
contextMenu->addAction(plotter->getActionSaveData());
|
||||
contextMenu->addAction(plotter->getActionSavePlot());
|
||||
#ifndef JKQTPLOTTER_COMPILE_WITHOUT_PRINTSUPPORT
|
||||
contextMenu->addAction(plotter->getActionPrint());
|
||||
#endif
|
||||
contextMenu->addSeparator();
|
||||
contextMenu->addAction(plotter->getActionCopyPixelImage());
|
||||
contextMenu->addAction(plotter->getActionCopyData());
|
||||
@ -1616,7 +1618,9 @@ void JKQTPlotter::populateToolbar(QToolBar *toolbar) const
|
||||
{
|
||||
toolbar->addAction(plotter->getActionSaveData());
|
||||
toolbar->addAction(plotter->getActionSavePlot());
|
||||
#ifndef JKQTPLOTTER_COMPILE_WITHOUT_PRINTSUPPORT
|
||||
toolbar->addAction(plotter->getActionPrint());
|
||||
#endif
|
||||
toolbar->addSeparator();
|
||||
toolbar->addAction(plotter->getActionCopyPixelImage());
|
||||
toolbar->addAction(plotter->getActionCopyData());
|
||||
@ -1702,32 +1706,6 @@ void JKQTPlotter::openSpecialContextMenu(int x, int y)
|
||||
{
|
||||
//qDebug()<<"openSpecialContextMenu("<<x<<y<<menuSpecialContextMenu<<")";
|
||||
if (menuSpecialContextMenu) {
|
||||
/*
|
||||
// reset the internal context menu ...
|
||||
resetContextMenu(true);
|
||||
// ... and add all actions from the special menu into the new menu: ...
|
||||
for (int i=0; i<menuSpecialContextMenu->actions().size(); i++) {
|
||||
//qDebug()<<" - "<<menuSpecialContextMenu->actions().at(i)->text();
|
||||
contextMenu->addAction(menuSpecialContextMenu->actions().at(i));
|
||||
}
|
||||
// ... and copy the basic properties from the other menu
|
||||
contextMenu->setIcon(menuSpecialContextMenu->icon());
|
||||
contextMenu->setTitle(menuSpecialContextMenu->title());
|
||||
contextMenu->setSeparatorsCollapsible(menuSpecialContextMenu->separatorsCollapsible());
|
||||
contextMenu->setTearOffEnabled(menuSpecialContextMenu->isTearOffEnabled());
|
||||
contextMenu->setToolTipsVisible(menuSpecialContextMenu->toolTipsVisible());
|
||||
contextMenu->setFont(menuSpecialContextMenu->font());
|
||||
contextMenu->setToolTip(menuSpecialContextMenu->toolTip());
|
||||
contextMenu->setWhatsThis(menuSpecialContextMenu->whatsThis());
|
||||
contextMenu->setWindowOpacity(menuSpecialContextMenu->windowOpacity());
|
||||
mouseContextX=plotter->p2x(x/magnification);
|
||||
mouseContextY=plotter->p2y((y-getPlotYOffset())/magnification);
|
||||
contextMenu->popup(mapToGlobal(QPoint(x,y)));
|
||||
contextMenu->resize(contextMenu->sizeHint());
|
||||
//qDebug()<<" -> "<<mapToGlobal(QPoint(x,y))<<contextMenu->size()<<contextMenu->pos()<<contextMenu->parent();
|
||||
emit contextMenuOpened(mouseContextX, mouseContextY, contextMenu);
|
||||
//qDebug()<<"openSpecialContextMenu("<<x<<y<<contextMenu<<") ... DONE";
|
||||
*/
|
||||
|
||||
|
||||
mouseContextX=plotter->p2x(x/magnification);
|
||||
|
@ -1025,10 +1025,12 @@ class JKQTPLOTTER_LIB_EXPORT JKQTPlotter: public QWidget {
|
||||
plotter->saveData(filename, format);
|
||||
}
|
||||
|
||||
#ifndef JKQTPLOTTER_COMPILE_WITHOUT_PRINTSUPPORT
|
||||
/** \brief print the current plot, if printer is \c nullptr a printer selection dialog is displayed */
|
||||
inline void print(QPrinter* printer=nullptr) {
|
||||
plotter->print(printer);
|
||||
}
|
||||
#endif
|
||||
|
||||
/** \brief copy displayed data to cpliboard */
|
||||
inline void copyData() {
|
||||
|
51
lib/jkqtplotter/jkqtplotter_configmacros.h
Normal file
51
lib/jkqtplotter/jkqtplotter_configmacros.h
Normal file
@ -0,0 +1,51 @@
|
||||
#ifndef JKQTPLOTTER_CONFIGMACROS_H
|
||||
#define JKQTPLOTTER_CONFIGMACROS_H
|
||||
|
||||
|
||||
/*
|
||||
Copyright (c) 2008-2022 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 JKQTPLOTTER_COMPILE_WITHOUT_PRINTSUPPORT
|
||||
\ingroup jkqtpplottersupprt
|
||||
\brief This is defined if JKQtPlotter shall be compiled without print-support, or print-support is not available.
|
||||
|
||||
This can be used by surrounding code that is requires print-support with
|
||||
\code
|
||||
#ifndef JKQTPLOTTER_COMPILE_WITHOUT_PRINTSUPPORT
|
||||
// ...
|
||||
// Code that require Print Support
|
||||
// ...
|
||||
#endif
|
||||
\endcode
|
||||
*/
|
||||
|
||||
#if defined(QT_NO_PRINTPREVIEWDIALOG) || defined(QT_NO_PRINTER) || defined(JKQTPLOTTER_HAS_NO_PRINTSUPPORT)
|
||||
# define JKQTPLOTTER_COMPILE_WITHOUT_PRINTSUPPORT
|
||||
#else
|
||||
# ifdef JKQTPLOTTER_COMPILE_WITHOUT_PRINTSUPPORT
|
||||
# undef JKQTPLOTTER_COMPILE_WITHOUT_PRINTSUPPORT
|
||||
# endif
|
||||
#endif
|
||||
|
||||
|
||||
|
||||
|
||||
#endif // JKQTPLOTTER_CONFIGMACROS_H
|
||||
|
@ -31,14 +31,6 @@ Copyright (c) 2008-2020 Jan W. Krieger (<jan@jkrieger.de>)
|
||||
#include <QKeyEvent>
|
||||
#include <QAction>
|
||||
#include <QLocale>
|
||||
#include <QDialog>
|
||||
#include <QCheckBox>
|
||||
#include <QGridLayout>
|
||||
#include <QLabel>
|
||||
#include <QPrinter>
|
||||
#include <QHeaderView>
|
||||
#include <QPrintDialog>
|
||||
#include <QDialogButtonBox>
|
||||
#include <cstring>
|
||||
#include <cstdlib>
|
||||
#include <cstdio>
|
||||
|
Loading…
Reference in New Issue
Block a user