From be32e0c045814142954ac37c89715313633d6aa2 Mon Sep 17 00:00:00 2001
From: mickeyl <mickeyl>
Date: Sat, 19 Feb 2005 17:18:27 +0000
Subject: make inline image support optional

---
diff --git a/ChangeLog b/ChangeLog
index c39e7ce..86d9766 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -24,8 +24,9 @@
 
 	Internal
 	--------
-	* Work around bug in Qt/Embedded 2.3.10: qt_version() returns 231 (mickeyl)
+	* Worked around bug in Qt/Embedded 2.3.10: qt_version() returns 231 (mickeyl)
 	* Killed the need for weak symbols in QtE (zecke)
+	* Added optional building libqpe without inline images (mickeyl)
 
 2005-02-03	Opie 1.1.9
 
diff --git a/Rules.make b/Rules.make
index 64237cf..df1e6e5 100644
--- a/Rules.make
+++ b/Rules.make
@@ -60,6 +60,9 @@ endif
 ifeq ($(CONFIG_LIBQPE_WITHROHFEEDBACK),y)
 	echo CONFIG += LIBQPE_WITHROHFEEDBACK >> $@
 endif
+ifeq ($(CONFIG_LIBQPE_NO_INLINE_IMAGES),y)
+	echo DEFINES += LIBQPE_NO_INLINE_IMAGES >> $@
+endif
 ifeq ($(CONFIG_OPIE_NO_BUILTIN_SHUTDOWN),y)
 	echo DEFINES += OPIE_NO_BUILTIN_SHUTDOWN >> $@
 endif
diff --git a/config.in b/config.in
index e9ffed2..228e682 100644
--- a/config.in
+++ b/config.in
@@ -170,6 +170,10 @@ config LIBQPE_WITHROHFEEDBACK
   boolean "Build libqpe with Right-On-Hold feedback"
   default y
 
+config LIBQPE_NO_INLINE_IMAGES
+  boolean "Build libqpe without inline images"
+  default y
+
 config OPIE_NO_SOUND_PCM_READ_BITS
   boolean "There is not a pcm_read_bits io control"
   default y if TARGET_SHARP
diff --git a/library/resource.cpp b/library/resource.cpp
index b31876f..3b5e9ec 100644
--- a/library/resource.cpp
+++ b/library/resource.cpp
@@ -29,9 +29,11 @@
 // gcc exports inline functions in the generated file
 // inlinepics_p.h
 
+#ifndef LIBQPE_NO_INLINE_IMAGES
 namespace {
 #include "inlinepics_p.h"
 }
+#endif
 
 static bool g_notUseSet = ::getenv("OVERWRITE_ICON_SET");
 
@@ -96,7 +98,6 @@ QBitmap Resource::loadBitmap( const QString &pix )
 QString Resource::findPixmap( const QString &pix )
 {
     QString picsPath = QPEApplication::qpeDir() + "pics/";
-
     QString f;
 
     // Common case optimizations...
@@ -107,6 +108,17 @@ QString Resource::findPixmap( const QString &pix )
     if ( QFile( f ).exists() )
 	return f;
 
+#ifdef LIBQPE_NO_INLINE_IMAGES
+    QString picsPathInline = picsPath + "inline/";
+    // Common case optimizations...
+    f = picsPathInline + pix + ".png";
+    if ( QFile( f ).exists() )
+	return f;
+    f = picsPathInline + pix + ".xpm";
+    if ( QFile( f ).exists() )
+	return f;
+#endif
+
     // All formats...
     QStrList fileFormats = QImageIO::inputFormats();
     QString ff = fileFormats.first();
@@ -163,20 +175,32 @@ QStringList Resource::allSounds()
 
 static QImage load_image(const QString &name)
 {
+    QImage img;
+
     if (g_notUseSet ) {
         // try file
-        QImage img;
         QString f = Resource::findPixmap(name);
         if ( !f.isEmpty() )
             img.load(f);
+#ifndef LIBQPE_NO_INLINE_IMAGES
         if (img.isNull() )
             img = qembed_findImage(name.latin1() );
+#endif
         return img;
     }
     else{
-        QImage img = qembed_findImage(name.latin1());
-
-        if ( img.isNull() ) {
+#ifndef LIBQPE_NO_INLINE_IMAGES
+        img = qembed_findImage(name.latin1());
+#else
+        QString f = Resource::findPixmap( "/inline/" + name );
+        if ( !f.isEmpty() )
+        {
+            img.load(f);
+            return img;
+        }
+#endif
+        if ( img.isNull() )
+        {
             // No inlined image, try file
             QString f = Resource::findPixmap(name);
             if ( !f.isEmpty() )
--
cgit v0.9.0.2