fix all is blue issue on ppc machines
diff --git a/ChangeLog b/ChangeLog
index 6c10d85..af1b1e9 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,10 @@
+2006-05-21  Albert Astals Cid <aacid@kde.org>
+
+	* qt4/src/poppler-page.cc:
+	* qt/src/poppler-page.cc: Swap byte order on bigendian machines.
+	Thanks a lot to Jonathan Riddell <jr@jriddell.org> for letting me use
+	his minimac for	testing
+
 2006-05-19  Kristian Høgsberg  <krh@redhat.com>
 
 	* glib/poppler-action.h: 
diff --git a/qt/poppler-page.cc b/qt/poppler-page.cc
index d0395aa..c40337a 100644
--- a/qt/poppler-page.cc
+++ b/qt/poppler-page.cc
@@ -77,6 +77,23 @@
   int bw = output_dev->getBitmap()->getWidth();
   int bh = output_dev->getBitmap()->getHeight();
   SplashColorPtr dataPtr = output_dev->getBitmap()->getDataPtr();
+  
+  if (QImage::BigEndian == QImage::systemByteOrder())
+  {
+    uchar c;
+    int count = bw * bh * 4;
+    for (int k = 0; k < count; k += 4)
+    {
+      c = dataPtr[k];
+      dataPtr[k] = dataPtr[k+3];
+      dataPtr[k+3] = c;
+
+      c = dataPtr[k+1];
+      dataPtr[k+1] = dataPtr[k+2];
+      dataPtr[k+2] = c;
+    }
+  }
+  
   // construct a qimage SHARING the raw bitmap data in memory
   QImage img( dataPtr, bw, bh, 32, 0, 0, QImage::IgnoreEndian );
   img = img.copy();
diff --git a/qt4/src/poppler-page.cc b/qt4/src/poppler-page.cc
index 9777153..5191556 100644
--- a/qt4/src/poppler-page.cc
+++ b/qt4/src/poppler-page.cc
@@ -69,6 +69,23 @@
   int bh = bitmap->getHeight();
   
   SplashColorPtr dataPtr = output_dev->getBitmap()->getDataPtr();
+  
+  if (QSysInfo::BigEndian == QSysInfo::ByteOrder)
+  {
+    uchar c;
+    int count = bw * bh * 4;
+    for (int k = 0; k < count; k += 4)
+    {
+      c = dataPtr[k];
+      dataPtr[k] = dataPtr[k+3];
+      dataPtr[k+3] = c;
+
+      c = dataPtr[k+1];
+      dataPtr[k+1] = dataPtr[k+2];
+      dataPtr[k+2] = c;
+    }
+  }
+  
   // construct a qimage SHARING the raw bitmap data in memory
   QImage img( dataPtr, bw, bh, QImage::Format_ARGB32 );
   img = img.copy();