mirror of
https://github.com/qelectrotech/qelectrotech-source-mirror.git
synced 2026-10-24 07:54:13 +02:00
Keep the terminal number out of the element properties
The properties window builds a row for every element info key, so it
also offered an editable "Terminal number" row -- both for one element
and for several at once. The number is not a property of the element
but derived from its label: typing there stored a value nothing reads,
and the export has no column for it either (previous commit).
Both windows skip the key now, the way they skip exclude_from_bom.
The key itself stays an element info key, so the element editor keeps
offering %{terminal_number} as a text variable.
The test builds both windows for a terminal of the fixture and looks
at the rows they offer.
This commit is contained in:
@@ -21,6 +21,10 @@
|
||||
#include "TerminalStrip/terminalstrip.h"
|
||||
#include "dataBase/ui/elementquerywidget.h"
|
||||
#include "diagram.h"
|
||||
#include "ui/elementinfopartwidget.h"
|
||||
#include "ui/elementinfowidget.h"
|
||||
#include "ui/multielementinfowidget.h"
|
||||
#include <QLabel>
|
||||
#include <QListWidget>
|
||||
#include "properties/elementdata.h"
|
||||
#include "qetgraphicsitem/dynamicelementtextitem.h"
|
||||
@@ -440,6 +444,43 @@ private slots:
|
||||
QCOMPARE(QETInformation::elementInfoToVar(QETInformation::ELMT_TERMINAL_NUMBER),
|
||||
QStringLiteral("%{terminal_number}"));
|
||||
}
|
||||
|
||||
//The properties of a terminal have no row for its number: the number
|
||||
//is derived from the label, so a row there would offer an edit which
|
||||
//stores a value nothing reads -- the export has no column for it, and
|
||||
//the drawing takes the number from the label
|
||||
void propertiesHaveNoRowForTheTerminalNumber()
|
||||
{
|
||||
const QString fixture = QFINDTESTDATA("fixtures/every_feature.qet");
|
||||
QETProject project(fixture);
|
||||
QCOMPARE(project.state(), QETProject::Ok);
|
||||
|
||||
Element *element = terminalWithLabel(project, QStringLiteral("X1:1"));
|
||||
QVERIFY(element);
|
||||
|
||||
//The properties of one element...
|
||||
ElementInfoWidget one(element);
|
||||
QStringList one_rows;
|
||||
const QList<ElementInfoPartWidget *> parts = one.findChildren<ElementInfoPartWidget *>();
|
||||
for (const ElementInfoPartWidget *part : parts)
|
||||
one_rows << part->key();
|
||||
QVERIFY2(one_rows.contains(QETInformation::ELMT_LABEL),
|
||||
"The other properties are still offered");
|
||||
QVERIFY2(!one_rows.contains(QETInformation::ELMT_TERMINAL_NUMBER),
|
||||
"The terminal number is no property of the element");
|
||||
|
||||
//...and the properties of several elements at once
|
||||
MultiElementInfoWidget many({element});
|
||||
QStringList rows;
|
||||
const QList<QLabel *> labels = many.findChildren<QLabel *>();
|
||||
for (const QLabel *label : labels)
|
||||
rows << label->text();
|
||||
QVERIFY2(rows.contains(QETInformation::translatedInfoKey(QETInformation::ELMT_LABEL)),
|
||||
"The other properties are still offered");
|
||||
QVERIFY2(!rows.contains(
|
||||
QETInformation::translatedInfoKey(QETInformation::ELMT_TERMINAL_NUMBER)),
|
||||
"The terminal number is no property of the element");
|
||||
}
|
||||
};
|
||||
|
||||
QET_APP_TEST_MAIN(tst_terminallabeldisplay)
|
||||
|
||||
Reference in New Issue
Block a user