summaryrefslogtreecommitdiff
Side-by-side diff
Diffstat (more/less context) (ignore whitespace changes)
-rw-r--r--core/launcher/launcherview.cpp16
1 files changed, 13 insertions, 3 deletions
diff --git a/core/launcher/launcherview.cpp b/core/launcher/launcherview.cpp
index 7b20fdc..0df949e 100644
--- a/core/launcher/launcherview.cpp
+++ b/core/launcher/launcherview.cpp
@@ -18,16 +18,17 @@
**
**********************************************************************/
#include "launcherview.h"
#include <qpe/qpeapplication.h>
#include <qpe/applnk.h>
#include <qpe/qpedebug.h>
+#include <qpe/config.h>
#include <qpe/categories.h>
#include <qpe/categoryselect.h>
#include <qpe/menubutton.h>
#include <qpe/resource.h>
#include <qpe/qpetoolbar.h>
#include <qtimer.h>
#include <qdict.h>
@@ -121,16 +122,21 @@ public:
if (sl>=0) {
QString k = maj.left(sl);
mimes.replace(k,(void*)1);
}
}
void drawBackground( QPainter *p, const QRect &r )
{
+ Config config("qpe");
+ config.setGroup("Appearance");
+ QString backgroundImage = config.readEntry("BackgroundImage");
+
+ if (backgroundImage.isNull()) backgroundImage="qpe-background";
int backgroundMode = QPixmap::defaultDepth() >= 12 ? 1 : 0;
//int backgroundMode = 2;
if ( backgroundMode == 1 ) {
// Double buffer the background
static QPixmap *bg = NULL;
static QColor bgColor;
@@ -138,19 +144,23 @@ public:
if ( (bg == NULL) || (bgColor != colorGroup().button()) ) {
// Create a new background double buffer
if (bg == NULL)
bg = new QPixmap( width(), height() );
bgColor = colorGroup().button();
QPainter painter( bg );
painter.fillRect( QRect( 0, 0, width(), height() ), colorGroup().background().light(110));
-
- // Overlay the Qtopia logo in the center
- QImage logo = Resource::loadImage( "qpe-background" );
+ // Overlay the Qtopia logo in the center
+ QImage logo;
+ if (QFile::exists(backgroundImage)) {
+ logo = QImage(backgroundImage);
+ } else {
+ logo = Resource::loadImage(backgroundImage );
+ }
if ( !logo.isNull() )
painter.drawImage( (width() - logo.width()) / 2,
(height() - logo.height()) / 2, logo );
}
// Draw the double buffer to the widget (it is tiled for when the icon view is large)
p->drawTiledPixmap( r, *bg, QPoint( (r.x() + contentsX()) % bg->width(),
(r.y() + contentsY()) % bg->height() ) );