46void QQuickPdfDocument::classBegin()
48 m_doc =
static_cast<QPdfDocument *>(qmlExtendedObject(
this));
50 connect(m_doc, &QPdfDocument::passwordChanged,
this, [
this]() ->
void {
51 if (resolvedSource().isValid())
52 m_doc->load(QQmlFile::urlToLocalFileOrQrc(resolvedSource()));
54 connect(m_doc, &QPdfDocument::statusChanged,
this, [
this] (QPdfDocument::Status status) {
56 if (status == QPdfDocument::Status::Ready)
57 emit metaDataChanged();
59 if (m_doc->error() == QPdfDocument::Error::IncorrectPassword)
60 emit m_doc->passwordRequired();
76void QQuickPdfDocument::setSource(QUrl source)
78 if (m_source == source)
82 m_maxPageWidthHeight = QSizeF();
84 if (m_carrierFile->thread())
85 m_carrierFile->deleteLater();
89 m_carrierFile =
nullptr;
91 const QQmlContext *context = qmlContext(
this);
92 m_resolvedSource = context ? context->resolvedUrl(source) : source;
93 if (m_resolvedSource.isValid())
94 m_doc->load(QQmlFile::urlToLocalFileOrQrc(m_resolvedSource));
96 qmlWarning(
this) << QQuickPdfDocument::tr(
"Cannot open: %1").arg(m_resolvedSource.toString());
107QString QQuickPdfDocument::error()
const
109 switch (m_doc->error()) {
110 case QPdfDocument::Error::None:
111 return tr(
"no error");
113 case QPdfDocument::Error::Unknown:
115 case QPdfDocument::Error::DataNotYetAvailable:
116 return tr(
"data not yet available");
118 case QPdfDocument::Error::FileNotFound:
119 return tr(
"file not found");
121 case QPdfDocument::Error::InvalidFileFormat:
122 return tr(
"invalid file format");
124 case QPdfDocument::Error::IncorrectPassword:
125 return tr(
"incorrect password");
127 case QPdfDocument::Error::UnsupportedSecurityScheme:
128 return tr(
"unsupported security scheme");
131 return tr(
"unknown error");