From: <sv...@op...> - 2024-07-20 22:39:37
|
Author: sagamusix Date: Sun Jul 21 00:39:25 2024 New Revision: 21208 URL: https://source.openmpt.org/browse/openmpt/?op=revision&rev=21208 Log: [Imp] Instrument library: Show size information for samples in modules, and use cached information for displaying file size and modification time of on-disk files. Modified: trunk/OpenMPT/mptrack/View_tre.cpp Modified: trunk/OpenMPT/mptrack/View_tre.cpp ============================================================================== --- trunk/OpenMPT/mptrack/View_tre.cpp Sat Jul 20 20:41:38 2024 (r21207) +++ trunk/OpenMPT/mptrack/View_tre.cpp Sun Jul 21 00:39:25 2024 (r21208) @@ -3370,21 +3370,24 @@ if(m_redrawLockCount) return; HTREEITEM hItem = GetSelectedItem(); - switch(GetModItem(hItem).type) + const auto type = GetModItem(hItem).type; + switch(type) { case MODITEM_INSLIB_SONG: case MODITEM_INSLIB_SAMPLE: case MODITEM_INSLIB_INSTRUMENT: - if(WIN32_FILE_ATTRIBUTE_DATA fad; GetFileAttributesEx(InsLibGetFullPath(hItem).AsNative().c_str(), GetFileExInfoStandard, &fad)) + if(uint32 itemData = static_cast<uint32>(GetItemData(hItem)); itemData > 0 && itemData <= m_fileBrowserEntries.size()) { - LARGE_INTEGER size; - size.HighPart = fad.nFileSizeHigh; - size.LowPart = fad.nFileSizeLow; - FILETIME localTime; - FileTimeToLocalFileTime(&fad.ftLastWriteTime, &localTime); - SYSTEMTIME sysTime; - FileTimeToSystemTime(&localTime, &sysTime); - m_HelpText = MPT_CFORMAT("Size: {}, last modified: {}")(FormatFileSize(size.QuadPart), CTime(sysTime).Format(_T("%d %b %Y, %H:%M:%S"))); + const auto &entry = m_fileBrowserEntries[itemData - 1]; + m_HelpText = MPT_CFORMAT("Size: {}")(FormatFileSize(entry.size)); + if(!m_SongFile) + { + const FILETIME modtime{LODWORD(entry.modtime), HIDWORD(entry.modtime)}; + m_HelpText += MPT_CFORMAT(", last modified: {}")(CTime(modtime).Format(_T("%d %b %Y, %H:%M:%S"))); + } else if(type != MODITEM_INSLIB_SAMPLE) + { + m_HelpText.Empty(); + } CMainFrame::GetMainFrame()->SetHelpText(m_HelpText); } break; |