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