Fix advanced settings not working if wifiSSIDHidden is not in settings file

- Fix advanced settings not working if users has wifi settings saved
  with previous version of Imager, and user selected "use always"

Ref #343

- Also fix problem where "SSH enabled" is not saved on Mac OS X due
  to the check assuming QSettings stores settings as strings, while
  with the plist stuff on Mac OS X it is stored as boolean.
This commit is contained in:
Floris Bos 2022-02-03 18:57:41 +01:00
parent b8222915f8
commit d91f8d95b1
3 changed files with 16 additions and 5 deletions

View file

@ -9,8 +9,8 @@ endif()
project(rpi-imager LANGUAGES CXX C) project(rpi-imager LANGUAGES CXX C)
set(IMAGER_VERSION_MAJOR 1) set(IMAGER_VERSION_MAJOR 1)
set(IMAGER_VERSION_MINOR 7) set(IMAGER_VERSION_MINOR 7)
set(IMAGER_VERSION_STR "${IMAGER_VERSION_MAJOR}.${IMAGER_VERSION_MINOR}") set(IMAGER_VERSION_STR "${IMAGER_VERSION_MAJOR}.${IMAGER_VERSION_MINOR}.1")
set(IMAGER_VERSION_CSV "${IMAGER_VERSION_MAJOR},${IMAGER_VERSION_MINOR},0,0") set(IMAGER_VERSION_CSV "${IMAGER_VERSION_MAJOR},${IMAGER_VERSION_MINOR},1,0")
add_definitions(-DIMAGER_VERSION_STR="${IMAGER_VERSION_STR}") add_definitions(-DIMAGER_VERSION_STR="${IMAGER_VERSION_STR}")
add_definitions(-DIMAGER_VERSION_CSV=${IMAGER_VERSION_CSV}) add_definitions(-DIMAGER_VERSION_CSV=${IMAGER_VERSION_CSV})

View file

@ -469,7 +469,7 @@ Popup {
chkSetUser.checked = true chkSetUser.checked = true
/* Older imager versions did not have a sshEnabled setting. /* Older imager versions did not have a sshEnabled setting.
Assume it is true if it does not exists and sshUserPassword is set */ Assume it is true if it does not exists and sshUserPassword is set */
if (!('sshEnabled' in settings) || settings.sshEnabled === "true") { if (!('sshEnabled' in settings) || settings.sshEnabled === "true" || settings.sshEnabled === true) {
chkSSH.checked = true chkSSH.checked = true
radioPasswordAuthentication.checked = true radioPasswordAuthentication.checked = true
} }
@ -485,7 +485,9 @@ Popup {
} }
if ('wifiSSID' in settings) { if ('wifiSSID' in settings) {
fieldWifiSSID.text = settings.wifiSSID fieldWifiSSID.text = settings.wifiSSID
chkWifiSSIDHidden.checked = settings.wifiSSIDHidden if ('wifiSSIDHidden' in settings && settings.wifiSSIDHidden) {
chkWifiSSIDHidden.checked = true
}
chkShowPassword.checked = false chkShowPassword.checked = false
fieldWifiPassword.text = settings.wifiPassword fieldWifiPassword.text = settings.wifiPassword
fieldWifiCountry.currentIndex = fieldWifiCountry.find(settings.wifiCountry) fieldWifiCountry.currentIndex = fieldWifiCountry.find(settings.wifiCountry)
@ -798,7 +800,9 @@ Popup {
} }
if (chkWifi.checked) { if (chkWifi.checked) {
settings.wifiSSID = fieldWifiSSID.text settings.wifiSSID = fieldWifiSSID.text
settings.wifiSSIDHidden = chkWifiSSIDHidden.checked if (chkWifiSSIDHidden.checked) {
settings.wifiSSIDHidden = true
}
settings.wifiPassword = fieldWifiPassword.text settings.wifiPassword = fieldWifiPassword.text
settings.wifiCountry = fieldWifiCountry.editText settings.wifiCountry = fieldWifiCountry.editText
} }

7
debian/changelog vendored
View file

@ -1,3 +1,10 @@
rpi-imager (1.7.1) unstable; urgency=medium
* Fix advanced settings being broken if there are saved wifi
settings and wifiSSIDHidden is not present
-- Floris Bos <bos@je-eigen-domein.nl> Thu, 03 Feb 2022 18:38:15 +0100
rpi-imager (1.7.0) unstable; urgency=medium rpi-imager (1.7.0) unstable; urgency=medium
* Only apply advanced settings if the operating system indicates it * Only apply advanced settings if the operating system indicates it