diff --git a/cmake/define_definitions.cmake b/cmake/define_definitions.cmake
index cb9ad9b54..e0a157e16 100644
--- a/cmake/define_definitions.cmake
+++ b/cmake/define_definitions.cmake
@@ -64,7 +64,8 @@ message("GIT_COMMIT_SHA :" ${GIT_COMMIT_SHA})
if(BUILD_WITH_KF6 AND BUILD_KF6)
message("KF6_GIT_TAG :" ${KF6_GIT_TAG})
-else()
+endif()
+if(NOT BUILD_WITH_KF6)
add_definitions(-DBUILD_WITHOUT_KF6)
endif()
message("QET_COMPONENTS :" ${QET_COMPONENTS})
diff --git a/cmake/qet_compilation_vars.cmake b/cmake/qet_compilation_vars.cmake
index dffed9ff4..e16b058ee 100644
--- a/cmake/qet_compilation_vars.cmake
+++ b/cmake/qet_compilation_vars.cmake
@@ -111,6 +111,8 @@ 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/conductorautonumerotation.cpp
${QET_DIR}/sources/conductorautonumerotation.h
${QET_DIR}/sources/conductornumexport.cpp
diff --git a/sources/colorbutton.cpp b/sources/colorbutton.cpp
new file mode 100644
index 000000000..3a57aef69
--- /dev/null
+++ b/sources/colorbutton.cpp
@@ -0,0 +1,85 @@
+/*
+ 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 .
+*/
+#include "colorbutton.h"
+
+#include
+#include
+
+/**
+ @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 newColor = QColorDialog::getColor(m_color);
+
+ // Validate user input
+ if (newColor.isValid()) {
+ m_color = newColor;
+ emit changed(newColor);
+ 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);
+ QPainter painter(this);
+
+ // Get dimensions of te 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(5, 5, r_width - 10, r_height - 10);
+ painter.fillRect(color_indicator, m_color);
+}
diff --git a/sources/colorbutton.h b/sources/colorbutton.h
new file mode 100644
index 000000000..d70969cbf
--- /dev/null
+++ b/sources/colorbutton.h
@@ -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 .
+*/
+#ifndef COLORBUTTON_H
+#define COLORBUTTON_H
+
+#include
+#include
+#include
+#include
+
+/**
+ @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
diff --git a/sources/editor/ui/dynamictextfieldeditor.cpp b/sources/editor/ui/dynamictextfieldeditor.cpp
index afb841bb9..034611d93 100644
--- a/sources/editor/ui/dynamictextfieldeditor.cpp
+++ b/sources/editor/ui/dynamictextfieldeditor.cpp
@@ -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_KF6
-#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_KF6
-#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,
+ connect(m_color_kpb, &ColorButton::changed,
this, &DynamicTextFieldEditor::on_m_color_kpb_changed);
ui->m_main_grid_layout->addWidget(m_color_kpb, 6, 1, 1, 2);
-#endif
}
void DynamicTextFieldEditor::setUpConnections()
diff --git a/sources/editor/ui/dynamictextfieldeditor.h b/sources/editor/ui/dynamictextfieldeditor.h
index 29644c4ae..a39d4abae 100644
--- a/sources/editor/ui/dynamictextfieldeditor.h
+++ b/sources/editor/ui/dynamictextfieldeditor.h
@@ -21,10 +21,7 @@
#include "../elementitemeditor.h"
#include "../graphicspart/partdynamictextfield.h"
-#ifdef BUILD_WITHOUT_KF6
-#else
-# include
-#endif
+#include "../../colorbutton.h"
namespace Ui {
class DynamicTextFieldEditor;
@@ -77,10 +74,7 @@ class DynamicTextFieldEditor : public ElementItemEditor {
QList m_parts;
QList m_connection_list;
- #ifdef BUILD_WITHOUT_KF6
- #else
- KColorButton* m_color_kpb = nullptr;
- #endif
+ ColorButton* m_color_kpb = nullptr;
};
#endif // DYNAMICTEXTFIELDEDITOR_H
diff --git a/sources/editor/ui/texteditor.cpp b/sources/editor/ui/texteditor.cpp
index 8689d741f..5e99eaaee 100644
--- a/sources/editor/ui/texteditor.cpp
+++ b/sources/editor/ui/texteditor.cpp
@@ -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_KF6
-#else
m_color_pb -> setColor(m_text -> defaultTextColor());
-#endif
setUpEditConnection();
}
@@ -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_KF6
-#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"));
diff --git a/sources/editor/ui/texteditor.h b/sources/editor/ui/texteditor.h
index de6bc8b74..ea74154b7 100644
--- a/sources/editor/ui/texteditor.h
+++ b/sources/editor/ui/texteditor.h
@@ -25,10 +25,7 @@
#include
#include
#include
-#ifdef BUILD_WITHOUT_KF6
-#else
-#include
-#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_KF6
-#else
- KColorButton *m_color_pb;
-#endif
+ ColorButton *m_color_pb;
};
#endif // TEXTEDITOR_H
diff --git a/sources/ui/conductorpropertieswidget.ui b/sources/ui/conductorpropertieswidget.ui
index 48ea44ac8..60e4408bf 100644
--- a/sources/ui/conductorpropertieswidget.ui
+++ b/sources/ui/conductorpropertieswidget.ui
@@ -94,7 +94,7 @@
-
-
+
-
@@ -458,7 +458,7 @@
-
-
+
-
@@ -530,7 +530,7 @@
-
-
+
@@ -576,9 +576,9 @@
- KColorButton
+ ColorButton
QPushButton
-
+
diff --git a/sources/ui/shapegraphicsitempropertieswidget.cpp b/sources/ui/shapegraphicsitempropertieswidget.cpp
index fa2171eac..a91d3e487 100644
--- a/sources/ui/shapegraphicsitempropertieswidget.cpp
+++ b/sources/ui/shapegraphicsitempropertieswidget.cpp
@@ -478,13 +478,13 @@ void ShapeGraphicsItemPropertiesWidget::setUpEditConnection()
m_edit_connection << connect (ui->m_size_dsb, QOverload::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::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,
diff --git a/sources/ui/shapegraphicsitempropertieswidget.ui b/sources/ui/shapegraphicsitempropertieswidget.ui
index 01e9ae4a3..b0d620423 100644
--- a/sources/ui/shapegraphicsitempropertieswidget.ui
+++ b/sources/ui/shapegraphicsitempropertieswidget.ui
@@ -42,7 +42,7 @@
-
-
+
-
@@ -215,7 +215,7 @@
-
-
+
@@ -251,9 +251,9 @@
- KColorButton
+ ColorButton
QPushButton
-
+