Skip to content

Commit

Permalink
feat: load all root applet by default
Browse files Browse the repository at this point in the history
  load all root applet by default.

Issue: linuxdeepin/developer-center#5965
  • Loading branch information
18202781743 committed Oct 25, 2023
1 parent 7f7a835 commit 8468167
Show file tree
Hide file tree
Showing 3 changed files with 26 additions and 2 deletions.
19 changes: 19 additions & 0 deletions frame/pluginloader.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -191,6 +191,25 @@ QList<DPluginMetaData> DPluginLoader::plugins() const
return d->m_plugins.values();
}

QList<DPluginMetaData> DPluginLoader::rootPlugins() const
{
D_DC(DPluginLoader);
QList<DPluginMetaData> rootPlugins;
for (auto item : plugins()) {
auto parent = parentPlugin(item.pluginId());

// root plugin can't has parent.
if (parent.isValid())
continue;

if (rootPlugins.contains(item))
continue;

rootPlugins << item;
}
return rootPlugins;
}

void DPluginLoader::addPackageDir(const QString &dir)
{
D_D(DPluginLoader);
Expand Down
1 change: 1 addition & 0 deletions frame/pluginloader.h
Original file line number Diff line number Diff line change
Expand Up @@ -27,6 +27,7 @@ class Q_DECL_EXPORT DPluginLoader : public QObject, public DTK_CORE_NAMESPACE::D

static DPluginLoader *instance();
QList<DPluginMetaData> plugins() const;
QList<DPluginMetaData> rootPlugins() const;
void addPackageDir(const QString &dir);
void addPluginDir(const QString &dir);

Expand Down
8 changes: 6 additions & 2 deletions shell/main.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -41,10 +41,14 @@ int main(int argc, char *argv[])
QList<DApplet *> applets;
if (parser.isSet(testOption)) {
pluginIds << "org.deepin.ds.corona-example";
}
if (parser.isSet(coronaOption)) {
} else if (parser.isSet(coronaOption)) {
pluginIds << parser.values(coronaOption);
} else {
for (auto item : DPluginLoader::instance()->rootPlugins()) {
pluginIds << item.pluginId();
}
}

qInfo() << "Loading plugin id" << pluginIds;
for (auto pluginId : pluginIds) {
auto applet = DPluginLoader::instance()->loadApplet(pluginId);
Expand Down

0 comments on commit 8468167

Please sign in to comment.