summaryrefslogtreecommitdiffstats
path: root/framework/src/extensionmodel.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'framework/src/extensionmodel.cpp')
-rw-r--r--framework/src/extensionmodel.cpp24
1 files changed, 20 insertions, 4 deletions
diff --git a/framework/src/extensionmodel.cpp b/framework/src/extensionmodel.cpp
index e3fab7d8..5f42aa7a 100644
--- a/framework/src/extensionmodel.cpp
+++ b/framework/src/extensionmodel.cpp
@@ -47,12 +47,17 @@ QHash<int, QByteArray> ExtensionModel::roleNames() const
47 47
48void ExtensionModel::load() 48void ExtensionModel::load()
49{ 49{
50 auto model = new QStandardItemModel(this); 50 if (auto m = sourceModel()) {
51 51 setSourceModel(nullptr);
52 delete m;
53 }
52 auto engine = qmlEngine(this); 54 auto engine = qmlEngine(this);
53 Q_ASSERT(engine); 55 if (!engine) {
56 return;
57 }
58 auto model = new QStandardItemModel(this);
54 for (const auto &path : engine->importPathList()) { 59 for (const auto &path : engine->importPathList()) {
55 QDir dir{path + "/org/kube/views"}; 60 QDir dir{path + "/org/kube/" + mExtensionPoint};
56 for (const auto &pluginName : dir.entryList(QDir::Dirs | QDir::NoDotAndDotDot)) { 61 for (const auto &pluginName : dir.entryList(QDir::Dirs | QDir::NoDotAndDotDot)) {
57 const auto pluginPath = dir.path() + "/" + pluginName; 62 const auto pluginPath = dir.path() + "/" + pluginName;
58 mPaths.insert(pluginName, pluginPath); 63 mPaths.insert(pluginName, pluginPath);
@@ -101,6 +106,17 @@ QVariantList ExtensionModel::sortOrder() const
101 return {}; 106 return {};
102} 107}
103 108
109void ExtensionModel::setExtensionPoint(const QString &extensionPoint)
110{
111 mExtensionPoint = extensionPoint;
112 QTimer::singleShot(0, this, &ExtensionModel::load);
113}
114
115QString ExtensionModel::extensionPoint() const
116{
117 return mExtensionPoint;
118}
119
104QVariant ExtensionModel::data(const QModelIndex &idx, int role) const 120QVariant ExtensionModel::data(const QModelIndex &idx, int role) const
105{ 121{
106 return QSortFilterProxyModel::data(idx, role); 122 return QSortFilterProxyModel::data(idx, role);