diff options
author | Simon Hausmann <simon.hausmann@theqtcompany.com> | 2014-12-15 23:58:36 +0100 |
---|---|---|
committer | Simon Hausmann <simon.hausmann@theqtcompany.com> | 2014-12-15 23:58:36 +0100 |
commit | f3ad790d987ed81c6c02ad41d77207b088d574c4 (patch) | |
tree | f264da659d244a93f7c8d615cad93e0df3c0039f | |
parent | b5e5c718fa1f7821d04ac684eb21003caa88b93d (diff) |
Clean up error handling
-rw-r--r-- | src/pdf/qpdfdocument.cpp | 24 | ||||
-rw-r--r-- | src/pdf/qpdfdocument_p.h | 3 |
2 files changed, 11 insertions, 16 deletions
diff --git a/src/pdf/qpdfdocument.cpp b/src/pdf/qpdfdocument.cpp index b6fd203..1a3a6f3 100644 --- a/src/pdf/qpdfdocument.cpp +++ b/src/pdf/qpdfdocument.cpp @@ -63,8 +63,12 @@ void QPdfDocumentPrivate::clear() asyncBuffer.open(QIODevice::ReadWrite); } -void QPdfDocumentPrivate::setErrorCode() +void QPdfDocumentPrivate::updateLastError() { + if (doc) { + lastError = QPdfDocument::NoError; + return; + } switch (FPDF_GetLastError()) { case FPDF_ERR_SUCCESS: lastError = QPdfDocument::NoError; break; case FPDF_ERR_UNKNOWN: lastError = QPdfDocument::UnknownError; break; @@ -96,10 +100,7 @@ QPdfDocument::Error QPdfDocumentPrivate::load(QIODevice *newDevice, bool transfe password = documentPassword.toUtf8(); doc = FPDF_LoadCustomDocument(this, password.constData()); - if (doc) - clearError(); - else - setErrorCode(); + updateLastError(); return lastError; } @@ -150,16 +151,11 @@ void QPdfDocumentPrivate::tryLoadDocument() Q_ASSERT(!doc); doc = FPDFAvail_GetDocument(avail, password); - if (doc) { - clearError(); - } else { - setErrorCode(); - if (lastError == QPdfDocument::IncorrectPasswordError) - emit q->passwordRequired(); - } - if (doc) { + updateLastError(); + if (lastError == QPdfDocument::IncorrectPasswordError) + emit q->passwordRequired(); + else if (doc) emit q->documentLoadStarted(); - } } void QPdfDocumentPrivate::checkComplete() diff --git a/src/pdf/qpdfdocument_p.h b/src/pdf/qpdfdocument_p.h index 4d274b1..f37881d 100644 --- a/src/pdf/qpdfdocument_p.h +++ b/src/pdf/qpdfdocument_p.h @@ -45,8 +45,7 @@ public: static bool fpdf_IsDataAvail(struct _FX_FILEAVAIL* pThis, size_t offset, size_t size); static int fpdf_GetBlock(void* param, unsigned long position, unsigned char* pBuf, unsigned long size); static void fpdf_AddSegment(struct _FX_DOWNLOADHINTS* pThis, size_t offset, size_t size); - void setErrorCode(); - void clearError() { lastError = QPdfDocument::NoError; } + void updateLastError(); }; QT_END_NAMESPACE |