diff --git a/ba/ba1700.cpp b/ba/ba1700.cpp index 09946dc62..42aebad64 100755 --- a/ba/ba1700.cpp +++ b/ba/ba1700.cpp @@ -336,7 +336,7 @@ int TInstaller_mask::precheck_modules(bool only_newer) bool chk = rigar.get_char(C_ISPATCH) != 'X' || release == currrelease; // non spunta automaticamente il modulo server su installazioni che non siano server - if (cod_module == "sr" && test_station_type() != 2) + if (cod_module == "sr" && (test_station_type() != 2 || !xvt_sys_dongle_server_is_running())) { chk = false; disable_row(r); @@ -1479,6 +1479,9 @@ void TInstaller_mask::install_selection() } TProgind pi(nModules, "Installazione", true, true); + + //deve poter tener conto del "No Tutti" in caso di installazione da area release + bool no_to_all = false; FOR_EACH_ARRAY_ROW(arr, r, row) if (checked(r)) { @@ -1547,9 +1550,27 @@ void TInstaller_mask::install_selection() { const int basepatch = row->get_int(C_BASEPATCH); if (oldpatch >= basepatch) - is_patch = !noyes_box(FR("Si desidera reinstallare l'intero modulo '%s'?" - "\nRispondendo NO verranno installate le sole patch"), - (const char *)modesc); + { + if (!no_to_all) + { + const int key = yesnoall_box(FR("Si desidera reinstallare l'intero modulo '%s'?" + "\nRispondendo NO verranno installate le sole patch"), + (const char *)modesc); + switch (key) + { + case K_YES: + is_patch = true; + break; + case K_SPACE: //se risponde "No Tutti", non deve pił chiederlo e prenderlo sempre per buono + is_patch = true; + no_to_all = true; + break; + default: + is_patch = false; + break; + } + } + } else is_patch = false; // Quando la versione installata precede la patch base devo reinstallare il modulo! }