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