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); } } }
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()); }