diff --git a/gui/window.cpp b/gui/window.cpp index 6f9ea709ee..1898b77e6e 100644 --- a/gui/window.cpp +++ b/gui/window.cpp @@ -89,6 +89,8 @@ //! [0] Window::Window() { + trayIconIcon = new QIcon(":/images/minikube.png"); + checkForMinikube(); createClusterGroupBox(); createActions(); @@ -185,8 +187,6 @@ void Window::createTrayIcon() trayIconMenu->addSeparator(); trayIconMenu->addAction(quitAction); - trayIconIcon = new QIcon(":/images/minikube.png"); - trayIcon = new QSystemTrayIcon(this); trayIcon->setContextMenu(trayIconMenu); trayIcon->setIcon(*trayIconIcon); @@ -443,6 +443,7 @@ void Window::askName() { QDialog dialog; dialog.setWindowTitle(tr("Create minikube Cluster")); + dialog.setWindowIcon(*trayIconIcon); dialog.setModal(true); QFormLayout form(&dialog); @@ -469,6 +470,7 @@ void Window::askCustom() { QDialog dialog; dialog.setWindowTitle(tr("Set Cluster Values")); + dialog.setWindowIcon(*trayIconIcon); dialog.setModal(true); QFormLayout form(&dialog); @@ -593,4 +595,34 @@ void Window::dashboardClose() } } +void Window::checkForMinikube() +{ + QString program = minikubePath(); + if (!program.isEmpty()) { + return; + } + + QDialog dialog; + dialog.setWindowTitle(tr("minikube")); + dialog.setWindowIcon(*trayIconIcon); + dialog.setModal(true); + QFormLayout form(&dialog); + QLabel *message = new QLabel(this); + message->setText("minikube was not found on the path.\nPlease follow the install instructions " + "below to install minikube first.\n"); + form.addWidget(message); + QLabel *link = new QLabel(this); + link->setOpenExternalLinks(true); + link->setText("https://minikube.sigs.k8s.io/" + "docs/start/"); + form.addWidget(link); + QDialogButtonBox buttonBox(Qt::Horizontal, &dialog); + buttonBox.addButton(QString(tr("OK")), QDialogButtonBox::AcceptRole); + connect(&buttonBox, &QDialogButtonBox::accepted, &dialog, &QDialog::accept); + form.addRow(&buttonBox); + dialog.exec(); + exit(EXIT_FAILURE); +} + #endif diff --git a/gui/window.h b/gui/window.h index 5b2bb28d43..bed64c0dac 100644 --- a/gui/window.h +++ b/gui/window.h @@ -121,6 +121,7 @@ private: void initMachine(); void sshConsole(); void dashboardBrowser(); + void checkForMinikube(); QPushButton *sshButton; QPushButton *dashboardButton; QProcess *dashboardProcess;