mirror of
https://github.com/reactos/reactos.git
synced 2024-06-28 17:01:28 +00:00
[SHELL32] Folders: Adjust column sequence in details view (#4279)
Adjust column sequence in folder view to match WinXP and Win2k3 order. CORE-11846
This commit is contained in:
parent
beefb07d18
commit
860d3544af
|
@ -333,7 +333,7 @@ HRESULT WINAPI CControlPanelFolder::CompareIDs(LPARAM lParam, PCUIDLIST_RELATIVE
|
||||||
case 0: /* name */
|
case 0: /* name */
|
||||||
result = wcsicmp(pData1->szName + pData1->offsDispName, pData2->szName + pData2->offsDispName);
|
result = wcsicmp(pData1->szName + pData1->offsDispName, pData2->szName + pData2->offsDispName);
|
||||||
break;
|
break;
|
||||||
case 1: /* comment */
|
case 4: /* comment */
|
||||||
result = wcsicmp(pData1->szName + pData1->offsComment, pData2->szName + pData2->offsComment);
|
result = wcsicmp(pData1->szName + pData1->offsComment, pData2->szName + pData2->offsComment);
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
|
@ -581,7 +581,7 @@ HRESULT WINAPI CControlPanelFolder::GetDetailsOf(PCUITEMID_CHILD pidl, UINT iCol
|
||||||
{
|
{
|
||||||
case 0: /* name */
|
case 0: /* name */
|
||||||
return SHSetStrRet(&psd->str, pCPanel->szName + pCPanel->offsDispName);
|
return SHSetStrRet(&psd->str, pCPanel->szName + pCPanel->offsDispName);
|
||||||
case 1: /* comment */
|
case 4: /* comment */
|
||||||
return SHSetStrRet(&psd->str, pCPanel->szName + pCPanel->offsComment);
|
return SHSetStrRet(&psd->str, pCPanel->szName + pCPanel->offsComment);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -528,10 +528,10 @@ class CDrivesFolderEnum :
|
||||||
|
|
||||||
static const shvheader MyComputerSFHeader[] = {
|
static const shvheader MyComputerSFHeader[] = {
|
||||||
{IDS_SHV_COLUMN_NAME, SHCOLSTATE_TYPE_STR | SHCOLSTATE_ONBYDEFAULT, LVCFMT_LEFT, 15},
|
{IDS_SHV_COLUMN_NAME, SHCOLSTATE_TYPE_STR | SHCOLSTATE_ONBYDEFAULT, LVCFMT_LEFT, 15},
|
||||||
{IDS_SHV_COLUMN_COMMENTS, SHCOLSTATE_TYPE_STR, LVCFMT_LEFT, 10},
|
|
||||||
{IDS_SHV_COLUMN_TYPE, SHCOLSTATE_TYPE_STR | SHCOLSTATE_ONBYDEFAULT, LVCFMT_LEFT, 10},
|
{IDS_SHV_COLUMN_TYPE, SHCOLSTATE_TYPE_STR | SHCOLSTATE_ONBYDEFAULT, LVCFMT_LEFT, 10},
|
||||||
{IDS_SHV_COLUMN_DISK_CAPACITY, SHCOLSTATE_TYPE_STR | SHCOLSTATE_ONBYDEFAULT, LVCFMT_RIGHT, 10},
|
{IDS_SHV_COLUMN_DISK_CAPACITY, SHCOLSTATE_TYPE_STR | SHCOLSTATE_ONBYDEFAULT, LVCFMT_RIGHT, 10},
|
||||||
{IDS_SHV_COLUMN_DISK_AVAILABLE, SHCOLSTATE_TYPE_STR | SHCOLSTATE_ONBYDEFAULT, LVCFMT_RIGHT, 10},
|
{IDS_SHV_COLUMN_DISK_AVAILABLE, SHCOLSTATE_TYPE_STR | SHCOLSTATE_ONBYDEFAULT, LVCFMT_RIGHT, 10},
|
||||||
|
{IDS_SHV_COLUMN_COMMENTS, SHCOLSTATE_TYPE_STR, LVCFMT_LEFT, 10},
|
||||||
};
|
};
|
||||||
|
|
||||||
#define MYCOMPUTERSHELLVIEWCOLUMNS 5
|
#define MYCOMPUTERSHELLVIEWCOLUMNS 5
|
||||||
|
@ -729,16 +729,13 @@ HRESULT WINAPI CDrivesFolder::CompareIDs(LPARAM lParam, PCUIDLIST_RELATIVE pidl1
|
||||||
hres = MAKE_COMPARE_HRESULT(result);
|
hres = MAKE_COMPARE_HRESULT(result);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
case 1: /* comments */
|
case 1: /* Type */
|
||||||
hres = MAKE_COMPARE_HRESULT(0);
|
|
||||||
break;
|
|
||||||
case 2: /* Type */
|
|
||||||
{
|
{
|
||||||
/* We want to return immediately because SHELL32_CompareDetails also compares children. */
|
/* We want to return immediately because SHELL32_CompareDetails also compares children. */
|
||||||
return SHELL32_CompareDetails(this, lParam, pidl1, pidl2);
|
return SHELL32_CompareDetails(this, lParam, pidl1, pidl2);
|
||||||
}
|
}
|
||||||
case 3: /* Size */
|
case 2: /* Size */
|
||||||
case 4: /* Size Available */
|
case 3: /* Size Available */
|
||||||
{
|
{
|
||||||
ULARGE_INTEGER Drive1Available, Drive1Total, Drive2Available, Drive2Total;
|
ULARGE_INTEGER Drive1Available, Drive1Total, Drive2Available, Drive2Total;
|
||||||
|
|
||||||
|
@ -761,6 +758,9 @@ HRESULT WINAPI CDrivesFolder::CompareIDs(LPARAM lParam, PCUIDLIST_RELATIVE pidl1
|
||||||
hres = MAKE_COMPARE_HRESULT(Diff.QuadPart);
|
hres = MAKE_COMPARE_HRESULT(Diff.QuadPart);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
case 4: /* comments */
|
||||||
|
hres = MAKE_COMPARE_HRESULT(0);
|
||||||
|
break;
|
||||||
default:
|
default:
|
||||||
return E_INVALIDARG;
|
return E_INVALIDARG;
|
||||||
}
|
}
|
||||||
|
@ -1115,29 +1115,29 @@ HRESULT WINAPI CDrivesFolder::GetDetailsOf(PCUITEMID_CHILD pidl, UINT iColumn, S
|
||||||
case 0: /* name */
|
case 0: /* name */
|
||||||
hr = GetDisplayNameOf(pidl, SHGDN_NORMAL | SHGDN_INFOLDER, &psd->str);
|
hr = GetDisplayNameOf(pidl, SHGDN_NORMAL | SHGDN_INFOLDER, &psd->str);
|
||||||
break;
|
break;
|
||||||
case 1: /* FIXME: comments */
|
case 1: /* type */
|
||||||
hr = SHSetStrRet(&psd->str, "");
|
|
||||||
break;
|
|
||||||
case 2: /* type */
|
|
||||||
if (DriveType == DRIVE_REMOVABLE && !IsDriveFloppyA(pszDrive))
|
if (DriveType == DRIVE_REMOVABLE && !IsDriveFloppyA(pszDrive))
|
||||||
hr = SHSetStrRet(&psd->str, IDS_DRIVE_REMOVABLE);
|
hr = SHSetStrRet(&psd->str, IDS_DRIVE_REMOVABLE);
|
||||||
else
|
else
|
||||||
hr = SHSetStrRet(&psd->str, iDriveTypeIds[DriveType]);
|
hr = SHSetStrRet(&psd->str, iDriveTypeIds[DriveType]);
|
||||||
break;
|
break;
|
||||||
case 3: /* total size */
|
case 2: /* total size */
|
||||||
case 4: /* free size */
|
case 3: /* free size */
|
||||||
psd->str.cStr[0] = 0x00;
|
psd->str.cStr[0] = 0x00;
|
||||||
psd->str.uType = STRRET_CSTR;
|
psd->str.uType = STRRET_CSTR;
|
||||||
if (GetVolumeInformationA(pszDrive, NULL, 0, NULL, NULL, NULL, NULL, 0))
|
if (GetVolumeInformationA(pszDrive, NULL, 0, NULL, NULL, NULL, NULL, 0))
|
||||||
{
|
{
|
||||||
GetDiskFreeSpaceExA(pszDrive, &ulFreeBytes, &ulTotalBytes, NULL);
|
GetDiskFreeSpaceExA(pszDrive, &ulFreeBytes, &ulTotalBytes, NULL);
|
||||||
if (iColumn == 3)
|
if (iColumn == 2)
|
||||||
StrFormatByteSize64A(ulTotalBytes.QuadPart, psd->str.cStr, MAX_PATH);
|
StrFormatByteSize64A(ulTotalBytes.QuadPart, psd->str.cStr, MAX_PATH);
|
||||||
else
|
else
|
||||||
StrFormatByteSize64A(ulFreeBytes.QuadPart, psd->str.cStr, MAX_PATH);
|
StrFormatByteSize64A(ulFreeBytes.QuadPart, psd->str.cStr, MAX_PATH);
|
||||||
}
|
}
|
||||||
hr = S_OK;
|
hr = S_OK;
|
||||||
break;
|
break;
|
||||||
|
case 4: /* FIXME: comments */
|
||||||
|
hr = SHSetStrRet(&psd->str, "");
|
||||||
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -527,10 +527,10 @@ CFSFolder::~CFSFolder()
|
||||||
|
|
||||||
static const shvheader GenericSFHeader[] = {
|
static const shvheader GenericSFHeader[] = {
|
||||||
{IDS_SHV_COLUMN_NAME, SHCOLSTATE_TYPE_STR | SHCOLSTATE_ONBYDEFAULT, LVCFMT_LEFT, 15},
|
{IDS_SHV_COLUMN_NAME, SHCOLSTATE_TYPE_STR | SHCOLSTATE_ONBYDEFAULT, LVCFMT_LEFT, 15},
|
||||||
{IDS_SHV_COLUMN_COMMENTS, SHCOLSTATE_TYPE_STR, LVCFMT_LEFT, 0},
|
|
||||||
{IDS_SHV_COLUMN_TYPE, SHCOLSTATE_TYPE_STR | SHCOLSTATE_ONBYDEFAULT, LVCFMT_LEFT, 10},
|
{IDS_SHV_COLUMN_TYPE, SHCOLSTATE_TYPE_STR | SHCOLSTATE_ONBYDEFAULT, LVCFMT_LEFT, 10},
|
||||||
{IDS_SHV_COLUMN_SIZE, SHCOLSTATE_TYPE_STR | SHCOLSTATE_ONBYDEFAULT, LVCFMT_RIGHT, 10},
|
{IDS_SHV_COLUMN_SIZE, SHCOLSTATE_TYPE_STR | SHCOLSTATE_ONBYDEFAULT, LVCFMT_RIGHT, 10},
|
||||||
{IDS_SHV_COLUMN_MODIFIED, SHCOLSTATE_TYPE_DATE | SHCOLSTATE_ONBYDEFAULT, LVCFMT_LEFT, 12},
|
{IDS_SHV_COLUMN_MODIFIED, SHCOLSTATE_TYPE_DATE | SHCOLSTATE_ONBYDEFAULT, LVCFMT_LEFT, 12},
|
||||||
|
{IDS_SHV_COLUMN_COMMENTS, SHCOLSTATE_TYPE_STR, LVCFMT_LEFT, 0},
|
||||||
{IDS_SHV_COLUMN_ATTRIBUTES, SHCOLSTATE_TYPE_STR | SHCOLSTATE_ONBYDEFAULT, LVCFMT_LEFT, 10}
|
{IDS_SHV_COLUMN_ATTRIBUTES, SHCOLSTATE_TYPE_STR | SHCOLSTATE_ONBYDEFAULT, LVCFMT_LEFT, 10}
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -969,15 +969,12 @@ HRESULT WINAPI CFSFolder::CompareIDs(LPARAM lParam,
|
||||||
case 0: /* Name */
|
case 0: /* Name */
|
||||||
result = wcsicmp(pDataW1->wszName, pDataW2->wszName);
|
result = wcsicmp(pDataW1->wszName, pDataW2->wszName);
|
||||||
break;
|
break;
|
||||||
case 1: /* Comments */
|
case 1: /* Type */
|
||||||
result = 0;
|
|
||||||
break;
|
|
||||||
case 2: /* Type */
|
|
||||||
pExtension1 = PathFindExtensionW(pDataW1->wszName);
|
pExtension1 = PathFindExtensionW(pDataW1->wszName);
|
||||||
pExtension2 = PathFindExtensionW(pDataW2->wszName);
|
pExtension2 = PathFindExtensionW(pDataW2->wszName);
|
||||||
result = wcsicmp(pExtension1, pExtension2);
|
result = wcsicmp(pExtension1, pExtension2);
|
||||||
break;
|
break;
|
||||||
case 3: /* Size */
|
case 2: /* Size */
|
||||||
if (pData1->u.file.dwFileSize > pData2->u.file.dwFileSize)
|
if (pData1->u.file.dwFileSize > pData2->u.file.dwFileSize)
|
||||||
result = 1;
|
result = 1;
|
||||||
else if (pData1->u.file.dwFileSize < pData2->u.file.dwFileSize)
|
else if (pData1->u.file.dwFileSize < pData2->u.file.dwFileSize)
|
||||||
|
@ -985,11 +982,14 @@ HRESULT WINAPI CFSFolder::CompareIDs(LPARAM lParam,
|
||||||
else
|
else
|
||||||
result = 0;
|
result = 0;
|
||||||
break;
|
break;
|
||||||
case 4: /* Modified */
|
case 3: /* Modified */
|
||||||
result = pData1->u.file.uFileDate - pData2->u.file.uFileDate;
|
result = pData1->u.file.uFileDate - pData2->u.file.uFileDate;
|
||||||
if (result == 0)
|
if (result == 0)
|
||||||
result = pData1->u.file.uFileTime - pData2->u.file.uFileTime;
|
result = pData1->u.file.uFileTime - pData2->u.file.uFileTime;
|
||||||
break;
|
break;
|
||||||
|
case 4: /* Comments */
|
||||||
|
result = 0;
|
||||||
|
break;
|
||||||
case 5: /* Attributes */
|
case 5: /* Attributes */
|
||||||
return SHELL32_CompareDetails(this, lParam, pidl1, pidl2);
|
return SHELL32_CompareDetails(this, lParam, pidl1, pidl2);
|
||||||
}
|
}
|
||||||
|
@ -1532,18 +1532,18 @@ HRESULT WINAPI CFSFolder::GetDetailsOf(PCUITEMID_CHILD pidl,
|
||||||
case 0: /* name */
|
case 0: /* name */
|
||||||
hr = GetDisplayNameOf (pidl, SHGDN_NORMAL | SHGDN_INFOLDER, &psd->str);
|
hr = GetDisplayNameOf (pidl, SHGDN_NORMAL | SHGDN_INFOLDER, &psd->str);
|
||||||
break;
|
break;
|
||||||
case 1: /* FIXME: comments */
|
case 1: /* type */
|
||||||
psd->str.cStr[0] = 0;
|
|
||||||
break;
|
|
||||||
case 2: /* type */
|
|
||||||
_ILGetFileType(pidl, psd->str.cStr, MAX_PATH);
|
_ILGetFileType(pidl, psd->str.cStr, MAX_PATH);
|
||||||
break;
|
break;
|
||||||
case 3: /* size */
|
case 2: /* size */
|
||||||
_ILGetFileSize(pidl, psd->str.cStr, MAX_PATH);
|
_ILGetFileSize(pidl, psd->str.cStr, MAX_PATH);
|
||||||
break;
|
break;
|
||||||
case 4: /* date */
|
case 3: /* date */
|
||||||
_ILGetFileDate(pidl, psd->str.cStr, MAX_PATH);
|
_ILGetFileDate(pidl, psd->str.cStr, MAX_PATH);
|
||||||
break;
|
break;
|
||||||
|
case 4: /* FIXME: comments */
|
||||||
|
psd->str.cStr[0] = 0;
|
||||||
|
break;
|
||||||
case 5: /* attributes */
|
case 5: /* attributes */
|
||||||
_ILGetFileAttributes(pidl, psd->str.cStr, MAX_PATH);
|
_ILGetFileAttributes(pidl, psd->str.cStr, MAX_PATH);
|
||||||
break;
|
break;
|
||||||
|
|
|
@ -742,19 +742,13 @@ HRESULT WINAPI CRegFolder::GetDetailsOf(PCUITEMID_CHILD pidl, UINT iColumn, SHEL
|
||||||
return E_INVALIDARG;
|
return E_INVALIDARG;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (iColumn >= 3)
|
|
||||||
{
|
|
||||||
/* Return an empty string when we area asked for a column we don't support.
|
|
||||||
Only the regfolder is supposed to do this as it supports less columns compared to other folder
|
|
||||||
and its contents are supposed to be presented alongside items that support more columns. */
|
|
||||||
return SHSetStrRet(&psd->str, "");
|
|
||||||
}
|
|
||||||
|
|
||||||
switch(iColumn)
|
switch(iColumn)
|
||||||
{
|
{
|
||||||
case 0: /* name */
|
case 0: /* name */
|
||||||
return GetDisplayNameOf(pidl, SHGDN_NORMAL | SHGDN_INFOLDER, &psd->str);
|
return GetDisplayNameOf(pidl, SHGDN_NORMAL | SHGDN_INFOLDER, &psd->str);
|
||||||
case 1: /* comments */
|
case 1: /* type */
|
||||||
|
return SHSetStrRet(&psd->str, IDS_SYSTEMFOLDER);
|
||||||
|
case 4: /* comments */
|
||||||
HKEY hKey;
|
HKEY hKey;
|
||||||
if (!HCR_RegOpenClassIDKey(*clsid, &hKey))
|
if (!HCR_RegOpenClassIDKey(*clsid, &hKey))
|
||||||
return SHSetStrRet(&psd->str, "");
|
return SHSetStrRet(&psd->str, "");
|
||||||
|
@ -764,8 +758,11 @@ HRESULT WINAPI CRegFolder::GetDetailsOf(PCUITEMID_CHILD pidl, UINT iColumn, SHEL
|
||||||
RegLoadMUIStringA(hKey, "InfoTip", psd->str.cStr, MAX_PATH, NULL, 0, NULL);
|
RegLoadMUIStringA(hKey, "InfoTip", psd->str.cStr, MAX_PATH, NULL, 0, NULL);
|
||||||
RegCloseKey(hKey);
|
RegCloseKey(hKey);
|
||||||
return S_OK;
|
return S_OK;
|
||||||
case 2: /* type */
|
default:
|
||||||
return SHSetStrRet(&psd->str, IDS_SYSTEMFOLDER);
|
/* Return an empty string when we area asked for a column we don't support.
|
||||||
|
Only the regfolder is supposed to do this as it supports less columns compared to other folder
|
||||||
|
and its contents are supposed to be presented alongside items that support more columns. */
|
||||||
|
return SHSetStrRet(&psd->str, "");
|
||||||
}
|
}
|
||||||
return E_FAIL;
|
return E_FAIL;
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in a new issue