mirror of
https://github.com/AvengeMedia/DankMaterialShell.git
synced 2026-04-14 01:32:29 -04:00
cc: fix plugin reloading in bar position changes
This commit is contained in:
@@ -945,22 +945,31 @@ Column {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
Component.onCompleted: {
|
function tryCreatePluginInstance() {
|
||||||
Qt.callLater(() => {
|
const pluginComponent = PluginService.pluginWidgetComponents[pluginId];
|
||||||
const pluginComponent = PluginService.pluginWidgetComponents[pluginId];
|
if (!pluginComponent)
|
||||||
if (pluginComponent) {
|
return false;
|
||||||
const instance = pluginComponent.createObject(null, {
|
try {
|
||||||
"pluginId": pluginId,
|
const instance = pluginComponent.createObject(null, {
|
||||||
"pluginService": PluginService,
|
"pluginId": pluginId,
|
||||||
"visible": false,
|
"pluginService": PluginService,
|
||||||
"width": 0,
|
"visible": false,
|
||||||
"height": 0
|
"width": 0,
|
||||||
});
|
"height": 0
|
||||||
if (instance) {
|
});
|
||||||
pluginInstance = instance;
|
if (instance) {
|
||||||
}
|
pluginInstance = instance;
|
||||||
|
return true;
|
||||||
}
|
}
|
||||||
});
|
} catch (e) {
|
||||||
|
console.warn("DragDropGrid: stale plugin component for", pluginId, "- reloading");
|
||||||
|
PluginService.reloadPlugin(pluginId);
|
||||||
|
}
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
Component.onCompleted: {
|
||||||
|
Qt.callLater(() => tryCreatePluginInstance());
|
||||||
}
|
}
|
||||||
|
|
||||||
Connections {
|
Connections {
|
||||||
@@ -970,6 +979,11 @@ Column {
|
|||||||
pluginInstance.loadPluginData();
|
pluginInstance.loadPluginData();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
function onPluginLoaded(loadedPluginId) {
|
||||||
|
if (loadedPluginId !== pluginId || pluginInstance)
|
||||||
|
return;
|
||||||
|
Qt.callLater(() => tryCreatePluginInstance());
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
Component.onDestruction: {
|
Component.onDestruction: {
|
||||||
|
|||||||
@@ -13,8 +13,8 @@ Row {
|
|||||||
property Item popoutContent: null
|
property Item popoutContent: null
|
||||||
|
|
||||||
signal addWidget(string widgetId)
|
signal addWidget(string widgetId)
|
||||||
signal resetToDefault()
|
signal resetToDefault
|
||||||
signal clearAll()
|
signal clearAll
|
||||||
|
|
||||||
height: 48
|
height: 48
|
||||||
spacing: Theme.spacingS
|
spacing: Theme.spacingS
|
||||||
@@ -28,7 +28,7 @@ Row {
|
|||||||
y: parent ? Math.round((parent.height - height) / 2) : 0
|
y: parent ? Math.round((parent.height - height) / 2) : 0
|
||||||
width: 400
|
width: 400
|
||||||
height: 300
|
height: 300
|
||||||
modal: true
|
modal: false
|
||||||
focus: true
|
focus: true
|
||||||
closePolicy: Popup.CloseOnEscape | Popup.CloseOnPressOutside
|
closePolicy: Popup.CloseOnEscape | Popup.CloseOnPressOutside
|
||||||
|
|
||||||
@@ -133,7 +133,7 @@ Row {
|
|||||||
hoverEnabled: true
|
hoverEnabled: true
|
||||||
cursorShape: Qt.PointingHandCursor
|
cursorShape: Qt.PointingHandCursor
|
||||||
onClicked: {
|
onClicked: {
|
||||||
root.addWidget(modelData.id)
|
root.addWidget(modelData.id);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -216,14 +216,18 @@ QtObject {
|
|||||||
}
|
}
|
||||||
|
|
||||||
const pluginComponent = PluginService.pluginWidgetComponents[plugin.id];
|
const pluginComponent = PluginService.pluginWidgetComponents[plugin.id];
|
||||||
if (!pluginComponent || typeof pluginComponent.createObject !== 'function') {
|
if (!pluginComponent)
|
||||||
continue;
|
continue;
|
||||||
}
|
|
||||||
|
|
||||||
const tempInstance = pluginComponent.createObject(null);
|
let tempInstance;
|
||||||
if (!tempInstance) {
|
try {
|
||||||
|
tempInstance = pluginComponent.createObject(null);
|
||||||
|
} catch (e) {
|
||||||
|
PluginService.reloadPlugin(plugin.id);
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
if (!tempInstance)
|
||||||
|
continue;
|
||||||
|
|
||||||
const hasCCWidget = tempInstance.ccWidgetIcon && tempInstance.ccWidgetIcon.length > 0;
|
const hasCCWidget = tempInstance.ccWidgetIcon && tempInstance.ccWidgetIcon.length > 0;
|
||||||
tempInstance.destroy();
|
tempInstance.destroy();
|
||||||
|
|||||||
Reference in New Issue
Block a user