Compare commits
12 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
1ba97c7e92 | ||
|
|
cd09fc0d32 | ||
|
|
924fe082fb | ||
|
|
ad37b0f9a5 | ||
|
|
fedc1cb092 | ||
|
|
5f318e09c8 | ||
|
|
27afeaefe2 | ||
|
|
ab2f933fdf | ||
|
|
7f718f672f | ||
|
|
9ec02bc088 | ||
|
|
0c62f291f0 | ||
|
|
534de377d3 |
@@ -14,12 +14,10 @@
|
|||||||
# You should have received a copy of the GNU General Public License
|
# You should have received a copy of the GNU General Public License
|
||||||
# along with QElectroTech. If not, see <http://www.gnu.org/licenses/>.
|
# along with QElectroTech. If not, see <http://www.gnu.org/licenses/>.
|
||||||
|
|
||||||
include(cmake/hoto_update_cmake_message.cmake)
|
cmake_minimum_required(VERSION 3.5...4.2)
|
||||||
|
|
||||||
cmake_minimum_required(VERSION 3.14...3.19 FATAL_ERROR)
|
|
||||||
|
|
||||||
project(qelectrotech
|
project(qelectrotech
|
||||||
VERSION 0.9.0
|
VERSION 0.100.0
|
||||||
DESCRIPTION "QET is a CAD/CAE editor focusing on schematics drawing features."
|
DESCRIPTION "QET is a CAD/CAE editor focusing on schematics drawing features."
|
||||||
HOMEPAGE_URL "https://qelectrotech.org/"
|
HOMEPAGE_URL "https://qelectrotech.org/"
|
||||||
LANGUAGES CXX)
|
LANGUAGES CXX)
|
||||||
@@ -27,9 +25,16 @@ project(qelectrotech
|
|||||||
include(cmake/copyright_message.cmake)
|
include(cmake/copyright_message.cmake)
|
||||||
|
|
||||||
set(QET_DIR ${PROJECT_SOURCE_DIR})
|
set(QET_DIR ${PROJECT_SOURCE_DIR})
|
||||||
|
include(cmake/qet_compilation_vars.cmake)
|
||||||
|
|
||||||
|
set(CMAKE_CXX_STANDARD 17)
|
||||||
|
set(CMAKE_CXX_STANDARD_REQUIRED ON)
|
||||||
|
|
||||||
|
find_package(Qt6 REQUIRED COMPONENTS ${QET_COMPONENTS})
|
||||||
|
qt_standard_project_setup()
|
||||||
|
|
||||||
# Add sub directories
|
# Add sub directories
|
||||||
option(PACKAGE_TESTS "Build the tests" ON)
|
option(PACKAGE_TESTS "Build the tests" NO)
|
||||||
if(PACKAGE_TESTS)
|
if(PACKAGE_TESTS)
|
||||||
message("Add sub directory tests")
|
message("Add sub directory tests")
|
||||||
add_subdirectory(tests)
|
add_subdirectory(tests)
|
||||||
@@ -43,42 +48,16 @@ include(cmake/git_last_commit_sha.cmake)
|
|||||||
include(cmake/fetch_kdeaddons.cmake)
|
include(cmake/fetch_kdeaddons.cmake)
|
||||||
include(cmake/fetch_singleapplication.cmake)
|
include(cmake/fetch_singleapplication.cmake)
|
||||||
include(cmake/fetch_pugixml.cmake)
|
include(cmake/fetch_pugixml.cmake)
|
||||||
include(cmake/qet_compilation_vars.cmake)
|
|
||||||
|
|
||||||
set(CMAKE_INCLUDE_CURRENT_DIR ON)
|
set(CMAKE_INCLUDE_CURRENT_DIR ON)
|
||||||
|
|
||||||
set(CMAKE_AUTOMOC ON)
|
|
||||||
set(CMAKE_AUTORCC ON)
|
set(CMAKE_AUTORCC ON)
|
||||||
set(CMAKE_AUTOUIC ON)
|
|
||||||
|
|
||||||
SET(CMAKE_CXX_STANDARD 17)
|
|
||||||
set(CMAKE_CXX_STANDARD_REQUIRED ON)
|
|
||||||
|
|
||||||
find_package(
|
|
||||||
QT
|
|
||||||
NAMES
|
|
||||||
Qt6
|
|
||||||
Qt5
|
|
||||||
COMPONENTS
|
|
||||||
${QET_COMPONENTS}
|
|
||||||
REQUIRED
|
|
||||||
)
|
|
||||||
|
|
||||||
find_package(
|
|
||||||
Qt${QT_VERSION_MAJOR}
|
|
||||||
COMPONENTS
|
|
||||||
${QET_COMPONENTS}
|
|
||||||
REQUIRED)
|
|
||||||
|
|
||||||
set(CMAKE_AUTOUIC_SEARCH_PATHS ${QET_DIR}/sources/ui)
|
set(CMAKE_AUTOUIC_SEARCH_PATHS ${QET_DIR}/sources/ui)
|
||||||
qt5_create_translation(QM_FILES ${CMAKE_SOURCE_DIR} ${TS_FILES})
|
|
||||||
set_source_files_properties(${TS_FILES} PROPERTIES OUTPUT_LOCATION "${QET_DIR}/lang")
|
|
||||||
qt5_add_translation(QM_FILES ${TS_FILES})
|
|
||||||
|
|
||||||
# als laatse
|
|
||||||
include(cmake/define_definitions.cmake)
|
include(cmake/define_definitions.cmake)
|
||||||
|
|
||||||
add_executable(
|
qt_add_executable(
|
||||||
${PROJECT_NAME}
|
${PROJECT_NAME}
|
||||||
${QET_RES_FILES}
|
${QET_RES_FILES}
|
||||||
${QET_SRC_FILES}
|
${QET_SRC_FILES}
|
||||||
@@ -86,13 +65,24 @@ add_executable(
|
|||||||
${QET_DIR}/qelectrotech.qrc
|
${QET_DIR}/qelectrotech.qrc
|
||||||
)
|
)
|
||||||
|
|
||||||
|
if(QMFILES_AS_RESOURCE)
|
||||||
|
qt_add_translations(${PROJECT_NAME} TS_FILES ${TS_FILES} RESOURCE_PREFIX "/lang")
|
||||||
|
else()
|
||||||
|
qt_create_translation(QM_FILES ${CMAKE_SOURCE_DIR} ${TS_FILES})
|
||||||
|
set_source_files_properties(${TS_FILES} PROPERTIES OUTPUT_LOCATION "${QET_DIR}/lang")
|
||||||
|
qt_add_translation(QM_FILES ${TS_FILES})
|
||||||
|
endif()
|
||||||
|
|
||||||
|
find_package(SQLite3 REQUIRED)
|
||||||
|
|
||||||
target_link_libraries(
|
target_link_libraries(
|
||||||
${PROJECT_NAME}
|
${PROJECT_NAME}
|
||||||
PUBLIC
|
PUBLIC
|
||||||
PRIVATE
|
PRIVATE
|
||||||
pugixml::pugixml
|
pugixml::pugixml
|
||||||
SingleApplication::SingleApplication
|
SingleApplication::SingleApplication
|
||||||
${KF5_PRIVATE_LIBRARIES}
|
SQLite::SQLite3
|
||||||
|
${KF6_PRIVATE_LIBRARIES}
|
||||||
${QET_PRIVATE_LIBRARIES}
|
${QET_PRIVATE_LIBRARIES}
|
||||||
)
|
)
|
||||||
|
|
||||||
@@ -125,11 +115,11 @@ target_include_directories(
|
|||||||
${QET_DIR}/sources/NameList
|
${QET_DIR}/sources/NameList
|
||||||
${QET_DIR}/sources/NameList/ui
|
${QET_DIR}/sources/NameList/ui
|
||||||
${QET_DIR}/sources/utils
|
${QET_DIR}/sources/utils
|
||||||
${QET_DIR}/pugixml/src
|
|
||||||
${QET_DIR}/sources/dataBase
|
${QET_DIR}/sources/dataBase
|
||||||
${QET_DIR}/sources/dataBase/ui
|
${QET_DIR}/sources/dataBase/ui
|
||||||
${QET_DIR}/sources/factory/ui
|
${QET_DIR}/sources/factory/ui
|
||||||
${QET_DIR}/sources/print
|
${QET_DIR}/sources/print
|
||||||
|
${QET_DIR}/sources/svg
|
||||||
)
|
)
|
||||||
|
|
||||||
install(TARGETS ${PROJECT_NAME})
|
install(TARGETS ${PROJECT_NAME})
|
||||||
@@ -149,6 +139,7 @@ install(FILES LICENSE ELEMENTS.LICENSE CREDIT README ChangeLog DESTINATION share
|
|||||||
install(FILES misc/org.qelectrotech.qelectrotech.desktop DESTINATION share/applications)
|
install(FILES misc/org.qelectrotech.qelectrotech.desktop DESTINATION share/applications)
|
||||||
install(FILES misc/qelectrotech.xml DESTINATION share/mime/packages)
|
install(FILES misc/qelectrotech.xml DESTINATION share/mime/packages)
|
||||||
install(FILES misc/qelectrotech.appdata.xml DESTINATION ${QET_APPDATA_PATH})
|
install(FILES misc/qelectrotech.appdata.xml DESTINATION ${QET_APPDATA_PATH})
|
||||||
install(FILES ${QM_FILES} DESTINATION ${QET_LANG_PATH})
|
if(NOT QMFILES_AS_RESOURCE)
|
||||||
|
install(FILES ${QM_FILES} DESTINATION ${QET_LANG_PATH})
|
||||||
|
endif()
|
||||||
endif()
|
endif()
|
||||||
|
|||||||
@@ -59,6 +59,9 @@ Here are the technical choices made for the software development:
|
|||||||
|
|
||||||
If you wish to be informed of the latest developments, browse the [archive](https://listengine.tuxfamily.org/lists.tuxfamily.org/qet/) of the project mailing list where all commits (changes) are registered. This archive is publicly available, you don't need any account to access it.
|
If you wish to be informed of the latest developments, browse the [archive](https://listengine.tuxfamily.org/lists.tuxfamily.org/qet/) of the project mailing list where all commits (changes) are registered. This archive is publicly available, you don't need any account to access it.
|
||||||
|
|
||||||
|
### Build QElectroTech under Windows
|
||||||
|
To build QElectroTech under microsoft Windows, please follow [these instructions (french)](md/fr/fr_window_build_summary.md)
|
||||||
|
|
||||||
|
|
||||||
# Features
|
# Features
|
||||||
|
|
||||||
|
|||||||
@@ -62,10 +62,15 @@ message("PROJECT_SOURCE_DIR :" ${PROJECT_SOURCE_DIR})
|
|||||||
message("QET_DIR :" ${QET_DIR})
|
message("QET_DIR :" ${QET_DIR})
|
||||||
message("GIT_COMMIT_SHA :" ${GIT_COMMIT_SHA})
|
message("GIT_COMMIT_SHA :" ${GIT_COMMIT_SHA})
|
||||||
|
|
||||||
if(BUILD_WITH_KF5)
|
if(BUILD_WITH_KF6 AND BUILD_KF6)
|
||||||
message("KF5_GIT_TAG :" ${KF5_GIT_TAG})
|
message("KF6_GIT_TAG :" ${KF6_GIT_TAG})
|
||||||
else()
|
endif()
|
||||||
add_definitions(-DBUILD_WITHOUT_KF5)
|
if(NOT BUILD_WITH_KF6)
|
||||||
|
add_definitions(-DBUILD_WITHOUT_KF6)
|
||||||
endif()
|
endif()
|
||||||
message("QET_COMPONENTS :" ${QET_COMPONENTS})
|
message("QET_COMPONENTS :" ${QET_COMPONENTS})
|
||||||
message("QT_VERSION_MAJOR :" ${QT_VERSION_MAJOR})
|
message("Qt version :" ${Qt6_VERSION})
|
||||||
|
|
||||||
|
if(QMFILES_AS_RESOURCE)
|
||||||
|
add_definitions(-DQMFILES_AS_RESOURCE)
|
||||||
|
endif()
|
||||||
|
|||||||
@@ -31,5 +31,8 @@ add_definitions(-DQT_MESSAGELOGCONTEXT)
|
|||||||
# In order to do so, uncomment the following line.
|
# In order to do so, uncomment the following line.
|
||||||
#add_definitions(-DTODO_LIST)
|
#add_definitions(-DTODO_LIST)
|
||||||
|
|
||||||
# Build with KF5
|
# Build with KF6
|
||||||
option(BUILD_WITH_KF5 "Build with KF5" ON)
|
option(BUILD_WITH_KF6 "Build with KF6" ON)
|
||||||
|
|
||||||
|
# Use translations as a Qt resource
|
||||||
|
option(QMFILES_AS_RESOURCE "Use .qm files as Qt resource" ON)
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
# Copyright 2006 The QElectroTech Team
|
# Copyright 2006-2026 The QElectroTech Team
|
||||||
# This file is part of QElectroTech.
|
# This file is part of QElectroTech.
|
||||||
#
|
#
|
||||||
# QElectroTech is free software: you can redistribute it and/or modify
|
# QElectroTech is free software: you can redistribute it and/or modify
|
||||||
@@ -14,54 +14,42 @@
|
|||||||
# You should have received a copy of the GNU General Public License
|
# You should have received a copy of the GNU General Public License
|
||||||
# along with QElectroTech. If not, see <http://www.gnu.org/licenses/>.
|
# along with QElectroTech. If not, see <http://www.gnu.org/licenses/>.
|
||||||
|
|
||||||
message(" - fetch_kdeaddons")
|
option(BUILD_KF6 "Build KF6 libraries, use system ones otherwise" OFF)
|
||||||
|
if(BUILD_KF6)
|
||||||
|
block(PROPAGATE KF6_GIT_TAG)
|
||||||
|
message(STATUS " - fetch_kdeaddons")
|
||||||
|
set(KDE_SKIP_TEST_SETTINGS ON)
|
||||||
|
set(KCOREADDONS_USE_QML OFF)
|
||||||
|
set(KWIDGETSADDONS_USE_QML OFF)
|
||||||
|
set(BUILD_TESTING OFF)
|
||||||
|
set(BUILD_DESIGNERPLUGIN OFF)
|
||||||
|
set(BUILD_QCH OFF)
|
||||||
|
set(BUILD_SHARED_LIBS OFF)
|
||||||
|
|
||||||
if(DEFINED BUILD_WITH_KF5)
|
Include(FetchContent)
|
||||||
Include(FetchContent)
|
|
||||||
|
|
||||||
option(BUILD_KF5 "Build KF5 libraries, use system ones otherwise" YES)
|
if(NOT DEFINED KF6_GIT_TAG)
|
||||||
|
set(KF6_GIT_TAG v6.22.0)
|
||||||
if(BUILD_KF5)
|
|
||||||
|
|
||||||
if(NOT DEFINED KF5_GIT_TAG)
|
|
||||||
#https://qelectrotech.org/forum/viewtopic.php?pid=13924#p13924
|
|
||||||
set(KF5_GIT_TAG v5.77.0)
|
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
# Fix stop the run autotests of kcoreaddons
|
|
||||||
# see
|
|
||||||
# https://invent.kde.org/frameworks/kcoreaddons/-/blob/master/CMakeLists.txt#L98
|
|
||||||
# issue:
|
|
||||||
# CMake Error at /usr/share/ECM/modules/ECMAddTests.cmake:89 (add_executable):
|
|
||||||
# Cannot find source file:
|
|
||||||
# see
|
|
||||||
# https://qelectrotech.org/forum/viewtopic.php?pid=13929#p13929
|
|
||||||
set(KDE_SKIP_TEST_SETTINGS "TRUE")
|
|
||||||
set(BUILD_TESTING "0")
|
|
||||||
FetchContent_Declare(
|
|
||||||
ecm
|
|
||||||
GIT_REPOSITORY https://invent.kde.org/frameworks/extra-cmake-modules.git
|
|
||||||
GIT_TAG ${KF5_GIT_TAG})
|
|
||||||
FetchContent_MakeAvailable(ecm)
|
|
||||||
|
|
||||||
FetchContent_Declare(
|
FetchContent_Declare(
|
||||||
kcoreaddons
|
kcoreaddons
|
||||||
GIT_REPOSITORY https://invent.kde.org/frameworks/kcoreaddons.git
|
GIT_REPOSITORY https://invent.kde.org/frameworks/kcoreaddons.git
|
||||||
GIT_TAG ${KF5_GIT_TAG})
|
GIT_TAG ${KF6_GIT_TAG})
|
||||||
FetchContent_MakeAvailable(kcoreaddons)
|
FetchContent_MakeAvailable(kcoreaddons)
|
||||||
|
|
||||||
FetchContent_Declare(
|
FetchContent_Declare(
|
||||||
kwidgetsaddons
|
kwidgetsaddons
|
||||||
GIT_REPOSITORY https://invent.kde.org/frameworks/kwidgetsaddons.git
|
GIT_REPOSITORY https://invent.kde.org/frameworks/kwidgetsaddons.git
|
||||||
GIT_TAG ${KF5_GIT_TAG})
|
GIT_TAG ${KF6_GIT_TAG})
|
||||||
FetchContent_MakeAvailable(kwidgetsaddons)
|
FetchContent_MakeAvailable(kwidgetsaddons)
|
||||||
else()
|
endblock()
|
||||||
find_package(KF5CoreAddons REQUIRED)
|
else()
|
||||||
find_package(KF5WidgetsAddons REQUIRED)
|
find_package(KF6CoreAddons REQUIRED)
|
||||||
endif()
|
find_package(KF6WidgetsAddons REQUIRED)
|
||||||
|
|
||||||
set(KF5_PRIVATE_LIBRARIES
|
|
||||||
KF5::WidgetsAddons
|
|
||||||
KF5::CoreAddons
|
|
||||||
)
|
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
|
set(KF6_PRIVATE_LIBRARIES
|
||||||
|
KF6::CoreAddons
|
||||||
|
KF6::WidgetsAddons
|
||||||
|
)
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
# Copyright 2006 The QElectroTech Team
|
# Copyright 2006-2026 The QElectroTech Team
|
||||||
# This file is part of QElectroTech.
|
# This file is part of QElectroTech.
|
||||||
#
|
#
|
||||||
# QElectroTech is free software: you can redistribute it and/or modify
|
# QElectroTech is free software: you can redistribute it and/or modify
|
||||||
@@ -14,18 +14,14 @@
|
|||||||
# You should have received a copy of the GNU General Public License
|
# You should have received a copy of the GNU General Public License
|
||||||
# along with QElectroTech. If not, see <http://www.gnu.org/licenses/>.
|
# along with QElectroTech. If not, see <http://www.gnu.org/licenses/>.
|
||||||
|
|
||||||
message(" - fetch_pugixml")
|
option(BUILD_PUGIXML "Build pugixml library, use system one otherwise" OFF)
|
||||||
|
|
||||||
Include(FetchContent)
|
|
||||||
|
|
||||||
option(BUILD_PUGIXML "Build pugixml library, use system one otherwise" YES)
|
|
||||||
|
|
||||||
if(BUILD_PUGIXML)
|
if(BUILD_PUGIXML)
|
||||||
|
Include(FetchContent)
|
||||||
|
message(" - fetch pugixml")
|
||||||
FetchContent_Declare(
|
FetchContent_Declare(
|
||||||
pugixml
|
pugixml
|
||||||
GIT_REPOSITORY https://github.com/zeux/pugixml.git
|
GIT_REPOSITORY https://github.com/zeux/pugixml.git
|
||||||
GIT_TAG v1.11.4)
|
GIT_TAG v1.15)
|
||||||
|
|
||||||
FetchContent_MakeAvailable(pugixml)
|
FetchContent_MakeAvailable(pugixml)
|
||||||
else()
|
else()
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
# Copyright 2006 The QElectroTech Team
|
# Copyright 2006-2026 The QElectroTech Team
|
||||||
# This file is part of QElectroTech.
|
# This file is part of QElectroTech.
|
||||||
#
|
#
|
||||||
# QElectroTech is free software: you can redistribute it and/or modify
|
# QElectroTech is free software: you can redistribute it and/or modify
|
||||||
@@ -16,9 +16,6 @@
|
|||||||
|
|
||||||
message(" - fetch_singleapplication")
|
message(" - fetch_singleapplication")
|
||||||
|
|
||||||
# https://github.com/itay-grudev/SingleApplication/issues/18
|
|
||||||
#qmake
|
|
||||||
#DEFINES += QAPPLICATION_CLASS=QGuiApplication
|
|
||||||
set(QAPPLICATION_CLASS QApplication)
|
set(QAPPLICATION_CLASS QApplication)
|
||||||
|
|
||||||
Include(FetchContent)
|
Include(FetchContent)
|
||||||
@@ -26,6 +23,6 @@ Include(FetchContent)
|
|||||||
FetchContent_Declare(
|
FetchContent_Declare(
|
||||||
SingleApplication
|
SingleApplication
|
||||||
GIT_REPOSITORY https://github.com/itay-grudev/SingleApplication.git
|
GIT_REPOSITORY https://github.com/itay-grudev/SingleApplication.git
|
||||||
GIT_TAG v3.2.0)
|
GIT_TAG v3.5.4)
|
||||||
|
|
||||||
FetchContent_MakeAvailable(SingleApplication)
|
FetchContent_MakeAvailable(SingleApplication)
|
||||||
|
|||||||
@@ -1,25 +0,0 @@
|
|||||||
# Copyright 2006 The QElectroTech Team
|
|
||||||
# This file is part of QElectroTech.
|
|
||||||
#
|
|
||||||
# QElectroTech is free software: you can redistribute it and/or modify
|
|
||||||
# it under the terms of the GNU General Public License as published by
|
|
||||||
# the Free Software Foundation, either version 2 of the License, or
|
|
||||||
# (at your option) any later version.
|
|
||||||
#
|
|
||||||
# QElectroTech is distributed in the hope that it will be useful,
|
|
||||||
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
||||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
||||||
# GNU General Public License for more details.
|
|
||||||
#
|
|
||||||
# You should have received a copy of the GNU General Public License
|
|
||||||
# along with QElectroTech. If not, see <http://www.gnu.org/licenses/>.
|
|
||||||
|
|
||||||
if(${CMAKE_VERSION} VERSION_LESS 3.14)
|
|
||||||
message(
|
|
||||||
"_____________________________________________________________________")
|
|
||||||
message("to update Cmake on linux:")
|
|
||||||
message("https://github.com/Kitware/CMake/")
|
|
||||||
message("linux => cmake-3.19.1-Linux-x86_64.sh")
|
|
||||||
message(" sudo ./cmake.sh --prefix=/usr/local/ --exclude-subdir")
|
|
||||||
message("windows good luck :)")
|
|
||||||
endif()
|
|
||||||
@@ -17,6 +17,8 @@
|
|||||||
message(" - qet_compilation_vars")
|
message(" - qet_compilation_vars")
|
||||||
|
|
||||||
set(QET_COMPONENTS
|
set(QET_COMPONENTS
|
||||||
|
Core
|
||||||
|
Gui
|
||||||
LinguistTools
|
LinguistTools
|
||||||
PrintSupport
|
PrintSupport
|
||||||
Xml
|
Xml
|
||||||
@@ -109,6 +111,12 @@ set(QET_SRC_FILES
|
|||||||
${QET_DIR}/sources/borderproperties.h
|
${QET_DIR}/sources/borderproperties.h
|
||||||
${QET_DIR}/sources/bordertitleblock.cpp
|
${QET_DIR}/sources/bordertitleblock.cpp
|
||||||
${QET_DIR}/sources/bordertitleblock.h
|
${QET_DIR}/sources/bordertitleblock.h
|
||||||
|
# ${QET_DIR}/sources/colorbutton.cpp
|
||||||
|
# ${QET_DIR}/sources/colorbutton.h
|
||||||
|
# ${QET_DIR}/sources/colorcombobox.cpp
|
||||||
|
# ${QET_DIR}/sources/colorcombobox.h
|
||||||
|
# ${QET_DIR}/sources/colorcomboboxdelegate.cpp
|
||||||
|
# ${QET_DIR}/sources/colorcomboboxdelegate.h
|
||||||
${QET_DIR}/sources/conductorautonumerotation.cpp
|
${QET_DIR}/sources/conductorautonumerotation.cpp
|
||||||
${QET_DIR}/sources/conductorautonumerotation.h
|
${QET_DIR}/sources/conductorautonumerotation.h
|
||||||
${QET_DIR}/sources/conductornumexport.cpp
|
${QET_DIR}/sources/conductornumexport.cpp
|
||||||
@@ -413,10 +421,6 @@ set(QET_SRC_FILES
|
|||||||
${QET_DIR}/sources/PropertiesEditor/propertieseditorwidget.cpp
|
${QET_DIR}/sources/PropertiesEditor/propertieseditorwidget.cpp
|
||||||
${QET_DIR}/sources/PropertiesEditor/propertieseditorwidget.h
|
${QET_DIR}/sources/PropertiesEditor/propertieseditorwidget.h
|
||||||
|
|
||||||
${QET_DIR}/pugixml/src/pugiconfig.hpp
|
|
||||||
${QET_DIR}/pugixml/src/pugixml.cpp
|
|
||||||
${QET_DIR}/pugixml/src/pugixml.hpp
|
|
||||||
|
|
||||||
${QET_DIR}/sources/qetgraphicsitem/conductor.cpp
|
${QET_DIR}/sources/qetgraphicsitem/conductor.cpp
|
||||||
${QET_DIR}/sources/qetgraphicsitem/conductor.h
|
${QET_DIR}/sources/qetgraphicsitem/conductor.h
|
||||||
${QET_DIR}/sources/qetgraphicsitem/conductortextitem.cpp
|
${QET_DIR}/sources/qetgraphicsitem/conductortextitem.cpp
|
||||||
@@ -495,6 +499,9 @@ set(QET_SRC_FILES
|
|||||||
${QET_DIR}/sources/SearchAndReplace/ui/searchandreplacewidget.cpp
|
${QET_DIR}/sources/SearchAndReplace/ui/searchandreplacewidget.cpp
|
||||||
${QET_DIR}/sources/SearchAndReplace/ui/searchandreplacewidget.h
|
${QET_DIR}/sources/SearchAndReplace/ui/searchandreplacewidget.h
|
||||||
|
|
||||||
|
${QET_DIR}/sources/svg/qetsvg.cpp
|
||||||
|
${QET_DIR}/sources/svg/qetsvg.h
|
||||||
|
|
||||||
${QET_DIR}/sources/titleblock/dimension.cpp
|
${QET_DIR}/sources/titleblock/dimension.cpp
|
||||||
${QET_DIR}/sources/titleblock/dimension.h
|
${QET_DIR}/sources/titleblock/dimension.h
|
||||||
${QET_DIR}/sources/titleblock/dimensionwidget.cpp
|
${QET_DIR}/sources/titleblock/dimensionwidget.cpp
|
||||||
@@ -706,6 +713,8 @@ set(QET_SRC_FILES
|
|||||||
|
|
||||||
${QET_DIR}/sources/xml/terminalstripitemxml.cpp
|
${QET_DIR}/sources/xml/terminalstripitemxml.cpp
|
||||||
${QET_DIR}/sources/xml/terminalstripitemxml.h
|
${QET_DIR}/sources/xml/terminalstripitemxml.h
|
||||||
|
${QET_DIR}/sources/xml/terminalstriplayoutpatternxml.cpp
|
||||||
|
${QET_DIR}/sources/xml/terminalstriplayoutpatternxml.h
|
||||||
)
|
)
|
||||||
|
|
||||||
set(TS_FILES
|
set(TS_FILES
|
||||||
@@ -732,13 +741,11 @@ set(TS_FILES
|
|||||||
${QET_DIR}/lang/qet_pt.ts
|
${QET_DIR}/lang/qet_pt.ts
|
||||||
${QET_DIR}/lang/qet_pt_BR.ts
|
${QET_DIR}/lang/qet_pt_BR.ts
|
||||||
${QET_DIR}/lang/qet_ro.ts
|
${QET_DIR}/lang/qet_ro.ts
|
||||||
${QET_DIR}/lang/qet_rs.ts
|
|
||||||
${QET_DIR}/lang/qet_ru.ts
|
${QET_DIR}/lang/qet_ru.ts
|
||||||
${QET_DIR}/lang/qet_sk.ts
|
${QET_DIR}/lang/qet_sk.ts
|
||||||
${QET_DIR}/lang/qet_sl.ts
|
${QET_DIR}/lang/qet_sl.ts
|
||||||
${QET_DIR}/lang/qet_sr.ts
|
${QET_DIR}/lang/qet_sr.ts
|
||||||
${QET_DIR}/lang/qet_sv.ts
|
${QET_DIR}/lang/qet_sv.ts
|
||||||
${QET_DIR}/lang/qet_tr.ts
|
${QET_DIR}/lang/qet_tr.ts
|
||||||
${QET_DIR}/lang/qet_uk.ts
|
|
||||||
${QET_DIR}/lang/qet_zh.ts
|
${QET_DIR}/lang/qet_zh.ts
|
||||||
)
|
)
|
||||||
|
|||||||
BIN
md/fr/assets/windows_msys2_setup/cmake.png
Normal file
|
After Width: | Height: | Size: 44 KiB |
BIN
md/fr/assets/windows_msys2_setup/compiler.png
Normal file
|
After Width: | Height: | Size: 58 KiB |
BIN
md/fr/assets/windows_msys2_setup/custom_install.png
Normal file
|
After Width: | Height: | Size: 42 KiB |
BIN
md/fr/assets/windows_msys2_setup/custom_install_tree.png
Normal file
|
After Width: | Height: | Size: 34 KiB |
BIN
md/fr/assets/windows_msys2_setup/debugger.png
Normal file
|
After Width: | Height: | Size: 51 KiB |
BIN
md/fr/assets/windows_msys2_setup/kit.png
Normal file
|
After Width: | Height: | Size: 76 KiB |
BIN
md/fr/assets/windows_msys2_setup/qt_version.png
Normal file
|
After Width: | Height: | Size: 49 KiB |
101
md/fr/fr_window_build_msys2.md
Normal file
@@ -0,0 +1,101 @@
|
|||||||
|
Compiler QElectroTech sous microsoft Windows 10 et 11 avec MSYS2
|
||||||
|
================================
|
||||||
|
Ce document décrit les étapes nécessaire afin de compilé QElectroTech sous Windows avec Qt6 et cmake en utilisant MSYS2.
|
||||||
|
|
||||||
|
# MSYS2
|
||||||
|
L'ensemble des outils nécessaire au développement et à la compilation de QElectroTech sous Windows sera installé par l’intermédiaire de [MSYS2](https://www.msys2.org/). Cela comprend entre autre le framework [Qt6](https://www.qt.io/development/qt-framework/qt6), les outils cmake, les dépendances ([kde framework](https://develop.kde.org/docs/), [sqlite](https://sqlite.org/), [pugixml](https://pugixml.org/)), les outils de compilation [minGW](https://www.mingw-w64.org/)...
|
||||||
|
|
||||||
|
>Il sera nécessaire d'utiliser [winget](https://learn.microsoft.com/fr-fr/windows/package-manager/winget/), celui-ci est présent par défaut sous Windows 11, dans le cas de Windows 10, winget peut necessité d'être activé manuellement
|
||||||
|
|
||||||
|
# Installer GIT et MSYS2 avec winget
|
||||||
|
Avec power shell.
|
||||||
|
```
|
||||||
|
winget install Git.Git
|
||||||
|
```
|
||||||
|
puis
|
||||||
|
```
|
||||||
|
winget install MSYS2.MSYS2
|
||||||
|
```
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
## Mise à jour de MSYS2
|
||||||
|
Lors de la première utilisation de MSYS2 il est nécessaire de mettre celui-ci à jour.
|
||||||
|
|
||||||
|
Lancer "MSYS2 MSYS" depuis le menu démarré de Windows.
|
||||||
|
Une fenêtre avec un shell s'ouvre, dans celui-ci lancer la commande :
|
||||||
|
```
|
||||||
|
pacman -Syu
|
||||||
|
```
|
||||||
|
A la fin de la mise à jour MSYS2 MSYS se fermera automatiquement. Ouvrez le à nouveau et relancé la commande
|
||||||
|
```
|
||||||
|
pacman -Syu
|
||||||
|
```
|
||||||
|
|
||||||
|
## Installation des outils de devellopement
|
||||||
|
Toujours dans le shell MSYS2 MSYS lancer la commande suivante.
|
||||||
|
```
|
||||||
|
pacman -S mingw-w64-ucrt-x86_64-gcc mingw-w64-ucrt-x86_64-cmake mingw-w64-ucrt-x86_64-qt6-svg mingw-w64-ucrt-x86_64-qt6-base mingw-w64-ucrt-x86_64-sqlite3 mingw-w64-ucrt-x86_64-pugixml mingw-w64-ucrt-x86_64-kcoreaddons mingw-w64-ucrt-x86_64-kwidgetsaddons mingw-w64-ucrt-x86_64-extra-cmake-modules mingw-w64-ucrt-x86_64-gdb mingw-w64-ucrt-x86_64-qt6-translations mingw-w64-ucrt-x86_64-qt6-tools
|
||||||
|
```
|
||||||
|
> La quantité de paquets à installer est conséquent, en fonction de votre connexion internet cela peut prendre plusieurs dizaine de minute
|
||||||
|
|
||||||
|
L'ensemble des outils est mantenant installé 😀
|
||||||
|
|
||||||
|
# Installer Qt creator
|
||||||
|
Télécharger [l'installateur online de Qt](https://www.qt.io/development/download-qt-installer-oss) et lancer l'installation en suivant les indications de ce dernier.
|
||||||
|
|
||||||
|
>Dans le cas où vous comptez utilisé Qt Creator uniquement pour développez QElectroTech, lors de l'installation choisissez l'option "installation personnalisée" puis dans la page suivante sélectionné uniquement Qt Creator.
|
||||||
|
|
||||||
|
## Configurer Qt creator
|
||||||
|
Ouvrir Qt creator puis rendez vous dans "édition -> préférence -> kit"
|
||||||
|
|
||||||
|
### Versions de Qt
|
||||||
|
|
||||||
|
- Cliquer sur _ajouter_
|
||||||
|
- Renseigner _Chemin de qmake_ (exemple C:\\msys64\\ucrt64\\bin\\qmake.exe).
|
||||||
|
- Dans le champ _Nom :_ ajouter (msys2).
|
||||||
|
|
||||||
|

|
||||||
|
|
||||||
|
### Compilateurs
|
||||||
|
- Cliquer sur _ajouter_ puis choisir _MinGW_.
|
||||||
|
- Renseigner _Emplacement du compilateur C_ (exemple C:\\msys64\\ucrt64\\bin\\g++.exe).
|
||||||
|
- Dans le champ _Nom :_ ajouter (msys2).
|
||||||
|
|
||||||
|

|
||||||
|
|
||||||
|
### Débogueurs
|
||||||
|
- Cliquer sur _ajouter_
|
||||||
|
- Renseigner _Chemin :_ (exemple C:\\msys64\\ucrt64\\bin\\gdb.exe).
|
||||||
|
- Dans le champ _Nom :_ ajouter (msys2).
|
||||||
|
|
||||||
|

|
||||||
|
|
||||||
|
### cmake
|
||||||
|
- Outils -> _Ajouter_
|
||||||
|
- Renseigner _Chemin :_ (exemple C:\\msys64\\ucrt64\\bin\\cmake.exe).
|
||||||
|
- Dans le champ _Nom :_ ajouter (msys2).
|
||||||
|
|
||||||
|

|
||||||
|
|
||||||
|
### KIT
|
||||||
|
Maintenant que tous les prérequis sont fait nous allons crée un kit utilisant les outils fournis par MSYS2. Cliquer sur _Ajouter_, un nouveau kit _manuel_ apparaît, nommer celui-ci par exemple _Qt6 msys2_ puis renseigner le compilateur, le débogueur, la version de Qt et Outils CMake en choisissant à chaque fois ceux que nous venons de créer.
|
||||||
|
puis cliquer sur _appliquer_.
|
||||||
|
|
||||||
|

|
||||||
|
|
||||||
|
Bravo 🥳🥳 vous avez terminé l'installation de la totalité des outils de développement.
|
||||||
|
|
||||||
|
# Clonez le dépôts de QElectrotech
|
||||||
|
Clonez le dépôt de QElectroTech comme vous le faite habituellement, sinon utilisez les commandes suivante dans power shell.
|
||||||
|
|
||||||
|
Crée et/ou se rendre dans le dossier dans lequel vous voulez clonez le dépôt (dans l'exemple nous allons crée un dossier QElectroTech dans C:)
|
||||||
|
|
||||||
|
```
|
||||||
|
mkdir C:\QElectroTech
|
||||||
|
cd C:\QElectroTech
|
||||||
|
|
||||||
|
git clone --recursive https://github.com/qelectrotech/qelectrotech-source-mirror.git
|
||||||
|
```
|
||||||
|
|
||||||
|
Une fois le dépôt cloné lancer Qt creator puis choisir d'ouvrir un projet existant, en choisissant le _CMakeLists.txt_ se trouvant à la racine du projet QElectroTech, enfin dans l'assistant de création de projet choisir comme kit le kit que nous avons créer précédemment.
|
||||||
13
md/fr/fr_window_build_summary.md
Normal file
@@ -0,0 +1,13 @@
|
|||||||
|
Compiler QElectroTech sous microsoft Windows 10 et 11
|
||||||
|
================================
|
||||||
|
Compiler QElectroTech pour et/ou sous Windows peut être effectué avec plusieurs méthode différente.
|
||||||
|
Ce document énumère uniquement les différentes méthode possible
|
||||||
|
|
||||||
|
N'est mentionné que les étapes nécessaire afin de compilé QElectroTech sous Windows avec Qt6 et cmake. Ce document ne traite pas la compilation avec Qt5 et qmake.
|
||||||
|
|
||||||
|
>QElectroTech 0.100 est la dernière version à utiliser Qt5. Les version suivante sont développé avec Qt6 et utilise cmake au lieu de qmake.
|
||||||
|
|
||||||
|
Il existe deux méthodes pour cela :
|
||||||
|
|
||||||
|
1. [Utiliser msys2 (méthode recommandé)](fr_window_build_msys2.md)
|
||||||
|
2. Télécharger et compiler l'ensemble des dépendances (non rédigé)
|
||||||
1
pugixml
@@ -26,12 +26,7 @@
|
|||||||
#include "xmlprojectelementcollectionitem.h"
|
#include "xmlprojectelementcollectionitem.h"
|
||||||
|
|
||||||
#include <QFutureWatcher>
|
#include <QFutureWatcher>
|
||||||
#if QT_VERSION < QT_VERSION_CHECK(6, 0, 0) // ### Qt 6: remove
|
|
||||||
#include <QtConcurrentMap>
|
#include <QtConcurrentMap>
|
||||||
#else
|
|
||||||
#include <QtConcurrentRun>
|
|
||||||
#endif
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@brief ElementsCollectionModel::ElementsCollectionModel
|
@brief ElementsCollectionModel::ElementsCollectionModel
|
||||||
Constructor
|
Constructor
|
||||||
@@ -298,15 +293,8 @@ void ElementsCollectionModel::loadCollections(bool common_collection,
|
|||||||
&QFutureWatcher<void>::finished,
|
&QFutureWatcher<void>::finished,
|
||||||
watcher,
|
watcher,
|
||||||
&QFutureWatcher<void>::deleteLater);
|
&QFutureWatcher<void>::deleteLater);
|
||||||
#if QT_VERSION < QT_VERSION_CHECK(6, 0, 0) // ### Qt 6: remove
|
|
||||||
m_future = QtConcurrent::map(m_items_list_to_setUp, setUpData);
|
m_future = QtConcurrent::map(m_items_list_to_setUp, setUpData);
|
||||||
#else
|
|
||||||
# if TODO_LIST
|
|
||||||
# pragma message("@TODO remove code for QT 6 or later")
|
|
||||||
# endif
|
|
||||||
qDebug() << "Help code for QT 6 or later"
|
|
||||||
<< "QtConcurrent::run its backwards now...function, object, args";
|
|
||||||
#endif
|
|
||||||
watcher->setFuture(m_future);
|
watcher->setFuture(m_future);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -807,13 +807,13 @@ bool ElementsLocation::setXml(const QDomDocument &xml_document) const
|
|||||||
QString path_ = collectionPath(false);
|
QString path_ = collectionPath(false);
|
||||||
QRegularExpression rx("^(.*)/(.*\\.elmt)$");
|
QRegularExpression rx("^(.*)/(.*\\.elmt)$");
|
||||||
|
|
||||||
if (rx.exactMatch(path_))
|
if (auto regex_match = rx.match(path_); regex_match.hasMatch())
|
||||||
{
|
{
|
||||||
return project()
|
return project()
|
||||||
->embeddedElementCollection()
|
->embeddedElementCollection()
|
||||||
->addElementDefinition(
|
->addElementDefinition(
|
||||||
rx.cap(1),
|
regex_match.captured(1),
|
||||||
rx.cap(2),
|
regex_match.captured(2),
|
||||||
xml_document.documentElement());
|
xml_document.documentElement());
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
|
|||||||
@@ -20,7 +20,7 @@
|
|||||||
|
|
||||||
#include "../NameList/nameslist.h"
|
#include "../NameList/nameslist.h"
|
||||||
#include "../diagramcontext.h"
|
#include "../diagramcontext.h"
|
||||||
#include "pugixml/src/pugixml.hpp"
|
#include "pugixml.hpp"
|
||||||
|
|
||||||
#include <QIcon>
|
#include <QIcon>
|
||||||
#include <QString>
|
#include <QString>
|
||||||
|
|||||||
@@ -17,7 +17,7 @@
|
|||||||
*/
|
*/
|
||||||
#ifndef NAMES_LIST_H
|
#ifndef NAMES_LIST_H
|
||||||
#define NAMES_LIST_H
|
#define NAMES_LIST_H
|
||||||
#include "pugixml/src/pugixml.hpp"
|
#include "pugixml.hpp"
|
||||||
|
|
||||||
#include <QtXml>
|
#include <QtXml>
|
||||||
/**
|
/**
|
||||||
|
|||||||
@@ -18,6 +18,7 @@
|
|||||||
#include "terminalstripdrawer.h"
|
#include "terminalstripdrawer.h"
|
||||||
|
|
||||||
#include <QPainter>
|
#include <QPainter>
|
||||||
|
#include <QHash>
|
||||||
|
|
||||||
namespace TerminalStripDrawer {
|
namespace TerminalStripDrawer {
|
||||||
|
|
||||||
|
|||||||
@@ -131,7 +131,7 @@ bool PhysicalTerminal::setLevelOf(const QSharedPointer<RealTerminal> &terminal,
|
|||||||
if (i >= 0)
|
if (i >= 0)
|
||||||
{
|
{
|
||||||
#if QT_VERSION >= QT_VERSION_CHECK(5,14,0)
|
#if QT_VERSION >= QT_VERSION_CHECK(5,14,0)
|
||||||
m_real_terminal.swapItemsAt(i, std::min(level, m_real_terminal.size()-1));
|
m_real_terminal.swapItemsAt(i, std::min(static_cast<qsizetype>(level), m_real_terminal.size()-1));
|
||||||
#else
|
#else
|
||||||
auto j = std::min(level, m_real_terminal.size()-1);
|
auto j = std::min(level, m_real_terminal.size()-1);
|
||||||
std::swap(m_real_terminal.begin()[i], m_real_terminal.begin()[j]);
|
std::swap(m_real_terminal.begin()[i], m_real_terminal.begin()[j]);
|
||||||
|
|||||||
@@ -17,7 +17,7 @@
|
|||||||
*/
|
*/
|
||||||
#ifndef DIAGRAM_CONTEXT_H
|
#ifndef DIAGRAM_CONTEXT_H
|
||||||
#define DIAGRAM_CONTEXT_H
|
#define DIAGRAM_CONTEXT_H
|
||||||
#include "pugixml/src/pugixml.hpp"
|
#include "pugixml.hpp"
|
||||||
|
|
||||||
#include <QDomElement>
|
#include <QDomElement>
|
||||||
#include <QHash>
|
#include <QHash>
|
||||||
|
|||||||
@@ -107,7 +107,7 @@ bool dxf2ElmtIsPresent(bool install_dialog, QWidget *parent)
|
|||||||
"Veuillez télécharger celui-ci en suivant le lien ci dessous et le dézipper dans le dossier d'installation")};
|
"Veuillez télécharger celui-ci en suivant le lien ci dessous et le dézipper dans le dossier d'installation")};
|
||||||
|
|
||||||
ThirdPartyBinaryInstallDialog dialog_(string_,
|
ThirdPartyBinaryInstallDialog dialog_(string_,
|
||||||
QStringLiteral("https://github.com/Vadoola/dxf2elmt/releases/tag/v0.5.1"),
|
QStringLiteral("https://github.com/Vadoola/dxf2elmt/releases"),
|
||||||
dxf2ElmtDirPath(),
|
dxf2ElmtDirPath(),
|
||||||
parent);
|
parent);
|
||||||
dialog_.exec();
|
dialog_.exec();
|
||||||
|
|||||||
@@ -188,10 +188,8 @@ void MachineInfo::send_info_to_debug()
|
|||||||
QDirIterator it1(QETApp::commonElementsDir().toLatin1(),nameFilters, QDir::Files, QDirIterator::Subdirectories);
|
QDirIterator it1(QETApp::commonElementsDir().toLatin1(),nameFilters, QDir::Files, QDirIterator::Subdirectories);
|
||||||
while (it1.hasNext())
|
while (it1.hasNext())
|
||||||
{
|
{
|
||||||
if(it1.next() > 0 )
|
it1.next();
|
||||||
{
|
|
||||||
commomElementsDir ++;
|
commomElementsDir ++;
|
||||||
}
|
|
||||||
}
|
}
|
||||||
qInfo()<< " Common Elements count:"<< commomElementsDir << "Elements";
|
qInfo()<< " Common Elements count:"<< commomElementsDir << "Elements";
|
||||||
|
|
||||||
@@ -200,10 +198,8 @@ void MachineInfo::send_info_to_debug()
|
|||||||
QDirIterator it2(QETApp::customElementsDir().toLatin1(), nameFilters, QDir::Files, QDirIterator::Subdirectories);
|
QDirIterator it2(QETApp::customElementsDir().toLatin1(), nameFilters, QDir::Files, QDirIterator::Subdirectories);
|
||||||
while (it2.hasNext())
|
while (it2.hasNext())
|
||||||
{
|
{
|
||||||
if(it2.next() > 0 )
|
it2.next();
|
||||||
{
|
|
||||||
customElementsDir ++;
|
customElementsDir ++;
|
||||||
}
|
|
||||||
}
|
}
|
||||||
qInfo()<< " Custom Elements count:"<< customElementsDir << "Elements";
|
qInfo()<< " Custom Elements count:"<< customElementsDir << "Elements";
|
||||||
|
|
||||||
@@ -211,10 +207,8 @@ void MachineInfo::send_info_to_debug()
|
|||||||
QDirIterator it3(QETApp::companyElementsDir().toLatin1(), nameFilters, QDir::Files, QDirIterator::Subdirectories);
|
QDirIterator it3(QETApp::companyElementsDir().toLatin1(), nameFilters, QDir::Files, QDirIterator::Subdirectories);
|
||||||
while (it3.hasNext())
|
while (it3.hasNext())
|
||||||
{
|
{
|
||||||
if(it3.next() > 0 )
|
it3.next();
|
||||||
{
|
|
||||||
companyElementsDir ++;
|
companyElementsDir ++;
|
||||||
}
|
|
||||||
}
|
}
|
||||||
qInfo()<< " Company Elements count:"<< companyElementsDir << "Elements";
|
qInfo()<< " Company Elements count:"<< companyElementsDir << "Elements";
|
||||||
|
|
||||||
|
|||||||
@@ -190,25 +190,28 @@ ProjectPrintWindow::~ProjectPrintWindow()
|
|||||||
*/
|
*/
|
||||||
void ProjectPrintWindow::requestPaint()
|
void ProjectPrintWindow::requestPaint()
|
||||||
{
|
{
|
||||||
#if QT_VERSION >= QT_VERSION_CHECK(5, 6, 0)
|
#if QT_VERSION >= QT_VERSION_CHECK(5, 6, 0)
|
||||||
#ifdef Q_OS_WIN
|
#ifdef Q_OS_WIN
|
||||||
#ifdef QT_DEBUG
|
auto screen = this->screen();
|
||||||
qDebug() << "--";
|
if(screen)
|
||||||
qDebug() << "DiagramPrintDialog::print printer_->resolution() before " << m_printer->resolution();
|
{
|
||||||
qDebug() << "DiagramPrintDialog::print screennumber " << QApplication::desktop()->screenNumber();
|
#ifdef QT_DEBUG
|
||||||
#endif
|
qDebug() << "--";
|
||||||
|
qDebug() << "DiagramPrintDialog::print printer_->resolution() before " << m_printer->resolution();
|
||||||
|
qDebug() << "DiagramPrintDialog::print screennumber " << screen->name();
|
||||||
|
#endif
|
||||||
|
|
||||||
QScreen *srn = QApplication::screens().at(QApplication::desktop()->screenNumber());
|
qreal dotsPerInch = (qreal)screen->logicalDotsPerInch();
|
||||||
qreal dotsPerInch = (qreal)srn->logicalDotsPerInch();
|
m_printer->setResolution(dotsPerInch);
|
||||||
m_printer->setResolution(dotsPerInch);
|
|
||||||
|
|
||||||
#ifdef QT_DEBUG
|
#ifdef QT_DEBUG
|
||||||
qDebug() << "DiagramPrintDialog::print dotsPerInch " << dotsPerInch;
|
qDebug() << "DiagramPrintDialog::print dotsPerInch " << dotsPerInch;
|
||||||
qDebug() << "DiagramPrintDialog::print printer_->resolution() after" << m_printer->resolution();
|
qDebug() << "DiagramPrintDialog::print printer_->resolution() after" << m_printer->resolution();
|
||||||
qDebug() << "--";
|
qDebug() << "--";
|
||||||
#endif
|
#endif
|
||||||
#endif
|
}
|
||||||
#endif
|
#endif
|
||||||
|
#endif
|
||||||
|
|
||||||
if (!m_project->diagrams().count()) {
|
if (!m_project->diagrams().count()) {
|
||||||
return;
|
return;
|
||||||
@@ -265,9 +268,9 @@ void ProjectPrintWindow::printDiagram(Diagram *diagram, bool fit_page, QPainter
|
|||||||
#if TODO_LIST
|
#if TODO_LIST
|
||||||
#pragma message("@TODO remove code for QT 6 or later")
|
#pragma message("@TODO remove code for QT 6 or later")
|
||||||
#endif
|
#endif
|
||||||
qDebug()<<"Help code for QT 6 or later";
|
qDebug()<<"Help code for QT 6 or later";
|
||||||
auto printed_rect = full_page ? printer->paperRect(QPrinter::Millimeter) :
|
auto printed_rect = full_page ? printer->paperRect(QPrinter::Millimeter) :
|
||||||
printer->pageRect(QPrinter::Millimeter);
|
printer->pageRect(QPrinter::Millimeter);
|
||||||
#endif
|
#endif
|
||||||
auto used_width = printed_rect.width();
|
auto used_width = printed_rect.width();
|
||||||
auto used_height = printed_rect.height();
|
auto used_height = printed_rect.height();
|
||||||
@@ -341,7 +344,7 @@ QRect ProjectPrintWindow::diagramRect(Diagram *diagram, const ExportProperties &
|
|||||||
diagram_rect.setHeight(diagram_rect.height() - titleblock_height);
|
diagram_rect.setHeight(diagram_rect.height() - titleblock_height);
|
||||||
}
|
}
|
||||||
|
|
||||||
//Adjust the border of diagram to 1px (width of the line)
|
//Adjust the border of diagram to 1px (width of the line)
|
||||||
diagram_rect.adjust(0,0,1,1);
|
diagram_rect.adjust(0,0,1,1);
|
||||||
|
|
||||||
return (diagram_rect.toAlignedRect());
|
return (diagram_rect.toAlignedRect());
|
||||||
@@ -356,7 +359,7 @@ QRect ProjectPrintWindow::diagramRect(Diagram *diagram, const ExportProperties &
|
|||||||
* with the orientation and the paper format used by the actual printer
|
* with the orientation and the paper format used by the actual printer
|
||||||
*/
|
*/
|
||||||
int ProjectPrintWindow::horizontalPagesCount(
|
int ProjectPrintWindow::horizontalPagesCount(
|
||||||
Diagram *diagram, const ExportProperties &option, bool full_page) const
|
Diagram *diagram, const ExportProperties &option, bool full_page) const
|
||||||
{
|
{
|
||||||
QRect printable_area;
|
QRect printable_area;
|
||||||
#if QT_VERSION < QT_VERSION_CHECK(5, 15, 1) // ### Qt 6: remove
|
#if QT_VERSION < QT_VERSION_CHECK(5, 15, 1) // ### Qt 6: remove
|
||||||
@@ -385,7 +388,7 @@ int ProjectPrintWindow::horizontalPagesCount(
|
|||||||
* with the orientation and paper format used by the actual printer
|
* with the orientation and paper format used by the actual printer
|
||||||
*/
|
*/
|
||||||
int ProjectPrintWindow::verticalPagesCount(
|
int ProjectPrintWindow::verticalPagesCount(
|
||||||
Diagram *diagram, const ExportProperties &option, bool full_page) const
|
Diagram *diagram, const ExportProperties &option, bool full_page) const
|
||||||
{
|
{
|
||||||
QRect printable_area;
|
QRect printable_area;
|
||||||
#if QT_VERSION < QT_VERSION_CHECK(5, 15, 1) // ### Qt 6: remove
|
#if QT_VERSION < QT_VERSION_CHECK(5, 15, 1) // ### Qt 6: remove
|
||||||
@@ -511,7 +514,7 @@ void ProjectPrintWindow::loadPageSetupForCurrentPrinter()
|
|||||||
QString value = settings.value("orientation", "landscape").toString();
|
QString value = settings.value("orientation", "landscape").toString();
|
||||||
m_printer->setPageOrientation(
|
m_printer->setPageOrientation(
|
||||||
value == "landscape" ? QPageLayout::Landscape :
|
value == "landscape" ? QPageLayout::Landscape :
|
||||||
QPageLayout::Portrait);
|
QPageLayout::Portrait);
|
||||||
}
|
}
|
||||||
if (settings.contains("papersize"))
|
if (settings.contains("papersize"))
|
||||||
{
|
{
|
||||||
@@ -780,9 +783,9 @@ void ProjectPrintWindow::print()
|
|||||||
void ProjectPrintWindow::on_m_date_cb_userDateChanged(const QDate &date)
|
void ProjectPrintWindow::on_m_date_cb_userDateChanged(const QDate &date)
|
||||||
{
|
{
|
||||||
auto index = ui->m_date_from_cb->currentIndex();
|
auto index = ui->m_date_from_cb->currentIndex();
|
||||||
// 0 = all date
|
// 0 = all date
|
||||||
// 1 = from the date
|
// 1 = from the date
|
||||||
// 2 = at the date
|
// 2 = at the date
|
||||||
|
|
||||||
if (index) { on_m_uncheck_all_clicked(); }
|
if (index) { on_m_uncheck_all_clicked(); }
|
||||||
else { on_m_check_all_pb_clicked(); }
|
else { on_m_check_all_pb_clicked(); }
|
||||||
@@ -792,7 +795,7 @@ void ProjectPrintWindow::on_m_date_cb_userDateChanged(const QDate &date)
|
|||||||
{
|
{
|
||||||
auto diagram_date = diagram->border_and_titleblock.date();
|
auto diagram_date = diagram->border_and_titleblock.date();
|
||||||
if ( (index == 1 && diagram_date >= date) ||
|
if ( (index == 1 && diagram_date >= date) ||
|
||||||
(index == 2 && diagram_date == date) )
|
(index == 2 && diagram_date == date) )
|
||||||
m_diagram_list_hash.value(diagram)->setChecked(true);
|
m_diagram_list_hash.value(diagram)->setChecked(true);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -19,11 +19,11 @@
|
|||||||
|
|
||||||
namespace QetVersion
|
namespace QetVersion
|
||||||
{
|
{
|
||||||
QetVersion::VersionType VERSION_TYPE = QetVersion::stable;
|
QetVersion::VersionType VERSION_TYPE = QetVersion::dev;
|
||||||
|
|
||||||
QVersionNumber currentVersion()
|
QVersionNumber currentVersion()
|
||||||
{
|
{
|
||||||
return QVersionNumber{ 0, 100, 0 };
|
return QVersionNumber{ 0, 100, 1 };
|
||||||
}
|
}
|
||||||
|
|
||||||
QString displayedVersion()
|
QString displayedVersion()
|
||||||
|
|||||||
@@ -20,6 +20,7 @@
|
|||||||
|
|
||||||
#include <QDomElement>
|
#include <QDomElement>
|
||||||
#include <QPen>
|
#include <QPen>
|
||||||
|
#include <QUuid>
|
||||||
|
|
||||||
class QDomDocument;
|
class QDomDocument;
|
||||||
class QDir;
|
class QDir;
|
||||||
|
|||||||
@@ -70,25 +70,6 @@ void QGIManager::release(QGraphicsItem *qgi) {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
|
||||||
Demande au QGIManager de gerer plusieurs QGI
|
|
||||||
@param qgis QGraphicsItems a gerer
|
|
||||||
*/
|
|
||||||
void QGIManager::manage(const QList<QGraphicsItem *> &qgis) {
|
|
||||||
foreach(QGraphicsItem *qgi, qgis) manage(qgi);
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
Indique au QGIManager que pour chaque QGI fourni, une reference vers celui-ci
|
|
||||||
a ete detruite.
|
|
||||||
S'il n'y a plus de references vers un QGI et que celui-ci n'est pas present
|
|
||||||
sur la scene de ce QGIManager, alors il sera detruit.
|
|
||||||
@param qgis QGraphicsItems a ne plus gerer
|
|
||||||
*/
|
|
||||||
void QGIManager::release(const QList<QGraphicsItem *> &qgis) {
|
|
||||||
foreach(QGraphicsItem *qgi, qgis) release(qgi);
|
|
||||||
}
|
|
||||||
|
|
||||||
void QGIManager::manage(const QVector<QGraphicsItem *> &items) {
|
void QGIManager::manage(const QVector<QGraphicsItem *> &items) {
|
||||||
for (const auto &qgi : items) {
|
for (const auto &qgi : items) {
|
||||||
manage(qgi);
|
manage(qgi);
|
||||||
|
|||||||
@@ -45,10 +45,6 @@ class QGIManager {
|
|||||||
public:
|
public:
|
||||||
void manage(QGraphicsItem *);
|
void manage(QGraphicsItem *);
|
||||||
void release(QGraphicsItem *);
|
void release(QGraphicsItem *);
|
||||||
QT_DEPRECATED_X("Use QGIManager::manage(const QVector<QGraphicsItem *> &) instead")
|
|
||||||
void manage(const QList<QGraphicsItem *> &);
|
|
||||||
QT_DEPRECATED_X("Use QGIManager::release(const QVector<QGraphicsItem *> &) instead")
|
|
||||||
void release(const QList<QGraphicsItem *> &);
|
|
||||||
void manage(const QVector<QGraphicsItem *> &items);
|
void manage(const QVector<QGraphicsItem *> &items);
|
||||||
void release(const QVector<QGraphicsItem *> &items);
|
void release(const QVector<QGraphicsItem *> &items);
|
||||||
void setDestroyQGIOnDelete(bool);
|
void setDestroyQGIOnDelete(bool);
|
||||||
|
|||||||
@@ -16,7 +16,6 @@
|
|||||||
along with QElectroTech. If not, see <http://www.gnu.org/licenses/>.
|
along with QElectroTech. If not, see <http://www.gnu.org/licenses/>.
|
||||||
*/
|
*/
|
||||||
#include "recentfiles.h"
|
#include "recentfiles.h"
|
||||||
#include "qeticons.h"
|
|
||||||
#include <QMenu>
|
#include <QMenu>
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -33,7 +32,7 @@ RecentFiles::RecentFiles(const QString &identifier, int size, QObject *parent) :
|
|||||||
menu_(nullptr)
|
menu_(nullptr)
|
||||||
{
|
{
|
||||||
mapper_ = new QSignalMapper(this);
|
mapper_ = new QSignalMapper(this);
|
||||||
connect(mapper_, SIGNAL(mapped(const QString &)), this, SLOT(handleMenuRequest(const QString &)));
|
connect(mapper_, &QSignalMapper::mappedString, this, &RecentFiles::fileOpeningRequested);
|
||||||
|
|
||||||
extractFilesFromSettings();
|
extractFilesFromSettings();
|
||||||
buildMenu();
|
buildMenu();
|
||||||
@@ -103,13 +102,6 @@ void RecentFiles::save()
|
|||||||
saveFilesToSettings();
|
saveFilesToSettings();
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
|
||||||
Gere les actions sur le menu
|
|
||||||
*/
|
|
||||||
void RecentFiles::handleMenuRequest(const QString &filepath) {
|
|
||||||
emit(fileOpeningRequested(filepath));
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
Gere le fait qu'un fichier ait ete ouvert
|
Gere le fait qu'un fichier ait ete ouvert
|
||||||
@param filepath Chemin du fichier ouvert
|
@param filepath Chemin du fichier ouvert
|
||||||
@@ -193,6 +185,6 @@ void RecentFiles::buildMenu()
|
|||||||
|
|
||||||
// lie l'action et le mapper
|
// lie l'action et le mapper
|
||||||
mapper_ -> setMapping(action, filepath);
|
mapper_ -> setMapping(action, filepath);
|
||||||
connect(action, SIGNAL(triggered()), mapper_, SLOT(map()));
|
connect(action, &QAction::triggered, mapper_, qOverload<>(&QSignalMapper::map));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -54,9 +54,6 @@ class RecentFiles : public QObject {
|
|||||||
void saveFilesToSettings();
|
void saveFilesToSettings();
|
||||||
void buildMenu();
|
void buildMenu();
|
||||||
|
|
||||||
private slots:
|
|
||||||
void handleMenuRequest(const QString &);
|
|
||||||
|
|
||||||
// attributes
|
// attributes
|
||||||
private:
|
private:
|
||||||
QString identifier_;
|
QString identifier_;
|
||||||
|
|||||||
@@ -454,7 +454,7 @@ QDomElement TitleBlockTemplatesFilesCollection::getTemplateXmlDescription(const
|
|||||||
}
|
}
|
||||||
|
|
||||||
QDomDocument *xml_document = new QDomDocument();
|
QDomDocument *xml_document = new QDomDocument();
|
||||||
bool xml_parsing = xml_document -> setContent(&xml_file);
|
const auto xml_parsing = xml_document -> setContent(&xml_file);
|
||||||
if (!xml_parsing) {
|
if (!xml_parsing) {
|
||||||
delete xml_document;
|
delete xml_document;
|
||||||
return(QDomElement());
|
return(QDomElement());
|
||||||
|
|||||||
@@ -24,6 +24,8 @@ class HelperCell;
|
|||||||
class SplittedHelperCell;
|
class SplittedHelperCell;
|
||||||
class TitleBlockTemplateCommand;
|
class TitleBlockTemplateCommand;
|
||||||
class TitleBlockTemplateCellsSet;
|
class TitleBlockTemplateCellsSet;
|
||||||
|
class QGraphicsLayoutItem;
|
||||||
|
class QGraphicsGridLayout;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
This QGraphicsView subclass is used in the title block template editor to
|
This QGraphicsView subclass is used in the title block template editor to
|
||||||
|
|||||||
@@ -103,7 +103,7 @@ bool TitleBlockTemplate::loadFromXmlFile(const QString &filepath) {
|
|||||||
|
|
||||||
// parse its content as XML
|
// parse its content as XML
|
||||||
QDomDocument xml_doc;
|
QDomDocument xml_doc;
|
||||||
bool xml_parsing = xml_doc.setContent(&template_file);
|
const auto xml_parsing = xml_doc.setContent(&template_file);
|
||||||
if (!xml_parsing) {
|
if (!xml_parsing) {
|
||||||
return(false);
|
return(false);
|
||||||
}
|
}
|
||||||
|
|||||||