add a devmode switch
This commit is contained in:
@@ -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()
|
||||
|
||||
@@ -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)
|
||||
|
||||
@@ -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;
|
||||
};
|
||||
|
||||
|
||||
Reference in New Issue
Block a user