Fix copy and paste crash of Elements with Sequential Autonum

git-svn-id: svn+ssh://svn.tuxfamily.org/svnroot/qet/qet/trunk@4593 bfdf4180-ca20-0410-9c96-a3a8aa849046
This commit is contained in:
dfochi
2016-07-26 20:40:54 +00:00
parent d6f1381631
commit 4814ac812d
2 changed files with 10 additions and 6 deletions

View File

@@ -1202,6 +1202,8 @@ QString Conductor::text() const {
* @return label with variables assigned
*/
QString Conductor::assignVariables(QString label) {
//The check below was introduced to avoid crash caused by the addition of terminal elements
//Needs further debbugging.
if (diagram() == NULL) return label;
//Titleblock Variables
for (int i = 0; i < diagram()->border_and_titleblock.additionalFields().count(); i++)

View File

@@ -856,22 +856,24 @@ void Element::setFolioSequentialToHash(QStringList* list, QHash<QString, QString
*/
QString Element::assignSeq(QString label) {
for (int i = 1; i <= qMax(qMax(qMax(seq_unitfolio.size(), seq_tenfolio.size()),qMax(seq_hundredfolio.size(),seq_unit.size())),qMax(seq_hundred.size(),seq_ten.size())); i++) {
if (label.contains("%sequ_" + QString::number(i))) {
// "&& !seq.isEmpty()" introduced in the methods below to avoid crash when copying and paste elements
// that contain folio sequential in their labels. Needs further debugging.
if (label.contains("%sequ_" + QString::number(i)) && !seq_unit.isEmpty()) {
label.replace("%sequ_" + QString::number(i),seq_unit.at(i-1));
}
if (label.contains("%seqt_" + QString::number(i))) {
if (label.contains("%seqt_" + QString::number(i)) && !seq_ten.isEmpty()) {
label.replace("%seqt_" + QString::number(i),seq_ten.at(i-1));
}
if (label.contains("%seqh_" + QString::number(i))) {
if (label.contains("%seqh_" + QString::number(i)) && !seq_hundred.isEmpty()) {
label.replace("%seqh_" + QString::number(i),seq_hundred.at(i-1));
}
if (label.contains("%sequf_" + QString::number(i))) {
if (label.contains("%sequf_" + QString::number(i)) && !seq_unitfolio.isEmpty()) {
label.replace("%sequf_" + QString::number(i),seq_unitfolio.at(i-1));
}
if (label.contains("%seqtf_" + QString::number(i))) {
if (label.contains("%seqtf_" + QString::number(i)) && !seq_tenfolio.isEmpty()) {
label.replace("%seqtf_" + QString::number(i),seq_tenfolio.at(i-1));
}
if (label.contains("%seqhf_" + QString::number(i))) {
if (label.contains("%seqhf_" + QString::number(i)) && !seq_hundredfolio.isEmpty()) {
label.replace("%seqhf_" + QString::number(i),seq_hundredfolio.at(i-1));
}
}