diff --git a/uefitool.cpp b/uefitool.cpp index 54c8f15..241a968 100644 --- a/uefitool.cpp +++ b/uefitool.cpp @@ -33,6 +33,7 @@ UEFITool::UEFITool(QWidget *parent) : connect(ui->actionRemove, SIGNAL(triggered()), this, SLOT(remove())); connect(ui->actionRebuild, SIGNAL(triggered()), this, SLOT(rebuild())); connect(ui->actionSaveImageFile, SIGNAL(triggered()), this, SLOT(saveImageFile())); + connect(ui->actionChangeToNone, SIGNAL(triggered()), this, SLOT(changeToNone())); connect(ui->actionChangeToEfi11, SIGNAL(triggered()), this, SLOT(changeToEfi11())); connect(ui->actionChangeToTiano, SIGNAL(triggered()), this, SLOT(changeToTiano())); connect(ui->actionChangeToLzma, SIGNAL(triggered()), this, SLOT(changeToLzma())); @@ -107,14 +108,8 @@ void UEFITool::populateUi(const QModelIndex ¤t) ui->actionInsertBefore->setEnabled(type == TreeItem::File || type == TreeItem::Section); ui->actionInsertAfter->setEnabled(type == TreeItem::File || type == TreeItem::Section); //ui->actionReplace->setEnabled(ffsEngine->isOfType(TreeItem::File, current)); - ui->actionChangeToEfi11->setEnabled(type == TreeItem::Section && subtype == EFI_SECTION_COMPRESSION && - (algorithm == COMPRESSION_ALGORITHM_NONE || algorithm == COMPRESSION_ALGORITHM_TIANO || algorithm == COMPRESSION_ALGORITHM_LZMA)); - ui->actionChangeToTiano->setEnabled(type == TreeItem::Section && subtype == EFI_SECTION_COMPRESSION && - (algorithm == COMPRESSION_ALGORITHM_NONE || algorithm == COMPRESSION_ALGORITHM_EFI11 || algorithm == COMPRESSION_ALGORITHM_LZMA)); - ui->actionChangeToLzma->setEnabled(type == TreeItem::Section && subtype == EFI_SECTION_COMPRESSION && - (algorithm == COMPRESSION_ALGORITHM_NONE || algorithm == COMPRESSION_ALGORITHM_EFI11 || algorithm == COMPRESSION_ALGORITHM_TIANO)); - ui->menuChangeCompressionTo->setEnabled(ui->actionChangeToEfi11->isEnabled() || - ui->actionChangeToTiano->isEnabled() || ui->actionChangeToLzma->isEnabled()); + ui->menuChangeCompressionTo->setEnabled(type == TreeItem::Section && subtype == EFI_SECTION_COMPRESSION && + (algorithm == COMPRESSION_ALGORITHM_NONE || COMPRESSION_ALGORITHM_EFI11 || algorithm == COMPRESSION_ALGORITHM_TIANO || algorithm == COMPRESSION_ALGORITHM_LZMA)); } void UEFITool::rebuild() @@ -251,6 +246,17 @@ void UEFITool::changeToLzma() ui->actionSaveImageFile->setEnabled(true); } +void UEFITool::changeToNone() +{ + QModelIndex index = ui->structureTreeView->selectionModel()->currentIndex(); + if (!index.isValid()) + return; + + UINT8 result = ffsEngine->changeCompression(index, COMPRESSION_ALGORITHM_NONE); + if (result == ERR_SUCCESS) + ui->actionSaveImageFile->setEnabled(true); +} + void UEFITool::about() { QMessageBox::about(this, tr("About UEFITool"), tr( diff --git a/uefitool.h b/uefitool.h index 7d4eb99..219b531 100644 --- a/uefitool.h +++ b/uefitool.h @@ -61,6 +61,7 @@ private slots: void replace(); void remove(); void rebuild(); + void changeToNone(); void changeToEfi11(); void changeToTiano(); void changeToLzma(); diff --git a/uefitool.ui b/uefitool.ui index 7344c92..a932c1c 100644 --- a/uefitool.ui +++ b/uefitool.ui @@ -20,7 +20,7 @@ true - UEFITool 0.9.0 + UEFITool 0.9.1 @@ -221,11 +221,12 @@ - false + true Change &compression to + @@ -459,6 +460,14 @@ QAction::QuitRole + + + &Uncompressed + + + Ctrl+U + +