D-Bus system tray: emit activated on middle and right click
The ActivationReason provides the type of click. If the icon has a D-Bus menu, then QStatusNotifierItemAdaptor::ContextMenu will not be called: the tray is responsible for opening the context menu. But an application can alternatively do something different with a right-click by not providing a menu, and instead handling the QSystemTrayIcon::activated signal with the Context reason. Simplified the code by emitting the signal directly in QStatusNotifierItemAdaptor. Task-number: QTBUG-44929 Change-Id: Ia062a9a2fd99554418d58a1ff6ecd4e862035198 Reviewed-by: Jørgen Lind <jorgen.lind@theqtcompany.com>
This commit is contained in:
parent
0e55d8dfad
commit
be242ed094
@ -115,12 +115,6 @@ void QDBusTrayIcon::cleanup()
|
||||
m_registered = false;
|
||||
}
|
||||
|
||||
void QDBusTrayIcon::activate(int x, int y)
|
||||
{
|
||||
qCDebug(qLcTray) << x << y;
|
||||
emit activated(Trigger);
|
||||
}
|
||||
|
||||
void QDBusTrayIcon::attentionTimerExpired()
|
||||
{
|
||||
m_messageTitle = QString();
|
||||
@ -213,11 +207,6 @@ void QDBusTrayIcon::updateMenu(QPlatformMenu * menu)
|
||||
m_menu->emitUpdated();
|
||||
}
|
||||
|
||||
void QDBusTrayIcon::contextMenu(int x, int y)
|
||||
{
|
||||
qCDebug(qLcTray) << x << y;
|
||||
}
|
||||
|
||||
void QDBusTrayIcon::showMessage(const QString &title, const QString &msg, const QIcon &icon,
|
||||
QPlatformSystemTrayIcon::MessageIcon iconType, int msecs)
|
||||
{
|
||||
|
@ -113,10 +113,6 @@ public:
|
||||
|
||||
QDBusPlatformMenu *menu() { return m_menu; }
|
||||
|
||||
public Q_SLOTS:
|
||||
void activate(int x, int y);
|
||||
void contextMenu(int x, int y);
|
||||
|
||||
signals:
|
||||
void categoryChanged();
|
||||
void statusChanged(QString arg);
|
||||
|
@ -50,6 +50,7 @@
|
||||
QT_BEGIN_NAMESPACE
|
||||
|
||||
Q_DECLARE_LOGGING_CATEGORY(qLcMenu)
|
||||
Q_DECLARE_LOGGING_CATEGORY(qLcTray)
|
||||
|
||||
QStatusNotifierItemAdaptor::QStatusNotifierItemAdaptor(QDBusTrayIcon *parent)
|
||||
: QDBusAbstractAdaptor(parent), m_trayIcon(parent)
|
||||
@ -151,22 +152,26 @@ QXdgDBusToolTipStruct QStatusNotifierItemAdaptor::toolTip() const
|
||||
|
||||
void QStatusNotifierItemAdaptor::Activate(int x, int y)
|
||||
{
|
||||
m_trayIcon->activate(x, y);
|
||||
qCDebug(qLcTray) << x << y;
|
||||
emit m_trayIcon->activated(QPlatformSystemTrayIcon::Trigger);
|
||||
}
|
||||
|
||||
void QStatusNotifierItemAdaptor::ContextMenu(int x, int y)
|
||||
{
|
||||
m_trayIcon->contextMenu(x, y);
|
||||
qCDebug(qLcTray) << x << y;
|
||||
emit m_trayIcon->activated(QPlatformSystemTrayIcon::Context);
|
||||
}
|
||||
|
||||
void QStatusNotifierItemAdaptor::Scroll(int, const QString &)
|
||||
void QStatusNotifierItemAdaptor::Scroll(int w, const QString &s)
|
||||
{
|
||||
qCDebug(qLcTray) << w << s;
|
||||
// unsupported
|
||||
}
|
||||
|
||||
void QStatusNotifierItemAdaptor::SecondaryActivate(int, int)
|
||||
void QStatusNotifierItemAdaptor::SecondaryActivate(int x, int y)
|
||||
{
|
||||
// unsupported
|
||||
qCDebug(qLcTray) << x << y;
|
||||
emit m_trayIcon->activated(QPlatformSystemTrayIcon::MiddleClick);
|
||||
}
|
||||
|
||||
QT_END_NAMESPACE
|
||||
|
Loading…
Reference in New Issue
Block a user