Fix up the loading and saving of plugins
This commit is contained in:
@@ -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();
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user