summaryrefslogtreecommitdiff
Side-by-side diff
Diffstat (more/less context) (ignore whitespace changes)
-rw-r--r--core/launcher/launcherview.cpp15
1 files changed, 14 insertions, 1 deletions
diff --git a/core/launcher/launcherview.cpp b/core/launcher/launcherview.cpp
index 6354bb7..1598d13 100644
--- a/core/launcher/launcherview.cpp
+++ b/core/launcher/launcherview.cpp
@@ -21,57 +21,65 @@
#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:
+ QColor iconText;
+ QColor background;
+
LauncherIconView( QWidget* parent, const char* name=0 ) :
QIconView(parent,name),
tf(""),
cf(0),
bsy(0)
{
sortmeth = Name;
hidden.setAutoDelete(TRUE);
ike = FALSE;
+
+ Config config( "qpe" );
+ config.setGroup( "Appearance" );
+ iconText = QColor( config.readEntry( "LauncherIconText", "#000000" ) );
+ background = QColor( config.readEntry( "LauncherBackground", "#FFFFFF" ) );
}
~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)
}
void setBusy(bool on)
@@ -126,49 +134,50 @@ public:
}
void drawBackground( QPainter *p, const QRect &r )
{
Config config("qpe");
config.setGroup("Appearance");
QString backgroundImage = config.readEntry("BackgroundImage","launcher/opie-background");
// if (backgroundImage.isNull()) backgroundImage="launcher/opie-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));
+// painter.fillRect( QRect( 0, 0, width(), height() ), colorGroup().background().light(110));
+ painter.fillRect( QRect( 0, 0, width(), height() ), 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() ) );
} 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) );
@@ -266,48 +275,52 @@ class LauncherItem : public QIconViewItem
public:
LauncherItem( QIconView *parent, AppLnk* applnk );
~LauncherItem()
{
LauncherIconView* liv = (LauncherIconView*)iconView();
if ( liv->busyItem() == this )
liv->setBusy(FALSE);
delete app;
}
AppLnk* appLnk() const { return app; }
AppLnk* takeAppLnk() { AppLnk* r=app; app=0; return r; }
virtual int compare ( QIconViewItem * i ) const;
void paintItem( QPainter *p, const QColorGroup &cg )
{
LauncherIconView* liv = (LauncherIconView*)iconView();
QBrush oldBrush( liv->itemTextBackground() );
QColorGroup mycg( cg );
if ( liv->currentItem() == this ) {
liv->setItemTextBackground( cg.brush( QColorGroup::Highlight ) );
mycg.setColor( QColorGroup::Text, cg.color( QColorGroup::HighlightedText ) );
}
+ else {
+ mycg.setColor( QColorGroup::Text, liv->iconText );
+ }
+
QIconViewItem::paintItem(p,mycg);
if ( liv->currentItem() == this )
liv->setItemTextBackground( oldBrush );
if ( liv->busyItem() == this ) {
static QPixmap* busypm=0;
if ( !busypm )
busypm = new QPixmap(Resource::loadPixmap("launching"));
p->drawPixmap(x()+(width()-busypm->width())/2, y(),*busypm);
}
}
protected:
AppLnk* app;
};
LauncherItem::LauncherItem( QIconView *parent, AppLnk *applnk )
: QIconViewItem( parent, applnk->name(), applnk->bigPixmap() ),
app(applnk) // Takes ownership
{
}
int LauncherItem::compare ( QIconViewItem * i ) const
{