コード例 #1
0
void BtInstallThread::run()
{
	qDebug() << "BtInstallThread::run, mod:" << m_module << "src:" << m_source << "dest:" << m_destination;


	emit preparingInstall(m_module, m_source);

	//make sure target/mods.d and target/modules exist
	QDir dir(m_destination);
	if (!dir.exists()) {
		dir.mkdir(m_destination);
		qDebug() << "made directory" << m_destination;
	}
	if (!dir.exists("modules")) {
		dir.mkdir("modules");
		qDebug() << "made directory" << m_destination << "/modules";
	}
	if (!dir.exists("mods.d")) {
		dir.mkdir("mods.d");
		qDebug() << "made directory" << m_destination << "/mods.d";
	}

	QObject::connect(&m_iMgr, SIGNAL(percentCompleted(int, int)), this, SLOT(slotManagerStatusUpdated(int, int)));
	QObject::connect(&m_iMgr, SIGNAL(downloadStarted()), this, SLOT(slotDownloadStarted()));

	//check whether it's an update. If yes, remove existing module first
	//TODO: silently removing without undo if the user cancels the update is WRONG!!!
	removeModule();

	// manager for the destination path
	sword::SWMgr lMgr( m_destination.toLatin1() );

	if (instbackend::isRemote(m_installSource)) {
		qDebug() << "calling install";
		int status = m_iMgr.installModule(&lMgr, 0, m_module.toLatin1(), &m_installSource);
		if (status != 0) {
			qWarning() << "Error with install: " << status << "module:" << m_module;
		}
		else {
			done = true;
			emit installCompleted(m_module, m_source, status);
		}
	}
	else { //local source
		emit statusUpdated(m_module, 0);
		int status = m_iMgr.installModule(&lMgr, m_installSource.directory.c_str(), m_module.toLatin1());
		if (status > 0) {
			qWarning() << "Error with install: " << status << "module:" << m_module;
		}
		else if (status == -1) {
			// it was terminated, do nothing
		}
		else {
			emit statusUpdated(m_module, 100);
			done = true;
			emit installCompleted(m_module, m_source, status);
		}
	}
}
コード例 #2
0
CaosIsp::CaosIsp(QWidget *parent) :
  QMainWindow(parent),
  ui(new Ui::CaosIsp)
{

  Settings settings(Settings::global());
  CLink * device;
  CFont::init();

  QCoreApplication::setOrganizationName("CoActionOS, Inc");
  QCoreApplication::setOrganizationDomain("coactionos.com");
  QCoreApplication::setApplicationName("CoActionOS-ISP");
  QCoreApplication::setApplicationVersion(COACTIONOS_ISP_VERSION);

  ui->setupUi(this);
  CNotify::setUpdateObjects(ui->statusBar, 0);

  link_set_debug(1);

  device = ui->connectWidget->clink();

  QFile file(":/data/CStyle.css");
  if( file.open(QFile::ReadOnly)) {
      QString StyleSheet = QLatin1String(file.readAll());
      qApp->setStyleSheet(StyleSheet);
    }

  ui->tabWidget->setTabText(TAB_INSTALLER, CFont::iconDownloadAlt());
  ui->tabWidget->setTabText(TAB_TERMINAL, CFont::iconEdit());
  ui->tabWidget->setTabText(TAB_PREFERENCES, CFont::iconCogs());
  ui->tabWidget->setTabEnabled(TAB_LABEL, false);

  ui->installTab->setLink(device);
  ui->terminalTab->setLink(device);
  ui->preferencesTab->setLink(device);

  connect(device, SIGNAL(linked(bool)), ui->installTab, SLOT(connected(bool)));
  connect(ui->installTab, SIGNAL(pauseTerminal(bool)), ui->terminalTab, SLOT(setPaused(bool)));
  connect(ui->installTab, SIGNAL(completed()), this, SLOT(installCompleted()));

  connect(ui->terminalTab, SIGNAL(resetTarget()), ui->installTab, SLOT(resetTarget()));
  connect(ui->terminalTab, SIGNAL(showPreferences()), this, SLOT(showPreferences()));

  ui->tabWidget->setCurrentIndex( settings.currentTab().toInt() );
  on_tabWidget_currentChanged(settings.currentTab().toInt());
}