summaryrefslogtreecommitdiff
Side-by-side diff
Diffstat (more/less context) (ignore whitespace changes)
-rw-r--r--core/launcher/systray.cpp70
-rw-r--r--core/launcher/systray.h12
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;