summaryrefslogtreecommitdiff
authormark <mark>2002-02-23 18:25:50 (UTC)
committer mark <mark>2002-02-23 18:25:50 (UTC)
commitc200950a2b120b015783f1552fd68c355bcc3185 (patch) (side-by-side diff)
treede9337b1d339fb18c14b7711ce53f6547bc6e2e7
parentcb8381a2969b3a51697ec2034a919fffa9a9c022 (diff)
downloadopie-c200950a2b120b015783f1552fd68c355bcc3185.zip
opie-c200950a2b120b015783f1552fd68c355bcc3185.tar.gz
opie-c200950a2b120b015783f1552fd68c355bcc3185.tar.bz2
Makes it possible to choose your background image with a config item in
qpe.conf Accepts both absolute paths '/opt/QtPalmtop/pics/mypic.png' and loadPixmap type paths 'mypic'
Diffstat (more/less context) (show whitespace changes)
-rw-r--r--core/launcher/launcherview.cpp14
1 files changed, 12 insertions, 2 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
@@ -1,73 +1,74 @@
/**********************************************************************
** Copyright (C) 2000 Trolltech AS. All rights reserved.
**
** This file is part of Qtopia Environment.
**
** This file may be distributed and/or modified under the terms of the
** GNU General Public License version 2 as published by the Free Software
** Foundation and appearing in the file LICENSE.GPL included in the
** packaging of this file.
**
** This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE
** WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.
**
** See http://www.trolltech.com/gpl/ for GPL licensing information.
**
** Contact info@trolltech.com if any conditions of this licensing are
** not clear to you.
**
**********************************************************************/
#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>
#include <qfile.h>
#include <qfileinfo.h>
#include <qhbox.h>
#include <qiconview.h>
#include <qpainter.h>
#include <qregexp.h>
#include <qtoolbutton.h>
class LauncherIconView : public QIconView {
public:
LauncherIconView( QWidget* parent, const char* name=0 ) :
QIconView(parent,name),
tf(""),
cf(0),
bsy(0)
{
sortmeth = Name;
hidden.setAutoDelete(TRUE);
ike = FALSE;
}
~LauncherIconView()
{
#if 0 // debuggery
QListIterator<AppLnk> it(hidden);
AppLnk* l;
while ((l=it.current())) {
++it;
//qDebug("%p: hidden (should remove)",l);
}
#endif
}
QIconViewItem* busyItem() const { return bsy; }
void updateCategoriesAndMimeTypes();
void doAutoScroll()
{
// We don't want rubberbanding (yet)
@@ -81,116 +82,125 @@ public:
bsy = c;
if ( o ) o->repaint();
if ( c ) c->repaint();
}
}
bool inKeyEvent() const { return ike; }
void keyPressEvent(QKeyEvent* e)
{
ike = TRUE;
if ( e->key() == Key_F33 ) {
// "OK" button
returnPressed(currentItem());
}
QIconView::keyPressEvent(e);
ike = FALSE;
}
void addItem(AppLnk* app, bool resort=TRUE);
bool removeLink(const QString& linkfile);
QStringList mimeTypes() const;
QStringList categories() const;
void clear()
{
mimes.clear();
cats.clear();
QIconView::clear();
hidden.clear();
}
void addCatsAndMimes(AppLnk* app)
{
// QStringList c = app->categories();
// for (QStringList::ConstIterator cit=c.begin(); cit!=c.end(); ++cit) {
// cats.replace(*cit,(void*)1);
// }
QString maj=app->type();
int sl=maj.find('/');
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;
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" );
+ 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() ) );
} else if ( backgroundMode == 2 ) {
static QPixmap *bg = 0;
static QColor bgColor;
if ( !bg || (bgColor != colorGroup().background()) ) {
bgColor = colorGroup().background();
bg = new QPixmap( width(), 9 );
QPainter painter( bg );
for ( int i = 0; i < 3; i++ ) {
painter.setPen( colorGroup().background().light(130) );
painter.drawLine( 0, i*3, width()-1, i*3 );
painter.drawLine( 0, i*3+1, width()-1, i*3+1 );
painter.setPen( colorGroup().background().light(105) );
painter.drawLine( 0, i*3+2, width()-1, i*3+2 );
}
}
p->drawTiledPixmap( r, *bg, QPoint( (r.x() + contentsX()) % bg->width(),
(r.y() + contentsY()) % bg->height() ) );
} else {
p->fillRect( r, QBrush( colorGroup().background().light(110) ) );
}
}
void hideOrShowItems(bool resort);
void setTypeFilter(const QString& typefilter, bool resort)
{
tf = QRegExp(typefilter,FALSE,TRUE);
hideOrShowItems(resort);
}
void setCategoryFilter( int catfilter, bool resort )
{
Categories cat;
cat.load( categoryFileName() );
QString str;
if ( catfilter == -2 )
cf = 0;
else
cf = catfilter;
hideOrShowItems(resort);