src/main.cpp

changeset 274
1331aba5d36b
parent 272
9d52b119b3f5
child 278
304386ff96a4
equal deleted inserted replaced
273:57952c5ca59b 274:1331aba5d36b
212 else { 212 else {
213 return {}; 213 return {};
214 } 214 }
215 } 215 }
216 216
217 static QString title() 217 static QString title(Ui_MainWindow* ui)
218 { 218 {
219 return fullVersionString(); 219 QMdiSubWindow* subWindow = ui->mdiArea->activeSubWindow();
220 QString titlestring;
221 if (subWindow != nullptr) {
222 return QObject::tr("%1 - %2").arg(subWindow->windowTitle(), fullVersionString());
223 }
224 else {
225 return fullVersionString();
226 }
220 } 227 }
221 228
222 static ColorTable loadColors(const LibrariesModel* libraries) 229 static ColorTable loadColors(const LibrariesModel* libraries)
223 { 230 {
224 QTextStream errors; 231 QTextStream errors;
392 Signal settingsChanged; 399 Signal settingsChanged;
393 ui.setupUi(&mainWindow); 400 ui.setupUi(&mainWindow);
394 ToolWidgets toolWidgets{ 401 ToolWidgets toolWidgets{
395 .circleToolOptions = new CircleToolOptionsWidget{&mainWindow}, 402 .circleToolOptions = new CircleToolOptionsWidget{&mainWindow},
396 .objectEditor = new ObjectEditor{&mainWindow}, 403 .objectEditor = new ObjectEditor{&mainWindow},
404 };
405 const auto updateTitle = [&ui, &mainWindow]{
406 mainWindow.setWindowTitle(title(&ui));
397 }; 407 };
398 const uiutilities::KeySequenceMap defaultKeyboardShortcuts = 408 const uiutilities::KeySequenceMap defaultKeyboardShortcuts =
399 uiutilities::makeKeySequenceMap(uiutilities::collectActions(&mainWindow)); 409 uiutilities::makeKeySequenceMap(uiutilities::collectActions(&mainWindow));
400 const auto saveSettings = [&]{ 410 const auto saveSettings = [&]{
401 setSetting<Setting::MainWindowGeometry>(mainWindow.saveGeometry()); 411 setSetting<Setting::MainWindowGeometry>(mainWindow.saveGeometry());
685 ui.modelListView->setModel(data->model); 695 ui.modelListView->setModel(data->model);
686 ui.modelListView->setSelectionModel(data->itemSelectionModel.get()); 696 ui.modelListView->setSelectionModel(data->itemSelectionModel.get());
687 } 697 }
688 } 698 }
689 } 699 }
700 updateTitle();
690 }); 701 });
691 ui.messageLog->setModel(&messageLog); 702 ui.messageLog->setModel(&messageLog);
692 QObject::connect(ui.actionAboutQt, &QAction::triggered, &app, &QApplication::aboutQt); 703 QObject::connect(ui.actionAboutQt, &QAction::triggered, &app, &QApplication::aboutQt);
693 QObject::connect(&documents, &DocumentManager::message, &messageLog, &MessageLog::addMessage); 704 QObject::connect(&documents, &DocumentManager::message, &messageLog, &MessageLog::addMessage);
694 QObject::connect(&messageLog, &MessageLog::rowsAboutToBeInserted, [&]{ 705 QObject::connect(&messageLog, &MessageLog::rowsAboutToBeInserted, [&]{
733 for (QDockWidget* dock : mainWindow.findChildren<QDockWidget*>()) { 744 for (QDockWidget* dock : mainWindow.findChildren<QDockWidget*>()) {
734 dock->setVisible(true); 745 dock->setVisible(true);
735 } 746 }
736 restoreSettings(); 747 restoreSettings();
737 updateRenderPreferences(&ui, &renderPreferences, &documents); 748 updateRenderPreferences(&ui, &renderPreferences, &documents);
738 mainWindow.setWindowTitle(title());
739 ui.actionAbout->setText(ui.actionAbout->text().arg(APPNAME)); 749 ui.actionAbout->setText(ui.actionAbout->text().arg(APPNAME));
750 updateTitle();
740 mainWindow.show(); 751 mainWindow.show();
741 const int result = app.exec(); 752 const int result = app.exec();
742 saveSettings(); 753 saveSettings();
743 return result; 754 return result;
744 } 755 }

mercurial