commit
ebe173aa79
|
@ -39,6 +39,7 @@ AdvancedView::AdvancedView(QIcon icon)
|
|||
deleteButton = new QPushButton(tr("Delete"));
|
||||
refreshButton = new QPushButton(tr("Refresh"));
|
||||
createButton = new QPushButton(tr("Create"));
|
||||
dockerEnvButton = new QPushButton(tr("docker-env"));
|
||||
sshButton = new QPushButton(tr("SSH"));
|
||||
dashboardButton = new QPushButton(tr("Dashboard"));
|
||||
basicButton = new QPushButton(tr("Basic View"));
|
||||
|
@ -56,6 +57,7 @@ AdvancedView::AdvancedView(QIcon icon)
|
|||
bottomButtonLayout->addWidget(stopButton);
|
||||
bottomButtonLayout->addWidget(pauseButton);
|
||||
bottomButtonLayout->addWidget(deleteButton);
|
||||
bottomButtonLayout->addWidget(dockerEnvButton);
|
||||
bottomButtonLayout->addWidget(sshButton);
|
||||
bottomButtonLayout->addWidget(dashboardButton);
|
||||
|
||||
|
@ -78,6 +80,7 @@ AdvancedView::AdvancedView(QIcon icon)
|
|||
connect(deleteButton, &QAbstractButton::clicked, this, &AdvancedView::delete_);
|
||||
connect(refreshButton, &QAbstractButton::clicked, this, &AdvancedView::refresh);
|
||||
connect(createButton, &QAbstractButton::clicked, this, &AdvancedView::askName);
|
||||
connect(dockerEnvButton, &QAbstractButton::clicked, this, &AdvancedView::dockerEnv);
|
||||
connect(sshButton, &QAbstractButton::clicked, this, &AdvancedView::ssh);
|
||||
connect(dashboardButton, &QAbstractButton::clicked, this, &AdvancedView::dashboard);
|
||||
connect(basicButton, &QAbstractButton::clicked, this, &AdvancedView::basic);
|
||||
|
@ -113,8 +116,10 @@ void AdvancedView::update(Cluster cluster)
|
|||
deleteButton->setEnabled(exists);
|
||||
dashboardButton->setEnabled(isRunning);
|
||||
#if __linux__ || __APPLE__
|
||||
dockerEnvButton->setEnabled(isRunning);
|
||||
sshButton->setEnabled(exists);
|
||||
#else
|
||||
dockerEnvButton->setEnabled(false);
|
||||
sshButton->setEnabled(false);
|
||||
#endif
|
||||
pauseButton->setText(getPauseLabel(isPaused));
|
||||
|
@ -273,6 +278,7 @@ void AdvancedView::disableButtons()
|
|||
stopButton->setEnabled(false);
|
||||
pauseButton->setEnabled(false);
|
||||
deleteButton->setEnabled(false);
|
||||
dockerEnvButton->setEnabled(false);
|
||||
sshButton->setEnabled(false);
|
||||
dashboardButton->setEnabled(false);
|
||||
basicButton->setEnabled(false);
|
||||
|
|
|
@ -32,6 +32,7 @@ signals:
|
|||
void pause();
|
||||
void delete_();
|
||||
void refresh();
|
||||
void dockerEnv();
|
||||
void ssh();
|
||||
void dashboard();
|
||||
void basic();
|
||||
|
@ -47,6 +48,7 @@ private:
|
|||
QPushButton *pauseButton;
|
||||
QPushButton *deleteButton;
|
||||
QPushButton *refreshButton;
|
||||
QPushButton *dockerEnvButton;
|
||||
QPushButton *sshButton;
|
||||
QPushButton *dashboardButton;
|
||||
QPushButton *basicButton;
|
||||
|
|
|
@ -11,6 +11,7 @@ BasicView::BasicView()
|
|||
pauseButton = new QPushButton(tr("Pause"));
|
||||
deleteButton = new QPushButton(tr("Delete"));
|
||||
refreshButton = new QPushButton(tr("Refresh"));
|
||||
dockerEnvButton = new QPushButton(tr("docker-env"));
|
||||
sshButton = new QPushButton(tr("SSH"));
|
||||
dashboardButton = new QPushButton(tr("Dashboard"));
|
||||
advancedButton = new QPushButton(tr("Advanced View"));
|
||||
|
@ -24,6 +25,7 @@ BasicView::BasicView()
|
|||
buttonLayout->addWidget(pauseButton);
|
||||
buttonLayout->addWidget(deleteButton);
|
||||
buttonLayout->addWidget(refreshButton);
|
||||
buttonLayout->addWidget(dockerEnvButton);
|
||||
buttonLayout->addWidget(sshButton);
|
||||
buttonLayout->addWidget(dashboardButton);
|
||||
buttonLayout->addWidget(advancedButton);
|
||||
|
@ -34,6 +36,7 @@ BasicView::BasicView()
|
|||
connect(pauseButton, &QAbstractButton::clicked, this, &BasicView::pause);
|
||||
connect(deleteButton, &QAbstractButton::clicked, this, &BasicView::delete_);
|
||||
connect(refreshButton, &QAbstractButton::clicked, this, &BasicView::refresh);
|
||||
connect(dockerEnvButton, &QAbstractButton::clicked, this, &BasicView::dockerEnv);
|
||||
connect(sshButton, &QAbstractButton::clicked, this, &BasicView::ssh);
|
||||
connect(dashboardButton, &QAbstractButton::clicked, this, &BasicView::dashboard);
|
||||
connect(advancedButton, &QAbstractButton::clicked, this, &BasicView::advanced);
|
||||
|
@ -57,7 +60,6 @@ static QString getStartLabel(bool isRunning)
|
|||
|
||||
void BasicView::update(Cluster cluster)
|
||||
{
|
||||
|
||||
startButton->setEnabled(true);
|
||||
advancedButton->setEnabled(true);
|
||||
refreshButton->setEnabled(true);
|
||||
|
@ -69,8 +71,10 @@ void BasicView::update(Cluster cluster)
|
|||
deleteButton->setEnabled(exists);
|
||||
dashboardButton->setEnabled(isRunning);
|
||||
#if __linux__ || __APPLE__
|
||||
dockerEnvButton->setEnabled(isRunning);
|
||||
sshButton->setEnabled(exists);
|
||||
#else
|
||||
dockerEnvButton->setEnabled(false);
|
||||
sshButton->setEnabled(false);
|
||||
#endif
|
||||
pauseButton->setText(getPauseLabel(isPaused));
|
||||
|
@ -83,6 +87,7 @@ void BasicView::disableButtons()
|
|||
stopButton->setEnabled(false);
|
||||
deleteButton->setEnabled(false);
|
||||
pauseButton->setEnabled(false);
|
||||
dockerEnvButton->setEnabled(false);
|
||||
sshButton->setEnabled(false);
|
||||
dashboardButton->setEnabled(false);
|
||||
advancedButton->setEnabled(false);
|
||||
|
|
|
@ -22,6 +22,7 @@ signals:
|
|||
void pause();
|
||||
void delete_();
|
||||
void refresh();
|
||||
void dockerEnv();
|
||||
void ssh();
|
||||
void dashboard();
|
||||
void advanced();
|
||||
|
@ -32,6 +33,7 @@ private:
|
|||
QPushButton *pauseButton;
|
||||
QPushButton *deleteButton;
|
||||
QPushButton *refreshButton;
|
||||
QPushButton *dockerEnvButton;
|
||||
QPushButton *sshButton;
|
||||
QPushButton *dashboardButton;
|
||||
QPushButton *advancedButton;
|
||||
|
|
|
@ -27,6 +27,7 @@ Operator::Operator(AdvancedView *advancedView, BasicView *basicView, CommandRunn
|
|||
connect(m_basicView, &BasicView::pause, this, &Operator::pauseOrUnpauseMinikube);
|
||||
connect(m_basicView, &BasicView::delete_, this, &Operator::deleteMinikube);
|
||||
connect(m_basicView, &BasicView::refresh, this, &Operator::updateClusters);
|
||||
connect(m_basicView, &BasicView::dockerEnv, this, &Operator::dockerEnv);
|
||||
connect(m_basicView, &BasicView::ssh, this, &Operator::sshConsole);
|
||||
connect(m_basicView, &BasicView::dashboard, this, &Operator::dashboardBrowser);
|
||||
connect(m_basicView, &BasicView::advanced, this, &Operator::toAdvancedView);
|
||||
|
@ -36,6 +37,7 @@ Operator::Operator(AdvancedView *advancedView, BasicView *basicView, CommandRunn
|
|||
connect(m_advancedView, &AdvancedView::pause, this, &Operator::pauseOrUnpauseMinikube);
|
||||
connect(m_advancedView, &AdvancedView::delete_, this, &Operator::deleteMinikube);
|
||||
connect(m_advancedView, &AdvancedView::refresh, this, &Operator::updateClusters);
|
||||
connect(m_advancedView, &AdvancedView::dockerEnv, this, &Operator::dockerEnv);
|
||||
connect(m_advancedView, &AdvancedView::ssh, this, &Operator::sshConsole);
|
||||
connect(m_advancedView, &AdvancedView::dashboard, this, &Operator::dashboardBrowser);
|
||||
connect(m_advancedView, &AdvancedView::basic, this, &Operator::toBasicView);
|
||||
|
@ -151,7 +153,7 @@ void Operator::toBasicView()
|
|||
{
|
||||
m_isBasicView = true;
|
||||
m_stackedWidget->setCurrentIndex(0);
|
||||
m_parent->resize(200, 275);
|
||||
m_parent->resize(200, 300);
|
||||
updateButtons();
|
||||
}
|
||||
|
||||
|
@ -304,6 +306,8 @@ static QString minikubePath()
|
|||
void Operator::sshConsole()
|
||||
{
|
||||
QString program = minikubePath();
|
||||
QString commandArgs = QString("ssh -p %1").arg(selectedClusterName());
|
||||
QString command = QString("%1 %2").arg(program, commandArgs);
|
||||
#ifndef QT_NO_TERMWIDGET
|
||||
QMainWindow *mainWindow = new QMainWindow();
|
||||
int startnow = 0; // set shell program first
|
||||
|
@ -317,8 +321,7 @@ void Operator::sshConsole()
|
|||
console->setTerminalFont(font);
|
||||
console->setColorScheme("Tango");
|
||||
console->setShellProgram(program);
|
||||
QStringList args = { "ssh", "-p", selectedClusterName() };
|
||||
console->setArgs(args);
|
||||
console->setArgs({ commandArgs });
|
||||
console->startShellProgram();
|
||||
|
||||
QObject::connect(console, SIGNAL(finished()), mainWindow, SLOT(close()));
|
||||
|
@ -328,9 +331,10 @@ void Operator::sshConsole()
|
|||
mainWindow->setCentralWidget(console);
|
||||
mainWindow->show();
|
||||
#elif __APPLE__
|
||||
QString command = program + " ssh -p " + selectedClusterName();
|
||||
QStringList arguments = { "-e", "tell app \"Terminal\"", "-e", "activate",
|
||||
"-e", "do script \"" + command + "\"", "-e", "end tell" };
|
||||
QStringList arguments = { "-e", "tell app \"Terminal\"",
|
||||
"-e", "do script \"" + command + "\"",
|
||||
"-e", "activate",
|
||||
"-e", "end tell" };
|
||||
QProcess *process = new QProcess(this);
|
||||
process->start("/usr/bin/osascript", arguments);
|
||||
#else
|
||||
|
@ -342,9 +346,56 @@ void Operator::sshConsole()
|
|||
}
|
||||
}
|
||||
|
||||
QStringList arguments = { "-e", QString("%1 ssh -p %2").arg(program, selectedClusterName()) };
|
||||
QProcess *process = new QProcess(this);
|
||||
process->start(QStandardPaths::findExecutable(terminal), arguments);
|
||||
process->start(QStandardPaths::findExecutable(terminal), { "-e", commmand });
|
||||
#endif
|
||||
}
|
||||
|
||||
void Operator::dockerEnv()
|
||||
{
|
||||
QString program = minikubePath();
|
||||
QString commandArgs = QString("$(%1 -p %2 docker-env)").arg(program, selectedClusterName());
|
||||
QString command = QString("eval %1").arg(commandArgs);
|
||||
#ifndef QT_NO_TERMWIDGET
|
||||
QMainWindow *mainWindow = new QMainWindow();
|
||||
int startnow = 0; // set shell program first
|
||||
|
||||
QTermWidget *console = new QTermWidget(startnow);
|
||||
|
||||
QFont font = QApplication::font();
|
||||
font.setFamily("Monospace");
|
||||
font.setPointSize(10);
|
||||
|
||||
console->setTerminalFont(font);
|
||||
console->setColorScheme("Tango");
|
||||
console->setShellProgram("eval");
|
||||
console->setArgs({ commandArgs });
|
||||
console->startShellProgram();
|
||||
|
||||
QObject::connect(console, SIGNAL(finished()), mainWindow, SLOT(close()));
|
||||
|
||||
mainWindow->setWindowTitle(nameLabel->text());
|
||||
mainWindow->resize(800, 400);
|
||||
mainWindow->setCentralWidget(console);
|
||||
mainWindow->show();
|
||||
#elif __APPLE__
|
||||
QStringList arguments = { "-e", "tell app \"Terminal\"",
|
||||
"-e", "do script \"" + command + "\"",
|
||||
"-e", "activate",
|
||||
"-e", "end tell" };
|
||||
QProcess *process = new QProcess(this);
|
||||
process->start("/usr/bin/osascript", arguments);
|
||||
#else
|
||||
QString terminal = qEnvironmentVariable("TERMINAL");
|
||||
if (terminal.isEmpty()) {
|
||||
terminal = "x-terminal-emulator";
|
||||
if (QStandardPaths::findExecutable(terminal).isEmpty()) {
|
||||
terminal = "xterm";
|
||||
}
|
||||
}
|
||||
|
||||
QProcess *process = new QProcess(this);
|
||||
process->start(QStandardPaths::findExecutable(terminal), { "-e", command });
|
||||
#endif
|
||||
}
|
||||
|
||||
|
|
|
@ -47,6 +47,7 @@ private:
|
|||
QString selectedClusterName();
|
||||
Cluster selectedCluster();
|
||||
void sshConsole();
|
||||
void dockerEnv();
|
||||
void dashboardBrowser();
|
||||
void dashboardClose();
|
||||
void pauseMinikube();
|
||||
|
|
|
@ -116,7 +116,7 @@ Window::Window()
|
|||
layout = new QVBoxLayout;
|
||||
layout->addWidget(stackedWidget);
|
||||
setLayout(layout);
|
||||
resize(200, 275);
|
||||
resize(200, 300);
|
||||
setWindowTitle(tr("minikube"));
|
||||
setWindowIcon(*trayIconIcon);
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue