Terminal strip item font is editable

The font used in the terminal strip item can be edited
trough the terminal strip layout editor widget
This commit is contained in:
joshua
2025-03-12 19:22:30 +01:00
parent ae5e188866
commit 7747223dfa
6 changed files with 345 additions and 232 deletions

View File

@@ -16,10 +16,12 @@
along with QElectroTech. If not, see <http://www.gnu.org/licenses/>. along with QElectroTech. If not, see <http://www.gnu.org/licenses/>.
*/ */
#include "terminalstriplayoutpattern.h" #include "terminalstriplayoutpattern.h"
#include "../../../utils/qetutils.h"
#include <QDebug> #include <QDebug>
TerminalStripLayoutPattern::TerminalStripLayoutPattern() TerminalStripLayoutPattern::TerminalStripLayoutPattern()
{ {
m_font.setPixelSize(15);
updateHeaderTextOption(); updateHeaderTextOption();
updateTerminalsTextOption(); updateTerminalsTextOption();
} }
@@ -39,6 +41,15 @@ QTextOption TerminalStripLayoutPattern::headerTextOption() const {
return m_header_text_option; return m_header_text_option;
} }
QFont TerminalStripLayoutPattern::font() const {
return m_font;
}
void TerminalStripLayoutPattern::setFont(const QFont &font) {
m_font = font;
QETUtils::pixelSizedFont(m_font);
}
void TerminalStripLayoutPattern::setTerminalsTextAlignment(const QVector<Qt::Alignment> &alignment) void TerminalStripLayoutPattern::setTerminalsTextAlignment(const QVector<Qt::Alignment> &alignment)
{ {
m_terminals_text_alignment = alignment; m_terminals_text_alignment = alignment;

View File

@@ -18,6 +18,7 @@
#ifndef TERMINALSTRIPLAYOUTPATTERN_H #ifndef TERMINALSTRIPLAYOUTPATTERN_H
#define TERMINALSTRIPLAYOUTPATTERN_H #define TERMINALSTRIPLAYOUTPATTERN_H
#include <QFont>
#include <QRect> #include <QRect>
#include <QSize> #include <QSize>
#include <QTextOption> #include <QTextOption>
@@ -52,6 +53,10 @@ class TerminalStripLayoutPattern
//Spacer between the header and the terminals //Spacer between the header and the terminals
QRect m_spacer_rect{0, 50, 10, 90}; QRect m_spacer_rect{0, 50, 10, 90};
//Font
QFont font() const;
void setFont (const QFont &font);
//Terminals //Terminals
QVector<QRect> m_terminal_rect QVector<QRect> m_terminal_rect
{ {
@@ -90,7 +95,8 @@ class TerminalStripLayoutPattern
void updateHeaderTextOption(); void updateHeaderTextOption();
void updateTerminalsTextOption(); void updateTerminalsTextOption();
private: private:
QFont m_font;
Qt::Alignment m_header_text_alignment{Qt::AlignCenter}; Qt::Alignment m_header_text_alignment{Qt::AlignCenter};
QTextOption m_header_text_option; QTextOption m_header_text_option;

View File

@@ -56,6 +56,8 @@ void TerminalStripDrawer::paint(QPainter *painter)
auto brush_ = painter->brush(); auto brush_ = painter->brush();
brush_.setColor(Qt::white); brush_.setColor(Qt::white);
painter->setFont(m_pattern->font());
painter->setPen(pen_); painter->setPen(pen_);
painter->setBrush(brush_); painter->setBrush(brush_);

View File

@@ -15,9 +15,12 @@
You should have received a copy of the GNU General Public License You should have received a copy of the GNU General Public License
along with QElectroTech. If not, see <http://www.gnu.org/licenses/>. along with QElectroTech. If not, see <http://www.gnu.org/licenses/>.
*/ */
#include <QFontDialog>
#include "terminalstriplayouteditor.h" #include "terminalstriplayouteditor.h"
#include "ui_terminalstriplayouteditor.h" #include "ui_terminalstriplayouteditor.h"
#include "../GraphicsItem/properties/terminalstriplayoutpattern.h" #include "../GraphicsItem/properties/terminalstriplayoutpattern.h"
#include "../../utils/qetutils.h"
TerminalStripLayoutEditor::TerminalStripLayoutEditor(QSharedPointer<TerminalStripLayoutPattern> layout, TerminalStripLayoutEditor::TerminalStripLayoutEditor(QSharedPointer<TerminalStripLayoutPattern> layout,
QWidget *parent) : QWidget *parent) :
@@ -54,8 +57,6 @@ void TerminalStripLayoutEditor::valueEdited()
return; return;
} }
//auto *data_ = m_layout.data();
m_layout.data()->m_header_rect.setRect(0, m_layout.data()->m_header_rect.setRect(0,
ui->m_y_header_sb->value(), ui->m_y_header_sb->value(),
ui->m_width_header_sb->value(), ui->m_width_header_sb->value(),
@@ -91,6 +92,10 @@ void TerminalStripLayoutEditor::valueEdited()
m_layout.data()->m_bridge_point_y_offset[2] = ui->m_bridge_point_2_sb->value(); m_layout.data()->m_bridge_point_y_offset[2] = ui->m_bridge_point_2_sb->value();
m_layout.data()->m_bridge_point_y_offset[3] = ui->m_bridge_point_3_sb->value(); m_layout.data()->m_bridge_point_y_offset[3] = ui->m_bridge_point_3_sb->value();
auto font_ = ui->m_font_cb->currentFont();
font_.setPixelSize(ui->m_font_size_sb->value());
m_layout->setFont(font_);
m_layout.data()->m_header_text_orientation = ui->m_header_text_orientation_cb->currentIndex() == 0 ? m_layout.data()->m_header_text_orientation = ui->m_header_text_orientation_cb->currentIndex() == 0 ?
Qt::Horizontal : Qt::Horizontal :
Qt::Vertical; Qt::Vertical;
@@ -180,6 +185,10 @@ void TerminalStripLayoutEditor::updateUi()
ui->m_bridge_point_2_sb->setValue(bridge_point[2]); ui->m_bridge_point_2_sb->setValue(bridge_point[2]);
ui->m_bridge_point_3_sb->setValue(bridge_point[3]); ui->m_bridge_point_3_sb->setValue(bridge_point[3]);
const auto font = m_layout->font();
ui->m_font_size_sb->setValue(font.pixelSize());
ui->m_font_cb->setCurrentFont(font);
if (data->m_header_text_orientation == Qt::Horizontal) { if (data->m_header_text_orientation == Qt::Horizontal) {
ui->m_header_text_orientation_cb->setCurrentIndex(0); ui->m_header_text_orientation_cb->setCurrentIndex(0);
} else { } else {
@@ -225,4 +234,3 @@ void TerminalStripLayoutEditor::on_m_display_preview_help_clicked(bool checked)
m_preview_strip_item.m_drawer.setPreviewDraw(checked); m_preview_strip_item.m_drawer.setPreviewDraw(checked);
m_preview_strip_item.update(); m_preview_strip_item.update();
} }

View File

@@ -76,7 +76,6 @@ class TerminalStripLayoutEditor : public QWidget
private slots: private slots:
void valueEdited(); void valueEdited();
void on_m_display_preview_help_clicked(bool checked); void on_m_display_preview_help_clicked(bool checked);
private: private:

View File

@@ -6,8 +6,8 @@
<rect> <rect>
<x>0</x> <x>0</x>
<y>0</y> <y>0</y>
<width>767</width> <width>892</width>
<height>544</height> <height>555</height>
</rect> </rect>
</property> </property>
<property name="windowTitle"> <property name="windowTitle">
@@ -15,57 +15,26 @@
</property> </property>
<layout class="QGridLayout" name="gridLayout"> <layout class="QGridLayout" name="gridLayout">
<property name="sizeConstraint"> <property name="sizeConstraint">
<enum>QLayout::SetMaximumSize</enum> <enum>QLayout::SizeConstraint::SetMaximumSize</enum>
</property> </property>
<item row="4" column="0"> <item row="4" column="2">
<widget class="QLabel" name="label_7"> <widget class="QSpinBox" name="m_width_terminal_0_sb">
<property name="text"> <property name="maximum">
<string>Borne niveau 0 :</string> <number>1000</number>
</property> </property>
</widget> </widget>
</item> </item>
<item row="1" column="0"> <item row="6" column="3">
<widget class="QLabel" name="label"> <widget class="QSpinBox" name="m_height_terminal_2_sb">
<property name="text"> <property name="maximum">
<string>En tête :</string> <number>1000</number>
</property> </property>
</widget> </widget>
</item> </item>
<item row="3" column="0" colspan="4"> <item row="3" column="0" colspan="4">
<widget class="Line" name="line"> <widget class="Line" name="line">
<property name="orientation"> <property name="orientation">
<enum>Qt::Horizontal</enum> <enum>Qt::Orientation::Horizontal</enum>
</property>
</widget>
</item>
<item row="12" column="0" colspan="5">
<widget class="QGraphicsView" name="m_graphics_view"/>
</item>
<item row="3" column="4">
<widget class="QLabel" name="label_18">
<property name="text">
<string>Point de pont</string>
</property>
</widget>
</item>
<item row="5" column="1">
<widget class="QSpinBox" name="m_y_terminal_1_sb">
<property name="maximum">
<number>1000</number>
</property>
</widget>
</item>
<item row="8" column="0" colspan="5">
<widget class="Line" name="line_5">
<property name="orientation">
<enum>Qt::Horizontal</enum>
</property>
</widget>
</item>
<item row="2" column="3">
<widget class="QSpinBox" name="m_height_spacer_sb">
<property name="maximum">
<number>1000</number>
</property> </property>
</widget> </widget>
</item> </item>
@@ -76,15 +45,43 @@
</property> </property>
</widget> </widget>
</item> </item>
<item row="11" column="4"> <item row="7" column="4">
<widget class="QCheckBox" name="m_display_preview_help"> <widget class="QSpinBox" name="m_bridge_point_3_sb">
<property name="text"> <property name="maximum">
<string>Afficher l'aide</string> <number>1000</number>
</property> </property>
</widget> </widget>
</item> </item>
<item row="1" column="2"> <item row="5" column="3">
<widget class="QSpinBox" name="m_width_header_sb"> <widget class="QSpinBox" name="m_height_terminal_1_sb">
<property name="maximum">
<number>1000</number>
</property>
</widget>
</item>
<item row="4" column="0">
<widget class="QLabel" name="label_7">
<property name="text">
<string>Borne niveau 0 :</string>
</property>
</widget>
</item>
<item row="7" column="2">
<widget class="QSpinBox" name="m_width_terminal_3_sb">
<property name="maximum">
<number>1000</number>
</property>
</widget>
</item>
<item row="6" column="4">
<widget class="QSpinBox" name="m_bridge_point_2_sb">
<property name="maximum">
<number>1000</number>
</property>
</widget>
</item>
<item row="5" column="2">
<widget class="QSpinBox" name="m_width_terminal_1_sb">
<property name="maximum"> <property name="maximum">
<number>1000</number> <number>1000</number>
</property> </property>
@@ -97,22 +94,39 @@
</property> </property>
</widget> </widget>
</item> </item>
<item row="5" column="4"> <item row="14" column="0" colspan="5">
<widget class="QSpinBox" name="m_bridge_point_1_sb"> <widget class="QGraphicsView" name="m_graphics_view"/>
</item>
<item row="2" column="3">
<widget class="QSpinBox" name="m_height_spacer_sb">
<property name="maximum"> <property name="maximum">
<number>1000</number> <number>1000</number>
</property> </property>
</widget> </widget>
</item> </item>
<item row="0" column="2"> <item row="7" column="0">
<widget class="QLabel" name="label_4"> <widget class="QLabel" name="label_10">
<property name="text"> <property name="text">
<string>Largeur</string> <string>Borne niveau 3 :</string>
</property> </property>
</widget> </widget>
</item> </item>
<item row="6" column="3"> <item row="6" column="0">
<widget class="QSpinBox" name="m_height_terminal_2_sb"> <widget class="QLabel" name="label_9">
<property name="text">
<string>Borne niveau 2 :</string>
</property>
</widget>
</item>
<item row="2" column="2">
<widget class="QSpinBox" name="m_width_spacer_sb">
<property name="maximum">
<number>1000</number>
</property>
</widget>
</item>
<item row="4" column="3">
<widget class="QSpinBox" name="m_height_terminal_0_sb">
<property name="maximum"> <property name="maximum">
<number>1000</number> <number>1000</number>
</property> </property>
@@ -125,17 +139,45 @@
</property> </property>
</widget> </widget>
</item> </item>
<item row="0" column="3"> <item row="13" column="4">
<widget class="QLabel" name="label_5"> <widget class="QCheckBox" name="m_display_preview_help">
<property name="text"> <property name="text">
<string>Hauteur</string> <string>Afficher l'aide</string>
</property> </property>
</widget> </widget>
</item> </item>
<item row="11" column="0"> <item row="0" column="2">
<widget class="QLabel" name="label_2"> <widget class="QLabel" name="label_4">
<property name="text"> <property name="text">
<string>Prévisualisation :</string> <string>Largeur</string>
</property>
</widget>
</item>
<item row="5" column="4">
<widget class="QSpinBox" name="m_bridge_point_1_sb">
<property name="maximum">
<number>1000</number>
</property>
</widget>
</item>
<item row="2" column="0">
<widget class="QLabel" name="label_6">
<property name="text">
<string>Espace :</string>
</property>
</widget>
</item>
<item row="11" column="0" colspan="5">
<widget class="Line" name="line_2">
<property name="orientation">
<enum>Qt::Orientation::Horizontal</enum>
</property>
</widget>
</item>
<item row="4" column="4">
<widget class="QSpinBox" name="m_bridge_point_0_sb">
<property name="maximum">
<number>1000</number>
</property> </property>
</widget> </widget>
</item> </item>
@@ -146,35 +188,14 @@
</property> </property>
</widget> </widget>
</item> </item>
<item row="7" column="1"> <item row="5" column="0">
<widget class="QSpinBox" name="m_y_terminal_3_sb"> <widget class="QLabel" name="label_8">
<property name="maximum"> <property name="text">
<number>1000</number> <string>Borne niveau 1 :</string>
</property> </property>
</widget> </widget>
</item> </item>
<item row="4" column="1"> <item row="10" column="0" colspan="5">
<widget class="QSpinBox" name="m_y_terminal_0_sb">
<property name="maximum">
<number>1000</number>
</property>
</widget>
</item>
<item row="2" column="2">
<widget class="QSpinBox" name="m_width_spacer_sb">
<property name="maximum">
<number>1000</number>
</property>
</widget>
</item>
<item row="6" column="2">
<widget class="QSpinBox" name="m_width_terminal_2_sb">
<property name="maximum">
<number>1000</number>
</property>
</widget>
</item>
<item row="9" column="0" colspan="5">
<widget class="QWidget" name="widget" native="true"> <widget class="QWidget" name="widget" native="true">
<layout class="QGridLayout" name="gridLayout_2"> <layout class="QGridLayout" name="gridLayout_2">
<property name="leftMargin"> <property name="leftMargin">
@@ -189,26 +210,56 @@
<property name="bottomMargin"> <property name="bottomMargin">
<number>0</number> <number>0</number>
</property> </property>
<item row="1" column="3"> <item row="6" column="3">
<widget class="QComboBox" name="m_terminal_text_alignment_cb"> <widget class="QComboBox" name="m_header_text_orientation_cb">
<item> <item>
<property name="text"> <property name="text">
<string>Gauche</string> <string>Horizontal</string>
</property> </property>
</item> </item>
<item> <item>
<property name="text"> <property name="text">
<string>Centre</string> <string>Vertical</string>
</property>
</item>
<item>
<property name="text">
<string>Droite</string>
</property> </property>
</item> </item>
</widget> </widget>
</item> </item>
<item row="0" column="3"> <item row="6" column="2">
<widget class="QLabel" name="label_14">
<property name="text">
<string>Orientation du texte d'en tête :</string>
</property>
</widget>
</item>
<item row="8" column="3">
<widget class="QComboBox" name="m_terminal_text_orientation_cb">
<item>
<property name="text">
<string>Horizontal</string>
</property>
</item>
<item>
<property name="text">
<string>Vertical</string>
</property>
</item>
</widget>
</item>
<item row="6" column="4">
<widget class="QLabel" name="label_15">
<property name="text">
<string>Alignement du texte d'en tête :</string>
</property>
</widget>
</item>
<item row="8" column="2">
<widget class="QLabel" name="label_16">
<property name="text">
<string>Orientation du texte de borne :</string>
</property>
</widget>
</item>
<item row="6" column="5">
<widget class="QComboBox" name="m_header_text_alignment_cb"> <widget class="QComboBox" name="m_header_text_alignment_cb">
<item> <item>
<property name="text"> <property name="text">
@@ -227,65 +278,111 @@
</item> </item>
</widget> </widget>
</item> </item>
<item row="0" column="2"> <item row="8" column="5">
<widget class="QLabel" name="label_15"> <widget class="QComboBox" name="m_terminal_text_alignment_cb">
<property name="text"> <item>
<string>Alignement du texte d'en tête :</string> <property name="text">
</property> <string>Gauche</string>
</property>
</item>
<item>
<property name="text">
<string>Centre</string>
</property>
</item>
<item>
<property name="text">
<string>Droite</string>
</property>
</item>
</widget> </widget>
</item> </item>
<item row="1" column="2"> <item row="8" column="4">
<widget class="QLabel" name="label_17"> <widget class="QLabel" name="label_17">
<property name="text"> <property name="text">
<string>Alignement du texte de borne :</string> <string>Alignement du texte de borne :</string>
</property> </property>
</widget> </widget>
</item> </item>
<item row="1" column="1"> <item row="1" column="2" colspan="4">
<widget class="QComboBox" name="m_terminal_text_orientation_cb"> <widget class="QWidget" name="widget_2" native="true">
<item> <layout class="QHBoxLayout" name="horizontalLayout">
<property name="text"> <property name="leftMargin">
<string>Horizontal</string> <number>0</number>
</property> </property>
</item> <property name="topMargin">
<item> <number>0</number>
<property name="text">
<string>Vertical</string>
</property> </property>
</item> <property name="rightMargin">
</widget> <number>0</number>
</item>
<item row="0" column="1">
<widget class="QComboBox" name="m_header_text_orientation_cb">
<item>
<property name="text">
<string>Horizontal</string>
</property> </property>
</item> <property name="bottomMargin">
<item> <number>0</number>
<property name="text">
<string>Vertical</string>
</property> </property>
</item> <item>
</widget> <widget class="QLabel" name="label_11">
</item> <property name="text">
<item row="1" column="0"> <string>Police :</string>
<widget class="QLabel" name="label_16"> </property>
<property name="text"> </widget>
<string>Orientation du texte de borne :</string> </item>
</property> <item>
</widget> <widget class="QFontComboBox" name="m_font_cb"/>
</item> </item>
<item row="0" column="0"> <item>
<widget class="QLabel" name="label_14"> <widget class="QLabel" name="label_12">
<property name="text"> <property name="text">
<string>Orientation du texte d'en tête :</string> <string>Taille :</string>
</property> </property>
</widget>
</item>
<item>
<widget class="QSpinBox" name="m_font_size_sb">
<property name="minimum">
<number>1</number>
</property>
</widget>
</item>
<item>
<spacer name="horizontalSpacer">
<property name="orientation">
<enum>Qt::Orientation::Horizontal</enum>
</property>
<property name="sizeHint" stdset="0">
<size>
<width>40</width>
<height>20</height>
</size>
</property>
</spacer>
</item>
</layout>
</widget> </widget>
</item> </item>
</layout> </layout>
</widget> </widget>
</item> </item>
<item row="6" column="2">
<widget class="QSpinBox" name="m_width_terminal_2_sb">
<property name="maximum">
<number>1000</number>
</property>
</widget>
</item>
<item row="1" column="2">
<widget class="QSpinBox" name="m_width_header_sb">
<property name="maximum">
<number>1000</number>
</property>
</widget>
</item>
<item row="1" column="0">
<widget class="QLabel" name="label">
<property name="text">
<string>En tête :</string>
</property>
</widget>
</item>
<item row="1" column="3"> <item row="1" column="3">
<widget class="QSpinBox" name="m_height_header_sb"> <widget class="QSpinBox" name="m_height_header_sb">
<property name="maximum"> <property name="maximum">
@@ -293,34 +390,6 @@
</property> </property>
</widget> </widget>
</item> </item>
<item row="6" column="0">
<widget class="QLabel" name="label_9">
<property name="text">
<string>Borne niveau 2 :</string>
</property>
</widget>
</item>
<item row="4" column="2">
<widget class="QSpinBox" name="m_width_terminal_0_sb">
<property name="maximum">
<number>1000</number>
</property>
</widget>
</item>
<item row="2" column="0">
<widget class="QLabel" name="label_6">
<property name="text">
<string>Espace :</string>
</property>
</widget>
</item>
<item row="7" column="2">
<widget class="QSpinBox" name="m_width_terminal_3_sb">
<property name="maximum">
<number>1000</number>
</property>
</widget>
</item>
<item row="6" column="1"> <item row="6" column="1">
<widget class="QSpinBox" name="m_y_terminal_2_sb"> <widget class="QSpinBox" name="m_y_terminal_2_sb">
<property name="maximum"> <property name="maximum">
@@ -328,66 +397,52 @@
</property> </property>
</widget> </widget>
</item> </item>
<item row="6" column="4"> <item row="9" column="0" colspan="5">
<widget class="QSpinBox" name="m_bridge_point_2_sb"> <widget class="Line" name="line_5">
<property name="maximum">
<number>1000</number>
</property>
</widget>
</item>
<item row="7" column="4">
<widget class="QSpinBox" name="m_bridge_point_3_sb">
<property name="maximum">
<number>1000</number>
</property>
</widget>
</item>
<item row="5" column="2">
<widget class="QSpinBox" name="m_width_terminal_1_sb">
<property name="maximum">
<number>1000</number>
</property>
</widget>
</item>
<item row="4" column="3">
<widget class="QSpinBox" name="m_height_terminal_0_sb">
<property name="maximum">
<number>1000</number>
</property>
</widget>
</item>
<item row="5" column="3">
<widget class="QSpinBox" name="m_height_terminal_1_sb">
<property name="maximum">
<number>1000</number>
</property>
</widget>
</item>
<item row="7" column="0">
<widget class="QLabel" name="label_10">
<property name="text">
<string>Borne niveau 3 :</string>
</property>
</widget>
</item>
<item row="4" column="4">
<widget class="QSpinBox" name="m_bridge_point_0_sb">
<property name="maximum">
<number>1000</number>
</property>
</widget>
</item>
<item row="5" column="0">
<widget class="QLabel" name="label_8">
<property name="text">
<string>Borne niveau 1 :</string>
</property>
</widget>
</item>
<item row="10" column="0" colspan="5">
<widget class="Line" name="line_2">
<property name="orientation"> <property name="orientation">
<enum>Qt::Horizontal</enum> <enum>Qt::Orientation::Horizontal</enum>
</property>
</widget>
</item>
<item row="7" column="1">
<widget class="QSpinBox" name="m_y_terminal_3_sb">
<property name="maximum">
<number>1000</number>
</property>
</widget>
</item>
<item row="5" column="1">
<widget class="QSpinBox" name="m_y_terminal_1_sb">
<property name="maximum">
<number>1000</number>
</property>
</widget>
</item>
<item row="0" column="3">
<widget class="QLabel" name="label_5">
<property name="text">
<string>Hauteur</string>
</property>
</widget>
</item>
<item row="3" column="4">
<widget class="QLabel" name="label_18">
<property name="text">
<string>Point de pont</string>
</property>
</widget>
</item>
<item row="4" column="1">
<widget class="QSpinBox" name="m_y_terminal_0_sb">
<property name="maximum">
<number>1000</number>
</property>
</widget>
</item>
<item row="13" column="0">
<widget class="QLabel" name="label_2">
<property name="text">
<string>Prévisualisation :</string>
</property> </property>
</widget> </widget>
</item> </item>
@@ -811,6 +866,38 @@
</hint> </hint>
</hints> </hints>
</connection> </connection>
<connection>
<sender>m_font_cb</sender>
<signal>currentFontChanged(QFont)</signal>
<receiver>TerminalStripLayoutEditor</receiver>
<slot>valueEdited()</slot>
<hints>
<hint type="sourcelabel">
<x>245</x>
<y>276</y>
</hint>
<hint type="destinationlabel">
<x>445</x>
<y>277</y>
</hint>
</hints>
</connection>
<connection>
<sender>m_font_size_sb</sender>
<signal>valueChanged(int)</signal>
<receiver>TerminalStripLayoutEditor</receiver>
<slot>valueEdited()</slot>
<hints>
<hint type="sourcelabel">
<x>507</x>
<y>277</y>
</hint>
<hint type="destinationlabel">
<x>445</x>
<y>277</y>
</hint>
</hints>
</connection>
</connections> </connections>
<slots> <slots>
<slot>valueEdited()</slot> <slot>valueEdited()</slot>