Skip to content

Commit

Permalink
feat: Receive close quick panel requests from plugins
Browse files Browse the repository at this point in the history
Bug: https://pms.uniontech.com/bug-view-272277.html
Log: Receive close quick panel requests from plugins
  • Loading branch information
ArchieMeng authored and rb-union committed Feb 24, 2025
1 parent 975be34 commit f831c59
Show file tree
Hide file tree
Showing 4 changed files with 17 additions and 0 deletions.
6 changes: 6 additions & 0 deletions panels/dock/DockCompositor.qml
Original file line number Diff line number Diff line change
Expand Up @@ -29,6 +29,7 @@ Item {
signal pluginSurfacesUpdated()
signal popupCreated(var popup)
signal requestShutdown(var type)
signal popupClosed()

function removeDockPluginSurface(model, object) {
for (var i = 0; i < model.count; ++i) {
Expand Down Expand Up @@ -107,6 +108,11 @@ Item {
onRequestShutdown: (type) => {
dockCompositor.requestShutdown(type)
}

onPluginCloseQuickPanelPopup: {
console.log("quick panel closed")
dockCompositor.popupClosed()
}
}

PluginScaleManager{
Expand Down
5 changes: 5 additions & 0 deletions panels/dock/pluginmanagerextension.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -207,6 +207,11 @@ void PluginSurface::plugin_request_shutdown(Resource *resource, const QString &t
Q_EMIT m_manager->requestShutdown(type);
}

void PluginSurface::plugin_close_quick_panel(Resource *resource) {
qInfo() << "close_quick_panel";
Q_EMIT m_manager->pluginCloseQuickPanelPopup();
}

void PluginSurface::plugin_destroy_resource(Resource *resource)
{
Q_UNUSED(resource);
Expand Down
2 changes: 2 additions & 0 deletions panels/dock/pluginmanagerextension_p.h
Original file line number Diff line number Diff line change
Expand Up @@ -78,6 +78,7 @@ class PluginManager : public QWaylandCompositorExtensionTemplate<PluginManager>,

Q_SIGNALS:
void pluginPopupCreated(PluginPopup*);
void pluginCloseQuickPanelPopup();
void pluginSurfaceCreated(PluginSurface*);
void pluginSurfaceDestroyed(PluginSurface*);
void messageRequest(PluginSurface *, const QString &msg);
Expand Down Expand Up @@ -177,6 +178,7 @@ class PluginSurface : public QWaylandShellSurfaceTemplate<PluginSurface>, public
virtual void plugin_mouse_event(Resource *resource, int32_t type) override;
virtual void plugin_dcc_icon(Resource *resource, const QString &icon) override;
virtual void plugin_request_shutdown(Resource *resource, const QString &type) override;
virtual void plugin_close_quick_panel(Resource *resource) override;
virtual void plugin_destroy_resource(Resource *resource) override;
virtual void plugin_destroy(Resource *resource) override;
virtual void plugin_source_size(Resource *resource, int32_t width, int32_t height) override;
Expand Down
4 changes: 4 additions & 0 deletions panels/dock/tray/quickpanel/QuickPanel.qml
Original file line number Diff line number Diff line change
Expand Up @@ -132,5 +132,9 @@ Item {
quickpanelModel.requestShowSubPlugin(popupSurface.pluginId, popupSurface)
}
}

function onPopupClosed() {
popup.close()
}
}
}

0 comments on commit f831c59

Please sign in to comment.