mirror of
https://github.com/qelectrotech/qelectrotech-source-mirror.git
synced 2026-06-11 05:13:13 +02:00
Compare commits
126 Commits
3a43fbfa61
...
qt6-cmake
| Author | SHA1 | Date | |
|---|---|---|---|
| 411fb3c4dc | |||
| 07a07a5719 | |||
| 3913836137 | |||
| 242a601984 | |||
| 635bb15faf | |||
| 2deb37d351 | |||
| 1124a567aa | |||
| 8e7120e923 | |||
| 0a9f62126b | |||
| c0864eced3 | |||
| e01e3d7838 | |||
| 0e85314a84 | |||
| 80e404048c | |||
| 0e5f37503c | |||
| f14f6c6a8d | |||
| b815244494 | |||
| 01d018f8cf | |||
| d7a15d6cb6 | |||
| a53a799da5 | |||
| d4972dc588 | |||
| e66061fdca | |||
| e2e84a56f7 | |||
| 565374f174 | |||
| 7bdca47d8e | |||
| d1ce42a148 | |||
| 6b9837b244 | |||
| f0c954329f | |||
| e99ad6b424 | |||
| 74460a6645 | |||
| 231a1c919a | |||
| 19c9d614e8 | |||
| 43386aa14f | |||
| 181680e6f1 | |||
| 667d25899f | |||
| c9b9165911 | |||
| adbbeca905 | |||
| f8b9edd938 | |||
| 99dfe6a50c | |||
| 78ee65a21b | |||
| 49ce6bc4b3 | |||
| 572d78912c | |||
| aa36bb35e1 | |||
| 4e030943bc | |||
| 1c2d83d586 | |||
| 1a24452e8b | |||
| 3f7192dc68 | |||
| 4ce8fcb0d4 | |||
| 9fefc7aa2a | |||
| c77eb98a15 | |||
| 5973db00f7 | |||
| ee06a71e6f | |||
| 25f9f14b04 | |||
| 4827b23116 | |||
| e332d3bf31 | |||
| 3c4a0ed2b4 | |||
| e8f8304b60 | |||
| 07118d7a11 | |||
| 373fcfb4ea | |||
| 05dfd10952 | |||
| a88d485051 | |||
| 40abc3892c | |||
| 27899c48a3 | |||
| 4fe9687aca | |||
| cfdad56d0e | |||
| 8ba96ac6e2 | |||
| dd521f13aa | |||
| 6c5ff66067 | |||
| 0dc45f056e | |||
| 0b307abf34 | |||
| 9127937bee | |||
| d3f206a387 | |||
| 8a4d7c6cf2 | |||
| bae85624a0 | |||
| 540a248d72 | |||
| d07214ab92 | |||
| 68a2ddde18 | |||
| 8c3343795a | |||
| 2097b24d37 | |||
| 5351746dc7 | |||
| 1af3c5b852 | |||
| c2a2e5f5eb | |||
| dc836248f0 | |||
| a3bf2e2800 | |||
| 83f960a983 | |||
| c223121f00 | |||
| 0f647a5c38 | |||
| 67112bf8e5 | |||
| 1b60f7c52a | |||
| 9a96eb914d | |||
| bf8723015a | |||
| 82d7bbda68 | |||
| 0df3ecb5f7 | |||
| 1e27cac8c5 | |||
| 16dea9f3de | |||
| 20e852cbaf | |||
| 51225d5f59 | |||
| 3fc5469aee | |||
| 6fdc243552 | |||
| da109b1522 | |||
| 2aeae1fe46 | |||
| e98ce4de1d | |||
| da0951d5a0 | |||
| 0be9e2beae | |||
| 52946f9e3a | |||
| 007ce79cee | |||
| 5aee30edee | |||
| b9a8dc0918 | |||
| bd3b39cea3 | |||
| fc286cca22 | |||
| 4d5af028be | |||
| 9afc97108b | |||
| a4a3733670 | |||
| 3471140b64 | |||
| 43f0107eb1 | |||
| dba7caed30 | |||
| adcf77e34a | |||
| 59236170b2 | |||
| 3d82aff4e7 | |||
| 516eb9eb45 | |||
| 0b80d1b5b9 | |||
| 073e4080fd | |||
| b512aee2bf | |||
| 38f5547228 | |||
| 317c90c769 | |||
| f308ea6b93 | |||
| 4808b04a31 |
+24
-30
@@ -16,7 +16,7 @@
|
||||
|
||||
include(cmake/hoto_update_cmake_message.cmake)
|
||||
|
||||
cmake_minimum_required(VERSION 3.14...3.19 FATAL_ERROR)
|
||||
cmake_minimum_required(VERSION 3.21.1 FATAL_ERROR)
|
||||
|
||||
project(qelectrotech
|
||||
VERSION 0.9.0
|
||||
@@ -27,6 +27,13 @@ project(qelectrotech
|
||||
include(cmake/copyright_message.cmake)
|
||||
|
||||
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
|
||||
option(PACKAGE_TESTS "Build the tests" ON)
|
||||
@@ -43,42 +50,17 @@ include(cmake/git_last_commit_sha.cmake)
|
||||
include(cmake/fetch_kdeaddons.cmake)
|
||||
include(cmake/fetch_singleapplication.cmake)
|
||||
include(cmake/fetch_pugixml.cmake)
|
||||
include(cmake/qet_compilation_vars.cmake)
|
||||
|
||||
set(CMAKE_INCLUDE_CURRENT_DIR ON)
|
||||
|
||||
set(CMAKE_AUTOMOC 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)
|
||||
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)
|
||||
|
||||
add_executable(
|
||||
qt_add_executable(
|
||||
${PROJECT_NAME}
|
||||
${QET_RES_FILES}
|
||||
${QET_SRC_FILES}
|
||||
@@ -86,13 +68,24 @@ add_executable(
|
||||
${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(
|
||||
${PROJECT_NAME}
|
||||
PUBLIC
|
||||
PRIVATE
|
||||
pugixml::pugixml
|
||||
SingleApplication::SingleApplication
|
||||
${KF5_PRIVATE_LIBRARIES}
|
||||
SQLite::SQLite3
|
||||
${KF6_PRIVATE_LIBRARIES}
|
||||
${QET_PRIVATE_LIBRARIES}
|
||||
)
|
||||
|
||||
@@ -149,6 +142,7 @@ install(FILES LICENSE ELEMENTS.LICENSE CREDIT README ChangeLog DESTINATION share
|
||||
install(FILES misc/org.qelectrotech.qelectrotech.desktop DESTINATION share/applications)
|
||||
install(FILES misc/qelectrotech.xml DESTINATION share/mime/packages)
|
||||
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()
|
||||
|
||||
@@ -125,6 +125,7 @@
|
||||
!insertmacro MUI_LANGUAGE "Dutch"
|
||||
!insertmacro MUI_LANGUAGE "Dutch_Belgium"
|
||||
!insertmacro MUI_LANGUAGE "Danish"
|
||||
!insertmacro MUI_LANGUAGE "Swedish"
|
||||
!insertmacro MUI_RESERVEFILE_LANGDLL
|
||||
|
||||
!include lang_extra.nsh
|
||||
|
||||
@@ -62,10 +62,15 @@ message("PROJECT_SOURCE_DIR :" ${PROJECT_SOURCE_DIR})
|
||||
message("QET_DIR :" ${QET_DIR})
|
||||
message("GIT_COMMIT_SHA :" ${GIT_COMMIT_SHA})
|
||||
|
||||
if(BUILD_WITH_KF5)
|
||||
message("KF5_GIT_TAG :" ${KF5_GIT_TAG})
|
||||
else()
|
||||
add_definitions(-DBUILD_WITHOUT_KF5)
|
||||
if(BUILD_WITH_KF6 AND BUILD_KF6)
|
||||
message("KF6_GIT_TAG :" ${KF6_GIT_TAG})
|
||||
endif()
|
||||
if(NOT BUILD_WITH_KF6)
|
||||
add_definitions(-DBUILD_WITHOUT_KF6)
|
||||
endif()
|
||||
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.
|
||||
#add_definitions(-DTODO_LIST)
|
||||
|
||||
# Build with KF5
|
||||
option(BUILD_WITH_KF5 "Build with KF5" ON)
|
||||
# Build with KF6
|
||||
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)
|
||||
|
||||
+29
-36
@@ -14,54 +14,47 @@
|
||||
# You should have received a copy of the GNU General Public License
|
||||
# along with QElectroTech. If not, see <http://www.gnu.org/licenses/>.
|
||||
|
||||
message(" - fetch_kdeaddons")
|
||||
message(STATUS "fetch_kdeaddons")
|
||||
|
||||
if(DEFINED BUILD_WITH_KF5)
|
||||
Include(FetchContent)
|
||||
if(BUILD_WITH_KF6)
|
||||
option(BUILD_KF6 "Build KF6 libraries, use system ones otherwise" OFF)
|
||||
block(PROPAGATE KF6_GIT_TAG)
|
||||
set(BUILD_TESTING OFF)
|
||||
set(KDE_SKIP_TEST_SETTINGS ON)
|
||||
set(BUILD_DESIGNERPLUGIN OFF)
|
||||
set(KCOREADDONS_USE_QML OFF)
|
||||
set(BUILD_QCH OFF)
|
||||
set(BUILD_SHARED_LIBS OFF)
|
||||
find_package(ECM 6.8.0 REQUIRED NO_MODULE)
|
||||
list(APPEND CMAKE_MODULE_PATH ${ECM_MODULE_PATH})
|
||||
|
||||
option(BUILD_KF5 "Build KF5 libraries, use system ones otherwise" YES)
|
||||
if(BUILD_KF6)
|
||||
Include(FetchContent)
|
||||
|
||||
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)
|
||||
if(NOT DEFINED KF6_GIT_TAG)
|
||||
set(KF6_GIT_TAG v6.8.0)
|
||||
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(
|
||||
kcoreaddons
|
||||
GIT_REPOSITORY https://invent.kde.org/frameworks/kcoreaddons.git
|
||||
GIT_TAG ${KF5_GIT_TAG})
|
||||
GIT_TAG ${KF6_GIT_TAG})
|
||||
FetchContent_MakeAvailable(kcoreaddons)
|
||||
get_target_property(kca_version KF6::CoreAddons VERSION)
|
||||
|
||||
FetchContent_Declare(
|
||||
kwidgetsaddons
|
||||
GIT_REPOSITORY https://invent.kde.org/frameworks/kwidgetsaddons.git
|
||||
GIT_TAG ${KF5_GIT_TAG})
|
||||
FetchContent_MakeAvailable(kwidgetsaddons)
|
||||
else()
|
||||
find_package(KF5CoreAddons REQUIRED)
|
||||
find_package(KF5WidgetsAddons REQUIRED)
|
||||
find_package(KF6CoreAddons REQUIRED)
|
||||
set(kca_version ${KF6CoreAddons_VERSION})
|
||||
endif()
|
||||
|
||||
set(KF5_PRIVATE_LIBRARIES
|
||||
KF5::WidgetsAddons
|
||||
KF5::CoreAddons
|
||||
get_target_property(kwa_type KF6::CoreAddons TYPE)
|
||||
|
||||
message(NOTICE "ecm version : " ${ECM_VERSION})
|
||||
message(NOTICE "kcoreaddons library : " ${kca_type})
|
||||
message(NOTICE "kcoreaddons version : " ${kca_version})
|
||||
endblock()
|
||||
|
||||
set(KF6_PRIVATE_LIBRARIES
|
||||
KF6::CoreAddons
|
||||
)
|
||||
endif()
|
||||
|
||||
@@ -25,7 +25,7 @@ if(BUILD_PUGIXML)
|
||||
FetchContent_Declare(
|
||||
pugixml
|
||||
GIT_REPOSITORY https://github.com/zeux/pugixml.git
|
||||
GIT_TAG v1.11.4)
|
||||
GIT_TAG v1.14)
|
||||
|
||||
FetchContent_MakeAvailable(pugixml)
|
||||
else()
|
||||
|
||||
@@ -26,6 +26,6 @@ Include(FetchContent)
|
||||
FetchContent_Declare(
|
||||
SingleApplication
|
||||
GIT_REPOSITORY https://github.com/itay-grudev/SingleApplication.git
|
||||
GIT_TAG v3.2.0)
|
||||
GIT_TAG v3.5.1)
|
||||
|
||||
FetchContent_MakeAvailable(SingleApplication)
|
||||
|
||||
@@ -17,6 +17,8 @@
|
||||
message(" - qet_compilation_vars")
|
||||
|
||||
set(QET_COMPONENTS
|
||||
Core
|
||||
Gui
|
||||
LinguistTools
|
||||
PrintSupport
|
||||
Xml
|
||||
@@ -109,6 +111,12 @@ set(QET_SRC_FILES
|
||||
${QET_DIR}/sources/borderproperties.h
|
||||
${QET_DIR}/sources/bordertitleblock.cpp
|
||||
${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.h
|
||||
${QET_DIR}/sources/conductornumexport.cpp
|
||||
@@ -710,7 +718,6 @@ set(QET_SRC_FILES
|
||||
|
||||
set(TS_FILES
|
||||
${QET_DIR}/lang/qet_ar.ts
|
||||
${QET_DIR}/lang/qet_be.ts
|
||||
${QET_DIR}/lang/qet_ca.ts
|
||||
${QET_DIR}/lang/qet_cs.ts
|
||||
${QET_DIR}/lang/qet_da.ts
|
||||
@@ -727,6 +734,7 @@ set(TS_FILES
|
||||
${QET_DIR}/lang/qet_mn.ts
|
||||
${QET_DIR}/lang/qet_nb.ts
|
||||
${QET_DIR}/lang/qet_nl.ts
|
||||
${QET_DIR}/lang/qet_nl_BE.ts
|
||||
${QET_DIR}/lang/qet_no.ts
|
||||
${QET_DIR}/lang/qet_pl.ts
|
||||
${QET_DIR}/lang/qet_pt.ts
|
||||
@@ -736,6 +744,7 @@ set(TS_FILES
|
||||
${QET_DIR}/lang/qet_sk.ts
|
||||
${QET_DIR}/lang/qet_sl.ts
|
||||
${QET_DIR}/lang/qet_sr.ts
|
||||
${QET_DIR}/lang/qet_sv.ts
|
||||
${QET_DIR}/lang/qet_tr.ts
|
||||
${QET_DIR}/lang/qet_zh.ts
|
||||
)
|
||||
|
||||
@@ -29,4 +29,4 @@ add_definitions(-DQET_ALLOW_OVERRIDE_CD_OPTION)
|
||||
add_definitions(-DQET_ALLOW_OVERRIDE_DD_OPTION)
|
||||
|
||||
#comment the line below to disable the project database export
|
||||
#add_definitions(-DQET_EXPORT_PROJECT_DB) #error Todo
|
||||
add_definitions(-DQET_EXPORT_PROJECT_DB)
|
||||
|
||||
+1
-1
Submodule elements updated: 11d9caa878...48eb7dcedf
Binary file not shown.
|
After Width: | Height: | Size: 295 B |
Binary file not shown.
|
After Width: | Height: | Size: 291 B |
@@ -0,0 +1,326 @@
|
||||
<!DOCTYPE QPH>
|
||||
<QPH sourcelanguage="fr" language="sv">
|
||||
<phrase>
|
||||
<source>Texte composé</source>
|
||||
<target>Sammansatt text</target>
|
||||
</phrase>
|
||||
<phrase>
|
||||
<source>Texte utilisateur</source>
|
||||
<target>Egen text</target>
|
||||
</phrase>
|
||||
<phrase>
|
||||
<source>Gauche</source>
|
||||
<target>Vänster</target>
|
||||
</phrase>
|
||||
<phrase>
|
||||
<source>Droite</source>
|
||||
<target>Höger</target>
|
||||
</phrase>
|
||||
<phrase>
|
||||
<source>Centre</source>
|
||||
<target>Centrum</target>
|
||||
</phrase>
|
||||
<phrase>
|
||||
<source>Élément</source>
|
||||
<target>Objekt</target>
|
||||
<definition>Vid referens av olika typer</definition>
|
||||
</phrase>
|
||||
<phrase>
|
||||
<source>Folio</source>
|
||||
<target>Blad</target>
|
||||
</phrase>
|
||||
<phrase>
|
||||
<source>Conducteur</source>
|
||||
<target>Förbindning</target>
|
||||
</phrase>
|
||||
<phrase>
|
||||
<source>Sans nom</source>
|
||||
<target>Namnlös</target>
|
||||
</phrase>
|
||||
<phrase>
|
||||
<source>Recharger</source>
|
||||
<target>Ladda om</target>
|
||||
</phrase>
|
||||
<phrase>
|
||||
<source>Projet sans titre</source>
|
||||
<target>Namnlöst projekt</target>
|
||||
</phrase>
|
||||
<phrase>
|
||||
<source>Folio sans titre</source>
|
||||
<target>Namnlöst blad</target>
|
||||
</phrase>
|
||||
<phrase>
|
||||
<source>Nom</source>
|
||||
<target>Namn</target>
|
||||
</phrase>
|
||||
<phrase>
|
||||
<source>Sélection</source>
|
||||
<target>Urval</target>
|
||||
</phrase>
|
||||
<phrase>
|
||||
<source>Désélectionner tout</source>
|
||||
<target>Avmarkera allt</target>
|
||||
</phrase>
|
||||
<phrase>
|
||||
<source>Sélectionner tout</source>
|
||||
<target>Välj allt</target>
|
||||
</phrase>
|
||||
<phrase>
|
||||
<source>Installation</source>
|
||||
<target>Anläggning</target>
|
||||
</phrase>
|
||||
<phrase>
|
||||
<source>Localisation</source>
|
||||
<target>Placering</target>
|
||||
</phrase>
|
||||
<phrase>
|
||||
<source>Reports de folio</source>
|
||||
<target>Bladhänvisningar</target>
|
||||
</phrase>
|
||||
<phrase>
|
||||
<source>Report de folio</source>
|
||||
<target>Bladhänvisning</target>
|
||||
</phrase>
|
||||
<phrase>
|
||||
<source>Centre</source>
|
||||
<target>Mitten</target>
|
||||
<definition>Vid textjustering</definition>
|
||||
</phrase>
|
||||
<phrase>
|
||||
<source>Collage multiple</source>
|
||||
<target>Klistra in flera</target>
|
||||
</phrase>
|
||||
<phrase>
|
||||
<source>Remplacer</source>
|
||||
<target>Ersätt</target>
|
||||
</phrase>
|
||||
<phrase>
|
||||
<source>Élément</source>
|
||||
<target>Symbol</target>
|
||||
<definition>Vid referens av symbol</definition>
|
||||
</phrase>
|
||||
<phrase>
|
||||
<source>À</source>
|
||||
<target>Till</target>
|
||||
</phrase>
|
||||
<phrase>
|
||||
<source>De</source>
|
||||
<target>Från</target>
|
||||
</phrase>
|
||||
<phrase>
|
||||
<source>Nomenclature</source>
|
||||
<target>Förteckning</target>
|
||||
</phrase>
|
||||
<phrase>
|
||||
<source>Position du folio</source>
|
||||
<target>Bladposition</target>
|
||||
</phrase>
|
||||
<phrase>
|
||||
<source>Polygone fermé</source>
|
||||
<target>Sluten polygon</target>
|
||||
</phrase>
|
||||
<phrase>
|
||||
<source>Dossier</source>
|
||||
<target>Mapp</target>
|
||||
</phrase>
|
||||
<phrase>
|
||||
<source>Que souhaitez-vous faire</source>
|
||||
<target>Vad vill du göra</target>
|
||||
</phrase>
|
||||
<phrase>
|
||||
<source>Collection</source>
|
||||
<target>Bibliotek</target>
|
||||
</phrase>
|
||||
<phrase>
|
||||
<source>Collection de cartouches</source>
|
||||
<target>Titelblockbibliotek</target>
|
||||
</phrase>
|
||||
<phrase>
|
||||
<source>Collection company de cartouches</source>
|
||||
<target>Organisationens titelblockbibliotek</target>
|
||||
</phrase>
|
||||
<phrase>
|
||||
<source>Champ texte</source>
|
||||
<target>Textfält</target>
|
||||
</phrase>
|
||||
<phrase>
|
||||
<source>Longueur</source>
|
||||
<target>Längd</target>
|
||||
</phrase>
|
||||
<phrase>
|
||||
<source>Suivant</source>
|
||||
<target>Nästa</target>
|
||||
</phrase>
|
||||
<phrase>
|
||||
<source>Suivant</source>
|
||||
<target>Följande</target>
|
||||
</phrase>
|
||||
<phrase>
|
||||
<source>Chiffre</source>
|
||||
<target>Siffra</target>
|
||||
</phrase>
|
||||
<phrase>
|
||||
<source>Tout cocher</source>
|
||||
<target>Markera allt</target>
|
||||
</phrase>
|
||||
<phrase>
|
||||
<source>Tout décocher</source>
|
||||
<target>Avmarkera allt</target>
|
||||
</phrase>
|
||||
<phrase>
|
||||
<source>Titre</source>
|
||||
<target>Titel</target>
|
||||
</phrase>
|
||||
<phrase>
|
||||
<source>Dimensions</source>
|
||||
<target>Dimensioner</target>
|
||||
</phrase>
|
||||
<phrase>
|
||||
<source>Dimensions</source>
|
||||
<target>Mått</target>
|
||||
</phrase>
|
||||
<phrase>
|
||||
<source>Aperçu</source>
|
||||
<target>Översikt</target>
|
||||
</phrase>
|
||||
<phrase>
|
||||
<source>Générique</source>
|
||||
<target>Generisk</target>
|
||||
</phrase>
|
||||
<phrase>
|
||||
<source>Sans</source>
|
||||
<target>Utan</target>
|
||||
</phrase>
|
||||
<phrase>
|
||||
<source>Avec</source>
|
||||
<target>Med</target>
|
||||
</phrase>
|
||||
<phrase>
|
||||
<source>Normal</source>
|
||||
<target>Normal</target>
|
||||
</phrase>
|
||||
<phrase>
|
||||
<source>Tiret</source>
|
||||
<target>Streckad</target>
|
||||
</phrase>
|
||||
<phrase>
|
||||
<source>Pointillé</source>
|
||||
<target>Punktad</target>
|
||||
</phrase>
|
||||
<phrase>
|
||||
<source>Remplissage</source>
|
||||
<target>Fyllning</target>
|
||||
</phrase>
|
||||
<phrase>
|
||||
<source>Apparence</source>
|
||||
<target>Utseende</target>
|
||||
</phrase>
|
||||
<phrase>
|
||||
<source>Contour</source>
|
||||
<target>Kontur</target>
|
||||
</phrase>
|
||||
<phrase>
|
||||
<source>Épaisseur</source>
|
||||
<target>Tjocklek</target>
|
||||
</phrase>
|
||||
<phrase>
|
||||
<source>Géométrie</source>
|
||||
<target>Geometri</target>
|
||||
</phrase>
|
||||
<phrase>
|
||||
<source>Par defaut</source>
|
||||
<target>Förinställt</target>
|
||||
</phrase>
|
||||
<phrase>
|
||||
<source>Parcourir</source>
|
||||
<target>Bläddra</target>
|
||||
</phrase>
|
||||
<phrase>
|
||||
<source>Général</source>
|
||||
<target>Allmänt</target>
|
||||
</phrase>
|
||||
<phrase>
|
||||
<source>Borne</source>
|
||||
<target>Plint</target>
|
||||
</phrase>
|
||||
<phrase>
|
||||
<source>Coller</source>
|
||||
<target>Klistra in</target>
|
||||
</phrase>
|
||||
<phrase>
|
||||
<source>Ouvrir</source>
|
||||
<target>Öppna</target>
|
||||
</phrase>
|
||||
<phrase>
|
||||
<source>Arc</source>
|
||||
<target>Båge</target>
|
||||
</phrase>
|
||||
<phrase>
|
||||
<source>Ellipse</source>
|
||||
<target>Ellips</target>
|
||||
</phrase>
|
||||
<phrase>
|
||||
<source>Ligne</source>
|
||||
<target>Linje</target>
|
||||
</phrase>
|
||||
<phrase>
|
||||
<source>Rectangle</source>
|
||||
<target>Rektangel</target>
|
||||
</phrase>
|
||||
<phrase>
|
||||
<source>Orientation</source>
|
||||
<target>Orientering</target>
|
||||
</phrase>
|
||||
<phrase>
|
||||
<source>Nord</source>
|
||||
<target>Nord</target>
|
||||
</phrase>
|
||||
<phrase>
|
||||
<source>Est</source>
|
||||
<target>Öst</target>
|
||||
</phrase>
|
||||
<phrase>
|
||||
<source>Sud</source>
|
||||
<target>Syd</target>
|
||||
</phrase>
|
||||
<phrase>
|
||||
<source>Ouest</source>
|
||||
<target>Väst</target>
|
||||
</phrase>
|
||||
<phrase>
|
||||
<source>Police</source>
|
||||
<target>Typsnitt</target>
|
||||
</phrase>
|
||||
<phrase>
|
||||
<source>Dimensions</source>
|
||||
<target>Storlek</target>
|
||||
</phrase>
|
||||
<phrase>
|
||||
<source>Sans titre</source>
|
||||
<target>Namnlös</target>
|
||||
</phrase>
|
||||
<phrase>
|
||||
<source>Borne</source>
|
||||
<target>Anslutning</target>
|
||||
</phrase>
|
||||
<phrase>
|
||||
<source>Sans titre</source>
|
||||
<target>Namnlöst</target>
|
||||
</phrase>
|
||||
<phrase>
|
||||
<source>Sans nom</source>
|
||||
<target>Namnlöst</target>
|
||||
</phrase>
|
||||
<phrase>
|
||||
<source>Décalage</source>
|
||||
<target>Förkjutning</target>
|
||||
</phrase>
|
||||
<phrase>
|
||||
<source>Afficher</source>
|
||||
<target>Visa</target>
|
||||
</phrase>
|
||||
<phrase>
|
||||
<source>Affichage</source>
|
||||
<target>Visning</target>
|
||||
</phrase>
|
||||
</QPH>
|
||||
Binary file not shown.
+331
-532
File diff suppressed because it is too large
Load Diff
Binary file not shown.
+331
-532
File diff suppressed because it is too large
Load Diff
Binary file not shown.
+553
-586
File diff suppressed because it is too large
Load Diff
Binary file not shown.
+332
-534
File diff suppressed because it is too large
Load Diff
Binary file not shown.
+167
-374
File diff suppressed because it is too large
Load Diff
Binary file not shown.
+332
-533
File diff suppressed because it is too large
Load Diff
Binary file not shown.
+168
-376
File diff suppressed because it is too large
Load Diff
Binary file not shown.
+331
-532
File diff suppressed because it is too large
Load Diff
Binary file not shown.
+332
-533
File diff suppressed because it is too large
Load Diff
Binary file not shown.
+331
-532
File diff suppressed because it is too large
Load Diff
Binary file not shown.
+332
-534
File diff suppressed because it is too large
Load Diff
Binary file not shown.
+332
-533
File diff suppressed because it is too large
Load Diff
Binary file not shown.
+331
-532
File diff suppressed because it is too large
Load Diff
Binary file not shown.
+331
-532
File diff suppressed because it is too large
Load Diff
Binary file not shown.
+331
-532
File diff suppressed because it is too large
Load Diff
Binary file not shown.
+332
-534
File diff suppressed because it is too large
Load Diff
Binary file not shown.
+332
-534
File diff suppressed because it is too large
Load Diff
Binary file not shown.
+404
-570
File diff suppressed because it is too large
Load Diff
Binary file not shown.
+331
-532
File diff suppressed because it is too large
Load Diff
Binary file not shown.
+332
-533
File diff suppressed because it is too large
Load Diff
Binary file not shown.
+331
-532
File diff suppressed because it is too large
Load Diff
Binary file not shown.
+332
-533
File diff suppressed because it is too large
Load Diff
+331
-532
File diff suppressed because it is too large
Load Diff
+331
-532
File diff suppressed because it is too large
Load Diff
+331
-532
File diff suppressed because it is too large
Load Diff
Binary file not shown.
+14418
File diff suppressed because it is too large
Load Diff
Binary file not shown.
+331
-532
File diff suppressed because it is too large
Load Diff
Binary file not shown.
+332
-533
File diff suppressed because it is too large
Load Diff
Binary file not shown.
+332
-533
File diff suppressed because it is too large
Load Diff
@@ -1,6 +1,6 @@
|
||||
[Desktop Entry]
|
||||
Version=1.0
|
||||
Name=QElectroTech
|
||||
Name=QElectroTech
|
||||
TryExec=qelectrotech
|
||||
Exec=qelectrotech %F
|
||||
Icon=qelectrotech
|
||||
@@ -10,7 +10,7 @@ MimeType=application/x-qet-project;application/x-qet-element;application/x-qet-t
|
||||
Categories=Graphics;Qt;VectorGraphics;Science;Electricity;Engineering;
|
||||
Keywords=Graphics;Science;Electricity;Engineering;
|
||||
Comment=Edit electrical diagrams.
|
||||
Comment[de]=Schaltpläne erstellen und bearbeiten.
|
||||
Comment[de]=Elektroschaltpläne erstellen und bearbeiten.
|
||||
Comment[fr]=Éditer des schémas électriques.
|
||||
Comment[ar]=تحرير مخططات كهربائية
|
||||
Comment[es]=Editar esquemas eléctricos
|
||||
@@ -26,6 +26,7 @@ Comment[nl]=Bewerken bedradingsdiagrammen.
|
||||
Comment[be]=Bewerken elektrisch schema.
|
||||
Comment[da]=Rediger elektriske diagrammer.
|
||||
Comment[ja]=電気回路図の編集。
|
||||
Comment[sk]=Úprava elektrických schém.
|
||||
GenericName=Electrical diagram editor
|
||||
GenericName[de]=Schaltplaneditor
|
||||
GenericName[fr]=Éditeur de schémas électriques
|
||||
@@ -42,3 +43,4 @@ GenericName[nl]=Elektrische schema editor
|
||||
GenericName[be]=Elektrische schema editor
|
||||
GenericName[da]=Elektrisk diagram redigering
|
||||
GenericName[ja]=電気回路図エディタ
|
||||
GenericName[sk]=Editor elektrických schém
|
||||
|
||||
@@ -49,6 +49,7 @@
|
||||
<file>ico/16x16/endline-none.png</file>
|
||||
<file>ico/16x16/endline-simple.png</file>
|
||||
<file>ico/16x16/endline-triangle.png</file>
|
||||
<file>ico/16x16/flip.png</file>
|
||||
<file>ico/16x16/folder-new.png</file>
|
||||
<file>ico/16x16/folder.png</file>
|
||||
<file>ico/16x16/go-company.png</file>
|
||||
@@ -60,6 +61,7 @@
|
||||
<file>ico/16x16/list-add.png</file>
|
||||
<file>ico/16x16/list-remove.png</file>
|
||||
<file>ico/16x16/masquer.png</file>
|
||||
<file>ico/16x16/mirror.png</file>
|
||||
<file>ico/16x16/neutral.png</file>
|
||||
<file>ico/16x16/north.png</file>
|
||||
<file>ico/16x16/orientations.png</file>
|
||||
|
||||
@@ -26,7 +26,8 @@
|
||||
#include "xmlprojectelementcollectionitem.h"
|
||||
|
||||
#include <QFutureWatcher>
|
||||
#include <QtConcurrent>
|
||||
#include <QtConcurrentMap>
|
||||
|
||||
|
||||
/**
|
||||
@brief ElementsCollectionModel::ElementsCollectionModel
|
||||
@@ -292,15 +293,9 @@ void ElementsCollectionModel::loadCollections(bool common_collection,
|
||||
&QFutureWatcher<void>::finished,
|
||||
watcher,
|
||||
&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);
|
||||
#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);
|
||||
}
|
||||
|
||||
|
||||
@@ -765,7 +765,7 @@ void ElementsCollectionWidget::search()
|
||||
}
|
||||
|
||||
//start the search when text have at least 3 letters.
|
||||
if (text.count() < 3) {
|
||||
if (text.length() < 3) {
|
||||
return;
|
||||
}
|
||||
|
||||
|
||||
@@ -805,15 +805,15 @@ bool ElementsLocation::setXml(const QDomDocument &xml_document) const
|
||||
qDebug() << "Help code for QT 6 or later";
|
||||
|
||||
QString path_ = collectionPath(false);
|
||||
QRegularExpression rx("^(.*)/(.*\\.elmt)$");
|
||||
|
||||
if (rx.exactMatch(path_))
|
||||
QRegularExpression rx(QRegularExpression::anchoredPattern("(.*)/(.*\\.elmt)"));
|
||||
QRegularExpressionMatch match = rx.match(path_);
|
||||
if (match.hasMatch())
|
||||
{
|
||||
return project()
|
||||
->embeddedElementCollection()
|
||||
->addElementDefinition(
|
||||
rx.cap(1),
|
||||
rx.cap(2),
|
||||
match.captured(1),
|
||||
match.captured(2),
|
||||
xml_document.documentElement());
|
||||
}
|
||||
else
|
||||
|
||||
@@ -17,6 +17,7 @@
|
||||
*/
|
||||
#include "terminalstripdrawer.h"
|
||||
#include <QPainter>
|
||||
#include <QHash>
|
||||
|
||||
namespace TerminalStripDrawer {
|
||||
|
||||
@@ -202,7 +203,7 @@ void TerminalStripDrawer::paint(QPainter *painter)
|
||||
painter->restore();
|
||||
|
||||
//Draw the bridges
|
||||
for (const auto &points_ : qAsConst(bridges_anchor_points))
|
||||
for (const auto &points_ : std::as_const(bridges_anchor_points))
|
||||
{
|
||||
painter->save();
|
||||
auto pen_{painter->pen()};
|
||||
|
||||
@@ -126,7 +126,7 @@ void RemoveTerminalFromStripCommand::redo()
|
||||
if (m_strip)
|
||||
{
|
||||
QVector<QSharedPointer<RealTerminal>> real_t;
|
||||
for (const auto &real_t_vector : qAsConst(m_terminals)) {
|
||||
for (const auto &real_t_vector : std::as_const(m_terminals)) {
|
||||
real_t.append(real_t_vector);
|
||||
}
|
||||
|
||||
|
||||
@@ -68,7 +68,7 @@ void UnGroupTerminalsCommand::undo()
|
||||
m_terminal_strip->groupTerminals(key, m_physical_real_H.value(key));
|
||||
}
|
||||
//Second, set level.
|
||||
for (const auto &pair : qAsConst(m_real_t_level)) {
|
||||
for (const auto &pair : std::as_const(m_real_t_level)) {
|
||||
m_terminal_strip->setLevel(pair.first, pair.second);
|
||||
}
|
||||
}
|
||||
@@ -78,7 +78,7 @@ void UnGroupTerminalsCommand::redo()
|
||||
{
|
||||
if (m_terminal_strip)
|
||||
{
|
||||
for (const auto &value : qAsConst(m_physical_real_H)) {
|
||||
for (const auto &value : std::as_const(m_physical_real_H)) {
|
||||
m_terminal_strip->unGroupTerminals(value);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -131,7 +131,7 @@ bool PhysicalTerminal::setLevelOf(const QSharedPointer<RealTerminal> &terminal,
|
||||
if (i >= 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((qsizetype)level, m_real_terminal.size()-1));
|
||||
#else
|
||||
auto j = std::min(level, m_real_terminal.size()-1);
|
||||
std::swap(m_real_terminal.begin()[i], m_real_terminal.begin()[j]);
|
||||
|
||||
@@ -250,7 +250,7 @@ bool TerminalStrip::addTerminal(Element *terminal)
|
||||
}
|
||||
}
|
||||
|
||||
if (terminal->elementData().m_type != ElementData::Terminale) {
|
||||
if (terminal->elementData().m_type != ElementData::Terminal) {
|
||||
return false;
|
||||
}
|
||||
|
||||
@@ -466,7 +466,7 @@ QSharedPointer<RealTerminal> TerminalStrip::realTerminalForUuid(const QUuid &uui
|
||||
QVector<QSharedPointer<RealTerminal>> TerminalStrip::realTerminals() const
|
||||
{
|
||||
QVector<QSharedPointer<RealTerminal>> vector_;
|
||||
for (const auto &phy : qAsConst(m_physical_terminals)) {
|
||||
for (const auto &phy : std::as_const(m_physical_terminals)) {
|
||||
vector_.append(phy->realTerminals());
|
||||
}
|
||||
return vector_;
|
||||
@@ -639,7 +639,7 @@ bool TerminalStrip::isBridgeable(const QVector<QSharedPointer<RealTerminal>> &re
|
||||
// Get the physical terminal and pos
|
||||
auto first_physical_terminal = first_real_terminal->physicalTerminal();
|
||||
QVector<shared_physical_terminal> physical_vector{first_physical_terminal};
|
||||
QVector<int> pos_vector{m_physical_terminals.indexOf(first_physical_terminal)};
|
||||
QVector<qsizetype> pos_vector{m_physical_terminals.indexOf(first_physical_terminal)};
|
||||
|
||||
auto bridge_ = isBridged(first_real_terminal);
|
||||
//bool to know at the end of this function if at least one terminal is not bridged
|
||||
@@ -856,7 +856,7 @@ QSharedPointer<TerminalStripBridge> TerminalStrip::isBridged(const QSharedPointe
|
||||
{
|
||||
if (real_terminal)
|
||||
{
|
||||
for (const auto &bridge_ : qAsConst(m_bridge)) {
|
||||
for (const auto &bridge_ : std::as_const(m_bridge)) {
|
||||
if (bridge_->realTerminals().contains(real_terminal))
|
||||
return bridge_;
|
||||
}
|
||||
@@ -983,7 +983,7 @@ QDomElement TerminalStrip::toXml(QDomDocument &parent_document)
|
||||
}
|
||||
root_elmt.appendChild(xml_layout);
|
||||
|
||||
for (const auto &bridge_ : qAsConst(m_bridge)) {
|
||||
for (const auto &bridge_ : std::as_const(m_bridge)) {
|
||||
root_elmt.appendChild(bridge_->toXml(parent_document));
|
||||
}
|
||||
|
||||
@@ -1024,7 +1024,7 @@ bool TerminalStrip::fromXml(QDomElement &xml_element)
|
||||
for (auto &xml_real : QETXML::findInDomElement(xml_physical, RealTerminal::xmlTagName()))
|
||||
{
|
||||
const auto uuid_ = QUuid(xml_real.attribute(QStringLiteral("element_uuid")));
|
||||
for (auto terminal_elmt : qAsConst(free_terminals))
|
||||
for (auto terminal_elmt : std::as_const(free_terminals))
|
||||
{
|
||||
if (terminal_elmt->uuid() == uuid_)
|
||||
{
|
||||
|
||||
@@ -85,7 +85,7 @@ QDomElement TerminalStripBridge::toXml(QDomDocument &parent_document) const
|
||||
root_elmt.setAttribute(QStringLiteral("color"), m_color.name());
|
||||
|
||||
auto terminals_elmt = parent_document.createElement(QStringLiteral("real_terminals"));
|
||||
for (const auto &real_t : qAsConst(m_real_terminals))
|
||||
for (const auto &real_t : std::as_const(m_real_terminals))
|
||||
{
|
||||
if (real_t)
|
||||
{
|
||||
@@ -106,7 +106,7 @@ void TerminalStripBridge::fromXml(const QDomElement &dom_element)
|
||||
}
|
||||
|
||||
m_uuid = QUuid(dom_element.attribute(QStringLiteral("uuid"), m_uuid.toString()));
|
||||
m_color.setNamedColor(dom_element.attribute(QStringLiteral("color")));
|
||||
m_color = QColor::fromString(dom_element.attribute(QStringLiteral("color")));
|
||||
|
||||
const auto real_t_vector = QETXML::subChild(dom_element,
|
||||
QStringLiteral("real_terminals"),
|
||||
|
||||
@@ -69,7 +69,7 @@
|
||||
</widget>
|
||||
</item>
|
||||
<item row="12" column="1" colspan="2">
|
||||
<widget class="KColorCombo" name="m_bridge_color_cb"/>
|
||||
<widget class="ColorComboBox" name="m_bridge_color_cb"/>
|
||||
</item>
|
||||
<item row="5" column="0">
|
||||
<widget class="QLabel" name="label_6">
|
||||
@@ -323,9 +323,9 @@
|
||||
</widget>
|
||||
<customwidgets>
|
||||
<customwidget>
|
||||
<class>KColorCombo</class>
|
||||
<class>ColorComboBox</class>
|
||||
<extends>QComboBox</extends>
|
||||
<header>kcolorcombo.h</header>
|
||||
<header>../../colorcombobox.h</header>
|
||||
</customwidget>
|
||||
</customwidgets>
|
||||
<resources>
|
||||
|
||||
@@ -535,7 +535,7 @@ modelRealTerminalData TerminalStripModel::dataAtRow(int row) const
|
||||
else
|
||||
{
|
||||
auto current_row = 0;
|
||||
for (const auto &physical_data : qAsConst(m_physical_data))
|
||||
for (const auto &physical_data : std::as_const(m_physical_data))
|
||||
{
|
||||
for (const auto &real_data : physical_data.real_data)
|
||||
{
|
||||
@@ -567,7 +567,7 @@ void TerminalStripModel::replaceDataAtRow(modelRealTerminalData data, int row)
|
||||
auto current_row = 0;
|
||||
auto current_physical = 0;
|
||||
|
||||
for (const auto &physical_data : qAsConst(m_physical_data))
|
||||
for (const auto &physical_data : std::as_const(m_physical_data))
|
||||
{
|
||||
auto current_real = 0;
|
||||
for (int i=0 ; i<physical_data.real_data.count() ; ++i)
|
||||
@@ -606,7 +606,7 @@ modelPhysicalTerminalData TerminalStripModel::physicalDataAtIndex(int index) con
|
||||
int current_phy = -1;
|
||||
bool match_ = false;
|
||||
|
||||
for (const auto &ptd_ : qAsConst(m_physical_data))
|
||||
for (const auto &ptd_ : std::as_const(m_physical_data))
|
||||
{
|
||||
current_checked_index += ptd_.real_data.size();
|
||||
++current_phy;
|
||||
@@ -637,9 +637,9 @@ modelRealTerminalData TerminalStripModel::realDataAtIndex(int index) const
|
||||
|
||||
int current_checked_index = -1;
|
||||
|
||||
for (const auto & ptd_ : qAsConst(m_physical_data))
|
||||
for (const auto & ptd_ : std::as_const(m_physical_data))
|
||||
{
|
||||
for (const auto & rtd_ : qAsConst(ptd_.real_data)) {
|
||||
for (const auto & rtd_ : std::as_const(ptd_.real_data)) {
|
||||
++current_checked_index;
|
||||
if (current_checked_index == index) {
|
||||
return rtd_;
|
||||
|
||||
@@ -29,12 +29,12 @@
|
||||
#include "modelTerminalData.h"
|
||||
|
||||
//Code to use QColor as key for QHash
|
||||
inline uint qHash(const QColor &key, uint seed) {
|
||||
inline size_t qHash(const QColor &key, size_t seed) {
|
||||
return qHash(key.name(), seed);
|
||||
}
|
||||
|
||||
//needed to use QPointer<Element> as key of QHash
|
||||
inline uint qHash(const QPointer<Element> &key, uint seed) {
|
||||
inline size_t qHash(const QPointer<Element> &key, size_t seed) {
|
||||
if (key)
|
||||
return qHash(key->uuid(), seed);
|
||||
else
|
||||
|
||||
@@ -60,7 +60,7 @@ void TerminalStripTreeDockWidget::reload()
|
||||
m_uuid_terminal_H.clear();
|
||||
m_uuid_strip_H.clear();
|
||||
|
||||
for (const auto &connection_ : qAsConst(m_strip_changed_connection)) {
|
||||
for (const auto &connection_ : std::as_const(m_strip_changed_connection)) {
|
||||
disconnect(connection_);
|
||||
}
|
||||
m_strip_changed_connection.clear();
|
||||
@@ -222,7 +222,7 @@ void TerminalStripTreeDockWidget::buildTree()
|
||||
return a->name() < b->name();
|
||||
});
|
||||
|
||||
for (const auto &ts : qAsConst(ts_vector)) {
|
||||
for (const auto &ts : std::as_const(ts_vector)) {
|
||||
addTerminalStrip(ts);
|
||||
}
|
||||
addFreeTerminal();
|
||||
@@ -324,7 +324,7 @@ void TerminalStripTreeDockWidget::addFreeTerminal()
|
||||
|
||||
auto free_terminal_item = ui->m_tree_view->topLevelItem(1);
|
||||
|
||||
for (const auto terminal : qAsConst(vector_))
|
||||
for (const auto terminal : std::as_const(vector_))
|
||||
{
|
||||
QUuid uuid_ = terminal->uuid();
|
||||
QStringList strl{terminal->actualLabel()};
|
||||
|
||||
@@ -20,6 +20,7 @@
|
||||
#include "../diagram.h"
|
||||
#include "../diagramposition.h"
|
||||
#include "../qetapp.h"
|
||||
#include "../qetgraphicsitem/conductor.h"
|
||||
#include "../qetgraphicsitem/element.h"
|
||||
#include "../qetxml.h"
|
||||
|
||||
@@ -189,12 +190,14 @@ namespace autonum
|
||||
QString AssignVariables::formulaToLabel(QString formula,
|
||||
sequentialNumbers &seqStruct,
|
||||
Diagram *diagram,
|
||||
const Element *elmt)
|
||||
const Element *elmt,
|
||||
const Conductor *cndr)
|
||||
{
|
||||
AssignVariables av(std::move(formula),
|
||||
seqStruct,
|
||||
diagram,
|
||||
elmt);
|
||||
elmt,
|
||||
cndr);
|
||||
seqStruct = av.m_seq_struct;
|
||||
return av.m_assigned_label;
|
||||
}
|
||||
@@ -301,13 +304,14 @@ namespace autonum
|
||||
AssignVariables::AssignVariables(const QString& formula,
|
||||
const sequentialNumbers& seqStruct,
|
||||
Diagram *diagram,
|
||||
const Element *elmt):
|
||||
const Element *elmt,
|
||||
const Conductor *cndr):
|
||||
m_diagram(diagram),
|
||||
m_arg_formula(formula),
|
||||
m_assigned_label(formula),
|
||||
m_seq_struct(seqStruct),
|
||||
m_element(elmt)
|
||||
|
||||
m_element(elmt),
|
||||
m_conductor(cndr)
|
||||
{
|
||||
if (m_diagram)
|
||||
{
|
||||
@@ -349,6 +353,14 @@ namespace autonum
|
||||
m_assigned_label.replace("%prefix", m_element->getPrefix());
|
||||
}
|
||||
|
||||
if (m_conductor)
|
||||
{
|
||||
m_assigned_label.replace("%wf", cndr->properties().m_function);
|
||||
m_assigned_label.replace("%wv", cndr->properties().m_tension_protocol);
|
||||
m_assigned_label.replace("%wc", cndr->properties().m_wire_color);
|
||||
m_assigned_label.replace("%ws", cndr->properties().m_wire_section);
|
||||
}
|
||||
|
||||
assignTitleBlockVar();
|
||||
assignProjectVar();
|
||||
assignSequence();
|
||||
|
||||
@@ -24,6 +24,7 @@
|
||||
#include <QString>
|
||||
#include <QStringList>
|
||||
|
||||
class Conductor;
|
||||
class Diagram;
|
||||
class Element;
|
||||
class ElementsLocation;
|
||||
@@ -61,12 +62,12 @@ namespace autonum
|
||||
class AssignVariables
|
||||
{
|
||||
public:
|
||||
static QString formulaToLabel (QString formula, sequentialNumbers &seqStruct, Diagram *diagram, const Element *elmt = nullptr);
|
||||
static QString formulaToLabel (QString formula, sequentialNumbers &seqStruct, Diagram *diagram, const Element *elmt = nullptr, const Conductor *cndr = nullptr);
|
||||
static QString replaceVariable (const QString &formula, const DiagramContext &dc);
|
||||
static QString genericXref (const Element *element);
|
||||
|
||||
private:
|
||||
AssignVariables(const QString& formula, const sequentialNumbers& seqStruct , Diagram *diagram, const Element *elmt = nullptr);
|
||||
AssignVariables(const QString& formula, const sequentialNumbers& seqStruct , Diagram *diagram, const Element *elmt = nullptr, const Conductor *cndr = nullptr);
|
||||
void assignTitleBlockVar();
|
||||
void assignProjectVar();
|
||||
void assignSequence();
|
||||
@@ -76,6 +77,7 @@ namespace autonum
|
||||
QString m_assigned_label;
|
||||
sequentialNumbers m_seq_struct;
|
||||
const Element *m_element = nullptr;
|
||||
const Conductor *m_conductor = nullptr;
|
||||
};
|
||||
|
||||
void setSequentialToList(QStringList &list, NumerotationContext &nc, const QString& type);
|
||||
|
||||
@@ -57,9 +57,9 @@ bool NumerotationContext::addValue(const QString &type,
|
||||
const QVariant &value,
|
||||
const int increase,
|
||||
const int initialvalue) {
|
||||
if (!keyIsAcceptable(type) && !value.canConvert(QVariant::String))
|
||||
if (!keyIsAcceptable(type) && !value.canConvert<QString>())
|
||||
return false;
|
||||
if (keyIsNumber(type) && !value.canConvert(QVariant::Int))
|
||||
if (keyIsNumber(type) && !value.canConvert<int>())
|
||||
return false;
|
||||
|
||||
QString valuestr = value.toString();
|
||||
|
||||
@@ -151,7 +151,7 @@ void AutoNumberingDockWidget::setProject(QETProject *project,
|
||||
//Set Combobox Context
|
||||
setContext();
|
||||
|
||||
ui->m_configure_pb->setShortcut(QKeySequence( tr("Ctrl+Shift+P")));
|
||||
ui->m_configure_pb->setShortcut(Qt::CTRL | Qt::SHIFT | Qt::Key_P);
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
@@ -55,11 +55,8 @@ BorderTitleBlock::BorderTitleBlock(QObject *parent) :
|
||||
m_titleblock_template_renderer = new TitleBlockTemplateRenderer(this);
|
||||
m_titleblock_template_renderer -> setTitleBlockTemplate(QETApp::defaultTitleBlockTemplate());
|
||||
|
||||
// disable the QPicture-based cache from Qt 4.8 to avoid rendering errors and crashes
|
||||
#if QT_VERSION < QT_VERSION_CHECK(4, 8, 0) // ### Qt 6: remove
|
||||
#else
|
||||
// disable the QPicture-based cache to avoid rendering errors and crashes
|
||||
m_titleblock_template_renderer -> setUseCache(false);
|
||||
#endif
|
||||
|
||||
// dimensions par defaut du schema
|
||||
importBorder(BorderProperties());
|
||||
@@ -239,7 +236,8 @@ void BorderTitleBlock::borderToXml(QDomElement &xml_elmt) {
|
||||
xml_elmt.setAttribute("displayrows", rowsAreDisplayed() ? "true" : "false");
|
||||
|
||||
// attribut datant de la version 0.1 - laisse pour retrocompatibilite
|
||||
xml_elmt.setAttribute("height", QString("%1").arg(diagramHeight()));
|
||||
// attribute from version 0.1 - leave for backwards-compatibility
|
||||
xml_elmt.setAttribute("height", QString("%1").arg(diagramHeight()));
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -941,22 +939,15 @@ QString BorderTitleBlock::incrementLetters(const QString &string) {
|
||||
} else {
|
||||
// separate previous digits from last digit
|
||||
// separe les digits precedents du dernier digit
|
||||
QString first_digits(string.left(string.count() - 1));
|
||||
QChar last_digit(string.at(string.count() - 1));
|
||||
QString first_digits(string.left(string.length() - 1));
|
||||
char last_digit(string.at(string.length() - 1).unicode());
|
||||
if (last_digit != 'Z') {
|
||||
// increments the last digit
|
||||
// incremente le dernier digit
|
||||
#if QT_VERSION < QT_VERSION_CHECK(6, 0, 0) // ### Qt 6: remove
|
||||
last_digit = last_digit.toLatin1() + 1;
|
||||
#else
|
||||
# if TODO_LIST
|
||||
# pragma message("@TODO remove code for QT 6 or later")
|
||||
# endif
|
||||
qDebug() << "Help code for QT 6 or later";
|
||||
#endif
|
||||
last_digit = (char)(string[string.length()-1].unicode()) + 1;
|
||||
return(first_digits + QString(last_digit));
|
||||
} else {
|
||||
return(incrementLetters(first_digits) + "A");
|
||||
return(incrementLetters(first_digits) % "A");
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -0,0 +1,90 @@
|
||||
/*
|
||||
Copyright 2006-2025 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/>.
|
||||
*/
|
||||
#include "colorbutton.h"
|
||||
|
||||
#include <QColorDialog>
|
||||
#include <QPainter>
|
||||
|
||||
/**
|
||||
@brief ColorButton::ColorButton
|
||||
Simple constructor
|
||||
@param parent QObject parent of the ColorButton
|
||||
*/
|
||||
ColorButton::ColorButton(QWidget *parent) : QPushButton(parent)
|
||||
{
|
||||
connect(this, &QPushButton::clicked, this, &ColorButton::clicked);
|
||||
}
|
||||
|
||||
/**
|
||||
@brief Getter for current color
|
||||
@return The current selected color
|
||||
*/
|
||||
const QColor ColorButton::color()
|
||||
{
|
||||
return m_color;
|
||||
}
|
||||
|
||||
/**
|
||||
@brief Setter for current color
|
||||
*/
|
||||
void ColorButton::setColor(const QColor &color)
|
||||
{
|
||||
m_color = color;
|
||||
update();
|
||||
}
|
||||
|
||||
/**
|
||||
@brief ColorButton::clicked
|
||||
Opens a color selection dialog and lets the user select a color.
|
||||
@param checked Not used
|
||||
*/
|
||||
void ColorButton::clicked(bool checked)
|
||||
{
|
||||
// Open color selection dialog
|
||||
auto new_color = QColorDialog::getColor(m_color, this, tr("Select color"), QColorDialog::DontUseNativeDialog);
|
||||
|
||||
// Validate user input
|
||||
if (new_color.isValid()) {
|
||||
m_color = new_color;
|
||||
emit changed(new_color);
|
||||
update();
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
@brief ColorButton::paintEvent
|
||||
Paints a filled rectangle with the current selected color on the button surface.
|
||||
@param e Paint event context
|
||||
*/
|
||||
void ColorButton::paintEvent(QPaintEvent *e) {
|
||||
QPushButton::paintEvent(e);
|
||||
|
||||
// Padding for the color indicator
|
||||
const int padding_x = 5;
|
||||
const int padding_y = 5;
|
||||
|
||||
QPainter painter(this);
|
||||
|
||||
// Get dimensions of the button paint surface
|
||||
auto r_width = painter.device()->width();
|
||||
auto r_height = painter.device()->height();
|
||||
|
||||
// Paint a rectangle with a margin of 5
|
||||
auto color_indicator = QRect(padding_x, padding_y, r_width - padding_x * 2, r_height - padding_y * 2);
|
||||
painter.fillRect(color_indicator, m_color);
|
||||
}
|
||||
@@ -0,0 +1,53 @@
|
||||
/*
|
||||
Copyright 2006-2025 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/>.
|
||||
*/
|
||||
#ifndef COLORBUTTON_H
|
||||
#define COLORBUTTON_H
|
||||
|
||||
#include <QColor>
|
||||
#include <QObject>
|
||||
#include <QPushButton>
|
||||
#include <Qt>
|
||||
|
||||
/**
|
||||
@brief The ColorButton class
|
||||
*/
|
||||
class ColorButton : public QPushButton
|
||||
{
|
||||
Q_OBJECT
|
||||
|
||||
public:
|
||||
ColorButton(QWidget * = nullptr);
|
||||
|
||||
const QColor color();
|
||||
void setColor(const QColor &);
|
||||
|
||||
public slots:
|
||||
void clicked(bool = false);
|
||||
|
||||
protected:
|
||||
void paintEvent(QPaintEvent *) override;
|
||||
|
||||
signals:
|
||||
void changed(const QColor &);
|
||||
|
||||
private:
|
||||
/// @brief Current selected color
|
||||
QColor m_color = Qt::black;
|
||||
};
|
||||
|
||||
#endif
|
||||
@@ -0,0 +1,98 @@
|
||||
/*
|
||||
Copyright 2006-2025 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/>.
|
||||
*/
|
||||
#include "colorcombobox.h"
|
||||
|
||||
#include "colorcomboboxdelegate.h"
|
||||
|
||||
#include <QColorDialog>
|
||||
#include <QPainter>
|
||||
#include <QStylePainter>
|
||||
#include <Qt>
|
||||
|
||||
|
||||
/**
|
||||
@brief ColorComboBox::ColorComboBox
|
||||
Simple constructor
|
||||
@param parent QObject parent of the ColorComboBox
|
||||
*/
|
||||
ColorComboBox::ColorComboBox(QWidget *parent) : QComboBox(parent)
|
||||
{
|
||||
connect(this, &QComboBox::activated, this, &ColorComboBox::colorSelected);
|
||||
setItemDelegate(new ColorComboBoxDelegate());
|
||||
}
|
||||
|
||||
/**
|
||||
@brief ColorComboBox::setColors
|
||||
Sets the colors of the combo box. An item at the top will be added to allow selection
|
||||
of a custom color.
|
||||
@param colors Vector of colors to add to the combo box
|
||||
*/
|
||||
void ColorComboBox::setColors(const QVector<QColor> &colors)
|
||||
{
|
||||
addItem(tr("[Custom color...]"), QColor(Qt::black));
|
||||
for(auto &color : colors) {
|
||||
addItem(color.name(), color);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
@brief ColorComboBox::colorSelected
|
||||
Opens a color selection dialog and lets the user select a color.
|
||||
@param checked Not used
|
||||
*/
|
||||
void ColorComboBox::colorSelected(int index)
|
||||
{
|
||||
if (index == 0) {
|
||||
// Open color selection dialog if custom color is selected
|
||||
auto new_color = QColorDialog::getColor(itemData(index).value<QColor>(), this, tr("Select color"), QColorDialog::DontUseNativeDialog);
|
||||
|
||||
// Validate and emit user input color
|
||||
if (new_color.isValid()) {
|
||||
setItemData(index, new_color);
|
||||
emit activated(new_color);
|
||||
}
|
||||
} else {
|
||||
// Emit color from selected combo box row
|
||||
emit activated(itemData(index).value<QColor>());
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
@brief ColorComboBox::paintEvent
|
||||
Paints a filled rectangle with the current selected color on the combo box surface.
|
||||
@param e Paint event context
|
||||
*/
|
||||
void ColorComboBox::paintEvent(QPaintEvent *e) {
|
||||
// Padding for the color indicator
|
||||
const int padding_x = 5;
|
||||
const int padding_y = 5;
|
||||
|
||||
// Create painter and draw a vanilla combobox
|
||||
QStylePainter painter(this);
|
||||
QStyleOptionComboBox opt;
|
||||
initStyleOption(&opt);
|
||||
painter.drawComplexControl(QStyle::CC_ComboBox, opt);
|
||||
|
||||
// Get dimensions of the combo box paint surface
|
||||
auto r_width = painter.device()->width();
|
||||
auto r_height = painter.device()->height();
|
||||
|
||||
// Paint a rectangle with a margin
|
||||
auto color_indicator = QRect(padding_x, padding_y, r_width - padding_x * 2, r_height - padding_y * 2);
|
||||
painter.fillRect(color_indicator, itemData(currentIndex()).value<QColor>());
|
||||
}
|
||||
@@ -0,0 +1,49 @@
|
||||
/*
|
||||
Copyright 2006-2025 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/>.
|
||||
*/
|
||||
#ifndef COLORCOMBOBOX_H
|
||||
#define COLORCOMBOBOX_H
|
||||
|
||||
#include <QColor>
|
||||
#include <QObject>
|
||||
#include <QComboBox>
|
||||
#include <QVector>
|
||||
#include <Qt>
|
||||
|
||||
/**
|
||||
@brief The ColorComboBox class
|
||||
*/
|
||||
class ColorComboBox : public QComboBox
|
||||
{
|
||||
Q_OBJECT
|
||||
|
||||
public:
|
||||
ColorComboBox(QWidget * = nullptr);
|
||||
|
||||
void setColors(const QVector<QColor> &);
|
||||
|
||||
public slots:
|
||||
void colorSelected(int);
|
||||
|
||||
protected:
|
||||
void paintEvent(QPaintEvent *) override;
|
||||
|
||||
signals:
|
||||
void activated(const QColor &);
|
||||
};
|
||||
|
||||
#endif
|
||||
@@ -0,0 +1,62 @@
|
||||
/*
|
||||
Copyright 2006-2025 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/>.
|
||||
*/
|
||||
#include "colorcomboboxdelegate.h"
|
||||
|
||||
#include <QColor>
|
||||
#include <QPainter>
|
||||
#include <QPalette>
|
||||
#include <QtDebug>
|
||||
|
||||
/**
|
||||
@brief ColorComboBoxDelegate::paint
|
||||
Paints a filled rectangle on the drop down item with the items color.
|
||||
@param painter Painter context
|
||||
@param option Style options
|
||||
@param index Index of the item to paint
|
||||
|
||||
*/
|
||||
void ColorComboBoxDelegate::paint(QPainter *painter, const QStyleOptionViewItem &option, const QModelIndex &index) const
|
||||
{
|
||||
// Padding for the color indicator
|
||||
const int padding_x = 5;
|
||||
const int padding_y = 2;
|
||||
|
||||
painter->save();
|
||||
|
||||
if (index.row() > 0)
|
||||
{
|
||||
auto rect = option.rect;
|
||||
|
||||
// Draw mouseover background
|
||||
if (option.state & QStyle::State_MouseOver)
|
||||
{
|
||||
auto pal = option.widget->palette();
|
||||
painter->fillRect(rect, pal.color(QPalette::Highlight));
|
||||
}
|
||||
|
||||
// Draw color indicator rectangle
|
||||
auto color = qvariant_cast<QColor>(index.data());
|
||||
rect.adjust(padding_x, padding_y, -padding_x, -padding_y);
|
||||
painter->fillRect(rect, color);
|
||||
} else {
|
||||
// Draw a normal drop down item for custom color
|
||||
QStyledItemDelegate::paint(painter, option, index);
|
||||
}
|
||||
|
||||
painter->restore();
|
||||
}
|
||||
@@ -0,0 +1,35 @@
|
||||
/*
|
||||
Copyright 2006-2025 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/>.
|
||||
*/
|
||||
#ifndef COLORCOMBOBOXDELEGATE_H
|
||||
#define COLORCOMBOBOXDELEGATE_H
|
||||
|
||||
#include <QStyledItemDelegate>
|
||||
|
||||
/**
|
||||
@brief The ColorComboBoxDelegate class
|
||||
Handles drawing of items in the drop down list of ColorComboBox.
|
||||
*/
|
||||
class ColorComboBoxDelegate : public QStyledItemDelegate
|
||||
{
|
||||
Q_OBJECT
|
||||
|
||||
public:
|
||||
void paint(QPainter *, const QStyleOptionViewItem &, const QModelIndex &) const override;
|
||||
};
|
||||
|
||||
#endif
|
||||
@@ -72,14 +72,7 @@ bool ConductorNumExport::toCsv()
|
||||
if (file.open(QIODevice::WriteOnly | QIODevice::Text))
|
||||
{
|
||||
QTextStream stream(&file);
|
||||
#if QT_VERSION < QT_VERSION_CHECK(5, 15, 0) // ### Qt 6: remove
|
||||
stream << wiresNum() << endl;
|
||||
#else
|
||||
#if TODO_LIST
|
||||
#pragma message("@TODO remove code for QT 5.15 or later")
|
||||
#endif
|
||||
stream << wiresNum() << &Qt::endl(stream);
|
||||
#endif
|
||||
}
|
||||
else {
|
||||
return false;
|
||||
|
||||
@@ -376,31 +376,31 @@ void ConductorProperties::fromXml(QDomElement &e)
|
||||
*/
|
||||
void ConductorProperties::toSettings(QSettings &settings, const QString &prefix) const
|
||||
{
|
||||
settings.setValue(prefix + "color", color.name());
|
||||
settings.setValue(prefix + "bicolor", m_bicolor);
|
||||
settings.setValue(prefix + "color2", m_color_2.name());
|
||||
settings.setValue(prefix + "dash-size", m_dash_size);
|
||||
settings.setValue(prefix + "style", writeStyle());
|
||||
settings.setValue(prefix + "type", typeToString(type));
|
||||
settings.setValue(prefix + "text", text);
|
||||
settings.setValue(prefix + "text_color", text_color.name());
|
||||
settings.setValue(prefix + "formula", m_formula);
|
||||
settings.setValue(prefix + "cable", m_cable);
|
||||
settings.setValue(prefix + "bus", m_bus);
|
||||
settings.setValue(prefix + "function", m_function);
|
||||
settings.setValue(prefix + "tension_protocol", m_tension_protocol);
|
||||
settings.setValue(prefix + "conductor_color", m_wire_color);
|
||||
settings.setValue(prefix + "conductor_section", m_wire_section);
|
||||
settings.setValue(prefix + "textsize", QString::number(text_size));
|
||||
settings.setValue(prefix + "size", QString::number(cond_size));
|
||||
settings.setValue(prefix + "displaytext", m_show_text);
|
||||
settings.setValue(prefix + "onetextperfolio", m_one_text_per_folio);
|
||||
settings.setValue(prefix + "vertirotatetext", QString::number(verti_rotate_text));
|
||||
settings.setValue(prefix + "horizrotatetext", QString::number(horiz_rotate_text));
|
||||
settings.setValue(prefix % "color", color.name());
|
||||
settings.setValue(prefix % "bicolor", m_bicolor);
|
||||
settings.setValue(prefix % "color2", m_color_2.name());
|
||||
settings.setValue(prefix % "dash-size", m_dash_size);
|
||||
settings.setValue(prefix % "style", writeStyle());
|
||||
settings.setValue(prefix % "type", typeToString(type));
|
||||
settings.setValue(prefix % "text", text);
|
||||
settings.setValue(prefix % "text_color", text_color.name());
|
||||
settings.setValue(prefix % "formula", m_formula);
|
||||
settings.setValue(prefix % "cable", m_cable);
|
||||
settings.setValue(prefix % "bus", m_bus);
|
||||
settings.setValue(prefix % "function", m_function);
|
||||
settings.setValue(prefix % "tension_protocol", m_tension_protocol);
|
||||
settings.setValue(prefix % "conductor_color", m_wire_color);
|
||||
settings.setValue(prefix % "conductor_section", m_wire_section);
|
||||
settings.setValue(prefix % "textsize", QString::number(text_size));
|
||||
settings.setValue(prefix % "size", QString::number(cond_size));
|
||||
settings.setValue(prefix % "displaytext", m_show_text);
|
||||
settings.setValue(prefix % "onetextperfolio", m_one_text_per_folio);
|
||||
settings.setValue(prefix % "vertirotatetext", QString::number(verti_rotate_text));
|
||||
settings.setValue(prefix % "horizrotatetext", QString::number(horiz_rotate_text));
|
||||
|
||||
QMetaEnum me = QMetaEnum::fromType<Qt::Alignment>();
|
||||
settings.setValue(prefix + "horizontal-alignment", me.valueToKey(m_horizontal_alignment));
|
||||
settings.setValue(prefix + "vertical-alignment", me.valueToKey(m_vertical_alignment));
|
||||
settings.setValue(prefix % "horizontal-alignment", me.valueToKey(m_horizontal_alignment));
|
||||
settings.setValue(prefix % "vertical-alignment", me.valueToKey(m_vertical_alignment));
|
||||
|
||||
singleLineProperties.toSettings(settings, prefix);
|
||||
}
|
||||
@@ -417,36 +417,36 @@ void ConductorProperties::fromSettings(QSettings &settings, const QString &prefi
|
||||
QColor settings_color_2 = QColor(settings.value(prefix + "color2").toString());
|
||||
m_color_2 = (settings_color_2.isValid()? settings_color_2 : QColor(Qt::black));
|
||||
|
||||
m_bicolor = settings.value(prefix + "bicolor", false).toBool();
|
||||
m_dash_size = settings.value(prefix + "dash-size", 1).toInt();
|
||||
m_bicolor = settings.value(prefix % "bicolor", false).toBool();
|
||||
m_dash_size = settings.value(prefix % "dash-size", 1).toInt();
|
||||
|
||||
QString setting_type = settings.value(prefix + "type", typeToString(Multi)).toString();
|
||||
QString setting_type = settings.value(prefix % "type", typeToString(Multi)).toString();
|
||||
type = (setting_type == typeToString(Single)? Single : Multi);
|
||||
|
||||
singleLineProperties.fromSettings(settings, prefix);
|
||||
|
||||
text = settings.value(prefix + "text", "_").toString();
|
||||
QColor settings_text_color = QColor(settings.value(prefix + "text_color").toString());
|
||||
text = settings.value(prefix % "text", "_").toString();
|
||||
QColor settings_text_color = QColor(settings.value(prefix % "text_color").toString());
|
||||
text_color = (settings_text_color.isValid()? settings_text_color : QColor(Qt::black));
|
||||
m_formula = settings.value(prefix + "formula", "").toString();
|
||||
m_cable = settings.value(prefix + "cable", "").toString();
|
||||
m_bus = settings.value(prefix + "bus", "").toString();
|
||||
m_function = settings.value(prefix + "function", "").toString();
|
||||
m_tension_protocol = settings.value(prefix + "tension_protocol", "").toString();
|
||||
m_wire_color = settings.value(prefix + "conductor_color", "").toString();
|
||||
m_wire_section = settings.value(prefix + "conductor_section", "").toString();
|
||||
text_size = settings.value(prefix + "textsize", "7").toInt();
|
||||
cond_size = settings.value(prefix + "size", "1").toInt();
|
||||
m_show_text = settings.value(prefix + "displaytext", true).toBool();
|
||||
m_one_text_per_folio = settings.value(prefix + "onetextperfolio", false).toBool();
|
||||
verti_rotate_text = settings.value((prefix + "vertirotatetext"), "270").toDouble();
|
||||
horiz_rotate_text = settings.value((prefix + "horizrotatetext"), "0").toDouble();
|
||||
m_formula = settings.value(prefix % "formula", "").toString();
|
||||
m_cable = settings.value(prefix % "cable", "").toString();
|
||||
m_bus = settings.value(prefix % "bus", "").toString();
|
||||
m_function = settings.value(prefix % "function", "").toString();
|
||||
m_tension_protocol = settings.value(prefix % "tension_protocol", "").toString();
|
||||
m_wire_color = settings.value(prefix % "conductor_color", "").toString();
|
||||
m_wire_section = settings.value(prefix % "conductor_section", "").toString();
|
||||
text_size = settings.value(prefix % "textsize", "7").toInt();
|
||||
cond_size = settings.value(prefix % "size", "1").toInt();
|
||||
m_show_text = settings.value(prefix % "displaytext", true).toBool();
|
||||
m_one_text_per_folio = settings.value(prefix % "onetextperfolio", false).toBool();
|
||||
verti_rotate_text = settings.value((prefix % "vertirotatetext"), "270").toDouble();
|
||||
horiz_rotate_text = settings.value((prefix % "horizrotatetext"), "0").toDouble();
|
||||
|
||||
QMetaEnum me = QMetaEnum::fromType<Qt::Alignment>();
|
||||
m_horizontal_alignment = Qt::Alignment(me.keyToValue(settings.value(prefix + "horizontal-alignment", "AlignBottom").toString().toStdString().data()));
|
||||
m_vertical_alignment = Qt::Alignment(me.keyToValue(settings.value(prefix + "vertical-alignment", "AlignRight").toString().toStdString().data()));
|
||||
m_horizontal_alignment = Qt::Alignment(me.keyToValue(settings.value(prefix % "horizontal-alignment", "AlignBottom").toString().toStdString().data()));
|
||||
m_vertical_alignment = Qt::Alignment(me.keyToValue(settings.value(prefix % "vertical-alignment", "AlignRight").toString().toStdString().data()));
|
||||
|
||||
readStyle(settings.value(prefix + "style").toString());
|
||||
readStyle(settings.value(prefix % "style").toString());
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -811,14 +811,7 @@ void ConductorProperties::readStyle(const QString &style_string) {
|
||||
if (style_string.isEmpty()) return;
|
||||
|
||||
// recupere la liste des couples style / valeur
|
||||
#if QT_VERSION < QT_VERSION_CHECK(5, 14, 0) // ### Qt 6: remove
|
||||
QStringList styles = style_string.split(";", QString::SkipEmptyParts);
|
||||
#else
|
||||
#if TODO_LIST
|
||||
#pragma message("@TODO remove code QString::SkipEmptyParts for QT 5.14 or later")
|
||||
#endif
|
||||
QStringList styles = style_string.split(";", Qt::SkipEmptyParts);
|
||||
#endif
|
||||
|
||||
QRegularExpression Rx("^(?<name>[a-z-]+): (?<value>[a-z-]+)$");
|
||||
if (!Rx.isValid())
|
||||
@@ -896,10 +889,10 @@ int SingleLineProperties::operator!=(const SingleLineProperties &other) const
|
||||
void SingleLineProperties::toSettings(QSettings &settings,
|
||||
const QString &prefix) const
|
||||
{
|
||||
settings.setValue(prefix + "hasGround", hasGround);
|
||||
settings.setValue(prefix + "hasNeutral", hasNeutral);
|
||||
settings.setValue(prefix + "phases", phases);
|
||||
settings.setValue(prefix + "pen", is_pen);
|
||||
settings.setValue(prefix % "hasGround", hasGround);
|
||||
settings.setValue(prefix % "hasNeutral", hasNeutral);
|
||||
settings.setValue(prefix % "phases", phases);
|
||||
settings.setValue(prefix % "pen", is_pen);
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -908,8 +901,8 @@ void SingleLineProperties::toSettings(QSettings &settings,
|
||||
*/
|
||||
void SingleLineProperties::fromSettings(QSettings &settings,
|
||||
const QString &prefix) {
|
||||
hasGround = settings.value(prefix + "hasGround", true).toBool();
|
||||
hasNeutral = settings.value(prefix + "hasNeutral", true).toBool();
|
||||
phases = settings.value(prefix + "phases", 1).toInt();
|
||||
is_pen = settings.value(prefix + "pen", false).toBool();
|
||||
hasGround = settings.value(prefix % "hasGround", true).toBool();
|
||||
hasNeutral = settings.value(prefix % "hasNeutral", true).toBool();
|
||||
phases = settings.value(prefix % "phases", 1).toInt();
|
||||
is_pen = settings.value(prefix % "pen", false).toBool();
|
||||
}
|
||||
|
||||
@@ -253,9 +253,11 @@ bool projectDataBase::createDataBase()
|
||||
return false;
|
||||
}
|
||||
|
||||
m_data_base.exec("PRAGMA temp_store = MEMORY");
|
||||
m_data_base.exec("PRAGMA journal_mode = MEMORY");
|
||||
m_data_base.exec("PRAGMA synchronous = OFF");
|
||||
QSqlQuery *temp_query = new QSqlQuery(m_data_base);
|
||||
temp_query->exec("PRAGMA temp_store = MEMORY");
|
||||
temp_query->exec("PRAGMA journal_mode = MEMORY");
|
||||
temp_query->exec("PRAGMA synchronous = OFF");
|
||||
delete temp_query;
|
||||
|
||||
QSqlQuery query_(m_data_base);
|
||||
bool first_ = true;
|
||||
@@ -398,6 +400,14 @@ void projectDataBase::createElementNomenclatureView()
|
||||
if (!query.exec(create_view)) {
|
||||
qDebug() << query.lastError();
|
||||
}
|
||||
|
||||
QSqlQuery query_version{m_data_base};
|
||||
query_version.exec("select sqlite_version();");
|
||||
query_version.next();
|
||||
QString version = query_version.value("sqlite_version()").toString();
|
||||
query_version.finish();
|
||||
|
||||
qInfo() << "SQLite version: " << version;
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -450,8 +460,8 @@ void projectDataBase::populateElementTable()
|
||||
for (auto diagram : m_project->diagrams())
|
||||
{
|
||||
const ElementProvider ep(diagram);
|
||||
const auto elmt_vector = ep.find(ElementData::Simple | ElementData::Terminale | ElementData::Master | ElementData::Thumbnail);
|
||||
//Insert all value into the database
|
||||
const auto elmt_vector = ep.find(ElementData::Simple | ElementData::Terminal | ElementData::Master | ElementData::Thumbnail);
|
||||
//Insert all values into the database
|
||||
for (const auto &elmt : elmt_vector)
|
||||
{
|
||||
const auto elmt_data = elmt->elementData();
|
||||
@@ -479,9 +489,9 @@ void projectDataBase::populateElementInfoTable()
|
||||
for (const auto &diagram : m_project->diagrams())
|
||||
{
|
||||
const ElementProvider ep(diagram);
|
||||
const auto elmt_vector = ep.find(ElementData::Simple | ElementData::Terminale | ElementData::Master | ElementData::Thumbnail);
|
||||
const auto elmt_vector = ep.find(ElementData::Simple | ElementData::Terminal | ElementData::Master | ElementData::Thumbnail);
|
||||
|
||||
//Insert all value into the database
|
||||
//Insert all values into the database
|
||||
for (const auto &elmt : elmt_vector)
|
||||
{
|
||||
m_insert_element_info_query.bindValue(QStringLiteral(":uuid"), elmt->uuid().toString());
|
||||
|
||||
@@ -171,7 +171,7 @@ void ElementQueryWidget::setQuery(const QString &query)
|
||||
if (ui->m_simple_cb->isChecked()) {
|
||||
++c;
|
||||
}
|
||||
ui->m_terminal_cb->setChecked (str_type.contains(ElementData::typeToString(ElementData::Terminale)) ? true : false);
|
||||
ui->m_terminal_cb->setChecked (str_type.contains(ElementData::typeToString(ElementData::Terminal)) ? true : false);
|
||||
if (ui->m_terminal_cb->isChecked()) {
|
||||
++c;
|
||||
}
|
||||
@@ -340,7 +340,7 @@ QString ElementQueryWidget::queryStr() const
|
||||
bool b = false;
|
||||
if (ui->m_terminal_cb->isChecked()) {
|
||||
if (b) where +=" OR";
|
||||
where += QStringLiteral(" element_type = '") += ElementData::typeToString(ElementData::Terminale) += "'";
|
||||
where += QStringLiteral(" element_type = '") += ElementData::typeToString(ElementData::Terminal) += "'";
|
||||
b = true;
|
||||
}
|
||||
if (ui->m_thumbnail_cb->isChecked()) {
|
||||
|
||||
+19
-28
@@ -151,7 +151,7 @@ Diagram::~Diagram()
|
||||
continue;
|
||||
deletable_items.append(qgi);
|
||||
}
|
||||
for (const auto &item : qAsConst(deletable_items))
|
||||
for (const auto &item : std::as_const(deletable_items))
|
||||
{
|
||||
removeItem(item);
|
||||
delete item;
|
||||
@@ -213,8 +213,8 @@ void Diagram::drawBackground(QPainter *p, const QRectF &r) {
|
||||
.insideBorderRect()
|
||||
.intersected(r);
|
||||
|
||||
qreal limite_x = rect.x() + rect.width();
|
||||
qreal limite_y = rect.y() + rect.height();
|
||||
qreal limit_x = rect.x() + rect.width();
|
||||
qreal limit_y = rect.y() + rect.height();
|
||||
|
||||
int g_x = (int)ceil(rect.x());
|
||||
while (g_x % xGrid) ++ g_x;
|
||||
@@ -222,8 +222,8 @@ void Diagram::drawBackground(QPainter *p, const QRectF &r) {
|
||||
while (g_y % yGrid) ++ g_y;
|
||||
|
||||
QPolygon points;
|
||||
for (int gx = g_x ; gx < limite_x ; gx += xGrid) {
|
||||
for (int gy = g_y ; gy < limite_y ; gy += yGrid) {
|
||||
for (int gx = g_x ; gx < limit_x ; gx += xGrid) {
|
||||
for (int gy = g_y ; gy < limit_y ; gy += yGrid) {
|
||||
points << QPoint(gx, gy);
|
||||
}
|
||||
}
|
||||
@@ -1139,8 +1139,8 @@ Terminal* findTerminal(int conductor_index,
|
||||
assert(conductor_index == 1 || conductor_index == 2);
|
||||
|
||||
auto str_index = QString::number(conductor_index);
|
||||
QString element_index = QStringLiteral("element") + str_index;
|
||||
QString terminal_index = QStringLiteral("terminal") + str_index;
|
||||
QString element_index = QStringLiteral("element") % str_index;
|
||||
QString terminal_index = QStringLiteral("terminal") % str_index;
|
||||
|
||||
if (f.hasAttribute(element_index)) {
|
||||
QUuid element_uuid = QUuid(f.attribute(element_index));
|
||||
@@ -1453,13 +1453,13 @@ bool Diagram::fromXml(QDomElement &document,
|
||||
if (position != QPointF())
|
||||
{
|
||||
QVector <QGraphicsItem *> added_items;
|
||||
for (auto element : qAsConst(added_elements )) added_items << element;
|
||||
for (auto cond : qAsConst(added_conductors )) added_items << cond;
|
||||
for (auto shape : qAsConst(added_shapes )) added_items << shape;
|
||||
for (auto text : qAsConst(added_texts )) added_items << text;
|
||||
for (auto image : qAsConst(added_images )) added_items << image;
|
||||
for (auto table : qAsConst(added_tables )) added_items << table;
|
||||
for (const auto &strip : qAsConst(added_strips)) added_items << strip;
|
||||
for (auto element : std::as_const(added_elements )) added_items << element;
|
||||
for (auto cond : std::as_const(added_conductors )) added_items << cond;
|
||||
for (auto shape : std::as_const(added_shapes )) added_items << shape;
|
||||
for (auto text : std::as_const(added_texts )) added_items << text;
|
||||
for (auto image : std::as_const(added_images )) added_items << image;
|
||||
for (auto table : std::as_const(added_tables )) added_items << table;
|
||||
for (const auto &strip : std::as_const(added_strips)) added_items << strip;
|
||||
|
||||
//Get the top left corner of the rectangle that contain all added items
|
||||
QRectF items_rect;
|
||||
@@ -1483,14 +1483,6 @@ bool Diagram::fromXml(QDomElement &document,
|
||||
if (content_ptr) {
|
||||
content_ptr -> m_elements = added_elements;
|
||||
content_ptr -> m_conductors_to_move = added_conductors;
|
||||
#if QT_VERSION < QT_VERSION_CHECK(5, 14, 0) // ### Qt 6: remove
|
||||
content_ptr -> m_text_fields = added_texts.toSet();
|
||||
content_ptr -> m_images = added_images.toSet();
|
||||
content_ptr -> m_shapes = added_shapes.toSet();
|
||||
#else
|
||||
#if TODO_LIST
|
||||
#pragma message("@TODO remove code for QT 5.14 or later")
|
||||
#endif
|
||||
content_ptr -> m_text_fields = QSet<IndependentTextItem *>(
|
||||
added_texts.begin(),
|
||||
added_texts.end());
|
||||
@@ -1501,7 +1493,6 @@ bool Diagram::fromXml(QDomElement &document,
|
||||
added_shapes.begin(),
|
||||
added_shapes.end());
|
||||
content_ptr->m_terminal_strip.swap(added_strips);
|
||||
#endif
|
||||
content_ptr->m_tables.swap(added_tables);
|
||||
}
|
||||
|
||||
@@ -1536,9 +1527,9 @@ void Diagram::folioSequentialsFromXml(const QDomElement &root,
|
||||
QStringList list;
|
||||
int i = 1;
|
||||
while (folioseq.hasAttribute(seq
|
||||
+ QString::number(i))) {
|
||||
% QString::number(i))) {
|
||||
list << folioseq.attribute(
|
||||
seq + QString::number(i));
|
||||
seq % QString::number(i));
|
||||
i++;
|
||||
}
|
||||
hash->insert(title,list);
|
||||
@@ -1568,11 +1559,11 @@ void Diagram::refreshContents()
|
||||
conductor->refreshText();
|
||||
}
|
||||
|
||||
for (auto &table : qAsConst(dc_.m_tables)) {
|
||||
for (auto &table : std::as_const(dc_.m_tables)) {
|
||||
table->initLink();
|
||||
}
|
||||
|
||||
for (auto &strip :qAsConst(dc_.m_terminal_strip)) {
|
||||
for (auto &strip :std::as_const(dc_.m_terminal_strip)) {
|
||||
strip->refreshPending();
|
||||
}
|
||||
}
|
||||
@@ -1757,7 +1748,7 @@ void Diagram::invertSelection()
|
||||
item_list << item;
|
||||
}
|
||||
}
|
||||
for (auto item : qAsConst(item_list)) {
|
||||
for (auto item : std::as_const(item_list)) {
|
||||
item -> setSelected(!item -> isSelected());
|
||||
}
|
||||
|
||||
|
||||
@@ -55,7 +55,7 @@ DiagramContent::DiagramContent(Diagram *diagram, bool selected) :
|
||||
item_list = diagram->items();
|
||||
}
|
||||
|
||||
for (const auto &item : qAsConst(item_list))
|
||||
for (const auto &item : std::as_const(item_list))
|
||||
{
|
||||
switch (item->type())
|
||||
{
|
||||
@@ -391,10 +391,10 @@ QList<QGraphicsItem *> DiagramContent::items(int filter) const
|
||||
if (filter & ElementTextFields) for(auto qgi : m_element_texts) items_list << qgi;
|
||||
if (filter & TextGroup) for(auto qgi : m_texts_groups) items_list << qgi;
|
||||
if (filter & Tables) for(auto qgi : m_tables) items_list << qgi;
|
||||
if (filter & TerminalStrip) for(const auto qgi : qAsConst(m_terminal_strip)) items_list << qgi;
|
||||
if (filter & TerminalStrip) for(const auto qgi : std::as_const(m_terminal_strip)) items_list << qgi;
|
||||
|
||||
if (filter & SelectedOnly) {
|
||||
for(const auto &qgi : qAsConst(items_list)) {
|
||||
for(const auto &qgi : std::as_const(items_list)) {
|
||||
if (!qgi -> isSelected()) items_list.removeOne(qgi);
|
||||
}
|
||||
}
|
||||
@@ -420,7 +420,7 @@ int DiagramContent::count(int filter) const
|
||||
if (filter & ElementTextFields) for(auto deti : m_element_texts) { if (deti -> isSelected()) ++ count; }
|
||||
if (filter & TextGroup) for(auto etig : m_texts_groups) { if (etig -> isSelected()) ++ count; }
|
||||
if (filter & Tables) for(auto table : m_tables) { if (table -> isSelected()) ++ count; }
|
||||
if (filter & TerminalStrip) for(const auto &strip : qAsConst(m_terminal_strip)) {if (strip->isSelected()) ++ count;}
|
||||
if (filter & TerminalStrip) for(const auto &strip : std::as_const(m_terminal_strip)) {if (strip->isSelected()) ++ count;}
|
||||
}
|
||||
else {
|
||||
if (filter & Elements) count += m_elements.count();
|
||||
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user