From 02ad83ea5962d77dda35d0508a9f0fec8a4b23d1 Mon Sep 17 00:00:00 2001 From: JK-Lix <776579471@qq.com> Date: Mon, 9 Aug 2021 11:45:48 +0800 Subject: [PATCH] =?UTF-8?q?Fix:bug#67311=20=E5=88=87=E6=8D=A2=E4=B8=BB?= =?UTF-8?q?=E9=A2=98=EF=BC=8C=E8=93=9D=E7=89=99=E5=88=97=E8=A1=A8=E5=9B=BE?= =?UTF-8?q?=E6=A0=87=E6=9C=AA=E9=9A=8F=E4=B8=BB=E9=A2=98=E6=94=B9=E5=8F=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- plugins/devices/bluetooth/bluetoothmain.cpp | 22 +++++++++++++++++++++ 1 file changed, 22 insertions(+) diff --git a/plugins/devices/bluetooth/bluetoothmain.cpp b/plugins/devices/bluetooth/bluetoothmain.cpp index 80e5aca09..5e2139174 100644 --- a/plugins/devices/bluetooth/bluetoothmain.cpp +++ b/plugins/devices/bluetooth/bluetoothmain.cpp @@ -527,11 +527,22 @@ void BlueToothMain::addMyDeviceItemUI(BluezQt::DevicePtr device) if (device && device->isPaired()) { DeviceInfoItem *item = new DeviceInfoItem(); + QGSettings *changeTheme; + const QByteArray id_Theme("org.ukui.style"); item->setObjectName(device->address()); connect(item,SIGNAL(sendConnectDevice(QString)),this,SLOT(receiveConnectsignal(QString))); connect(item,SIGNAL(sendDisconnectDeviceAddress(QString)),this,SLOT(receiveDisConnectSignal(QString))); connect(item,SIGNAL(sendDeleteDeviceAddress(QString)),this,SLOT(receiveRemoveSignal(QString))); connect(item,SIGNAL(sendPairedAddress(QString)),this,SLOT(change_device_parent(QString))); + if (QGSettings::isSchemaInstalled(id_Theme)) + changeTheme = new QGSettings(id_Theme); + connect(changeTheme, &QGSettings::changed, this, [=] (const QString &key){ + if (key == "iconThemeName"){ + DeviceInfoItem *item = frame_middle->findChild(device->address()); + if (item) + item->refresh_device_icon(device->type()); + } + }); if(device->isConnected()) item->initInfoPage(device->name(), DEVICE_STATUS::LINK, device); else @@ -837,12 +848,23 @@ void BlueToothMain::addOneBluetoothDeviceItemUi(BluezQt::DevicePtr device) if(!last_discovery_device_address.contains(device->address())) { DeviceInfoItem *item = new DeviceInfoItem(device_list); + QGSettings *changeTheme; + const QByteArray id_Theme("org.ukui.style"); item->setObjectName(device->address()); connect(item,SIGNAL(sendConnectDevice(QString)),this,SLOT(receiveConnectsignal(QString))); connect(item,SIGNAL(sendDisconnectDeviceAddress(QString)),this,SLOT(receiveDisConnectSignal(QString))); connect(item,SIGNAL(sendDeleteDeviceAddress(QString)),this,SLOT(receiveRemoveSignal(QString))); connect(item,SIGNAL(sendPairedAddress(QString)),this,SLOT(change_device_parent(QString))); item->initInfoPage(device->name(), DEVICE_STATUS::UNLINK, device); + if (QGSettings::isSchemaInstalled(id_Theme)) + changeTheme = new QGSettings(id_Theme); + connect(changeTheme, &QGSettings::changed, this, [=] (const QString &key){ + if (key == "iconThemeName"){ + DeviceInfoItem *item = frame_middle->findChild(device->address()); + if (item) + item->refresh_device_icon(device->type()); + } + }); if(device->name() == device->address()) device_list_layout->addWidget(item,Qt::AlignTop); else