diff options
author | Anton Kudryavtsev <a.kudryavtsev@netris.ru> | 2016-04-06 15:23:58 +0300 |
---|---|---|
committer | Anton Kudryavtsev <a.kudryavtsev@netris.ru> | 2016-04-26 10:31:19 +0000 |
commit | 1be53f4e143d417d60cd1f9a292193dab59b5b20 (patch) | |
tree | efc9f54af4d646d9e7d5618e3c2688d9442bbc71 /src/quick/items/qquickscalegrid.cpp | |
parent | 84f61dd2d2b0140814b39a2c5238a6e31c49abd7 (diff) |
Use QStringRef to optimize memory allocation
Replace substring functions that return QString with
corresponding functions that return QStringRef where
it's possible.
Create QString from QStringRef only where necessary.
While touching the code, also port loops to C++11 style.
Change-Id: I04c99b24ea6afd3715e3edf9ea00bfab838fd53c
Reviewed-by: Ulf Hermann <ulf.hermann@qt.io>
Reviewed-by: Simon Hausmann <simon.hausmann@theqtcompany.com>
Reviewed-by: Frank Meerkoetter <frank.meerkoetter@basyskom.com>
Reviewed-by: Shawn Rutledge <shawn.rutledge@theqtcompany.com>
Reviewed-by: Robin Burchell <robin.burchell@viroteck.net>
Diffstat (limited to 'src/quick/items/qquickscalegrid.cpp')
-rw-r--r-- | src/quick/items/qquickscalegrid.cpp | 45 |
1 files changed, 22 insertions, 23 deletions
diff --git a/src/quick/items/qquickscalegrid.cpp b/src/quick/items/qquickscalegrid.cpp index f860c08bad..d7a0f1b681 100644 --- a/src/quick/items/qquickscalegrid.cpp +++ b/src/quick/items/qquickscalegrid.cpp @@ -136,39 +136,38 @@ QQuickGridScaledImage::QQuickGridScaledImage(QIODevice *data) if (colonId <= 0) return; - QStringList list; - list.append(line.left(colonId).trimmed()); - list.append(line.mid(colonId+1).trimmed()); - - if (list[0] == QLatin1String("border.left")) - l = list[1].toInt(); - else if (list[0] == QLatin1String("border.right")) - r = list[1].toInt(); - else if (list[0] == QLatin1String("border.top")) - t = list[1].toInt(); - else if (list[0] == QLatin1String("border.bottom")) - b = list[1].toInt(); - else if (list[0] == QLatin1String("source")) - imgFile = list[1]; - else if (list[0] == QLatin1String("horizontalTileRule") || list[0] == QLatin1String("horizontalTileMode")) - _h = stringToRule(list[1]); - else if (list[0] == QLatin1String("verticalTileRule") || list[0] == QLatin1String("verticalTileMode")) - _v = stringToRule(list[1]); + const QStringRef property = line.leftRef(colonId).trimmed(); + QStringRef value = line.midRef(colonId + 1).trimmed(); + + if (property == QLatin1String("border.left")) { + l = value.toInt(); + } else if (property == QLatin1String("border.right")) { + r = value.toInt(); + } else if (property == QLatin1String("border.top")) { + t = value.toInt(); + } else if (property == QLatin1String("border.bottom")) { + b = value.toInt(); + } else if (property == QLatin1String("source")) { + if (value.startsWith(QLatin1Char('"')) && value.endsWith(QLatin1Char('"'))) + value = value.mid(1, value.size() - 2); // remove leading/trailing quotes. + imgFile = value.toString(); + } else if (property == QLatin1String("horizontalTileRule") || property == QLatin1String("horizontalTileMode")) { + _h = stringToRule(value); + } else if (property == QLatin1String("verticalTileRule") || property == QLatin1String("verticalTileMode")) { + _v = stringToRule(value); + } } if (l < 0 || r < 0 || t < 0 || b < 0 || imgFile.isEmpty()) return; _l = l; _r = r; _t = t; _b = b; - _pix = imgFile; - if (_pix.startsWith(QLatin1Char('"')) && _pix.endsWith(QLatin1Char('"'))) - _pix = _pix.mid(1, _pix.size() - 2); // remove leading/trailing quotes. } -QQuickBorderImage::TileMode QQuickGridScaledImage::stringToRule(const QString &s) +QQuickBorderImage::TileMode QQuickGridScaledImage::stringToRule(const QStringRef &s) { - QString string = s; + QStringRef string = s; if (string.startsWith(QLatin1Char('"')) && string.endsWith(QLatin1Char('"'))) string = string.mid(1, string.size() - 2); // remove leading/trailing quotes. |