Fix up the loading and saving of plugins

This commit is contained in:
2025-11-16 01:13:15 +00:00
parent 455d8945ec
commit e25d8686da

View File

@@ -77,7 +77,7 @@ void MainWindow::initSettings()
for (const QString &group : settings.childGroups()) {
settings.beginGroup(group);
QString pluginName = group.section('_', 0, 0);
QString pluginName = group.split("_").first();
pluginName = QUrl::fromPercentEncoding(pluginName.toUtf8());
Interface *iPlugin = nullptr;
@@ -92,9 +92,11 @@ void MainWindow::initSettings()
if (iPlugin) {
QWidget *pluginWidget = iPlugin->pcontent();
QString uniqueId = QUuid::createUuid().toString();
if (pluginWidget) {
QMdiSubWindow *sub = mdi->addSubWindow(pluginWidget);
sub->setProperty("uniqueId", group);
sub->setProperty("name", iPlugin->pname());
sub->setProperty("uniqueId", uniqueId);
sub->restoreGeometry(settings.value("geometry").toByteArray());
sub->setAttribute(Qt::WA_DeleteOnClose);
sub->show();
@@ -119,7 +121,7 @@ void MainWindow::saveSettings()
settings.beginGroup("Plugins");
QList<QMdiSubWindow*> subWindows = mdi->subWindowList();
for (QMdiSubWindow* sub : subWindows) {
QString id = sub->windowTitle() + "_" + sub->property("uniqueId").toString();
QString id = sub->property("name").toString() + "_" + sub->property("uniqueId").toString();
settings.beginGroup(id);
settings.setValue("geometry", sub->saveGeometry());
settings.endGroup();
@@ -174,6 +176,7 @@ void MainWindow::changePlugin()
QWidget* pluginContent = iPlugin->pcontent();
auto *sub = mdi->addSubWindow(pluginContent);
sub->setProperty("uniqueId", uniqueId);
sub->setProperty("name", iPlugin->pname());
sub->setAttribute(Qt::WA_DeleteOnClose);
sub->show();
}