src/main.cpp

changeset 282
f2dc3bbecbfa
parent 281
afed72b544f0
child 284
9266239cf72b
--- a/src/main.cpp	Tue Jun 28 11:51:17 2022 +0300
+++ b/src/main.cpp	Tue Jun 28 12:18:00 2022 +0300
@@ -566,6 +566,7 @@
 			QObject::connect(data->canvas.get(), &PartRenderer::message, &messageLog, &MessageLog::addMessage);
 			const QFileInfo fileInfo{*documents.modelPath(modelId)};
 			ModelSubWindow* subWindow = new ModelSubWindow{modelId, ui.mdiArea};
+			subWindow->setMinimumSize({96, 96});
 			subWindow->setWidget(data->canvas.get());
 			subWindow->setWindowTitle(tabName(fileInfo));
 			subWindow->show();
@@ -586,12 +587,13 @@
 		}
 	});
 	QObject::connect(ui.actionSettingsEditor, &QAction::triggered, [&]{
-		SettingsEditor settingsEditor{defaultKeyboardShortcuts, &mainWindow};
-		const int result = settingsEditor.exec();
-		if (result == QDialog::Accepted)
-		{
-			restoreSettings();
-		}
+		SettingsEditor* settingsEditor = new SettingsEditor{defaultKeyboardShortcuts, &mainWindow};
+		QObject::connect(&settingsChanged, &Signal::triggered, settingsEditor, &SettingsEditor::loadSettings);
+		QObject::connect(settingsEditor, &SettingsEditor::settingsChanged, restoreSettings);
+		auto subwindow = new QMdiSubWindow{ui.mdiArea};
+		subwindow->setAttribute(Qt::WA_DeleteOnClose);
+		subwindow->setWidget(settingsEditor);
+		subwindow->show();
 	});
 	QObject::connect(ui.actionQuit, &QAction::triggered, &mainWindow, &QMainWindow::close);
 #if 0
@@ -715,6 +717,9 @@
 				}
 			}
 		}
+		else {
+			checkEditingModeAction(EditingMode::SelectMode);
+		}
 		updateTitle();
 	});
 	ui.messageLog->setModel(&messageLog);

mercurial