Manager: Add machine actions to context menu

This commit is contained in:
Alexander Babikov
2025-09-13 21:59:16 +05:00
parent cd6a1487de
commit 4169831102
27 changed files with 246 additions and 46 deletions

View File

@@ -109,6 +109,53 @@ VMManagerMain::VMManagerMain(QWidget *parent) :
if (indexAt.isValid()) {
QMenu contextMenu(tr("Context Menu"), ui->listView);
QAction startAction(tr("&Start"));
contextMenu.addAction(&startAction);
connect(&startAction, &QAction::triggered, [this] {
selected_sysconfig->startButtonPressed();
});
startAction.setEnabled(selected_sysconfig->process->state() == QProcess::NotRunning);
startAction.setVisible(selected_sysconfig->process->state() == QProcess::NotRunning);
QAction pauseAction(tr("&Pause"));
contextMenu.addAction(&pauseAction);
connect(&pauseAction, &QAction::triggered, [this] {
selected_sysconfig->pauseButtonPressed();
});
pauseAction.setEnabled(selected_sysconfig->process->state() == QProcess::Running);
pauseAction.setVisible(selected_sysconfig->process->state() == QProcess::Running);
if (selected_sysconfig->getProcessStatus() != VMManagerSystem::ProcessStatus::Running)
pauseAction.setText(tr("Re&sume"));
QAction resetAction(tr("&Hard reset"));
contextMenu.addAction(&resetAction);
connect(&resetAction, &QAction::triggered, [this] {
selected_sysconfig->restartButtonPressed();
});
resetAction.setEnabled(selected_sysconfig->process->state() == QProcess::Running);
QAction forceShutdownAction(tr("&Force shutdown"));
contextMenu.addAction(&forceShutdownAction);
connect(&forceShutdownAction, &QAction::triggered, [this] {
selected_sysconfig->shutdownForceButtonPressed();
});
forceShutdownAction.setEnabled(selected_sysconfig->process->state() == QProcess::Running);
QAction cadAction(tr("&Ctrl+Alt+Del"));
contextMenu.addAction(&cadAction);
connect(&cadAction, &QAction::triggered, [this] {
selected_sysconfig->cadButtonPressed();
});
cadAction.setEnabled(selected_sysconfig->process->state() == QProcess::Running);
contextMenu.addSeparator();
QAction settingsAction(tr("&Settings..."));
contextMenu.addAction(&settingsAction);
connect(&settingsAction, &QAction::triggered, [this] {
selected_sysconfig->launchSettings();
});
QAction nameChangeAction(tr("Change &display name..."));
contextMenu.addAction(&nameChangeAction);
// Use a lambda to call a function so indexAt can be passed