dde-dock/plugins/tray/indicatortraywidget.h
WenTao Song 03977ba903 feat: 添加任务栏-键盘布局图标提供配置文件或接口
社区版桌面系统支持任务栏显示键盘布局插件,用户可以gsetting指令控制插件的显示、隐藏、置灰功能,其他版本桌面系统不显示键盘布局插件插件.

Log: 社区版任务栏支持键盘布局插件功能
Task: https://pms.uniontech.com/zentao/task-view-80977.html
Change-Id: I7abc680b2ef425644d9d43ee1c1f777d9e853c53
2021-08-25 16:00:32 +08:00

66 lines
1.9 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.
*
* Author: sbw <sbw@sbw.so>
*
* Maintainer: sbw <sbw@sbw.so>
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
#pragma once
#include <QScopedPointer>
#include <QLabel>
#include "abstracttraywidget.h"
class QGSettings;
class IndicatorTrayWidget: public AbstractTrayWidget
{
Q_OBJECT
public:
explicit IndicatorTrayWidget(const QString &indicatorName, QWidget *parent = Q_NULLPTR, Qt::WindowFlags f = Qt::WindowFlags());
~IndicatorTrayWidget();
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:"); }
protected:
void resizeEvent(QResizeEvent *event) override;
public Q_SLOTS:
Q_SCRIPTABLE void setPixmapData(const QByteArray &data);
Q_SCRIPTABLE void setText(const QString &text);
private slots:
void onGSettingsChanged(const QString &key);
Q_SIGNALS:
void clicked(uint8_t, int, int);
private:
QLabel *m_label;
QString m_indicatorName;
const QGSettings *m_gsettings;
bool m_enableClick; // 置灰时设置为false不触发click信号
};