qelectrotech-source-mirror/sources/ui/compositetexteditdialog.cpp
blacksun 5248c891f4 Dynamic element text item :
First : If the parent element of the text item is a slave,
the info use to create the text (both if option are 'element info' or 'composite text') are taken to the linked master element, and not the slave.
If the salve element is not linked, no information is taken.
Second : if the text is composed with the variable 'label' of the master (both if text from are 'element info' or 'composite text') double click on the text, act like a link and go to the master.



git-svn-id: svn+ssh://svn.tuxfamily.org/svnroot/qet/qet/trunk@5035 bfdf4180-ca20-0410-9c96-a3a8aa849046
2017-08-29 14:54:27 +00:00

70 lines
1.9 KiB
C++

#include "compositetexteditdialog.h"
#include "ui_compositetexteditdialog.h"
#include "dynamicelementtextitem.h"
#include "element.h"
#include "qetapp.h"
CompositeTextEditDialog::CompositeTextEditDialog(DynamicElementTextItem *text, QWidget *parent) :
QDialog(parent),
ui(new Ui::CompositeTextEditDialog),
m_text(text)
{
ui->setupUi(this);
m_default_text = m_text->compositeText();
ui->m_plain_text_edit->setPlainText(m_default_text);
#if QT_VERSION >= 0x050300
ui->m_plain_text_edit->setPlaceholderText(tr("Entrée votre texte composé ici, en vous aidant des variables disponible"));
#endif
setUpComboBox();
}
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()
{
QStringList qstrl;
Element *elmt = m_text->elementUseForInfo();
if(!elmt)
return;
QStringList info_list = QETApp::elementInfoKeys();
info_list.removeAll("formula"); //No need to have formula
DiagramContext dc = elmt->elementInformations();
for(QString info : info_list)
{
if(dc.contains(info))
qstrl << info;
}
//We use a QMap because the keys of the map are sorted, then no matter the curent local,
//the value of the combo box are always alphabetically sorted
QMap <QString, QString> info_map;
for(QString str : qstrl) {
info_map.insert(QETApp::elementTranslatedInfoKey(str), QETApp::elementInfoToVar(str));
}
for(QString key : info_map.keys()) {
ui->m_info_cb->addItem(key, info_map.value(key));
}
}
void CompositeTextEditDialog::on_m_info_cb_activated(const QString &arg1)
{
Q_UNUSED(arg1)
ui->m_plain_text_edit->insertPlainText(ui->m_info_cb->currentData().toString());
}