feat: 初始化项目骨架

- 创建插件元数据 package/metadata.json
- 实现主插件类 GraphicsDriverApplet (D-Bus通信)
- 实现GPU指示器类 GpuIndicator (设备信息解析)
- 创建QML界面 driverview.qml (驱动管理UI)
- 添加CMake构建配置
- 编写开发指南文档 docs/DEVELOPMENT.md
This commit is contained in:
2026-07-12 19:54:22 +08:00
parent abc5dca5e5
commit eb90da12f3
9 changed files with 1389 additions and 0 deletions
+87
View File
@@ -0,0 +1,87 @@
// SPDX-FileCopyrightText: 2024 UnionTech Software Technology Co., Ltd.
//
// SPDX-License-Identifier: GPL-3.0-or-later
#pragma once
#include "applet.h"
#include <QDBusInterface>
#include <QDBusPendingCallWatcher>
#include <QTimer>
#include <QJsonObject>
#include <QJsonArray>
DS_BEGIN_NAMESPACE
class GraphicsDriverApplet : public DApplet
{
Q_OBJECT
Q_PROPERTY(QString currentDriver READ currentDriver NOTIFY currentDriverChanged)
Q_PROPERTY(QString newDriver READ newDriver NOTIFY newDriverChanged)
Q_PROPERTY(QString deviceInfo READ deviceInfo NOTIFY deviceInfoChanged)
Q_PROPERTY(int installProgress READ installProgress NOTIFY installProgressChanged)
Q_PROPERTY(bool isInstalling READ isInstalling NOTIFY isInstallingChanged)
Q_PROPERTY(bool isTestSuccess READ isTestSuccess NOTIFY isTestSuccessChanged)
Q_PROPERTY(QJsonArray availableDrivers READ availableDrivers NOTIFY availableDriversChanged)
public:
explicit GraphicsDriverApplet(QObject *parent = nullptr);
~GraphicsDriverApplet();
virtual bool load() override;
virtual bool init() override;
QString currentDriver() const;
QString newDriver() const;
QString deviceInfo() const;
int installProgress() const;
bool isInstalling() const;
bool isTestSuccess() const;
QJsonArray availableDrivers() const;
Q_INVOKABLE void refreshDeviceInfo();
Q_INVOKABLE void prepareInstall(const QString &driverName);
Q_INVOKABLE void testInstall();
Q_INVOKABLE void realInstall();
Q_INVOKABLE void cancelInstall();
signals:
void currentDriverChanged();
void newDriverChanged();
void deviceInfoChanged();
void installProgressChanged();
void isInstallingChanged();
void isTestSuccessChanged();
void availableDriversChanged();
void installSuccess();
void installFailed(const QString &error);
void requestReboot();
private slots:
void onDBusReply(QDBusPendingCallWatcher *call);
void onReportProgress(const QString &ratio);
void onCancel();
void onPollProgress();
private:
void initDBusConnection();
void updateDeviceInfo();
void parseDeviceInfo(const QString &jsonStr);
void setInstalling(bool installing);
QDBusInterface *m_dbusInterface;
QTimer *m_progressTimer;
QString m_currentDriver;
QString m_newDriver;
QString m_deviceInfo;
int m_installProgress;
bool m_isInstalling;
bool m_isTestSuccess;
QJsonArray m_availableDrivers;
QString m_pendingInstallDriver;
};
DS_END_NAMESPACE