feat(shortcut): 修改shortcut插件接口,接口版本号和安装位置,统一翻译文件加载
This commit is contained in:
parent
0aef652af3
commit
4fe8700026
|
@ -14,6 +14,7 @@ include_directories(interface)
|
||||||
set(SOURCE_FILES
|
set(SOURCE_FILES
|
||||||
short-cut-manager.cpp
|
short-cut-manager.cpp
|
||||||
interface/status-info.cpp
|
interface/status-info.cpp
|
||||||
|
interface/ukui-shortcut-plugin.cpp
|
||||||
)
|
)
|
||||||
|
|
||||||
set(LIBRARY_HEADERS
|
set(LIBRARY_HEADERS
|
||||||
|
@ -21,6 +22,7 @@ set(LIBRARY_HEADERS
|
||||||
interface/value-type.h
|
interface/value-type.h
|
||||||
interface/plugin-common-data.h
|
interface/plugin-common-data.h
|
||||||
interface/ukui-shortcut_global.h
|
interface/ukui-shortcut_global.h
|
||||||
|
interface/ukui-shortcut.h
|
||||||
interface/ukui-shortcut-plugin.h
|
interface/ukui-shortcut-plugin.h
|
||||||
interface/status-info.h
|
interface/status-info.h
|
||||||
)
|
)
|
||||||
|
|
|
@ -2,5 +2,8 @@
|
||||||
set(PLUGIN_INSTALL_DIRS "/usr/lib/${CMAKE_LIBRARY_ARCHITECTURE}/ukui-shortcut-plugins")
|
set(PLUGIN_INSTALL_DIRS "/usr/lib/${CMAKE_LIBRARY_ARCHITECTURE}/ukui-shortcut-plugins")
|
||||||
add_compile_definitions(PLUGIN_INSTALL_DIRS="${PLUGIN_INSTALL_DIRS}")
|
add_compile_definitions(PLUGIN_INSTALL_DIRS="${PLUGIN_INSTALL_DIRS}")
|
||||||
# 插件数据文件安装目录
|
# 插件数据文件安装目录
|
||||||
set(SHORTCUT_DATA_INSTALL_DIR "/usr/share/ukui-sidebar/ukui-shortcut/shortcuts")
|
set(SHORTCUT_DATA_INSTALL_DIR "/usr/share/ukui-sidebar/shortcuts")
|
||||||
add_compile_definitions(SHORTCUT_DATA_INSTALL_DIR="${SHORTCUT_DATA_INSTALL_DIR}")
|
add_compile_definitions(SHORTCUT_DATA_INSTALL_DIR="${SHORTCUT_DATA_INSTALL_DIR}")
|
||||||
|
# 插件翻译文件安装目录
|
||||||
|
set(SHORTCUT_TRANSLATION_FILE_DIR "${SHORTCUT_DATA_INSTALL_DIR}/translations")
|
||||||
|
add_compile_definitions(SHORTCUT_TRANSLATION_FILE_DIR="${SHORTCUT_TRANSLATION_FILE_DIR}")
|
||||||
|
|
|
@ -0,0 +1,36 @@
|
||||||
|
/*
|
||||||
|
* Copyright (C) 2022, KylinSoft Co., Ltd.
|
||||||
|
*
|
||||||
|
* 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
|
||||||
|
* (at your option) 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 <https://www.gnu.org/licenses/>.
|
||||||
|
*
|
||||||
|
* Authors: iaom <zhangpengfei@kylinos.cn>
|
||||||
|
* hxf <hewenfei@kylinos.cn>
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
|
||||||
|
#include "ukui-shortcut-plugin.h"
|
||||||
|
|
||||||
|
namespace UkuiShortcut {
|
||||||
|
|
||||||
|
UkuiShortcutPlugin::UkuiShortcutPlugin(QObject *parent) : QObject(parent)
|
||||||
|
{
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
UkuiShortcutPlugin::~UkuiShortcutPlugin()
|
||||||
|
{
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
} // Shortcut
|
|
@ -18,43 +18,52 @@
|
||||||
* hxf <hewenfei@kylinos.cn>
|
* hxf <hewenfei@kylinos.cn>
|
||||||
*
|
*
|
||||||
*/
|
*/
|
||||||
#ifndef UKUISHORTCUTPLUGIN_H
|
|
||||||
#define UKUISHORTCUTPLUGIN_H
|
|
||||||
#define UKUI_SHORTCUT_PLUGIN_IFACE_IID "org.ukui.shortcut.UkuiShortcutPluginIface"
|
|
||||||
#define UKUI_SHORTCUT_PLUGIN_IFACE_VERSION "1.0.0"
|
|
||||||
#include <QtPlugin>
|
|
||||||
#include <QObject>
|
|
||||||
#include <QMap>
|
|
||||||
|
|
||||||
#include "ukui-shortcut_global.h"
|
#ifndef UKUI_SIDEBAR_UKUI_SHORTCUT_PLUGIN_H
|
||||||
#include "plugin-common-data.h"
|
#define UKUI_SIDEBAR_UKUI_SHORTCUT_PLUGIN_H
|
||||||
#include "status-info.h"
|
|
||||||
|
#define UKUI_SHORTCUT_PLUGIN_IFACE_IID "org.ukui.shortcut.UkuiShortcutPluginIface"
|
||||||
|
#define UKUI_SHORTCUT_PLUGIN_IFACE_TYPE "UKUI_SHORT_CUT"
|
||||||
|
#define UKUI_SHORTCUT_PLUGIN_IFACE_VERSION "1.0.1"
|
||||||
|
|
||||||
|
#include <QtPlugin>
|
||||||
|
#include <QStringList>
|
||||||
|
|
||||||
|
#include "ukui-shortcut.h"
|
||||||
|
|
||||||
namespace UkuiShortcut {
|
namespace UkuiShortcut {
|
||||||
|
|
||||||
class UKUISHORTCUT_EXPORT Shortcut : public QObject
|
class UkuiShortcutPlugin : public QObject
|
||||||
{
|
{
|
||||||
Q_OBJECT
|
Q_OBJECT
|
||||||
public:
|
public:
|
||||||
explicit Shortcut(QObject *parent = nullptr) : QObject(parent) {}
|
explicit UkuiShortcutPlugin(QObject *parent = nullptr);
|
||||||
//插件标识
|
~UkuiShortcutPlugin() override;
|
||||||
virtual QString pluginId() = 0;
|
|
||||||
//插件类型(样式), 需要指定不同模式下的按钮
|
|
||||||
virtual QMap<PluginMetaType::SystemMode, PluginMetaData> pluginMetaData() = 0;
|
|
||||||
//实现响应前端用户操作
|
|
||||||
virtual void active(PluginMetaType::Action action) = 0;
|
|
||||||
//进度条样式需要从写该函数
|
|
||||||
virtual void setValue(int value) {Q_UNUSED(value)}
|
|
||||||
//返回插件当前的状态信息
|
|
||||||
virtual const StatusInfo currentStatus() = 0;
|
|
||||||
//是否启用
|
|
||||||
virtual bool isEnable() { return true; }
|
|
||||||
|
|
||||||
Q_SIGNALS:
|
/**
|
||||||
void statusChanged(const StatusInfo &info);
|
* 插件唯一id名称
|
||||||
void enableStatusChanged(bool isEnable);
|
* @return 插件id
|
||||||
|
*/
|
||||||
|
virtual QString pluginId() = 0;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 快捷按钮的翻译文件名称
|
||||||
|
* eg: 自动旋转按钮的翻译文件: auto-rotation-shortcut_zh_CN.qm,那么此方法只需要返回 "auto-rotation-shortcut" 即可。
|
||||||
|
* 翻译文件会在插件被加载前加载。
|
||||||
|
*
|
||||||
|
* @return 可以返回多个翻译文件名称
|
||||||
|
*/
|
||||||
|
virtual QStringList translations() = 0;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 创建快捷按钮
|
||||||
|
* @return Shortcut*
|
||||||
|
*/
|
||||||
|
virtual Shortcut *createShortcut() = 0;
|
||||||
};
|
};
|
||||||
|
|
||||||
}
|
} // Shortcut
|
||||||
Q_DECLARE_INTERFACE(UkuiShortcut::Shortcut, UKUI_SHORTCUT_PLUGIN_IFACE_IID)
|
|
||||||
#endif // UKUISHORTCUTPLUGIN_H
|
Q_DECLARE_INTERFACE(UkuiShortcut::UkuiShortcutPlugin, UKUI_SHORTCUT_PLUGIN_IFACE_IID)
|
||||||
|
|
||||||
|
#endif //UKUI_SIDEBAR_UKUI_SHORTCUT_PLUGIN_H
|
||||||
|
|
|
@ -0,0 +1,58 @@
|
||||||
|
/*
|
||||||
|
* Copyright (C) 2022, KylinSoft Co., Ltd.
|
||||||
|
*
|
||||||
|
* 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
|
||||||
|
* (at your option) 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 <https://www.gnu.org/licenses/>.
|
||||||
|
*
|
||||||
|
* Authors: iaom <zhangpengfei@kylinos.cn>
|
||||||
|
* hxf <hewenfei@kylinos.cn>
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
#ifndef UKUISHORTCUTPLUGIN_H
|
||||||
|
#define UKUISHORTCUTPLUGIN_H
|
||||||
|
|
||||||
|
#include <QObject>
|
||||||
|
#include <QMap>
|
||||||
|
|
||||||
|
#include "ukui-shortcut_global.h"
|
||||||
|
#include "plugin-common-data.h"
|
||||||
|
#include "status-info.h"
|
||||||
|
|
||||||
|
namespace UkuiShortcut {
|
||||||
|
|
||||||
|
class UKUISHORTCUT_EXPORT Shortcut : public QObject
|
||||||
|
{
|
||||||
|
Q_OBJECT
|
||||||
|
public:
|
||||||
|
explicit Shortcut(QObject *parent = nullptr) : QObject(parent) {}
|
||||||
|
//插件标识
|
||||||
|
virtual QString pluginId() = 0;
|
||||||
|
//插件类型(样式), 需要指定不同模式下的按钮
|
||||||
|
virtual QMap<PluginMetaType::SystemMode, PluginMetaData> pluginMetaData() = 0;
|
||||||
|
//实现响应前端用户操作
|
||||||
|
virtual void active(PluginMetaType::Action action) = 0;
|
||||||
|
//进度条样式需要从写该函数
|
||||||
|
virtual void setValue(int value) {Q_UNUSED(value)}
|
||||||
|
//返回插件当前的状态信息
|
||||||
|
virtual const StatusInfo currentStatus() = 0;
|
||||||
|
//是否启用
|
||||||
|
virtual bool isEnable() { return true; }
|
||||||
|
|
||||||
|
Q_SIGNALS:
|
||||||
|
void statusChanged(const StatusInfo &info);
|
||||||
|
void enableStatusChanged(bool isEnable);
|
||||||
|
};
|
||||||
|
|
||||||
|
}
|
||||||
|
Q_DECLARE_INTERFACE(UkuiShortcut::Shortcut, UKUI_SHORTCUT_PLUGIN_IFACE_IID)
|
||||||
|
#endif // UKUISHORTCUTPLUGIN_H
|
|
@ -22,6 +22,8 @@
|
||||||
#include <QJsonObject>
|
#include <QJsonObject>
|
||||||
#include <QJsonValue>
|
#include <QJsonValue>
|
||||||
#include <QPluginLoader>
|
#include <QPluginLoader>
|
||||||
|
#include <QTranslator>
|
||||||
|
#include <QCoreApplication>
|
||||||
#include <QDebug>
|
#include <QDebug>
|
||||||
|
|
||||||
using namespace UkuiShortcut;
|
using namespace UkuiShortcut;
|
||||||
|
@ -38,20 +40,24 @@ public:
|
||||||
|
|
||||||
void UkuiShortcut::ShortcutManagerPrivate::findShortcuts()
|
void UkuiShortcut::ShortcutManagerPrivate::findShortcuts()
|
||||||
{
|
{
|
||||||
|
const QString pluginType(UKUI_SHORTCUT_PLUGIN_IFACE_TYPE);
|
||||||
|
const QString translationsDir(SHORTCUT_TRANSLATION_FILE_DIR);
|
||||||
|
|
||||||
// 宏 "PLUGIN_INSTALL_DIRS" 定义在 libukui-shortcut.pro 中
|
// 宏 "PLUGIN_INSTALL_DIRS" 定义在 libukui-shortcut.pro 中
|
||||||
QDir pluginsDir(PLUGIN_INSTALL_DIRS);
|
QDir pluginsDir(PLUGIN_INSTALL_DIRS);
|
||||||
pluginsDir.setFilter(QDir::Files);
|
|
||||||
for(const QString& fileName : pluginsDir.entryList(QDir::Files)) {
|
for(const QString& fileName : pluginsDir.entryList(QDir::Files)) {
|
||||||
QPluginLoader pluginLoader(pluginsDir.absoluteFilePath(fileName));
|
QPluginLoader pluginLoader(pluginsDir.absoluteFilePath(fileName));
|
||||||
QJsonObject metaData = pluginLoader.metaData().value("MetaData").toObject();
|
QJsonObject metaData = pluginLoader.metaData().value("MetaData").toObject();
|
||||||
QString type =metaData.value("Type").toString();
|
QString type = metaData.value("Type").toString();
|
||||||
QString version = metaData.value("Version").toString();
|
QString version = metaData.value("Version").toString();
|
||||||
if(type == "UKUI_SHORT_CUT") {
|
|
||||||
if(version != UKUI_SHORTCUT_PLUGIN_IFACE_VERSION) {
|
if (type != pluginType) {
|
||||||
qWarning() << "UKUI_SHORT_CUT version check failed:" << fileName << "version:" << version << "iface version : " << UKUI_SHORTCUT_PLUGIN_IFACE_VERSION;
|
continue;
|
||||||
continue;
|
}
|
||||||
}
|
|
||||||
} else {
|
if (version != UKUI_SHORTCUT_PLUGIN_IFACE_VERSION) {
|
||||||
|
qWarning() << "UKUI_SHORT_CUT version check failed:" << fileName << "version:" << version
|
||||||
|
<< "iface version : " << UKUI_SHORTCUT_PLUGIN_IFACE_VERSION;
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -59,11 +65,30 @@ void UkuiShortcut::ShortcutManagerPrivate::findShortcuts()
|
||||||
if (!obj) {
|
if (!obj) {
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
Shortcut *plugin = qobject_cast<Shortcut*>(obj);
|
|
||||||
|
UkuiShortcutPlugin *plugin = qobject_cast<UkuiShortcutPlugin *>(obj);
|
||||||
if (!plugin) {
|
if (!plugin) {
|
||||||
|
obj->deleteLater();
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
m_allShortcuts.push_back(plugin);
|
|
||||||
|
// 加载翻译
|
||||||
|
for (const auto &trName : plugin->translations()) {
|
||||||
|
auto translator = new QTranslator(QCoreApplication::instance());
|
||||||
|
if (translator->load(QLocale(), trName, QStringLiteral("_"), translationsDir)) {
|
||||||
|
// 加载翻译成功
|
||||||
|
QCoreApplication::installTranslator(translator);
|
||||||
|
} else {
|
||||||
|
delete translator;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
Shortcut *shortcut = plugin->createShortcut();
|
||||||
|
if (shortcut) {
|
||||||
|
m_allShortcuts.append(shortcut);
|
||||||
|
}
|
||||||
|
|
||||||
|
plugin->deleteLater();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -21,7 +21,7 @@ file(GLOB SOURCES "${CMAKE_CURRENT_SOURCE_DIR}" "*.cpp")
|
||||||
file(GLOB TS_FILES "${CMAKE_CURRENT_SOURCE_DIR}" "*.ts")
|
file(GLOB TS_FILES "${CMAKE_CURRENT_SOURCE_DIR}" "*.ts")
|
||||||
qt5_create_translation(QM_FILES ${CMAKE_CURRENT_SOURCE_DIR} ${TS_FILES})
|
qt5_create_translation(QM_FILES ${CMAKE_CURRENT_SOURCE_DIR} ${TS_FILES})
|
||||||
|
|
||||||
set(TRANSLATION_FILE_DIR "${SHORTCUT_DATA_INSTALL_DIR}/${PROJECT_NAME}/translations")
|
set(TRANSLATION_FILE_DIR "${SHORTCUT_TRANSLATION_FILE_DIR}")
|
||||||
# 生成动态链接库[.so]文件
|
# 生成动态链接库[.so]文件
|
||||||
add_library(${PROJECT_NAME} SHARED ${HEADERS} ${SOURCES} ${QM_FILES})
|
add_library(${PROJECT_NAME} SHARED ${HEADERS} ${SOURCES} ${QM_FILES})
|
||||||
# 编译宏定义
|
# 编译宏定义
|
||||||
|
|
|
@ -20,7 +20,6 @@
|
||||||
|
|
||||||
#include <QDBusReply>
|
#include <QDBusReply>
|
||||||
#include <QDebug>
|
#include <QDebug>
|
||||||
#include <QTranslator>
|
|
||||||
#include <QApplication>
|
#include <QApplication>
|
||||||
|
|
||||||
static const QString SERVICE = QStringLiteral("com.kylin.statusmanager.interface");
|
static const QString SERVICE = QStringLiteral("com.kylin.statusmanager.interface");
|
||||||
|
@ -36,22 +35,15 @@ static const QString IS_SUPPORTED_AUTOROTATION = QStringLiteral("is_supported_au
|
||||||
static const QString AUTO_ROTATION_ICON = QStringLiteral("ukui-automatic-rotation-symbolic");
|
static const QString AUTO_ROTATION_ICON = QStringLiteral("ukui-automatic-rotation-symbolic");
|
||||||
|
|
||||||
using namespace UkuiShortcut;
|
using namespace UkuiShortcut;
|
||||||
AutoRotationShortcut::AutoRotationShortcut()
|
AutoRotationShortcut::AutoRotationShortcut(QObject *parent) : Shortcut(parent)
|
||||||
{
|
{
|
||||||
QTranslator *translator = new QTranslator(this);
|
|
||||||
try {
|
|
||||||
if(!translator->load(QString(TRANSLATION_FILE_DIR) + "/auto-rotation-shortcut_" + QLocale::system().name() + ".qm")) throw -1;
|
|
||||||
QApplication::installTranslator(translator);
|
|
||||||
} catch(...) {
|
|
||||||
qWarning() << "AutoRotationShortcut load translations file" << QLocale::system().name() << "failed!";
|
|
||||||
}
|
|
||||||
//set initial status info
|
//set initial status info
|
||||||
m_currentStatusInfo.setColor(Color::ColorRole::BaseColor);
|
m_currentStatusInfo.setColor(Color::ColorRole::BaseColor);
|
||||||
m_currentStatusInfo.setName(tr("Auto Rotation"));
|
m_currentStatusInfo.setName(tr("Auto Rotation"));
|
||||||
m_currentStatusInfo.setToolTip(tr("Auto Rotation"));
|
m_currentStatusInfo.setToolTip(tr("Auto Rotation"));
|
||||||
m_currentStatusInfo.setIcon(AUTO_ROTATION_ICON);
|
m_currentStatusInfo.setIcon(AUTO_ROTATION_ICON);
|
||||||
|
|
||||||
PluginMetaData pc {false};
|
PluginMetaData pc {true, 1, PluginMetaType::PluginType::Icon};
|
||||||
PluginMetaData tablet {true, 1, PluginMetaType::PluginType::Icon};
|
PluginMetaData tablet {true, 1, PluginMetaType::PluginType::Icon};
|
||||||
m_metaData.insert(PluginMetaType::SystemMode::PC, pc);
|
m_metaData.insert(PluginMetaType::SystemMode::PC, pc);
|
||||||
m_metaData.insert(PluginMetaType::SystemMode::Tablet, tablet);
|
m_metaData.insert(PluginMetaType::SystemMode::Tablet, tablet);
|
||||||
|
@ -65,7 +57,7 @@ AutoRotationShortcut::AutoRotationShortcut()
|
||||||
|
|
||||||
QDBusReply<bool> rotationEnable = m_statusManagerIface->call(IS_SUPPORTED_AUTOROTATION);
|
QDBusReply<bool> rotationEnable = m_statusManagerIface->call(IS_SUPPORTED_AUTOROTATION);
|
||||||
if (rotationEnable.isValid()) {
|
if (rotationEnable.isValid()) {
|
||||||
if (rotationEnable.value() == false) {
|
if (rotationEnable.value()) {
|
||||||
m_isEnable = false;
|
m_isEnable = false;
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
@ -143,3 +135,19 @@ QMap<PluginMetaType::SystemMode, PluginMetaData> AutoRotationShortcut::pluginMet
|
||||||
{
|
{
|
||||||
return m_metaData;
|
return m_metaData;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// == plugin == //
|
||||||
|
QStringList AutoRotationShortcutPlugin::translations()
|
||||||
|
{
|
||||||
|
return {QStringLiteral("auto-rotation-shortcut")};
|
||||||
|
}
|
||||||
|
|
||||||
|
Shortcut *AutoRotationShortcutPlugin::createShortcut()
|
||||||
|
{
|
||||||
|
return new AutoRotationShortcut;
|
||||||
|
}
|
||||||
|
|
||||||
|
AutoRotationShortcutPlugin::AutoRotationShortcutPlugin(QObject *parent) : UkuiShortcutPlugin(parent)
|
||||||
|
{
|
||||||
|
|
||||||
|
}
|
||||||
|
|
|
@ -23,14 +23,26 @@
|
||||||
#include <QDBusInterface>
|
#include <QDBusInterface>
|
||||||
|
|
||||||
namespace UkuiShortcut {
|
namespace UkuiShortcut {
|
||||||
class AutoRotationShortcut : public Shortcut
|
|
||||||
|
class AutoRotationShortcutPlugin : public UkuiShortcutPlugin
|
||||||
{
|
{
|
||||||
Q_OBJECT
|
Q_OBJECT
|
||||||
Q_PLUGIN_METADATA(IID UKUI_SHORTCUT_PLUGIN_IFACE_IID FILE "auto-rotation-shortcut.json")
|
Q_PLUGIN_METADATA(IID UKUI_SHORTCUT_PLUGIN_IFACE_IID FILE "auto-rotation-shortcut.json")
|
||||||
Q_INTERFACES(UkuiShortcut::UkuiShortcutPlugin)
|
Q_INTERFACES(UkuiShortcut::UkuiShortcutPlugin)
|
||||||
public:
|
public:
|
||||||
AutoRotationShortcut();
|
explicit AutoRotationShortcutPlugin(QObject *parent = nullptr);
|
||||||
~AutoRotationShortcut();
|
|
||||||
|
QString pluginId() override { return QStringLiteral("AutoRotationShortcut"); };
|
||||||
|
QStringList translations() override;
|
||||||
|
Shortcut *createShortcut() override;
|
||||||
|
};
|
||||||
|
|
||||||
|
class AutoRotationShortcut : public Shortcut
|
||||||
|
{
|
||||||
|
Q_OBJECT
|
||||||
|
public:
|
||||||
|
explicit AutoRotationShortcut(QObject *parent = nullptr);
|
||||||
|
~AutoRotationShortcut() override;
|
||||||
|
|
||||||
QString pluginId() override {return QStringLiteral("AutoRotationShortcut");}
|
QString pluginId() override {return QStringLiteral("AutoRotationShortcut");}
|
||||||
QMap<PluginMetaType::SystemMode, PluginMetaData> pluginMetaData() override;
|
QMap<PluginMetaType::SystemMode, PluginMetaData> pluginMetaData() override;
|
||||||
|
|
|
@ -1,5 +1,4 @@
|
||||||
{
|
{
|
||||||
"Type": "UKUI_SHORT_CUT",
|
"Type": "UKUI_SHORT_CUT",
|
||||||
"Version": "1.0.0"
|
"Version": "1.0.1"
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -24,7 +24,7 @@ qt5_create_translation(QM_FILES ${CMAKE_CURRENT_SOURCE_DIR} ${TS_FILES})
|
||||||
# 生成动态链接库[.so]文件
|
# 生成动态链接库[.so]文件
|
||||||
add_library(${PROJECT_NAME} SHARED ${HEADERS} ${SOURCES} ${QM_FILES})
|
add_library(${PROJECT_NAME} SHARED ${HEADERS} ${SOURCES} ${QM_FILES})
|
||||||
|
|
||||||
set(TRANSLATION_FILE_DIR "${SHORTCUT_DATA_INSTALL_DIR}/${PROJECT_NAME}/translations")
|
set(TRANSLATION_FILE_DIR "${SHORTCUT_TRANSLATION_FILE_DIR}")
|
||||||
# 编译宏定义
|
# 编译宏定义
|
||||||
target_compile_definitions(${PROJECT_NAME}
|
target_compile_definitions(${PROJECT_NAME}
|
||||||
PRIVATE TRANSLATION_FILE_DIR="${TRANSLATION_FILE_DIR}"
|
PRIVATE TRANSLATION_FILE_DIR="${TRANSLATION_FILE_DIR}"
|
||||||
|
|
|
@ -30,13 +30,6 @@
|
||||||
using namespace UkuiShortcut;
|
using namespace UkuiShortcut;
|
||||||
BluetoothShortcut::BluetoothShortcut()
|
BluetoothShortcut::BluetoothShortcut()
|
||||||
{
|
{
|
||||||
QTranslator *translator = new QTranslator(this);
|
|
||||||
try {
|
|
||||||
if(!translator->load(QString(TRANSLATION_FILE_DIR) + "/bluetooth-shortcut_" + QLocale::system().name() + ".qm")) throw -1;
|
|
||||||
QApplication::installTranslator(translator);
|
|
||||||
} catch(...) {
|
|
||||||
qWarning() << "BluetoothShortcut load translations file" << QLocale::system().name() << "failed!";
|
|
||||||
}
|
|
||||||
m_statusInfo.setIcon(BLUETOOTH_ACTIVE_SYMBOLIC);
|
m_statusInfo.setIcon(BLUETOOTH_ACTIVE_SYMBOLIC);
|
||||||
m_statusInfo.setColor(Color::Danger);
|
m_statusInfo.setColor(Color::Danger);
|
||||||
m_statusInfo.setName(tr("Bluetooth"));
|
m_statusInfo.setName(tr("Bluetooth"));
|
||||||
|
@ -260,3 +253,18 @@ void BluetoothShortcut::updateState()
|
||||||
}
|
}
|
||||||
Q_EMIT enableStatusChanged(m_isEnable);
|
Q_EMIT enableStatusChanged(m_isEnable);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
BluetoothShortcutPlugin::BluetoothShortcutPlugin(QObject *parent) : UkuiShortcutPlugin(parent)
|
||||||
|
{
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
QStringList BluetoothShortcutPlugin::translations()
|
||||||
|
{
|
||||||
|
return {QStringLiteral("bluetooth-shortcut")};
|
||||||
|
}
|
||||||
|
|
||||||
|
Shortcut *BluetoothShortcutPlugin::createShortcut()
|
||||||
|
{
|
||||||
|
return new BluetoothShortcut;
|
||||||
|
}
|
||||||
|
|
|
@ -24,12 +24,23 @@
|
||||||
#include <QMutex>
|
#include <QMutex>
|
||||||
|
|
||||||
namespace UkuiShortcut {
|
namespace UkuiShortcut {
|
||||||
class BluetoothShortcut: public Shortcut
|
|
||||||
|
class BluetoothShortcutPlugin : public UkuiShortcutPlugin
|
||||||
{
|
{
|
||||||
Q_OBJECT
|
Q_OBJECT
|
||||||
Q_PLUGIN_METADATA(IID UKUI_SHORTCUT_PLUGIN_IFACE_IID FILE "bluetooth-shortcut.json")
|
Q_PLUGIN_METADATA(IID UKUI_SHORTCUT_PLUGIN_IFACE_IID FILE "bluetooth-shortcut.json")
|
||||||
Q_INTERFACES(UkuiShortcut::UkuiShortcutPlugin)
|
Q_INTERFACES(UkuiShortcut::UkuiShortcutPlugin)
|
||||||
|
public:
|
||||||
|
explicit BluetoothShortcutPlugin(QObject *parent = nullptr);
|
||||||
|
|
||||||
|
QString pluginId() override { return QStringLiteral("BluetoothShortcut"); };
|
||||||
|
QStringList translations() override;
|
||||||
|
Shortcut *createShortcut() override;
|
||||||
|
};
|
||||||
|
|
||||||
|
class BluetoothShortcut: public Shortcut
|
||||||
|
{
|
||||||
|
Q_OBJECT
|
||||||
public:
|
public:
|
||||||
BluetoothShortcut();
|
BluetoothShortcut();
|
||||||
|
|
||||||
|
|
|
@ -1,5 +1,4 @@
|
||||||
{
|
{
|
||||||
"Type": "UKUI_SHORT_CUT",
|
"Type": "UKUI_SHORT_CUT",
|
||||||
"Version": "1.0.0"
|
"Version": "1.0.1"
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -24,7 +24,7 @@ qt5_create_translation(QM_FILES ${CMAKE_CURRENT_SOURCE_DIR} ${TS_FILES})
|
||||||
# 生成动态链接库[.so]文件
|
# 生成动态链接库[.so]文件
|
||||||
add_library(${PROJECT_NAME} SHARED ${HEADERS} ${SOURCES} ${QM_FILES})
|
add_library(${PROJECT_NAME} SHARED ${HEADERS} ${SOURCES} ${QM_FILES})
|
||||||
|
|
||||||
set(TRANSLATION_FILE_DIR "${SHORTCUT_DATA_INSTALL_DIR}/${PROJECT_NAME}/translations")
|
set(TRANSLATION_FILE_DIR "${SHORTCUT_TRANSLATION_FILE_DIR}")
|
||||||
# 编译宏定义
|
# 编译宏定义
|
||||||
target_compile_definitions(${PROJECT_NAME}
|
target_compile_definitions(${PROJECT_NAME}
|
||||||
PRIVATE TRANSLATION_FILE_DIR="${TRANSLATION_FILE_DIR}"
|
PRIVATE TRANSLATION_FILE_DIR="${TRANSLATION_FILE_DIR}"
|
||||||
|
|
|
@ -31,14 +31,6 @@ BrightnessShortcut::BrightnessShortcut(QObject *parent) : Shortcut(parent)
|
||||||
{
|
{
|
||||||
initMetaData();
|
initMetaData();
|
||||||
init();
|
init();
|
||||||
|
|
||||||
QTranslator *translator = new QTranslator(this);
|
|
||||||
try {
|
|
||||||
if(!translator->load(QString(TRANSLATION_FILE_DIR) + "/brightness-shortcut_" + QLocale::system().name() + ".qm")) throw -1;
|
|
||||||
QApplication::installTranslator(translator);
|
|
||||||
} catch(...) {
|
|
||||||
qWarning() << "BrightnessShortcut load translations file" << QLocale::system().name() << "failed!";
|
|
||||||
}
|
|
||||||
m_currentStatusInfo.setToolTip(tr("Brightness"));
|
m_currentStatusInfo.setToolTip(tr("Brightness"));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -156,3 +148,18 @@ void BrightnessShortcut::onEnableChanged(bool enable)
|
||||||
|
|
||||||
Q_EMIT enableStatusChanged(m_isEnable);
|
Q_EMIT enableStatusChanged(m_isEnable);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
BrightnessShortcutPlugin::BrightnessShortcutPlugin(QObject *parent) : UkuiShortcutPlugin(parent)
|
||||||
|
{
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
QStringList BrightnessShortcutPlugin::translations()
|
||||||
|
{
|
||||||
|
return {QStringLiteral("brightness-shortcut")};
|
||||||
|
}
|
||||||
|
|
||||||
|
Shortcut *BrightnessShortcutPlugin::createShortcut()
|
||||||
|
{
|
||||||
|
return new BrightnessShortcut;
|
||||||
|
}
|
||||||
|
|
|
@ -25,11 +25,22 @@ class QDBusInterface;
|
||||||
|
|
||||||
namespace UkuiShortcut {
|
namespace UkuiShortcut {
|
||||||
|
|
||||||
class BrightnessShortcut : public Shortcut
|
class BrightnessShortcutPlugin : public UkuiShortcutPlugin
|
||||||
{
|
{
|
||||||
Q_OBJECT
|
Q_OBJECT
|
||||||
Q_PLUGIN_METADATA(IID UKUI_SHORTCUT_PLUGIN_IFACE_IID FILE "brightness-shortcut.json")
|
Q_PLUGIN_METADATA(IID UKUI_SHORTCUT_PLUGIN_IFACE_IID FILE "brightness-shortcut.json")
|
||||||
Q_INTERFACES(UkuiShortcut::UkuiShortcutPlugin)
|
Q_INTERFACES(UkuiShortcut::UkuiShortcutPlugin)
|
||||||
|
public:
|
||||||
|
explicit BrightnessShortcutPlugin(QObject *parent = nullptr);
|
||||||
|
|
||||||
|
QString pluginId() override { return QStringLiteral("BrightnessShortcut"); };
|
||||||
|
QStringList translations() override;
|
||||||
|
Shortcut *createShortcut() override;
|
||||||
|
};
|
||||||
|
|
||||||
|
class BrightnessShortcut : public Shortcut
|
||||||
|
{
|
||||||
|
Q_OBJECT
|
||||||
public:
|
public:
|
||||||
explicit BrightnessShortcut(QObject *parent = nullptr);
|
explicit BrightnessShortcut(QObject *parent = nullptr);
|
||||||
~BrightnessShortcut() override;
|
~BrightnessShortcut() override;
|
||||||
|
|
|
@ -1,5 +1,4 @@
|
||||||
{
|
{
|
||||||
"Type": "UKUI_SHORT_CUT",
|
"Type": "UKUI_SHORT_CUT",
|
||||||
"Version": "1.0.0"
|
"Version": "1.0.1"
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -38,7 +38,7 @@ qt5_create_translation(QM_FILES ${CMAKE_CURRENT_SOURCE_DIR} ${TS_FILES})
|
||||||
# 生成动态链接库[.so]文件
|
# 生成动态链接库[.so]文件
|
||||||
add_library(${PROJECT_NAME} SHARED ${HEADERS} ${SOURCES} ${QM_FILES})
|
add_library(${PROJECT_NAME} SHARED ${HEADERS} ${SOURCES} ${QM_FILES})
|
||||||
|
|
||||||
set(TRANSLATION_FILE_DIR "${SHORTCUT_DATA_INSTALL_DIR}/${PROJECT_NAME}/translations")
|
set(TRANSLATION_FILE_DIR "${SHORTCUT_TRANSLATION_FILE_DIR}")
|
||||||
# 编译宏定义
|
# 编译宏定义
|
||||||
target_compile_definitions(${PROJECT_NAME}
|
target_compile_definitions(${PROJECT_NAME}
|
||||||
PRIVATE TRANSLATION_FILE_DIR="${TRANSLATION_FILE_DIR}"
|
PRIVATE TRANSLATION_FILE_DIR="${TRANSLATION_FILE_DIR}"
|
||||||
|
|
|
@ -47,14 +47,6 @@ FlightModeShortcut::FlightModeShortcut()
|
||||||
m_isEnable = false;
|
m_isEnable = false;
|
||||||
}
|
}
|
||||||
|
|
||||||
QTranslator *translator = new QTranslator(this);
|
|
||||||
try {
|
|
||||||
if(!translator->load(QString(TRANSLATION_FILE_DIR) + "/flight-mode-shortcut_" + QLocale::system().name() + ".qm")) throw -1;
|
|
||||||
QApplication::installTranslator(translator);
|
|
||||||
} catch(...) {
|
|
||||||
qWarning() << "FlightModeShortcut load translations file" << QLocale::system().name() << "failed!";
|
|
||||||
}
|
|
||||||
|
|
||||||
connect(m_gsettings, &QGSettings::changed, this, [ & ](const QString & key) {
|
connect(m_gsettings, &QGSettings::changed, this, [ & ](const QString & key) {
|
||||||
if(key == RFKILL_STATE) {
|
if(key == RFKILL_STATE) {
|
||||||
int state = m_gsettings->get(RFKILL_STATE).toInt();
|
int state = m_gsettings->get(RFKILL_STATE).toInt();
|
||||||
|
@ -129,3 +121,18 @@ void FlightModeShortcut::initMetaData()
|
||||||
m_metaData.insert(PluginMetaType::SystemMode::PC, pc);
|
m_metaData.insert(PluginMetaType::SystemMode::PC, pc);
|
||||||
m_metaData.insert(PluginMetaType::SystemMode::Tablet, tablet);
|
m_metaData.insert(PluginMetaType::SystemMode::Tablet, tablet);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
FlightModeShortcutPlugin::FlightModeShortcutPlugin(QObject *parent) : UkuiShortcutPlugin(parent)
|
||||||
|
{
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
QStringList FlightModeShortcutPlugin::translations()
|
||||||
|
{
|
||||||
|
return {QStringLiteral("flight-mode-shortcut")};
|
||||||
|
}
|
||||||
|
|
||||||
|
Shortcut *FlightModeShortcutPlugin::createShortcut()
|
||||||
|
{
|
||||||
|
return new FlightModeShortcut;
|
||||||
|
}
|
||||||
|
|
|
@ -22,11 +22,23 @@
|
||||||
#include <QGSettings>
|
#include <QGSettings>
|
||||||
|
|
||||||
namespace UkuiShortcut {
|
namespace UkuiShortcut {
|
||||||
class FlightModeShortcut : public Shortcut
|
|
||||||
|
class FlightModeShortcutPlugin : public UkuiShortcutPlugin
|
||||||
{
|
{
|
||||||
Q_OBJECT
|
Q_OBJECT
|
||||||
Q_PLUGIN_METADATA(IID UKUI_SHORTCUT_PLUGIN_IFACE_IID FILE "flight-mode-shortcut.json")
|
Q_PLUGIN_METADATA(IID UKUI_SHORTCUT_PLUGIN_IFACE_IID FILE "flight-mode-shortcut.json")
|
||||||
Q_INTERFACES(UkuiShortcut::UkuiShortcutPlugin)
|
Q_INTERFACES(UkuiShortcut::UkuiShortcutPlugin)
|
||||||
|
public:
|
||||||
|
explicit FlightModeShortcutPlugin(QObject *parent = nullptr);
|
||||||
|
|
||||||
|
QString pluginId() override { return QStringLiteral("FlightModeShortcut"); };
|
||||||
|
QStringList translations() override;
|
||||||
|
Shortcut *createShortcut() override;
|
||||||
|
};
|
||||||
|
|
||||||
|
class FlightModeShortcut : public Shortcut
|
||||||
|
{
|
||||||
|
Q_OBJECT
|
||||||
public:
|
public:
|
||||||
FlightModeShortcut();
|
FlightModeShortcut();
|
||||||
|
|
||||||
|
|
|
@ -1,5 +1,4 @@
|
||||||
{
|
{
|
||||||
"Type": "UKUI_SHORT_CUT",
|
"Type": "UKUI_SHORT_CUT",
|
||||||
"Version": "1.0.0"
|
"Version": "1.0.1"
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -24,7 +24,7 @@ qt5_create_translation(QM_FILES ${CMAKE_CURRENT_SOURCE_DIR} ${TS_FILES})
|
||||||
# 生成动态链接库[.so]文件
|
# 生成动态链接库[.so]文件
|
||||||
add_library(${PROJECT_NAME} SHARED ${HEADERS} ${SOURCES} ${QM_FILES})
|
add_library(${PROJECT_NAME} SHARED ${HEADERS} ${SOURCES} ${QM_FILES})
|
||||||
|
|
||||||
set(TRANSLATION_FILE_DIR "${SHORTCUT_DATA_INSTALL_DIR}/${PROJECT_NAME}/translations")
|
set(TRANSLATION_FILE_DIR "${SHORTCUT_TRANSLATION_FILE_DIR}")
|
||||||
# 编译宏定义
|
# 编译宏定义
|
||||||
target_compile_definitions(${PROJECT_NAME}
|
target_compile_definitions(${PROJECT_NAME}
|
||||||
PRIVATE TRANSLATION_FILE_DIR="${TRANSLATION_FILE_DIR}"
|
PRIVATE TRANSLATION_FILE_DIR="${TRANSLATION_FILE_DIR}"
|
||||||
|
|
|
@ -26,14 +26,6 @@
|
||||||
using namespace UkuiShortcut;
|
using namespace UkuiShortcut;
|
||||||
MultiScreenShortcut::MultiScreenShortcut()
|
MultiScreenShortcut::MultiScreenShortcut()
|
||||||
{
|
{
|
||||||
QTranslator *translator = new QTranslator(this);
|
|
||||||
try {
|
|
||||||
if(!translator->load(QString(TRANSLATION_FILE_DIR) + "/multi-screen-shortcut_" + QLocale::system().name() + ".qm")) throw -1;
|
|
||||||
QApplication::installTranslator(translator);
|
|
||||||
} catch(...) {
|
|
||||||
qWarning() << "MultiScreenShortcut load translations file" << QLocale::system().name() << "failed!";
|
|
||||||
}
|
|
||||||
|
|
||||||
m_statusInfo.setName(tr("Multi-Screen"));
|
m_statusInfo.setName(tr("Multi-Screen"));
|
||||||
m_statusInfo.setToolTip(tr("Multi-Screen"));
|
m_statusInfo.setToolTip(tr("Multi-Screen"));
|
||||||
m_statusInfo.setIcon(PROJECTION_ICON);
|
m_statusInfo.setIcon(PROJECTION_ICON);
|
||||||
|
@ -68,3 +60,18 @@ void MultiScreenShortcut::initMetaData()
|
||||||
m_metaData.insert(PluginMetaType::SystemMode::PC, pc);
|
m_metaData.insert(PluginMetaType::SystemMode::PC, pc);
|
||||||
m_metaData.insert(PluginMetaType::SystemMode::Tablet, tablet);
|
m_metaData.insert(PluginMetaType::SystemMode::Tablet, tablet);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
MultiScreenShortcutPlugin::MultiScreenShortcutPlugin(QObject *parent) : UkuiShortcutPlugin(parent)
|
||||||
|
{
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
QStringList MultiScreenShortcutPlugin::translations()
|
||||||
|
{
|
||||||
|
return {QStringLiteral("multi-screen-shortcut")};
|
||||||
|
}
|
||||||
|
|
||||||
|
Shortcut *MultiScreenShortcutPlugin::createShortcut()
|
||||||
|
{
|
||||||
|
return new MultiScreenShortcut;
|
||||||
|
}
|
||||||
|
|
|
@ -21,11 +21,23 @@
|
||||||
#include "ukui-shortcut-plugin.h"
|
#include "ukui-shortcut-plugin.h"
|
||||||
|
|
||||||
namespace UkuiShortcut {
|
namespace UkuiShortcut {
|
||||||
class MultiScreenShortcut : public Shortcut
|
|
||||||
|
class MultiScreenShortcutPlugin : public UkuiShortcutPlugin
|
||||||
{
|
{
|
||||||
Q_OBJECT
|
Q_OBJECT
|
||||||
Q_PLUGIN_METADATA(IID UKUI_SHORTCUT_PLUGIN_IFACE_IID FILE "multi-screen-shortcut.json")
|
Q_PLUGIN_METADATA(IID UKUI_SHORTCUT_PLUGIN_IFACE_IID FILE "multi-screen-shortcut.json")
|
||||||
Q_INTERFACES(UkuiShortcut::UkuiShortcutPlugin)
|
Q_INTERFACES(UkuiShortcut::UkuiShortcutPlugin)
|
||||||
|
public:
|
||||||
|
explicit MultiScreenShortcutPlugin(QObject *parent = nullptr);
|
||||||
|
|
||||||
|
QString pluginId() override { return QStringLiteral("MultiScreenShortcut"); };
|
||||||
|
QStringList translations() override;
|
||||||
|
Shortcut *createShortcut() override;
|
||||||
|
};
|
||||||
|
|
||||||
|
class MultiScreenShortcut : public Shortcut
|
||||||
|
{
|
||||||
|
Q_OBJECT
|
||||||
public:
|
public:
|
||||||
MultiScreenShortcut();
|
MultiScreenShortcut();
|
||||||
|
|
||||||
|
|
|
@ -1,5 +1,4 @@
|
||||||
{
|
{
|
||||||
"Type": "UKUI_SHORT_CUT",
|
"Type": "UKUI_SHORT_CUT",
|
||||||
"Version": "1.0.0"
|
"Version": "1.0.1"
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -38,7 +38,7 @@ qt5_create_translation(QM_FILES ${CMAKE_CURRENT_SOURCE_DIR} ${TS_FILES})
|
||||||
# 生成动态链接库[.so]文件
|
# 生成动态链接库[.so]文件
|
||||||
add_library(${PROJECT_NAME} SHARED ${HEADERS} ${SOURCES} ${QM_FILES})
|
add_library(${PROJECT_NAME} SHARED ${HEADERS} ${SOURCES} ${QM_FILES})
|
||||||
|
|
||||||
set(TRANSLATION_FILE_DIR "${SHORTCUT_DATA_INSTALL_DIR}/${PROJECT_NAME}/translations")
|
set(TRANSLATION_FILE_DIR "${SHORTCUT_TRANSLATION_FILE_DIR}")
|
||||||
# 编译宏定义
|
# 编译宏定义
|
||||||
target_compile_definitions(${PROJECT_NAME}
|
target_compile_definitions(${PROJECT_NAME}
|
||||||
PRIVATE TRANSLATION_FILE_DIR="${TRANSLATION_FILE_DIR}"
|
PRIVATE TRANSLATION_FILE_DIR="${TRANSLATION_FILE_DIR}"
|
||||||
|
|
|
@ -31,14 +31,6 @@ using namespace UkuiShortcut;
|
||||||
|
|
||||||
UkuiShortcut::NightModeShortcut::NightModeShortcut(QObject *parent) : Shortcut(parent)
|
UkuiShortcut::NightModeShortcut::NightModeShortcut(QObject *parent) : Shortcut(parent)
|
||||||
{
|
{
|
||||||
QTranslator *translator = new QTranslator(this);
|
|
||||||
try {
|
|
||||||
if(!translator->load(QString(TRANSLATION_FILE_DIR) + "/night-mode-shortcut_" + QLocale::system().name() + ".qm")) throw -1;
|
|
||||||
QApplication::installTranslator(translator);
|
|
||||||
} catch(...) {
|
|
||||||
qWarning() << "NightModeShortcut load translations file" << QLocale::system().name() << "failed!";
|
|
||||||
}
|
|
||||||
|
|
||||||
m_currentStatus.setName(tr("Night mode"));
|
m_currentStatus.setName(tr("Night mode"));
|
||||||
m_currentStatus.setIcon(UKUI_NIGHTMODE_SYMBOLIC);
|
m_currentStatus.setIcon(UKUI_NIGHTMODE_SYMBOLIC);
|
||||||
m_currentStatus.setToolTip("Night Mode");
|
m_currentStatus.setToolTip("Night Mode");
|
||||||
|
@ -127,3 +119,18 @@ void NightModeShortcut::initMetaData()
|
||||||
m_metaData.insert(PluginMetaType::SystemMode::PC, pc);
|
m_metaData.insert(PluginMetaType::SystemMode::PC, pc);
|
||||||
m_metaData.insert(PluginMetaType::SystemMode::Tablet, tablet);
|
m_metaData.insert(PluginMetaType::SystemMode::Tablet, tablet);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
NightModeShortcutPlugin::NightModeShortcutPlugin(QObject *parent) : UkuiShortcutPlugin(parent)
|
||||||
|
{
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
QStringList NightModeShortcutPlugin::translations()
|
||||||
|
{
|
||||||
|
return {QStringLiteral("night-mode-shortcut")};
|
||||||
|
}
|
||||||
|
|
||||||
|
Shortcut *NightModeShortcutPlugin::createShortcut()
|
||||||
|
{
|
||||||
|
return new NightModeShortcut;
|
||||||
|
}
|
||||||
|
|
|
@ -25,17 +25,27 @@
|
||||||
|
|
||||||
namespace UkuiShortcut {
|
namespace UkuiShortcut {
|
||||||
|
|
||||||
class NightModeShortcut : public Shortcut
|
class NightModeShortcutPlugin : public UkuiShortcutPlugin
|
||||||
{
|
{
|
||||||
Q_OBJECT
|
Q_OBJECT
|
||||||
Q_PLUGIN_METADATA(IID UKUI_SHORTCUT_PLUGIN_IFACE_IID FILE "night-mode-shortcut.json")
|
Q_PLUGIN_METADATA(IID UKUI_SHORTCUT_PLUGIN_IFACE_IID FILE "night-mode-shortcut.json")
|
||||||
Q_INTERFACES(UkuiShortcut::UkuiShortcutPlugin)
|
Q_INTERFACES(UkuiShortcut::UkuiShortcutPlugin)
|
||||||
|
public:
|
||||||
|
explicit NightModeShortcutPlugin(QObject *parent = nullptr);
|
||||||
|
|
||||||
|
QString pluginId() override { return QStringLiteral("NightModeShortcut"); };
|
||||||
|
QStringList translations() override;
|
||||||
|
Shortcut *createShortcut() override;
|
||||||
|
};
|
||||||
|
|
||||||
|
class NightModeShortcut : public Shortcut
|
||||||
|
{
|
||||||
|
Q_OBJECT
|
||||||
public:
|
public:
|
||||||
explicit NightModeShortcut(QObject *parent = nullptr);
|
explicit NightModeShortcut(QObject *parent = nullptr);
|
||||||
~NightModeShortcut() override;
|
~NightModeShortcut() override;
|
||||||
|
|
||||||
QString pluginId() override {return QStringLiteral("FlightModeShortcut");}
|
QString pluginId() override {return QStringLiteral("NightModeShortcut");}
|
||||||
QMap<PluginMetaType::SystemMode, PluginMetaData> pluginMetaData() override;
|
QMap<PluginMetaType::SystemMode, PluginMetaData> pluginMetaData() override;
|
||||||
void active(PluginMetaType::Action action) override;
|
void active(PluginMetaType::Action action) override;
|
||||||
const StatusInfo currentStatus() override;
|
const StatusInfo currentStatus() override;
|
||||||
|
|
|
@ -1,5 +1,4 @@
|
||||||
{
|
{
|
||||||
"Type": "UKUI_SHORT_CUT",
|
"Type": "UKUI_SHORT_CUT",
|
||||||
"Version": "1.0.0"
|
"Version": "1.0.1"
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -24,7 +24,7 @@ qt5_create_translation(QM_FILES ${CMAKE_CURRENT_SOURCE_DIR} ${TS_FILES})
|
||||||
# 生成动态链接库[.so]文件
|
# 生成动态链接库[.so]文件
|
||||||
add_library(${PROJECT_NAME} SHARED ${HEADERS} ${SOURCES} ${QM_FILES})
|
add_library(${PROJECT_NAME} SHARED ${HEADERS} ${SOURCES} ${QM_FILES})
|
||||||
|
|
||||||
set(TRANSLATION_FILE_DIR "${SHORTCUT_DATA_INSTALL_DIR}/${PROJECT_NAME}/translations")
|
set(TRANSLATION_FILE_DIR "${SHORTCUT_TRANSLATION_FILE_DIR}")
|
||||||
# 编译宏定义
|
# 编译宏定义
|
||||||
target_compile_definitions(${PROJECT_NAME}
|
target_compile_definitions(${PROJECT_NAME}
|
||||||
PRIVATE TRANSLATION_FILE_DIR="${TRANSLATION_FILE_DIR}"
|
PRIVATE TRANSLATION_FILE_DIR="${TRANSLATION_FILE_DIR}"
|
||||||
|
|
|
@ -62,19 +62,9 @@ PowerModeShortcut::PowerModeShortcut()
|
||||||
}
|
}
|
||||||
|
|
||||||
m_isEnable = true;
|
m_isEnable = true;
|
||||||
|
|
||||||
QTranslator *translator = new QTranslator(this);
|
|
||||||
try {
|
|
||||||
if(!translator->load(QString(TRANSLATION_FILE_DIR) + "/power-mode-shortcut_" + QLocale::system().name() + ".qm")) throw -1;
|
|
||||||
QApplication::installTranslator(translator);
|
|
||||||
} catch(...) {
|
|
||||||
qWarning() << "PowerModeShortcut load translations file" << QLocale::system().name() << "failed!";
|
|
||||||
}
|
|
||||||
|
|
||||||
m_currentStatus.setName(tr("Power-Saving Mode"));
|
m_currentStatus.setName(tr("Power-Saving Mode"));
|
||||||
m_currentStatus.setIcon("ukui-eco-symbolic");
|
m_currentStatus.setIcon("ukui-eco-symbolic");
|
||||||
m_currentStatus.setToolTip(tr("Power-Saving Mode"));
|
m_currentStatus.setToolTip(tr("Power-Saving Mode"));
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
PowerModeShortcut::~PowerModeShortcut()
|
PowerModeShortcut::~PowerModeShortcut()
|
||||||
|
@ -141,3 +131,18 @@ void PowerModeShortcut::initMetaData()
|
||||||
m_metaData.insert(PluginMetaType::SystemMode::PC, pc);
|
m_metaData.insert(PluginMetaType::SystemMode::PC, pc);
|
||||||
m_metaData.insert(PluginMetaType::SystemMode::Tablet, tablet);
|
m_metaData.insert(PluginMetaType::SystemMode::Tablet, tablet);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
PowerModeShortcutPlugin::PowerModeShortcutPlugin(QObject *parent) : UkuiShortcutPlugin(parent)
|
||||||
|
{
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
QStringList PowerModeShortcutPlugin::translations()
|
||||||
|
{
|
||||||
|
return {QStringLiteral("power-mode-shortcut")};
|
||||||
|
}
|
||||||
|
|
||||||
|
Shortcut *PowerModeShortcutPlugin::createShortcut()
|
||||||
|
{
|
||||||
|
return new PowerModeShortcut;
|
||||||
|
}
|
||||||
|
|
|
@ -23,12 +23,23 @@
|
||||||
#include "ukui-shortcut-plugin.h"
|
#include "ukui-shortcut-plugin.h"
|
||||||
|
|
||||||
namespace UkuiShortcut {
|
namespace UkuiShortcut {
|
||||||
class PowerModeShortcut : public Shortcut
|
|
||||||
|
class PowerModeShortcutPlugin : public UkuiShortcutPlugin
|
||||||
{
|
{
|
||||||
Q_OBJECT
|
Q_OBJECT
|
||||||
Q_PLUGIN_METADATA(IID UKUI_SHORTCUT_PLUGIN_IFACE_IID FILE "power-mode-shortcut.json")
|
Q_PLUGIN_METADATA(IID UKUI_SHORTCUT_PLUGIN_IFACE_IID FILE "power-mode-shortcut.json")
|
||||||
Q_INTERFACES(UkuiShortcut::UkuiShortcutPlugin)
|
Q_INTERFACES(UkuiShortcut::UkuiShortcutPlugin)
|
||||||
|
public:
|
||||||
|
explicit PowerModeShortcutPlugin(QObject *parent = nullptr);
|
||||||
|
|
||||||
|
QString pluginId() override { return QStringLiteral("PowerModeShortcut"); };
|
||||||
|
QStringList translations() override;
|
||||||
|
Shortcut *createShortcut() override;
|
||||||
|
};
|
||||||
|
|
||||||
|
class PowerModeShortcut : public Shortcut
|
||||||
|
{
|
||||||
|
Q_OBJECT
|
||||||
public:
|
public:
|
||||||
PowerModeShortcut();
|
PowerModeShortcut();
|
||||||
~PowerModeShortcut() override;
|
~PowerModeShortcut() override;
|
||||||
|
|
|
@ -1,5 +1,4 @@
|
||||||
{
|
{
|
||||||
"Type": "UKUI_SHORT_CUT",
|
"Type": "UKUI_SHORT_CUT",
|
||||||
"Version": "1.0.0"
|
"Version": "1.0.1"
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -24,7 +24,7 @@ qt5_create_translation(QM_FILES ${CMAKE_CURRENT_SOURCE_DIR} ${TS_FILES})
|
||||||
# 生成动态链接库[.so]文件
|
# 生成动态链接库[.so]文件
|
||||||
add_library(${PROJECT_NAME} SHARED ${HEADERS} ${SOURCES} ${QM_FILES})
|
add_library(${PROJECT_NAME} SHARED ${HEADERS} ${SOURCES} ${QM_FILES})
|
||||||
|
|
||||||
set(TRANSLATION_FILE_DIR "${SHORTCUT_DATA_INSTALL_DIR}/${PROJECT_NAME}/translations")
|
set(TRANSLATION_FILE_DIR "${SHORTCUT_TRANSLATION_FILE_DIR}")
|
||||||
# 编译宏定义
|
# 编译宏定义
|
||||||
target_compile_definitions(${PROJECT_NAME}
|
target_compile_definitions(${PROJECT_NAME}
|
||||||
PRIVATE TRANSLATION_FILE_DIR="${TRANSLATION_FILE_DIR}"
|
PRIVATE TRANSLATION_FILE_DIR="${TRANSLATION_FILE_DIR}"
|
||||||
|
|
|
@ -29,14 +29,6 @@ using namespace UkuiShortcut;
|
||||||
|
|
||||||
UkuiShortcut::ScreenShotShortcut::ScreenShotShortcut(QObject *parent) : Shortcut(parent)
|
UkuiShortcut::ScreenShotShortcut::ScreenShotShortcut(QObject *parent) : Shortcut(parent)
|
||||||
{
|
{
|
||||||
QTranslator *translator = new QTranslator(this);
|
|
||||||
try {
|
|
||||||
if(!translator->load(QString(TRANSLATION_FILE_DIR) + "/screenshot-shortcut_" + QLocale::system().name() + ".qm")) throw -1;
|
|
||||||
QApplication::installTranslator(translator);
|
|
||||||
} catch(...) {
|
|
||||||
qWarning() << "ScreenShotShortcut load translations file" << QLocale::system().name() << "failed!";
|
|
||||||
}
|
|
||||||
|
|
||||||
m_currentStatus.setName(tr("Screen Shot"));
|
m_currentStatus.setName(tr("Screen Shot"));
|
||||||
m_currentStatus.setIcon(UKUI_SCREENSHOT_SYMBOLIC);
|
m_currentStatus.setIcon(UKUI_SCREENSHOT_SYMBOLIC);
|
||||||
m_currentStatus.setToolTip(tr("Screen Shot"));
|
m_currentStatus.setToolTip(tr("Screen Shot"));
|
||||||
|
@ -129,3 +121,18 @@ void ScreenShotShortcut::initMetaData()
|
||||||
m_metaData.insert(PluginMetaType::SystemMode::PC, pc);
|
m_metaData.insert(PluginMetaType::SystemMode::PC, pc);
|
||||||
m_metaData.insert(PluginMetaType::SystemMode::Tablet, tablet);
|
m_metaData.insert(PluginMetaType::SystemMode::Tablet, tablet);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
ScreenShotShortcutPlugin::ScreenShotShortcutPlugin(QObject *parent) : UkuiShortcutPlugin(parent)
|
||||||
|
{
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
QStringList ScreenShotShortcutPlugin::translations()
|
||||||
|
{
|
||||||
|
return {QStringLiteral("screenshot-shortcut")};
|
||||||
|
}
|
||||||
|
|
||||||
|
Shortcut *ScreenShotShortcutPlugin::createShortcut()
|
||||||
|
{
|
||||||
|
return new ScreenShotShortcut;
|
||||||
|
}
|
||||||
|
|
|
@ -28,12 +28,22 @@
|
||||||
#include <QtDBus/QDBusInterface>
|
#include <QtDBus/QDBusInterface>
|
||||||
namespace UkuiShortcut {
|
namespace UkuiShortcut {
|
||||||
|
|
||||||
class ScreenShotShortcut : public Shortcut
|
class ScreenShotShortcutPlugin : public UkuiShortcutPlugin
|
||||||
{
|
{
|
||||||
Q_OBJECT
|
Q_OBJECT
|
||||||
Q_PLUGIN_METADATA(IID UKUI_SHORTCUT_PLUGIN_IFACE_IID FILE "screenshot-shortcut.json")
|
Q_PLUGIN_METADATA(IID UKUI_SHORTCUT_PLUGIN_IFACE_IID FILE "screenshot-shortcut.json")
|
||||||
Q_INTERFACES(UkuiShortcut::UkuiShortcutPlugin)
|
Q_INTERFACES(UkuiShortcut::UkuiShortcutPlugin)
|
||||||
|
public:
|
||||||
|
explicit ScreenShotShortcutPlugin(QObject *parent = nullptr);
|
||||||
|
|
||||||
|
QString pluginId() override { return QStringLiteral("ScreenShot"); };
|
||||||
|
QStringList translations() override;
|
||||||
|
Shortcut *createShortcut() override;
|
||||||
|
};
|
||||||
|
|
||||||
|
class ScreenShotShortcut : public Shortcut
|
||||||
|
{
|
||||||
|
Q_OBJECT
|
||||||
public:
|
public:
|
||||||
explicit ScreenShotShortcut(QObject *parent = nullptr);
|
explicit ScreenShotShortcut(QObject *parent = nullptr);
|
||||||
~ScreenShotShortcut() override;
|
~ScreenShotShortcut() override;
|
||||||
|
|
|
@ -1,5 +1,4 @@
|
||||||
{
|
{
|
||||||
"Type": "UKUI_SHORT_CUT",
|
"Type": "UKUI_SHORT_CUT",
|
||||||
"Version": "1.0.0"
|
"Version": "1.0.1"
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -36,7 +36,7 @@ qt5_create_translation(QM_FILES ${CMAKE_CURRENT_SOURCE_DIR} ${TS_FILES})
|
||||||
# 生成动态链接库[.so]文件
|
# 生成动态链接库[.so]文件
|
||||||
add_library(${PROJECT_NAME} SHARED ${HEADERS} ${SOURCES} ${QM_FILES})
|
add_library(${PROJECT_NAME} SHARED ${HEADERS} ${SOURCES} ${QM_FILES})
|
||||||
|
|
||||||
set(TRANSLATION_FILE_DIR "${SHORTCUT_DATA_INSTALL_DIR}/${PROJECT_NAME}/translations")
|
set(TRANSLATION_FILE_DIR "${SHORTCUT_TRANSLATION_FILE_DIR}")
|
||||||
# 编译宏定义
|
# 编译宏定义
|
||||||
target_compile_definitions(${PROJECT_NAME}
|
target_compile_definitions(${PROJECT_NAME}
|
||||||
PRIVATE TRANSLATION_FILE_DIR="${TRANSLATION_FILE_DIR}"
|
PRIVATE TRANSLATION_FILE_DIR="${TRANSLATION_FILE_DIR}"
|
||||||
|
|
|
@ -30,15 +30,6 @@ using namespace UkuiShortcut;
|
||||||
|
|
||||||
UkuiShortcut::SoftFreezeShortcut::SoftFreezeShortcut(QObject *parent) : Shortcut(parent)
|
UkuiShortcut::SoftFreezeShortcut::SoftFreezeShortcut(QObject *parent) : Shortcut(parent)
|
||||||
{
|
{
|
||||||
QTranslator *translator = new QTranslator(this);
|
|
||||||
try {
|
|
||||||
qWarning() << translator->load(QString(TRANSLATION_FILE_DIR) + "/soft-freeze-shortcut_" + QLocale::system().name() + ".qm");
|
|
||||||
if(!translator->load(QString(TRANSLATION_FILE_DIR) + "/soft-freeze-shortcut_" + QLocale::system().name() + ".qm")) throw -1;
|
|
||||||
QCoreApplication::installTranslator(translator);
|
|
||||||
} catch(...) {
|
|
||||||
qWarning() << "SoftFreezeShortcut load translations file" << QLocale::system().name() << "failed!";
|
|
||||||
}
|
|
||||||
|
|
||||||
initMetaData();
|
initMetaData();
|
||||||
|
|
||||||
QString iconName = QIcon::fromTheme(UKUI_SOFTFREEZE_SYMBOLIC).isNull() ? "://icon/ukui-soft-freeze-symbolic.svg" : UKUI_SOFTFREEZE_SYMBOLIC;
|
QString iconName = QIcon::fromTheme(UKUI_SOFTFREEZE_SYMBOLIC).isNull() ? "://icon/ukui-soft-freeze-symbolic.svg" : UKUI_SOFTFREEZE_SYMBOLIC;
|
||||||
|
@ -127,3 +118,18 @@ void SoftFreezeShortcut::freezeStateChanged(bool state)
|
||||||
m_state = state;
|
m_state = state;
|
||||||
Q_EMIT statusChanged(m_currentStatus);
|
Q_EMIT statusChanged(m_currentStatus);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
SoftFreezeShortcutPlugin::SoftFreezeShortcutPlugin(QObject *parent) : UkuiShortcutPlugin(parent)
|
||||||
|
{
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
QStringList SoftFreezeShortcutPlugin::translations()
|
||||||
|
{
|
||||||
|
return {QStringLiteral("soft-freeze-shortcut")};
|
||||||
|
}
|
||||||
|
|
||||||
|
Shortcut *SoftFreezeShortcutPlugin::createShortcut()
|
||||||
|
{
|
||||||
|
return new SoftFreezeShortcut;
|
||||||
|
}
|
||||||
|
|
|
@ -24,12 +24,22 @@
|
||||||
#include <QGSettings>
|
#include <QGSettings>
|
||||||
namespace UkuiShortcut {
|
namespace UkuiShortcut {
|
||||||
|
|
||||||
class SoftFreezeShortcut : public Shortcut
|
class SoftFreezeShortcutPlugin : public UkuiShortcutPlugin
|
||||||
{
|
{
|
||||||
Q_OBJECT
|
Q_OBJECT
|
||||||
Q_PLUGIN_METADATA(IID UKUI_SHORTCUT_PLUGIN_IFACE_IID FILE "soft-freeze-shortcut.json")
|
Q_PLUGIN_METADATA(IID UKUI_SHORTCUT_PLUGIN_IFACE_IID FILE "soft-freeze-shortcut.json")
|
||||||
Q_INTERFACES(UkuiShortcut::UkuiShortcutPlugin)
|
Q_INTERFACES(UkuiShortcut::UkuiShortcutPlugin)
|
||||||
|
public:
|
||||||
|
explicit SoftFreezeShortcutPlugin(QObject *parent = nullptr);
|
||||||
|
|
||||||
|
QString pluginId() override { return QStringLiteral("SoftFreeze"); };
|
||||||
|
QStringList translations() override;
|
||||||
|
Shortcut *createShortcut() override;
|
||||||
|
};
|
||||||
|
|
||||||
|
class SoftFreezeShortcut : public Shortcut
|
||||||
|
{
|
||||||
|
Q_OBJECT
|
||||||
public:
|
public:
|
||||||
explicit SoftFreezeShortcut(QObject *parent = nullptr);
|
explicit SoftFreezeShortcut(QObject *parent = nullptr);
|
||||||
~SoftFreezeShortcut() override;
|
~SoftFreezeShortcut() override;
|
||||||
|
|
|
@ -1,5 +1,4 @@
|
||||||
{
|
{
|
||||||
"Type": "UKUI_SHORT_CUT",
|
"Type": "UKUI_SHORT_CUT",
|
||||||
"Version": "1.0.0"
|
"Version": "1.0.1"
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -38,7 +38,7 @@ qt5_create_translation(QM_FILES ${CMAKE_CURRENT_SOURCE_DIR} ${TS_FILES})
|
||||||
# 生成动态链接库[.so]文件
|
# 生成动态链接库[.so]文件
|
||||||
add_library(${PROJECT_NAME} SHARED ${HEADERS} ${SOURCES} ${QM_FILES})
|
add_library(${PROJECT_NAME} SHARED ${HEADERS} ${SOURCES} ${QM_FILES})
|
||||||
|
|
||||||
set(TRANSLATION_FILE_DIR "${SHORTCUT_DATA_INSTALL_DIR}/${PROJECT_NAME}/translations")
|
set(TRANSLATION_FILE_DIR "${SHORTCUT_TRANSLATION_FILE_DIR}")
|
||||||
# 编译宏定义
|
# 编译宏定义
|
||||||
target_compile_definitions(${PROJECT_NAME}
|
target_compile_definitions(${PROJECT_NAME}
|
||||||
PRIVATE TRANSLATION_FILE_DIR="${TRANSLATION_FILE_DIR}"
|
PRIVATE TRANSLATION_FILE_DIR="${TRANSLATION_FILE_DIR}"
|
||||||
|
|
|
@ -180,3 +180,18 @@ void StatusChangeShortcut::enableChanged(bool isEnable)
|
||||||
|
|
||||||
Q_EMIT enableStatusChanged(m_isEnable);
|
Q_EMIT enableStatusChanged(m_isEnable);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
StatusChangeShortcutPlugin::StatusChangeShortcutPlugin(QObject *parent) : UkuiShortcutPlugin(parent)
|
||||||
|
{
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
QStringList StatusChangeShortcutPlugin::translations()
|
||||||
|
{
|
||||||
|
return {QStringLiteral("status-change-shortcut")};
|
||||||
|
}
|
||||||
|
|
||||||
|
Shortcut *StatusChangeShortcutPlugin::createShortcut()
|
||||||
|
{
|
||||||
|
return new StatusChangeShortcut;
|
||||||
|
}
|
||||||
|
|
|
@ -25,12 +25,23 @@
|
||||||
#include <QDBusInterface>
|
#include <QDBusInterface>
|
||||||
|
|
||||||
namespace UkuiShortcut {
|
namespace UkuiShortcut {
|
||||||
class StatusChangeShortcut : public Shortcut
|
|
||||||
|
class StatusChangeShortcutPlugin : public UkuiShortcutPlugin
|
||||||
{
|
{
|
||||||
Q_OBJECT
|
Q_OBJECT
|
||||||
Q_PLUGIN_METADATA(IID UKUI_SHORTCUT_PLUGIN_IFACE_IID FILE "status-change-shortcut.json")
|
Q_PLUGIN_METADATA(IID UKUI_SHORTCUT_PLUGIN_IFACE_IID FILE "status-change-shortcut.json")
|
||||||
Q_INTERFACES(UkuiShortcut::UkuiShortcutPlugin)
|
Q_INTERFACES(UkuiShortcut::UkuiShortcutPlugin)
|
||||||
|
public:
|
||||||
|
explicit StatusChangeShortcutPlugin(QObject *parent = nullptr);
|
||||||
|
|
||||||
|
QString pluginId() override { return QStringLiteral("StatusChangeShortcut"); };
|
||||||
|
QStringList translations() override;
|
||||||
|
Shortcut *createShortcut() override;
|
||||||
|
};
|
||||||
|
|
||||||
|
class StatusChangeShortcut : public Shortcut
|
||||||
|
{
|
||||||
|
Q_OBJECT
|
||||||
public:
|
public:
|
||||||
StatusChangeShortcut();
|
StatusChangeShortcut();
|
||||||
~StatusChangeShortcut() override;
|
~StatusChangeShortcut() override;
|
||||||
|
|
|
@ -1,5 +1,4 @@
|
||||||
{
|
{
|
||||||
"Type": "UKUI_SHORT_CUT",
|
"Type": "UKUI_SHORT_CUT",
|
||||||
"Version": "1.0.0"
|
"Version": "1.0.1"
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -24,7 +24,7 @@ qt5_create_translation(QM_FILES ${CMAKE_CURRENT_SOURCE_DIR} ${TS_FILES})
|
||||||
# 生成动态链接库[.so]文件
|
# 生成动态链接库[.so]文件
|
||||||
add_library(${PROJECT_NAME} SHARED ${HEADERS} ${SOURCES} ${QM_FILES})
|
add_library(${PROJECT_NAME} SHARED ${HEADERS} ${SOURCES} ${QM_FILES})
|
||||||
|
|
||||||
set(TRANSLATION_FILE_DIR "${SHORTCUT_DATA_INSTALL_DIR}/${PROJECT_NAME}/translations")
|
set(TRANSLATION_FILE_DIR "${SHORTCUT_TRANSLATION_FILE_DIR}")
|
||||||
# 编译宏定义
|
# 编译宏定义
|
||||||
target_compile_definitions(${PROJECT_NAME}
|
target_compile_definitions(${PROJECT_NAME}
|
||||||
PRIVATE TRANSLATION_FILE_DIR="${TRANSLATION_FILE_DIR}"
|
PRIVATE TRANSLATION_FILE_DIR="${TRANSLATION_FILE_DIR}"
|
||||||
|
|
|
@ -31,13 +31,6 @@
|
||||||
using namespace UkuiShortcut;
|
using namespace UkuiShortcut;
|
||||||
SystemSettingShortcut::SystemSettingShortcut(QObject *parent) : Shortcut(parent)
|
SystemSettingShortcut::SystemSettingShortcut(QObject *parent) : Shortcut(parent)
|
||||||
{
|
{
|
||||||
QTranslator *translator = new QTranslator(this);
|
|
||||||
try {
|
|
||||||
if(!translator->load(QString(TRANSLATION_FILE_DIR) + "/system-setting-shortcut_" + QLocale::system().name() + ".qm")) throw -1;
|
|
||||||
QApplication::installTranslator(translator);
|
|
||||||
} catch(...) {
|
|
||||||
qWarning() << "SystemSettingShortcut load translations file" << QLocale::system().name() << "failed!";
|
|
||||||
}
|
|
||||||
m_currentStatusInfo.setColor(Color::ColorRole::BaseColor);//当前状态信息初始化
|
m_currentStatusInfo.setColor(Color::ColorRole::BaseColor);//当前状态信息初始化
|
||||||
m_currentStatusInfo.setName(tr("Settings"));
|
m_currentStatusInfo.setName(tr("Settings"));
|
||||||
m_currentStatusInfo.setIcon("applications-system-symbolic");
|
m_currentStatusInfo.setIcon("applications-system-symbolic");
|
||||||
|
@ -115,3 +108,18 @@ void SystemSettingShortcut::initMetaData()
|
||||||
m_metaData.insert(PluginMetaType::SystemMode::PC, pc);
|
m_metaData.insert(PluginMetaType::SystemMode::PC, pc);
|
||||||
m_metaData.insert(PluginMetaType::SystemMode::Tablet, tablet);
|
m_metaData.insert(PluginMetaType::SystemMode::Tablet, tablet);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
SystemSettingShortcutPlugin::SystemSettingShortcutPlugin(QObject *parent) : UkuiShortcutPlugin(parent)
|
||||||
|
{
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
QStringList SystemSettingShortcutPlugin::translations()
|
||||||
|
{
|
||||||
|
return {QStringLiteral("system-setting-shortcut")};
|
||||||
|
}
|
||||||
|
|
||||||
|
Shortcut *SystemSettingShortcutPlugin::createShortcut()
|
||||||
|
{
|
||||||
|
return new SystemSettingShortcut;
|
||||||
|
}
|
||||||
|
|
|
@ -26,11 +26,22 @@
|
||||||
|
|
||||||
namespace UkuiShortcut {
|
namespace UkuiShortcut {
|
||||||
|
|
||||||
class SystemSettingShortcut : public Shortcut
|
class SystemSettingShortcutPlugin : public UkuiShortcutPlugin
|
||||||
{
|
{
|
||||||
Q_OBJECT
|
Q_OBJECT
|
||||||
Q_PLUGIN_METADATA(IID UKUI_SHORTCUT_PLUGIN_IFACE_IID FILE "system-setting-shortcut.json")
|
Q_PLUGIN_METADATA(IID UKUI_SHORTCUT_PLUGIN_IFACE_IID FILE "system-setting-shortcut.json")
|
||||||
Q_INTERFACES(UkuiShortcut::UkuiShortcutPlugin)
|
Q_INTERFACES(UkuiShortcut::UkuiShortcutPlugin)
|
||||||
|
public:
|
||||||
|
explicit SystemSettingShortcutPlugin(QObject *parent = nullptr);
|
||||||
|
|
||||||
|
QString pluginId() override { return QStringLiteral("SystemSetting"); };
|
||||||
|
QStringList translations() override;
|
||||||
|
Shortcut *createShortcut() override;
|
||||||
|
};
|
||||||
|
|
||||||
|
class SystemSettingShortcut : public Shortcut
|
||||||
|
{
|
||||||
|
Q_OBJECT
|
||||||
public:
|
public:
|
||||||
explicit SystemSettingShortcut(QObject *parent = nullptr);
|
explicit SystemSettingShortcut(QObject *parent = nullptr);
|
||||||
~SystemSettingShortcut() override;
|
~SystemSettingShortcut() override;
|
||||||
|
|
|
@ -1,5 +1,4 @@
|
||||||
{
|
{
|
||||||
"Type": "UKUI_SHORT_CUT",
|
"Type": "UKUI_SHORT_CUT",
|
||||||
"Version": "1.0.0"
|
"Version": "1.0.1"
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -1,5 +1,4 @@
|
||||||
{
|
{
|
||||||
"Type": "UKUI_SHORT_CUT",
|
"Type": "UKUI_SHORT_CUT",
|
||||||
"Version": "1.0.0"
|
"Version": "1.0.1"
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -38,7 +38,7 @@ qt5_create_translation(QM_FILES ${CMAKE_CURRENT_SOURCE_DIR} ${TS_FILES})
|
||||||
# 生成动态链接库[.so]文件
|
# 生成动态链接库[.so]文件
|
||||||
add_library(${PROJECT_NAME} SHARED ${HEADERS} ${SOURCES} ${QM_FILES})
|
add_library(${PROJECT_NAME} SHARED ${HEADERS} ${SOURCES} ${QM_FILES})
|
||||||
|
|
||||||
set(TRANSLATION_FILE_DIR "${SHORTCUT_DATA_INSTALL_DIR}/${PROJECT_NAME}/translations")
|
set(TRANSLATION_FILE_DIR "${SHORTCUT_TRANSLATION_FILE_DIR}")
|
||||||
# 编译宏定义
|
# 编译宏定义
|
||||||
target_compile_definitions(${PROJECT_NAME}
|
target_compile_definitions(${PROJECT_NAME}
|
||||||
PRIVATE TRANSLATION_FILE_DIR="${TRANSLATION_FILE_DIR}"
|
PRIVATE TRANSLATION_FILE_DIR="${TRANSLATION_FILE_DIR}"
|
||||||
|
|
|
@ -33,14 +33,6 @@ using namespace UkuiShortcut;
|
||||||
|
|
||||||
VolumeShortcut::VolumeShortcut(QObject *parent) : Shortcut(parent)
|
VolumeShortcut::VolumeShortcut(QObject *parent) : Shortcut(parent)
|
||||||
{
|
{
|
||||||
QTranslator *translator = new QTranslator(this);
|
|
||||||
try {
|
|
||||||
if(!translator->load(QString(TRANSLATION_FILE_DIR) + "/volume-shortcut_" + QLocale::system().name() + ".qm")) throw -1;
|
|
||||||
QApplication::installTranslator(translator);
|
|
||||||
} catch(...) {
|
|
||||||
qWarning() << "VolumeShortcut load translations file" << QLocale::system().name() << "failed!";
|
|
||||||
}
|
|
||||||
|
|
||||||
initMetaData();
|
initMetaData();
|
||||||
|
|
||||||
m_currentStatusInfo.setValue(0);
|
m_currentStatusInfo.setValue(0);
|
||||||
|
@ -174,3 +166,18 @@ void VolumeShortcut::updateStatus(int volume)
|
||||||
|
|
||||||
Q_EMIT statusChanged(m_currentStatusInfo);
|
Q_EMIT statusChanged(m_currentStatusInfo);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
VolumeShortcutPlugin::VolumeShortcutPlugin(QObject *parent) : UkuiShortcutPlugin(parent)
|
||||||
|
{
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
QStringList VolumeShortcutPlugin::translations()
|
||||||
|
{
|
||||||
|
return {QStringLiteral("volume-shortcut")};
|
||||||
|
}
|
||||||
|
|
||||||
|
Shortcut *VolumeShortcutPlugin::createShortcut()
|
||||||
|
{
|
||||||
|
return new VolumeShortcut;
|
||||||
|
}
|
||||||
|
|
|
@ -23,11 +23,23 @@
|
||||||
#include "ukui-shortcut-plugin.h"
|
#include "ukui-shortcut-plugin.h"
|
||||||
|
|
||||||
namespace UkuiShortcut {
|
namespace UkuiShortcut {
|
||||||
class VolumeShortcut : public Shortcut
|
|
||||||
|
class VolumeShortcutPlugin : public UkuiShortcutPlugin
|
||||||
{
|
{
|
||||||
Q_OBJECT
|
Q_OBJECT
|
||||||
Q_PLUGIN_METADATA(IID UKUI_SHORTCUT_PLUGIN_IFACE_IID FILE "volume-shortcut.json")
|
Q_PLUGIN_METADATA(IID UKUI_SHORTCUT_PLUGIN_IFACE_IID FILE "volume-shortcut.json")
|
||||||
Q_INTERFACES(UkuiShortcut::UkuiShortcutPlugin)
|
Q_INTERFACES(UkuiShortcut::UkuiShortcutPlugin)
|
||||||
|
public:
|
||||||
|
explicit VolumeShortcutPlugin(QObject *parent = nullptr);
|
||||||
|
|
||||||
|
QString pluginId() override { return QStringLiteral("VolumeShortcut"); };
|
||||||
|
QStringList translations() override;
|
||||||
|
Shortcut *createShortcut() override;
|
||||||
|
};
|
||||||
|
|
||||||
|
class VolumeShortcut : public Shortcut
|
||||||
|
{
|
||||||
|
Q_OBJECT
|
||||||
public:
|
public:
|
||||||
explicit VolumeShortcut(QObject *parent = nullptr);
|
explicit VolumeShortcut(QObject *parent = nullptr);
|
||||||
~VolumeShortcut() override;
|
~VolumeShortcut() override;
|
||||||
|
|
|
@ -1,5 +1,4 @@
|
||||||
{
|
{
|
||||||
"Type": "UKUI_SHORT_CUT",
|
"Type": "UKUI_SHORT_CUT",
|
||||||
"Version": "1.0.0"
|
"Version": "1.0.1"
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -38,7 +38,7 @@ qt5_create_translation(QM_FILES ${CMAKE_CURRENT_SOURCE_DIR} ${TS_FILES})
|
||||||
# 生成动态链接库[.so]文件
|
# 生成动态链接库[.so]文件
|
||||||
add_library(${PROJECT_NAME} SHARED ${HEADERS} ${SOURCES} ${QM_FILES})
|
add_library(${PROJECT_NAME} SHARED ${HEADERS} ${SOURCES} ${QM_FILES})
|
||||||
|
|
||||||
set(TRANSLATION_FILE_DIR "${SHORTCUT_DATA_INSTALL_DIR}/${PROJECT_NAME}/translations")
|
set(TRANSLATION_FILE_DIR "${SHORTCUT_TRANSLATION_FILE_DIR}")
|
||||||
# 编译宏定义
|
# 编译宏定义
|
||||||
target_compile_definitions(${PROJECT_NAME}
|
target_compile_definitions(${PROJECT_NAME}
|
||||||
PRIVATE TRANSLATION_FILE_DIR="${TRANSLATION_FILE_DIR}"
|
PRIVATE TRANSLATION_FILE_DIR="${TRANSLATION_FILE_DIR}"
|
||||||
|
|
|
@ -62,14 +62,6 @@ void WiFiShortcut::initMemberVariables()
|
||||||
connect(this, &WiFiShortcut::toQueryUsedWifiConnect, m_wifiDbusQuery, &WifiDbusQuery::queryUsedWifiConnect);
|
connect(this, &WiFiShortcut::toQueryUsedWifiConnect, m_wifiDbusQuery, &WifiDbusQuery::queryUsedWifiConnect);
|
||||||
connect(m_wifiDbusQuery, &WifiDbusQuery::usedWifiName, this, &WiFiShortcut::handleUsedWifiConnect);
|
connect(m_wifiDbusQuery, &WifiDbusQuery::usedWifiName, this, &WiFiShortcut::handleUsedWifiConnect);
|
||||||
|
|
||||||
QTranslator *translator = new QTranslator(this);
|
|
||||||
try {
|
|
||||||
if(!translator->load(QString(TRANSLATION_FILE_DIR) + "/wifi-shortcut_" + QLocale::system().name() + ".qm")) throw -1;
|
|
||||||
QApplication::installTranslator(translator);
|
|
||||||
} catch(...) {
|
|
||||||
qWarning() << "WiFiShortcut load translations file" << QLocale::system().name() << "failed!";
|
|
||||||
}
|
|
||||||
|
|
||||||
m_currentStatus.setName(tr("WiFi"));
|
m_currentStatus.setName(tr("WiFi"));
|
||||||
m_currentStatus.setIcon(KYLIN_WIFI_PATH);
|
m_currentStatus.setIcon(KYLIN_WIFI_PATH);
|
||||||
m_currentStatus.setToolTip(tr("WiFi"));
|
m_currentStatus.setToolTip(tr("WiFi"));
|
||||||
|
@ -261,3 +253,18 @@ void WiFiShortcut::initMetaData()
|
||||||
m_metaData.insert(PluginMetaType::SystemMode::PC, pc);
|
m_metaData.insert(PluginMetaType::SystemMode::PC, pc);
|
||||||
m_metaData.insert(PluginMetaType::SystemMode::Tablet, tablet);
|
m_metaData.insert(PluginMetaType::SystemMode::Tablet, tablet);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
WiFiShortcutPlugin::WiFiShortcutPlugin(QObject *parent) : UkuiShortcutPlugin(parent)
|
||||||
|
{
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
QStringList WiFiShortcutPlugin::translations()
|
||||||
|
{
|
||||||
|
return {QStringLiteral("wifi-shortcut")};
|
||||||
|
}
|
||||||
|
|
||||||
|
Shortcut *WiFiShortcutPlugin::createShortcut()
|
||||||
|
{
|
||||||
|
return new WiFiShortcut;
|
||||||
|
}
|
||||||
|
|
|
@ -49,12 +49,22 @@
|
||||||
|
|
||||||
namespace UkuiShortcut {
|
namespace UkuiShortcut {
|
||||||
|
|
||||||
class WiFiShortcut : public Shortcut
|
class WiFiShortcutPlugin : public UkuiShortcutPlugin
|
||||||
{
|
{
|
||||||
Q_OBJECT
|
Q_OBJECT
|
||||||
Q_PLUGIN_METADATA(IID UKUI_SHORTCUT_PLUGIN_IFACE_IID FILE "wifi-shortcut.json")
|
Q_PLUGIN_METADATA(IID UKUI_SHORTCUT_PLUGIN_IFACE_IID FILE "wifi-shortcut.json")
|
||||||
Q_INTERFACES(UkuiShortcut::UkuiShortcutPlugin)
|
Q_INTERFACES(UkuiShortcut::UkuiShortcutPlugin)
|
||||||
|
public:
|
||||||
|
explicit WiFiShortcutPlugin(QObject *parent = nullptr);
|
||||||
|
|
||||||
|
QString pluginId() override { return QStringLiteral("WiFi"); };
|
||||||
|
QStringList translations() override;
|
||||||
|
Shortcut *createShortcut() override;
|
||||||
|
};
|
||||||
|
|
||||||
|
class WiFiShortcut : public Shortcut
|
||||||
|
{
|
||||||
|
Q_OBJECT
|
||||||
public:
|
public:
|
||||||
explicit WiFiShortcut(QObject *parent = nullptr);
|
explicit WiFiShortcut(QObject *parent = nullptr);
|
||||||
~WiFiShortcut() override;
|
~WiFiShortcut() override;
|
||||||
|
|
|
@ -1,5 +1,4 @@
|
||||||
{
|
{
|
||||||
"Type": "UKUI_SHORT_CUT",
|
"Type": "UKUI_SHORT_CUT",
|
||||||
"Version": "1.0.0"
|
"Version": "1.0.1"
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue