From 6ae5aaad2dec2470940f83f1e8629aec48f284a7 Mon Sep 17 00:00:00 2001 From: zecke Date: Thu, 28 Aug 2003 14:48:13 +0000 Subject: Plugin loading changes --- 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 @@ -18,55 +18,64 @@ ** **********************************************************************/ -#include -#include -#include +#include +#include +#include #include #include +#include #include -#include "quicklauncher.h" #include "systray.h" #include -#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) { const TaskbarApplet* aa = *(const TaskbarApplet**)a; const TaskbarApplet* ab = *(const TaskbarApplet**)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(); } void SysTray::clearApplets() { - hide(); -#ifndef SINGLE_APP +#ifndef QT_NO_COMPONENTS + QValueList::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(); if ( layout ) @@ -77,18 +86,10 @@ 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", ',' ); QString lang = getenv( "LANG" ); @@ -108,14 +109,14 @@ void SysTray::addApplets() applets[napplets++] = applet; applet->library = lib; applet->iface = iface; - + QTranslator *trans = new QTranslator(qApp); QString type = (*it).left( (*it).find(".") ); QString tfn = QPEApplication::qpeDir()+"/i18n/"+lang+"/"+type+".qm"; if ( trans->load( tfn )) qApp->installTranslator( trans ); else - delete trans; + delete trans; } else { exclude += *it; delete lib; @@ -129,25 +130,12 @@ void SysTray::addApplets() appletList.append(*applet); } 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 @@ -21,7 +21,9 @@ #ifndef __SYSTRAY_H__ #define __SYSTRAY_H__ -#include +#ifndef QT_NO_COMPONENT +#include +#endif #include #include @@ -33,25 +35,23 @@ struct TaskbarApplet { #ifndef QT_NO_COMPONENT QLibrary *library; -#endif TaskbarAppletInterface *iface; +#endif QWidget *applet; + QString name; }; class SysTray : public QFrame { Q_OBJECT public: SysTray( QWidget *parent ); + ~SysTray(); void clearApplets(); void addApplets(); -protected: - void timerEvent(QTimerEvent* e); - private: void loadApplets(); - int safety_tid; QHBoxLayout *layout; QValueList appletList; }; -- cgit v0.9.0.2