📄 mpdupdatedlg.cpp
字号:
if (!bFound) { m_host_list.InsertString(-1, m_hostname); } } }}int CMPDUpdateDlg::OnVKeyToItem(UINT nKey, CListBox* pListBox, UINT nIndex) { if (*pListBox == m_host_list) { if (nKey == VK_DELETE) { int index = m_host_list.GetCurSel(); if (index != LB_ERR) { m_host_list.DeleteString(index); if (m_host_list.SetCurSel(index) == LB_ERR) m_host_list.SetCurSel(index-1); } } } return CDialog::OnVKeyToItem(nKey, pListBox, nIndex);}void CMPDUpdateDlg::OnClose() { if (m_hUpdateBtnThread) { TerminateThread(m_hUpdateBtnThread, -1); m_hUpdateBtnThread = NULL; } easy_socket_finalize(); CDialog::OnClose();}void CMPDUpdateDlg::OnSize(UINT nType, int cx, int cy) { CDialog::OnSize(nType, cx, cy); if (nType != SIZE_MINIMIZED) { /* if (m_nMinWidth != -1) { if (cx < m_nMinWidth || cy < m_nMinHeight) { RECT r, r2; r.left = 0; r.top = 0; r.right = m_nMinWidth; r.bottom = m_nMinHeight; AdjustWindowRect(&r, WS_CHILD, FALSE); GetWindowRect(&r2); MoveWindow(r2.left, r2.top, r.right-r.left, r.bottom-r.top, TRUE); } } */ if (m_nMinWidth <= cx || m_nMinHeight <= cy) { if (cx < m_nMinWidth) cx = m_nMinWidth; if (cy < m_nMinHeight) cy = m_nMinHeight; rList.Resize(cx, cy); rResults.Resize(cx, cy); if (bOnInitDialogFinished) Invalidate(); } }}void CMPDUpdateDlg::OnShowHostChk() { UpdateData(); if (m_bShowHostConfig) GetHostConfig(NULL); else { m_config_host = ""; m_config_mpich_version = ""; m_config_mpd_version = ""; UpdateData(FALSE); }}void CMPDUpdateDlg::OnSelchangeHostList() { UpdateData(); if (m_bShowHostConfig) { CString host; int index = m_host_list.GetCurSel(); if (index != LB_ERR) { m_host_list.GetText(index, host); GetHostConfig(host); } }}void CMPDUpdateDlg::GetHostConfig(const char *host){ CString sHost; SOCKET sock; char pszStr[MAX_CMD_LENGTH] = "mpd not installed"; UpdateData(); if (host == NULL) { int index = m_host_list.GetCurSel(); if (index == LB_ERR) return; m_host_list.GetText(index, sHost); } else sHost = host; if (m_bNeedPassword) { if (m_bUseDefault) strcpy(m_pszPhrase, MPD_DEFAULT_PASSPHRASE); else strcpy(m_pszPhrase, m_mpd_pwd); } HCURSOR hOldCursor = SetCursor( LoadCursor(NULL, IDC_WAIT) ); if (ConnectToMPDquickReport(sHost, m_mpd_port, m_pszPhrase, &sock, pszStr) == 0) { // get the mpd version WriteString(sock, "version"); if (ReadStringTimeout(sock, pszStr, MPD_SHORT_TIMEOUT)) { m_config_mpd_version = "mpd:\r\n"; m_config_mpd_version += pszStr; } else { m_config_mpd_version = "mpd:\r\nunknown version"; } // get the mpich version WriteString(sock, "mpich version"); if (ReadStringTimeout(sock, pszStr, MPD_SHORT_TIMEOUT)) { m_config_mpich_version = "mpich:\r\n"; m_config_mpich_version += pszStr; } else { m_config_mpich_version = "mpich:\r\nunknown version"; } m_config_host = sHost; WriteString(sock, "done"); easy_closesocket(sock); } else { if (strstr(pszStr, "10061")) m_config_mpich_version = "mpd not installed"; else if (strstr(pszStr, "11001")) m_config_mpich_version = "unknown host"; else m_config_mpich_version = pszStr; m_config_mpd_version = ""; m_config_host = sHost; } SetCursor(hOldCursor); UpdateData(FALSE);}void CMPDUpdateDlg::OnAnlBtn() { UpdateData(); m_urlname = "ftp://ftp.mcs.anl.gov/pub/mpi/nt/binaries/mpd.exe"; UpdateData(FALSE);}void CMPDUpdateDlg::OnFileBrowseBtn() { UpdateData(); CFileDialog f( TRUE, "*.exe", m_filename, OFN_HIDEREADONLY | OFN_EXPLORER | OFN_FILEMUSTEXIST | OFN_PATHMUSTEXIST, "Executables (*.exe)|*.exe|All files (*.*)|*.*||" ); if (f.DoModal() == IDOK) { POSITION p; p = f.GetStartPosition(); m_filename = f.GetNextPathName(p); UpdateData(FALSE); }}void CMPDUpdateDlg::OnURLRadio() { UpdateData(); if (m_url_radio.GetCheck()) { m_url_edit.EnableWindow(); m_anl_btn.EnableWindow(); m_file_edit.EnableWindow(FALSE); m_file_browse_btn.EnableWindow(FALSE); } else { m_url_edit.EnableWindow(FALSE); m_anl_btn.EnableWindow(FALSE); m_file_edit.EnableWindow(); m_file_browse_btn.EnableWindow(); }}void CMPDUpdateDlg::OnFileRadio() { UpdateData(); if (m_file_radio.GetCheck()) { m_file_edit.EnableWindow(); m_file_browse_btn.EnableWindow(); m_url_edit.EnableWindow(FALSE); m_anl_btn.EnableWindow(FALSE); } else { m_file_edit.EnableWindow(FALSE); m_file_browse_btn.EnableWindow(FALSE); m_url_edit.EnableWindow(); m_anl_btn.EnableWindow(); }}void CMPDUpdateDlg::OnSelectHostsBtn() { CFindHostsDlg dlg; if (dlg.DoModal() == IDOK) { QVS_Container qvs; char str[100]; m_host_list.ResetContent(); qvs.decode_string((char*)(LPCTSTR)dlg.m_encoded_hosts); if (qvs.first(str, 100)) { m_host_list.AddString(str); while (qvs.next(str, 100)) { m_host_list.AddString(str); } } }}void CMPDUpdateDlg::OnUpdateMpichCheck() { UpdateData(); if (m_bUpdateMPICH) { m_mpich_source_static.EnableWindow(); m_mpich_filename_radio.EnableWindow(); m_mpich_url_radio.EnableWindow(); m_mpich_version_btn.EnableWindow(); OnMpichUrlRadio(); } else { m_mpich_source_static.EnableWindow(FALSE); m_mpich_filename_radio.EnableWindow(FALSE); m_mpich_url_radio.EnableWindow(FALSE); m_mpich_url_edit.EnableWindow(FALSE); m_mpich_anl_btn.EnableWindow(FALSE); m_mpich_filename_edit.EnableWindow(FALSE); m_mpich_file_browse_btn.EnableWindow(FALSE); m_mpich_version_btn.EnableWindow(FALSE); }}void CMPDUpdateDlg::OnUpdateMpdCheck() { UpdateData(); if (m_bUpdateMPD) { m_source_static.EnableWindow(); m_file_radio.EnableWindow(); m_url_radio.EnableWindow(); m_mpd_version_btn.EnableWindow(); OnURLRadio(); } else { m_source_static.EnableWindow(FALSE); m_file_radio.EnableWindow(FALSE); m_url_radio.EnableWindow(FALSE); m_url_edit.EnableWindow(FALSE); m_anl_btn.EnableWindow(FALSE); m_file_edit.EnableWindow(FALSE); m_file_browse_btn.EnableWindow(FALSE); m_mpd_version_btn.EnableWindow(FALSE); }}void CMPDUpdateDlg::OnMpdPortChk() { UpdateData(); if (m_bMPDPortChecked) { m_mpd_port_edit.EnableWindow(); m_mpd_port_static.EnableWindow(FALSE); } else { m_mpd_port_edit.EnableWindow(FALSE); m_mpd_port_static.EnableWindow(); }}void CMPDUpdateDlg::OnMpdPassphraseChk() { UpdateData(); if (m_bMPDPassphraseChecked) { m_mpd_pwd_edit.EnableWindow(); m_mpd_pwd_static.EnableWindow(FALSE); } else { m_mpd_pwd_edit.EnableWindow(FALSE); m_mpd_pwd_static.EnableWindow(); }}void CMPDUpdateDlg::OnMpichUrlRadio() { UpdateData(); if (m_mpich_url_radio.GetCheck()) { m_mpich_url_edit.EnableWindow(); m_mpich_anl_btn.EnableWindow(); m_mpich_filename_edit.EnableWindow(FALSE); m_mpich_file_browse_btn.EnableWindow(FALSE); } else { m_mpich_url_edit.EnableWindow(FALSE); m_mpich_anl_btn.EnableWindow(FALSE); m_mpich_filename_edit.EnableWindow(); m_mpich_file_browse_btn.EnableWindow(); }}void CMPDUpdateDlg::OnMpichFileRadio() { UpdateData(); if (m_mpich_filename_radio.GetCheck()) { m_mpich_filename_edit.EnableWindow(); m_mpich_file_browse_btn.EnableWindow(); m_mpich_url_edit.EnableWindow(FALSE); m_mpich_anl_btn.EnableWindow(FALSE); } else { m_mpich_filename_edit.EnableWindow(FALSE); m_mpich_file_browse_btn.EnableWindow(FALSE); m_mpich_url_edit.EnableWindow(); m_mpich_anl_btn.EnableWindow(); }}void CMPDUpdateDlg::OnMpichFileBrowseBtn() { UpdateData(); CFileDialog f( TRUE, "*.dll", m_mpich_filename, OFN_HIDEREADONLY | OFN_EXPLORER | OFN_FILEMUSTEXIST | OFN_PATHMUSTEXIST, "Dynamic libraries (*.dll)|*.dll|All files (*.*)|*.*||" ); if (f.DoModal() == IDOK) { POSITION p; p = f.GetStartPosition(); m_mpich_filename = f.GetNextPathName(p); UpdateData(FALSE); }}void CMPDUpdateDlg::OnMpichAnlBtn() { UpdateData(); m_mpich_url = "ftp://ftp.mcs.anl.gov/pub/mpi/nt/binaries/mpich.dll"; UpdateData(FALSE);}void CMPDUpdateDlg::OnMpichVersionBtn() { HCURSOR hOldCursor; bool bDeleteTmpMPICH = false; unsigned int version; char str[100]; UpdateData(); hOldCursor = SetCursor( LoadCursor(NULL, IDC_WAIT) ); if (m_mpich_url_radio.GetCheck()) { if (!GetTmpMPICHFromURL()) { SetCursor(hOldCursor); MessageBox("Unable to retrieve the new mpich dll from the specified url.", "Error"); return; } bDeleteTmpMPICH = true; } if (!GetLocalMPICHVersion(m_mpich_url_radio.GetCheck() ? m_mpich_localfile : m_mpich_filename, version)) { if (bDeleteTmpMPICH) { DeleteFile(m_mpich_localfile); DeleteFile(m_mpich_localfiled); } SetCursor(hOldCursor); MessageBox("Unable to get the version of the new mpich dll", "Error"); return; } if (bDeleteTmpMPICH) { DeleteFile(m_mpich_localfile); DeleteFile(m_mpich_localfiled); } if (version == 0) { m_mpich_version = "<not versioned>"; } else { mpd_version_int_to_string(version, str); m_mpich_version = str; } SetCursor(hOldCursor); UpdateData(FALSE);}void CMPDUpdateDlg::OnMpdVersionBtn() { HCURSOR hOldCursor; bool bDeleteTmpMpd = false; unsigned int version; char str[100]; UpdateData(); hOldCursor = SetCursor( LoadCursor(NULL, IDC_WAIT) ); if (m_url_radio.GetCheck()) { if (!GetTmpMpdFromURL()) { SetCursor(hOldCursor); MessageBox("Unable to retrieve the new mpd from the specified url.", "Error"); return; } bDeleteTmpMpd = true; } if (!GetLocalVersion(m_url_radio.GetCheck() ? m_localfile : m_filename, version)) { if (bDeleteTmpMpd) DeleteFile(m_localfile); SetCursor(hOldCursor); MessageBox("Unable to get the version of the new mpd", "Error"); return; } if (bDeleteTmpMpd) { DeleteFile(m_localfile); } mpd_version_int_to_string(version, str); m_mpd_version = str; SetCursor(hOldCursor); UpdateData(FALSE);}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -