BOOL CLibraryCollectionView::CheckAvailable(CLibraryTreeItem* pSel) { BOOL bAvailable = FALSE; CQuickLock oLock( Library.m_pSection ); if ( CAlbumFolder* pFolder = GetSelectedAlbum( pSel ) ) { if ( pFolder->m_oCollSHA1 ) { if ( LibraryMaps.LookupFileBySHA1( pFolder->m_oCollSHA1, FALSE, TRUE ) ) { bAvailable = TRUE; } else { pFolder->m_oCollSHA1.clear(); Library.Update(); } } } if ( bAvailable != m_bAvailable ) { m_bAvailable = bAvailable; m_bLockdown = FALSE; } return m_bAvailable; }
void CLibraryCollectionView::Update() { if ( CAlbumFolder* pFolder = GetSelectedAlbum() ) { if ( pFolder->m_oCollSHA1 && m_pWebCtrl != NULL ) { if ( CLibraryFile* pFile = LibraryMaps.LookupFileBySHA1( pFolder->m_oCollSHA1, FALSE, TRUE ) ) { ShowCollection( pFile ); return; } } } ShowCollection( NULL ); }
int CLibraryHeaderPanel::Update() { CAlbumFolder* pFolder = GetSelectedAlbum(); if ( pFolder == NULL || pFolder->m_pSchema == NULL ) return 0; m_nIcon32 = pFolder->m_pSchema->m_nIcon32; m_nIcon48 = pFolder->m_pSchema->m_nIcon48; m_sTitle = pFolder->m_pSchema->m_sHeaderTitle; m_sSubtitle = pFolder->m_pSchema->m_sHeaderSubtitle; if ( pFolder->GetParent() == NULL ) { QWORD nTotalVolume; DWORD nTotalFiles; CString str; LibraryMaps.GetStatistics( &nTotalFiles, &nTotalVolume ); str.Format( _T("%lu"), nTotalFiles ); m_sSubtitle.Replace( _T("{totalFiles}"), str ); str = Settings.SmartVolume( nTotalVolume, KiloBytes ); m_sSubtitle.Replace( _T("{totalVolume}"), str ); } pFolder->m_pSchema->ResolveTokens( m_sTitle, pFolder->m_pXML ); pFolder->m_pSchema->ResolveTokens( m_sSubtitle, pFolder->m_pXML ); if ( m_sTitle.IsEmpty() ) m_sTitle = pFolder->m_sName; m_pMetadata.Setup( pFolder->m_pSchema ); m_pMetadata.Remove( pFolder->m_pSchema->GetFirstMemberName() ); m_pMetadata.Combine( pFolder->m_pXML ); m_pMetadata.CreateLinks(); m_pMetadata.Clean( 54 ); if ( m_pMetadata.GetCount() ) { CClientDC dc( this ); CFont* pFont = (CFont*)dc.SelectObject( &CoolInterface.m_fntNormal ); m_nKeyWidth = m_nMetaWidth = 0; m_pMetadata.ComputeWidth( &dc, m_nKeyWidth, m_nMetaWidth ); if ( m_nKeyWidth ) m_nKeyWidth += 8; m_nMetaWidth += m_nKeyWidth; dc.SelectObject( pFont ); } if (m_hWnd) Invalidate(); int nHeight = static_cast< int >( m_pMetadata.GetCount() * 12 + 8 ); if ( pFolder->GetParent() ) { nHeight = max( 64, nHeight ); } else { nHeight = max( 56, nHeight ); } return min( 80, nHeight ); }