Advanced settings: use current username instead of Pi as default
Instead of using 'pi' as default, try to get the username of the current user from the OS. May not always work. (e.g. some Windows users may not have setup a username themselves, but may be using a default user created by the PC vendor). Closes #497
This commit is contained in:
@@ -478,7 +478,10 @@ Popup {
|
||||
if ('sshUserName' in settings) {
|
||||
fieldUserName.text = settings.sshUserName
|
||||
chkSetUser.checked = true
|
||||
} else {
|
||||
fieldUserName.text = imageWriter.getCurrentUser()
|
||||
}
|
||||
|
||||
if ('wifiSSID' in settings) {
|
||||
fieldWifiSSID.text = settings.wifiSSID
|
||||
if ('wifiSSIDHidden' in settings && settings.wifiSSIDHidden) {
|
||||
|
||||
@@ -1232,6 +1232,26 @@ QString ImageWriter::detectPiKeyboard()
|
||||
return QString();
|
||||
}
|
||||
|
||||
QString ImageWriter::getCurrentUser()
|
||||
{
|
||||
QString user = qgetenv("USER");
|
||||
|
||||
if (user.isEmpty())
|
||||
user = qgetenv("USERNAME");
|
||||
|
||||
user = user.toLower();
|
||||
if (user.contains(" "))
|
||||
{
|
||||
auto names = user.split(" ");
|
||||
user = names.first();
|
||||
}
|
||||
|
||||
if (user.isEmpty() || user == "root")
|
||||
user = "pi";
|
||||
|
||||
return user;
|
||||
}
|
||||
|
||||
bool ImageWriter::hasMouse()
|
||||
{
|
||||
return !_embeddedMode || QFile::exists("/dev/input/mouse0");
|
||||
|
||||
@@ -117,6 +117,7 @@ public:
|
||||
Q_INVOKABLE QStringList getTranslations();
|
||||
Q_INVOKABLE QString getCurrentLanguage();
|
||||
Q_INVOKABLE QString getCurrentKeyboard();
|
||||
Q_INVOKABLE QString getCurrentUser();
|
||||
Q_INVOKABLE void changeLanguage(const QString &newLanguageName);
|
||||
Q_INVOKABLE void changeKeyboard(const QString &newKeymapLayout);
|
||||
Q_INVOKABLE bool customRepo();
|
||||
|
||||
Reference in New Issue
Block a user