MCPcopy Create free account
hub / github.com/IENT/YUView / createMenusAndActions

Method createMenusAndActions

YUViewLib/src/ui/Mainwindow.cpp:240–457  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

238}
239
240void MainWindow::createMenusAndActions()
241{
242 auto addActionToMenu = [this](QMenu * menu,
243 QString name,
244 auto reciever,
245 auto functionPointer,
246 const QKeySequence shortcut = {}) {
247 (void)this; // QObject::connect uses this
248 auto action = new QAction(name, menu);
249 action->setShortcut(shortcut);
250 QObject::connect(action, &QAction::triggered, reciever, functionPointer);
251 menu->addAction(action);
252 };
253
254 auto fileMenu = menuBar()->addMenu(tr("&File"));
255 addActionToMenu(
256 fileMenu, "&Open File...", this, &MainWindow::showFileOpenDialog, Qt::CTRL | Qt::Key_O);
257
258 auto recentFileMenu = fileMenu->addMenu("Recent Files");
259 for (int i = 0; i < MAX_RECENT_FILES; i++)
260 {
261 this->recentFileActions[i] = new QAction(this);
262 connect(
263 this->recentFileActions[i].data(), &QAction::triggered, this, &MainWindow::openRecentFile);
264 recentFileMenu->addAction(this->recentFileActions[i]);
265 }
266
267 fileMenu->addSeparator();
268 addActionToMenu(
269 fileMenu, "&Add Text Frame", ui.playlistTreeWidget, &PlaylistTreeWidget::addTextItem);
270 addActionToMenu(fileMenu,
271 "&Add Difference Sequence",
272 ui.playlistTreeWidget,
273 &PlaylistTreeWidget::addDifferenceItem);
274 addActionToMenu(
275 fileMenu, "&Add Overlay", ui.playlistTreeWidget, &PlaylistTreeWidget::addOverlayItem);
276 fileMenu->addSeparator();
277 addActionToMenu(fileMenu, "&Delete Item", this, &MainWindow::deleteSelectedItems, Qt::Key_Delete);
278 fileMenu->addSeparator();
279 addActionToMenu(fileMenu,
280 "&Save Playlist...",
281 ui.playlistTreeWidget,
282 &PlaylistTreeWidget::savePlaylistToFile,
283 Qt::CTRL | Qt::Key_S);
284 fileMenu->addSeparator();
285 addActionToMenu(fileMenu, "&Save Screenshot...", this, &MainWindow::saveScreenshot);
286 fileMenu->addSeparator();
287 addActionToMenu(fileMenu, "&Settings...", this, &MainWindow::showSettingsWindow);
288 fileMenu->addSeparator();
289 addActionToMenu(fileMenu, "Exit", this, &MainWindow::close);
290
291 // On Mac, the key to delete an item is backspace. We will add this for all platforms
292 auto backSpaceDelete = new QShortcut(QKeySequence(Qt::Key_Backspace), this);
293 QObject::connect(backSpaceDelete, &QShortcut::activated, this, &MainWindow::deleteSelectedItems);
294
295 auto viewMenu = menuBar()->addMenu(tr("&View"));
296 // Sub menu save/load state
297 auto saveStateMenu = viewMenu->addMenu("Save View State");

Callers

nothing calls this directly

Calls 6

performanceTestMethod · 0.95
setTextMethod · 0.80
addMenuActionsMethod · 0.80
dataMethod · 0.45

Tested by

no test coverage detected