コード例 #1
0
ファイル: Program.cpp プロジェクト: hicom150/botui
bool Program::start(const QString& path, const QStringList &arguments)
{
	if(path.isEmpty()) return false;
	stop();
	m_process = new QProcess(this);
  QProcessEnvironment env = QProcessEnvironment::systemEnvironment();
  const QString libPath = env.value("LD_LIBRARY_PATH");
  env.insert("LD_LIBRARY_PATH", (libPath.isEmpty() ? "" : libPath + ":")
    + SystemPrefix::ref().rootManager()->libDirectoryPaths().join(":"));
  m_process->setProcessEnvironment(env);
	m_process->setProcessChannelMode(QProcess::MergedChannels);
	connect(m_process, SIGNAL(finished(int, QProcess::ExitStatus)), SIGNAL(finished(int, QProcess::ExitStatus)));
	connect(m_process, SIGNAL(readyRead()), SIGNAL(readyRead()));
	
	set_auto_publish(true);
	halt();
	set_auto_publish(false);
	
	m_process->start(path, arguments);
	if(!m_process->waitForStarted()) {
		delete m_process;
		m_process = 0;
		return false;
	}
	emit started();
	m_time.restart();
	return true;
}
コード例 #2
0
ファイル: Program.cpp プロジェクト: hicom150/botui
void Program::stop()
{
	if(!m_process) return;
	m_process->terminate();
	if(!m_process->waitForFinished(2000)) m_process->kill();
	//unused: const int msecs = m_time.elapsed();
	// write(tr("Finished in %1 seconds").arg(msecs / 1000.0).toAscii());
	delete m_process;
	m_process = 0;
	
	set_auto_publish(true);
	halt();
  
  // This is a hack. Make really sure it's halted.
  halt();
  
  set_auto_publish(false);
}
コード例 #3
0
ファイル: WallabyDevice.cpp プロジェクト: kipr/botui
Wallaby::Device::Device()
  : m_compileProvider(new KissCompileProvider(this)),
  m_batteryLevelProvider(new Wallaby::BatteryLevelProvider()),
  m_settingsProvider(new Wallaby::SettingsProvider()),
  m_buttonProvider(new Wallaby::ButtonProvider()),
  m_version(getVersionNum()),
  m_id(getId())
{
  m_compileProvider->setBinariesPath("/wallaby/bin");
  connect(m_settingsProvider, SIGNAL(settingsChanged()), SLOT(settingsChanged()));
#ifndef NOT_A_WALLABY
  halt();
#endif
  set_auto_publish(0);

  m_timerId = startTimer(1000);

  // load settings
  settingsChanged();
}