add a devmode switch

This commit is contained in:
Benjamin Zeller
2016-11-08 13:16:30 +01:00
parent 9d2257f121
commit 259f9a89fb
3 changed files with 46 additions and 1 deletions

View File

@@ -30,6 +30,7 @@ import sys
parser = argparse.ArgumentParser(description="SDK snap launcher")
parser.add_argument('snap_package',action="store")
parser.add_argument('snap_command',action='store')
parser.add_argument('--devmode' ,action='store_true')
options, args = parser.parse_known_args()
@@ -48,7 +49,11 @@ sys.stdout.flush()
sys.stderr.flush()
#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:
sys.exit(ret)
@@ -71,6 +76,7 @@ signal.signal(signal.SIGTERM, signalHandler)
signal.signal(signal.SIGHUP, signalHandler)
#start the actual app
print("Command args are: "+str(args)+"\n")
if not stopped:
proc = subprocess.Popen(["snap", "run", app_info[0]+"."+options.snap_command]+args, stdout=sys.stdout, stderr=sys.stderr)
ret = proc.wait()

View File

@@ -18,17 +18,20 @@
#include <QFileInfo>
#include <QFormLayout>
#include <QComboBox>
#include <QCheckBox>
namespace Ubuntu {
namespace Internal {
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 ARGUMENTASPECT_ID = QStringLiteral("SnapProjectManager.SnapRunConfiguration.ArgumentAspect");
const QString TERMINALASPECT_ID = QStringLiteral("SnapProjectManager.SnapRunConfiguration.TerminalAspect");
SnapRunConfiguration::SnapRunConfiguration(ProjectExplorer::Target *parent)
: ProjectExplorer::RunConfiguration(parent, Constants::SNAP_RUNCONFIGURATION_ID)
, m_useDevMode(true)
, m_workingDirectoryAspect(new ProjectExplorer::WorkingDirectoryAspect(this, WORKINGDIRECTORYASPECT_ID))
, m_argumentAspect(new ProjectExplorer::ArgumentsAspect(this, ARGUMENTASPECT_ID))
, m_terminalAspect(new ProjectExplorer::TerminalAspect(this, TERMINALASPECT_ID))
@@ -87,6 +90,7 @@ bool SnapRunConfiguration::fromMap(const QVariantMap &map)
return false;
m_command = map.value(COMMAND_KEY, QString()).toString();
m_useDevMode = map.value(DEVMODE_KEY, true).toBool();
return true;
}
@@ -94,6 +98,7 @@ QVariantMap SnapRunConfiguration::toMap() const
{
QVariantMap map = ProjectExplorer::RunConfiguration::toMap();
map.insert(COMMAND_KEY, m_command);
map.insert(DEVMODE_KEY, m_useDevMode);
return map;
}
@@ -131,6 +136,9 @@ ProjectExplorer::Runnable SnapRunConfiguration::runnable() const
m_command
};
if (m_useDevMode)
args.prepend(QStringLiteral("--devmode"));
ProjectExplorer::StandardRunnable r;
r.executable = Utils::FileName::fromString(Constants::UBUNTU_SCRIPTPATH).appendPath(QStringLiteral("qtc_desktop_snaprunner.py")).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)
: QWidget (nullptr),
m_rc(config),
@@ -188,10 +206,16 @@ SnapRunConfigurationWidget::SnapRunConfigurationWidget(SnapRunConfiguration *con
if (idx >= 0)
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);
config->extraAspect<ProjectExplorer::ArgumentsAspect>()->addToMainConfigurationWidget(this, layout);
config->extraAspect<ProjectExplorer::WorkingDirectoryAspect>()->addToMainConfigurationWidget(this,layout);
config->extraAspect<ProjectExplorer::TerminalAspect>()->addToMainConfigurationWidget(this,layout);
layout->addRow(QStringLiteral(""), m_devmodeCheckBox);
if(config->target()) {
connect(qobject_cast<SnapcraftProject*>(config->target()->project()), &SnapcraftProject::commandListChanged,
@@ -226,6 +250,14 @@ void SnapRunConfigurationWidget::updateComboBox()
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)
{
if(m_updating)

View File

@@ -9,6 +9,7 @@
#include <QStringList>
class QComboBox;
class QCheckBox;
namespace Utils {
class PathChooser;
@@ -49,6 +50,9 @@ public:
virtual QWidget *createConfigurationWidget() override;
virtual ProjectExplorer::Runnable runnable() const override;
bool useDevMode() const;
void setUseDevMode(bool useDevMode);
private:
SnapcraftStep *activeSnapcraftStep() const;
void updateCommandList(const QStringList &commands);
@@ -56,6 +60,7 @@ private:
private:
QString m_command;
bool m_useDevMode;
QMetaObject::Connection m_currBuildConfConn;
ProjectExplorer::WorkingDirectoryAspect* m_workingDirectoryAspect;
ProjectExplorer::ArgumentsAspect* m_argumentAspect;
@@ -71,6 +76,7 @@ public:
protected:
void updateComboBox ();
void devModeStateChanged (int state);
protected slots:
void commandSelected (const int index);
@@ -78,6 +84,7 @@ protected slots:
private:
SnapRunConfiguration *m_rc;
QComboBox *m_commandsBox;
QCheckBox *m_devmodeCheckBox;
bool m_updating;
};