Skip to content

Commit cde1df6

Browse files
ArchieMengrb-union
authored andcommitted
feat: Receive close quick panel requests from plugins
Bug: https://pms.uniontech.com/bug-view-272277.html Log: Receive close quick panel requests from plugins
1 parent 9323abb commit cde1df6

File tree

4 files changed

+17
-0
lines changed

4 files changed

+17
-0
lines changed

panels/dock/DockCompositor.qml

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -29,6 +29,7 @@ Item {
2929
signal pluginSurfacesUpdated()
3030
signal popupCreated(var popup)
3131
signal requestShutdown(var type)
32+
signal popupClosed()
3233

3334
function removeDockPluginSurface(model, object) {
3435
for (var i = 0; i < model.count; ++i) {
@@ -107,6 +108,11 @@ Item {
107108
onRequestShutdown: (type) => {
108109
dockCompositor.requestShutdown(type)
109110
}
111+
112+
onPluginCloseQuickPanelPopup: {
113+
console.log("quick panel closed")
114+
dockCompositor.popupClosed()
115+
}
110116
}
111117

112118
PluginScaleManager{

panels/dock/pluginmanagerextension.cpp

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -207,6 +207,11 @@ void PluginSurface::plugin_request_shutdown(Resource *resource, const QString &t
207207
Q_EMIT m_manager->requestShutdown(type);
208208
}
209209

210+
void PluginSurface::plugin_close_quick_panel(Resource *resource) {
211+
qInfo() << "close_quick_panel";
212+
Q_EMIT m_manager->pluginCloseQuickPanelPopup();
213+
}
214+
210215
void PluginSurface::plugin_destroy_resource(Resource *resource)
211216
{
212217
Q_UNUSED(resource);

panels/dock/pluginmanagerextension_p.h

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -78,6 +78,7 @@ class PluginManager : public QWaylandCompositorExtensionTemplate<PluginManager>,
7878

7979
Q_SIGNALS:
8080
void pluginPopupCreated(PluginPopup*);
81+
void pluginCloseQuickPanelPopup();
8182
void pluginSurfaceCreated(PluginSurface*);
8283
void pluginSurfaceDestroyed(PluginSurface*);
8384
void messageRequest(PluginSurface *, const QString &msg);
@@ -177,6 +178,7 @@ class PluginSurface : public QWaylandShellSurfaceTemplate<PluginSurface>, public
177178
virtual void plugin_mouse_event(Resource *resource, int32_t type) override;
178179
virtual void plugin_dcc_icon(Resource *resource, const QString &icon) override;
179180
virtual void plugin_request_shutdown(Resource *resource, const QString &type) override;
181+
virtual void plugin_close_quick_panel(Resource *resource) override;
180182
virtual void plugin_destroy_resource(Resource *resource) override;
181183
virtual void plugin_destroy(Resource *resource) override;
182184
virtual void plugin_source_size(Resource *resource, int32_t width, int32_t height) override;

panels/dock/tray/quickpanel/QuickPanel.qml

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -132,5 +132,9 @@ Item {
132132
quickpanelModel.requestShowSubPlugin(popupSurface.pluginId, popupSurface)
133133
}
134134
}
135+
136+
function onPopupClosed() {
137+
popup.close()
138+
}
135139
}
136140
}

0 commit comments

Comments
 (0)