本文整理汇总了C++中QScopedPointer::getNumberOfPages方法的典型用法代码示例。如果您正苦于以下问题:C++ QScopedPointer::getNumberOfPages方法的具体用法?C++ QScopedPointer::getNumberOfPages怎么用?C++ QScopedPointer::getNumberOfPages使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类QScopedPointer
的用法示例。
在下文中一共展示了QScopedPointer::getNumberOfPages方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: convertOkularXMLFileToEntry
/** \brief For given file with Okular browsing history returns a single NowReadingEntry. */
bool convertOkularXMLFileToEntry(const QString &okularFilePath, NowReadingEntry &outEntry)
{
/* open the Okular document history file */
QFile okularFile(okularFilePath);
if (!okularFile.open(QFile::ReadOnly))
return false;
QXmlStreamReader xml(&okularFile);
QString vp;
outEntry.path = QString();
while (!xml.atEnd()) {
if (QXmlStreamReader::StartElement != xml.readNext())
continue;
if (xml.name() == "documentInfo") {
outEntry.path = xml.attributes().value("url").toString();
}
else if (xml.name() == "current") {
vp = xml.attributes().value("viewport").toString();
break;
}
}
if (outEntry.path.isEmpty())
return false;
/* get the page number from viewport string: */
QStringList tokens = vp.split(";");
if (tokens.empty())
return false;
bool pageOk = true;
outEntry.currentPage = tokens.first().toUInt(&pageOk) + 1 /* the value in vp is 0-based */;
if (!pageOk)
return false;
QScopedPointer<PagesNumberProvider> pageNumberProvider
(PagesNumberProvider::createByFileName(outEntry.path));
if (!pageNumberProvider)
return false;
if (!pageNumberProvider->getNumberOfPages(outEntry.totalPages))
return false;
outEntry.accessTime = QFileInfo(okularFile).lastModified();
return true;
}