Esempio n. 1
0
void MainWindow::FillTableSoft(QTableWidget* table, const AvailableSoftWare::SoftWareMap& soft) {
    AvailableSoftWare::SoftWareMap::const_iterator iter;
    table->setRowCount(0);
    for (iter = soft.begin(); iter != soft.end(); ++iter) {
        const QString& name = iter.key();
        const SoftWare& config = iter.value();

        int i = table->rowCount();
        table->insertRow(i);
        table->setItem(i, COLUMN_NAME, new QTableWidgetItem(name));
        table->setItem(i, COLUMN_CUR_VER, new QTableWidgetItem(config.m_CurVersion));
        if (config.m_AvailableVersion.size() == 1) {
            table->setItem(i, COLUMN_NEW_VER, new QTableWidgetItem(*(config.m_AvailableVersion.begin())));
        } else {
            QComboBox* pComboBox = new QComboBox(table);
            connect(pComboBox,
                    SIGNAL(currentIndexChanged(QString)),
                    this,
                    SLOT(OnComboBoxValueChanged(QString)));

            QList<QString> versionsList = config.m_AvailableVersion.toList();
            qSort(versionsList);

            for (QList<QString>::const_iterator iter = versionsList.begin();
                 iter != versionsList.end();
                 ++iter) {
                pComboBox->addItem(*iter);
            }
            pComboBox->setCurrentIndex(pComboBox->count() - 1);
            table->setCellWidget(i, COLUMN_NEW_VER, pComboBox);
        }
    }
    table->resizeRowsToContents();
}
Esempio n. 2
0
void MainWindow::FillTableDependencies(QTableWidget* table, const AvailableSoftWare::SoftWareMap& soft) {
    AvailableSoftWare::SoftWareMap::const_iterator iter;
    table->setRowCount(0);
    for (iter = soft.begin(); iter != soft.end(); ++iter) {
        const QString& name = iter.key();
        const SoftWare& config = iter.value();

        int i = table->rowCount();
        table->insertRow(i);
        table->setItem(i, COLUMN_NAME, new QTableWidgetItem(name));
        if (config.m_CurVersion.isEmpty())
            table->setItem(i, COLUMN_CUR_VER, new QTableWidgetItem("Not installed"));
        else if (config.m_CurVersion == config.m_NewVersion)
            table->setItem(i, COLUMN_CUR_VER, new QTableWidgetItem("Installed latest"));
        else
            table->setItem(i, COLUMN_CUR_VER, new QTableWidgetItem("Installed not latest"));
    }
    table->resizeRowsToContents();
}
Esempio n. 3
0
bool Installer::Update(AvailableSoftWare::SoftWareMap softMap, eAppType type, bool force /*= false*/) {
    AvailableSoftWare::SoftWareMap::const_iterator iter;
    for (iter = softMap.begin(); iter != softMap.end(); ++iter) {
        const QString& name = iter.key();
        const SoftWare& soft = iter.value();
        if (!soft.m_CurVersion.isEmpty() &&
            Settings::GetVersion(soft.m_CurVersion) != Settings::GetVersion(soft.m_NewVersion)) {
            if (force ||
                0 == QMessageBox::information(NULL,//this,
                                             tr("Update available"),
                                             tr("%1 update available.").arg(name),
                                             tr("Install"),
                                             tr("Cancel"))) {
                if (!Delete(name, type, force)) {
                    Logger::GetInstance()->AddLog(tr("Error update %1"));
                    return false;
                }
                Install(name, soft.m_NewVersion, type);
            }
        }
    }
    return true;
}
Esempio n. 4
0
void Installer::UpdateConfigFinished(const AppsConfig & update) {
    Logger::GetInstance()->AddLog(tr("Config updated"));

    m_AppsConfig = update;

    UpdateAvailableSoftware();

    //install all dependencies
    for (AvailableSoftWare::SoftWareMap::const_iterator iter = m_AvailableSoftWare.m_Dependencies.begin();
         iter != m_AvailableSoftWare.m_Dependencies.end();
         ++iter) {
        const SoftWare& soft = iter.value();
        if (soft.m_CurVersion.isEmpty()) {
            Install(iter.key(), soft.m_NewVersion, eAppTypeDependencies);
            break; //wait until install finished
        }
    }

    Update(m_AvailableSoftWare.m_Stable, eAppTypeStable, true);
    Update(m_AvailableSoftWare.m_Test, eAppTypeTest, true);
//  Update(m_AvailableSoftWare.m_Development, eAppTypeDevelopment);
    Update(m_AvailableSoftWare.m_Dependencies, eAppTypeDependencies, true);
}