#include "client.h"
#include "iconloader.h"
#include "qtui.h"
-#include "qtuisettings.h"
-SystemTray::SystemTray(QObject *parent)
+#ifdef HAVE_KDE
+# include <KWindowInfo>
+# include <KWindowSystem>
+#endif
+
+SystemTray::SystemTray(QWidget *parent)
: QObject(parent),
_mode(Invalid),
_state(Passive),
- _inhibitActivation(false),
_passiveIcon(DesktopIcon("quassel_inactive")),
_activeIcon(DesktopIcon("quassel")),
_needsAttentionIcon(DesktopIcon("quassel_message")),
- _trayMenu(0)
+ _trayMenu(0),
+ _associatedWidget(parent)
{
- qApp->installEventFilter(this);
+ Q_ASSERT(parent);
}
SystemTray::~SystemTray() {
_trayMenu->deleteLater();
}
+QWidget *SystemTray::associatedWidget() const {
+ return _associatedWidget;
+}
+
void SystemTray::setTrayMenu(QMenu *menu) {
if(menu)
_trayMenu = menu;
_trayMenu->addSeparator();
_trayMenu->addAction(coll->action("Quit"));
#endif /* HAVE_KDE */
-
}
void SystemTray::setMode(Mode mode_) {
Q_UNUSED(millisecondsTimeoutHint)
}
-bool SystemTray::eventFilter(QObject *obj, QEvent *event) {
- Q_UNUSED(obj);
- if(event->type() == QEvent::MouseButtonRelease) {
- _inhibitActivation = false;
- }
- return false;
+void SystemTray::activate(SystemTray::ActivationReason reason) {
+ emit activated(reason);
}