Files
qelectrotech-source-mirror/sources/ui/compositetexteditdialog.cpp
T
ispyisail b9d459b0e6 Fix composite text dialog not inserting variables under Qt 6 (#1348)
The slot was auto-connected by name to QComboBox::activated(QString),
which Qt 6 removed, so connectSlotsByName() found no signal and picking
a variable in the "Texte composé" dialog did nothing. activated(int)
exists in Qt 5 and Qt 6; the slot never used its argument and reads
currentData() as before.

Same fix as the CompositeTextEditDialog half of #674, which was closed
unmerged.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-07 12:49:37 +13:00

97 lines
2.6 KiB
C++

#include "compositetexteditdialog.h"
#include "../qetapp.h"
#include "../qetgraphicsitem/conductor.h"
#include "../qetgraphicsitem/dynamicelementtextitem.h"
#include "../qetgraphicsitem/element.h"
#include "../qetinformation.h"
#include "../qet.h"
#include "ui_compositetexteditdialog.h"
#include <utility>
CompositeTextEditDialog::CompositeTextEditDialog(DynamicElementTextItem *text, QWidget *parent) :
QDialog(parent),
ui(new Ui::CompositeTextEditDialog),
m_text(text)
{
ui->setupUi(this);
QET::trackDialogGeometry(this);
m_default_text = m_text->compositeText();
ui->m_plain_text_edit->setPlainText(m_default_text);
ui->m_plain_text_edit->setPlaceholderText(tr("Entrée votre texte composé ici, en vous aidant des variables disponible"));
bool report = false;
if ((m_text) &&(m_text->parentElement()->linkType()) & (Element::AllReport))
{
report = true;
}
setUpComboBox(report);
}
CompositeTextEditDialog::CompositeTextEditDialog(QString text, bool report, QWidget *parent) :
QDialog(parent),
ui(new Ui::CompositeTextEditDialog)
{
ui->setupUi(this);
QET::trackDialogGeometry(this);
m_default_text = std::move(text);
ui->m_plain_text_edit->setPlainText(m_default_text);
ui->m_plain_text_edit->setPlaceholderText(tr("Entrée votre texte composé ici, en vous aidant des variables disponible"));
setUpComboBox(report);
}
CompositeTextEditDialog::~CompositeTextEditDialog()
{
delete ui;
}
/**
@brief CompositeTextEditDialog::plainText
@return The edited text
*/
QString CompositeTextEditDialog::plainText() const
{
return ui->m_plain_text_edit->toPlainText();
}
/**
@brief CompositeTextEditDialog::setUpComboBox
Add the available element information in the combo box
*/
void CompositeTextEditDialog::setUpComboBox(bool is_report)
{
QStringList qstrl;
if(is_report) //Special treatment for text owned by a folio report
{
qstrl = QETInformation::folioReportInfoKeys();
}
else
{
qstrl = QETInformation::elementInfoKeys();
qstrl.removeAll("formula");
}
for (int i=0; i<qstrl.size();++i) {
ui -> m_info_cb -> addItem(QETInformation::translatedInfoKey(qstrl[i]),
is_report ? QETInformation::folioReportInfoToVar(qstrl[i]) : QETInformation::elementInfoToVar(qstrl[i]));
}
}
void CompositeTextEditDialog::on_m_info_cb_activated(int index)
{
Q_UNUSED(index)
ui->m_plain_text_edit->insertPlainText(ui->m_info_cb->currentData().toString());
}
/**
@brief CompositeTextEditDialog::focusInEvent
Reimplemented from QWidget::focusInEvent
@param event
*/
void CompositeTextEditDialog::focusInEvent(QFocusEvent *event)
{
ui->m_plain_text_edit->setFocus();
QDialog::focusInEvent(event);
}