MdeModulePkg/DeviceManagerUiLib: Fix the network device MAC display issue

v3:
* Add NULL string check.

v2:
* Define new STR_FORM_NETWORK_DEVICE_TITLE_HEAD for L" Network Device "
instead of hard code in the code.

Network device tile (STR_FORM_NETWORK_DEVICE_TITLE) is dynamic adjusted
according the different MAC value. So, the string value shouldn't be treated
as a constant string (Network Device). Otherwise, the display will be
incorrect.

Reproduce: Device Manager->Network Device List, select to enter MAC, then to
press ESC back to previous page, then re-enter, found each enter/ESC operation,
the MAC address display +1.

Cc: Eric Dong <eric.dong@intel.com>
Cc: Ye Ting <ting.ye@intel.com>
Cc: Fu Siyuan <siyuan.fu@intel.com>
Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Wu Jiaxin <jiaxin.wu@intel.com>
Reviewed-by: Ye Ting <ting.ye@intel.com>
Reviewed-by: Fu Siyuan <siyuan.fu@intel.com>
Reviewed-by: Eric Dong <eric.dong@intel.com>
This commit is contained in:
Jiaxin Wu 2017-04-17 16:06:04 +08:00
parent 17b25f5203
commit 205a4b0c15
2 changed files with 10 additions and 6 deletions

View File

@ -540,12 +540,15 @@ CreateDeviceManagerForm(
// Update the network device form titile.
//
if (NextShowFormId == NETWORK_DEVICE_FORM_ID) {
String = HiiGetString (HiiHandle, STRING_TOKEN (STR_FORM_NETWORK_DEVICE_TITLE), NULL);
NewStringLen = StrLen(mSelectedMacAddrString) * 2;
NewStringLen += (StrLen(String) + 2) * 2;
String = HiiGetString (HiiHandle, STRING_TOKEN (STR_FORM_NETWORK_DEVICE_TITLE_HEAD), NULL);
if (String == NULL) {
return;
}
NewStringLen = StrLen (mSelectedMacAddrString) * 2;
NewStringLen += (StrLen (String) + 2) * 2;
NewStringTitle = AllocatePool (NewStringLen);
UnicodeSPrint (NewStringTitle, NewStringLen, L"%s %s", String, mSelectedMacAddrString);
HiiSetString (HiiHandle, STRING_TOKEN (STR_FORM_NETWORK_DEVICE_TITLE), NewStringTitle, NULL);
HiiSetString (HiiHandle, STRING_TOKEN (STR_FORM_NETWORK_DEVICE_TITLE), NewStringTitle, NULL);
FreePool (String);
FreePool (NewStringTitle);
}

View File

@ -2,7 +2,7 @@
//
// String definitions for the Device Manager.
//
// Copyright (c) 2004 - 2015, Intel Corporation. All rights reserved.<BR>
// Copyright (c) 2004 - 2017, Intel Corporation. All rights reserved.<BR>
// This program and the accompanying materials
// are licensed and made available under the terms and conditions of the BSD License
// which accompanies this distribution. The full text of the license may be found at
@ -42,7 +42,8 @@
#language fr-FR ""
#string STR_EXIT_STRING #language en-US "Press ESC to exit."
#language fr-FR "Press ESC to exit."
#string STR_FORM_NETWORK_DEVICE_TITLE #language en-US "Network Device"
#string STR_FORM_NETWORK_DEVICE_TITLE_HEAD #language en-US "Network Device"
#string STR_FORM_NETWORK_DEVICE_TITLE #language en-US "Network Device"
#language fr-FR "Network Device"
#string STR_FORM_NETWORK_DEVICE_HELP #language en-US "Network Device Help..."
#language fr-FR "Network Device Help..."