summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorSimon Hausmann <simon.hausmann@theqtcompany.com>2014-12-15 23:58:36 +0100
committerSimon Hausmann <simon.hausmann@theqtcompany.com>2014-12-15 23:58:36 +0100
commitf3ad790d987ed81c6c02ad41d77207b088d574c4 (patch)
treef264da659d244a93f7c8d615cad93e0df3c0039f
parentb5e5c718fa1f7821d04ac684eb21003caa88b93d (diff)
Clean up error handling
-rw-r--r--src/pdf/qpdfdocument.cpp24
-rw-r--r--src/pdf/qpdfdocument_p.h3
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