ocultar a seção no instalador nsis condicionalmente à escolha dos botões de opção
Pergunta
Como uma seção pode ser ocultada condicionalmente ao marcar ou desmarcar RadioButtons na caixa de diálogo da página de componentes do instalador MUI NSIS.
Eu adicionei 2 RadioButtons, DEMO & BACKUP.
Quando o usuário escolher, DEMO RadioButton, a seção exibida será "INSTALL DATA OR NOT", ela pode ser marcada ou desmarcada pelo usuário e a seção "BACKUP DATA OR NOT" seria ocultada.
Quando o usuário escolher, BACKUP RadioButton, a seção exibida será "BACKUP DATA OR NOT", ela pode ser marcada ou desmarcada pelo usuário e a seção "INSTALL DATA OR NOT" seria ocultada.
SE EU USAR O SINAL -, a seção "INSTALAR DADOS OU NÃO" ficará oculta para AMBAS AS ESCOLHAS DE RADIOBUTTON, ou seja, também para DEMO e para ATUALIZAÇÃO, por favor ajude.
Além disso, existem recursos de SelectSection ou UnSelectSection, mas eles não ocultam a Seção, que é o que eu quero, que a Seção seja ocultada e desmarcada.
Solução
Uma seção oculta não tem nome, então você precisa dar um nome a ela para que se torne visível novamente:
!include Logiclib.nsh
!include Sections.nsh
page Components InitComponentsPage
!define INSTALLSECTIONNAME "Install"
section "" SEC_INSTALL
sectionend
!define BACKUPSECTIONNAME "Backup"
section "" SEC_BACKUP
sectionend
Function InitComponentsPage
${If} $InstallType == BACKUP
SectionSetText ${SEC_BACKUP} "${BACKUPSECTIONNAME}"
!insertmacro UnSelectSection ${SEC_INSTALL}
SectionSetText ${SEC_INSTALL} ""
${Else}
SectionSetText ${SEC_INSTALL} "${INSTALLSECTIONNAME}"
!insertmacro UnSelectSection ${SEC_BACKUP}
SectionSetText ${SEC_BACKUP} ""
${EndIf}
Functionend