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