add a devmode switch
This commit is contained in:
@@ -30,6 +30,7 @@ import sys
|
|||||||
parser = argparse.ArgumentParser(description="SDK snap launcher")
|
parser = argparse.ArgumentParser(description="SDK snap launcher")
|
||||||
parser.add_argument('snap_package',action="store")
|
parser.add_argument('snap_package',action="store")
|
||||||
parser.add_argument('snap_command',action='store')
|
parser.add_argument('snap_command',action='store')
|
||||||
|
parser.add_argument('--devmode' ,action='store_true')
|
||||||
|
|
||||||
options, args = parser.parse_known_args()
|
options, args = parser.parse_known_args()
|
||||||
|
|
||||||
@@ -48,7 +49,11 @@ sys.stdout.flush()
|
|||||||
sys.stderr.flush()
|
sys.stderr.flush()
|
||||||
|
|
||||||
#ok lets install the snap package
|
#ok lets install the snap package
|
||||||
ret = subprocess.call(["snap", "install", options.snap_package, "--dangerous"], stdout=sys.stdout, stderr=sys.stderr)
|
snaparg = ["snap", "install", options.snap_package, "--dangerous"]
|
||||||
|
if options.devmode:
|
||||||
|
print("Enabling devmode\n")
|
||||||
|
snaparg += ["--devmode"]
|
||||||
|
ret = subprocess.call(snaparg, stdout=sys.stdout, stderr=sys.stderr)
|
||||||
if ret != 0:
|
if ret != 0:
|
||||||
sys.exit(ret)
|
sys.exit(ret)
|
||||||
|
|
||||||
@@ -71,6 +76,7 @@ signal.signal(signal.SIGTERM, signalHandler)
|
|||||||
signal.signal(signal.SIGHUP, signalHandler)
|
signal.signal(signal.SIGHUP, signalHandler)
|
||||||
|
|
||||||
#start the actual app
|
#start the actual app
|
||||||
|
print("Command args are: "+str(args)+"\n")
|
||||||
if not stopped:
|
if not stopped:
|
||||||
proc = subprocess.Popen(["snap", "run", app_info[0]+"."+options.snap_command]+args, stdout=sys.stdout, stderr=sys.stderr)
|
proc = subprocess.Popen(["snap", "run", app_info[0]+"."+options.snap_command]+args, stdout=sys.stdout, stderr=sys.stderr)
|
||||||
ret = proc.wait()
|
ret = proc.wait()
|
||||||
|
|||||||
@@ -18,17 +18,20 @@
|
|||||||
#include <QFileInfo>
|
#include <QFileInfo>
|
||||||
#include <QFormLayout>
|
#include <QFormLayout>
|
||||||
#include <QComboBox>
|
#include <QComboBox>
|
||||||
|
#include <QCheckBox>
|
||||||
|
|
||||||
namespace Ubuntu {
|
namespace Ubuntu {
|
||||||
namespace Internal {
|
namespace Internal {
|
||||||
|
|
||||||
const QString COMMAND_KEY = QStringLiteral("SnapProjectManager.SnapRunConfiguration.SnapCommand");
|
const QString COMMAND_KEY = QStringLiteral("SnapProjectManager.SnapRunConfiguration.SnapCommand");
|
||||||
|
const QString DEVMODE_KEY = QStringLiteral("SnapProjectManager.SnapRunConfiguration.SnapDevMode");
|
||||||
const QString WORKINGDIRECTORYASPECT_ID = QStringLiteral("SnapProjectManager.SnapRunConfiguration.WorkingDirectoryAspect");
|
const QString WORKINGDIRECTORYASPECT_ID = QStringLiteral("SnapProjectManager.SnapRunConfiguration.WorkingDirectoryAspect");
|
||||||
const QString ARGUMENTASPECT_ID = QStringLiteral("SnapProjectManager.SnapRunConfiguration.ArgumentAspect");
|
const QString ARGUMENTASPECT_ID = QStringLiteral("SnapProjectManager.SnapRunConfiguration.ArgumentAspect");
|
||||||
const QString TERMINALASPECT_ID = QStringLiteral("SnapProjectManager.SnapRunConfiguration.TerminalAspect");
|
const QString TERMINALASPECT_ID = QStringLiteral("SnapProjectManager.SnapRunConfiguration.TerminalAspect");
|
||||||
|
|
||||||
SnapRunConfiguration::SnapRunConfiguration(ProjectExplorer::Target *parent)
|
SnapRunConfiguration::SnapRunConfiguration(ProjectExplorer::Target *parent)
|
||||||
: ProjectExplorer::RunConfiguration(parent, Constants::SNAP_RUNCONFIGURATION_ID)
|
: ProjectExplorer::RunConfiguration(parent, Constants::SNAP_RUNCONFIGURATION_ID)
|
||||||
|
, m_useDevMode(true)
|
||||||
, m_workingDirectoryAspect(new ProjectExplorer::WorkingDirectoryAspect(this, WORKINGDIRECTORYASPECT_ID))
|
, m_workingDirectoryAspect(new ProjectExplorer::WorkingDirectoryAspect(this, WORKINGDIRECTORYASPECT_ID))
|
||||||
, m_argumentAspect(new ProjectExplorer::ArgumentsAspect(this, ARGUMENTASPECT_ID))
|
, m_argumentAspect(new ProjectExplorer::ArgumentsAspect(this, ARGUMENTASPECT_ID))
|
||||||
, m_terminalAspect(new ProjectExplorer::TerminalAspect(this, TERMINALASPECT_ID))
|
, m_terminalAspect(new ProjectExplorer::TerminalAspect(this, TERMINALASPECT_ID))
|
||||||
@@ -87,6 +90,7 @@ bool SnapRunConfiguration::fromMap(const QVariantMap &map)
|
|||||||
return false;
|
return false;
|
||||||
|
|
||||||
m_command = map.value(COMMAND_KEY, QString()).toString();
|
m_command = map.value(COMMAND_KEY, QString()).toString();
|
||||||
|
m_useDevMode = map.value(DEVMODE_KEY, true).toBool();
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -94,6 +98,7 @@ QVariantMap SnapRunConfiguration::toMap() const
|
|||||||
{
|
{
|
||||||
QVariantMap map = ProjectExplorer::RunConfiguration::toMap();
|
QVariantMap map = ProjectExplorer::RunConfiguration::toMap();
|
||||||
map.insert(COMMAND_KEY, m_command);
|
map.insert(COMMAND_KEY, m_command);
|
||||||
|
map.insert(DEVMODE_KEY, m_useDevMode);
|
||||||
return map;
|
return map;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -131,6 +136,9 @@ ProjectExplorer::Runnable SnapRunConfiguration::runnable() const
|
|||||||
m_command
|
m_command
|
||||||
};
|
};
|
||||||
|
|
||||||
|
if (m_useDevMode)
|
||||||
|
args.prepend(QStringLiteral("--devmode"));
|
||||||
|
|
||||||
ProjectExplorer::StandardRunnable r;
|
ProjectExplorer::StandardRunnable r;
|
||||||
r.executable = Utils::FileName::fromString(Constants::UBUNTU_SCRIPTPATH).appendPath(QStringLiteral("qtc_desktop_snaprunner.py")).toString();;
|
r.executable = Utils::FileName::fromString(Constants::UBUNTU_SCRIPTPATH).appendPath(QStringLiteral("qtc_desktop_snaprunner.py")).toString();;
|
||||||
r.workingDirectory = m_workingDirectoryAspect->workingDirectory().toString();
|
r.workingDirectory = m_workingDirectoryAspect->workingDirectory().toString();
|
||||||
@@ -167,6 +175,16 @@ void SnapRunConfiguration::updateConfiguration()
|
|||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
bool SnapRunConfiguration::useDevMode() const
|
||||||
|
{
|
||||||
|
return m_useDevMode;
|
||||||
|
}
|
||||||
|
|
||||||
|
void SnapRunConfiguration::setUseDevMode(bool useDevMode)
|
||||||
|
{
|
||||||
|
m_useDevMode = useDevMode;
|
||||||
|
}
|
||||||
|
|
||||||
SnapRunConfigurationWidget::SnapRunConfigurationWidget(SnapRunConfiguration *config)
|
SnapRunConfigurationWidget::SnapRunConfigurationWidget(SnapRunConfiguration *config)
|
||||||
: QWidget (nullptr),
|
: QWidget (nullptr),
|
||||||
m_rc(config),
|
m_rc(config),
|
||||||
@@ -188,10 +206,16 @@ SnapRunConfigurationWidget::SnapRunConfigurationWidget(SnapRunConfiguration *con
|
|||||||
if (idx >= 0)
|
if (idx >= 0)
|
||||||
m_commandsBox->setCurrentIndex(idx);
|
m_commandsBox->setCurrentIndex(idx);
|
||||||
|
|
||||||
|
m_devmodeCheckBox = new QCheckBox(tr("Use devmode"), this);
|
||||||
|
m_devmodeCheckBox->setChecked(config->useDevMode());
|
||||||
|
connect(m_devmodeCheckBox, &QCheckBox::stateChanged,
|
||||||
|
this, &SnapRunConfigurationWidget::devModeStateChanged);
|
||||||
|
|
||||||
layout->addRow(tr("Command:"), m_commandsBox);
|
layout->addRow(tr("Command:"), m_commandsBox);
|
||||||
config->extraAspect<ProjectExplorer::ArgumentsAspect>()->addToMainConfigurationWidget(this, layout);
|
config->extraAspect<ProjectExplorer::ArgumentsAspect>()->addToMainConfigurationWidget(this, layout);
|
||||||
config->extraAspect<ProjectExplorer::WorkingDirectoryAspect>()->addToMainConfigurationWidget(this,layout);
|
config->extraAspect<ProjectExplorer::WorkingDirectoryAspect>()->addToMainConfigurationWidget(this,layout);
|
||||||
config->extraAspect<ProjectExplorer::TerminalAspect>()->addToMainConfigurationWidget(this,layout);
|
config->extraAspect<ProjectExplorer::TerminalAspect>()->addToMainConfigurationWidget(this,layout);
|
||||||
|
layout->addRow(QStringLiteral(""), m_devmodeCheckBox);
|
||||||
|
|
||||||
if(config->target()) {
|
if(config->target()) {
|
||||||
connect(qobject_cast<SnapcraftProject*>(config->target()->project()), &SnapcraftProject::commandListChanged,
|
connect(qobject_cast<SnapcraftProject*>(config->target()->project()), &SnapcraftProject::commandListChanged,
|
||||||
@@ -226,6 +250,14 @@ void SnapRunConfigurationWidget::updateComboBox()
|
|||||||
m_commandsBox->setCurrentIndex(0);
|
m_commandsBox->setCurrentIndex(0);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void SnapRunConfigurationWidget::devModeStateChanged(int state)
|
||||||
|
{
|
||||||
|
if (state == Qt::Checked)
|
||||||
|
m_rc->setUseDevMode(true);
|
||||||
|
else
|
||||||
|
m_rc->setUseDevMode(false);
|
||||||
|
}
|
||||||
|
|
||||||
void SnapRunConfigurationWidget::commandSelected(const int index)
|
void SnapRunConfigurationWidget::commandSelected(const int index)
|
||||||
{
|
{
|
||||||
if(m_updating)
|
if(m_updating)
|
||||||
|
|||||||
@@ -9,6 +9,7 @@
|
|||||||
#include <QStringList>
|
#include <QStringList>
|
||||||
|
|
||||||
class QComboBox;
|
class QComboBox;
|
||||||
|
class QCheckBox;
|
||||||
|
|
||||||
namespace Utils {
|
namespace Utils {
|
||||||
class PathChooser;
|
class PathChooser;
|
||||||
@@ -49,6 +50,9 @@ public:
|
|||||||
virtual QWidget *createConfigurationWidget() override;
|
virtual QWidget *createConfigurationWidget() override;
|
||||||
virtual ProjectExplorer::Runnable runnable() const override;
|
virtual ProjectExplorer::Runnable runnable() const override;
|
||||||
|
|
||||||
|
bool useDevMode() const;
|
||||||
|
void setUseDevMode(bool useDevMode);
|
||||||
|
|
||||||
private:
|
private:
|
||||||
SnapcraftStep *activeSnapcraftStep() const;
|
SnapcraftStep *activeSnapcraftStep() const;
|
||||||
void updateCommandList(const QStringList &commands);
|
void updateCommandList(const QStringList &commands);
|
||||||
@@ -56,6 +60,7 @@ private:
|
|||||||
|
|
||||||
private:
|
private:
|
||||||
QString m_command;
|
QString m_command;
|
||||||
|
bool m_useDevMode;
|
||||||
QMetaObject::Connection m_currBuildConfConn;
|
QMetaObject::Connection m_currBuildConfConn;
|
||||||
ProjectExplorer::WorkingDirectoryAspect* m_workingDirectoryAspect;
|
ProjectExplorer::WorkingDirectoryAspect* m_workingDirectoryAspect;
|
||||||
ProjectExplorer::ArgumentsAspect* m_argumentAspect;
|
ProjectExplorer::ArgumentsAspect* m_argumentAspect;
|
||||||
@@ -71,6 +76,7 @@ public:
|
|||||||
|
|
||||||
protected:
|
protected:
|
||||||
void updateComboBox ();
|
void updateComboBox ();
|
||||||
|
void devModeStateChanged (int state);
|
||||||
|
|
||||||
protected slots:
|
protected slots:
|
||||||
void commandSelected (const int index);
|
void commandSelected (const int index);
|
||||||
@@ -78,6 +84,7 @@ protected slots:
|
|||||||
private:
|
private:
|
||||||
SnapRunConfiguration *m_rc;
|
SnapRunConfiguration *m_rc;
|
||||||
QComboBox *m_commandsBox;
|
QComboBox *m_commandsBox;
|
||||||
|
QCheckBox *m_devmodeCheckBox;
|
||||||
bool m_updating;
|
bool m_updating;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user