Merge branch 'QT6' into master

initial release to Qt6

TODO:
 -remove KCoreAddons
 -remove KWidgetsAddons

* QT6: (24 commits)
  QT6: No Qt::AA_EnableHighDpiScaling in QT6
  QT6: TeDo mod QList for DeleteQGraphicsItemCommand
  QT6: Todo Fix QtConcurrent (remove KCoreAddons?)
  QT6: Todo QVariant::setValue
  QT6: std::min needs further tweaking
  QPrinting class needs further tweaking
  QT6: QStyleOptionGraphicsItem
  Add QActionGroup
  QT6: QStyleOptionGraphicsItem
  QT6: QLibraryInfo
  Totest QRegularExpression ok?
  QT6: QStyleOptionGraphicsItem
  QT6: QMouseEvent
  QT6: QDropEvent
  QT6: Fix deprecated QRegExp
  QT6: hooks added
  QT6: Mod unused function put in comments
  Add missing include QActionGroup
  QT6: set C++17
  QT6: diagramitemweight set val to Font::Weight
  ...
This commit is contained in:
Simon De Backer
2020-10-03 16:18:03 +02:00
32 changed files with 1124 additions and 691 deletions

View File

@@ -1,5 +1,5 @@
QT += core network QT += core network
CONFIG += c++11 CONFIG += c++17
HEADERS += $$PWD/singleapplication.h \ HEADERS += $$PWD/singleapplication.h \
$$PWD/singleapplication_p.h $$PWD/singleapplication_p.h

View File

@@ -218,7 +218,22 @@ void SingleApplicationPrivate::connectToPrimary( int msecs, ConnectionType conne
writeStream << blockServerName.toLatin1(); writeStream << blockServerName.toLatin1();
writeStream << static_cast<quint8>(connectionType); writeStream << static_cast<quint8>(connectionType);
writeStream << instanceNumber; writeStream << instanceNumber;
quint16 checksum = qChecksum(initMsg.constData(), static_cast<quint32>(initMsg.length()));
#if QT_VERSION < QT_VERSION_CHECK(6, 0, 0) // ### Qt 6: remove
quint16 checksum =
qChecksum(
initMsg.constData(),
static_cast<quint32>(initMsg.length()));
#else
#if TODO_LIST
#pragma message("@TODO remove code for QT 6 or later")
#endif
quint16 checksum =
qChecksum(
QByteArrayView(
initMsg.constData(),
static_cast<quint32>(initMsg.length())));
#endif
writeStream << checksum; writeStream << checksum;
// The header indicates the message length that follows // The header indicates the message length that follows
@@ -239,10 +254,21 @@ void SingleApplicationPrivate::connectToPrimary( int msecs, ConnectionType conne
quint16 SingleApplicationPrivate::blockChecksum() quint16 SingleApplicationPrivate::blockChecksum()
{ {
#if QT_VERSION < QT_VERSION_CHECK(6, 0, 0) // ### Qt 6: remove
return qChecksum( return qChecksum(
static_cast <const char *>( memory->data() ), static_cast <const char *>( memory->data() ),
offsetof( InstancesInfo, checksum ) offsetof( InstancesInfo, checksum )
); );
#else
#if TODO_LIST
#pragma message("@TODO remove code for QT 6 or later")
#endif
return qChecksum(
QByteArrayView(
static_cast <const char *>( memory->data() ),
offsetof( InstancesInfo, checksum )));
#endif
} }
qint64 SingleApplicationPrivate::primaryPid() qint64 SingleApplicationPrivate::primaryPid()
@@ -366,8 +392,21 @@ void SingleApplicationPrivate::readInitMessageBody( QLocalSocket *sock )
quint16 msgChecksum = 0; quint16 msgChecksum = 0;
readStream >> msgChecksum; readStream >> msgChecksum;
const quint16 actualChecksum = qChecksum( msgBytes.constData(), static_cast<quint32>( msgBytes.length() - sizeof( quint16 ) ) ); #if QT_VERSION < QT_VERSION_CHECK(6, 0, 0) // ### Qt 6: remove
const quint16 actualChecksum =
qChecksum(
msgBytes.constData(),
static_cast<quint32>( msgBytes.length() - sizeof( quint16 ) ) );
#else
#if TODO_LIST
#pragma message("@TODO remove code for QT 6 or later")
#endif
const quint16 actualChecksum =
qChecksum(
QByteArrayView(
msgBytes.constData(),
static_cast<quint32>(msgBytes.length() - sizeof(quint16))));
#endif
bool isValid = readStream.status() == QDataStream::Ok && bool isValid = readStream.status() == QDataStream::Ok &&
QLatin1String(latin1Name) == blockServerName && QLatin1String(latin1Name) == blockServerName &&
msgChecksum == actualChecksum; msgChecksum == actualChecksum;

View File

@@ -220,7 +220,7 @@ UI_SOURCES_DIR = sources/ui/
UI_HEADERS_DIR = sources/ui/ UI_HEADERS_DIR = sources/ui/
# Configuration de la compilation # Configuration de la compilation
CONFIG += c++11 debug_and_release warn_on CONFIG += c++17 debug_and_release warn_on
# Nom du binaire genere par la compilation # Nom du binaire genere par la compilation
TARGET = qelectrotech TARGET = qelectrotech
@@ -229,8 +229,8 @@ TARGET = qelectrotech
unix:QMAKE_LIBS_THREAD -= -lpthread unix:QMAKE_LIBS_THREAD -= -lpthread
unix|win32: LIBS += -lsqlite3 unix|win32: LIBS += -lsqlite3
# Enable C++11 # Enable C++17
QMAKE_CXXFLAGS += -std=c++11 QMAKE_CXXFLAGS += -std=c++17
# Description de l'installation # Description de l'installation
target.path = $$join(INSTALL_PREFIX,,,$${QET_BINARY_PATH}) target.path = $$join(INSTALL_PREFIX,,,$${QET_BINARY_PATH})

View File

@@ -144,11 +144,23 @@ bool ElementsLocation::operator!=(const ElementsLocation &other) const
*/ */
QString ElementsLocation::baseName() const QString ElementsLocation::baseName() const
{ {
QRegExp regexp("^.*([^/]+)\\.elmt$"); QRegularExpression regexp("^.*(?<name>[^/]+)\\.elmt$");
if (regexp.exactMatch(m_collection_path)) { if (!regexp.isValid())
return(regexp.capturedTexts().at(1)); {
qWarning() <<"this is an error in the code"
<< regexp.errorString()
<< regexp.patternErrorOffset();
return QString();
} }
return(QString());
QRegularExpressionMatch match = regexp.match(m_collection_path);
if (!match.hasMatch())
{
qDebug()<<"no Match => return"
<<m_collection_path;
return QString();
}
return match.captured("name");
} }
/** /**
@@ -368,12 +380,22 @@ bool ElementsLocation::addToPath(const QString &string)
ElementsLocation ElementsLocation::parent() const ElementsLocation ElementsLocation::parent() const
{ {
ElementsLocation copy(*this); ElementsLocation copy(*this);
QRegExp re1("^([a-z]+://)(.*)/*$"); QRegularExpression re ("^(?<path_proto>[a-z]+://.*)/.*$");
if (re1.exactMatch(m_collection_path)) { if (!re.isValid())
QString path_proto = re1.capturedTexts().at(1); {
QString path_path = re1.capturedTexts().at(2); qWarning()
QString parent_path = path_path.remove(QRegExp("/*[^/]+$")); <<QObject::tr("this is an error in the code")
copy.setPath(path_proto + parent_path); << re.errorString()
<< re.patternErrorOffset();
}
QRegularExpressionMatch match = re.match(m_collection_path);
if (!match.hasMatch())
{
qDebug()
<<"no Match => return"
<<m_collection_path;
}else {
copy.setPath(match.captured("path_proto"));
} }
return(copy); return(copy);
} }
@@ -734,6 +756,7 @@ bool ElementsLocation::setXml(const QDomDocument &xml_document) const
//Element doesn't exist, we create the element //Element doesn't exist, we create the element
else else
{ {
#if QT_VERSION < QT_VERSION_CHECK(6, 0, 0) // ### Qt 6: remove
QString path_ = collectionPath(false); QString path_ = collectionPath(false);
QRegExp rx ("^(.*)/(.*\\.elmt)$"); QRegExp rx ("^(.*)/(.*\\.elmt)$");
@@ -750,7 +773,12 @@ bool ElementsLocation::setXml(const QDomDocument &xml_document) const
qDebug() << "ElementsLocation::setXml :" qDebug() << "ElementsLocation::setXml :"
" rx don't match"; " rx don't match";
} }
#else
#if TODO_LIST
#pragma message("@TODO remove code for QT 6 or later")
#endif
qDebug()<<"Help code for QT 6 or later";
#endif
} }
} }

View File

@@ -1040,11 +1040,11 @@ void Createdxf::drawArcEllipse(
/* /*
* Utility functions * Utility functions
*/ */
static QRectF scaleRect(QRectF rect) //static QRectF scaleRect(QRectF rect)
{ //{
QRectF ro(rect.bottomLeft().x() * Createdxf::xScale, // QRectF ro(rect.bottomLeft().x() * Createdxf::xScale,
Createdxf::sheetHeight - (rect.bottomLeft().y() * Createdxf::yScale), // Createdxf::sheetHeight - (rect.bottomLeft().y() * Createdxf::yScale),
rect.width() * Createdxf::xScale, // rect.width() * Createdxf::xScale,
rect.height() * Createdxf::yScale); // rect.height() * Createdxf::yScale);
return ro; // return ro;
} //}

View File

@@ -34,6 +34,8 @@
#include "changetitleblockcommand.h" #include "changetitleblockcommand.h"
#include "conductorcreator.h" #include "conductorcreator.h"
#include <QDropEvent>
/** /**
Constructeur Constructeur
@param diagram Schema a afficher ; si diagram vaut 0, un nouveau Diagram est utilise @param diagram Schema a afficher ; si diagram vaut 0, un nouveau Diagram est utilise
@@ -200,7 +202,19 @@ void DiagramView::handleElementDrop(QDropEvent *event)
return; return;
} }
diagram()->setEventInterface(new DiagramEventAddElement(location, diagram(), mapToScene(event->pos()))); #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 //Set focus to the view to get event
this->setFocus(); this->setFocus();
} }
@@ -268,7 +282,19 @@ void DiagramView::handleTextDrop(QDropEvent *e) {
iti -> setHtml (e -> mimeData() -> text()); iti -> setHtml (e -> mimeData() -> text());
} }
m_diagram -> undoStack().push(new AddItemCommand<IndependentTextItem *>(iti, m_diagram, mapToScene(e->pos()))); #if QT_VERSION < QT_VERSION_CHECK(6, 0, 0) // ### Qt 6: remove
m_diagram -> undoStack().push(
new AddItemCommand<IndependentTextItem *>(
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 AddItemCommand<IndependentTextItem *>(
iti, m_diagram, e->position()));
#endif
} }
/** /**
@@ -423,7 +449,14 @@ void DiagramView::mousePressEvent(QMouseEvent *e)
if (m_event_interface && m_event_interface->mousePressEvent(e)) return; if (m_event_interface && m_event_interface->mousePressEvent(e)) return;
//Start drag view when hold the middle button //Start drag view when hold the middle button
#if QT_VERSION < QT_VERSION_CHECK(6, 0, 0) // ### Qt 6: remove
if (e->button() == Qt::MidButton) 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(); m_drag_last_pos = e->pos();
viewport()->setCursor(Qt::ClosedHandCursor); viewport()->setCursor(Qt::ClosedHandCursor);
@@ -473,7 +506,14 @@ void DiagramView::mouseMoveEvent(QMouseEvent *e)
if (m_event_interface && m_event_interface->mouseMoveEvent(e)) return; if (m_event_interface && m_event_interface->mouseMoveEvent(e)) return;
//Drag the view //Drag the view
if (e->buttons() == Qt::MidButton) #if QT_VERSION < QT_VERSION_CHECK(6, 0, 0) // ### 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
{ {
QScrollBar *h = horizontalScrollBar(); QScrollBar *h = horizontalScrollBar();
QScrollBar *v = verticalScrollBar(); QScrollBar *v = verticalScrollBar();
@@ -534,7 +574,14 @@ void DiagramView::mouseReleaseEvent(QMouseEvent *e)
if (m_event_interface && m_event_interface->mouseReleaseEvent(e)) return; if (m_event_interface && m_event_interface->mouseReleaseEvent(e)) return;
//Stop drag view //Stop drag view
#if QT_VERSION < QT_VERSION_CHECK(6, 0, 0) // ### Qt 6: remove
if (e->button() == Qt::MidButton) 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); viewport()->setCursor(Qt::ArrowCursor);
} }
@@ -567,7 +614,15 @@ void DiagramView::mouseReleaseEvent(QMouseEvent *e)
}); });
QMenu *menu = new QMenu(this); QMenu *menu = new QMenu(this);
menu->addAction(act); menu->addAction(act);
#if QT_VERSION < QT_VERSION_CHECK(6, 0, 0) // ### Qt 6: remove
menu->popup(e->globalPos()); 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; m_free_rubberbanding = false;

View File

@@ -373,7 +373,14 @@ ElementContent ElementView::pasteWithOffset(const QDomDocument &xml_document) {
@param e QMouseEvent decrivant l'evenement souris @param e QMouseEvent decrivant l'evenement souris
*/ */
void ElementView::mousePressEvent(QMouseEvent *e) { void ElementView::mousePressEvent(QMouseEvent *e) {
if (e->buttons() == Qt::MidButton) #if QT_VERSION < QT_VERSION_CHECK(6, 0, 0) // ### 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
{ {
setCursor( (Qt::ClosedHandCursor)); setCursor( (Qt::ClosedHandCursor));
reference_view_ = e->pos(); reference_view_ = e->pos();
@@ -387,7 +394,14 @@ void ElementView::mousePressEvent(QMouseEvent *e) {
Manage the event move mouse Manage the event move mouse
*/ */
void ElementView::mouseMoveEvent(QMouseEvent *e) { void ElementView::mouseMoveEvent(QMouseEvent *e) {
if (e->buttons() == Qt::MidButton) #if QT_VERSION < QT_VERSION_CHECK(6, 0, 0) // ### 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
{ {
QScrollBar *h = horizontalScrollBar(); QScrollBar *h = horizontalScrollBar();
QScrollBar *v = verticalScrollBar(); QScrollBar *v = verticalScrollBar();
@@ -405,7 +419,15 @@ void ElementView::mouseMoveEvent(QMouseEvent *e) {
Manage event release click mouse Manage event release click mouse
*/ */
void ElementView::mouseReleaseEvent(QMouseEvent *e) { void ElementView::mouseReleaseEvent(QMouseEvent *e) {
if (e -> button() == Qt::MidButton) { #if QT_VERSION < QT_VERSION_CHECK(6, 0, 0) // ### 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
{
setCursor(Qt::ArrowCursor); setCursor(Qt::ArrowCursor);
adjustSceneRect(); adjustSceneRect();
return; return;

View File

@@ -61,7 +61,14 @@ void PartArc::paint(QPainter *painter, const QStyleOptionGraphicsItem *options,
//Always remove the brush //Always remove the brush
painter -> setBrush(Qt::NoBrush); painter -> setBrush(Qt::NoBrush);
QPen t = painter -> pen(); QPen t = painter -> pen();
#if QT_VERSION < QT_VERSION_CHECK(6, 0, 0) // ### Qt 6: remove
t.setCosmetic(options && options -> levelOfDetail < 1.0); t.setCosmetic(options && options -> levelOfDetail < 1.0);
#else
#if TODO_LIST
#pragma message("@TODO remove code for QT 6 or later")
#endif
t.setCosmetic(options && options -> levelOfDetailFromTransform(painter->worldTransform()) < 1.0);
#endif
painter -> setPen(t); painter -> setPen(t);
if (isSelected()) if (isSelected())

View File

@@ -55,8 +55,15 @@ void PartEllipse::paint(QPainter *painter, const QStyleOptionGraphicsItem *optio
applyStylesToQPainter(*painter); applyStylesToQPainter(*painter);
QPen t = painter -> pen(); QPen t = painter -> pen();
t.setCosmetic(options && options -> levelOfDetail < 1.0);
#if QT_VERSION < QT_VERSION_CHECK(6, 0, 0) // ### Qt 6: remove
t.setCosmetic(options && options -> levelOfDetail < 1.0);
#else
#if TODO_LIST
#pragma message("@TODO remove code for QT 6 or later")
#endif
t.setCosmetic(options && options -> levelOfDetailFromTransform(painter->worldTransform()) < 1.0);
#endif
if (isSelected()) if (isSelected())
t.setColor(Qt::red); t.setColor(Qt::red);

View File

@@ -79,8 +79,15 @@ void PartLine::paint(QPainter *painter, const QStyleOptionGraphicsItem *options,
applyStylesToQPainter(*painter); applyStylesToQPainter(*painter);
QPen t = painter -> pen(); QPen t = painter -> pen();
t.setJoinStyle(Qt::MiterJoin); t.setJoinStyle(Qt::MiterJoin);
t.setCosmetic(options && options -> levelOfDetail < 1.0);
#if QT_VERSION < QT_VERSION_CHECK(6, 0, 0) // ### Qt 6: remove
t.setCosmetic(options && options -> levelOfDetail < 1.0);
#else
#if TODO_LIST
#pragma message("@TODO remove code for QT 6 or later")
#endif
t.setCosmetic(options && options -> levelOfDetailFromTransform(painter->worldTransform()) < 1.0);
#endif
if (isSelected()) t.setColor(Qt::red); if (isSelected()) t.setColor(Qt::red);
painter -> setPen(t); painter -> setPen(t);

View File

@@ -66,7 +66,14 @@ void PartPolygon::paint(QPainter *painter, const QStyleOptionGraphicsItem *optio
applyStylesToQPainter(*painter); applyStylesToQPainter(*painter);
QPen t = painter -> pen(); QPen t = painter -> pen();
#if QT_VERSION < QT_VERSION_CHECK(6, 0, 0) // ### Qt 6: remove
t.setCosmetic(options && options -> levelOfDetail < 1.0); t.setCosmetic(options && options -> levelOfDetail < 1.0);
#else
#if TODO_LIST
#pragma message("@TODO remove code for QT 6 or later")
#endif
t.setCosmetic(options && options -> levelOfDetailFromTransform(painter->worldTransform()) < 1.0);
#endif
if (isSelected()) t.setColor(Qt::red); if (isSelected()) t.setColor(Qt::red);
painter -> setPen(t); painter -> setPen(t);

View File

@@ -51,8 +51,14 @@ void PartRectangle::paint(QPainter *painter, const QStyleOptionGraphicsItem *opt
Q_UNUSED(widget); Q_UNUSED(widget);
applyStylesToQPainter(*painter); applyStylesToQPainter(*painter);
QPen t = painter -> pen(); QPen t = painter -> pen();
#if QT_VERSION < QT_VERSION_CHECK(6, 0, 0) // ### Qt 6: remove
t.setCosmetic(options && options -> levelOfDetail < 1.0); t.setCosmetic(options && options -> levelOfDetail < 1.0);
#else
#if TODO_LIST
#pragma message("@TODO remove code for QT 6 or later")
#endif
t.setCosmetic(options && options -> levelOfDetailFromTransform(painter->worldTransform()) < 1.0);
#endif
if (isSelected()) if (isSelected())
t.setColor(Qt::red); t.setColor(Qt::red);

View File

@@ -62,37 +62,52 @@ const QDomElement PartTerminal::toXml(QDomDocument &xml_document) const
/** /**
Dessine la borne Dessine la borne
@param p QPainter a utiliser pour rendre le dessin @param painter QPainter a utiliser pour rendre le dessin
@param options Options pour affiner le rendu @param options Options pour affiner le rendu
@param widget Widget sur lequel le rendu est effectue @param widget Widget sur lequel le rendu est effectue
*/ */
void PartTerminal::paint(QPainter *p, const QStyleOptionGraphicsItem *options, QWidget *widget) { void PartTerminal::paint(
QPainter *painter,
const QStyleOptionGraphicsItem *options,
QWidget *widget)
{
Q_UNUSED(widget); Q_UNUSED(widget);
p -> save(); painter -> save();
// annulation des renderhints // annulation des renderhints
p -> setRenderHint(QPainter::Antialiasing, false); painter -> setRenderHint(QPainter::Antialiasing, false);
p -> setRenderHint(QPainter::TextAntialiasing, false); painter -> setRenderHint(QPainter::TextAntialiasing, false);
p -> setRenderHint(QPainter::SmoothPixmapTransform, false); painter -> setRenderHint(QPainter::SmoothPixmapTransform, false);
QPen t; QPen t;
t.setWidthF(1.0); t.setWidthF(1.0);
t.setCosmetic(options && options -> levelOfDetail < 1.0);
#if QT_VERSION < QT_VERSION_CHECK(6, 0, 0) // ### Qt 6: remove
t.setCosmetic(options && options -> levelOfDetail < 1.0);
#else
#if TODO_LIST
#pragma message("@TODO remove code for QT 6 or later")
#endif
t.setCosmetic(
options
&& options->levelOfDetailFromTransform(
painter->worldTransform())
< 1.0);
#endif
// dessin de la borne en rouge // dessin de la borne en rouge
t.setColor(isSelected() ? Terminal::neutralColor : Qt::red); t.setColor(isSelected() ? Terminal::neutralColor : Qt::red);
p -> setPen(t); painter -> setPen(t);
p -> drawLine(QPointF(0.0, 0.0), d -> second_point); painter -> drawLine(QPointF(0.0, 0.0), d -> second_point);
// dessin du point d'amarrage au conducteur en bleu // dessin du point d'amarrage au conducteur en bleu
t.setColor(isSelected() ? Qt::red : Terminal::neutralColor); t.setColor(isSelected() ? Qt::red : Terminal::neutralColor);
p -> setPen(t); painter -> setPen(t);
p -> setBrush(Terminal::neutralColor); painter -> setBrush(Terminal::neutralColor);
p -> drawPoint(QPointF(0.0, 0.0)); painter -> drawPoint(QPointF(0.0, 0.0));
p -> restore(); painter -> restore();
if (m_hovered) if (m_hovered)
drawShadowShape(p); drawShadowShape(painter);
} }
/** /**

View File

@@ -55,7 +55,10 @@ class PartTerminal : public CustomElementGraphicPart {
QString xmlName() const override { return(QString("terminal")); } QString xmlName() const override { return(QString("terminal")); }
void fromXml(const QDomElement &) override; void fromXml(const QDomElement &) override;
const QDomElement toXml(QDomDocument &) const override; const QDomElement toXml(QDomDocument &) const override;
void paint(QPainter *, const QStyleOptionGraphicsItem *, QWidget *) override; void paint(
QPainter *painter,
const QStyleOptionGraphicsItem *,
QWidget *) override;
QPainterPath shape() const override; QPainterPath shape() const override;
QPainterPath shadowShape() const override {return shape();} QPainterPath shadowShape() const override {return shape();}

View File

@@ -1471,7 +1471,14 @@ void QETElementEditor::slot_createPartsList()
QString part_desc = cep -> name(); QString part_desc = cep -> name();
QListWidgetItem *qlwi = new QListWidgetItem(part_desc); QListWidgetItem *qlwi = new QListWidgetItem(part_desc);
QVariant v; QVariant v;
#if QT_VERSION < QT_VERSION_CHECK(6, 0, 0) // ### Qt 6: remove
v.setValue<QGraphicsItem *>(qgi); v.setValue<QGraphicsItem *>(qgi);
#else
#if TODO_LIST
#pragma message("@TODO remove code for QT 6 or later")
#endif
qDebug()<<"Help code for QT 6 or later";
#endif
qlwi -> setData(42, v); qlwi -> setData(42, v);
m_parts_list -> addItem(qlwi); m_parts_list -> addItem(qlwi);
qlwi -> setSelected(qgi -> isSelected()); qlwi -> setSelected(qgi -> isSelected());

View File

@@ -46,9 +46,9 @@ void Machine_info::send_info_to_debug()
{ {
qInfo()<<"debugging enabled:" qInfo()<<"debugging enabled:"
<< QLibraryInfo::isDebugBuild(); << QLibraryInfo::isDebugBuild();
qInfo()<< "Qt library version:" qInfo()<< "Qt library version:"
<< QLibraryInfo::version(); << QLibraryInfo::version();
#if QT_VERSION < QT_VERSION_CHECK(6, 0, 0) // ### Qt 6: remove
qInfo()<< "Qt library location default prefix:" qInfo()<< "Qt library location default prefix:"
<< QLibraryInfo::location(QLibraryInfo::PrefixPath); << QLibraryInfo::location(QLibraryInfo::PrefixPath);
qInfo()<< "Qt library location documentation:" qInfo()<< "Qt library location documentation:"
@@ -80,6 +80,43 @@ void Machine_info::send_info_to_debug()
#ifndef Q_OS_WIN #ifndef Q_OS_WIN
qInfo()<< "Qt library location Qt settings:" qInfo()<< "Qt library location Qt settings:"
<< QLibraryInfo::location(QLibraryInfo::SettingsPath); << 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:"
<< QLibraryInfo::path(QLibraryInfo::DocumentationPath);
qInfo()<< "Qt library path headers:"
<< QLibraryInfo::path(QLibraryInfo::HeadersPath);
qInfo()<< "Qt library path libraries:"
<< QLibraryInfo::path(QLibraryInfo::LibrariesPath);
qInfo()<< "Qt library path executables:"
<< QLibraryInfo::path(QLibraryInfo::LibraryExecutablesPath);
qInfo()<< "Qt library path Qt binaries:"
<< QLibraryInfo::path(QLibraryInfo::BinariesPath);
qInfo()<< "Qt library path Qt plugins:"
<< QLibraryInfo::path(QLibraryInfo::PluginsPath);
// qInfo()<< "Qt library path installed QML extensions:"
// << QLibraryInfo::path(QLibraryInfo::ImportsPath);
qInfo()<< "Qt library path installed QML extensions:"
<< QLibraryInfo::path(QLibraryInfo::Qml2ImportsPath);
qInfo()<< "Qt library path dependent Qt data:"
<< QLibraryInfo::path(QLibraryInfo::ArchDataPath);
qInfo()<< "Qt library path independent Qt data:"
<< QLibraryInfo::path(QLibraryInfo::DataPath);
qInfo()<< "Qt library path translation:"
<< QLibraryInfo::path(QLibraryInfo::TranslationsPath);
qInfo()<< "Qt library path examples:"
<< QLibraryInfo::path(QLibraryInfo::ExamplesPath);
qInfo()<< "Qt library path Qt testcases:"
<< QLibraryInfo::path(QLibraryInfo::TestsPath);
#ifndef Q_OS_WIN
qInfo()<< "Qt library path Qt settings:"
<< QLibraryInfo::path(QLibraryInfo::SettingsPath);
#endif
#endif #endif
qInfo()<< "GitRevision " + QString(GIT_COMMIT_SHA); qInfo()<< "GitRevision " + QString(GIT_COMMIT_SHA);
qInfo()<< "QElectroTech V " + QET::displayedVersion; qInfo()<< "QElectroTech V " + QET::displayedVersion;

View File

@@ -166,7 +166,13 @@ int main(int argc, char **argv)
QCoreApplication::setApplicationName("QElectroTech"); QCoreApplication::setApplicationName("QElectroTech");
//Creation and execution of the application //Creation and execution of the application
//HighDPI //HighDPI
#if QT_VERSION < QT_VERSION_CHECK(6, 0, 0) // ### Qt 6: remove
QCoreApplication::setAttribute(Qt::AA_EnableHighDpiScaling); QCoreApplication::setAttribute(Qt::AA_EnableHighDpiScaling);
#else
#if TODO_LIST
#pragma message("@TODO remove code for QT 6 or later")
#endif
#endif
SingleApplication app(argc, argv, true); SingleApplication app(argc, argv, true);
#ifdef Q_OS_MACOS #ifdef Q_OS_MACOS
//Handle the opening of QET when user double click on a .qet .elmt .tbt file //Handle the opening of QET when user double click on a .qet .elmt .tbt file

View File

@@ -23,7 +23,13 @@
#include "qeticons.h" #include "qeticons.h"
#include <QPrintPreviewWidget> #include <QPrintPreviewWidget>
#if QT_VERSION < QT_VERSION_CHECK(6, 0, 0) // ### Qt 6: remove
#include <QDesktopWidget> #include <QDesktopWidget>
#else
#if TODO_LIST
#pragma message("@TODO remove code for QT 6 or later")
#endif
#endif
#include <QScreen> #include <QScreen>
#include <QPainter> #include <QPainter>
#include <QPageSetupDialog> #include <QPageSetupDialog>
@@ -45,7 +51,14 @@ void ProjectPrintWindow::launchDialog(QETProject *project, QWidget *parent)
} }
auto printer_ = new QPrinter(); auto printer_ = new QPrinter();
#if QT_VERSION < QT_VERSION_CHECK(6, 0, 0) // ### Qt 6: remove
printer_->setOrientation(QPrinter::Landscape); printer_->setOrientation(QPrinter::Landscape);
#else
#if TODO_LIST
#pragma message("@TODO remove code for QT 6 or later")
#endif
qDebug()<<"Help code for QT 6 or later";
#endif
printer_->setDocName(doc_name); printer_->setDocName(doc_name);
printer_->setOutputFileName(file_name); printer_->setOutputFileName(file_name);
printer_->setCreator(QString("QElectroTech %1").arg(QET::displayedVersion)); printer_->setCreator(QString("QElectroTech %1").arg(QET::displayedVersion));
@@ -55,7 +68,14 @@ void ProjectPrintWindow::launchDialog(QETProject *project, QWidget *parent)
print_dialog.setWindowFlags(Qt::Sheet); print_dialog.setWindowFlags(Qt::Sheet);
#endif #endif
print_dialog.setWindowTitle(tr("Options d'impression", "window title")); 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::PrintToFile | QAbstractPrintDialog::PrintShowPageSize); print_dialog.setEnabledOptions(QAbstractPrintDialog::PrintToFile | 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
if (print_dialog.exec() == QDialog::Rejected) { if (print_dialog.exec() == QDialog::Rejected) {
delete printer_; delete printer_;
return; return;
@@ -213,8 +233,15 @@ void ProjectPrintWindow::printDiagram(Diagram *diagram, bool fit_page, QPainter
diagram->render(painter, QRectF(), diagram_rect, Qt::KeepAspectRatio); diagram->render(painter, QRectF(), diagram_rect, Qt::KeepAspectRatio);
} else { } else {
//Print on one or several pages //Print on one or several pages
#if QT_VERSION < QT_VERSION_CHECK(6, 0, 0) // ### Qt 6: remove
auto printed_rect = full_page ? printer->paperRect() : printer->pageRect(); 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 used_width = printed_rect.width(); auto used_width = printed_rect.width();
auto used_height = printed_rect.height(); auto used_height = printed_rect.height();
auto h_pages_count = horizontalPagesCount(diagram, option, full_page); auto h_pages_count = horizontalPagesCount(diagram, option, full_page);
@@ -231,9 +258,16 @@ void ProjectPrintWindow::printDiagram(Diagram *diagram, bool fit_page, QPainter
auto x_offset = 0; auto x_offset = 0;
for (auto j=0 ; j<h_pages_count ; ++j) for (auto j=0 ; j<h_pages_count ; ++j)
{ {
#if QT_VERSION < QT_VERSION_CHECK(6, 0, 0) // ### Qt 6: remove
page_grid.last() << QRect(QPoint(x_offset, y_offset), page_grid.last() << QRect(QPoint(x_offset, y_offset),
QSize(qMin(used_width, diagram_rect.width() - x_offset), QSize(qMin(used_width, diagram_rect.width() - x_offset),
qMin(used_height, diagram_rect.height() - y_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; x_offset += used_width;
} }
y_offset += used_height; y_offset += used_height;
@@ -294,9 +328,18 @@ QRect ProjectPrintWindow::diagramRect(Diagram *diagram, const ExportProperties &
* @return The width of the "poster" in number of page for print the diagram * @return The width of the "poster" in number of page for print the diagram
* with the orientation and the paper format used by the actual printer * with the orientation and the paper format used by the actual printer
*/ */
int ProjectPrintWindow::horizontalPagesCount(Diagram *diagram, const ExportProperties &option, bool full_page) const int ProjectPrintWindow::horizontalPagesCount(
Diagram *diagram, const ExportProperties &option, bool full_page) const
{ {
QRect printable_area = full_page ? m_printer-> paperRect() : m_printer-> pageRect(); QRect printable_area;
#if QT_VERSION < QT_VERSION_CHECK(6, 0, 0) // ### 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
qDebug()<<"Help code for QT 6 or later";
#endif
QRect diagram_rect = diagramRect(diagram, option); QRect diagram_rect = diagramRect(diagram, option);
int h_pages_count = int(ceil(qreal(diagram_rect.width()) / qreal(printable_area.width()))); int h_pages_count = int(ceil(qreal(diagram_rect.width()) / qreal(printable_area.width())));
@@ -311,9 +354,18 @@ int ProjectPrintWindow::horizontalPagesCount(Diagram *diagram, const ExportPrope
* @return The height of the "poster" in number of pages for print the diagram * @return The height of the "poster" in number of pages for print the diagram
* with the orientation and paper format used by the actual printer * with the orientation and paper format used by the actual printer
*/ */
int ProjectPrintWindow::verticalPagesCount(Diagram *diagram, const ExportProperties &option, bool full_page) const int ProjectPrintWindow::verticalPagesCount(
Diagram *diagram, const ExportProperties &option, bool full_page) const
{ {
QRect printable_area = full_page ? m_printer->paperRect() : m_printer->pageRect(); QRect printable_area;
#if QT_VERSION < QT_VERSION_CHECK(6, 0, 0) // ### 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
qDebug()<<"Help code for QT 6 or later";
#endif
QRect diagram_rect = diagramRect(diagram, option); QRect diagram_rect = diagramRect(diagram, option);
int v_pages_count = int(ceil(qreal(diagram_rect.height()) / qreal(printable_area.height()))); int v_pages_count = int(ceil(qreal(diagram_rect.height()) / qreal(printable_area.height())));
@@ -371,6 +423,7 @@ QString ProjectPrintWindow::settingsSectionName(const QPrinter *printer)
void ProjectPrintWindow::loadPageSetupForCurrentPrinter() void ProjectPrintWindow::loadPageSetupForCurrentPrinter()
{ {
#if QT_VERSION < QT_VERSION_CHECK(6, 0, 0) // ### Qt 6: remove
QSettings settings; QSettings settings;
QString printer_section = settingsSectionName(m_printer); QString printer_section = settingsSectionName(m_printer);
@@ -413,10 +466,17 @@ void ProjectPrintWindow::loadPageSetupForCurrentPrinter()
settings.endGroup(); settings.endGroup();
settings.endGroup(); settings.endGroup();
#else
#if TODO_LIST
#pragma message("@TODO remove code for QT 6 or later")
#endif
qDebug()<<"Help code for QT 6 or later";
#endif
} }
void ProjectPrintWindow::savePageSetupForCurrentPrinter() void ProjectPrintWindow::savePageSetupForCurrentPrinter()
{ {
#if QT_VERSION < QT_VERSION_CHECK(6, 0, 0) // ### Qt 6: remove
QSettings settings; QSettings settings;
QString printer_section = settingsSectionName(m_printer); QString printer_section = settingsSectionName(m_printer);
@@ -444,6 +504,12 @@ void ProjectPrintWindow::savePageSetupForCurrentPrinter()
settings.endGroup(); settings.endGroup();
settings.endGroup(); settings.endGroup();
settings.sync(); 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";
#endif
} }
/** /**

View File

@@ -25,6 +25,7 @@
#include <QSaveFile> #include <QSaveFile>
#include <QTextStream> #include <QTextStream>
#include <QRegularExpression> #include <QRegularExpression>
#include <QActionGroup>
/** /**
Permet de convertir une chaine de caracteres ("n", "s", "e" ou "w") Permet de convertir une chaine de caracteres ("n", "s", "e" ou "w")
@@ -164,9 +165,9 @@ bool QET::lineContainsPoint(const QLineF &line, const QPointF &point) {
@return true si le projete orthogonal du point sur la droite appartient au @return true si le projete orthogonal du point sur la droite appartient au
segment de droite. segment de droite.
*/ */
bool QET::orthogonalProjection(const QPointF &point, bool QET::orthogonalProjection(
const QLineF &line, const QPointF &point,const QLineF &line,QPointF *intersection)
QPointF *intersection) { {
// recupere le vecteur normal de `line' // recupere le vecteur normal de `line'
QLineF line_normal_vector(line.normalVector()); QLineF line_normal_vector(line.normalVector());
QPointF normal_vector(line_normal_vector.dx(), line_normal_vector.dy()); QPointF normal_vector(line_normal_vector.dx(), line_normal_vector.dy());
@@ -210,9 +211,9 @@ bool QET::orthogonalProjection(const QPointF &point,
@param entier Pointeur facultatif vers un entier @param entier Pointeur facultatif vers un entier
@return true si l'attribut est bien un entier, false sinon @return true si l'attribut est bien un entier, false sinon
*/ */
bool QET::attributeIsAnInteger(const QDomElement &e, bool QET::attributeIsAnInteger(
const QString& nom_attribut, const QDomElement &e,const QString& nom_attribut,int *entier)
int *entier) { {
// verifie la presence de l'attribut // verifie la presence de l'attribut
if (!e.hasAttribute(nom_attribut)) return(false); if (!e.hasAttribute(nom_attribut)) return(false);
// verifie la validite de l'attribut // verifie la validite de l'attribut
@@ -231,9 +232,9 @@ bool QET::attributeIsAnInteger(const QDomElement &e,
@param reel Pointeur facultatif vers un double @param reel Pointeur facultatif vers un double
@return true si l'attribut est bien un reel, false sinon @return true si l'attribut est bien un reel, false sinon
*/ */
bool QET::attributeIsAReal(const QDomElement &e, bool QET::attributeIsAReal(
const QString& nom_attribut, const QDomElement &e,const QString& nom_attribut,qreal *reel)
qreal *reel) { {
// verifie la presence de l'attribut // verifie la presence de l'attribut
if (!e.hasAttribute(nom_attribut)) return(false); if (!e.hasAttribute(nom_attribut)) return(false);
// verifie la validite de l'attribut // verifie la validite de l'attribut
@@ -258,7 +259,8 @@ bool QET::attributeIsAReal(const QDomElement &e,
@return la proposition decrivant le nombre d'elements, de conducteurs et de @return la proposition decrivant le nombre d'elements, de conducteurs et de
textes textes
*/ */
QString QET::ElementsAndConductorsSentence(int elements_count, QString QET::ElementsAndConductorsSentence(
int elements_count,
int conductors_count, int conductors_count,
int texts_count, int texts_count,
int images_count, int images_count,
@@ -333,9 +335,14 @@ QString QET::ElementsAndConductorsSentence(int elements_count,
/** /**
@return the list of \a tag_name elements directly under the \a e XML element. @return the list of \a tag_name elements directly under the \a e XML element.
*/ */
QList<QDomElement> QET::findInDomElement(const QDomElement &e, const QString &tag_name) { QList<QDomElement> QET::findInDomElement(
const QDomElement &e, const QString &tag_name)
{
QList<QDomElement> return_list; QList<QDomElement> return_list;
for (QDomNode node = e.firstChild() ; !node.isNull() ; node = node.nextSibling()) { for (QDomNode node = e.firstChild() ;
!node.isNull() ;
node = node.nextSibling())
{
if (!node.isElement()) continue; if (!node.isElement()) continue;
QDomElement element = node.toElement(); QDomElement element = node.toElement();
if (element.isNull() || element.tagName() != tag_name) continue; if (element.isNull() || element.tagName() != tag_name) continue;
@@ -352,18 +359,24 @@ QList<QDomElement> QET::findInDomElement(const QDomElement &e, const QString &ta
@param children tag XML a rechercher @param children tag XML a rechercher
@return La liste des elements XML children @return La liste des elements XML children
*/ */
QList<QDomElement> QET::findInDomElement(const QDomElement &e, QList<QDomElement> QET::findInDomElement(
const QString &parent, const QDomElement &e,const QString &parent,const QString &children)
const QString &children) { {
QList<QDomElement> return_list; QList<QDomElement> return_list;
// parcours des elements parents // parcours des elements parents
for (QDomNode enfant = e.firstChild() ; !enfant.isNull() ; enfant = enfant.nextSibling()) { for (QDomNode enfant = e.firstChild() ;
!enfant.isNull() ;
enfant = enfant.nextSibling())
{
// on s'interesse a l'element XML "parent" // on s'interesse a l'element XML "parent"
QDomElement parents = enfant.toElement(); QDomElement parents = enfant.toElement();
if (parents.isNull() || parents.tagName() != parent) continue; if (parents.isNull() || parents.tagName() != parent) continue;
// parcours des enfants de l'element XML "parent" // parcours des enfants de l'element XML "parent"
for (QDomNode node_children = parents.firstChild() ; !node_children.isNull() ; node_children = node_children.nextSibling()) { for (QDomNode node_children = parents.firstChild() ;
!node_children.isNull() ;
node_children = node_children.nextSibling())
{
// on s'interesse a l'element XML "children" // on s'interesse a l'element XML "children"
QDomElement n_children = node_children.toElement(); QDomElement n_children = node_children.toElement();
if (!n_children.isNull() && n_children.tagName() == children) return_list.append(n_children); if (!n_children.isNull() && n_children.tagName() == children) return_list.append(n_children);
@@ -404,8 +417,8 @@ QString QET::license()
*/ */
QList<QChar> QET::forbiddenCharacters() QList<QChar> QET::forbiddenCharacters()
{ {
return(QList<QChar>() << '\\' << '/' << ':' << '*' << '?' << '"' return(QList<QChar>()
<< '<' << '>' << '|'); << '\\' << '/' << ':' << '*' << '?' << '"'<< '<' << '>' << '|');
} }
/** /**
@@ -614,7 +627,14 @@ bool QET::writeXmlFile(QDomDocument &xml_doc, const QString &filepath, QString *
} }
QTextStream out(&file); QTextStream out(&file);
#if QT_VERSION < QT_VERSION_CHECK(6, 0, 0) // ### Qt 6: remove
out.setCodec("UTF-8"); out.setCodec("UTF-8");
#else
#if TODO_LIST
#pragma message("@TODO remove code for QT 6 or later")
#endif
out.setEncoding(QStringConverter::Utf8);
#endif
out.setGenerateByteOrderMark(false); out.setGenerateByteOrderMark(false);
out << xml_doc.toString(4); out << xml_doc.toString(4);
if (!file.commit()) if (!file.commit())
@@ -741,7 +761,14 @@ bool QET::writeToFile(QDomDocument &xml_doc, QFile *file, QString *error_message
QTextStream out(file); QTextStream out(file);
out.seek(0); out.seek(0);
#if QT_VERSION < QT_VERSION_CHECK(6, 0, 0) // ### Qt 6: remove
out.setCodec("UTF-8"); out.setCodec("UTF-8");
#else
#if TODO_LIST
#pragma message("@TODO remove code for QT 6 or later")
#endif
out.setEncoding(QStringConverter::Utf8);
#endif
out.setGenerateByteOrderMark(false); out.setGenerateByteOrderMark(false);
out << xml_doc.toString(4); out << xml_doc.toString(4);
if (opened_here) { if (opened_here) {

View File

@@ -167,7 +167,14 @@ void QETApp::setLanguage(const QString &desired_language) {
QString languages_path = languagesPath(); QString languages_path = languagesPath();
// load Qt library translations // load Qt library translations
#if QT_VERSION < QT_VERSION_CHECK(6, 0, 0) // ### Qt 6: remove
QString qt_l10n_path = QLibraryInfo::location(QLibraryInfo::TranslationsPath); QString qt_l10n_path = QLibraryInfo::location(QLibraryInfo::TranslationsPath);
#else
#if TODO_LIST
#pragma message("@TODO remove code for QT 6 or later")
#endif
QString qt_l10n_path = QLibraryInfo::path(QLibraryInfo::TranslationsPath);
#endif
if (!qtTranslator.load("qt_" + desired_language, qt_l10n_path)) { if (!qtTranslator.load("qt_" + desired_language, qt_l10n_path)) {
qtTranslator.load("qt_" + desired_language, languages_path); qtTranslator.load("qt_" + desired_language, languages_path);
} }
@@ -1155,8 +1162,9 @@ QFont QETApp::diagramTextsItemFont(qreal size)
"Sans Serif").toString(); "Sans Serif").toString();
qreal diagram_texts_item_size = settings.value("diagramitemsize", qreal diagram_texts_item_size = settings.value("diagramitemsize",
9.0).toDouble(); 9.0).toDouble();
qreal diagram_texts_item_weight = settings.value("diagramitemweight" auto diagram_texts_item_weight =
).toDouble(); static_cast<QFont::Weight>(
settings.value("diagramitemweight").toInt());
QString diagram_texts_item_style = settings.value("diagramitemstyle", QString diagram_texts_item_style = settings.value("diagramitemstyle",
"normal").toString(); "normal").toString();

View File

@@ -970,6 +970,7 @@ void QetGraphicsTableItem::adjustColumnsWidth()
int sum_=0; int sum_=0;
for(auto i= 0 ; i<m_model->columnCount() ; ++i) for(auto i= 0 ; i<m_model->columnCount() ; ++i)
{ {
#if QT_VERSION < QT_VERSION_CHECK(6, 0, 0) // ### Qt 6: remove
auto at_a = std::min(m_minimum_column_width.size()-1, i); //In case of the I is higher than m_minimum_column_width or auto at_a = std::min(m_minimum_column_width.size()-1, 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, i); //m_header_item->minimumSectionWidth().size() auto at_b = std::min(m_header_item->minimumSectionWidth().size()-1, i); //m_header_item->minimumSectionWidth().size()
m_header_item->resizeSection( m_header_item->resizeSection(
@@ -978,6 +979,12 @@ void QetGraphicsTableItem::adjustColumnsWidth()
m_minimum_column_width.at(at_a), m_minimum_column_width.at(at_a),
m_header_item->minimumSectionWidth().at(at_b))+b); m_header_item->minimumSectionWidth().at(at_b))+b);
sum_+= m_header_item->sectionSize(i); 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";
#endif
} }

View File

@@ -470,15 +470,15 @@ QPointF Conductor::extendTerminal(const QPointF &terminal, Qet::Orientation term
/** /**
Dessine le conducteur sans antialiasing. Dessine le conducteur sans antialiasing.
@param qp Le QPainter a utiliser pour dessiner le conducteur @param painter Le QPainter a utiliser pour dessiner le conducteur
@param options Les options de style pour le conducteur @param options Les options de style pour le conducteur
@param qw Le QWidget sur lequel on dessine @param qw Le QWidget sur lequel on dessine
*/ */
void Conductor::paint(QPainter *qp, const QStyleOptionGraphicsItem *options, QWidget *qw) void Conductor::paint(QPainter *painter, const QStyleOptionGraphicsItem *options, QWidget *qw)
{ {
Q_UNUSED(qw); Q_UNUSED(qw);
qp -> save(); painter -> save();
qp -> setRenderHint(QPainter::Antialiasing, false); painter -> setRenderHint(QPainter::Antialiasing, false);
// Set the color of conductor // Set the color of conductor
QColor final_conductor_color(m_properties.color); QColor final_conductor_color(m_properties.color);
@@ -500,7 +500,7 @@ void Conductor::paint(QPainter *qp, const QStyleOptionGraphicsItem *options, QWi
conductor_pen.setWidthF(m_mouse_over? (m_properties.cond_size) +4 : (m_properties.cond_size)); conductor_pen.setWidthF(m_mouse_over? (m_properties.cond_size) +4 : (m_properties.cond_size));
//Set the QPen and QBrush to the QPainter //Set the QPen and QBrush to the QPainter
qp -> setBrush(conductor_brush); painter -> setBrush(conductor_brush);
QPen final_conductor_pen = conductor_pen; QPen final_conductor_pen = conductor_pen;
//Set the conductor style //Set the conductor style
@@ -509,14 +509,22 @@ void Conductor::paint(QPainter *qp, const QStyleOptionGraphicsItem *options, QWi
final_conductor_pen.setJoinStyle(Qt::SvgMiterJoin); // better rendering with dot final_conductor_pen.setJoinStyle(Qt::SvgMiterJoin); // better rendering with dot
//Use a cosmetique line, below a certain zoom //Use a cosmetique line, below a certain zoom
if (options && options -> levelOfDetail < 1.0) { #if QT_VERSION < QT_VERSION_CHECK(6, 0, 0) // ### Qt 6: remove
if (options && options -> levelOfDetail < 1.0)
#else
#if TODO_LIST
#pragma message("@TODO remove code for QT 6 or later")
#endif
if (options && options->levelOfDetailFromTransform(painter->worldTransform()) < 1.0)
#endif
{
final_conductor_pen.setCosmetic(true); final_conductor_pen.setCosmetic(true);
} }
qp -> setPen(final_conductor_pen); painter -> setPen(final_conductor_pen);
//Draw the conductor //Draw the conductor
qp -> drawPath(path()); painter -> drawPath(path());
//Draw the second color //Draw the second color
if(m_properties.m_bicolor) if(m_properties.m_bicolor)
{ {
@@ -525,20 +533,20 @@ void Conductor::paint(QPainter *qp, const QStyleOptionGraphicsItem *options, QWi
QVector<qreal> dash_pattern; QVector<qreal> dash_pattern;
dash_pattern << m_properties.m_dash_size-2 << m_properties.m_dash_size; dash_pattern << m_properties.m_dash_size-2 << m_properties.m_dash_size;
final_conductor_pen.setDashPattern(dash_pattern); final_conductor_pen.setDashPattern(dash_pattern);
qp->save(); painter->save();
qp->setPen(final_conductor_pen); painter->setPen(final_conductor_pen);
qp->drawPath(path()); painter->drawPath(path());
qp->restore(); painter->restore();
} }
if (m_properties.type == ConductorProperties::Single) { if (m_properties.type == ConductorProperties::Single) {
qp -> setBrush(final_conductor_color); painter -> setBrush(final_conductor_color);
m_properties.singleLineProperties.draw( m_properties.singleLineProperties.draw(
qp, painter,
middleSegment() -> isHorizontal() ? QET::Horizontal : QET::Vertical, middleSegment() -> isHorizontal() ? QET::Horizontal : QET::Vertical,
QRectF(middleSegment() -> middle() - QPointF(12.0, 12.0), QSizeF(24.0, 24.0)) QRectF(middleSegment() -> middle() - QPointF(12.0, 12.0), QSizeF(24.0, 24.0))
); );
if (isSelected()) qp -> setBrush(Qt::NoBrush); if (isSelected()) painter -> setBrush(Qt::NoBrush);
} }
//Draw the junctions //Draw the junctions
@@ -546,15 +554,15 @@ void Conductor::paint(QPainter *qp, const QStyleOptionGraphicsItem *options, QWi
if (!junctions_list.isEmpty()) { if (!junctions_list.isEmpty()) {
final_conductor_pen.setStyle(Qt::SolidLine); final_conductor_pen.setStyle(Qt::SolidLine);
QBrush junction_brush(final_conductor_color, Qt::SolidPattern); QBrush junction_brush(final_conductor_color, Qt::SolidPattern);
qp -> setPen(final_conductor_pen); painter -> setPen(final_conductor_pen);
qp -> setBrush(junction_brush); painter -> setBrush(junction_brush);
qp -> setRenderHint(QPainter::Antialiasing, true); painter -> setRenderHint(QPainter::Antialiasing, true);
foreach(QPointF point, junctions_list) { foreach(QPointF point, junctions_list) {
qp -> drawEllipse(QRectF(point.x() - 1.5, point.y() - 1.5, 3.0, 3.0)); painter -> drawEllipse(QRectF(point.x() - 1.5, point.y() - 1.5, 3.0, 3.0));
} }
} }
qp -> restore(); painter -> restore();
} }
/// @return le Diagram auquel ce conducteur appartient, ou 0 si ce conducteur est independant /// @return le Diagram auquel ce conducteur appartient, ou 0 si ce conducteur est independant

View File

@@ -33,6 +33,7 @@
#include "elementtextitemgroup.h" #include "elementtextitemgroup.h"
#include "elementpicturefactory.h" #include "elementpicturefactory.h"
#include "iostream" #include "iostream"
#include <QDomElement>
class ElementXmlRetroCompatibility class ElementXmlRetroCompatibility
{ {
@@ -210,7 +211,15 @@ void Element::paint(
drawHighlight(painter, options); drawHighlight(painter, options);
} }
if (options && options -> levelOfDetail < 1.0) { #if QT_VERSION < QT_VERSION_CHECK(6, 0, 0) // ### Qt 6: remove
if (options && options -> levelOfDetail < 1.0)
#else
#if TODO_LIST
#pragma message("@TODO remove code for QT 6 or later")
#endif
if (options && options->levelOfDetailFromTransform(painter->worldTransform()) < 1.0)
#endif
{
painter->drawPicture(0, 0, m_low_zoom_picture); painter->drawPicture(0, 0, m_low_zoom_picture);
} else { } else {
painter->drawPicture(0, 0, m_picture); painter->drawPicture(0, 0, m_picture);
@@ -762,8 +771,14 @@ bool Element::fromXml(
"links_uuids", "links_uuids",
"link_uuid"); "link_uuid");
foreach (QDomElement qdo, uuid_list) foreach (QDomElement qdo, uuid_list)
#if QT_VERSION < QT_VERSION_CHECK(6, 0, 0) // ### Qt 6: remove
tmp_uuids_link << qdo.attribute("uuid"); tmp_uuids_link << qdo.attribute("uuid");
#else
#if TODO_LIST
#pragma message("@TODO remove code for QT 6 or later")
#endif
qDebug()<<"Help code for QT 6 or later";
#endif
//uuid of this element //uuid of this element
m_uuid= QUuid(e.attribute("uuid", QUuid::createUuid().toString())); m_uuid= QUuid(e.attribute("uuid", QUuid::createUuid().toString()));

View File

@@ -262,23 +262,30 @@ void Terminal::removeConductor(Conductor *conductor)
/** /**
@brief Terminal::paint @brief Terminal::paint
Fonction de dessin des bornes Fonction de dessin des bornes
@param p Le QPainter a utiliser @param painter Le QPainter a utiliser
@param options Les options de dessin @param options Les options de dessin
*/ */
void Terminal::paint( void Terminal::paint(
QPainter *p, QPainter *painter,
const QStyleOptionGraphicsItem *options, const QStyleOptionGraphicsItem *options,
QWidget *) QWidget *)
{ {
// en dessous d'un certain zoom, les bornes ne sont plus dessinees // en dessous d'un certain zoom, les bornes ne sont plus dessinees
#if QT_VERSION < QT_VERSION_CHECK(6, 0, 0) // ### Qt 6: remove
if (options && options -> levelOfDetail < 0.5) return; if (options && options -> levelOfDetail < 0.5) return;
#else
p -> save(); #if TODO_LIST
#pragma message("@TODO remove code for QT 6 or later")
#endif
if (options && options->levelOfDetailFromTransform(painter->worldTransform()) < 0.5)
return;
#endif
painter -> save();
//annulation des renderhints //annulation des renderhints
p -> setRenderHint(QPainter::Antialiasing, false); painter -> setRenderHint(QPainter::Antialiasing, false);
p -> setRenderHint(QPainter::TextAntialiasing, false); painter -> setRenderHint(QPainter::TextAntialiasing, false);
p -> setRenderHint(QPainter::SmoothPixmapTransform, false); painter -> setRenderHint(QPainter::SmoothPixmapTransform, false);
// on travaille avec les coordonnees de l'element parent // on travaille avec les coordonnees de l'element parent
QPointF c = mapFromParent(d->m_pos); QPointF c = mapFromParent(d->m_pos);
@@ -287,23 +294,31 @@ void Terminal::paint(
QPen t; QPen t;
t.setWidthF(1.0); t.setWidthF(1.0);
if (options && options -> levelOfDetail < 1.0) { #if QT_VERSION < QT_VERSION_CHECK(6, 0, 0) // ### Qt 6: remove
if (options && options -> levelOfDetail < 1.0)
#else
#if TODO_LIST
#pragma message("@TODO remove code for QT 6 or later")
#endif
if (options && options->levelOfDetailFromTransform(painter->worldTransform()) < 1.0)
#endif
{
t.setCosmetic(true); t.setCosmetic(true);
} }
// dessin de la borne en rouge // dessin de la borne en rouge
t.setColor(Qt::red); t.setColor(Qt::red);
p -> setPen(t); painter -> setPen(t);
p -> drawLine(c, e); painter -> drawLine(c, e);
// dessin du point d'amarrage au conducteur en bleu // dessin du point d'amarrage au conducteur en bleu
t.setColor(hovered_color_); t.setColor(hovered_color_);
p -> setPen(t); painter -> setPen(t);
p -> setBrush(hovered_color_); painter -> setBrush(hovered_color_);
if (hovered_) { if (hovered_) {
p -> setRenderHint(QPainter::Antialiasing, true); painter -> setRenderHint(QPainter::Antialiasing, true);
p -> drawEllipse(QRectF(c.x() - 2.5, c.y() - 2.5, 5.0, 5.0)); painter -> drawEllipse(QRectF(c.x() - 2.5, c.y() - 2.5, 5.0, 5.0));
} else p -> drawPoint(c); } else painter -> drawPoint(c);
//Draw help line if needed, //Draw help line if needed,
if (diagram() && m_draw_help_line) if (diagram() && m_draw_help_line)
@@ -365,7 +380,7 @@ void Terminal::paint(
m_help_line_a -> setLine(line); m_help_line_a -> setLine(line);
} }
p -> restore(); painter -> restore();
} }
/** /**

View File

@@ -61,7 +61,9 @@ class Terminal : public QGraphicsObject
*/ */
int type() const override { return Type; } int type() const override { return Type; }
void paint (QPainter *,const QStyleOptionGraphicsItem *, void paint(
QPainter *painter,
const QStyleOptionGraphicsItem *,
QWidget *) override; QWidget *) override;
void drawHelpLine (bool draw = true); void drawHelpLine (bool draw = true);
QLineF HelpLine () const; QLineF HelpLine () const;

View File

@@ -16,11 +16,6 @@
along with QElectroTech. If not, see <http://www.gnu.org/licenses/>. along with QElectroTech. If not, see <http://www.gnu.org/licenses/>.
*/ */
#include <QTimer>
#include <QStandardPaths>
#include <utility>
#include <QtConcurrent>
#include <QHash>
#include "qetproject.h" #include "qetproject.h"
#include "diagram.h" #include "diagram.h"
@@ -37,6 +32,13 @@
#include "numerotationcontextcommands.h" #include "numerotationcontextcommands.h"
#include "assignvariables.h" #include "assignvariables.h"
#include <QTimer>
#include <QStandardPaths>
#include <utility>
#include <QtConcurrent>
#include <QHash>
#include <QtDebug>
static int BACKUP_INTERVAL = 120000; //interval in ms of backup = 2min static int BACKUP_INTERVAL = 120000; //interval in ms of backup = 2min
/** /**
@@ -1691,11 +1693,16 @@ NamesList QETProject::namesListForIntegrationCategory()
*/ */
void QETProject::writeBackup() void QETProject::writeBackup()
{ {
#if QT_VERSION < QT_VERSION_CHECK(6, 0, 0) // ### Qt 6: remove
QDomDocument xml_project(toXml()); QDomDocument xml_project(toXml());
QtConcurrent::run(QET::writeToFile, QtConcurrent::run(
xml_project, QET::writeToFile,xml_project,&m_backup_file,nullptr);
&m_backup_file, #else
nullptr); #if TODO_LIST
#pragma message("@TODO remove code for QT 6 or later")
#endif
qDebug()<<"Help code for QT 6 or later";
#endif
} }
/** /**

View File

@@ -274,7 +274,14 @@ bool QETXML::writeXmlFile(
} }
QTextStream out(&file); QTextStream out(&file);
#if QT_VERSION < QT_VERSION_CHECK(6, 0, 0) // ### Qt 6: remove
out.setCodec("UTF-8"); out.setCodec("UTF-8");
#else
#if TODO_LIST
#pragma message("@TODO remove code for QT 6 or later")
#endif
out.setEncoding(QStringConverter::Utf8);
#endif
out.setGenerateByteOrderMark(false); out.setGenerateByteOrderMark(false);
out << xml_document.toString(4); out << xml_document.toString(4);
file.close(); file.close();

View File

@@ -17,6 +17,7 @@
*/ */
#include "qtextorientationwidget.h" #include "qtextorientationwidget.h"
#include <algorithm> #include <algorithm>
#include <QMouseEvent>
/** /**
Constructeur Constructeur
@@ -254,8 +255,14 @@ void QTextOrientationWidget::paintEvent(QPaintEvent *event) {
*/ */
void QTextOrientationWidget::mouseMoveEvent(QMouseEvent *event) { void QTextOrientationWidget::mouseMoveEvent(QMouseEvent *event) {
if (read_only_) return; if (read_only_) return;
#if QT_VERSION < QT_VERSION_CHECK(6, 0, 0) // ### Qt 6: remove
bool drawn_angle_hovered = positionIsASquare(event -> localPos(), &highlight_angle_); bool drawn_angle_hovered = positionIsASquare(event -> localPos(), &highlight_angle_);
#else
#if TODO_LIST
#pragma message("@TODO remove code for QT 6 or later")
#endif
bool drawn_angle_hovered = positionIsASquare(event -> position(), &highlight_angle_);
#endif
if (must_highlight_angle_ != drawn_angle_hovered) { if (must_highlight_angle_ != drawn_angle_hovered) {
must_highlight_angle_ = drawn_angle_hovered; must_highlight_angle_ = drawn_angle_hovered;
@@ -271,8 +278,14 @@ void QTextOrientationWidget::mouseReleaseEvent(QMouseEvent *event) {
if (read_only_) return; if (read_only_) return;
double clicked_angle; double clicked_angle;
#if QT_VERSION < QT_VERSION_CHECK(6, 0, 0) // ### Qt 6: remove
bool drawn_angle_clicked = positionIsASquare(event -> localPos(), &clicked_angle); bool drawn_angle_clicked = positionIsASquare(event -> localPos(), &clicked_angle);
#else
#if TODO_LIST
#pragma message("@TODO remove code for QT 6 or later")
#endif
bool drawn_angle_clicked = positionIsASquare(event -> position(), &clicked_angle);
#endif
if (drawn_angle_clicked) { if (drawn_angle_clicked) {
setOrientation(clicked_angle); setOrientation(clicked_angle);
emit(orientationChanged(clicked_angle)); emit(orientationChanged(clicked_angle));

View File

@@ -75,6 +75,7 @@
#include <QHBoxLayout> #include <QHBoxLayout>
#include <QPushButton> #include <QPushButton>
#include <QDialogButtonBox> #include <QDialogButtonBox>
#include <QActionGroup>
QT_BEGIN_NAMESPACE QT_BEGIN_NAMESPACE
@@ -86,14 +87,14 @@ QT_BEGIN_NAMESPACE
namespace qdesigner_internal { namespace qdesigner_internal {
// Richtext simplification filter helpers: Elements to be discarded // Richtext simplification filter helpers: Elements to be discarded
static inline bool filterElement(const QStringRef &name) static inline bool filterElement(const QStringView &name)
{ {
return name != QLatin1String("meta") && name != QLatin1String("style"); return name != QLatin1String("meta") && name != QLatin1String("style");
} }
// Richtext simplification filter helpers: Filter attributes of elements // Richtext simplification filter helpers: Filter attributes of elements
static inline void filterAttributes( static inline void filterAttributes(
const QStringRef &name, const QStringView &name,
QXmlStreamAttributes *atts, QXmlStreamAttributes *atts,
bool *paragraphAlignmentFound) bool *paragraphAlignmentFound)
{ {
@@ -122,8 +123,8 @@ namespace qdesigner_internal {
} }
} }
// Richtext simplification filter helpers: Check for blank QStringRef. // Richtext simplification filter helpers: Check for blank QStringView.
static inline bool isWhiteSpace(const QStringRef &in) static inline bool isWhiteSpace(const QStringView &in)
{ {
const int count = in.size(); const int count = in.size();
for (int i = 0; i < count; i++) for (int i = 0; i < count; i++)
@@ -150,7 +151,7 @@ namespace qdesigner_internal {
case QXmlStreamReader::StartElement: case QXmlStreamReader::StartElement:
elementCount++; elementCount++;
if (filterElement(reader.name())) { if (filterElement(reader.name())) {
const QStringRef name = reader.name(); const QStringView name = reader.name();
QXmlStreamAttributes attributes = reader.attributes(); QXmlStreamAttributes attributes = reader.attributes();
filterAttributes(name, &attributes, &paragraphAlignmentFound); filterAttributes(name, &attributes, &paragraphAlignmentFound);
writer.writeStartElement(name.toString()); writer.writeStartElement(name.toString());

View File

@@ -430,10 +430,10 @@ void TitleBlockTemplate::parseColumns(const QString &cols_string) {
QRegularExpression abs_col_size_format,rel_col_size_format; QRegularExpression abs_col_size_format,rel_col_size_format;
abs_col_size_format.setPattern("^([0-9]+)(?:px)?$"); abs_col_size_format.setPattern("^([0-9]+)(?:px)?$");
abs_col_size_format.setPatternOptions(QRegularExpression::CaseInsensitiveOption); abs_col_size_format.setPatternOptions(QRegularExpression::CaseInsensitiveOption);
//QRegExp rel_col_size_format("^([rt])([0-9]+)%$", Qt::CaseInsensitive);
rel_col_size_format.setPattern("^([rt])([0-9]+)%$"); rel_col_size_format.setPattern("^([rt])([0-9]+)%$");
rel_col_size_format.setPatternOptions(QRegularExpression::CaseInsensitiveOption); rel_col_size_format.setPatternOptions(QRegularExpression::CaseInsensitiveOption);
bool conv_ok; bool conv_ok;
qDebug() <<"is QRegularExpression ok?";
#if QT_VERSION < QT_VERSION_CHECK(5, 14, 0) // ### Qt 6: remove #if QT_VERSION < QT_VERSION_CHECK(5, 14, 0) // ### Qt 6: remove
QStringList cols_descriptions = QStringList cols_descriptions =

View File

@@ -191,7 +191,14 @@ void DeleteQGraphicsItemCommand::setPotentialsOfRemovedElements()
if (exist_ == false) if (exist_ == false)
{ {
#if QT_VERSION < QT_VERSION_CHECK(6, 0, 0) // ### Qt 6: remove
m_connected_terminals.append(qMakePair<Terminal *, Terminal *>(hub_terminal, t)); m_connected_terminals.append(qMakePair<Terminal *, Terminal *>(hub_terminal, t));
#else
#if TODO_LIST
#pragma message("@TODO remove code for QT 6 or later")
#endif
qDebug()<<"Help code for QT 6 or later";
#endif
Conductor *new_cond = new Conductor(hub_terminal, t); Conductor *new_cond = new Conductor(hub_terminal, t);
new_cond->setProperties(properties); new_cond->setProperties(properties);
new AddItemCommand<Conductor*>(new_cond, t->diagram(), QPointF(), this); new AddItemCommand<Conductor*>(new_cond, t->diagram(), QPointF(), this);

View File

@@ -285,6 +285,10 @@ void LinkElementCommand::makeLink(const QList<Element *> &element_list)
//All elements stored in to_unlink is unwanted we unlink it from m_element //All elements stored in to_unlink is unwanted we unlink it from m_element
if (!to_unlink.isEmpty()) if (!to_unlink.isEmpty())
{
foreach(Element *elmt, to_unlink) foreach(Element *elmt, to_unlink)
{
m_element->unlinkElement(elmt); m_element->unlinkElement(elmt);
} }
}
}