diff --git a/mainwindow.cpp b/mainwindow.cpp index 856cb82..42540c6 100755 --- a/mainwindow.cpp +++ b/mainwindow.cpp @@ -24,6 +24,8 @@ #include <QIODevice> #include <QInputDialog> #include "qemusetting.h" +#include "vbox.h" +#include "qemu.h" MainWindow::MainWindow(QWidget *parent) : QMainWindow(parent), @@ -205,6 +207,20 @@ void MainWindow::on_install_clicked() archFile.write("amd64"); archFile.close(); switch (ui->systemVersion->currentIndex()) { + case 0: + if(!QFile::exists(QCoreApplication::applicationDirPath() + "/Windows7X86Auto.iso")){ + if(QMessageBox::question(this, "提示", "似乎无法找到 Windows7X86Auto.iso,是否继续创建虚拟机?\n缺少该文件可能会导致虚拟机无法正常启动,尝试重新安装 Wine 运行器再试试?") == QMessageBox::No){ + return; + } + } + break; + case 1: + if(!QFile::exists(QCoreApplication::applicationDirPath() + "/Windows7X64Auto.iso")){ + if(QMessageBox::question(this, "提示", "似乎无法找到 Windows7X64Auto.iso,是否继续创建虚拟机?\n缺少该文件可能会导致虚拟机无法正常启动,尝试重新安装 Wine 运行器再试试?") == QMessageBox::No){ + return; + } + } + break; case 3: if(!QFile::exists("/usr/share/qemu/OVMF.fd") && !QFile::exists(QCoreApplication::applicationDirPath() + "/OVMF.fd") && ui->vmChooser->currentIndex() == 0){ if(QMessageBox::question(this, "提示", "似乎无法找到 UEFI 固件,是否继续创建虚拟机?\nQemu 固件可以在“安装 Qemu”处安装") == QMessageBox::No){ @@ -419,3 +435,17 @@ void MainWindow::on_actionVMInstallLog_triggered() file.close(); } + +void MainWindow::on_action_StopVirtualBox_triggered() +{ + vbox vmControl(""); + vmControl.Stop(); +} + + +void MainWindow::on_action_StopQemu_triggered() +{ + qemu vmControl(""); + vmControl.Stop(); +} + diff --git a/mainwindow.h b/mainwindow.h index 6e81c05..07df683 100755 --- a/mainwindow.h +++ b/mainwindow.h @@ -54,6 +54,10 @@ private slots: void on_actionVMInstallLog_triggered(); + void on_action_StopVirtualBox_triggered(); + + void on_action_StopQemu_triggered(); + private: bool stopShowTime = 0; Ui::MainWindow *ui; diff --git a/mainwindow.ui b/mainwindow.ui index df76980..add4cd3 100755 --- a/mainwindow.ui +++ b/mainwindow.ui @@ -466,6 +466,9 @@ p, li { white-space: pre-wrap; } <addaction name="actionVMRunlLog"/> <addaction name="separator"/> <addaction name="actionVMTest"/> + <addaction name="separator"/> + <addaction name="action_StopVirtualBox"/> + <addaction name="action_StopQemu"/> </widget> <addaction name="menuVM"/> </widget> @@ -504,6 +507,16 @@ p, li { white-space: pre-wrap; } <string>虚拟机测试(X86、Qemu)</string> </property> </action> + <action name="action_StopVirtualBox"> + <property name="text"> + <string>强制停止 VirtualBox</string> + </property> + </action> + <action name="action_StopQemu"> + <property name="text"> + <string>强制停止 Qemu</string> + </property> + </action> </widget> <layoutdefault spacing="6" margin="11"/> <resources/>