Compare commits

...

124 Commits

Author SHA1 Message Date
plc-user 411fb3c4dc Fix signal for ComboBox 2025-03-28 18:57:40 +01:00
plc-user 07a07a5719 Fix signal for ColorButton 2025-03-28 18:54:57 +01:00
Laurent Trinques 3913836137 Merge pull request #385 from plc-user/qt6-cmake
FIX broken signals in export-dialog
2025-03-13 11:06:54 +01:00
plc-user 242a601984 use "%" for string-concatenation
Qt-Docs says it's less memory-usage...
2025-03-12 16:55:47 +01:00
plc-user 635bb15faf remove unneeded Qt-version-checks 2025-03-12 16:48:52 +01:00
plc-user 2deb37d351 remove unneeded Qt-version-checks 2025-03-12 16:45:16 +01:00
plc-user 1124a567aa remove unneeded comments 2025-03-12 00:43:23 +01:00
plc-user 8e7120e923 fixed broken signals
and added some English comments
2025-03-12 00:40:35 +01:00
Laurent Trinques 0a9f62126b Merge pull request #380 from plc-user/qt6-cmake
added code for Qt6 to qetelementeditor.cpp
2025-03-06 13:09:03 +01:00
plc-user c0864eced3 added code for Qt6 to qetelementeditor.cpp
and removed qDebug() - Output.
Seems to work for me but should be tested by someone else, too.
2025-03-06 09:55:21 +01:00
Laurent Trinques e01e3d7838 Merge pull request #378 from elevatormind/no-kwidgetsaddons
No kwidgetsaddons
2025-03-04 14:23:42 +01:00
Magnus Hellströmer 0e85314a84 Removed kwidgetaddons from CMake 2025-03-03 23:25:34 +01:00
Magnus Hellströmer 80e404048c Added padding variables for ColorButton and ColorComboBoxDelegate 2025-03-03 23:24:28 +01:00
Magnus Hellströmer 0e5f37503c Small fixes
- Better call of QColorDialog::getColor in ColorButton (reflects new ColorComboBox class)
  - no CamelCase for variable
  - Typo
2025-03-03 23:19:23 +01:00
Magnus Hellströmer f14f6c6a8d Replacement for KColorCombo 2025-03-03 23:11:51 +01:00
Magnus Hellströmer b815244494 Replacement for KColorButton 2025-03-03 20:45:16 +01:00
elevatormind 01d018f8cf Merge branch 'qelectrotech:qt6-cmake' into qt6-cmake 2025-03-03 19:48:57 +01:00
Laurent Trinques d7a15d6cb6 bordertitleblock: use same code for Qt5 & Qt6 for "numbering" rows 2025-03-02 10:35:16 +01:00
Laurent Trinques a53a799da5 Fix crossXref with Qt6 thanks plc-user,
see:https://qelectrotech.org/forum/viewtopic.php?pid=21168#p21168
2025-03-01 15:48:42 +01:00
Laurent Trinques d4972dc588 Merge pull request #371 from qelectrotech/master
Merge last commits on mastert to branch qt6-cmake
2025-02-28 13:46:46 +01:00
Laurent Trinques e66061fdca Merge pull request #370 from plc-user/master
some small changes for selective move
2025-02-28 09:57:41 +01:00
plc-user e2e84a56f7 limit movement to int-values to be able to re-position to original position 2025-02-28 07:40:59 +01:00
plc-user 565374f174 additional ControlModifier does not work here as expected 2025-02-28 07:36:53 +01:00
plc-user 7bdca47d8e use brackets to be more clear what is meant 2025-02-28 07:33:17 +01:00
Laurent Trinques d1ce42a148 Fixed deprecated use of QAbstractPrintDialog::setEnabledOptions 2025-02-27 12:36:58 +01:00
Laurent Trinques 6b9837b244 Fix menclature tables are growing in width, when you reload them the
width increases.
2025-02-27 11:29:29 +01:00
Laurent Trinques f0c954329f git submodule update --remote elements 2025-02-25 16:49:12 +01:00
Laurent Trinques e99ad6b424 Merge pull request #369 from prescott66/patch-1
Added slovak translation to org.qelectrotech.qelectrotech.desktop
2025-02-25 12:53:10 +01:00
Dušan Kazik 74460a6645 Added slovak translation to org.qelectrotech.qelectrotech.desktop
Added slovak translation for app name and comment.
2025-02-25 09:20:04 +01:00
Laurent Trinques 231a1c919a git submodule update --remote elements 2025-02-22 10:31:24 +01:00
Laurent Trinques 19c9d614e8 Merge pull request #367 from plc-user/master
unify calls to "setRotation" for element-primitives again
2025-02-22 10:18:14 +01:00
plc-user 43386aa14f unify calls to "setRotation" for element-primitives 2025-02-22 09:30:15 +01:00
plc-user 181680e6f1 add English comments 2025-02-22 09:20:46 +01:00
Laurent Trinques 667d25899f Merge pull request #364 from elevatormind/conductor_texts
New variables for conductor text formulas
2025-02-21 17:13:18 +01:00
Laurent Trinques c9b9165911 Merge pull request #365 from elevatormind/selective_move
Added option to only move dynamic texts
2025-02-21 17:12:54 +01:00
Laurent Trinques adbbeca905 Typo 2025-02-21 16:17:57 +01:00
Laurent Trinques f8b9edd938 Fix Symbol library panel, the texts don't show until you hover over them with the mouse.
Improve launch time
2025-02-21 15:47:18 +01:00
Laurent Trinques 99dfe6a50c Merge pull request #366 from elevatormind/qt6-cmake
Qt6 cmake
2025-02-21 15:36:54 +01:00
Magnus Hellströmer 78ee65a21b Added option to only move dynamic texts 2025-02-19 21:33:29 +01:00
Magnus Hellströmer 49ce6bc4b3 Update qet_be.ts to qet_nl_BE.ts 2025-02-19 21:32:21 +01:00
Magnus Hellströmer 572d78912c Fix compiler warning 2025-02-19 21:32:21 +01:00
Magnus Hellströmer aa36bb35e1 Fix compiler warning 2025-02-19 21:32:21 +01:00
Magnus Hellströmer 4e030943bc Fix compile warning 2025-02-19 21:32:21 +01:00
Magnus Hellströmer 1c2d83d586 Fix compile error 2025-02-19 21:32:21 +01:00
Magnus Hellströmer 1a24452e8b Bump ECM / KF6 versions 2025-02-19 21:32:21 +01:00
Magnus Hellströmer 3f7192dc68 Rearraned and updated cmake-files 2025-02-19 21:32:21 +01:00
Magnus Hellströmer 4ce8fcb0d4 Bump cmake minimum version 2025-02-19 21:32:21 +01:00
Magnus Hellströmer 9fefc7aa2a Force Qt6 in cmake 2025-02-19 21:32:21 +01:00
Magnus Hellströmer c77eb98a15 Fixed broken mapped signal for RecentFiles 2025-02-19 21:32:21 +01:00
Magnus Hellströmer 5973db00f7 Fixed deprecated use of QColor:setNamedColor() 2025-02-19 21:32:21 +01:00
Magnus Hellströmer ee06a71e6f Fixed missing include 2025-02-19 21:32:21 +01:00
Magnus Hellströmer 25f9f14b04 Fixed deprecated qAsConst() to std::as_const() 2025-02-19 21:32:21 +01:00
Magnus Hellströmer 4827b23116 Changed QtConcurrent::run() to QThreadPool::start() to fix compile warning 2025-02-19 21:32:21 +01:00
Magnus Hellströmer e332d3bf31 Fixed compile warnings about QVariant::canConvert() 2025-02-19 21:32:21 +01:00
Magnus Hellströmer 3c4a0ed2b4 Fixed narrowing warning qsizetype -> int 2025-02-19 21:32:21 +01:00
Magnus Hellströmer e8f8304b60 Fixed deprecated uses of QVariant 2025-02-19 21:32:21 +01:00
Magnus Hellströmer 07118d7a11 Updated deprecated QString::count() -> length() 2025-02-19 21:32:21 +01:00
Magnus Hellströmer 373fcfb4ea Support for loading language .qm files as Qt resource 2025-02-19 21:32:21 +01:00
Magnus Hellströmer 05dfd10952 Show full Qt version in cmake 2025-02-19 21:32:21 +01:00
Magnus Hellströmer a88d485051 Replaced BUILD_WITHOUT_KF5 to BUILD_WITHOUT_KF6 2025-02-19 21:32:21 +01:00
Magnus Hellströmer 40abc3892c Fixed export project db (added SQLite3 in cmake) 2025-02-19 21:32:21 +01:00
Magnus Hellströmer 27899c48a3 Fixed crash with db export disabled 2025-02-19 21:32:21 +01:00
Magnus Hellströmer 4fe9687aca Added missing include 2025-02-19 21:32:21 +01:00
Magnus Hellströmer cfdad56d0e Added qsizetype cast fixing compile error 2025-02-19 21:32:21 +01:00
Magnus Hellströmer 8ba96ac6e2 Added bool cast fixing compile error 2025-02-19 21:32:21 +01:00
Magnus Hellströmer dd521f13aa Added missing includes 2025-02-19 21:32:21 +01:00
Magnus Hellströmer 6c5ff66067 Include correct header file for catch 2025-02-19 21:32:21 +01:00
Magnus Hellströmer 0dc45f056e Fixed deprecated regex exactMatch() 2025-02-19 21:32:21 +01:00
Magnus Hellströmer 0b307abf34 Corrected overloaded qHash() from earlier commit 21fcf688ec3b8b82e89d1be5424b0aa4d356e1ab 2025-02-19 21:32:21 +01:00
Magnus Hellströmer 9127937bee Added bool cast fixing compiler crash 2025-02-19 21:32:21 +01:00
Magnus Hellströmer d3f206a387 Removed obsolete QGIManager::manage/release(QVector) 2025-02-19 21:32:21 +01:00
Magnus Hellströmer 8a4d7c6cf2 Fixed compiler warning for overloaded qHash() 2025-02-19 21:32:21 +01:00
Magnus Hellströmer bae85624a0 Bumped git-versions in cmake for catch and googletest 2025-02-19 21:32:21 +01:00
Magnus Hellströmer 540a248d72 Bumped git-versions in cmake for pugixml and singleapplication 2025-02-19 21:32:21 +01:00
Magnus Hellströmer d07214ab92 Migrated from Qt5(Kf5 to Qt6/Kf6 in cmake-files 2025-02-19 21:32:21 +01:00
Magnus Hellströmer 68a2ddde18 New variables for conductor text formulas 2025-02-19 20:26:53 +01:00
Laurent Trinques 8c3343795a Merge pull request #362 from pkess/fix_typo
Fix typo widht to width
2025-02-19 15:54:59 +01:00
Peter Kessen 2097b24d37 Fix typo for variable 2025-02-18 20:14:51 +01:00
Peter Kessen 5351746dc7 Fix typo within settings entry 2025-02-18 20:13:10 +01:00
Laurent Trinques 1af3c5b852 Merge pull request #361 from plc-user/master
element-editor: add mirror and flip for "text"
2025-02-18 06:27:14 +01:00
plc-user c2a2e5f5eb minor: whitespace and comments 2025-02-17 19:45:53 +01:00
plc-user dc836248f0 element editor: add mirror and flip for “text”
Maybe not (yet) perfect, but it looks pretty good to me!

Why am I doing this to myself?
All this crap with fonts and stuff!
It's been crap for as long as I can remember.
2025-02-17 19:39:53 +01:00
Laurent Trinques a3bf2e2800 minor for Swedish translation
Add translation for Imported elements in QET project widget
2025-02-17 16:00:46 +01:00
Laurent Trinques 83f960a983 Merge pull request #360 from elevatormind/lang_sv
Add Swedish translation
2025-02-17 15:42:25 +01:00
Laurent Trinques c223121f00 git submodule update --remote elements 2025-02-17 15:30:42 +01:00
plc-user 0f647a5c38 fix: do not add "kindInformations" for thumbnail-elements 2025-02-17 09:48:51 +01:00
plc-user 67112bf8e5 fix typo in enum-entry and comments 2025-02-17 09:33:35 +01:00
Laurent Trinques 1b60f7c52a Merge pull request #359 from pkess/linux_installer
German text for launcher and debian package code style
2025-02-17 06:36:55 +01:00
Magnus Hellströmer 9a96eb914d Updated qet_sv.qm 2025-02-16 20:59:02 +01:00
Magnus Hellströmer bf8723015a Update swedish translation 2025-02-16 20:54:15 +01:00
Magnus Hellströmer 82d7bbda68 Added swedish language 2025-02-16 20:54:15 +01:00
Peter Kessen 0df3ecb5f7 Edit german translation 2025-02-16 19:57:56 +01:00
Peter Kessen 1e27cac8c5 Remove trailing whitespace 2025-02-16 19:57:07 +01:00
Laurent Trinques 16dea9f3de Update Polish translation, thanks Paweł 2025-02-16 17:49:15 +01:00
Laurent Trinques 20e852cbaf Merge pull request #358 from plc-user/master
some more rotation, mirror and flip
2025-02-16 17:24:33 +01:00
plc-user 51225d5f59 element-editor: add rotation with smaller increments for "line", "polygon", "text" and "dynamic_text" with shortcut <Ctrl>+<Space> 2025-02-16 16:31:18 +01:00
plc-user 3fc5469aee element-editor: add mirror and flip for "dynamic_text" 2025-02-16 16:15:46 +01:00
plc-user 6fdc243552 fix indention - no code-change 2025-02-16 15:43:58 +01:00
plc-user da109b1522 element-editor: add rotation-functions to "text" and "dynamic_text" 2025-02-16 15:42:33 +01:00
plc-user 2aeae1fe46 use Qt-functions to rotate lines and polygons 2025-02-16 15:28:15 +01:00
plc-user e98ce4de1d add English comments 2025-02-16 10:02:19 +01:00
plc-user da0951d5a0 fix typo in variable-name (mixture of French and English) 2025-02-15 20:36:21 +01:00
Laurent Trinques 0be9e2beae minor add qInfo-Text "SQLite version: " 2025-02-15 17:10:39 +01:00
Laurent Trinques 52946f9e3a Merge pull request #357 from plc-user/master
BugFix: Flip and Mirror of terminals
2025-02-15 09:35:10 +01:00
plc-user 007ce79cee BugFix: Flip and Mirror of terminals 2025-02-15 09:13:56 +01:00
Laurent Trinques 5aee30edee Merge pull request #356 from plc-user/master
element-editor: fix rotation and more
2025-02-15 08:21:44 +01:00
plc-user b9a8dc0918 fix typo in translation 2025-02-14 20:57:30 +01:00
plc-user bd3b39cea3 element-editor: fix rotation, add mirror, add flip for graphical primitives
Now that the problem with the translations of keyboard shortcuts has been resolved and rotation using the space bar works reliably in principle, I took a closer look at the rotation function itself in the element editor.

I noticed, for example, that arcs can be rotated at an angle of 15°. This doesn't really make sense, as the “arc” part doesn't have the “rotation” property. There is only width and height.
And somehow rotating arcs didn't work well: start- and span-angles weren't adjusted.

Lines and polygons can be rotated in 15° increments, which doesn't make much sense, if other parts that can only be rotated in 90° increments are selected at the same time.

To make a long story short:
I reworked the rotation functions of the graphical parts so that now all parts are rotated in 90° steps around the origin! This means that it is now possible to mark several parts and rotate them around the same point at the same time!

In addition, the functions for mirroring graphic parts at y-axis (shortcut "M") and flipping at x-axis (shortcut "F") have been implemented.

I have saved the text elements for later!
(or someone else)
2025-02-14 20:31:03 +01:00
plc-user fc286cca22 fix one last hardcoded shortcut-translation 2025-02-14 19:52:39 +01:00
plc-user 4d5af028be menu: move "About QElectroTech" in Help-Menu to bottom
If the version number of QElectroTech is requested in the forum in case of error messages or anomalies, the Qt version used is very often stated because the entry “About QElectroTech” does not appear very prominently in the help menu: The entry “About Qt” is used much more frequently because it appears eye-catchingly as the lowest entry. However, specifying the Qt version is often not helpful for troubleshooting: We need the QET version!
That's why I'm moving the “About QElectroTech” entry to the bottom, so that it is easier to see and find!
2025-02-14 19:47:19 +01:00
Laurent Trinques 9afc97108b Merge pull request #355 from plc-user/master
minor: mostly typos
2025-02-14 17:39:43 +01:00
plc-user a4a3733670 typos, whitespace and brackets 2025-02-14 16:59:23 +01:00
plc-user 3471140b64 fix typo in fuction-name (looked like a mixture of French and English) 2025-02-14 16:47:39 +01:00
Laurent Trinques 43f0107eb1 Revert "Try Clazy fix-its"
Segfault on old Qt versions!
This reverts commit dba7caed30.
2025-02-14 16:17:58 +01:00
Laurent Trinques dba7caed30 Try Clazy fix-its
clazy is a compiler plugin which allows clang to understand Qt
semantics. You get more than 50 Qt related compiler warnings, ranging
from unneeded memory allocations to misusage of API, including fix-its
for automatic refactoring.

https://invent.kde.org/sdk/clazy
2025-02-14 15:52:23 +01:00
Laurent Trinques adcf77e34a Replacing modules includes <QtConcurrent> with QtConcurrentRun and
QtConcurrentMap

Signed-off-by: Laurent Trinques <scorpio@qelectrotech.org>
2025-02-14 14:07:41 +01:00
Laurent Trinques 59236170b2 Merge pull request #354 from plc-user/master
a few translated shortcuts were still there ... fixed!
2025-02-13 08:14:09 +01:00
plc-user 3d82aff4e7 FIX: shortcut for rotation in element-editor was hardcoded in UI 2025-02-12 15:35:45 +01:00
plc-user 516eb9eb45 fixed English comments 2025-02-12 14:02:30 +01:00
plc-user 0b80d1b5b9 a few translated shortcuts were still there ... fixed! 2025-02-12 13:41:39 +01:00
Laurent Trinques 073e4080fd Merge pull request #353 from plc-user/master
FIX: some shortcuts do not work with language set to local
2025-02-11 18:23:32 +01:00
plc-user b512aee2bf update language-files 2025-02-11 15:55:24 +01:00
plc-user 38f5547228 use "positive logic" for conditional compiling 2025-02-11 14:43:18 +01:00
plc-user 317c90c769 do not hardcode translations for shortcuts: let the system do it for you! 2025-02-11 14:36:15 +01:00
191 changed files with 25800 additions and 15693 deletions
+24 -30
View File
@@ -16,7 +16,7 @@
include(cmake/hoto_update_cmake_message.cmake) 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 project(qelectrotech
VERSION 0.9.0 VERSION 0.9.0
@@ -27,6 +27,13 @@ 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" ON)
@@ -43,42 +50,17 @@ 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 # 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 +68,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}
) )
@@ -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/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()
+1
View File
@@ -125,6 +125,7 @@
!insertmacro MUI_LANGUAGE "Dutch" !insertmacro MUI_LANGUAGE "Dutch"
!insertmacro MUI_LANGUAGE "Dutch_Belgium" !insertmacro MUI_LANGUAGE "Dutch_Belgium"
!insertmacro MUI_LANGUAGE "Danish" !insertmacro MUI_LANGUAGE "Danish"
!insertmacro MUI_LANGUAGE "Swedish"
!insertmacro MUI_RESERVEFILE_LANGDLL !insertmacro MUI_RESERVEFILE_LANGDLL
!include lang_extra.nsh !include lang_extra.nsh
+10 -5
View File
@@ -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()
+5 -2
View File
@@ -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)
+29 -36
View File
@@ -14,54 +14,47 @@
# 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") message(STATUS "fetch_kdeaddons")
if(DEFINED BUILD_WITH_KF5) if(BUILD_WITH_KF6)
Include(FetchContent) 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 KF6_GIT_TAG)
set(KF6_GIT_TAG v6.8.0)
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)
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() else()
find_package(KF5CoreAddons REQUIRED) find_package(KF6CoreAddons REQUIRED)
find_package(KF5WidgetsAddons REQUIRED) set(kca_version ${KF6CoreAddons_VERSION})
endif() endif()
set(KF5_PRIVATE_LIBRARIES get_target_property(kwa_type KF6::CoreAddons TYPE)
KF5::WidgetsAddons
KF5::CoreAddons 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() endif()
+1 -1
View File
@@ -25,7 +25,7 @@ if(BUILD_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.14)
FetchContent_MakeAvailable(pugixml) FetchContent_MakeAvailable(pugixml)
else() else()
+1 -1
View File
@@ -26,6 +26,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.1)
FetchContent_MakeAvailable(SingleApplication) FetchContent_MakeAvailable(SingleApplication)
+10 -1
View File
@@ -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
@@ -710,7 +718,6 @@ set(QET_SRC_FILES
set(TS_FILES set(TS_FILES
${QET_DIR}/lang/qet_ar.ts ${QET_DIR}/lang/qet_ar.ts
${QET_DIR}/lang/qet_be.ts
${QET_DIR}/lang/qet_ca.ts ${QET_DIR}/lang/qet_ca.ts
${QET_DIR}/lang/qet_cs.ts ${QET_DIR}/lang/qet_cs.ts
${QET_DIR}/lang/qet_da.ts ${QET_DIR}/lang/qet_da.ts
@@ -727,6 +734,7 @@ set(TS_FILES
${QET_DIR}/lang/qet_mn.ts ${QET_DIR}/lang/qet_mn.ts
${QET_DIR}/lang/qet_nb.ts ${QET_DIR}/lang/qet_nb.ts
${QET_DIR}/lang/qet_nl.ts ${QET_DIR}/lang/qet_nl.ts
${QET_DIR}/lang/qet_nl_BE.ts
${QET_DIR}/lang/qet_no.ts ${QET_DIR}/lang/qet_no.ts
${QET_DIR}/lang/qet_pl.ts ${QET_DIR}/lang/qet_pl.ts
${QET_DIR}/lang/qet_pt.ts ${QET_DIR}/lang/qet_pt.ts
@@ -736,6 +744,7 @@ set(TS_FILES
${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_tr.ts ${QET_DIR}/lang/qet_tr.ts
${QET_DIR}/lang/qet_zh.ts ${QET_DIR}/lang/qet_zh.ts
) )
+1 -1
View File
@@ -29,4 +29,4 @@ add_definitions(-DQET_ALLOW_OVERRIDE_CD_OPTION)
add_definitions(-DQET_ALLOW_OVERRIDE_DD_OPTION) add_definitions(-DQET_ALLOW_OVERRIDE_DD_OPTION)
#comment the line below to disable the project database export #comment the line below to disable the project database export
#add_definitions(-DQET_EXPORT_PROJECT_DB) #error Todo add_definitions(-DQET_EXPORT_PROJECT_DB)
Binary file not shown.

After

Width:  |  Height:  |  Size: 295 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 291 B

+326
View File
@@ -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>
BIN
View File
Binary file not shown.
+331 -532
View File
File diff suppressed because it is too large Load Diff
BIN
View File
Binary file not shown.
+331 -532
View File
File diff suppressed because it is too large Load Diff
BIN
View File
Binary file not shown.
+553 -586
View File
File diff suppressed because it is too large Load Diff
BIN
View File
Binary file not shown.
+332 -534
View File
File diff suppressed because it is too large Load Diff
BIN
View File
Binary file not shown.
+167 -374
View File
File diff suppressed because it is too large Load Diff
BIN
View File
Binary file not shown.
+332 -533
View File
File diff suppressed because it is too large Load Diff
BIN
View File
Binary file not shown.
+168 -376
View File
File diff suppressed because it is too large Load Diff
BIN
View File
Binary file not shown.
+331 -532
View File
File diff suppressed because it is too large Load Diff
BIN
View File
Binary file not shown.
+332 -533
View File
File diff suppressed because it is too large Load Diff
BIN
View File
Binary file not shown.
+331 -532
View File
File diff suppressed because it is too large Load Diff
BIN
View File
Binary file not shown.
+332 -534
View File
File diff suppressed because it is too large Load Diff
BIN
View File
Binary file not shown.
+332 -533
View File
File diff suppressed because it is too large Load Diff
BIN
View File
Binary file not shown.
+331 -532
View File
File diff suppressed because it is too large Load Diff
BIN
View File
Binary file not shown.
+331 -532
View File
File diff suppressed because it is too large Load Diff
BIN
View File
Binary file not shown.
+331 -532
View File
File diff suppressed because it is too large Load Diff
BIN
View File
Binary file not shown.
+332 -534
View File
File diff suppressed because it is too large Load Diff
BIN
View File
Binary file not shown.
+332 -534
View File
File diff suppressed because it is too large Load Diff
BIN
View File
Binary file not shown.
+404 -570
View File
File diff suppressed because it is too large Load Diff
BIN
View File
Binary file not shown.
+331 -532
View File
File diff suppressed because it is too large Load Diff
BIN
View File
Binary file not shown.
+332 -533
View File
File diff suppressed because it is too large Load Diff
BIN
View File
Binary file not shown.
+331 -532
View File
File diff suppressed because it is too large Load Diff
BIN
View File
Binary file not shown.
+332 -533
View File
File diff suppressed because it is too large Load Diff
+331 -532
View File
File diff suppressed because it is too large Load Diff
+331 -532
View File
File diff suppressed because it is too large Load Diff
+331 -532
View File
File diff suppressed because it is too large Load Diff
BIN
View File
Binary file not shown.
+14418
View File
File diff suppressed because it is too large Load Diff
BIN
View File
Binary file not shown.
+331 -532
View File
File diff suppressed because it is too large Load Diff
BIN
View File
Binary file not shown.
+332 -533
View File
File diff suppressed because it is too large Load Diff
BIN
View File
Binary file not shown.
+332 -533
View File
File diff suppressed because it is too large Load Diff
+4 -2
View File
@@ -1,6 +1,6 @@
[Desktop Entry] [Desktop Entry]
Version=1.0 Version=1.0
Name=QElectroTech Name=QElectroTech
TryExec=qelectrotech TryExec=qelectrotech
Exec=qelectrotech %F Exec=qelectrotech %F
Icon=qelectrotech 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; Categories=Graphics;Qt;VectorGraphics;Science;Electricity;Engineering;
Keywords=Graphics;Science;Electricity;Engineering; Keywords=Graphics;Science;Electricity;Engineering;
Comment=Edit electrical diagrams. 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[fr]=Éditer des schémas électriques.
Comment[ar]=تحرير مخططات كهربائية Comment[ar]=تحرير مخططات كهربائية
Comment[es]=Editar esquemas eléctricos Comment[es]=Editar esquemas eléctricos
@@ -26,6 +26,7 @@ Comment[nl]=Bewerken bedradingsdiagrammen.
Comment[be]=Bewerken elektrisch schema. Comment[be]=Bewerken elektrisch schema.
Comment[da]=Rediger elektriske diagrammer. Comment[da]=Rediger elektriske diagrammer.
Comment[ja]=電気回路図の編集。 Comment[ja]=電気回路図の編集。
Comment[sk]=Úprava elektrických schém.
GenericName=Electrical diagram editor GenericName=Electrical diagram editor
GenericName[de]=Schaltplaneditor GenericName[de]=Schaltplaneditor
GenericName[fr]=Éditeur de schémas électriques GenericName[fr]=Éditeur de schémas électriques
@@ -42,3 +43,4 @@ GenericName[nl]=Elektrische schema editor
GenericName[be]=Elektrische schema editor GenericName[be]=Elektrische schema editor
GenericName[da]=Elektrisk diagram redigering GenericName[da]=Elektrisk diagram redigering
GenericName[ja]=電気回路図エディタ GenericName[ja]=電気回路図エディタ
GenericName[sk]=Editor elektrických schém
+2
View File
@@ -49,6 +49,7 @@
<file>ico/16x16/endline-none.png</file> <file>ico/16x16/endline-none.png</file>
<file>ico/16x16/endline-simple.png</file> <file>ico/16x16/endline-simple.png</file>
<file>ico/16x16/endline-triangle.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-new.png</file>
<file>ico/16x16/folder.png</file> <file>ico/16x16/folder.png</file>
<file>ico/16x16/go-company.png</file> <file>ico/16x16/go-company.png</file>
@@ -60,6 +61,7 @@
<file>ico/16x16/list-add.png</file> <file>ico/16x16/list-add.png</file>
<file>ico/16x16/list-remove.png</file> <file>ico/16x16/list-remove.png</file>
<file>ico/16x16/masquer.png</file> <file>ico/16x16/masquer.png</file>
<file>ico/16x16/mirror.png</file>
<file>ico/16x16/neutral.png</file> <file>ico/16x16/neutral.png</file>
<file>ico/16x16/north.png</file> <file>ico/16x16/north.png</file>
<file>ico/16x16/orientations.png</file> <file>ico/16x16/orientations.png</file>
@@ -26,7 +26,8 @@
#include "xmlprojectelementcollectionitem.h" #include "xmlprojectelementcollectionitem.h"
#include <QFutureWatcher> #include <QFutureWatcher>
#include <QtConcurrent> #include <QtConcurrentMap>
/** /**
@brief ElementsCollectionModel::ElementsCollectionModel @brief ElementsCollectionModel::ElementsCollectionModel
@@ -292,15 +293,9 @@ 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);
} }
@@ -765,7 +765,7 @@ void ElementsCollectionWidget::search()
} }
//start the search when text have at least 3 letters. //start the search when text have at least 3 letters.
if (text.count() < 3) { if (text.length() < 3) {
return; return;
} }
@@ -805,15 +805,15 @@ bool ElementsLocation::setXml(const QDomDocument &xml_document) const
qDebug() << "Help code for QT 6 or later"; qDebug() << "Help code for QT 6 or later";
QString path_ = collectionPath(false); QString path_ = collectionPath(false);
QRegularExpression rx("^(.*)/(.*\\.elmt)$"); QRegularExpression rx(QRegularExpression::anchoredPattern("(.*)/(.*\\.elmt)"));
QRegularExpressionMatch match = rx.match(path_);
if (rx.exactMatch(path_)) if (match.hasMatch())
{ {
return project() return project()
->embeddedElementCollection() ->embeddedElementCollection()
->addElementDefinition( ->addElementDefinition(
rx.cap(1), match.captured(1),
rx.cap(2), match.captured(2),
xml_document.documentElement()); xml_document.documentElement());
} }
else else
@@ -17,6 +17,7 @@
*/ */
#include "terminalstripdrawer.h" #include "terminalstripdrawer.h"
#include <QPainter> #include <QPainter>
#include <QHash>
namespace TerminalStripDrawer { namespace TerminalStripDrawer {
@@ -202,7 +203,7 @@ void TerminalStripDrawer::paint(QPainter *painter)
painter->restore(); painter->restore();
//Draw the bridges //Draw the bridges
for (const auto &points_ : qAsConst(bridges_anchor_points)) for (const auto &points_ : std::as_const(bridges_anchor_points))
{ {
painter->save(); painter->save();
auto pen_{painter->pen()}; auto pen_{painter->pen()};
@@ -126,7 +126,7 @@ void RemoveTerminalFromStripCommand::redo()
if (m_strip) if (m_strip)
{ {
QVector<QSharedPointer<RealTerminal>> real_t; 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); real_t.append(real_t_vector);
} }
@@ -68,7 +68,7 @@ void UnGroupTerminalsCommand::undo()
m_terminal_strip->groupTerminals(key, m_physical_real_H.value(key)); m_terminal_strip->groupTerminals(key, m_physical_real_H.value(key));
} }
//Second, set level. //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); m_terminal_strip->setLevel(pair.first, pair.second);
} }
} }
@@ -78,7 +78,7 @@ void UnGroupTerminalsCommand::redo()
{ {
if (m_terminal_strip) 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); m_terminal_strip->unGroupTerminals(value);
} }
} }
+1 -1
View File
@@ -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((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]);
+6 -6
View File
@@ -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; return false;
} }
@@ -466,7 +466,7 @@ QSharedPointer<RealTerminal> TerminalStrip::realTerminalForUuid(const QUuid &uui
QVector<QSharedPointer<RealTerminal>> TerminalStrip::realTerminals() const QVector<QSharedPointer<RealTerminal>> TerminalStrip::realTerminals() const
{ {
QVector<QSharedPointer<RealTerminal>> vector_; 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()); vector_.append(phy->realTerminals());
} }
return vector_; return vector_;
@@ -639,7 +639,7 @@ bool TerminalStrip::isBridgeable(const QVector<QSharedPointer<RealTerminal>> &re
// Get the physical terminal and pos // Get the physical terminal and pos
auto first_physical_terminal = first_real_terminal->physicalTerminal(); auto first_physical_terminal = first_real_terminal->physicalTerminal();
QVector<shared_physical_terminal> physical_vector{first_physical_terminal}; 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); auto bridge_ = isBridged(first_real_terminal);
//bool to know at the end of this function if at least one terminal is not bridged //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) 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)) if (bridge_->realTerminals().contains(real_terminal))
return bridge_; return bridge_;
} }
@@ -983,7 +983,7 @@ QDomElement TerminalStrip::toXml(QDomDocument &parent_document)
} }
root_elmt.appendChild(xml_layout); 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)); 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())) for (auto &xml_real : QETXML::findInDomElement(xml_physical, RealTerminal::xmlTagName()))
{ {
const auto uuid_ = QUuid(xml_real.attribute(QStringLiteral("element_uuid"))); 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_) if (terminal_elmt->uuid() == uuid_)
{ {
@@ -85,7 +85,7 @@ QDomElement TerminalStripBridge::toXml(QDomDocument &parent_document) const
root_elmt.setAttribute(QStringLiteral("color"), m_color.name()); root_elmt.setAttribute(QStringLiteral("color"), m_color.name());
auto terminals_elmt = parent_document.createElement(QStringLiteral("real_terminals")); 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) 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_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, const auto real_t_vector = QETXML::subChild(dom_element,
QStringLiteral("real_terminals"), QStringLiteral("real_terminals"),
@@ -69,7 +69,7 @@
</widget> </widget>
</item> </item>
<item row="12" column="1" colspan="2"> <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>
<item row="5" column="0"> <item row="5" column="0">
<widget class="QLabel" name="label_6"> <widget class="QLabel" name="label_6">
@@ -323,9 +323,9 @@
</widget> </widget>
<customwidgets> <customwidgets>
<customwidget> <customwidget>
<class>KColorCombo</class> <class>ColorComboBox</class>
<extends>QComboBox</extends> <extends>QComboBox</extends>
<header>kcolorcombo.h</header> <header>../../colorcombobox.h</header>
</customwidget> </customwidget>
</customwidgets> </customwidgets>
<resources> <resources>
@@ -535,7 +535,7 @@ modelRealTerminalData TerminalStripModel::dataAtRow(int row) const
else else
{ {
auto current_row = 0; 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) 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_row = 0;
auto current_physical = 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; auto current_real = 0;
for (int i=0 ; i<physical_data.real_data.count() ; ++i) 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; int current_phy = -1;
bool match_ = false; 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_checked_index += ptd_.real_data.size();
++current_phy; ++current_phy;
@@ -637,9 +637,9 @@ modelRealTerminalData TerminalStripModel::realDataAtIndex(int index) const
int current_checked_index = -1; 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; ++current_checked_index;
if (current_checked_index == index) { if (current_checked_index == index) {
return rtd_; return rtd_;
@@ -29,12 +29,12 @@
#include "modelTerminalData.h" #include "modelTerminalData.h"
//Code to use QColor as key for QHash //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); return qHash(key.name(), seed);
} }
//needed to use QPointer<Element> as key of QHash //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) if (key)
return qHash(key->uuid(), seed); return qHash(key->uuid(), seed);
else else
@@ -60,7 +60,7 @@ void TerminalStripTreeDockWidget::reload()
m_uuid_terminal_H.clear(); m_uuid_terminal_H.clear();
m_uuid_strip_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_); disconnect(connection_);
} }
m_strip_changed_connection.clear(); m_strip_changed_connection.clear();
@@ -222,7 +222,7 @@ void TerminalStripTreeDockWidget::buildTree()
return a->name() < b->name(); return a->name() < b->name();
}); });
for (const auto &ts : qAsConst(ts_vector)) { for (const auto &ts : std::as_const(ts_vector)) {
addTerminalStrip(ts); addTerminalStrip(ts);
} }
addFreeTerminal(); addFreeTerminal();
@@ -324,7 +324,7 @@ void TerminalStripTreeDockWidget::addFreeTerminal()
auto free_terminal_item = ui->m_tree_view->topLevelItem(1); 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(); QUuid uuid_ = terminal->uuid();
QStringList strl{terminal->actualLabel()}; QStringList strl{terminal->actualLabel()};
+17 -5
View File
@@ -20,6 +20,7 @@
#include "../diagram.h" #include "../diagram.h"
#include "../diagramposition.h" #include "../diagramposition.h"
#include "../qetapp.h" #include "../qetapp.h"
#include "../qetgraphicsitem/conductor.h"
#include "../qetgraphicsitem/element.h" #include "../qetgraphicsitem/element.h"
#include "../qetxml.h" #include "../qetxml.h"
@@ -189,12 +190,14 @@ namespace autonum
QString AssignVariables::formulaToLabel(QString formula, QString AssignVariables::formulaToLabel(QString formula,
sequentialNumbers &seqStruct, sequentialNumbers &seqStruct,
Diagram *diagram, Diagram *diagram,
const Element *elmt) const Element *elmt,
const Conductor *cndr)
{ {
AssignVariables av(std::move(formula), AssignVariables av(std::move(formula),
seqStruct, seqStruct,
diagram, diagram,
elmt); elmt,
cndr);
seqStruct = av.m_seq_struct; seqStruct = av.m_seq_struct;
return av.m_assigned_label; return av.m_assigned_label;
} }
@@ -301,13 +304,14 @@ namespace autonum
AssignVariables::AssignVariables(const QString& formula, AssignVariables::AssignVariables(const QString& formula,
const sequentialNumbers& seqStruct, const sequentialNumbers& seqStruct,
Diagram *diagram, Diagram *diagram,
const Element *elmt): const Element *elmt,
const Conductor *cndr):
m_diagram(diagram), m_diagram(diagram),
m_arg_formula(formula), m_arg_formula(formula),
m_assigned_label(formula), m_assigned_label(formula),
m_seq_struct(seqStruct), m_seq_struct(seqStruct),
m_element(elmt) m_element(elmt),
m_conductor(cndr)
{ {
if (m_diagram) if (m_diagram)
{ {
@@ -349,6 +353,14 @@ namespace autonum
m_assigned_label.replace("%prefix", m_element->getPrefix()); 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(); assignTitleBlockVar();
assignProjectVar(); assignProjectVar();
assignSequence(); assignSequence();
+4 -2
View File
@@ -24,6 +24,7 @@
#include <QString> #include <QString>
#include <QStringList> #include <QStringList>
class Conductor;
class Diagram; class Diagram;
class Element; class Element;
class ElementsLocation; class ElementsLocation;
@@ -61,12 +62,12 @@ namespace autonum
class AssignVariables class AssignVariables
{ {
public: 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 replaceVariable (const QString &formula, const DiagramContext &dc);
static QString genericXref (const Element *element); static QString genericXref (const Element *element);
private: 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 assignTitleBlockVar();
void assignProjectVar(); void assignProjectVar();
void assignSequence(); void assignSequence();
@@ -76,6 +77,7 @@ namespace autonum
QString m_assigned_label; QString m_assigned_label;
sequentialNumbers m_seq_struct; sequentialNumbers m_seq_struct;
const Element *m_element = nullptr; const Element *m_element = nullptr;
const Conductor *m_conductor = nullptr;
}; };
void setSequentialToList(QStringList &list, NumerotationContext &nc, const QString& type); void setSequentialToList(QStringList &list, NumerotationContext &nc, const QString& type);
+2 -2
View File
@@ -57,9 +57,9 @@ bool NumerotationContext::addValue(const QString &type,
const QVariant &value, const QVariant &value,
const int increase, const int increase,
const int initialvalue) { const int initialvalue) {
if (!keyIsAcceptable(type) && !value.canConvert(QVariant::String)) if (!keyIsAcceptable(type) && !value.canConvert<QString>())
return false; return false;
if (keyIsNumber(type) && !value.canConvert(QVariant::Int)) if (keyIsNumber(type) && !value.canConvert<int>())
return false; return false;
QString valuestr = value.toString(); QString valuestr = value.toString();
@@ -151,7 +151,7 @@ void AutoNumberingDockWidget::setProject(QETProject *project,
//Set Combobox Context //Set Combobox Context
setContext(); setContext();
ui->m_configure_pb->setShortcut(QKeySequence( tr("Ctrl+Shift+P"))); ui->m_configure_pb->setShortcut(Qt::CTRL | Qt::SHIFT | Qt::Key_P);
} }
/** /**
+7 -16
View File
@@ -55,11 +55,8 @@ BorderTitleBlock::BorderTitleBlock(QObject *parent) :
m_titleblock_template_renderer = new TitleBlockTemplateRenderer(this); m_titleblock_template_renderer = new TitleBlockTemplateRenderer(this);
m_titleblock_template_renderer -> setTitleBlockTemplate(QETApp::defaultTitleBlockTemplate()); m_titleblock_template_renderer -> setTitleBlockTemplate(QETApp::defaultTitleBlockTemplate());
// disable the QPicture-based cache from Qt 4.8 to avoid rendering errors and crashes // disable the QPicture-based cache to avoid rendering errors and crashes
#if QT_VERSION < QT_VERSION_CHECK(4, 8, 0) // ### Qt 6: remove
#else
m_titleblock_template_renderer -> setUseCache(false); m_titleblock_template_renderer -> setUseCache(false);
#endif
// dimensions par defaut du schema // dimensions par defaut du schema
importBorder(BorderProperties()); importBorder(BorderProperties());
@@ -239,7 +236,8 @@ void BorderTitleBlock::borderToXml(QDomElement &xml_elmt) {
xml_elmt.setAttribute("displayrows", rowsAreDisplayed() ? "true" : "false"); xml_elmt.setAttribute("displayrows", rowsAreDisplayed() ? "true" : "false");
// attribut datant de la version 0.1 - laisse pour retrocompatibilite // 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 { } else {
// separate previous digits from last digit // separate previous digits from last digit
// separe les digits precedents du dernier digit // separe les digits precedents du dernier digit
QString first_digits(string.left(string.count() - 1)); QString first_digits(string.left(string.length() - 1));
QChar last_digit(string.at(string.count() - 1)); char last_digit(string.at(string.length() - 1).unicode());
if (last_digit != 'Z') { if (last_digit != 'Z') {
// increments the last digit // increments the last digit
// incremente le dernier digit // incremente le dernier digit
#if QT_VERSION < QT_VERSION_CHECK(6, 0, 0) // ### Qt 6: remove last_digit = (char)(string[string.length()-1].unicode()) + 1;
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
return(first_digits + QString(last_digit)); return(first_digits + QString(last_digit));
} else { } else {
return(incrementLetters(first_digits) + "A"); return(incrementLetters(first_digits) % "A");
} }
} }
} }
+90
View File
@@ -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);
}
+53
View File
@@ -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
+98
View File
@@ -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>());
}
+49
View File
@@ -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
+62
View File
@@ -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();
}
+35
View File
@@ -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
-7
View File
@@ -72,14 +72,7 @@ bool ConductorNumExport::toCsv()
if (file.open(QIODevice::WriteOnly | QIODevice::Text)) if (file.open(QIODevice::WriteOnly | QIODevice::Text))
{ {
QTextStream stream(&file); 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); stream << wiresNum() << &Qt::endl(stream);
#endif
} }
else { else {
return false; return false;
+52 -59
View File
@@ -376,31 +376,31 @@ void ConductorProperties::fromXml(QDomElement &e)
*/ */
void ConductorProperties::toSettings(QSettings &settings, const QString &prefix) const void ConductorProperties::toSettings(QSettings &settings, const QString &prefix) const
{ {
settings.setValue(prefix + "color", color.name()); settings.setValue(prefix % "color", color.name());
settings.setValue(prefix + "bicolor", m_bicolor); settings.setValue(prefix % "bicolor", m_bicolor);
settings.setValue(prefix + "color2", m_color_2.name()); settings.setValue(prefix % "color2", m_color_2.name());
settings.setValue(prefix + "dash-size", m_dash_size); settings.setValue(prefix % "dash-size", m_dash_size);
settings.setValue(prefix + "style", writeStyle()); settings.setValue(prefix % "style", writeStyle());
settings.setValue(prefix + "type", typeToString(type)); settings.setValue(prefix % "type", typeToString(type));
settings.setValue(prefix + "text", text); settings.setValue(prefix % "text", text);
settings.setValue(prefix + "text_color", text_color.name()); settings.setValue(prefix % "text_color", text_color.name());
settings.setValue(prefix + "formula", m_formula); settings.setValue(prefix % "formula", m_formula);
settings.setValue(prefix + "cable", m_cable); settings.setValue(prefix % "cable", m_cable);
settings.setValue(prefix + "bus", m_bus); settings.setValue(prefix % "bus", m_bus);
settings.setValue(prefix + "function", m_function); settings.setValue(prefix % "function", m_function);
settings.setValue(prefix + "tension_protocol", m_tension_protocol); settings.setValue(prefix % "tension_protocol", m_tension_protocol);
settings.setValue(prefix + "conductor_color", m_wire_color); settings.setValue(prefix % "conductor_color", m_wire_color);
settings.setValue(prefix + "conductor_section", m_wire_section); settings.setValue(prefix % "conductor_section", m_wire_section);
settings.setValue(prefix + "textsize", QString::number(text_size)); settings.setValue(prefix % "textsize", QString::number(text_size));
settings.setValue(prefix + "size", QString::number(cond_size)); settings.setValue(prefix % "size", QString::number(cond_size));
settings.setValue(prefix + "displaytext", m_show_text); settings.setValue(prefix % "displaytext", m_show_text);
settings.setValue(prefix + "onetextperfolio", m_one_text_per_folio); settings.setValue(prefix % "onetextperfolio", m_one_text_per_folio);
settings.setValue(prefix + "vertirotatetext", QString::number(verti_rotate_text)); settings.setValue(prefix % "vertirotatetext", QString::number(verti_rotate_text));
settings.setValue(prefix + "horizrotatetext", QString::number(horiz_rotate_text)); settings.setValue(prefix % "horizrotatetext", QString::number(horiz_rotate_text));
QMetaEnum me = QMetaEnum::fromType<Qt::Alignment>(); QMetaEnum me = QMetaEnum::fromType<Qt::Alignment>();
settings.setValue(prefix + "horizontal-alignment", me.valueToKey(m_horizontal_alignment)); settings.setValue(prefix % "horizontal-alignment", me.valueToKey(m_horizontal_alignment));
settings.setValue(prefix + "vertical-alignment", me.valueToKey(m_vertical_alignment)); settings.setValue(prefix % "vertical-alignment", me.valueToKey(m_vertical_alignment));
singleLineProperties.toSettings(settings, prefix); 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()); QColor settings_color_2 = QColor(settings.value(prefix + "color2").toString());
m_color_2 = (settings_color_2.isValid()? settings_color_2 : QColor(Qt::black)); m_color_2 = (settings_color_2.isValid()? settings_color_2 : QColor(Qt::black));
m_bicolor = settings.value(prefix + "bicolor", false).toBool(); m_bicolor = settings.value(prefix % "bicolor", false).toBool();
m_dash_size = settings.value(prefix + "dash-size", 1).toInt(); 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); type = (setting_type == typeToString(Single)? Single : Multi);
singleLineProperties.fromSettings(settings, prefix); singleLineProperties.fromSettings(settings, prefix);
text = settings.value(prefix + "text", "_").toString(); text = settings.value(prefix % "text", "_").toString();
QColor settings_text_color = QColor(settings.value(prefix + "text_color").toString()); QColor settings_text_color = QColor(settings.value(prefix % "text_color").toString());
text_color = (settings_text_color.isValid()? settings_text_color : QColor(Qt::black)); text_color = (settings_text_color.isValid()? settings_text_color : QColor(Qt::black));
m_formula = settings.value(prefix + "formula", "").toString(); m_formula = settings.value(prefix % "formula", "").toString();
m_cable = settings.value(prefix + "cable", "").toString(); m_cable = settings.value(prefix % "cable", "").toString();
m_bus = settings.value(prefix + "bus", "").toString(); m_bus = settings.value(prefix % "bus", "").toString();
m_function = settings.value(prefix + "function", "").toString(); m_function = settings.value(prefix % "function", "").toString();
m_tension_protocol = settings.value(prefix + "tension_protocol", "").toString(); m_tension_protocol = settings.value(prefix % "tension_protocol", "").toString();
m_wire_color = settings.value(prefix + "conductor_color", "").toString(); m_wire_color = settings.value(prefix % "conductor_color", "").toString();
m_wire_section = settings.value(prefix + "conductor_section", "").toString(); m_wire_section = settings.value(prefix % "conductor_section", "").toString();
text_size = settings.value(prefix + "textsize", "7").toInt(); text_size = settings.value(prefix % "textsize", "7").toInt();
cond_size = settings.value(prefix + "size", "1").toInt(); cond_size = settings.value(prefix % "size", "1").toInt();
m_show_text = settings.value(prefix + "displaytext", true).toBool(); m_show_text = settings.value(prefix % "displaytext", true).toBool();
m_one_text_per_folio = settings.value(prefix + "onetextperfolio", false).toBool(); m_one_text_per_folio = settings.value(prefix % "onetextperfolio", false).toBool();
verti_rotate_text = settings.value((prefix + "vertirotatetext"), "270").toDouble(); verti_rotate_text = settings.value((prefix % "vertirotatetext"), "270").toDouble();
horiz_rotate_text = settings.value((prefix + "horizrotatetext"), "0").toDouble(); horiz_rotate_text = settings.value((prefix % "horizrotatetext"), "0").toDouble();
QMetaEnum me = QMetaEnum::fromType<Qt::Alignment>(); QMetaEnum me = QMetaEnum::fromType<Qt::Alignment>();
m_horizontal_alignment = Qt::Alignment(me.keyToValue(settings.value(prefix + "horizontal-alignment", "AlignBottom").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())); 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; if (style_string.isEmpty()) return;
// recupere la liste des couples style / valeur // 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); QStringList styles = style_string.split(";", Qt::SkipEmptyParts);
#endif
QRegularExpression Rx("^(?<name>[a-z-]+): (?<value>[a-z-]+)$"); QRegularExpression Rx("^(?<name>[a-z-]+): (?<value>[a-z-]+)$");
if (!Rx.isValid()) if (!Rx.isValid())
@@ -896,10 +889,10 @@ int SingleLineProperties::operator!=(const SingleLineProperties &other) const
void SingleLineProperties::toSettings(QSettings &settings, void SingleLineProperties::toSettings(QSettings &settings,
const QString &prefix) const const QString &prefix) const
{ {
settings.setValue(prefix + "hasGround", hasGround); settings.setValue(prefix % "hasGround", hasGround);
settings.setValue(prefix + "hasNeutral", hasNeutral); settings.setValue(prefix % "hasNeutral", hasNeutral);
settings.setValue(prefix + "phases", phases); settings.setValue(prefix % "phases", phases);
settings.setValue(prefix + "pen", is_pen); settings.setValue(prefix % "pen", is_pen);
} }
/** /**
@@ -908,8 +901,8 @@ void SingleLineProperties::toSettings(QSettings &settings,
*/ */
void SingleLineProperties::fromSettings(QSettings &settings, void SingleLineProperties::fromSettings(QSettings &settings,
const QString &prefix) { const QString &prefix) {
hasGround = settings.value(prefix + "hasGround", true).toBool(); hasGround = settings.value(prefix % "hasGround", true).toBool();
hasNeutral = settings.value(prefix + "hasNeutral", true).toBool(); hasNeutral = settings.value(prefix % "hasNeutral", true).toBool();
phases = settings.value(prefix + "phases", 1).toInt(); phases = settings.value(prefix % "phases", 1).toInt();
is_pen = settings.value(prefix + "pen", false).toBool(); is_pen = settings.value(prefix % "pen", false).toBool();
} }
+17 -7
View File
@@ -253,9 +253,11 @@ bool projectDataBase::createDataBase()
return false; return false;
} }
m_data_base.exec("PRAGMA temp_store = MEMORY"); QSqlQuery *temp_query = new QSqlQuery(m_data_base);
m_data_base.exec("PRAGMA journal_mode = MEMORY"); temp_query->exec("PRAGMA temp_store = MEMORY");
m_data_base.exec("PRAGMA synchronous = OFF"); temp_query->exec("PRAGMA journal_mode = MEMORY");
temp_query->exec("PRAGMA synchronous = OFF");
delete temp_query;
QSqlQuery query_(m_data_base); QSqlQuery query_(m_data_base);
bool first_ = true; bool first_ = true;
@@ -398,6 +400,14 @@ void projectDataBase::createElementNomenclatureView()
if (!query.exec(create_view)) { if (!query.exec(create_view)) {
qDebug() << query.lastError(); 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()) for (auto diagram : m_project->diagrams())
{ {
const ElementProvider ep(diagram); 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) for (const auto &elmt : elmt_vector)
{ {
const auto elmt_data = elmt->elementData(); const auto elmt_data = elmt->elementData();
@@ -479,9 +489,9 @@ void projectDataBase::populateElementInfoTable()
for (const auto &diagram : m_project->diagrams()) for (const auto &diagram : m_project->diagrams())
{ {
const ElementProvider ep(diagram); 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) for (const auto &elmt : elmt_vector)
{ {
m_insert_element_info_query.bindValue(QStringLiteral(":uuid"), elmt->uuid().toString()); m_insert_element_info_query.bindValue(QStringLiteral(":uuid"), elmt->uuid().toString());
+2 -2
View File
@@ -171,7 +171,7 @@ void ElementQueryWidget::setQuery(const QString &query)
if (ui->m_simple_cb->isChecked()) { if (ui->m_simple_cb->isChecked()) {
++c; ++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()) { if (ui->m_terminal_cb->isChecked()) {
++c; ++c;
} }
@@ -340,7 +340,7 @@ QString ElementQueryWidget::queryStr() const
bool b = false; bool b = false;
if (ui->m_terminal_cb->isChecked()) { if (ui->m_terminal_cb->isChecked()) {
if (b) where +=" OR"; if (b) where +=" OR";
where += QStringLiteral(" element_type = '") += ElementData::typeToString(ElementData::Terminale) += "'"; where += QStringLiteral(" element_type = '") += ElementData::typeToString(ElementData::Terminal) += "'";
b = true; b = true;
} }
if (ui->m_thumbnail_cb->isChecked()) { if (ui->m_thumbnail_cb->isChecked()) {
+19 -28
View File
@@ -151,7 +151,7 @@ Diagram::~Diagram()
continue; continue;
deletable_items.append(qgi); deletable_items.append(qgi);
} }
for (const auto &item : qAsConst(deletable_items)) for (const auto &item : std::as_const(deletable_items))
{ {
removeItem(item); removeItem(item);
delete item; delete item;
@@ -213,8 +213,8 @@ void Diagram::drawBackground(QPainter *p, const QRectF &r) {
.insideBorderRect() .insideBorderRect()
.intersected(r); .intersected(r);
qreal limite_x = rect.x() + rect.width(); qreal limit_x = rect.x() + rect.width();
qreal limite_y = rect.y() + rect.height(); qreal limit_y = rect.y() + rect.height();
int g_x = (int)ceil(rect.x()); int g_x = (int)ceil(rect.x());
while (g_x % xGrid) ++ g_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; while (g_y % yGrid) ++ g_y;
QPolygon points; QPolygon points;
for (int gx = g_x ; gx < limite_x ; gx += xGrid) { for (int gx = g_x ; gx < limit_x ; gx += xGrid) {
for (int gy = g_y ; gy < limite_y ; gy += yGrid) { for (int gy = g_y ; gy < limit_y ; gy += yGrid) {
points << QPoint(gx, gy); points << QPoint(gx, gy);
} }
} }
@@ -1139,8 +1139,8 @@ Terminal* findTerminal(int conductor_index,
assert(conductor_index == 1 || conductor_index == 2); assert(conductor_index == 1 || conductor_index == 2);
auto str_index = QString::number(conductor_index); auto str_index = QString::number(conductor_index);
QString element_index = QStringLiteral("element") + str_index; QString element_index = QStringLiteral("element") % str_index;
QString terminal_index = QStringLiteral("terminal") + str_index; QString terminal_index = QStringLiteral("terminal") % str_index;
if (f.hasAttribute(element_index)) { if (f.hasAttribute(element_index)) {
QUuid element_uuid = QUuid(f.attribute(element_index)); QUuid element_uuid = QUuid(f.attribute(element_index));
@@ -1453,13 +1453,13 @@ bool Diagram::fromXml(QDomElement &document,
if (position != QPointF()) if (position != QPointF())
{ {
QVector <QGraphicsItem *> added_items; QVector <QGraphicsItem *> added_items;
for (auto element : qAsConst(added_elements )) added_items << element; for (auto element : std::as_const(added_elements )) added_items << element;
for (auto cond : qAsConst(added_conductors )) added_items << cond; for (auto cond : std::as_const(added_conductors )) added_items << cond;
for (auto shape : qAsConst(added_shapes )) added_items << shape; for (auto shape : std::as_const(added_shapes )) added_items << shape;
for (auto text : qAsConst(added_texts )) added_items << text; for (auto text : std::as_const(added_texts )) added_items << text;
for (auto image : qAsConst(added_images )) added_items << image; for (auto image : std::as_const(added_images )) added_items << image;
for (auto table : qAsConst(added_tables )) added_items << table; for (auto table : std::as_const(added_tables )) added_items << table;
for (const auto &strip : qAsConst(added_strips)) added_items << strip; 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 //Get the top left corner of the rectangle that contain all added items
QRectF items_rect; QRectF items_rect;
@@ -1483,14 +1483,6 @@ bool Diagram::fromXml(QDomElement &document,
if (content_ptr) { if (content_ptr) {
content_ptr -> m_elements = added_elements; content_ptr -> m_elements = added_elements;
content_ptr -> m_conductors_to_move = added_conductors; 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 *>( content_ptr -> m_text_fields = QSet<IndependentTextItem *>(
added_texts.begin(), added_texts.begin(),
added_texts.end()); added_texts.end());
@@ -1501,7 +1493,6 @@ bool Diagram::fromXml(QDomElement &document,
added_shapes.begin(), added_shapes.begin(),
added_shapes.end()); added_shapes.end());
content_ptr->m_terminal_strip.swap(added_strips); content_ptr->m_terminal_strip.swap(added_strips);
#endif
content_ptr->m_tables.swap(added_tables); content_ptr->m_tables.swap(added_tables);
} }
@@ -1536,9 +1527,9 @@ void Diagram::folioSequentialsFromXml(const QDomElement &root,
QStringList list; QStringList list;
int i = 1; int i = 1;
while (folioseq.hasAttribute(seq while (folioseq.hasAttribute(seq
+ QString::number(i))) { % QString::number(i))) {
list << folioseq.attribute( list << folioseq.attribute(
seq + QString::number(i)); seq % QString::number(i));
i++; i++;
} }
hash->insert(title,list); hash->insert(title,list);
@@ -1568,11 +1559,11 @@ void Diagram::refreshContents()
conductor->refreshText(); conductor->refreshText();
} }
for (auto &table : qAsConst(dc_.m_tables)) { for (auto &table : std::as_const(dc_.m_tables)) {
table->initLink(); table->initLink();
} }
for (auto &strip :qAsConst(dc_.m_terminal_strip)) { for (auto &strip :std::as_const(dc_.m_terminal_strip)) {
strip->refreshPending(); strip->refreshPending();
} }
} }
@@ -1757,7 +1748,7 @@ void Diagram::invertSelection()
item_list << item; item_list << item;
} }
} }
for (auto item : qAsConst(item_list)) { for (auto item : std::as_const(item_list)) {
item -> setSelected(!item -> isSelected()); item -> setSelected(!item -> isSelected());
} }
+4 -4
View File
@@ -55,7 +55,7 @@ DiagramContent::DiagramContent(Diagram *diagram, bool selected) :
item_list = diagram->items(); item_list = diagram->items();
} }
for (const auto &item : qAsConst(item_list)) for (const auto &item : std::as_const(item_list))
{ {
switch (item->type()) 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 & ElementTextFields) for(auto qgi : m_element_texts) items_list << qgi;
if (filter & TextGroup) for(auto qgi : m_texts_groups) 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 & 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) { 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); 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 & 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 & 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 & 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 { else {
if (filter & Elements) count += m_elements.count(); if (filter & Elements) count += m_elements.count();

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