57 const std::shared_ptr<core::ports::diagnostics::IErrorReporter>&
59 const std::function<
void()>& showAbout) {
63 auto* actions = services.
actions;
65 actions->newFileAction(), &QAction::triggered, &
window,
66 [&
window, errorReporter](
bool) {
67 const QString file = ui::dialogs::pickNewStorageFile(&window);
70 ui::window::reportMainWindowFlow(
72 ui::observability::origins::mainWindow::kActionRouting,
73 "UI requested new file", core::errors::ErrorSeverity::Info,
74 ui::window::makePathContext(file));
75 emit window.newFileRequested(file);
78 actions->openFileAction(), &QAction::triggered, &
window,
80 const QString file = ui::dialogs::pickOpenStorageFile(
82 workspaceStore ? workspaceStore->currentPath() : QString());
85 ui::window::reportMainWindowFlow(
87 ui::observability::origins::mainWindow::kActionRouting,
88 "UI requested open file", core::errors::ErrorSeverity::Info,
89 ui::window::makePathContext(file));
90 emit window.openFileRequested(file);
92 QObject::connect(actions->saveFileAction(), &QAction::triggered, &
window,
93 [&
window, errorReporter](
bool) {
94 ui::window::reportMainWindowFlow(
96 ui::observability::origins::mainWindow::kActionRouting,
97 "UI requested save file");
98 emit window.saveFileRequested();
101 actions->saveFileAsAction(), &QAction::triggered, &
window,
103 const QString file = ui::dialogs::pickSaveStorageFileAs(
105 workspaceStore ? workspaceStore->currentPath() : QString());
108 ui::window::reportMainWindowFlow(
110 ui::observability::origins::mainWindow::kActionRouting,
111 "UI requested save file as", core::errors::ErrorSeverity::Info,
112 ui::window::makePathContext(file));
113 emit window.saveFileAsRequested(file);
116 QObject::connect(actions->quitAction(), &QAction::triggered, &
window,
118 QObject::connect(actions->aboutAction(), &QAction::triggered, &
window,
127 errorReporter](
const QString& filter) {
128 const QStringList files = ui::dialogs::pickImportFiles(
130 settings ? settings->importDefaultPath() : QString());
131 if (!files.isEmpty()) {
132 ui::window::reportMainWindowFlow(
134 ui::observability::origins::mainWindow::kActionRouting,
135 "UI selected import files", core::errors::ErrorSeverity::Info,
136 ui::window::makeFileListContext(files));
137 emit actions->importFilesSelected(files);
138 if (files.size() == 1)
139 emit actions->importFileSelected(files.first());
141 status->setText(ui::text::mainWindow::selectedStatusPattern().arg(
149 errorReporter](
const QString& filter) {
150 const QString file = ui::dialogs::pickExportFile(
152 settings ? settings->exportDefaultDirectory() : QString());
153 if (!file.isEmpty()) {
154 ui::window::reportMainWindowFlow(
156 ui::observability::origins::mainWindow::kActionRouting,
157 "UI selected export path", core::errors::ErrorSeverity::Info,
158 ui::window::makePathContext(file));
159 emit actions->exportFileSelected(file);
162 ui::text::mainWindow::exportPathStatusPattern().arg(file));
168 [&window, actions, status = services.
status, settings = services.
settings,
169 errorReporter](
const QString& title) {
170 const QString directory = ui::dialogs::pickExportDirectory(
172 settings ? settings->exportDefaultDirectory() : QString());
173 if (!directory.isEmpty()) {
174 ui::window::reportMainWindowFlow(
176 ui::observability::origins::mainWindow::kActionRouting,
177 "UI selected export directory", core::errors::ErrorSeverity::Info,
178 ui::window::makePathContext(directory));
179 emit actions->exportDirectorySelected(directory);
182 ui::text::mainWindow::exportPathStatusPattern().arg(directory));
Main window declaration for the UI application.
Declarations for the UI MainWindowContext component.
Declarations for the UI MainWindowTrace component.
Provides translated C++ UI strings for shell, workflow, adapter and view model code.
QString ready()
Text for the idle application state.
Container for shell services owned by the main window context.