取消高版本可更新升级为低版本

This commit is contained in:
yangjiaxuan 2022-11-26 11:29:31 +08:00
parent e91a73e9f4
commit 7e55faf567
4 changed files with 7 additions and 146 deletions

View File

@ -6,58 +6,23 @@
#include <QDir> #include <QDir>
#include <QFile> #include <QFile>
Dialog_upgrade::Dialog_upgrade(class VersionDll *versionDll, HGVersionInfo *versionInfo, HGUInt versionCount, QWidget *parent) : Dialog_upgrade::Dialog_upgrade(class VersionDll *versionDll, HGVersionInfo *versionInfo, QWidget *parent) :
QDialog(parent) QDialog(parent)
, ui(new Ui::Dialog_upgrade) , ui(new Ui::Dialog_upgrade)
, m_versionDll(versionDll) , m_versionDll(versionDll)
, m_versionInfo(versionInfo) , m_versionInfo(versionInfo)
, m_versionCount(versionCount)
{ {
ui->setupUi(this); ui->setupUi(this);
setWindowTitle(tr("upgrade online")); setWindowTitle(tr("upgrade online"));
setWindowFlags(Qt::Dialog | Qt::WindowCloseButtonHint); setWindowFlags(Qt::Dialog | Qt::WindowCloseButtonHint);
this->layout()->setSizeConstraint(QLayout::SetFixedSize); this->layout()->setSizeConstraint(QLayout::SetFixedSize);
ui->listWidget->setVisible(false);
ui->pbtn_upgrade->setVisible(false); ui->pbtn_upgrade->setVisible(false);
ui->pbtn_install->setVisible(false);
ui->pbtn_cancel->setVisible(false);
ui->label->setVisible(false);
for(HGUInt i = 0; i < m_versionCount; ++i)
{
QListWidgetItem *listwidgetItem = new QListWidgetItem;
listwidgetItem->setText(QString(m_versionInfo[i].version));
std::string desc = m_versionInfo[i].desc;
std::string bugInfo = m_versionInfo[i].bugInfo;
if(desc.empty() && !bugInfo.empty())
{
listwidgetItem->setToolTip(tr("bug description: \n") + m_versionInfo[i].bugInfo);
}
if(!desc.empty() && bugInfo.empty())
{
listwidgetItem->setToolTip(tr("upgrade contents: \n") + m_versionInfo[i].desc);
}
if(!desc.empty() && !bugInfo.empty())
{
listwidgetItem->setToolTip(tr("upgrade contents: \n") + m_versionInfo[i].desc + tr("\nbug description: \n") + m_versionInfo[i].bugInfo);
}
ui->listWidget->addItem(listwidgetItem);
}
if(ui->listWidget->count() > 0)
{
ui->listWidget->setCurrentRow(0);
}
HGChar currVersion[64] = {0}; HGChar currVersion[64] = {0};
m_versionDll->GetCurrVersion(HGVERSION_APPNAME_SCANNER, currVersion, 64); m_versionDll->GetCurrVersion(HGVERSION_APPNAME_SCANNER, currVersion, 64);
HGInt result = 0; HGInt result = 0;
std::string newestVersionNum = ui->listWidget->item(0)->text().toStdString().c_str(); m_versionDll->CompareVersion(currVersion, m_versionInfo[0].version, &result);
m_versionDll->CompareVersion(currVersion, newestVersionNum.c_str(), &result);
if(result == 0 || result == 1) if(result == 0 || result == 1)
{ {
ui->label_detectResult->setText(tr("The current version is the latest! The current version number is : ") + currVersion); ui->label_detectResult->setText(tr("The current version is the latest! The current version number is : ") + currVersion);
@ -67,7 +32,7 @@ Dialog_upgrade::Dialog_upgrade(class VersionDll *versionDll, HGVersionInfo *vers
{ {
ui->pbtn_upgrade->setVisible(true); ui->pbtn_upgrade->setVisible(true);
ui->label_detectResult->setText(tr("Discover the new version : ") + ui->label_detectResult->setText(tr("Discover the new version : ") +
ui->listWidget->item(0)->text().toStdString().c_str() + m_versionInfo[0].version +
tr(" ,the current version is : ") + currVersion); tr(" ,the current version is : ") + currVersion);
} }
@ -83,54 +48,8 @@ QString Dialog_upgrade::getVersionNum()
return m_versionNum; return m_versionNum;
} }
void Dialog_upgrade::on_pbtn_install_clicked()
{
QListWidgetItem *item = ui->listWidget->currentItem();
on_listWidget_itemDoubleClicked(item);
}
void Dialog_upgrade::on_pbtn_cancel_clicked()
{
close();
}
void Dialog_upgrade::on_listWidget_itemDoubleClicked(QListWidgetItem *item)
{
HGChar currVersion[64] = {0};
m_versionDll->GetCurrVersion(HGVERSION_APPNAME_SCANNER, currVersion, 64);
std::string selectVersionNum = item->text().toStdString().c_str();
HGInt result = 0;
m_versionDll->CompareVersion(currVersion, selectVersionNum.c_str(), &result);
if(result == 0)
{
QMessageBox::information(this, tr("tip"), tr("Already in current version"));
return;
}
m_versionNum = item->text();
accept();
}
void Dialog_upgrade::on_pbtn_selectVersion_clicked()
{
if(ui->listWidget->count() == 0)
{
ui->pbtn_install->setVisible(false);
}
else
{
ui->pbtn_install->setVisible(true);
}
ui->pbtn_selectVersion->setVisible(false);
ui->listWidget->setVisible(true);
ui->pbtn_cancel->setVisible(true);
ui->label->setVisible(true);
}
void Dialog_upgrade::on_pbtn_upgrade_clicked() void Dialog_upgrade::on_pbtn_upgrade_clicked()
{ {
QListWidgetItem *item = ui->listWidget->item(0); m_versionNum = m_versionInfo[0].version;
on_listWidget_itemDoubleClicked(item); accept();
} }

View File

@ -14,20 +14,11 @@ class Dialog_upgrade : public QDialog
Q_OBJECT Q_OBJECT
public: public:
explicit Dialog_upgrade(class VersionDll *versionDll, HGVersionInfo *versionInfo, HGUInt versionCount, QWidget *parent = nullptr); explicit Dialog_upgrade(class VersionDll *versionDll, HGVersionInfo *versionInfo, QWidget *parent = nullptr);
~Dialog_upgrade(); ~Dialog_upgrade();
QString getVersionNum(); QString getVersionNum();
private slots:
void on_pbtn_install_clicked();
void on_pbtn_cancel_clicked();
void on_listWidget_itemDoubleClicked(QListWidgetItem *item);
void on_pbtn_selectVersion_clicked();
void on_pbtn_upgrade_clicked(); void on_pbtn_upgrade_clicked();
private: private:
@ -35,7 +26,6 @@ private:
VersionDll *m_versionDll; VersionDll *m_versionDll;
HGVersionInfo *m_versionInfo; HGVersionInfo *m_versionInfo;
HGUInt m_versionCount;
QString m_versionNum; QString m_versionNum;
}; };

View File

@ -43,13 +43,6 @@
</property> </property>
</widget> </widget>
</item> </item>
<item>
<widget class="QPushButton" name="pbtn_selectVersion">
<property name="text">
<string>select version</string>
</property>
</widget>
</item>
<item> <item>
<spacer name="horizontalSpacer_3"> <spacer name="horizontalSpacer_3">
<property name="orientation"> <property name="orientation">
@ -65,47 +58,6 @@
</item> </item>
</layout> </layout>
</item> </item>
<item>
<widget class="QLabel" name="label">
<property name="text">
<string>Detected installable versions:</string>
</property>
</widget>
</item>
<item>
<widget class="QListWidget" name="listWidget"/>
</item>
<item>
<layout class="QHBoxLayout" name="horizontalLayout">
<item>
<spacer name="horizontalSpacer">
<property name="orientation">
<enum>Qt::Horizontal</enum>
</property>
<property name="sizeHint" stdset="0">
<size>
<width>40</width>
<height>20</height>
</size>
</property>
</spacer>
</item>
<item>
<widget class="QPushButton" name="pbtn_install">
<property name="text">
<string>install</string>
</property>
</widget>
</item>
<item>
<widget class="QPushButton" name="pbtn_cancel">
<property name="text">
<string>cancel</string>
</property>
</widget>
</item>
</layout>
</item>
</layout> </layout>
</widget> </widget>
<resources/> <resources/>

View File

@ -4053,7 +4053,7 @@ void MainWindow::on_actionact_update_triggered()
} }
if(versionCount > 0) if(versionCount > 0)
{ {
Dialog_upgrade dlg(m_versionDll, versionInfo, versionCount, this); Dialog_upgrade dlg(m_versionDll, versionInfo, this);
if (dlg.exec()) if (dlg.exec())
{ {
QString url, md5; QString url, md5;