status_t BPackageManager::_GetRepositoryCache(BPackageRoster& roster, const BRepositoryConfig& config, bool refresh, BRepositoryCache& _cache) { if (!refresh && roster.GetRepositoryCache(config.Name(), &_cache) == B_OK) return B_OK; status_t error = RefreshRepository(config); if (error != B_OK) { fUserInteractionHandler->Warn(error, "refreshing repository \"%s\" failed", config.Name().String()); } return roster.GetRepositoryCache(config.Name(), &_cache); }
BOOL CRepositoryView::PreTranslateMessage(MSG* pMsg) { if (pMsg->message == WM_KEYDOWN) { switch(pMsg->wParam) { case VK_RETURN: { TVITEM item; item.mask = TVIF_HANDLE; item.hItem = m_Tree.GetSelectedItem(); if (m_Tree.GetItem(&item)) { CComPtr<CTreeNode> tn = (CTreeNode *)item.lParam; tn->OnDblclk(m_Tree.GetSelectedItem()); } } break; case _T('C'): case _T('c'): { UINT ctrl = ::GetKeyState(VK_CONTROL); UINT alt = ::GetKeyState(VK_MENU); if (ctrl != 0 && alt != 0) { CRepositorySelections s; GetSelected(s); if (!s.attrs.empty()) DoCopy(s.attrs, _T("\r\n")); return 0; } } break; case VK_F5: RefreshRepository(); break; default: break; } } return IsDialogMessage(pMsg); }