dde-dock/frame/window/tray/widgets/indicatortrayitem.h
heyuming 64fe544d0c fix: tray menu is hidden before function call
Log: 修复托盘在菜单中的行为被调用前被隐藏
2023-03-15 14:07:52 +08:00

48 lines
1.4 KiB
C++
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

// Copyright (C) 2011 ~ 2018 Deepin Technology Co., Ltd.
// SPDX-FileCopyrightText: 2018 - 2023 UnionTech Software Technology Co., Ltd.
//
// SPDX-License-Identifier: LGPL-3.0-or-later
#pragma once
#include <QScopedPointer>
#include <QLabel>
#include "basetraywidget.h"
class QGSettings;
class IndicatorTrayItem: public BaseTrayWidget
{
Q_OBJECT
public:
explicit IndicatorTrayItem(const QString &indicatorName, QWidget *parent = Q_NULLPTR, Qt::WindowFlags f = Qt::WindowFlags());
~IndicatorTrayItem() override;
QString itemKeyForConfig() override;
void updateIcon() override;
void sendClick(uint8_t, int, int) override;
void enableLabel(bool enable);
static QString toIndicatorKey(const QString &indicatorName) { return QString("indicator:%1").arg(indicatorName); }
static bool isIndicatorKey(const QString &itemKey) { return itemKey.startsWith("indicator:"); }
QPixmap icon() override;
const QByteArray &pixmapData() const;
const QString text() const;
bool containsPoint(const QPoint &mouse) override { return false; }
public Q_SLOTS:
Q_SCRIPTABLE void setPixmapData(const QByteArray &data);
Q_SCRIPTABLE void setText(const QString &text);
Q_SIGNALS:
void clicked(uint8_t, int, int);
private:
QLabel *m_label;
QString m_indicatorName;
bool m_enableClick; // 置灰时设置为false不触发click信号
QByteArray m_pixmapData;
};