qt4/src/poppler-base-converter.cc | 8 +++++++- qt4/src/poppler-converter-private.h | 3 ++- qt4/src/poppler-pdf-converter.cc | 11 ++++++++++- qt4/src/poppler-ps-converter.cc | 14 ++++++++++++-- qt4/src/poppler-qt4.h | 14 ++++++++++++++ 5 files changed, 45 insertions(+), 5 deletions(-)
New commits: commit f530bc721bd23a2461b0cb765a8a6dad88ed3459 Author: Albert Astals Cid <[email protected]> Date: Sat Oct 17 00:48:58 2009 +0200 check the document is not locked when printing diff --git a/qt4/src/poppler-ps-converter.cc b/qt4/src/poppler-ps-converter.cc index fd33b49..7a1957b 100644 --- a/qt4/src/poppler-ps-converter.cc +++ b/qt4/src/poppler-ps-converter.cc @@ -175,6 +175,12 @@ bool PSConverter::convert() Q_ASSERT(d->paperWidth != -1); Q_ASSERT(d->paperHeight != -1); + if (d->document->locked) + { + d->lastError = FileLockedError; + return false; + } + QIODevice *dev = d->openDevice(); if (!dev) { commit 65cb34b7c77b95f036306460bcea6681e386afaf Author: Albert Astals Cid <[email protected]> Date: Sat Oct 17 00:48:27 2009 +0200 fix file name comment diff --git a/qt4/src/poppler-ps-converter.cc b/qt4/src/poppler-ps-converter.cc index ca3b63a..fd33b49 100644 --- a/qt4/src/poppler-ps-converter.cc +++ b/qt4/src/poppler-ps-converter.cc @@ -1,4 +1,4 @@ -/* poppler-document.cc: qt interface to poppler +/* poppler-ps-converter.cc: qt interface to poppler * Copyright (C) 2007, 2009, Albert Astals Cid <[email protected]> * Copyright (C) 2008, Pino Toscano <[email protected]> * commit dbd5ba680d846d6a57e3fb7618a64202441c6e76 Author: Albert Astals Cid <[email protected]> Date: Sat Oct 17 00:47:34 2009 +0200 Add a way for converters to return more exact errors they had when converting diff --git a/qt4/src/poppler-base-converter.cc b/qt4/src/poppler-base-converter.cc index b5f2035..11ff17c 100644 --- a/qt4/src/poppler-base-converter.cc +++ b/qt4/src/poppler-base-converter.cc @@ -1,5 +1,5 @@ /* poppler-base-converter.cc: qt interface to poppler - * Copyright (C) 2007, Albert Astals Cid <[email protected]> + * Copyright (C) 2007, 2009, Albert Astals Cid <[email protected]> * Copyright (C) 2008, Pino Toscano <[email protected]> * * This program is free software; you can redistribute it and/or modify @@ -96,4 +96,10 @@ void BaseConverter::setOutputDevice(QIODevice *device) d->ownIodev = false; } +BaseConverter::Error BaseConverter::lastError() const +{ + Q_D(const BaseConverter); + return d->lastError; +} + } diff --git a/qt4/src/poppler-converter-private.h b/qt4/src/poppler-converter-private.h index 84ae4d3..dc3e943 100644 --- a/qt4/src/poppler-converter-private.h +++ b/qt4/src/poppler-converter-private.h @@ -1,5 +1,5 @@ /* poppler-converter-private.h: Qt4 interface to poppler - * Copyright (C) 2007, Albert Astals Cid <[email protected]> + * Copyright (C) 2007, 2009, Albert Astals Cid <[email protected]> * Copyright (C) 2008, Pino Toscano <[email protected]> * * This program is free software; you can redistribute it and/or modify @@ -41,6 +41,7 @@ class BaseConverterPrivate QString outputFileName; QIODevice *iodev; bool ownIodev : 1; + BaseConverter::Error lastError; }; } diff --git a/qt4/src/poppler-pdf-converter.cc b/qt4/src/poppler-pdf-converter.cc index d0fed5b..9699b75 100644 --- a/qt4/src/poppler-pdf-converter.cc +++ b/qt4/src/poppler-pdf-converter.cc @@ -1,6 +1,6 @@ /* poppler-pdf-converter.cc: qt4 interface to poppler * Copyright (C) 2008, Pino Toscano <[email protected]> - * Copyright (C) 2008, Albert Astals Cid <[email protected]> + * Copyright (C) 2008, 2009, Albert Astals Cid <[email protected]> * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -69,13 +69,20 @@ PDFConverter::PDFOptions PDFConverter::pdfOptions() const bool PDFConverter::convert() { Q_D(PDFConverter); + d->lastError = NoError; if (d->document->locked) + { + d->lastError = FileLockedError; return false; + } QIODevice *dev = d->openDevice(); if (!dev) + { + d->lastError = OpenOutputError; return false; + } bool deleteFile = false; if (QFile *file = qobject_cast<QFile*>(dev)) @@ -98,6 +105,8 @@ bool PDFConverter::convert() { qobject_cast<QFile*>(dev)->remove(); } + if (errorCode == errOpenFile) d->lastError = OpenOutputError; + else d->lastError = NotSupportedInputFileError; } return (errorCode == errNone); diff --git a/qt4/src/poppler-ps-converter.cc b/qt4/src/poppler-ps-converter.cc index ea3887d..ca3b63a 100644 --- a/qt4/src/poppler-ps-converter.cc +++ b/qt4/src/poppler-ps-converter.cc @@ -1,5 +1,5 @@ /* poppler-document.cc: qt interface to poppler - * Copyright (C) 2007, Albert Astals Cid <[email protected]> + * Copyright (C) 2007, 2009, Albert Astals Cid <[email protected]> * Copyright (C) 2008, Pino Toscano <[email protected]> * * This program is free software; you can redistribute it and/or modify @@ -169,6 +169,7 @@ PSConverter::PSOptions PSConverter::psOptions() const bool PSConverter::convert() { Q_D(PSConverter); + d->lastError = NoError; Q_ASSERT(!d->pageList.isEmpty()); Q_ASSERT(d->paperWidth != -1); @@ -176,7 +177,10 @@ bool PSConverter::convert() QIODevice *dev = d->openDevice(); if (!dev) + { + d->lastError = OpenOutputError; return false; + } QByteArray pstitle8Bit = d->title.toLocal8Bit(); char* pstitlechar; diff --git a/qt4/src/poppler-qt4.h b/qt4/src/poppler-qt4.h index fcce658..f41e5e3 100644 --- a/qt4/src/poppler-qt4.h +++ b/qt4/src/poppler-qt4.h @@ -1227,6 +1227,20 @@ QString subject = m_doc->info("Subject"); \return whether the conversion succeeded */ virtual bool convert() = 0; + + enum Error + { + NoError, + FileLockedError, + OpenOutputError, + NotSupportedInputFileError + }; + + /** + Returns the last error + \since 0.12.1 + */ + Error lastError() const; protected: /// \cond PRIVATE _______________________________________________ poppler mailing list [email protected] http://lists.freedesktop.org/mailman/listinfo/poppler
