diff options
author | saturneric <[email protected]> | 2024-12-01 00:21:46 +0000 |
---|---|---|
committer | saturneric <[email protected]> | 2024-12-01 00:21:46 +0000 |
commit | eeec34f66fac8ecb350cd8d683a5dd167c91e706 (patch) | |
tree | 61da717af5370e37963da1e21f9daae0dc426b00 /src/ui/UIModuleManager.cpp | |
parent | fix: solve link errors on windows (diff) | |
parent | feat: improve windows release structure at nightly build (diff) | |
download | GpgFrontend-eeec34f66fac8ecb350cd8d683a5dd167c91e706.tar.gz GpgFrontend-eeec34f66fac8ecb350cd8d683a5dd167c91e706.zip |
Merge branch 'dev/2.1.5/mingw' into develop
Diffstat (limited to 'src/ui/UIModuleManager.cpp')
-rw-r--r-- | src/ui/UIModuleManager.cpp | 25 |
1 files changed, 23 insertions, 2 deletions
diff --git a/src/ui/UIModuleManager.cpp b/src/ui/UIModuleManager.cpp index ed18f473..89621f9c 100644 --- a/src/ui/UIModuleManager.cpp +++ b/src/ui/UIModuleManager.cpp @@ -61,7 +61,7 @@ auto UIModuleManager::DeclareMountPoint( auto UIModuleManager::MountEntry(const QString& id, QMap<QString, QString> meta_data, - EntryFactory factory) -> bool { + QObjectFactory factory) -> bool { if (id.isEmpty() || !mount_points_.contains(id)) return false; if (factory == nullptr) return false; @@ -82,7 +82,7 @@ auto UIModuleManager::QueryMountedEntries(QString id) -> QList<MountedUIEntry> { } auto MountedUIEntry::GetWidget() const -> QWidget* { - return qobject_cast<QWidget*>(static_cast<QObject*>(factory_(id_.toUtf8()))); + return qobject_cast<QWidget*>(static_cast<QObject*>(factory_(nullptr))); } auto MountedUIEntry::GetMetaDataByDefault( @@ -176,4 +176,25 @@ void UIModuleManager::TranslateAllModulesParams() { #endif } +auto UIModuleManager::RegisterQObject(const QString& id, QObject* p) -> bool { + if (id.isEmpty() || registered_qobjects_.contains(id)) return false; + + registered_qobjects_[id] = p; + return true; +} + +auto UIModuleManager::GetQObject(const QString& id) -> QObject* { + return registered_qobjects_.value(id, nullptr); +} + +auto UIModuleManager::GetCapsule(const QString& uuid) -> std::any { + return capsule_.take(uuid); +} + +auto UIModuleManager::MakeCapsule(std::any v) -> QString { + auto uuid = QUuid::createUuid().toString(); + capsule_[uuid] = std::move(v); + return uuid; +} + } // namespace GpgFrontend::UI
\ No newline at end of file |