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 -
kcolorbutton.h
+
../colorbutton.h
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 -
kcolorbutton.h
+
../colorbutton.h