-rw-r--r-- | core/launcher/systray.cpp | 70 | ||||
-rw-r--r-- | core/launcher/systray.h | 12 |
2 files changed, 35 insertions, 47 deletions
diff --git a/core/launcher/systray.cpp b/core/launcher/systray.cpp index be55791..64356ca 100644 --- a/core/launcher/systray.cpp +++ b/core/launcher/systray.cpp @@ -19,28 +19,35 @@ **********************************************************************/ -#include <qpe/qpeapplication.h> -#include <qpe/qlibrary.h> -#include <qpe/config.h> +#include <qtopia/qpeapplication.h> +#include <qtopia/qlibrary.h> +#include <qtopia/config.h> #include <qlayout.h> #include <qdir.h> +#include <qmessagebox.h> #include <qtranslator.h> -#include "quicklauncher.h" #include "systray.h" #include <stdlib.h> -#ifdef SINGLE_APP -#include "clockappletimpl.h" +/* ### Single build floppies ### */ +#if 0 +#ifdef QT_NO_COMPONENTS +#include "../plugins/applets/clockapplet/clockappletimpl.h" +#endif #endif SysTray::SysTray( QWidget *parent ) : QFrame( parent ), layout(0) { - safety_tid = 0; //setFrameStyle( QFrame::Panel | QFrame::Sunken ); loadApplets(); } +SysTray::~SysTray() +{ + clearApplets(); +} + static int compareAppletPositions(const void *a, const void *b) { @@ -49,9 +56,10 @@ static int compareAppletPositions(const void *a, const void *b) int d = ab->iface->position() - aa->iface->position(); if ( d ) return d; - return QString::compare(ab->library->library(),aa->library->library()); + return QString::compare(ab->name,aa->name); } void SysTray::loadApplets() { + hide(); clearApplets(); addApplets(); @@ -60,12 +68,13 @@ void SysTray::loadApplets() void SysTray::clearApplets() { - hide(); -#ifndef SINGLE_APP +#ifndef QT_NO_COMPONENTS + QValueList<TaskbarApplet>::Iterator mit; for ( mit = appletList.begin(); mit != appletList.end(); ++mit ) { - (*mit).iface->release(); + (*mit).iface->release(); (*mit).library->unload(); delete (*mit).library; } + #endif appletList.clear(); @@ -78,16 +87,8 @@ void SysTray::clearApplets() void SysTray::addApplets() { -#ifndef SINGLE_APP + hide(); +#ifndef QT_NO_COMPONENTS Config cfg( "Taskbar" ); cfg.setGroup( "Applets" ); - - // SafeMode causes too much problems, so we disable it for now -- - // maybe we should reenable it for OPIE 1.0 - sandman 26.09.02 - - bool safe = false; //cfg.readBoolEntry("SafeMode",FALSE); - if ( safe && !safety_tid ) - return; - cfg.writeEntry("SafeMode",TRUE); - cfg.write(); QStringList exclude = cfg.readListEntry( "ExcludeApplets", ',' ); @@ -109,5 +110,5 @@ void SysTray::addApplets() applet->library = lib; applet->iface = iface; - + QTranslator *trans = new QTranslator(qApp); QString type = (*it).left( (*it).find(".") ); @@ -116,5 +117,5 @@ void SysTray::addApplets() qApp->installTranslator( trans ); else - delete trans; + delete trans; } else { exclude += *it; @@ -130,24 +131,11 @@ void SysTray::addApplets() } delete [] applets; -#else - TaskbarApplet applet; - applet.iface = new ClockAppletImpl(); - applet.applet = applet.iface->applet( this ); - appletList.append( a ); +#else /* ## FIXME single app */ + TaskbarApplet * const applet = new TaskbarApplet(); + applet->iface = new ClockAppletImpl(); + applet->applet = applet->iface->applet( this ); + appletList.append( applet ); #endif show(); - - if ( !safety_tid ) - safety_tid = startTimer(2000); // TT has 5000, but this is a PITA for a developer ;) (sandman) } -void SysTray::timerEvent(QTimerEvent* e) -{ - if ( e->timerId() == safety_tid ) { - Config cfg( "Taskbar" ); - cfg.setGroup( "Applets" ); - cfg.writeEntry( "SafeMode", FALSE ); - killTimer(safety_tid); - safety_tid = 0; - } -} diff --git a/core/launcher/systray.h b/core/launcher/systray.h index 5a6849a..77c581f 100644 --- a/core/launcher/systray.h +++ b/core/launcher/systray.h @@ -22,5 +22,7 @@ #define __SYSTRAY_H__ -#include <qpe/taskbarappletinterface.h> +#ifndef QT_NO_COMPONENT +#include <qtopia/taskbarappletinterface.h> +#endif #include <qframe.h> @@ -34,7 +36,8 @@ struct TaskbarApplet #ifndef QT_NO_COMPONENT QLibrary *library; -#endif TaskbarAppletInterface *iface; +#endif QWidget *applet; + QString name; }; @@ -43,14 +46,11 @@ class SysTray : public QFrame { public: SysTray( QWidget *parent ); + ~SysTray(); void clearApplets(); void addApplets(); -protected: - void timerEvent(QTimerEvent* e); - private: void loadApplets(); - int safety_tid; QHBoxLayout *layout; QValueList<TaskbarApplet> appletList; |