parseBookmarkKey restituisce QVariantMap (i puntatori int* non sono marshallabili da QML — il segno non si ripristinava mai)
This commit is contained in:
+7
-8
@@ -443,20 +443,19 @@ QString EpubBook::makeBookmarkKey(int chapterIndex, double fraction) const
|
||||
return QStringLiteral("cw:v1:%1:%2").arg(chapterIndex).arg(fraction, 0, 'f', 4);
|
||||
}
|
||||
|
||||
bool EpubBook::parseBookmarkKey(const QString &key, int *chapterIndex, double *fraction) const
|
||||
QVariantMap EpubBook::parseBookmarkKey(const QString &key) const
|
||||
{
|
||||
QVariantMap result;
|
||||
const QStringList parts = key.split(QLatin1Char(':'));
|
||||
if (parts.size() != 4 || parts.at(0) != QLatin1String("cw")
|
||||
|| parts.at(1) != QLatin1String("v1"))
|
||||
return false;
|
||||
return result;
|
||||
bool okChapter = false, okFrac = false;
|
||||
const int ch = parts.at(2).toInt(&okChapter);
|
||||
const double fr = parts.at(3).toDouble(&okFrac);
|
||||
if (!okChapter || !okFrac)
|
||||
return false;
|
||||
if (chapterIndex)
|
||||
*chapterIndex = ch;
|
||||
if (fraction)
|
||||
*fraction = fr;
|
||||
return true;
|
||||
return result;
|
||||
result.insert(QStringLiteral("chapter"), ch);
|
||||
result.insert(QStringLiteral("fraction"), fr);
|
||||
return result;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user