static inline bool parseSciFile(const QString &fileName, QString &pixmapFileName, int &left, int &right, int &top, int &bottom, Qt::TileRule &horizontalTileRule, Qt::TileRule &verticalTileRule) { int l = -1; int r = -1; int t = -1; int b = -1; QString imgFile; QFile data(fileName); if (!data.open(QIODevice::ReadOnly)) return false; QByteArray raw; while (raw = data.readLine(), !raw.isEmpty()) { QString line = QString::fromUtf8(raw.trimmed()); if (line.isEmpty() || line.startsWith(QLatin1Char('#'))) continue; QStringList list = line.split(QLatin1Char(':')); if (list.count() != 2) return false; list[0] = list[0].trimmed(); list[1] = list[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")) horizontalTileRule = stringToRule(list[1]); else if (list[0] == QLatin1String("verticalTileRule")) verticalTileRule = stringToRule(list[1]); } if (l < 0 || r < 0 || t < 0 || b < 0 || imgFile.isEmpty()) return false; left = l; right = r; top = t; bottom = b; pixmapFileName = imgFile; return true; }
QQuickGridScaledImage::QQuickGridScaledImage(QIODevice *data) : _l(-1), _r(-1), _t(-1), _b(-1), _h(QQuickBorderImage::Stretch), _v(QQuickBorderImage::Stretch) { int l = -1; int r = -1; int t = -1; int b = -1; QString imgFile; QByteArray raw; while (raw = data->readLine(), !raw.isEmpty()) { QString line = QString::fromUtf8(raw.trimmed()); if (line.isEmpty() || line.startsWith(QLatin1Char('#'))) continue; int colonId = line.indexOf(QLatin1Char(':')); 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]); } 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. }
QDeclarativeGridScaledImage::QDeclarativeGridScaledImage(QIODevice *data) : _l(-1), _r(-1), _t(-1), _b(-1), _h(QDeclarativeBorderImage::Stretch), _v(QDeclarativeBorderImage::Stretch) { int l = -1; int r = -1; int t = -1; int b = -1; QString imgFile; while(!data->atEnd()) { QString line = QString::fromUtf8(data->readLine().trimmed()); if (line.isEmpty() || line.startsWith(QLatin1Char('#'))) continue; QStringList list = line.split(QLatin1Char(':')); if (list.count() != 2) return; list[0] = list[0].trimmed(); list[1] = list[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")) _h = stringToRule(list[1]); else if (list[0] == QLatin1String("verticalTileRule")) _v = stringToRule(list[1]); } if (l < 0 || r < 0 || t < 0 || b < 0 || imgFile.isEmpty()) return; _l = l; _r = r; _t = t; _b = b; _pix = imgFile; }