Compare commits

...

61 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
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
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
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
82 changed files with 853 additions and 756 deletions

View File

@@ -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})
if(NOT QMFILES_AS_RESOURCE)
install(FILES ${QM_FILES} DESTINATION ${QET_LANG_PATH})
endif()
endif()

View File

@@ -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()

View File

@@ -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)

View File

@@ -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)
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})
if(BUILD_KF6)
Include(FetchContent)
option(BUILD_KF5 "Build KF5 libraries, use system ones otherwise" YES)
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()

View File

@@ -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()

View File

@@ -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)

View File

@@ -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

View File

@@ -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)

View File

@@ -26,11 +26,8 @@
#include "xmlprojectelementcollectionitem.h"
#include <QFutureWatcher>
#if QT_VERSION < QT_VERSION_CHECK(6, 0, 0) // ### Qt 6: remove
#include <QtConcurrentMap>
#else
#include <QtConcurrentRun>
#endif
/**
@brief ElementsCollectionModel::ElementsCollectionModel
@@ -296,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);
}

View File

@@ -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;
}

View File

@@ -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

View File

@@ -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()};

View File

@@ -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);
}

View File

@@ -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);
}
}

View File

@@ -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]);

View File

@@ -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_)
{

View File

@@ -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"),

View File

@@ -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>

View File

@@ -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_;

View File

@@ -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

View File

@@ -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()};

View File

@@ -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();

View File

@@ -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,6 +236,7 @@ void BorderTitleBlock::borderToXml(QDomElement &xml_elmt) {
xml_elmt.setAttribute("displayrows", rowsAreDisplayed() ? "true" : "false");
// attribut datant de la version 0.1 - laisse pour retrocompatibilite
// 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");
}
}
}

90
sources/colorbutton.cpp Normal file
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
sources/colorbutton.h Normal file
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
sources/colorcombobox.cpp Normal file
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
sources/colorcombobox.h Normal file
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

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();
}

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

View File

@@ -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;

View File

@@ -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();
}

View File

@@ -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;

View File

@@ -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());
}

View File

@@ -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();

View File

@@ -93,7 +93,10 @@ DiagramView::DiagramView(Diagram *diagram, QWidget *parent) :
connect(m_diagram, SIGNAL(showDiagram(Diagram*)), this, SIGNAL(showDiagram(Diagram*)));
connect(m_diagram, SIGNAL(sceneRectChanged(QRectF)), this, SLOT(adjustSceneRect()));
connect(&(m_diagram -> border_and_titleblock), SIGNAL(diagramTitleChanged(const QString &)), this, SLOT(updateWindowTitle()));
// TODO: review the following line. Old line commented out, been broken since commit
// "27dcd5ef007a282d1a5a7f2f3dcaefc62669d668".
// connect(&(m_diagram -> border_and_titleblock), SIGNAL(diagramTitleChanged(const QString &)), this, SLOT(updateWindowTitle()));
connect(&(m_diagram->border_and_titleblock), &BorderTitleBlock::informationChanged, this, &DiagramView::updateWindowTitle);
connect(diagram, SIGNAL(findElementRequired(ElementsLocation)), this, SIGNAL(findElementRequired(ElementsLocation)));
QShortcut *edit_conductor_color_shortcut = new QShortcut(QKeySequence(Qt::Key_F2), this);
@@ -203,18 +206,9 @@ void DiagramView::handleElementDrop(QDropEvent *event)
return;
}
#if QT_VERSION < QT_VERSION_CHECK(6, 0, 0) // ### Qt 6: remove
diagram()->setEventInterface(
new DiagramEventAddElement(
location, diagram(), mapToScene(event->pos())));
#else
#if TODO_LIST
#pragma message("@TODO remove code for QT 6 or later")
#endif
diagram()->setEventInterface(
new DiagramEventAddElement(
location, diagram(), event->position()));
#endif
//Set focus to the view to get event
this->setFocus();
@@ -283,17 +277,8 @@ void DiagramView::handleTextDrop(QDropEvent *e) {
iti -> setHtml (e -> mimeData() -> text());
}
#if QT_VERSION < QT_VERSION_CHECK(6, 0, 0) // ### Qt 6: remove
m_diagram->undoStack().push(new AddGraphicsObjectCommand(
iti, m_diagram, mapToScene(e->pos())));
#else
#if TODO_LIST
#pragma message("@TODO remove code for QT 6 or later")
#endif
m_diagram->undoStack().push(new AddGraphicsObjectCommand(
iti, m_diagram, e->position()));
#endif
}
/**
@@ -447,15 +432,7 @@ void DiagramView::mousePressEvent(QMouseEvent *e)
if (m_event_interface && m_event_interface->mousePressEvent(e)) return;
//Start drag view when hold the middle button
#if QT_VERSION < QT_VERSION_CHECK(5, 15, 1) // ### Qt 6: remove
if (e->button() == Qt::MidButton)
#else
#if TODO_LIST
#pragma message("@TODO remove code for QT 6 or later")
#endif
if (e->button() == Qt::MiddleButton)
#endif
{
m_drag_last_pos = e->pos();
viewport()->setCursor(Qt::ClosedHandCursor);
@@ -505,14 +482,7 @@ void DiagramView::mouseMoveEvent(QMouseEvent *e)
if (m_event_interface && m_event_interface->mouseMoveEvent(e)) return;
// Drag the view
#if QT_VERSION < QT_VERSION_CHECK(5, 15, 1) // ### Qt 6: remove
if (e->buttons() == Qt::MidButton)
#else
#if TODO_LIST
#pragma message("@TODO remove code for QT 6 or later")
#endif
if (e->buttons() == Qt::MiddleButton)
#endif
{
QScrollBar *h = horizontalScrollBar();
QScrollBar *v = verticalScrollBar();
@@ -573,14 +543,7 @@ void DiagramView::mouseReleaseEvent(QMouseEvent *e)
if (m_event_interface && m_event_interface->mouseReleaseEvent(e)) return;
// Stop drag view
#if QT_VERSION < QT_VERSION_CHECK(5, 15, 1) // ### Qt 6: remove
if (e->button() == Qt::MidButton)
#else
#if TODO_LIST
#pragma message("@TODO remove code for QT 6 or later")
#endif
if (e->button() == Qt::MiddleButton)
#endif
{
viewport()->setCursor(Qt::ArrowCursor);
}
@@ -614,14 +577,7 @@ void DiagramView::mouseReleaseEvent(QMouseEvent *e)
QMenu *menu = new QMenu(this);
menu->addAction(act);
#if QT_VERSION < QT_VERSION_CHECK(6, 0, 0) // ### Qt 6: remove
menu->popup(e->globalPos());
#else
#if TODO_LIST
#pragma message("@TODO remove code for QT 6 or later")
#endif
menu->popup(e->pos());
#endif
}
m_free_rubberbanding = false;

View File

@@ -746,7 +746,7 @@ void ElementScene::addItems(QVector<QGraphicsItem *> items)
*/
void ElementScene::removeItems(QVector<QGraphicsItem *> items)
{
const int previous_selected_count{selectedItems().size()};
const qsizetype previous_selected_count{selectedItems().size()};
//block signal to avoid multiple emit of selection changed,
//we emit this signal only once at the end of this function.

View File

@@ -140,10 +140,7 @@ void DynamicTextFieldEditor::updateForm()
ui -> m_user_text_le -> setText(m_text_field.data() -> text());
ui -> m_size_sb -> setValue(m_text_field.data() -> font().pointSize());
ui->m_keep_visual_rotation_cb->setChecked(m_text_field.data()->keepVisualRotation());
#ifdef BUILD_WITHOUT_KF5
#else
m_color_kpb -> setColor(m_text_field.data() -> color());
#endif
ui -> m_width_sb -> setValue(m_text_field.data() -> textWidth());
ui -> m_font_pb -> setText(m_text_field -> font().family());
@@ -169,16 +166,13 @@ void DynamicTextFieldEditor::updateForm()
void DynamicTextFieldEditor::setupWidget()
{
#ifdef BUILD_WITHOUT_KF5
#else
m_color_kpb = new KColorButton(this);
m_color_kpb = new ColorButton(this);
m_color_kpb->setObjectName(QString::fromUtf8("m_color_kpb"));
connect(m_color_kpb, &KColorButton::changed,
this, &DynamicTextFieldEditor::on_m_color_kpb_changed);
connect(m_color_kpb, &ColorButton::changed,
this, &DynamicTextFieldEditor::m_color_kpb_changed);
ui->m_main_grid_layout->addWidget(m_color_kpb, 6, 1, 1, 2);
#endif
}
void DynamicTextFieldEditor::setUpConnections()
@@ -312,8 +306,8 @@ void DynamicTextFieldEditor::on_m_width_sb_editingFinished()
}
}
void DynamicTextFieldEditor::on_m_elmt_info_cb_activated(const QString &arg1) {
Q_UNUSED(arg1)
void DynamicTextFieldEditor::on_m_elmt_info_cb_activated(int index) {
Q_UNUSED(index)
QString info = ui -> m_elmt_info_cb -> currentData().toString();
for (int i = 0; i < m_parts.length(); i++) {
@@ -414,7 +408,7 @@ void DynamicTextFieldEditor::on_m_font_pb_clicked()
}
}
void DynamicTextFieldEditor::on_m_color_kpb_changed(const QColor &newColor) {
void DynamicTextFieldEditor::m_color_kpb_changed(QColor newColor) {
if (!newColor.isValid()) {
return;
}

View File

@@ -21,10 +21,7 @@
#include "../elementitemeditor.h"
#include "../graphicspart/partdynamictextfield.h"
#ifdef BUILD_WITHOUT_KF5
#else
# include <KColorButton>
#endif
#include "../../colorbutton.h"
namespace Ui {
class DynamicTextFieldEditor;
@@ -61,13 +58,13 @@ class DynamicTextFieldEditor : public ElementItemEditor {
void on_m_size_sb_editingFinished();
void on_m_frame_cb_clicked();
void on_m_width_sb_editingFinished();
void on_m_elmt_info_cb_activated(const QString &arg1);
void on_m_elmt_info_cb_activated(int index);
void on_m_text_from_cb_activated(int index);
void on_m_composite_text_pb_clicked();
void on_m_alignment_pb_clicked();
void on_m_font_pb_clicked();
void on_m_color_kpb_changed(const QColor &newColor);
void m_color_kpb_changed(QColor newColor);
void on_m_keep_visual_rotation_cb_clicked();
@@ -77,10 +74,7 @@ class DynamicTextFieldEditor : public ElementItemEditor {
QList<PartDynamicTextField*> m_parts;
QList<QMetaObject::Connection> m_connection_list;
#ifdef BUILD_WITHOUT_KF5
#else
KColorButton* m_color_kpb = nullptr;
#endif
ColorButton* m_color_kpb = nullptr;
};
#endif // DYNAMICTEXTFIELDEDITOR_H

View File

@@ -487,7 +487,7 @@ void QETElementEditor::fillPartsList()
#if TODO_LIST
#pragma message("@TODO remove code for QT 6 or later")
#endif
qDebug()<<"Help code for QT 6 or later";
v.setValue(qgi);
#endif
qlwi -> setData(42, v);
m_parts_list -> addItem(qlwi);
@@ -1069,7 +1069,7 @@ void QETElementEditor::updateAction()
<< ui->m_revert_selection_action
<< ui->m_paste_from_file_action
<< ui->m_paste_from_element_action;
for (auto action : qAsConst(ro_list)) {
for (auto action : std::as_const(ro_list)) {
action->setDisabled(m_read_only);
}
@@ -1084,7 +1084,7 @@ void QETElementEditor::updateAction()
<< ui->m_flip_action
<< ui->m_mirror_action;
auto items_selected = !m_read_only && m_elmt_scene->selectedItems().count();
for (auto action : qAsConst(select_list)) {
for (auto action : std::as_const(select_list)) {
action->setEnabled(items_selected);
}

View File

@@ -229,7 +229,7 @@ void TerminalEditor::activeConnections(bool active)
m_editor_connections << connect(ui->m_type_cb, QOverload<int>::of(&QComboBox::activated),
this, &TerminalEditor::typeEdited);
} else {
for (auto const & con : qAsConst(m_editor_connections)) {
for (auto const & con : std::as_const(m_editor_connections)) {
QObject::disconnect(con);
}
m_editor_connections.clear();

View File

@@ -62,10 +62,7 @@ void TextEditor::updateForm()
m_rotation_sb -> setValue(m_text -> rotation());
m_size_sb -> setValue(m_text -> font().pointSize());
m_font_pb -> setText(m_text -> font().family());
#ifdef BUILD_WITHOUT_KF5
#else
m_color_pb -> setColor(m_text -> defaultTextColor());
#endif
setUpEditConnection();
}
@@ -84,7 +81,7 @@ void TextEditor::setUpChangeConnection(QPointer<PartText> part)
void TextEditor::disconnectChangeConnection()
{
for (const auto &connection : qAsConst(m_change_connection)) {
for (const auto &connection : std::as_const(m_change_connection)) {
disconnect(connection);
}
m_change_connection.clear();
@@ -344,19 +341,16 @@ void TextEditor::setUpWidget(QWidget *parent)
m_line_edit->setPlaceholderText(tr("Entrer votre texte ici"));
gridLayout->addWidget(m_line_edit, 0, 0, 1, 6);
#ifdef BUILD_WITHOUT_KF5
#else
m_color_pb = new KColorButton(parent);
m_color_pb = new ColorButton(parent);
m_color_pb->setObjectName(QString::fromUtf8("m_color_pb"));
connect(
m_color_pb,
&KColorButton::changed,
&ColorButton::changed,
this,
&TextEditor::on_m_color_pb_changed);
gridLayout->addWidget(m_color_pb, 2, 5, 1, 1);
#endif
QLabel *label_5 = new QLabel(parent);
label_5->setObjectName(QString::fromUtf8("label_5"));

View File

@@ -25,10 +25,7 @@
#include <QSpinBox>
#include <QLineEdit>
#include <QPushButton>
#ifdef BUILD_WITHOUT_KF5
#else
#include <KColorButton>
#endif
#include "../../colorbutton.h"
class PartText;
class TextEditor : public ElementItemEditor {
@@ -65,10 +62,7 @@ class TextEditor : public ElementItemEditor {
QSpinBox *m_size_sb;
QLineEdit *m_line_edit;
QPushButton *m_font_pb;
#ifdef BUILD_WITHOUT_KF5
#else
KColorButton *m_color_pb;
#endif
ColorButton *m_color_pb;
};
#endif // TEXTEDITOR_H

View File

@@ -59,11 +59,11 @@ QVector <QPointer<Element>> ElementProvider::freeElement(ElementData::Types filt
QList<Element *> elmt_list;
//search in all diagram
for (const auto &diagram_ : qAsConst(m_diagram_list))
for (const auto &diagram_ : std::as_const(m_diagram_list))
{
//get all element in diagram d
elmt_list = diagram_->elements();
for (const auto &elmt_ : qAsConst(elmt_list))
for (const auto &elmt_ : std::as_const(elmt_list))
{
if (filter & elmt_->elementData().m_type &&
elmt_->isFree())
@@ -106,7 +106,7 @@ QList <Element *> ElementProvider::fromUuids(QList<QUuid> uuid_list) const
QVector<QPointer<Element>> ElementProvider::find(ElementData::Types elmt_type) const
{
QVector<QPointer<Element>> returned_vector;
for (const auto &diagram_ : qAsConst(m_diagram_list))
for (const auto &diagram_ : std::as_const(m_diagram_list))
{
const auto elmt_list = diagram_->elements();
for (const auto &elmt_ : elmt_list)
@@ -198,7 +198,7 @@ QVector<TerminalElement *> ElementProvider::freeTerminal() const
{
QVector<TerminalElement *> vector_;
for (const auto &diagram : qAsConst(m_diagram_list))
for (const auto &diagram : std::as_const(m_diagram_list))
{
const auto elmt_list{diagram->elements()};

View File

@@ -45,18 +45,19 @@ ElementsCollectionCache::ElementsCollectionCache(const QString &database_path, Q
qDebug() << "Unable to open the SQLite database " << database_path << " as " << connection_name << ": " << cache_db_.lastError();
else
{
cache_db_.exec("PRAGMA temp_store = MEMORY");
cache_db_.exec("PRAGMA journal_mode = MEMORY");
cache_db_.exec("PRAGMA page_size = 4096");
cache_db_.exec("PRAGMA cache_size = 16384");
cache_db_.exec("PRAGMA locking_mode = EXCLUSIVE");
cache_db_.exec("PRAGMA synchronous = OFF");
QSqlQuery *temp_query = new QSqlQuery(cache_db_);
temp_query->exec("PRAGMA temp_store = MEMORY");
temp_query->exec("PRAGMA journal_mode = MEMORY");
temp_query->exec("PRAGMA page_size = 4096");
temp_query->exec("PRAGMA cache_size = 16384");
temp_query->exec("PRAGMA locking_mode = EXCLUSIVE");
temp_query->exec("PRAGMA synchronous = OFF");
#if TODO_LIST
#pragma message("@TODO the tables could already exist, handle that case.")
#endif
//@TODO the tables could already exist, handle that case.
cache_db_.exec("CREATE TABLE names"
temp_query->exec("CREATE TABLE names"
"("
"path VARCHAR(512) NOT NULL,"
"locale VARCHAR(2) NOT NULL,"
@@ -65,12 +66,13 @@ ElementsCollectionCache::ElementsCollectionCache(const QString &database_path, Q
"PRIMARY KEY(path, locale)"
");");
cache_db_.exec("CREATE TABLE pixmaps"
temp_query->exec("CREATE TABLE pixmaps"
"("
"path VARCHAR(512) NOT NULL UNIQUE,"
"uuid VARCHAR(512) NOT NULL,"
"pixmap BLOB, PRIMARY KEY(path),"
"FOREIGN KEY(path) REFERENCES names (path) ON DELETE CASCADE);");
delete temp_query;
// prepare queries
select_name_ = new QSqlQuery(cache_db_);

View File

@@ -180,7 +180,7 @@ void ElementsPanelWidget::reloadAndFilter()
}
/**
* Emit the requestForProject signal with te selected project
* Emit the requestForProject signal with the selected project
*/
void ElementsPanelWidget::activateProject()
{

View File

@@ -59,7 +59,7 @@ ExportElementTextPattern::ExportElementTextPattern(Element *elmt) :
return;
//Check if a conf with the same name already exist
if (QFileInfo::exists(dir.absoluteFilePath(m_name + ".xml")))
if (QFileInfo::exists(dir.absoluteFilePath(m_name % ".xml")))
{
bool r = QMessageBox::question(parentWidget(),
QObject::tr("Configuration de textes"),
@@ -71,7 +71,7 @@ ExportElementTextPattern::ExportElementTextPattern(Element *elmt) :
}
QDomDocument doc = xmlConf();
QET::writeXmlFile(doc, dir.absoluteFilePath(m_name + ".xml"));
QET::writeXmlFile(doc, dir.absoluteFilePath(m_name % ".xml"));
}
/**
@@ -202,7 +202,7 @@ void ImportElementTextPattern::apply(QString name, bool erase) const
if(!name.endsWith(".xml"))
name.append(".xml");
QFile conf_file(QETApp::configDir() + "/element_texts_pattern/" + name);
QFile conf_file(QETApp::configDir() % "/element_texts_pattern/" % name);
if(!conf_file.open(QIODevice::ReadOnly | QIODevice::Text))
return;

View File

@@ -128,7 +128,9 @@ int ExportDialog::diagramsToExportCount() const
/**
Met en place la liste des schemas
Set up the schematics list
@return Le widget representant la liste des schemas
The widget representing the list of schematics
*/
QWidget *ExportDialog::initDiagramsListPart()
{
@@ -139,12 +141,12 @@ QWidget *ExportDialog::initDiagramsListPart()
reset_mapper_ = new QSignalMapper(this);
clipboard_mapper_ = new QSignalMapper(this);
connect(preview_mapper_, SIGNAL(mapped(int)), this, SLOT(slot_previewDiagram(int)));
connect(width_mapper_, SIGNAL(mapped(int)), this, SLOT(slot_correctHeight(int)));
connect(height_mapper_, SIGNAL(mapped(int)), this, SLOT(slot_correctWidth(int)));
connect(ratio_mapper_, SIGNAL(mapped(int)), this, SLOT(slot_keepRatioChanged(int)));
connect(reset_mapper_, SIGNAL(mapped(int)), this, SLOT(slot_resetSize(int)));
connect(clipboard_mapper_, SIGNAL(mapped(int)), this, SLOT(slot_exportToClipBoard(int)));
connect(preview_mapper_, SIGNAL(mappedInt(int)), this, SLOT(slot_previewDiagram(int)));
connect(width_mapper_, SIGNAL(mappedInt(int)), this, SLOT(slot_correctHeight(int)));
connect(height_mapper_, SIGNAL(mappedInt(int)), this, SLOT(slot_correctWidth(int)));
connect(ratio_mapper_, SIGNAL(mappedInt(int)), this, SLOT(slot_keepRatioChanged(int)));
connect(reset_mapper_, SIGNAL(mappedInt(int)), this, SLOT(slot_resetSize(int)));
connect(clipboard_mapper_, SIGNAL(mappedInt(int)), this, SLOT(slot_exportToClipBoard(int)));
diagrams_list_layout_ = new QGridLayout();
@@ -245,21 +247,28 @@ QSize ExportDialog::diagramSize(Diagram *diagram)
Cette methode ajuste la largeur d'un des schemas a exporter en fonction de
sa hauteur si et seulement si l'option "Conserver les proportions" est
activee pour ce schema.
@param diagram_id numero du schema concerne
This method adjusts the width of one of the layouts to be exported
according to its height if, and only if, the Keep proportions option
is enabled for this layout.
@param diagram_id numero du schema concerne / number of drawing concerned
*/
void ExportDialog::slot_correctWidth(int diagram_id)
{
// recupere l'ExportDiagramLine concernee
// retrieve the ExportDiagramLine concerned
ExportDialog::ExportDiagramLine *current_diagram = diagram_lines_[diagram_id];
if (!current_diagram) return;
// ne fait rien si l'option "Conserver les proportions" n'est pas activee
// do nothing if the Keep proportions option is not active
if (!(current_diagram -> keep_ratio -> isChecked())) return;
// recupere les proportions du schema
// retrieve the proportions of the diagram
qreal diagram_ratio = diagramRatio(current_diagram -> diagram);
// ajuste la largeur
// adjust the width
current_diagram -> width -> blockSignals(true);
current_diagram -> width -> setValue(qRound(current_diagram -> height -> value() * diagram_ratio));
current_diagram -> width -> blockSignals(false);
@@ -269,21 +278,28 @@ void ExportDialog::slot_correctWidth(int diagram_id)
Cette methode ajuste la hauteur d'un des schemas a exporter en fonction de
sa largeur si et seulement si l'option "Conserver les proportions" est
activee pour ce schema.
@param diagram_id numero du schema concerne
This method adjusts the height of one of the layouts to be exported
according to its width if, and only if, the Keep proportions option
is enabled for this layout.
@param diagram_id numero du schema concerne / number of drawing concerned
*/
void ExportDialog::slot_correctHeight(int diagram_id)
{
// recupere l'ExportDiagramLine concernee
// retrieve the ExportDiagramLine concerned
ExportDialog::ExportDiagramLine *current_diagram = diagram_lines_[diagram_id];
if (!current_diagram) return;
// ne fait rien si l'option "Conserver les proportions" n'est pas activee
// do nothing if the Keep proportions option is not active
if (!(current_diagram -> keep_ratio -> isChecked())) return;
// recupere les proportions du schema
// retrieve the proportions of the diagram
qreal diagram_ratio = diagramRatio(current_diagram -> diagram);
// ajuste la hauteur
// adjust the height
current_diagram -> height -> blockSignals(true);
current_diagram -> height -> setValue(qRound(current_diagram -> width -> value() / diagram_ratio));
current_diagram -> height -> blockSignals(false);
@@ -297,10 +313,12 @@ void ExportDialog::slot_correctHeight(int diagram_id)
void ExportDialog::slot_keepRatioChanged(int diagram_id)
{
// recupere l'ExportDiagramLine concernee
// retrieve the ExportDiagramLine concerned
ExportDialog::ExportDiagramLine *current_diagram = diagram_lines_[diagram_id];
if (!current_diagram) return;
// gere l'icone du bouton "Conserver les proportions"
// manages the Keep proportions button icon
if (current_diagram -> keep_ratio -> isChecked()) {
current_diagram -> keep_ratio -> setIcon(QET::Icons::ObjectLocked);
} else {
@@ -308,9 +326,11 @@ void ExportDialog::slot_keepRatioChanged(int diagram_id)
}
// ne fait rien si l'option "Conserver les proportions" n'est pas activee
// do nothing if the Keep proportions option is not active
if (!(current_diagram -> keep_ratio -> isChecked())) return;
// au contraire, si elle est activee, ajuste la hauteur en fonction de la largeur
// on the other hand, if it is active, adjusts the height according to the width
slot_correctHeight(diagram_id);
}
@@ -770,7 +790,7 @@ void ExportDialog::exportDiagram(ExportDiagramLine *diagram_line) {
// recupere le format a utiliser (acronyme et extension)
QString format_acronym = export_properties.format;
QString format_extension = "." + format_acronym.toLower();
QString format_extension = "." % format_acronym.toLower();
// determine le nom de fichier a utiliser
QString diagram_path = diagram_line -> file_name -> text();
@@ -867,7 +887,7 @@ void ExportDialog::slot_checkDiagramsCount()
void ExportDialog::slot_changeFilesExtension(bool force_extension) {
// recupere le format a utiliser (acronyme et extension)
QString format_acronym = epw -> exportProperties().format;
QString format_extension = "." + format_acronym.toLower();
QString format_extension = "." % format_acronym.toLower();
// set maximum width / height according limitations in QPainter
if ((format_extension == ".bmp") ||
@@ -897,11 +917,11 @@ void ExportDialog::slot_changeFilesExtension(bool force_extension) {
// cas 2 : l'extension est absente
if (diagram_filename_info.suffix().isEmpty()) {
if (force_extension) {
diagram_filename = diagram_filename_info.completeBaseName() + format_extension;
diagram_filename = diagram_filename_info.completeBaseName() % format_extension;
}
} else {
// cas 3 : l'extension est presente mais erronee
diagram_filename = diagram_filename_info.completeBaseName() + format_extension;
diagram_filename = diagram_filename_info.completeBaseName() % format_extension;
}
diagram_line -> file_name -> setText(diagram_filename);
@@ -1014,7 +1034,7 @@ ExportDialog::ExportDiagramLine::ExportDiagramLine(Diagram *dia, QSize diagram_s
if (diagram_title.isEmpty()) diagram_title = QObject::tr("Folio sans titre");
QString diagram_filename = diagram -> title();
if (diagram_filename.isEmpty()) diagram_filename = QObject::tr("schema");
diagram_filename = QET::stringToFileName(diagram_index + "_" + diagram_filename);
diagram_filename = QET::stringToFileName(diagram_index % "_" % diagram_filename);
title_label = new QLabel(diagram_title);

View File

@@ -54,24 +54,24 @@ ExportProperties::~ExportProperties()
void ExportProperties::toSettings(QSettings &settings,
const QString &prefix) const
{
settings.setValue(prefix + "path",
settings.setValue(prefix % "path",
QDir::toNativeSeparators(
destination_directory.absolutePath()));
settings.setValue(prefix + "format",
settings.setValue(prefix % "format",
format);
settings.setValue(prefix + "drawgrid",
settings.setValue(prefix % "drawgrid",
draw_grid);
settings.setValue(prefix + "drawborder",
settings.setValue(prefix % "drawborder",
draw_border);
settings.setValue(prefix + "drawtitleblock",
settings.setValue(prefix % "drawtitleblock",
draw_titleblock);
settings.setValue(prefix + "drawterminals",
settings.setValue(prefix % "drawterminals",
draw_terminals);
settings.setValue(prefix + "drawbgtransparent",
settings.setValue(prefix % "drawbgtransparent",
draw_bg_transparent);
settings.setValue(prefix + "drawcoloredconductors",
settings.setValue(prefix % "drawcoloredconductors",
draw_colored_conductors);
settings.setValue(prefix + "area",
settings.setValue(prefix % "area",
QET::diagramAreaToString(exported_area));
}
@@ -85,30 +85,30 @@ void ExportProperties::fromSettings(QSettings &settings,
QString export_path = QETApp::documentDir();
destination_directory.setPath(
settings.value(
prefix + "path",
prefix % "path",
export_path).toString());
if (!destination_directory.exists())
destination_directory.setPath(export_path);
format = settings.value(prefix + "format").toString();
format = settings.value(prefix % "format").toString();
draw_grid = settings.value(prefix + "drawgrid",
draw_grid = settings.value(prefix % "drawgrid",
false).toBool();
draw_border = settings.value(prefix + "drawborder",
draw_border = settings.value(prefix % "drawborder",
true ).toBool();
draw_titleblock = settings.value(prefix + "drawtitleblock",
draw_titleblock = settings.value(prefix % "drawtitleblock",
true ).toBool();
draw_terminals = settings.value(prefix + "drawterminals",
draw_terminals = settings.value(prefix % "drawterminals",
false).toBool();
draw_bg_transparent = settings.value(prefix + "drawbgtransparent",
draw_bg_transparent = settings.value(prefix % "drawbgtransparent",
false).toBool();
draw_colored_conductors = settings.value(
prefix + "drawcoloredconductors",
prefix % "drawcoloredconductors",
true ).toBool();
exported_area = QET::diagramAreaFromString(
settings.value(
prefix + "area",
prefix % "area",
"border").toString());
}

View File

@@ -55,43 +55,6 @@ void MachineInfo::send_info_to_debug()
<< QLibraryInfo::isDebugBuild();
qInfo()<< "Qt library version:"
<< QLibraryInfo::version();
#if QT_VERSION < QT_VERSION_CHECK(6, 0, 0) // ### Qt 6: remove
qInfo()<< "Qt library location default prefix:"
<< QLibraryInfo::location(QLibraryInfo::PrefixPath);
qInfo()<< "Qt library location documentation:"
<< QLibraryInfo::location(QLibraryInfo::DocumentationPath);
qInfo()<< "Qt library location headers:"
<< QLibraryInfo::location(QLibraryInfo::HeadersPath);
qInfo()<< "Qt library location libraries:"
<< QLibraryInfo::location(QLibraryInfo::LibrariesPath);
qInfo()<< "Qt library location executables:"
<< QLibraryInfo::location(QLibraryInfo::LibraryExecutablesPath);
qInfo()<< "Qt library location Qt binaries:"
<< QLibraryInfo::location(QLibraryInfo::BinariesPath);
qInfo()<< "Qt library location Qt plugins:"
<< QLibraryInfo::location(QLibraryInfo::PluginsPath);
qInfo()<< "Qt library location installed QML extensions:"
<< QLibraryInfo::location(QLibraryInfo::ImportsPath);
qInfo()<< "Qt library location installed QML extensions:"
<< QLibraryInfo::location(QLibraryInfo::Qml2ImportsPath);
qInfo()<< "Qt library location dependent Qt data:"
<< QLibraryInfo::location(QLibraryInfo::ArchDataPath);
qInfo()<< "Qt library location independent Qt data:"
<< QLibraryInfo::location(QLibraryInfo::DataPath);
qInfo()<< "Qt library location translation:"
<< QLibraryInfo::location(QLibraryInfo::TranslationsPath);
qInfo()<< "Qt library location examples:"
<< QLibraryInfo::location(QLibraryInfo::ExamplesPath);
qInfo()<< "Qt library location Qt testcases:"
<< QLibraryInfo::location(QLibraryInfo::TestsPath);
#ifndef Q_OS_WIN
qInfo()<< "Qt library location Qt settings:"
<< QLibraryInfo::location(QLibraryInfo::SettingsPath);
#endif
#else
#if TODO_LIST
#pragma message("@TODO remove code for QT 6 or later")
#endif
qInfo()<< "Qt library path default prefix:"
<< QLibraryInfo::path(QLibraryInfo::PrefixPath);
qInfo()<< "Qt library path documentation:"
@@ -123,34 +86,33 @@ void MachineInfo::send_info_to_debug()
#ifndef Q_OS_WIN
qInfo()<< "Qt library path Qt settings:"
<< QLibraryInfo::path(QLibraryInfo::SettingsPath);
#endif
#endif
if (strlen(GIT_COMMIT_SHA)) {
qInfo() << "GitRevision " + QString(GIT_COMMIT_SHA);
qInfo() << "GitRevision " % QString(GIT_COMMIT_SHA);
}
qInfo()<< "QElectroTech V " + QetVersion::displayedVersion();
qInfo()<< QObject::tr("Compilation : ") + pc.built.version;
qInfo()<< "Built with Qt " + pc.built.QT
+ " - " + pc.built.arch
+ " - Date : " + pc.built.date
+ " : " + pc.built.time;
qInfo()<< "Run with Qt "+ QString(qVersion())
+ " using"
+ QString(" %1 thread(s)").arg(pc.cpu.ThreadCount);
qInfo()<< "CPU : " + pc.cpu.info;
qInfo()<< "QElectroTech V " % QetVersion::displayedVersion();
qInfo()<< QObject::tr("Compilation : ") % pc.built.version;
qInfo()<< "Built with Qt " % pc.built.QT
% " - " % pc.built.arch
% " - Date : " % pc.built.date
% " : " % pc.built.time;
qInfo()<< "Run with Qt " % QString(qVersion())
% " using"
% QString(" %1 thread(s)").arg(pc.cpu.ThreadCount);
qInfo()<< "CPU : " % pc.cpu.info;
qInfo()<< pc.ram.Total;
qInfo()<< pc.ram.Available;
qInfo()<< "GPU : " + pc.gpu.info;
qInfo()<< "GPU RAM : " + pc.gpu.RAM;
qInfo()<< "GPU : " % pc.gpu.info;
qInfo()<< "GPU RAM : " % pc.gpu.RAM;
qInfo()<< "OS : " + pc.os.type
+ " - " + pc.cpu.Architecture
+ " - Version : "+pc.os.name
+ " - Kernel : "+pc.os.kernel;
qInfo()<< "OS : " % pc.os.type
% " - " % pc.cpu.Architecture
% " - Version : " % pc.os.name
% " - Kernel : " % pc.os.kernel;
qInfo()<< "";
qInfo()<< " OS System language:"<< QLocale::system().name();
qInfo()<< " OS System Native Country Name:"<< QLocale::system().nativeCountryName();
qInfo()<< " OS System Native Country Name:"<< QLocale::system().nativeTerritoryName();
qInfo()<< " OS System Native Language Name:"<< QLocale::system().nativeLanguageName();
qInfo()<< "";
qInfo()<< " System language defined in QET configuration:"<< QString(QETApp::langFromSetting().toLatin1());
@@ -171,8 +133,8 @@ void MachineInfo::send_info_to_debug()
qInfo()<< " App Config Location:"<< QETApp::configDir();
qInfo()<< " For data-files (user-/company-collections, titleblocks, etc.):";
qInfo()<< " App Data Location:"<< QETApp::dataDir();
qInfo()<< " Directory for project stalefiles:";
qInfo()<< " Generic Data Location:"<< QStandardPaths::writableLocation(QStandardPaths::GenericDataLocation) + "/stalefiles/QElectroTech/";
qInfo()<< " Directory for project's autosave files (stalefiles):";
qInfo()<< " Autosave:"<< QETApp::autosaveDir() % "/autosave";
// qInfo()<< " App Local DataLocation:"<< QStandardPaths::writableLocation(QStandardPaths::ApplicationsLocation);
// qInfo()<< " Home Location:"<< QStandardPaths::writableLocation(QStandardPaths::HomeLocation);
// qInfo()<< " Runtime Location:"<< QStandardPaths::writableLocation(QStandardPaths::RuntimeLocation);
@@ -188,7 +150,7 @@ void MachineInfo::send_info_to_debug()
QDirIterator it1(QETApp::commonElementsDir().toLatin1(),nameFilters, QDir::Files, QDirIterator::Subdirectories);
while (it1.hasNext())
{
if(it1.next() > 0 )
if(it1.next() != "")
{
commomElementsDir ++;
}
@@ -200,7 +162,7 @@ void MachineInfo::send_info_to_debug()
QDirIterator it2(QETApp::customElementsDir().toLatin1(), nameFilters, QDir::Files, QDirIterator::Subdirectories);
while (it2.hasNext())
{
if(it2.next() > 0 )
if(it2.next() != "")
{
customElementsDir ++;
}
@@ -211,7 +173,7 @@ void MachineInfo::send_info_to_debug()
QDirIterator it3(QETApp::companyElementsDir().toLatin1(), nameFilters, QDir::Files, QDirIterator::Subdirectories);
while (it3.hasNext())
{
if(it3.next() > 0 )
if(it3.next() != "")
{
companyElementsDir ++;
}
@@ -452,29 +414,29 @@ int32_t MachineInfo::i_max_screen_height() {
*/
QString MachineInfo::compilation_info()
{
QString compilation_info = "<br />" + QObject::tr("Compilation : ");
QString compilation_info = "<br />" % QObject::tr("Compilation : ");
compilation_info +=pc.built.version;
compilation_info += "<br>Built with Qt " + pc.built.QT;
compilation_info += " - " + pc.built.arch;
compilation_info += " - Date : " + pc.built.date;
compilation_info += " : " + pc.built.time;
compilation_info += "<br>Built with Qt " % pc.built.QT;
compilation_info += " - " % pc.built.arch;
compilation_info += " - Date : " % pc.built.date;
compilation_info += " : " % pc.built.time;
if (strlen(GIT_COMMIT_SHA)) {
compilation_info += "<br> Git Revision : " + QString(GIT_COMMIT_SHA);
compilation_info += "<br> Git Revision : " % QString(GIT_COMMIT_SHA);
}
compilation_info += " <br>Run with Qt " + QString(qVersion());
compilation_info += " <br>Run with Qt " % QString(qVersion());
compilation_info += " using"
+ QString(" %1 thread(s)").arg(pc.cpu.ThreadCount);
compilation_info += "<br> CPU : " + pc.cpu.info;
compilation_info += "<br>" + pc.ram.Total;
compilation_info += "<br>" + pc.ram.Available;
compilation_info += "<br>GPU : " + pc.gpu.info;
compilation_info += "<br>GPU RAM : " + pc.gpu.RAM;
compilation_info += "<br> CPU : " % pc.cpu.info;
compilation_info += "<br>" % pc.ram.Total;
compilation_info += "<br>" % pc.ram.Available;
compilation_info += "<br>GPU : " % pc.gpu.info;
compilation_info += "<br>GPU RAM : " % pc.gpu.RAM;
compilation_info += "<br> OS : " + pc.os.type;
compilation_info += " - " + pc.cpu.Architecture;
compilation_info += " - Version : "+pc.os.name;
compilation_info += "</br> - Kernel : "+pc.os.kernel;
compilation_info += "<br> OS : " % pc.os.type;
compilation_info += " - " % pc.cpu.Architecture;
compilation_info += " - Version : " % pc.os.name;
compilation_info += "</br> - Kernel : " % pc.os.kernel;
compilation_info += "<br> *** Qt screens *** </br>";
for (int ii = 0; ii < pc.screen.count; ++ii) {

View File

@@ -84,12 +84,12 @@ class MachineInfo
QString version=
#ifdef __GNUC__
#ifdef __APPLE_CC__
"CLANG " + QString(__clang_version__);
"CLANG " % QString(__clang_version__);
#else
"GCC " + QString(__VERSION__);
"GCC " % QString(__VERSION__);
#endif
#elif defined(Q_CC_MSVC)
"MSVC " + QString(QT_STRINGIFY(_MSC_FULL_VER));
"MSVC " % QString(QT_STRINGIFY(_MSC_FULL_VER));
#endif
QString QT=QString(QT_VERSION_STR);
QString date=QString(__DATE__);

View File

@@ -23,7 +23,7 @@
#include "utils/qetsettings.h"
#include <QStyleFactory>
#include <QtConcurrentRun>
#include <QThreadPool>
/**
@brief myMessageOutput
@@ -216,7 +216,7 @@ QGuiApplication::setHighDpiScaleFactorRoundingPolicy(QetSettings::hdpiScaleFacto
QObject::connect(&app, &SingleApplication::receivedMessage,
&qetapp, &QETApp::receiveMessage);
QtConcurrent::run([=]()
QThreadPool::globalInstance()->start([=]()
{
// for debugging
qInstallMessageHandler(myMessageOutput);

View File

@@ -24,13 +24,6 @@
#include "ui_projectprintwindow.h"
#if QT_VERSION < QT_VERSION_CHECK(6, 0, 0) // ### Qt 6: remove
# include <QDesktopWidget>
#else
# if TODO_LIST
# pragma message("@TODO remove code for QT 6 or later")
# endif
#endif
#include <QMarginsF>
#include <QPageSetupDialog>
#include <QPainter>
@@ -50,14 +43,7 @@ void ProjectPrintWindow::launchDialog(QETProject *project, QPrinter::OutputForma
auto printer_ = new QPrinter();
QPrinter printer(QPrinter::HighResolution);
printer_->setDocName(ProjectPrintWindow::docName(project));
#if QT_VERSION < QT_VERSION_CHECK(5, 15, 1) // ### Qt 6: remove
printer_->setOrientation(QPrinter::Landscape);
#else
#if TODO_LIST
#pragma message("@TODO remove code for QT 6 or later")
# endif
printer_->setPageOrientation(QPageLayout::Landscape);
#endif
if (format == QPrinter::NativeFormat) //To physical printer
{
@@ -66,14 +52,7 @@ void ProjectPrintWindow::launchDialog(QETProject *project, QPrinter::OutputForma
print_dialog.setWindowFlags(Qt::Sheet);
#endif
print_dialog.setWindowTitle(tr("Options d'impression", "window title"));
#if QT_VERSION < QT_VERSION_CHECK(6, 0, 0) // ### Qt 6: remove
print_dialog.setEnabledOptions(QAbstractPrintDialog::PrintShowPageSize);
#else
#if TODO_LIST
#pragma message("@TODO remove code for QT 6 or later")
#endif
qDebug()<<"Help code for QT 6 or later";
#endif
print_dialog.setOptions(QAbstractPrintDialog::PrintShowPageSize);
if (print_dialog.exec() == QDialog::Rejected) {
delete printer_;
return;
@@ -82,7 +61,7 @@ void ProjectPrintWindow::launchDialog(QETProject *project, QPrinter::OutputForma
else //To pdf file
{
auto dir_path = project->currentDir();
QString file_name = QDir::toNativeSeparators(QDir::cleanPath(dir_path + "/" + printer_->docName()));
QString file_name = QDir::toNativeSeparators(QDir::cleanPath(dir_path % "/" % printer_->docName()));
if (!file_name.endsWith(".pdf")) {
file_name.append(".pdf");
}
@@ -190,7 +169,6 @@ ProjectPrintWindow::~ProjectPrintWindow()
*/
void ProjectPrintWindow::requestPaint()
{
#if QT_VERSION >= QT_VERSION_CHECK(5, 6, 0)
#ifdef Q_OS_WIN
#ifdef QT_DEBUG
qDebug() << "--";
@@ -208,7 +186,6 @@ void ProjectPrintWindow::requestPaint()
qDebug() << "--";
#endif
#endif
#endif
if (!m_project->diagrams().count()) {
return;
@@ -259,15 +236,8 @@ void ProjectPrintWindow::printDiagram(Diagram *diagram, bool fit_page, QPainter
diagram->render(painter, QRectF(), diagram_rect, Qt::KeepAspectRatio);
} else {
// Print on one or several pages
#if QT_VERSION < QT_VERSION_CHECK(5, 15, 1) // ### Qt 6: remove
auto printed_rect = full_page ? printer->paperRect() : printer->pageRect();
#else
#if TODO_LIST
#pragma message("@TODO remove code for QT 6 or later")
#endif
qDebug()<<"Help code for QT 6 or later";
auto printed_rect = full_page ? printer->paperRect(QPrinter::Millimeter) : printer->pageRect(QPrinter::Millimeter);
#endif
auto printed_rect = full_page ? printer->paperRect(QPrinter::Millimeter)
: printer->pageRect(QPrinter::Millimeter);
auto used_width = printed_rect.width();
auto used_height = printed_rect.height();
auto h_pages_count = horizontalPagesCount(diagram, option, full_page);
@@ -276,24 +246,17 @@ void ProjectPrintWindow::printDiagram(Diagram *diagram, bool fit_page, QPainter
QVector<QVector<QRect>> page_grid;
//The diagram is printed on a matrix of sheet
//scrolls through the rows of the matrix
auto y_offset = 0;
qreal y_offset = 0;
for (auto i=0 ; i<v_pages_count ; ++i)
{
page_grid << QVector<QRect>();
//scrolls through the lines of sheet
auto x_offset = 0;
qreal x_offset = 0;
for (auto j=0 ; j<h_pages_count ; ++j)
{
#if QT_VERSION < QT_VERSION_CHECK(5, 15, 1) // ### Qt 6: remove
page_grid.last() << QRect(QPoint(x_offset, y_offset),
QSize(qMin(used_width, diagram_rect.width() - x_offset),
qMin(used_height, diagram_rect.height() - y_offset)));
#else
#if TODO_LIST
#pragma message("@TODO remove code for QT 6 or later")
#endif
qDebug()<<"Help code for QT 6 or later";
#endif
x_offset += used_width;
}
y_offset += used_height;
@@ -358,17 +321,10 @@ int ProjectPrintWindow::horizontalPagesCount(
Diagram *diagram, const ExportProperties &option, bool full_page) const
{
QRect printable_area;
#if QT_VERSION < QT_VERSION_CHECK(5, 15, 1) // ### Qt 6: remove
printable_area = full_page ? m_printer->paperRect() : m_printer->pageRect();
#else
#if TODO_LIST
#pragma message("@TODO remove code for QT 6 or later")
# endif
printable_area =
full_page ?
m_printer->pageLayout().fullRectPixels(m_printer->resolution()) :
m_printer->pageLayout().paintRectPixels(m_printer->resolution());
#endif
QRect diagram_rect = diagramRect(diagram, option);
int h_pages_count = int(ceil(qreal(diagram_rect.width()) / qreal(printable_area.width())));
@@ -387,17 +343,10 @@ int ProjectPrintWindow::verticalPagesCount(
Diagram *diagram, const ExportProperties &option, bool full_page) const
{
QRect printable_area;
#if QT_VERSION < QT_VERSION_CHECK(5, 15, 1) // ### Qt 6: remove
printable_area = full_page ? m_printer->paperRect() : m_printer->pageRect();
#else
#if TODO_LIST
#pragma message("@TODO remove code for QT 6 or later")
# endif
printable_area =
full_page ?
m_printer->pageLayout().fullRectPixels(m_printer->resolution()) :
m_printer->pageLayout().paintRectPixels(m_printer->resolution());
#endif
QRect diagram_rect = diagramRect(diagram, option);
int v_pages_count = int(ceil(qreal(diagram_rect.height()) / qreal(printable_area.height())));
@@ -468,43 +417,6 @@ void ProjectPrintWindow::loadPageSetupForCurrentPrinter()
}
settings.beginGroup(printer_section);
#if QT_VERSION < QT_VERSION_CHECK(5, 15, 1) // ### Qt 6: remove
if (settings.contains("orientation")) {
QString value = settings.value("orientation", "landscape").toString();
m_printer -> setOrientation(value == "landscape" ? QPrinter::Landscape : QPrinter::Portrait);
}
if (settings.contains("papersize")) {
int value = settings.value("papersize", QPrinter::A4).toInt();
if (value == QPrinter::Custom) {
bool w_ok, h_ok;
int w = settings.value("customwidthmm", -1).toInt(&w_ok);
int h = settings.value("customheightmm", -1).toInt(&h_ok);
if (w_ok && h_ok && w != -1 && h != -1) {
m_printer -> setPaperSize(QSizeF(w, h), QPrinter::Millimeter);
}
} else if (value < QPrinter::Custom) {
m_printer -> setPaperSize(static_cast<QPrinter::PaperSize>(value));
}
}
qreal margins[4];
m_printer -> getPageMargins(&margins[0], &margins[1], &margins[2], &margins[3], QPrinter::Millimeter);
QStringList margins_names(QStringList() << "left" << "top" << "right" << "bottom");
for (int i = 0 ; i < 4 ; ++ i) {
bool conv_ok;
qreal value = settings.value("margin" + margins_names.at(i), -1.0).toReal(&conv_ok);
if (conv_ok && value != -1.0) margins[i] = value;
}
m_printer->setPageMargins(
margins[0],
margins[1],
margins[2],
margins[3],
QPrinter::Millimeter);
#else
#if TODO_LIST
#pragma message("@TODO remove code for QT 6 or later")
# endif
if (settings.contains("orientation"))
{
QString value = settings.value("orientation", "landscape").toString();
@@ -550,14 +462,13 @@ void ProjectPrintWindow::loadPageSetupForCurrentPrinter()
for (int i = 0; i < 4; ++i)
{
bool conv_ok;
qreal value = settings.value("margin" + margins_names.at(i), -1.0)
qreal value = settings.value("margin" % margins_names.at(i), -1.0)
.toReal(&conv_ok);
if (conv_ok && value != -1.0) margins[i] = value;
}
m_printer->setPageMargins(
QMarginsF(margins[0], margins[1], margins[2], margins[3]),
QPageLayout::Millimeter);
#endif
m_printer->setFullPage(
settings.value("fullpage", "false").toString() == "true");
@@ -574,35 +485,6 @@ void ProjectPrintWindow::savePageSetupForCurrentPrinter()
settings.beginGroup("printers");
settings.beginGroup(printer_section);
#if QT_VERSION < QT_VERSION_CHECK(5, 15, 1) // ### Qt 6: remove
settings.setValue("orientation", m_printer -> orientation() == QPrinter::Portrait ? "portrait" : "landscape");
settings.setValue("papersize", int(m_printer -> paperSize()));
if (m_printer -> paperSize() == QPrinter::Custom) {
QSizeF size = m_printer -> paperSize(QPrinter::Millimeter);
settings.setValue("customwidthmm", size.width());
settings.setValue("customheightmm", size.height());
} else {
settings.remove("customwidthmm");
settings.remove("customheightmm");
}
qreal left, top, right, bottom;
m_printer
->getPageMargins(&left, &top, &right, &bottom, QPrinter::Millimeter);
settings.setValue("marginleft", left);
settings.setValue("margintop", top);
settings.setValue("marginright", right);
settings.setValue("marginbottom", bottom);
settings.setValue("fullpage", m_printer->fullPage() ? "true" : "false");
settings.endGroup();
settings.endGroup();
settings.sync();
#else
# if TODO_LIST
# pragma message("@TODO remove code for QT 6 or later")
# endif
qDebug() << "Help code for QT 6 or later";
settings.setValue(
"orientation",
m_printer->pageLayout().orientation() == QPageLayout::Portrait ?
@@ -633,7 +515,6 @@ void ProjectPrintWindow::savePageSetupForCurrentPrinter()
settings.endGroup();
settings.endGroup();
settings.sync();
#endif
}
/**

View File

@@ -44,17 +44,17 @@ QDomElement UserProperties::toXml(QDomDocument &xml_document) const
for (auto i = m_properties.begin(); i != m_properties.end(); ++i)
{
auto type = i.value().type();
auto type = i.value().typeId();
switch(type) {
case QVariant::Type::String:
case QMetaType::QString:
up.appendChild(QETXML::createXmlProperty(i.key(), i.value().toString())); break;
case QVariant::Type::Int:
case QMetaType::Int:
up.appendChild(QETXML::createXmlProperty(i.key(), i.value().toInt())); break;
case QVariant::Type::Double:
case QMetaType::Double:
up.appendChild(QETXML::createXmlProperty(i.key(), i.value().toDouble())); break;
case QVariant::Type::Bool:
case QMetaType::Bool:
up.appendChild(QETXML::createXmlProperty(i.key(), i.value().toBool())); break;
case QVariant::Type::Color:
case QMetaType::QColor:
up.appendChild(QETXML::createXmlProperty(i.key(), QColor(i.value().value<QColor>()))); break;
default:
break;

View File

@@ -45,7 +45,7 @@
#define STRINGIFY(x) #x
#include <QProcessEnvironment>
#include <QRegularExpression>
#ifdef BUILD_WITHOUT_KF5
#ifdef BUILD_WITHOUT_KF6
#else
# include <KAutoSaveFile>
#endif
@@ -222,6 +222,23 @@ void QETApp::setLanguage(const QString &desired_language) {
// load translations for the QET application
// charge les traductions pour l'application QET
#ifdef QMFILES_AS_RESOURCE
if (!qetTranslator.load(QLocale(desired_language), "qet" "_", ":/lang")) {
/* in case of failure,
* we fall back on the native channels for French
* en cas d'echec,
* on retombe sur les chaines natives pour le francais
*/
if (desired_language != "fr") {
// use of the English version by default
// utilisation de la version anglaise par defaut
if(!qetTranslator.load(QLocale(desired_language), "qet", "_", ":/lang"))
qWarning() << "failed to load"
<< ":/lang/qet_en.qm" << "(" << __FILE__
<< __LINE__ << __FUNCTION__ << ")";
}
}
#else
if (!qetTranslator.load("qet_" + desired_language, languages_path)) {
/* in case of failure,
* we fall back on the native channels for French
@@ -237,6 +254,8 @@ void QETApp::setLanguage(const QString &desired_language) {
<< __LINE__ << __FUNCTION__ << ")";
}
}
#endif
qInfo() << "Loaded language file:" << qetTranslator.filePath();
qApp->installTranslator(&qetTranslator);
QString ltr_special_string = tr(
@@ -2368,7 +2387,7 @@ void QETApp::buildSystemTrayMenu()
*/
void QETApp::checkBackupFiles()
{
#ifdef BUILD_WITHOUT_KF5
#ifdef BUILD_WITHOUT_KF6
return;
#else
QList<KAutoSaveFile *> stale_files = KAutoSaveFile::allStaleFiles();

View File

@@ -46,7 +46,7 @@
#include "ui/diagrameditorhandlersizewidget.h"
#include "TerminalStrip/ui/addterminalstripitemdialog.h"
#ifdef BUILD_WITHOUT_KF5
#ifdef BUILD_WITHOUT_KF6
#else
# include <KAutoSaveFile>
#endif
@@ -1892,7 +1892,7 @@ bool QETDiagramEditor::drawGrid() const
return m_draw_grid->isChecked();
}
#ifdef BUILD_WITHOUT_KF5
#ifdef BUILD_WITHOUT_KF6
#else
/**
@brief QETDiagramEditor::openBackupFiles

View File

@@ -43,7 +43,7 @@ class DiagramPropertiesEditorDockWidget;
class ElementsCollectionWidget;
class AutoNumberingDockWidget;
#ifdef BUILD_WITHOUT_KF5
#ifdef BUILD_WITHOUT_KF6
#else
class KAutoSaveFile;
#endif
@@ -69,7 +69,7 @@ class QETDiagramEditor : public QETMainWindow
ProjectView *currentProjectView() const;
QETProject *currentProject() const;
bool drawGrid() const;
#ifdef BUILD_WITHOUT_KF5
#ifdef BUILD_WITHOUT_KF6
#else
void openBackupFiles (QList<KAutoSaveFile *> backup_files);
#endif
@@ -195,7 +195,9 @@ class QETDiagramEditor : public QETMainWindow
*m_terminal_strip_dialog = nullptr, ///<Launch terminal strip dialog
*m_project_terminalBloc, ///< generate terminal block
*m_project_export_conductor_num,///<Export the wire num to csv
#ifdef QET_EXPORT_PROJECT_DB
*m_export_project_db, ///Export to file the internal database of the current project
#endif
*m_tile_window, ///< Show MDI subwindows as tile
*m_cascade_window, ///< Show MDI subwindows as cascade
*m_previous_window, ///< Switch to the previous document

View File

@@ -1001,11 +1001,16 @@ void QetGraphicsTableItem::adjustColumnsWidth()
m_header_item->minimumSectionWidth().at(at_b))+b);
sum_+= m_header_item->sectionSize(i);
#else
#if TODO_LIST
#pragma message("@TODO remove code for QT 6 or later")
#endif
qDebug()<<"Help code for QT 6 or later";
auto at_a = std::min(m_minimum_column_width.size()-1, (qsizetype) i); //In case of the I is higher than m_minimum_column_width or
auto at_b = std::min(m_header_item->minimumSectionWidth().size()-1,(qsizetype) i); //m_header_item->minimumSectionWidth().size()
m_header_item->resizeSection(
i,
std::max(
m_minimum_column_width.at(at_a),
m_header_item->minimumSectionWidth().at(at_b))+b);
sum_+= m_header_item->sectionSize(i);
#endif
}

View File

@@ -765,14 +765,14 @@ bool Element::fromXml(QDomElement &e,
QList <QDomElement> uuid_list = QET::findInDomElement(e,
QStringLiteral("links_uuids"),
QStringLiteral("link_uuid"));
foreach (QDomElement qdo, uuid_list)
#if QT_VERSION < QT_VERSION_CHECK(6, 0, 0) // ### Qt 6: remove
foreach (QDomElement qdo, uuid_list)
tmp_uuids_link << qdo.attribute(QStringLiteral("uuid"));
#else
#if TODO_LIST
#pragma message("@TODO remove code for QT 6 or later")
#endif
qDebug()<<"Help code for QT 6 or later";
foreach (QDomElement qdo, uuid_list) {
tmp_uuids_link << QUuid(qdo.attribute(QStringLiteral("uuid")));
}
qInfo() << "tmp_uuids_link: " << tmp_uuids_link;
#endif
//uuid of this element
m_uuid = QUuid(e.attribute(QStringLiteral("uuid"), QUuid::createUuid().toString()));

View File

@@ -594,7 +594,7 @@ void QetShapeItem::addHandler()
{
m_handler_vector = QetGraphicsHandlerItem::handlerForPoint(mapToScene(points_vector), QETUtils::graphicsHandlerSize(this));
for(const auto handler : qAsConst(m_handler_vector))
for(const auto handler : std::as_const(m_handler_vector))
{
handler->setZValue(this->zValue()+1);
handler->setColor(Qt::blue);

View File

@@ -86,7 +86,7 @@ QETProject::QETProject(const QString &path, QObject *parent) :
init();
}
#ifdef BUILD_WITHOUT_KF5
#ifdef BUILD_WITHOUT_KF6
#else
/**
@brief QETProject::QETProject
@@ -330,7 +330,7 @@ void QETProject::setFilePath(const QString &filepath)
if (filepath == m_file_path) {
return;
}
#ifdef BUILD_WITHOUT_KF5
#ifdef BUILD_WITHOUT_KF6
#else
if (m_backup_file.isOpen()) {
m_backup_file.close();
@@ -1911,7 +1911,7 @@ NamesList QETProject::namesListForIntegrationCategory()
*/
void QETProject::writeBackup()
{
#ifdef BUILD_WITHOUT_KF5
#ifdef BUILD_WITHOUT_KF6
#else
# if QT_VERSION < QT_VERSION_CHECK(6, 0, 0) // ### Qt 6: remove
QDomDocument xml_project(toXml());
@@ -2077,7 +2077,7 @@ void QETProject::updateDiagramsFolioData()
}
}
for (const auto &diagram_ : qAsConst(m_diagrams_list)) {
for (const auto &diagram_ : std::as_const(m_diagrams_list)) {
diagram_->update();
}
}

View File

@@ -29,7 +29,7 @@
#include "titleblock/templatescollection.h"
#include "titleblockproperties.h"
#ifdef BUILD_WITHOUT_KF5
#ifdef BUILD_WITHOUT_KF6
#else
# include <KAutoSaveFile>
#endif
@@ -47,7 +47,7 @@ class XmlElementCollection;
class QTimer;
class TerminalStrip;
#ifdef BUILD_WITHOUT_KF5
#ifdef BUILD_WITHOUT_KF6
#else
class KAutoSaveFile;
#endif
@@ -78,7 +78,7 @@ class QETProject : public QObject
public:
QETProject (QObject *parent = nullptr);
QETProject (const QString &path, QObject * = nullptr);
#ifdef BUILD_WITHOUT_KF5
#ifdef BUILD_WITHOUT_KF6
#else
QETProject (KAutoSaveFile *backup, QObject *parent=nullptr);
#endif
@@ -288,7 +288,7 @@ class QETProject : public QObject
bool m_freeze_new_conductors = false;
QTimer m_save_backup_timer,
m_autosave_timer;
#ifdef BUILD_WITHOUT_KF5
#ifdef BUILD_WITHOUT_KF6
#else
KAutoSaveFile m_backup_file;
#endif

View File

@@ -20,6 +20,8 @@
#include <QDomElement>
#include <QPen>
#include <QUuid>
class QDomDocument;
class QDir;

View File

@@ -89,18 +89,6 @@ void QGIManager::release(const QList<QGraphicsItem *> &qgis) {
foreach(QGraphicsItem *qgi, qgis) release(qgi);
}
void QGIManager::manage(const QVector<QGraphicsItem *> &items) {
for (const auto &qgi : items) {
manage(qgi);
}
}
void QGIManager::release(const QVector<QGraphicsItem *> &items) {
for (const auto &qgi : items) {
release(qgi);
}
}
/**
Indique au QGIManager de detruire les QGraphicsItem restants lors de sa
destruction si ceux-ci n'appartiennent pas a la scene

View File

@@ -45,12 +45,8 @@ class QGIManager {
public:
void manage(QGraphicsItem *);
void release(QGraphicsItem *);
QT_DEPRECATED_X("Use QGIManager::manage(const QVector<QGraphicsItem *> &) instead")
void manage(const QList<QGraphicsItem *> &);
QT_DEPRECATED_X("Use QGIManager::release(const QVector<QGraphicsItem *> &) instead")
void release(const QList<QGraphicsItem *> &);
void manage(const QVector<QGraphicsItem *> &items);
void release(const QVector<QGraphicsItem *> &items);
void setDestroyQGIOnDelete(bool);
bool manages(QGraphicsItem *) const;
};

View File

@@ -33,7 +33,7 @@ RecentFiles::RecentFiles(const QString &identifier, int size, QObject *parent) :
menu_(nullptr)
{
mapper_ = new QSignalMapper(this);
connect(mapper_, SIGNAL(mapped(const QString &)), this, SLOT(handleMenuRequest(const QString &)));
connect(mapper_, &QSignalMapper::mappedString, this, &RecentFiles::handleMenuRequest);
extractFilesFromSettings();
buildMenu();

View File

@@ -217,7 +217,7 @@ QString TitleBlockTemplateLogoManager::confirmLogoName(const QString &initial_na
connect(replace_button, SIGNAL(clicked()), signal_mapper, SLOT(map()));
connect(rename_button, SIGNAL(clicked()), signal_mapper, SLOT(map()));
connect(cancel_button, SIGNAL(clicked()), signal_mapper, SLOT(map()));
connect(signal_mapper, SIGNAL(mapped(int)), rename_dialog, SLOT(done(int)));
connect(signal_mapper, SIGNAL(mappedInt(int)), rename_dialog, SLOT(done(int)));
}
rd_label -> setText(
QString(tr(
@@ -312,7 +312,7 @@ void TitleBlockTemplateLogoManager::exportLogo()
QString filepath = QFileDialog::getSaveFileName(
this,
tr("Choisir un fichier pour exporter ce logo"),
open_dialog_dir_.absolutePath() + "/" + current_logo,
open_dialog_dir_.absolutePath() % "/" + current_logo,
tr("Tous les fichiers (*);;Images vectorielles (*.svg);;Images bitmap (*.png *.jpg *.jpeg *.gif *.bmp *.xpm)")
);
if (filepath.isEmpty()) return;

View File

@@ -454,7 +454,7 @@ QDomElement TitleBlockTemplatesFilesCollection::getTemplateXmlDescription(const
}
QDomDocument *xml_document = new QDomDocument();
bool xml_parsing = xml_document -> setContent(&xml_file);
bool xml_parsing = (bool)xml_document -> setContent(&xml_file);
if (!xml_parsing) {
delete xml_document;
return(QDomElement());

View File

@@ -19,6 +19,8 @@
#define TITLEBLOCK_SLASH_TEMPLATE_VIEW_H
#include "../titleblocktemplate.h"
#include <QGraphicsGridLayout>
#include <QGraphicsLayoutItem>
#include <QGraphicsView>
class HelperCell;
class SplittedHelperCell;

View File

@@ -103,7 +103,7 @@ bool TitleBlockTemplate::loadFromXmlFile(const QString &filepath) {
// parse its content as XML
QDomDocument xml_doc;
bool xml_parsing = xml_doc.setContent(&template_file);
bool xml_parsing = (bool)xml_doc.setContent(&template_file);
if (!xml_parsing) {
return(false);
}

View File

@@ -94,7 +94,7 @@
</widget>
</item>
<item row="4" column="1">
<widget class="KColorButton" name="m_text_color_kpb"/>
<widget class="ColorButton" name="m_text_color_kpb"/>
</item>
<item row="1" column="1">
<widget class="QSpinBox" name="m_text_size_sb">
@@ -458,7 +458,7 @@
</attribute>
<layout class="QGridLayout" name="gridLayout_4">
<item row="0" column="1">
<widget class="KColorButton" name="m_color_kpb"/>
<widget class="ColorButton" name="m_color_kpb"/>
</item>
<item row="2" column="0">
<widget class="QLabel" name="label_10">
@@ -530,7 +530,7 @@
</widget>
</item>
<item row="0" column="1">
<widget class="KColorButton" name="m_color_2_kpb"/>
<widget class="ColorButton" name="m_color_2_kpb"/>
</item>
</layout>
</widget>
@@ -576,9 +576,9 @@
</widget>
<customwidgets>
<customwidget>
<class>KColorButton</class>
<class>ColorButton</class>
<extends>QPushButton</extends>
<header>kcolorbutton.h</header>
<header>../colorbutton.h</header>
</customwidget>
</customwidgets>
<tabstops>

View File

@@ -203,7 +203,7 @@ void ElementInfoWidget::buildInterface()
*/
ElementInfoPartWidget *ElementInfoWidget::infoPartWidgetForKey(const QString &key) const
{
for (const auto &eipw : qAsConst(m_eipw_list))
for (const auto &eipw : std::as_const(m_eipw_list))
{
if (eipw->key() == key)
return eipw;
@@ -245,7 +245,7 @@ DiagramContext ElementInfoWidget::currentInfo() const
{
DiagramContext info_;
for (const auto &eipw : qAsConst(m_eipw_list))
for (const auto &eipw : std::as_const(m_eipw_list))
{
//add value only if they're something to store

View File

@@ -478,13 +478,13 @@ void ShapeGraphicsItemPropertiesWidget::setUpEditConnection()
m_edit_connection << connect (ui->m_size_dsb, QOverload<double>::of(&QDoubleSpinBox::valueChanged),
this, &ShapeGraphicsItemPropertiesWidget::apply);
m_edit_connection << connect (ui->m_color_kpb, &KColorButton::changed,
m_edit_connection << connect (ui->m_color_kpb, &ColorButton::changed,
this, &ShapeGraphicsItemPropertiesWidget::apply);
m_edit_connection << connect (ui->m_brush_style_cb, QOverload<int>::of(&QComboBox::activated),
this, &ShapeGraphicsItemPropertiesWidget::apply);
m_edit_connection << connect (ui->m_brush_color_kpb, &KColorButton::changed,
m_edit_connection << connect (ui->m_brush_color_kpb, &ColorButton::changed,
this, &ShapeGraphicsItemPropertiesWidget::apply);
m_edit_connection << connect (ui->m_close_polygon, &QCheckBox::clicked,
@@ -504,7 +504,7 @@ void ShapeGraphicsItemPropertiesWidget::setUpEditConnection()
void ShapeGraphicsItemPropertiesWidget::clearEditConnection()
{
for (const auto &c : qAsConst(m_edit_connection)) {
for (const auto &c : std::as_const(m_edit_connection)) {
disconnect(c);
}
m_edit_connection.clear();

View File

@@ -42,7 +42,7 @@
</widget>
</item>
<item row="2" column="1">
<widget class="KColorButton" name="m_color_kpb"/>
<widget class="ColorButton" name="m_color_kpb"/>
</item>
<item row="1" column="1">
<widget class="QDoubleSpinBox" name="m_size_dsb">
@@ -215,7 +215,7 @@
</widget>
</item>
<item row="1" column="1">
<widget class="KColorButton" name="m_brush_color_kpb"/>
<widget class="ColorButton" name="m_brush_color_kpb"/>
</item>
</layout>
</widget>
@@ -251,9 +251,9 @@
</widget>
<customwidgets>
<customwidget>
<class>KColorButton</class>
<class>ColorButton</class>
<extends>QPushButton</extends>
<header>kcolorbutton.h</header>
<header>../colorbutton.h</header>
</customwidget>
</customwidgets>
<tabstops>

View File

@@ -139,7 +139,7 @@ void MoveGraphicsItemCommand::move(const QPointF &movement)
}
//Move some conductors
for (const auto &conductor : qAsConst(m_content.m_conductors_to_move)) {
for (const auto &conductor : std::as_const(m_content.m_conductors_to_move)) {
setupAnimation(conductor,
"pos",
conductor->pos(),
@@ -147,7 +147,7 @@ void MoveGraphicsItemCommand::move(const QPointF &movement)
}
//Recalculate the path of other conductors
for (const auto &conductor : qAsConst(m_content.m_conductors_to_update)) {
for (const auto &conductor : std::as_const(m_content.m_conductors_to_update)) {
setupAnimation(conductor, "animPath", 1, 1);
}
}

View File

@@ -40,31 +40,15 @@ if(NOT DEFINED QET_COMPONENTS)
message(".. QET_COMPONENTS is not set !!! I set them up !!!")
include(../../cmake/qet_compilation_vars.cmake)
endif()
if(NOT DEFINED QT_VERSION_MAJOR)
find_package(
QT
NAMES
Qt6
Qt5
COMPONENTS
${QET_COMPONENTS}
REQUIRED
)
endif()
message(".. QT_VERSION_MAJOR :" ${QT_VERSION_MAJOR})
find_package(
Qt${QT_VERSION_MAJOR}
COMPONENTS
${QET_COMPONENTS}
REQUIRED)
find_package(Qt6 REQUIRED COMPONENTS ${QET_COMPONENTS})
message(".. Qt version :" ${Qt6_VERSION})
Include(FetchContent)
FetchContent_Declare(
Catch2
GIT_REPOSITORY https://github.com/catchorg/Catch2.git
GIT_TAG v2.13.1)
GIT_TAG v3.7.0)
FetchContent_MakeAvailable(Catch2)
@@ -88,7 +72,7 @@ target_link_libraries(
PUBLIC
Catch2::Catch2
PRIVATE
${KF5_PRIVATE_LIBRARIES}
${KF6_PRIVATE_LIBRARIES}
${QET_PRIVATE_LIBRARIES})
if (DEFINED ENV{CATCH_INCLUDE_DIR})

View File

@@ -1,6 +1,6 @@
#define CATCH_CONFIG_RUNNER
#include <QtGui/QGuiApplication>
#include <catch2/catch.hpp>
#include <catch2/catch_all.hpp>
int main(int argc, char** argv)
{

View File

@@ -1,6 +1,6 @@
#include "../../../sources/borderproperties.h"
#include <catch2/catch.hpp>
#include <catch2/catch_all.hpp>
TEST_CASE("BorderProperties")
{

View File

@@ -1,6 +1,6 @@
#include "../../../sources/qet.h"
#include <catch2/catch.hpp>
#include <catch2/catch_all.hpp>
TEST_CASE("qet stringToFileName")
{

View File

@@ -1,3 +1,3 @@
#include <catch2/catch.hpp>
#include <catch2/catch_all.hpp>
TEST_CASE("My first test with Catch2", "[fancy]") { REQUIRE(0 == 0); }

View File

@@ -40,31 +40,15 @@ if(NOT DEFINED QET_COMPONENTS)
message(".. QET_COMPONENTS is not set !!! I set them up !!!")
include(../../cmake/qet_compilation_vars.cmake)
endif()
if(NOT DEFINED QT_VERSION_MAJOR)
find_package(
QT
NAMES
Qt6
Qt5
COMPONENTS
${QET_COMPONENTS}
REQUIRED
)
endif()
message(".. QT_VERSION_MAJOR :" ${QT_VERSION_MAJOR})
find_package(
Qt${QT_VERSION_MAJOR}
COMPONENTS
${QET_COMPONENTS}
REQUIRED)
find_package(Qt6 REQUIRED COMPONENTS ${QET_COMPONENTS})
message(".. Qt version :" ${Qt6_VERSION})
Include(FetchContent)
FetchContent_Declare(
GTest
GIT_REPOSITORY https://github.com/google/googletest.git
GIT_TAG release-1.10.0)
GIT_TAG v1.15.2)
FetchContent_MakeAvailable(GTest)
@@ -85,6 +69,6 @@ target_link_libraries(
PUBLIC
gmock gmock_main
PRIVATE
${KF5_PRIVATE_LIBRARIES}
${KF6_PRIVATE_LIBRARIES}
${QET_PRIVATE_LIBRARIES})

View File

@@ -40,31 +40,15 @@ if(NOT DEFINED QET_COMPONENTS)
message(".. QET_COMPONENTS is not set !!! I set them up !!!")
include(../../cmake/qet_compilation_vars.cmake)
endif()
if(NOT DEFINED QT_VERSION_MAJOR)
find_package(
QT
NAMES
Qt6
Qt5
COMPONENTS
${QET_COMPONENTS}
REQUIRED
)
endif()
message(".. QT_VERSION_MAJOR :" ${QT_VERSION_MAJOR})
find_package(
Qt${QT_VERSION_MAJOR}
COMPONENTS
${QET_COMPONENTS}
REQUIRED)
find_package(Qt6 REQUIRED COMPONENTS ${QET_COMPONENTS})
message(".. Qt version :" ${Qt6_VERSION})
Include(FetchContent)
FetchContent_Declare(
GTest
GIT_REPOSITORY https://github.com/google/googletest.git
GIT_TAG release-1.10.0)
GIT_TAG v1.15.2)
FetchContent_MakeAvailable(GTest)
@@ -84,6 +68,6 @@ target_link_libraries(
PUBLIC
gtest gtest_main
PRIVATE
${KF5_PRIVATE_LIBRARIES}
${KF6_PRIVATE_LIBRARIES}
${QET_PRIVATE_LIBRARIES})

View File

@@ -40,26 +40,8 @@ if(NOT DEFINED QET_COMPONENTS)
message(".. QET_COMPONENTS is not set !!! I set them up !!!")
include(../../cmake/qet_compilation_vars.cmake)
endif()
if(NOT DEFINED QT_VERSION_MAJOR)
find_package(
QT
NAMES
Qt6
Qt5
COMPONENTS
${QET_COMPONENTS}
Test
REQUIRED
)
endif()
message(".. QT_VERSION_MAJOR :" ${QT_VERSION_MAJOR})
find_package(
Qt${QT_VERSION_MAJOR}
COMPONENTS
${QET_COMPONENTS}
Test
REQUIRED)
find_package(Qt6 REQUIRED COMPONENTS Test ${QET_COMPONENTS})
message(".. Qt version :" ${Qt6_VERSION})
include(../../cmake/fetch_kdeaddons.cmake)
include(../../cmake/fetch_singleapplication.cmake)
@@ -74,6 +56,6 @@ target_link_libraries(
${PROJECT_NAME}
PRIVATE
Qt::Test
${KF5_PRIVATE_LIBRARIES}
${KF6_PRIVATE_LIBRARIES}
${QET_PRIVATE_LIBRARIES})