<?xml version="1.0" encoding="UTF-8"?>
<commit>
  <added type="array"/>
  <modified type="array">
    <modified>
      <diff>@@ -1,5 +1,5 @@
 /* poppler-base-converter.cc: qt interface to poppler
- * Copyright (C) 2007, Albert Astals Cid &lt;aacid@kde.org&gt;
+ * Copyright (C) 2007, 2009, Albert Astals Cid &lt;aacid@kde.org&gt;
  * Copyright (C) 2008, Pino Toscano &lt;pino@kde.org&gt;
  *
  * This program is free software; you can redistribute it and/or modify
@@ -96,4 +96,10 @@ void BaseConverter::setOutputDevice(QIODevice *device)
 	d-&gt;ownIodev = false;
 }
 
+BaseConverter::Error BaseConverter::lastError() const
+{
+	Q_D(const BaseConverter);
+	return d-&gt;lastError;
+}
+
 }</diff>
      <filename>qt4/src/poppler-base-converter.cc</filename>
    </modified>
    <modified>
      <diff>@@ -1,5 +1,5 @@
 /* poppler-converter-private.h: Qt4 interface to poppler
- * Copyright (C) 2007, Albert Astals Cid &lt;aacid@kde.org&gt;
+ * Copyright (C) 2007, 2009, Albert Astals Cid &lt;aacid@kde.org&gt;
  * Copyright (C) 2008, Pino Toscano &lt;pino@kde.org&gt;
  *
  * 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>
      <filename>qt4/src/poppler-converter-private.h</filename>
    </modified>
    <modified>
      <diff>@@ -1,6 +1,6 @@
 /* poppler-pdf-converter.cc: qt4 interface to poppler
  * Copyright (C) 2008, Pino Toscano &lt;pino@kde.org&gt;
- * Copyright (C) 2008, Albert Astals Cid &lt;aacid@kde.org&gt;
+ * Copyright (C) 2008, 2009, Albert Astals Cid &lt;aacid@kde.org&gt;
  *
  * 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-&gt;lastError = NoError;
 
 	if (d-&gt;document-&gt;locked)
+	{
+		d-&gt;lastError = FileLockedError;
 		return false;
+	}
 
 	QIODevice *dev = d-&gt;openDevice();
 	if (!dev)
+	{
+		d-&gt;lastError = OpenOutputError;
 		return false;
+	}
 
 	bool deleteFile = false;
 	if (QFile *file = qobject_cast&lt;QFile*&gt;(dev))
@@ -98,6 +105,8 @@ bool PDFConverter::convert()
 		{
 			qobject_cast&lt;QFile*&gt;(dev)-&gt;remove();
 		}
+		if (errorCode == errOpenFile) d-&gt;lastError = OpenOutputError;
+		else d-&gt;lastError = NotSupportedInputFileError;
 	}
 
 	return (errorCode == errNone);</diff>
      <filename>qt4/src/poppler-pdf-converter.cc</filename>
    </modified>
    <modified>
      <diff>@@ -1,5 +1,5 @@
 /* poppler-document.cc: qt interface to poppler
- * Copyright (C) 2007, Albert Astals Cid &lt;aacid@kde.org&gt;
+ * Copyright (C) 2007, 2009, Albert Astals Cid &lt;aacid@kde.org&gt;
  * Copyright (C) 2008, Pino Toscano &lt;pino@kde.org&gt;
  *
  * 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-&gt;lastError = NoError;
 
 	Q_ASSERT(!d-&gt;pageList.isEmpty());
 	Q_ASSERT(d-&gt;paperWidth != -1);
@@ -176,7 +177,10 @@ bool PSConverter::convert()
 	
 	QIODevice *dev = d-&gt;openDevice();
 	if (!dev)
+	{
+		d-&gt;lastError = OpenOutputError;
 		return false;
+	}
 
 	QByteArray pstitle8Bit = d-&gt;title.toLocal8Bit();
 	char* pstitlechar;</diff>
      <filename>qt4/src/poppler-ps-converter.cc</filename>
    </modified>
    <modified>
      <diff>@@ -1227,6 +1227,20 @@ QString subject = m_doc-&gt;info(&quot;Subject&quot;);
               \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</diff>
      <filename>qt4/src/poppler-qt4.h</filename>
    </modified>
  </modified>
  <removed type="array"/>
  <parents type="array">
    <parent>
      <id>bb21f825fcaa49e149cc7a7eb9c68f15f11fff1d</id>
    </parent>
  </parents>
  <author>
    <name>Albert Astals Cid</name>
    <email>aacid@kde.org</email>
  </author>
  <url>http://github.com/giddie/poppler-qt4-cairo-backend/commit/dbd5ba680d846d6a57e3fb7618a64202441c6e76</url>
  <id>dbd5ba680d846d6a57e3fb7618a64202441c6e76</id>
  <committed-date>2009-10-16T15:50:43-07:00</committed-date>
  <authored-date>2009-10-16T15:47:34-07:00</authored-date>
  <message>Add a way for converters to return more exact errors they had when converting</message>
  <tree>8f47729dcef81190a230c65f44e6993cae4ba778</tree>
  <committer>
    <name>Albert Astals Cid</name>
    <email>aacid@kde.org</email>
  </committer>
</commit>
