void CHistoryCombo::SaveHistory() { if (m_sSection.IsEmpty()) return; //add the current item to the history CString sCurItem; GetWindowText(sCurItem); if (m_bTrim) sCurItem.Trim(); if (!sCurItem.IsEmpty()) AddString(sCurItem, 0); //save history to registry/inifile int nMax = min(GetCount(), m_nMaxHistoryItems + 1); for (int n = 0; n < nMax; n++) { CString sKey; sKey.Format(_T("%s\\%s%d"), (LPCTSTR)m_sSection, (LPCTSTR)m_sKeyPrefix, n); CRegString regkey = CRegString(sKey); regkey = m_arEntries.GetAt(n); } //remove items exceeding the max number of history items for (int n = nMax; ; n++) { CString sKey; sKey.Format(_T("%s\\%s%d"), (LPCTSTR)m_sSection, (LPCTSTR)m_sKeyPrefix, n); CRegString regkey = CRegString(sKey); CString sText = regkey; if (sText.IsEmpty()) break; regkey.removeValue(); // remove entry } }
CSetDialogs::CSetDialogs() : ISettingsPropPage(CSetDialogs::IDD) , m_sDefaultLogs(L"") , m_bShortDateFormat(FALSE) , m_dwFontSize(0) , m_sFontName(L"") , m_bUseWCURL(FALSE) , m_sDefaultCheckoutPath(L"") , m_sDefaultCheckoutUrl(L"") , m_bDiffByDoubleClick(FALSE) , m_bUseSystemLocaleForDates(FALSE) , m_bUseRecycleBin(TRUE) , m_bAutoCloseLocal(FALSE) , m_dwAutoClose(0) { m_regAutoClose = CRegDWORD(L"Software\\TortoiseSVN\\AutoClose"); m_regAutoCloseLocal = CRegDWORD(L"Software\\TortoiseSVN\\AutoCloseLocal"); m_regDefaultLogs = CRegDWORD(L"Software\\TortoiseSVN\\NumberOfLogs", 100); m_regShortDateFormat = CRegDWORD(L"Software\\TortoiseSVN\\LogDateFormat", FALSE); m_regUseSystemLocaleForDates = CRegDWORD(L"Software\\TortoiseSVN\\UseSystemLocaleForDates", TRUE); m_regFontName = CRegString(L"Software\\TortoiseSVN\\LogFontName", L"Courier New"); m_regFontSize = CRegDWORD(L"Software\\TortoiseSVN\\LogFontSize", 8); m_regUseWCURL = CRegDWORD(L"Software\\TortoiseSVN\\MergeWCURL", FALSE); m_regDefaultCheckoutPath = CRegString(L"Software\\TortoiseSVN\\DefaultCheckoutPath"); m_regDefaultCheckoutUrl = CRegString(L"Software\\TortoiseSVN\\DefaultCheckoutUrl"); m_regDiffByDoubleClick = CRegDWORD(L"Software\\TortoiseSVN\\DiffByDoubleClickInLog", FALSE); m_regUseRecycleBin = CRegDWORD(L"Software\\TortoiseSVN\\RevertWithRecycleBin", TRUE); }
BOOL CRequestPullDlg::OnInitDialog() { CHorizontalResizableStandAloneDialog::OnInitDialog(); CAppUtils::MarkWindowAsUnpinnable(m_hWnd); AddAnchor(IDOK,BOTTOM_RIGHT); AddAnchor(IDCANCEL,BOTTOM_RIGHT); AddAnchor(IDHELP,BOTTOM_RIGHT); AddAnchor(IDC_BUTTON_LOCAL_BRANCH, TOP_RIGHT); AddAnchor(IDC_COMBOBOXEX_LOCAL_BRANCH, TOP_LEFT,TOP_RIGHT); AddAnchor(IDC_COMBOBOXEX_URL, TOP_LEFT,TOP_RIGHT); AddAnchor(IDC_REMOTE_BRANCH, TOP_LEFT,TOP_RIGHT); EnableSaveRestore(_T("RequestPullDlg")); CString sWindowTitle; GetWindowText(sWindowTitle); CAppUtils::SetWindowTitle(m_hWnd, g_Git.m_CurrentDir, sWindowTitle); STRING_VECTOR list; int current; g_Git.GetBranchList(list, ¤t, CGit::BRANCH_ALL); m_cStartRevision.SetMaxHistoryItems(0x7FFFFFFF); for (unsigned int i = 0; i < list.size(); i++) { m_cStartRevision.AddString(list[i]); } CString WorkingDir=g_Git.m_CurrentDir; WorkingDir.Replace(_T(':'), _T('_')); m_RegStartRevision = CRegString(_T("Software\\TortoiseGit\\History\\RequestPull\\")+WorkingDir+_T("\\startrevision")); if(m_StartRevision.IsEmpty()) { m_StartRevision = m_RegStartRevision; } m_cStartRevision.SetWindowTextW(m_StartRevision); // store URLs in global history, but save last used local url separately, // because one normally has only one writable repository m_cRepositoryURL.SetURLHistory(TRUE); m_cRepositoryURL.LoadHistory(_T("Software\\TortoiseGit\\History\\RequestPull"), _T("url")); m_RegRepositoryURL = CRegString(_T("Software\\TortoiseGit\\History\\RequestPull\\")+WorkingDir+_T("\\repositoryurl")); if(m_RepositoryURL.IsEmpty()) { m_RepositoryURL = m_RegRepositoryURL; } m_cRepositoryURL.SetWindowTextW(m_RepositoryURL); m_RegEndRevision = CRegString(_T("Software\\TortoiseGit\\History\\RequestPull\\")+WorkingDir+_T("\\endrevision"), _T("HEAD")); if(m_EndRevision.IsEmpty()) { m_EndRevision = m_RegEndRevision; } m_cEndRevision.SetWindowTextW(m_EndRevision); this->UpdateData(FALSE); return TRUE; }
CodeCollaboratorSettingsDlg::CodeCollaboratorSettingsDlg(CWnd* pParent /*=NULL*/) : CDialog(CodeCollaboratorSettingsDlg::IDD, pParent), { m_regCollabUser = CRegString(L"Software\\TortoiseSVN\\CodeCollaborator\\CollabUser", L""); m_regCollabPassword = CRegString(L"Software\\TortoiseSVN\\CodeCollaborator\\CollabPassword", L""); m_regSvnUser = CRegString(L"Software\\TortoiseSVN\\CodeCollaborator\\SvnUser", L""); m_regSvnPassword = CRegString(L"Software\\TortoiseSVN\\CodeCollaborator\\SvnPassword", L""); }
CSettingsProgsDiff::CSettingsProgsDiff() : ISettingsPropPage(CSettingsProgsDiff::IDD) , m_dlgAdvDiff(_T("Diff")) , m_iExtDiff(0) , m_iDiffViewer(0) { m_regDiffPath = CRegString(_T("Software\\TortoiseGit\\Diff")); m_regDiffViewerPath = CRegString(_T("Software\\TortoiseGit\\DiffViewer")); }
CSetMainPage::CSetMainPage() : ISettingsPropPage(CSetMainPage::IDD) , m_bLastCommitTime(FALSE) , m_bUseAero(TRUE) , m_dwLanguage(0) { m_regLanguage = CRegDWORD(L"Software\\TortoiseSVN\\LanguageID", 1033); CString temp(SVN_CONFIG_DEFAULT_GLOBAL_IGNORES); m_regExtensions = CRegString(L"Software\\Tigris.org\\Subversion\\Config\\miscellany\\global-ignores", temp); m_regLastCommitTime = CRegString(L"Software\\Tigris.org\\Subversion\\Config\\miscellany\\use-commit-times", L""); m_regUseAero = CRegDWORD(L"Software\\TortoiseSVN\\EnableDWMFrame", TRUE); }
CSetMainPage::CSetMainPage() : ISettingsPropPage(CSetMainPage::IDD) , m_bCheckNewer(TRUE) , m_dwLanguage(0) { m_regLanguage = CRegDWORD(L"Software\\TortoiseGit\\LanguageID", 1033); m_regMsysGitPath = CRegString(REG_MSYSGIT_PATH); m_regMsysGitExtranPath =CRegString(REG_MSYSGIT_EXTRA_PATH); m_sMsysGitPath = m_regMsysGitPath; m_sMsysGitExtranPath = m_regMsysGitExtranPath; m_regCheckNewer = CRegDWORD(L"Software\\TortoiseGit\\VersionCheck", TRUE); }
CSetOverlayPage::CSetOverlayPage() : ISettingsPropPage(CSetOverlayPage::IDD) , m_bRemovable(FALSE) , m_bNetwork(FALSE) , m_bFixed(FALSE) , m_bCDROM(FALSE) , m_bRAM(FALSE) , m_bUnknown(FALSE) , m_bOnlyExplorer(FALSE) , m_sExcludePaths(_T("")) , m_sIncludePaths(_T("")) , m_bUnversionedAsModified(FALSE) , m_bIgnoreOnCommitIgnored(TRUE) , m_bFloppy(FALSE) , m_bShowExcludedAsNormal(TRUE) { m_regOnlyExplorer = CRegDWORD(_T("Software\\TortoiseSVN\\LoadDllOnlyInExplorer"), FALSE); m_regDriveMaskRemovable = CRegDWORD(_T("Software\\TortoiseSVN\\DriveMaskRemovable")); m_regDriveMaskFloppy = CRegDWORD(_T("Software\\TortoiseSVN\\DriveMaskFloppy")); m_regDriveMaskRemote = CRegDWORD(_T("Software\\TortoiseSVN\\DriveMaskRemote")); m_regDriveMaskFixed = CRegDWORD(_T("Software\\TortoiseSVN\\DriveMaskFixed"), TRUE); m_regDriveMaskCDROM = CRegDWORD(_T("Software\\TortoiseSVN\\DriveMaskCDROM")); m_regDriveMaskRAM = CRegDWORD(_T("Software\\TortoiseSVN\\DriveMaskRAM")); m_regDriveMaskUnknown = CRegDWORD(_T("Software\\TortoiseSVN\\DriveMaskUnknown")); m_regExcludePaths = CRegString(_T("Software\\TortoiseSVN\\OverlayExcludeList")); m_regIncludePaths = CRegString(_T("Software\\TortoiseSVN\\OverlayIncludeList")); m_regCacheType = CRegDWORD(_T("Software\\TortoiseSVN\\CacheType"), GetSystemMetrics(SM_REMOTESESSION) ? 2 : 1); m_regUnversionedAsModified = CRegDWORD(_T("Software\\TortoiseSVN\\UnversionedAsModified"), FALSE); m_regIgnoreOnCommitIgnored = CRegDWORD(L"Software\\TortoiseSVN\\IgnoreOnCommitIgnored", TRUE); m_regShowExcludedAsNormal = CRegDWORD(_T("Software\\TortoiseSVN\\ShowExcludedFoldersAsNormal"), FALSE); m_bOnlyExplorer = m_regOnlyExplorer; m_bRemovable = m_regDriveMaskRemovable; m_bFloppy = m_regDriveMaskFloppy; m_bNetwork = m_regDriveMaskRemote; m_bFixed = m_regDriveMaskFixed; m_bCDROM = m_regDriveMaskCDROM; m_bRAM = m_regDriveMaskRAM; m_bUnknown = m_regDriveMaskUnknown; m_bUnversionedAsModified = m_regUnversionedAsModified; m_bIgnoreOnCommitIgnored = m_regIgnoreOnCommitIgnored; m_bShowExcludedAsNormal = m_regShowExcludedAsNormal; m_sExcludePaths = m_regExcludePaths; m_sExcludePaths.Replace(_T("\n"), _T("\r\n")); m_sIncludePaths = m_regIncludePaths; m_sIncludePaths.Replace(_T("\n"), _T("\r\n")); m_dwCacheType = m_regCacheType; }
BOOL CBugtraqRegexTestDlg::OnInitDialog() { CResizableStandAloneDialog::OnInitDialog(); CAppUtils::MarkWindowAsUnpinnable(m_hWnd); ExtendFrameIntoClientArea(IDC_DWM); m_aeroControls.SubclassControl(this, IDC_PROPRECURSIVE); m_aeroControls.SubclassOkCancelHelp(this); ProjectProperties projectprops; projectprops.lProjectLanguage = -1; projectprops.SetBugIDRe(m_sBugtraqRegex1); projectprops.SetCheckRe(m_sBugtraqRegex2); m_cLogMessage.Init(projectprops); m_cLogMessage.SetFont((CString)CRegString(L"Software\\TortoiseSVN\\LogFontName", L"Courier New"), (DWORD)CRegDWORD(L"Software\\TortoiseSVN\\LogFontSize", 8)); CAppUtils::SetAccProperty(m_cLogMessage.GetSafeHwnd(), PROPID_ACC_ROLE, ROLE_SYSTEM_TEXT); CAppUtils::SetAccProperty(m_cLogMessage.GetSafeHwnd(), PROPID_ACC_HELP, CString(MAKEINTRESOURCE(IDS_INPUT_ENTERLOG))); m_cLogMessage.SetText(CString(MAKEINTRESOURCE(IDS_SAMPLEBUGTRAQTESTMSG))); AddAnchor(IDC_SAMPLELABEL, TOP_LEFT, TOP_RIGHT); AddAnchor(IDC_LOGMESSAGE, TOP_LEFT, BOTTOM_RIGHT); AddAnchor(IDC_REGEXIDLABEL, BOTTOM_LEFT); AddAnchor(IDC_BUGTRAQLOGREGEX1, BOTTOM_LEFT, BOTTOM_RIGHT); AddAnchor(IDC_REGEXMSGLABEL, BOTTOM_LEFT); AddAnchor(IDC_BUGTRAQLOGREGEX2, BOTTOM_LEFT, BOTTOM_RIGHT); AddAnchor(IDC_DWM, BOTTOM_LEFT); AddAnchor(IDOK, BOTTOM_RIGHT); AddAnchor(IDCANCEL, BOTTOM_RIGHT); return TRUE; }
CSettingsProgsDiff::CSettingsProgsDiff() : ISettingsPropPage(CSettingsProgsDiff::IDD) , m_dlgAdvDiff(L"Diff") , m_iExtDiff(0) , m_sDiffPath(L"") , m_iExtDiffProps(0) , m_sDiffPropsPath(L"") , m_regConvertBase(L"Software\\TortoiseSVN\\ConvertBase", TRUE) , m_bConvertBase(false) , m_sDiffViewerPath(L"") , m_iDiffViewer(0) { m_regDiffPath = CRegString(L"Software\\TortoiseSVN\\Diff"); m_regDiffPropsPath = CRegString(L"Software\\TortoiseSVN\\DiffProps"); m_regDiffViewerPath = CRegString(L"Software\\TortoiseSVN\\DiffViewer"); }
CSettingsTBlame::CSettingsTBlame() : ISettingsPropPage(CSettingsTBlame::IDD) , m_dwFontSize(0) , m_sFontName(L"") , m_dwTabSize(4) { m_regNewLinesColor = CRegDWORD(L"Software\\TortoiseSVN\\BlameNewColor", BLAMENEWCOLOR); m_regOldLinesColor = CRegDWORD(L"Software\\TortoiseSVN\\BlameOldColor", BLAMEOLDCOLOR); m_regNewLinesColorBar = CRegDWORD(L"Software\\TortoiseSVN\\BlameLocatorNewColor", BLAMENEWCOLORBAR); m_regOldLinesColorBar = CRegDWORD(L"Software\\TortoiseSVN\\BlameLocatorOldColor", BLAMEOLDCOLORBAR); m_regFontName = CRegString(L"Software\\TortoiseSVN\\BlameFontName", L"Courier New"); m_regFontSize = CRegDWORD(L"Software\\TortoiseSVN\\BlameFontSize", 10); m_regTabSize = CRegDWORD(L"Software\\TortoiseSVN\\BlameTabSize", 4); m_regIndexColors[0] = CRegDWORD(L"Software\\TortoiseSVN\\BlameIndexColor1", BLAMEINDEXCOLOR1); m_regIndexColors[1] = CRegDWORD(L"Software\\TortoiseSVN\\BlameIndexColor2", BLAMEINDEXCOLOR2); m_regIndexColors[2] = CRegDWORD(L"Software\\TortoiseSVN\\BlameIndexColor3", BLAMEINDEXCOLOR3); m_regIndexColors[3] = CRegDWORD(L"Software\\TortoiseSVN\\BlameIndexColor4", BLAMEINDEXCOLOR4); m_regIndexColors[4] = CRegDWORD(L"Software\\TortoiseSVN\\BlameIndexColor5", BLAMEINDEXCOLOR5); m_regIndexColors[5] = CRegDWORD(L"Software\\TortoiseSVN\\BlameIndexColor6", BLAMEINDEXCOLOR6); m_regIndexColors[6] = CRegDWORD(L"Software\\TortoiseSVN\\BlameIndexColor7", BLAMEINDEXCOLOR7); m_regIndexColors[7] = CRegDWORD(L"Software\\TortoiseSVN\\BlameIndexColor8", BLAMEINDEXCOLOR8); m_regIndexColors[8] = CRegDWORD(L"Software\\TortoiseSVN\\BlameIndexColor9", BLAMEINDEXCOLOR9); m_regIndexColors[9] = CRegDWORD(L"Software\\TortoiseSVN\\BlameIndexColor10", BLAMEINDEXCOLOR10); m_regIndexColors[10] = CRegDWORD(L"Software\\TortoiseSVN\\BlameIndexColor11", BLAMEINDEXCOLOR11); m_regIndexColors[11] = CRegDWORD(L"Software\\TortoiseSVN\\BlameIndexColor12", BLAMEINDEXCOLOR12); }
BOOL CBugtraqRegexTestDlg::OnInitDialog() { CResizableStandAloneDialog::OnInitDialog(); CAppUtils::MarkWindowAsUnpinnable(m_hWnd); ProjectProperties projectprops; projectprops.lProjectLanguage = -1; projectprops.SetBugIDRe(m_sBugtraqRegex1); projectprops.SetCheckRe(m_sBugtraqRegex2); m_cLogMessage.Init(projectprops); m_cLogMessage.SetFont((CString)CRegString(_T("Software\\TortoiseGit\\LogFontName"), _T("Courier New")), (DWORD)CRegDWORD(_T("Software\\TortoiseGit\\LogFontSize"), 8)); m_cLogMessage.SetText(CString(MAKEINTRESOURCE(IDS_SAMPLEBUGTRAQTESTMSG))); m_cLogMessage.Call(SCI_SETCURRENTPOS, 0); m_cLogMessage.Call(SCI_SETSEL, 0, 0); AddAnchor(IDC_SAMPLELABEL, TOP_LEFT, TOP_RIGHT); AddAnchor(IDC_LOGMESSAGE, TOP_LEFT, BOTTOM_RIGHT); AddAnchor(IDC_REGEXIDLABEL, BOTTOM_LEFT); AddAnchor(IDC_BUGTRAQLOGREGEX1, BOTTOM_LEFT, BOTTOM_RIGHT); AddAnchor(IDC_REGEXMSGLABEL, BOTTOM_LEFT); AddAnchor(IDC_BUGTRAQLOGREGEX2, BOTTOM_LEFT, BOTTOM_RIGHT); AddAnchor(IDOK, BOTTOM_RIGHT); AddAnchor(IDCANCEL, BOTTOM_RIGHT); return TRUE; }
CSettingsProgsUniDiff::CSettingsProgsUniDiff() : ISettingsPropPage(CSettingsProgsUniDiff::IDD) , m_sDiffViewerPath(_T("")) , m_iDiffViewer(0) { m_regDiffViewerPath = CRegString(_T("Software\\TortoiseGit\\DiffViewer")); }
CSettingsProgsAlternativeEditor::CSettingsProgsAlternativeEditor() : ISettingsPropPage(CSettingsProgsAlternativeEditor::IDD) , m_sAlternativeEditorPath(_T("")) , m_iAlternativeEditor(0) { m_regAlternativeEditorPath = CRegString(_T("Software\\TortoiseGit\\AlternativeEditor")); }
CCloneDlg::CCloneDlg(CWnd* pParent /*=NULL*/) : CHorizontalResizableStandAloneDialog(CCloneDlg::IDD, pParent) { m_bRecursive = FALSE; m_bBare = FALSE; m_bBranch = FALSE; m_bOrigin = FALSE; m_bNoCheckout = FALSE; m_bSVN = FALSE; m_bSVNTrunk = FALSE; m_bSVNTags = FALSE; m_bSVNBranch = FALSE; m_bSVNFrom = FALSE; m_bSVNUserName = FALSE; m_bExactPath = FALSE; m_strSVNTrunk = _T("trunk"); m_strSVNTags = _T("tags"); m_strSVNBranchs = _T("branches"); m_regBrowseUrl = CRegDWORD(_T("Software\\TortoiseGit\\TortoiseProc\\CloneBrowse"),0); m_regCloneDir = CRegString(_T("Software\\TortoiseGit\\TortoiseProc\\CloneDir")); m_regUseSSHKey = CRegDWORD(_T("Software\\TortoiseGit\\TortoiseProc\\CloneUseSSHKey"), TRUE); m_nSVNFrom = 0; m_bAutoloadPuttyKeyFile = m_regUseSSHKey && CAppUtils::IsSSHPutty(); m_nDepth = 1; m_bDepth = false; m_bSaving = false; }
CString CHistoryCombo::LoadHistory(LPCTSTR lpszSection, LPCTSTR lpszKeyPrefix) { if (!lpszSection || !lpszKeyPrefix || *lpszSection == '\0') return L""; m_sSection = lpszSection; m_sKeyPrefix = lpszKeyPrefix; int n = 0; CString sText; do { //keys are of form <lpszKeyPrefix><entrynumber> CString sKey; sKey.Format(L"%s\\%s%d", (LPCTSTR)m_sSection, (LPCTSTR)m_sKeyPrefix, n++); sText = CRegString(sKey); if (!sText.IsEmpty()) AddString(sText); } while (!sText.IsEmpty() && n < m_nMaxHistoryItems); SetCurSel(-1); ModifyStyleEx(WS_EX_DLGMODALFRAME | WS_EX_WINDOWEDGE, 0); // need to resize the control for correct display CRect rect; GetWindowRect(rect); GetParent()->ScreenToClient(rect); MoveWindow(rect.left, rect.top, rect.Width(),100); return sText; }
BOOL CMergeWizardRevRange::OnInitDialog() { CMergeWizardBasePage::OnInitDialog(); CMergeWizard * pWizard = (CMergeWizard*)GetParent(); CString sRegKey = L"Software\\TortoiseSVN\\History\\repoURLS\\MergeURLFor" + ((CMergeWizard*)GetParent())->wcPath.GetSVNPathString(); CString sMergeUrlForWC = CRegString(sRegKey); CString sUUID = pWizard->sUUID; m_URLCombo.SetURLHistory(true, false); m_URLCombo.LoadHistory(L"Software\\TortoiseSVN\\History\\repoURLS\\"+sUUID, L"url"); if (!(DWORD)CRegDWORD(L"Software\\TortoiseSVN\\MergeWCURL", FALSE)) m_URLCombo.SetCurSel(0); else if (!sMergeUrlForWC.IsEmpty()) m_URLCombo.SetWindowText(CPathUtils::PathUnescape(sMergeUrlForWC)); else if (!pWizard->url.IsEmpty()) m_URLCombo.SetWindowText(CPathUtils::PathUnescape(pWizard->url)); if (m_URLCombo.GetString().IsEmpty()) m_URLCombo.SetWindowText(CPathUtils::PathUnescape(pWizard->url)); if (!pWizard->URL1.IsEmpty()) m_URLCombo.SetWindowText(CPathUtils::PathUnescape(pWizard->URL1)); if (pWizard->revRangeArray.GetCount()) { m_sRevRange = pWizard->revRangeArray.ToListString(); if (pWizard->pegRev.IsValid()) m_sRevRange = m_sRevRange + L"@" + pWizard->pegRev.ToString(); SetDlgItemText(IDC_REVISION_RANGE, m_sRevRange); } CheckRadioButton(IDC_MERGERADIO_ALL, IDC_MERGERADIO_SPECIFIC, IDC_MERGERADIO_SPECIFIC); CString sLabel; sLabel.LoadString(IDS_MERGEWIZARD_REVRANGESTRING); SetDlgItemText(IDC_REVRANGELABEL, sLabel); SetDlgItemText(IDC_WCEDIT, ((CMergeWizard*)GetParent())->wcPath.GetWinPath()); AdjustControlSize(IDC_REVERSEMERGE); AddAnchor(IDC_MERGEREVRANGEFROMGROUP, TOP_LEFT, TOP_RIGHT); AddAnchor(IDC_URLCOMBO, TOP_LEFT, TOP_RIGHT); AddAnchor(IDC_BROWSE, TOP_RIGHT); AddAnchor(IDC_MERGEREVRANGERANGEGROUP, TOP_LEFT, TOP_RIGHT); AddAnchor(IDC_MERGERADIO_ALL, TOP_LEFT); AddAnchor(IDC_MERGERADIO_SPECIFIC, TOP_LEFT); AddAnchor(IDC_REVISION_RANGE, TOP_LEFT, TOP_RIGHT); AddAnchor(IDC_SELLOG, TOP_RIGHT); AddAnchor(IDC_REVERSEMERGE, TOP_LEFT); AddAnchor(IDC_REVRANGELABEL, TOP_LEFT, TOP_RIGHT); AddAnchor(IDC_MERGEREVRANGEWCGROUP, TOP_LEFT, TOP_RIGHT); AddAnchor(IDC_WCEDIT, TOP_LEFT, TOP_RIGHT); AddAnchor(IDC_SHOWLOGWC, TOP_RIGHT); StartWCCheckThread(((CMergeWizard*)GetParent())->wcPath); return TRUE; }
CSettingsProgsMerge::CSettingsProgsMerge() : ISettingsPropPage(CSettingsProgsMerge::IDD) , m_sMergePath(_T("")) , m_iExtMerge(0) , m_dlgAdvMerge(_T("Merge")) { m_regMergePath = CRegString(_T("Software\\TortoiseGit\\Merge")); }
CSetMainPage::CSetMainPage() : ISettingsPropPage(CSetMainPage::IDD) , m_sTempExtensions(_T("")) , m_bLastCommitTime(FALSE) , m_bUseDotNetHack(FALSE) , m_bUseAero(TRUE) { m_regLanguage = CRegDWORD(_T("Software\\TortoiseSVN\\LanguageID"), 1033); CString temp(SVN_CONFIG_DEFAULT_GLOBAL_IGNORES); m_regExtensions = CRegString(_T("Software\\Tigris.org\\Subversion\\Config\\miscellany\\global-ignores"), temp); m_regLastCommitTime = CRegString(_T("Software\\Tigris.org\\Subversion\\Config\\miscellany\\use-commit-times"), _T("")); if ((GetEnvironmentVariable(_T("SVN_ASP_DOT_NET_HACK"), NULL, 0)==0)&&(GetLastError()==ERROR_ENVVAR_NOT_FOUND)) m_bUseDotNetHack = false; else m_bUseDotNetHack = true; m_regUseAero = CRegDWORD(_T("Software\\TortoiseSVN\\EnableDWMFrame"), TRUE); }
CSetProxyPage::CSetProxyPage() : ISettingsPropPage(CSetProxyPage::IDD) , m_serveraddress(_T("")) , m_serverport(0) , m_username(_T("")) , m_password(_T("")) , m_isEnabled(FALSE) , m_SSHClient(_T("")) { m_regServeraddress = CRegString(_T("Software\\TortoiseGit\\Git\\Servers\\global\\http-proxy-host"), _T("")); m_regServerport = CRegString(_T("Software\\TortoiseGit\\Git\\Servers\\global\\http-proxy-port"), _T("")); m_regUsername = CRegString(_T("Software\\TortoiseGit\\Git\\Servers\\global\\http-proxy-username"), _T("")); m_regPassword = CRegString(_T("Software\\TortoiseGit\\Git\\Servers\\global\\http-proxy-password"), _T("")); m_regSSHClient = CRegString(_T("Software\\TortoiseGit\\SSH")); m_SSHClient = m_regSSHClient; }
CodeCollaboratorInfo::CodeCollaboratorInfo(CString revisions, CString repoUrl) { CollabUser = CRegString(L"Software\\TortoiseSVN\\CodeCollaborator\\CollabUser", L""); CString encrypted = CRegString(L"Software\\TortoiseSVN\\CodeCollaborator\\CollabPassword", L""); if (encrypted.IsEmpty()) CollabPassword = L""; else CollabPassword = CStringUtils::Decrypt((LPCWSTR)encrypted).get(); SvnUser = CRegString(L"Software\\TortoiseSVN\\CodeCollaborator\\SvnUser", L""); encrypted = CRegString(L"Software\\TortoiseSVN\\CodeCollaborator\\SvnPassword", L""); if (encrypted.IsEmpty()) SvnPassword = L""; else SvnPassword = CStringUtils::Decrypt((LPCWSTR)encrypted).get(); RepoUrl = repoUrl; m_Revisions = revisions; }
int CGitIndexList::ReadIndex(CString dgitdir) { this->clear(); m_critRepoSec.Lock(); if (repository.Open(dgitdir)) { m_critRepoSec.Unlock(); return -1; } // add config files CAutoConfig config(true); CString projectConfig = dgitdir + _T("config"); CString globalConfig = g_Git.GetGitGlobalConfig(); CString globalXDGConfig = g_Git.GetGitGlobalXDGConfig(); CString systemConfig(CRegString(REG_SYSTEM_GITCONFIGPATH, _T(""), FALSE)); git_config_add_file_ondisk(config, CGit::GetGitPathStringA(projectConfig), GIT_CONFIG_LEVEL_LOCAL, FALSE); git_config_add_file_ondisk(config, CGit::GetGitPathStringA(globalConfig), GIT_CONFIG_LEVEL_GLOBAL, FALSE); git_config_add_file_ondisk(config, CGit::GetGitPathStringA(globalXDGConfig), GIT_CONFIG_LEVEL_XDG, FALSE); if (!systemConfig.IsEmpty()) git_config_add_file_ondisk(config, CGit::GetGitPathStringA(systemConfig), GIT_CONFIG_LEVEL_SYSTEM, FALSE); git_repository_set_config(repository, config); CAutoIndex index; // load index in order to enumerate files if (git_repository_index(index.GetPointer(), repository)) { repository.Free(); m_critRepoSec.Unlock(); return -1; } size_t ecount = git_index_entrycount(index); resize(ecount); for (size_t i = 0; i < ecount; ++i) { const git_index_entry *e = git_index_get_byindex(index, i); this->at(i).m_FileName.Empty(); this->at(i).m_FileName = CUnicodeUtils::GetUnicode(e->path); this->at(i).m_FileName.MakeLower(); this->at(i).m_ModifyTime = e->mtime.seconds; this->at(i).m_Flags = e->flags | e->flags_extended; this->at(i).m_IndexHash = e->id.id; this->at(i).m_Size = e->file_size; } g_Git.GetFileModifyTime(dgitdir + _T("index"), &this->m_LastModifyTime); std::sort(this->begin(), this->end(), SortIndex); m_critRepoSec.Unlock(); return 0; }
CSetOverlayIcons::CSetOverlayIcons() : ISettingsPropPage(CSetOverlayIcons::IDD) { m_regNormal = CRegString(_T("Software\\TortoiseOverlays\\NormalIcon")); m_regModified = CRegString(_T("Software\\TortoiseOverlays\\ModifiedIcon")); m_regConflicted = CRegString(_T("Software\\TortoiseOverlays\\ConflictIcon")); m_regReadOnly = CRegString(_T("Software\\TortoiseOverlays\\ReadOnlyIcon")); m_regDeleted = CRegString(_T("Software\\TortoiseOverlays\\DeletedIcon")); m_regLocked = CRegString(_T("Software\\TortoiseOverlays\\LockedIcon")); m_regAdded = CRegString(_T("Software\\TortoiseOverlays\\AddedIcon")); m_regIgnored = CRegString(_T("Software\\TortoiseOverlays\\IgnoredIcon")); m_regUnversioned = CRegString(_T("Software\\TortoiseOverlays\\UnversionedIcon")); m_selIndex = CB_ERR; }
CSetMainPage::CSetMainPage() : ISettingsPropPage(CSetMainPage::IDD) , m_sMsysGitPath(_T("")) , m_bCheckNewer(TRUE) { m_regLanguage = CRegDWORD(_T("Software\\TortoiseGit\\LanguageID"), 1033); CString temp=CRegString(REG_MSYSGIT_INSTALL,_T(""),FALSE,HKEY_LOCAL_MACHINE);; if(!temp.IsEmpty()) temp+=_T("bin"); m_regMsysGitPath = CRegString(REG_MSYSGIT_PATH,temp,FALSE); m_regMsysGitExtranPath =CRegString(REG_MSYSGIT_EXTRA_PATH); m_sMsysGitPath = m_regMsysGitPath; m_sMsysGitExtranPath = m_regMsysGitExtranPath; m_regCheckNewer = CRegDWORD(_T("Software\\TortoiseGit\\VersionCheck"), TRUE); }
CSetDialogs::CSetDialogs() : ISettingsPropPage(CSetDialogs::IDD) , m_bShortDateFormat(FALSE) , m_bRelativeTimes(FALSE) , m_bAsteriskLogPrefix(TRUE) , m_dwFontSize(0) , m_bDiffByDoubleClick(FALSE) , m_bUseSystemLocaleForDates(FALSE) , m_bAbbreviateRenamings(FALSE) , m_bSymbolizeRefNames(FALSE) , m_bEnableLogCache(TRUE) , m_bDrawBranchesTagsOnRightSide(FALSE) , m_bEnableGravatar(FALSE) , m_bShowDescribe(FALSE) , m_bShowBranchRevNo(FALSE) , m_DescribeStrategy(GIT_DESCRIBE_DEFAULT) , m_DescribeAbbreviatedSize(GIT_DESCRIBE_DEFAULT_ABBREVIATED_SIZE) , m_bDescribeAlwaysLong(FALSE) , m_bFullCommitMessageOnLogLine(FALSE) , m_bMailmapOnLog(FALSE) { m_regDefaultLogs = CRegDWORD(L"Software\\TortoiseGit\\LogDialog\\NumberOfLogs", 1); m_regDefaultLogsScale = CRegDWORD(L"Software\\TortoiseGit\\LogDialog\\NumberOfLogsScale", CFilterData::SHOW_NO_LIMIT); m_regShortDateFormat = CRegDWORD(L"Software\\TortoiseGit\\LogDateFormat", TRUE); m_regRelativeTimes = CRegDWORD(L"Software\\TortoiseGit\\RelativeTimes", FALSE); m_regAsteriskLogPrefix = CRegDWORD(L"Software\\TortoiseGit\\AsteriskLogPrefix", TRUE); m_regUseSystemLocaleForDates = CRegDWORD(L"Software\\TortoiseGit\\UseSystemLocaleForDates", TRUE); m_regFontName = CRegString(L"Software\\TortoiseGit\\LogFontName", L"Consolas"); m_regFontSize = CRegDWORD(L"Software\\TortoiseGit\\LogFontSize", 9); m_regDiffByDoubleClick = CRegDWORD(L"Software\\TortoiseGit\\DiffByDoubleClickInLog", FALSE); m_regAbbreviateRenamings = CRegDWORD(L"Software\\TortoiseGit\\AbbreviateRenamings", FALSE); m_regSymbolizeRefNames = CRegDWORD(L"Software\\TortoiseGit\\SymbolizeRefNames", FALSE); m_regEnableLogCache = CRegDWORD(L"Software\\TortoiseGit\\EnableLogCache", TRUE); m_regEnableGravatar = CRegDWORD(L"Software\\TortoiseGit\\EnableGravatar", FALSE); m_regGravatarUrl = CRegString(L"Software\\TortoiseGit\\GravatarUrl", L"http://www.gravatar.com/avatar/%HASH%?d=identicon"); m_regDrawBranchesTagsOnRightSide = CRegDWORD(L"Software\\TortoiseGit\\DrawTagsBranchesOnRightSide", FALSE); m_regShowDescribe = CRegDWORD(L"Software\\TortoiseGit\\ShowDescribe", FALSE); m_regShowBranchRevNo = CRegDWORD(L"Software\\TortoiseGit\\ShowBranchRevisionNumber", FALSE); m_regDescribeStrategy = CRegDWORD(L"Software\\TortoiseGit\\DescribeStrategy", GIT_DESCRIBE_DEFAULT); m_regDescribeAbbreviatedSize = CRegDWORD(L"Software\\TortoiseGit\\DescribeAbbreviatedSize", GIT_DESCRIBE_DEFAULT_ABBREVIATED_SIZE); m_regDescribeAlwaysLong = CRegDWORD(L"Software\\TortoiseGit\\DescribeAlwaysLong", FALSE); m_regFullCommitMessageOnLogLine = CRegDWORD(L"Software\\TortoiseGit\\FullCommitMessageOnLogLine", FALSE); m_regMailmapOnLog = CRegDWORD(L"Software\\TortoiseGit\\LogDialog\\UseMailmap", FALSE); }
CSetMainPage::CSetMainPage() : ISettingsPropPage(CSetMainPage::IDD) , m_sMsysGitPath(_T("")) , m_bCheckNewer(TRUE) , m_bLastCommitTime(FALSE) , m_bUseDotNetHack(FALSE) { m_regLanguage = CRegDWORD(_T("Software\\TortoiseGit\\LanguageID"), 1033); CString temp=CRegString(REG_MSYSGIT_INSTALL,_T(""),FALSE,HKEY_LOCAL_MACHINE);; if(!temp.IsEmpty()) temp+=_T("bin"); m_regMsysGitPath = CRegString(REG_MSYSGIT_PATH,temp,FALSE,HKEY_LOCAL_MACHINE); m_regCheckNewer = CRegDWORD(_T("Software\\TortoiseGit\\CheckNewer"), TRUE); m_regLastCommitTime = CRegString(_T("Software\\Tigris.org\\Subversion\\Config\\miscellany\\use-commit-times"), _T("")); if ((GetEnvironmentVariable(_T("SVN_ASP_DOT_NET_HACK"), NULL, 0)==0)&&(GetLastError()==ERROR_ENVVAR_NOT_FOUND)) m_bUseDotNetHack = false; else m_bUseDotNetHack = true; }
CSetMainPage::CSetMainPage() : CPropertyPage(CSetMainPage::IDD) , m_bBackup(FALSE) , m_bFirstDiffOnLoad(FALSE) , m_bFirstConflictOnLoad(FALSE) , m_bUseSpaces(FALSE) , m_bSmartTabChar(FALSE) , m_nTabSize(0) , m_bEnableEditorConfig(FALSE) , m_nContextLines(0) , m_bIgnoreEOL(FALSE) , m_bOnePane(FALSE) , m_bViewLinenumbers(FALSE) , m_bReloadNeeded(FALSE) , m_bCaseInsensitive(FALSE) , m_bUTF8Default(FALSE) , m_bAutoAdd(TRUE) , m_nMaxInline(3000) , m_dwFontSize(0) { m_regBackup = CRegDWORD(L"Software\\TortoiseMerge\\Backup"); m_regFirstDiffOnLoad = CRegDWORD(L"Software\\TortoiseMerge\\FirstDiffOnLoad", TRUE); m_regFirstConflictOnLoad = CRegDWORD(L"Software\\TortoiseMerge\\FirstConflictOnLoad", TRUE); m_regTabMode = CRegDWORD(_T("Software\\TortoiseMerge\\TabMode"), 0); m_regTabSize = CRegDWORD(L"Software\\TortoiseMerge\\TabSize", 4); m_regEnableEditorConfig = CRegDWORD(L"Software\\TortoiseMerge\\EnableEditorConfig", FALSE); m_regIgnoreEOL = CRegDWORD(L"Software\\TortoiseMerge\\IgnoreEOL", TRUE); m_regOnePane = CRegDWORD(L"Software\\TortoiseMerge\\OnePane"); m_regViewLinenumbers = CRegDWORD(L"Software\\TortoiseMerge\\ViewLinenumbers", 1); m_regFontName = CRegString(L"Software\\TortoiseMerge\\FontName", L"Courier New"); m_regFontSize = CRegDWORD(L"Software\\TortoiseMerge\\FontSize", 10); m_regCaseInsensitive = CRegDWORD(L"Software\\TortoiseMerge\\CaseInsensitive", FALSE); m_regUTF8Default = CRegDWORD(L"Software\\TortoiseMerge\\UseUTF8", FALSE); m_regAutoAdd = CRegDWORD(L"Software\\TortoiseMerge\\AutoAdd", TRUE); m_regMaxInline = CRegDWORD(L"Software\\TortoiseMerge\\InlineDiffMaxLineLength", 3000); m_regUseRibbons = CRegDWORD(L"Software\\TortoiseMerge\\UseRibbons", TRUE); m_regContextLines = CRegDWORD(L"Software\\TortoiseMerge\\ContextLines", 0); m_bBackup = m_regBackup; m_bFirstDiffOnLoad = m_regFirstDiffOnLoad; m_bFirstConflictOnLoad = m_regFirstConflictOnLoad; m_bUseSpaces = (m_regTabMode & TABMODE_USESPACES) ? TRUE : FALSE; m_bSmartTabChar = (m_regTabMode & TABMODE_SMARTINDENT) ? TRUE : FALSE; m_nTabSize = m_regTabSize; m_bEnableEditorConfig = m_regEnableEditorConfig; m_nContextLines = m_regContextLines; m_bIgnoreEOL = m_regIgnoreEOL; m_bOnePane = m_regOnePane; m_bViewLinenumbers = m_regViewLinenumbers; m_bCaseInsensitive = m_regCaseInsensitive; m_bUTF8Default = m_regUTF8Default; m_bAutoAdd = m_regAutoAdd; m_nMaxInline = m_regMaxInline; m_bUseRibbons = m_regUseRibbons; }
BOOL CFirstStartWizardAuthentication::OnWizardFinish() { UpdateData(); CString sshclient = CRegString(L"Software\\TortoiseGit\\SSH"); if (sshclient.IsEmpty()) sshclient = CRegString(L"Software\\TortoiseGit\\SSH", L"", FALSE, HKEY_LOCAL_MACHINE); if (m_ctrlSSHClient.GetCurSel() == 0 && !(sshclient.IsEmpty() || IsTool(L"tortoisegitplink", sshclient) || IsTool(L"tortoiseplink", sshclient))) CRegString(L"Software\\TortoiseGit\\SSH") = CPathUtils::GetAppDirectory() + L"TortoiseGitPlink.exe"; else if (m_ctrlSSHClient.GetCurSel() == 1 && !IsTool(L"ssh", sshclient)) CRegString(L"Software\\TortoiseGit\\SSH") = L"ssh.exe"; if (m_ctrlSimpleCredential.IsWindowEnabled() && !m_bNoSave && m_ctrlSimpleCredential.GetCurSel() != -1) { CAutoConfig config(true); int err = git_config_add_file_ondisk(config, CGit::GetGitPathStringA(g_Git.GetGitGlobalXDGConfig()), GIT_CONFIG_LEVEL_XDG, nullptr, FALSE); if (!err && (PathFileExists(g_Git.GetGitGlobalConfig()) || !PathFileExists(g_Git.GetGitGlobalXDGConfig()))) err = git_config_add_file_ondisk(config, CGit::GetGitPathStringA(g_Git.GetGitGlobalConfig()), GIT_CONFIG_LEVEL_GLOBAL, nullptr, FALSE); if (err) { MessageBox(g_Git.GetLibGit2LastErr(), L"TortoiseGit", MB_ICONEXCLAMATION); return FALSE; } if (m_ctrlSimpleCredential.GetCurSel() == 0 && m_availableHelpers.at(0) == CString(MAKEINTRESOURCE(IDS_NONE))) { int ret = git_config_delete_entry(config, "credential.helper"); if (ret != 0 && ret != GIT_ENOTFOUND) { MessageBox(g_Git.GetLibGit2LastErr(), L"TortoiseGit", MB_ICONEXCLAMATION); return FALSE; } } else if (git_config_set_string(config, "credential.helper", CUnicodeUtils::GetUTF8(m_availableHelpers.at(m_ctrlSimpleCredential.GetCurSel())))) { MessageBox(g_Git.GetLibGit2LastErr(), L"TortoiseGit", MB_ICONEXCLAMATION); return FALSE; } } return __super::OnWizardFinish(); }
BOOL CAppUtils::GetVersionedFile(CString sPath, CString sVersion, CString sSavePath, CSysProgressDlg * progDlg, HWND hWnd /*=NULL*/) { CString sSCMPath = CRegString(_T("Software\\TortoiseMerge\\SCMPath"), _T("")); if (sSCMPath.IsEmpty()) { // no path set, so use TortoiseSVN as default sSCMPath = CPathUtils::GetAppDirectory() + _T("TortoiseProc.exe"); sSCMPath += _T(" /command:cat /path:\"%1\" /revision:%2 /savepath:\"%3\" /hwnd:%4"); } CString sTemp; sTemp.Format(_T("%d"), hWnd); sSCMPath.Replace(_T("%1"), sPath); sSCMPath.Replace(_T("%2"), sVersion); sSCMPath.Replace(_T("%3"), sSavePath); sSCMPath.Replace(_T("%4"), sTemp); // start the external SCM program to fetch the specific version of the file STARTUPINFO startup; PROCESS_INFORMATION process; memset(&startup, 0, sizeof(startup)); startup.cb = sizeof(startup); memset(&process, 0, sizeof(process)); if (CreateProcess(NULL, (LPTSTR)(LPCTSTR)sSCMPath, NULL, NULL, FALSE, 0, 0, 0, &startup, &process)==0) { LPVOID lpMsgBuf; FormatMessage(FORMAT_MESSAGE_ALLOCATE_BUFFER | FORMAT_MESSAGE_FROM_SYSTEM | FORMAT_MESSAGE_IGNORE_INSERTS, NULL, GetLastError(), MAKELANGID(LANG_NEUTRAL, SUBLANG_DEFAULT), // Default language (LPTSTR) &lpMsgBuf, 0, NULL ); MessageBox(NULL, (LPCTSTR)lpMsgBuf, _T("TortoiseMerge"), MB_OK | MB_ICONERROR); LocalFree( lpMsgBuf ); } DWORD ret = 0; do { ret = WaitForSingleObject(process.hProcess, 100); } while ((ret == WAIT_TIMEOUT) && (!progDlg->HasUserCancelled())); CloseHandle(process.hThread); CloseHandle(process.hProcess); if (progDlg->HasUserCancelled()) { return FALSE; } if (!PathFileExists(sSavePath)) return FALSE; return TRUE; }
BOOL CPatchViewDlg::OnInitDialog() { CDialog::OnInitDialog(); m_ctrlPatchView.Init(*m_pProjectProperties); m_ctrlPatchView.SetFont((CString)CRegString(_T("Software\\TortoiseGit\\LogFontName"), _T("Courier New")), (DWORD)CRegDWORD(_T("Software\\TortoiseGit\\LogFontSize"), 8)); m_ctrlPatchView.SetUDiffStyle(); return TRUE; // return TRUE unless you set the focus to a control // EXCEPTION: OCX Property Pages should return FALSE }