| 77 | } |
| 78 | |
| 79 | void MainWindow::UpdateWindowText() |
| 80 | { |
| 81 | const Tab &tab = m_expp->GetTabContainer()->GetSelectedTab(); |
| 82 | auto pidlDirectory = tab.GetShellBrowser()->GetDirectoryIdl(); |
| 83 | |
| 84 | TCHAR szFolderDisplayName[MAX_PATH]; |
| 85 | |
| 86 | /* Don't show full paths for virtual folders (as only the folders |
| 87 | GUID will be shown). */ |
| 88 | if (m_config->showFullTitlePath.get() && !tab.GetShellBrowser()->InVirtualFolder()) |
| 89 | { |
| 90 | GetDisplayName(pidlDirectory.get(), szFolderDisplayName, SIZEOF_ARRAY(szFolderDisplayName), SHGDN_FORPARSING); |
| 91 | } |
| 92 | else |
| 93 | { |
| 94 | GetDisplayName(pidlDirectory.get(), szFolderDisplayName, SIZEOF_ARRAY(szFolderDisplayName), SHGDN_NORMAL); |
| 95 | } |
| 96 | |
| 97 | TCHAR szTitle[512]; |
| 98 | |
| 99 | TCHAR szTemp[64]; |
| 100 | LoadString(m_instance, IDS_MAIN_WINDOW_TITLE, szTemp, SIZEOF_ARRAY(szTemp)); |
| 101 | StringCchPrintf(szTitle, SIZEOF_ARRAY(szTitle), |
| 102 | szTemp, szFolderDisplayName, NExplorerplusplus::APP_NAME); |
| 103 | |
| 104 | if (m_config->showUserNameInTitleBar.get() || m_config->showPrivilegeLevelInTitleBar.get()) |
| 105 | { |
| 106 | StringCchCat(szTitle, SIZEOF_ARRAY(szTitle), _T(" [")); |
| 107 | } |
| 108 | |
| 109 | if (m_config->showUserNameInTitleBar.get()) |
| 110 | { |
| 111 | TCHAR szOwner[512]; |
| 112 | GetProcessOwner(GetCurrentProcessId(), szOwner, SIZEOF_ARRAY(szOwner)); |
| 113 | |
| 114 | StringCchCat(szTitle, SIZEOF_ARRAY(szTitle), szOwner); |
| 115 | } |
| 116 | |
| 117 | if (m_config->showPrivilegeLevelInTitleBar.get()) |
| 118 | { |
| 119 | TCHAR szPrivilegeAddition[64]; |
| 120 | TCHAR szPrivilege[64]; |
| 121 | |
| 122 | if (CheckGroupMembership(GROUP_ADMINISTRATORS)) |
| 123 | { |
| 124 | LoadString(m_instance, IDS_PRIVILEGE_LEVEL_ADMINISTRATORS, szPrivilege, SIZEOF_ARRAY(szPrivilege)); |
| 125 | } |
| 126 | else if (CheckGroupMembership(GROUP_POWERUSERS)) |
| 127 | { |
| 128 | LoadString(m_instance, IDS_PRIVILEGE_LEVEL_POWER_USERS, szPrivilege, SIZEOF_ARRAY(szPrivilege)); |
| 129 | } |
| 130 | else if (CheckGroupMembership(GROUP_USERS)) |
| 131 | { |
| 132 | LoadString(m_instance, IDS_PRIVILEGE_LEVEL_USERS, szPrivilege, SIZEOF_ARRAY(szPrivilege)); |
| 133 | } |
| 134 | else if (CheckGroupMembership(GROUP_USERSRESTRICTED)) |
| 135 | { |
| 136 | LoadString(m_instance, IDS_PRIVILEGE_LEVEL_USERS_RESTRICTED, szPrivilege, SIZEOF_ARRAY(szPrivilege)); |
nothing calls this directly
no test coverage detected