BOOL CChangedDlg::OnInitDialog() { CResizableStandAloneDialog::OnInitDialog(); m_tooltips.Create(this); m_regAddBeforeCommit = CRegDWORD(_T("Software\\TortoiseGit\\AddBeforeCommit"), TRUE); m_bShowUnversioned = m_regAddBeforeCommit; CString regPath(g_Git.m_CurrentDir); regPath.Replace(_T(":"), _T("_")); m_regShowWholeProject = CRegDWORD(_T("Software\\TortoiseGit\\TortoiseProc\\ShowWholeProject\\") + regPath, FALSE); m_bWholeProject = m_regShowWholeProject; SetDlgTitle(); UpdateData(FALSE); m_FileListCtrl.Init(GITSLC_COLEXT | GITSLC_COLSTATUS | GITSLC_COLADD| GITSLC_COLDEL | GITSLC_COLMODIFICATIONDATE, _T("ChangedDlg"), (GITSLC_POPALL ^ (GITSLC_POPSAVEAS|GITSLC_POPRESTORE)), false); m_FileListCtrl.SetCancelBool(&m_bCanceled); m_FileListCtrl.SetBackgroundImage(IDI_CFM_BKG); m_FileListCtrl.SetEmptyString(IDS_REPOSTATUS_EMPTYFILELIST); AdjustControlSize(IDC_SHOWUNVERSIONED); AdjustControlSize(IDC_SHOWUNMODIFIED); AdjustControlSize(IDC_SHOWLOCALCHANGESIGNORED); AdjustControlSize(IDC_SHOWIGNORED); AdjustControlSize(IDC_WHOLE_PROJECT); AddAnchor(IDC_CHANGEDLIST, TOP_LEFT, BOTTOM_RIGHT); AddAnchor(IDC_SUMMARYTEXT, BOTTOM_LEFT, BOTTOM_RIGHT); AddAnchor(IDC_SHOWUNVERSIONED, BOTTOM_LEFT); AddAnchor(IDC_SHOWUNMODIFIED, BOTTOM_LEFT); AddAnchor(IDC_SHOWLOCALCHANGESIGNORED, BOTTOM_LEFT); AddAnchor(IDC_SHOWIGNORED, BOTTOM_LEFT); AddAnchor(IDC_WHOLE_PROJECT, BOTTOM_LEFT); AddAnchor(IDC_INFOLABEL, BOTTOM_RIGHT); AddAnchor(IDC_BUTTON_STASH, BOTTOM_RIGHT); AddAnchor(IDC_BUTTON_UNIFIEDDIFF, BOTTOM_RIGHT); AddAnchor(IDC_COMMIT, BOTTOM_RIGHT); AddAnchor(IDC_REFRESH, BOTTOM_RIGHT); AddAnchor(IDOK, BOTTOM_RIGHT); // SetPromptParentWindow(m_hWnd); if (hWndExplorer) CenterWindow(CWnd::FromHandle(hWndExplorer)); EnableSaveRestore(_T("ChangedDlg")); m_bRemote = !!(DWORD)CRegDWORD(_T("Software\\TortoiseGit\\CheckRepo"), FALSE); // first start a thread to obtain the status without // blocking the dialog if (AfxBeginThread(ChangedStatusThreadEntry, this)==NULL) { CMessageBox::Show(NULL, IDS_ERR_THREADSTARTFAILED, IDS_APPNAME, MB_OK | MB_ICONERROR); } return TRUE; }
Options::Options (int argc, char** argv) :iVersion (false), iHelpFlag (false), iPkgUIDSpecified (false), iRegistryEntrySpecified (false) { int argCount = argc; const char* buffer = getenv("DUMPSWIREGISTRY"); if(buffer) { string regPath(buffer); iRegistryFilePath = regPath; } ++argv; //check whether the first argument is a registry path if((**argv != '-') && (**argv != '/')) { iRegistryFilePath = *argv; ++argv; --argc; } if(*argv != NULL) { if ((**argv != '-') && (**argv != '/')) { throw EInvalidOption; } switch ((*argv)[1]) { case 'h': case 'H': case '?': { iHelpFlag = true; DisplayUsage(); break; } case 'v': case 'V': { iVersion = true; DisplayVersion(); break; } case 'p': case 'P': { iPkgUIDSpecified = true; if(iRegistryFilePath.length() == 0) { throw ESetEnvironmentVariable; } if(argc !=3) { throw EInvalidOption; } iPkgUID = *++argv; break; } case 'r': case 'R': { iRegistryEntrySpecified = true; if(iRegistryFilePath.length() == 0) { throw ESetEnvironmentVariable; } if(argc != 5) { throw EInvalidOption; } iPkgUID = *++argv; iPkgName = *++argv; iVendorName = *++argv; break; } default: { throw EInvalidOption; } } } else { throw EInvalidOption; } CheckCmdLineExceptions(); }