//#include "vld.h"\r
#include "TortoiseProc.h"\r
#include "SysImageList.h"\r
-//#include "CrashReport.h"\r
+#include "CrashReport.h"\r
#include "CmdLineParser.h"\r
#include "Hooks.h"\r
#include "AppUtils.h"\r
//#include <openssl/err.h>\r
\r
#include "Commands\Command.h"\r
-\r
+#include "CommonResource.h"\r
#include "..\version.h"\r
+#include "..\Settings\Settings.h"\r
+#include "gitindex.h"\r
+\r
#define STRUCT_IOVEC_DEFINED\r
//#include "sasl.h"\r
\r
ON_COMMAND(ID_HELP, CWinAppEx::OnHelp)\r
END_MESSAGE_MAP()\r
\r
-CString g_version;\r
-CString CGit::m_MsysGitPath;\r
+//CString g_version;\r
+//CString CGit::m_MsysGitPath;\r
//////////////////////////////////////////////////////////////////////////\r
\r
CTortoiseProcApp::CTortoiseProcApp()\r
{\r
EnableHtmlHelp();\r
- int argc = 0;\r
- g_version=_T("abc");\r
- const char* const * argv = NULL;\r
+// int argc = 0;\r
+// g_version=_T("abc");\r
+// const char* const * argv = NULL;\r
// apr_app_initialize(&argc, &argv, NULL);\r
// svn_dso_initialize2();\r
SYS_IMAGE_LIST();\r
m_bLoadUserToolbars = FALSE;\r
m_bSaveState = FALSE;\r
retSuccess = false;\r
- CGit git;\r
- git.GetUserName();\r
+ //CGit git;\r
+ //git.GetUserName();\r
+\r
+ \r
}\r
\r
CTortoiseProcApp::~CTortoiseProcApp()\r
\r
BOOL CTortoiseProcApp::CheckMsysGitDir()\r
{\r
- CRegString msysdir=CRegString(_T("Software\\TortoiseGit\\MSysGit"),_T(""),FALSE,HKEY_LOCAL_MACHINE);\r
- CString str=msysdir;\r
- if(str.IsEmpty())\r
- {\r
- CRegString msysinstalldir=CRegString(_T("SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Uninstall\\Git_is1\\InstallLocation"),_T(""),FALSE,HKEY_LOCAL_MACHINE);\r
- str=msysinstalldir;\r
- str+="\\bin";\r
- msysdir=str;\r
- msysdir.write();\r
-\r
- }\r
- CGit::m_MsysGitPath=str;\r
-\r
- TCHAR *oldpath,*home;\r
- size_t size;\r
-\r
- _tdupenv_s(&home,&size,_T("HOME")); \r
- \r
- if(home == NULL)\r
- { \r
- _tdupenv_s(&home,&size,_T("USERPROFILE")); \r
- _tputenv_s(_T("HOME"),home);\r
- free(home);\r
- }\r
- //set path\r
- _tdupenv_s(&oldpath,&size,_T("PATH")); \r
-\r
- CString path;\r
- path.Format(_T("%s;"),str);\r
- path+=oldpath;\r
-\r
- _tputenv_s(_T("PATH"),path);\r
-\r
- free(oldpath);\r
-\r
- CString cmd,out;\r
- cmd=_T("git.exe --version");\r
- if(g_Git.Run(cmd,&out))\r
- {\r
- return false;\r
- }\r
- else\r
- return true;\r
- \r
+ CGitIndexFileMap map;\r
+ //int status;\r
+ //CTGitPath path;\r
+ //path.SetFromGit(_T("src/gpl.txt"));\r
+ //map.GetFileStatus(_T("D:\\TortoiseGit"),&path, &status);\r
+ return CGit::CheckMsysGitDir(); \r
}\r
-//CCrashReport crasher("crashreports@tortoisesvn.tigris.org", "Crash Report for TortoiseSVN " APP_X64_STRING " : " STRPRODUCTVER, TRUE);// crash\r
+CCrashReport crasher("tortoisegit-bug@googlegroups.com", "Crash Report for TortoiseGit " APP_X64_STRING " : " STRPRODUCTVER, TRUE);// crash\r
\r
// CTortoiseProcApp initialization\r
\r
CMFCVisualManager::SetDefaultManager(RUNTIME_CLASS(CMFCVisualManagerWindows));\r
CMFCButton::EnableWindowsTheming();\r
\r
+ Gdiplus::GdiplusStartupInput gdiplusStartupInput;\r
+ Gdiplus::GdiplusStartup(&m_gdiplusToken,&gdiplusStartupInput,NULL);\r
+\r
if(!CheckMsysGitDir())\r
{\r
if(CMessageBox::Show(NULL,_T("MSysGit(http://code.google.com/p/msysgit) have not installed Correctly\n\\r
or MSysGit Path setting error\n\\r
Click Yes to open setting dialog to setup MSysGit Path"),\r
- _T("TortoiseGit"),MB_YESNO|MB_ICONERROR)==IDYES);\r
+ _T("TortoiseGit"),MB_YESNO|MB_ICONERROR)==IDYES)\r
{\r
- //todo open setting\r
+ // open settings dialog\r
+ CSettings dlg(IDS_PROC_SETTINGS_TITLE);\r
+ dlg.SetTreeViewMode(TRUE, TRUE, TRUE);\r
+ dlg.SetTreeWidth(220);\r
+ \r
+ dlg.DoModal();\r
+ dlg.HandleRestart();\r
+ return TRUE;\r
}\r
return FALSE; \r
}\r
sHelppath = sHelppath.MakeLower();\r
// MFC uses a help file with the same name as the application by default,\r
// which means we have to change that default to our language specific help files\r
- sHelppath.Replace(_T("tortoiseproc.chm"), _T("TortoiseSVN_en.chm"));\r
+ sHelppath.Replace(_T("tortoiseproc.chm"), _T("TortoiseGit_en.chm"));\r
free((void*)m_pszHelpFilePath);\r
m_pszHelpFilePath=_tcsdup(sHelppath);\r
sHelppath = CPathUtils::GetAppParentDirectory() + _T("Languages\\TortoiseGit_en.chm");\r
}\r
\r
// check for newer versions\r
- if (CRegDWORD(_T("Software\\TortoiseSVN\\CheckNewer"), TRUE) != FALSE)\r
+ if (CRegDWORD(_T("Software\\TortoiseGit\\CheckNewer"), TRUE) != FALSE)\r
{\r
time_t now;\r
struct tm ptm;\r
// that's not needed.\r
week = ptm.tm_yday / 7;\r
\r
- CRegDWORD oldweek = CRegDWORD(_T("Software\\TortoiseSVN\\CheckNewerWeek"), (DWORD)-1);\r
+ CRegDWORD oldweek = CRegDWORD(_T("Software\\TortoiseGit\\CheckNewerWeek"), (DWORD)-1);\r
if (((DWORD)oldweek) == -1)\r
oldweek = week; // first start of TortoiseProc, no update check needed\r
else\r
break;\r
}\r
\r
- if(g_Git.m_CurrentDir)\r
+ if(!g_Git.m_CurrentDir.IsEmpty())\r
SetCurrentDirectory(g_Git.m_CurrentDir);\r
\r
cmd->SetParser(parser);\r
cmd->SetPaths(pathList, cmdLinePath);\r
+ \r
+ CGit::m_LogEncode = CAppUtils::GetLogOutputEncode();\r
\r
retSuccess = cmd->Execute();\r
delete cmd;\r
\r
void CTortoiseProcApp::CheckUpgrade()\r
{\r
- CRegString regVersion = CRegString(_T("Software\\TortoiseSVN\\CurrentVersion"));\r
+ CRegString regVersion = CRegString(_T("Software\\TortoiseGit\\CurrentVersion"));\r
CString sVersion = regVersion;\r
if (sVersion.Compare(_T(STRPRODUCTVER))==0)\r
return;\r
lVersion |= (_ttol(sVersion.Mid(pos+1))<<8);\r
}\r
\r
- CRegDWORD regval = CRegDWORD(_T("Software\\TortoiseSVN\\DontConvertBase"), 999);\r
+ CRegDWORD regval = CRegDWORD(_T("Software\\TortoiseGit\\DontConvertBase"), 999);\r
if ((DWORD)regval != 999)\r
{\r
// there's a leftover registry setting we have to convert and then delete it\r
- CRegDWORD newregval = CRegDWORD(_T("Software\\TortoiseSVN\\ConvertBase"));\r
+ CRegDWORD newregval = CRegDWORD(_T("Software\\TortoiseGit\\ConvertBase"));\r
newregval = !regval;\r
regval.removeValue();\r
}\r
{\r
CSoundUtils::RegisterTSVNSounds();\r
// remove all saved dialog positions\r
- CRegString(_T("Software\\TortoiseSVN\\TortoiseProc\\ResizableState\\")).removeKey();\r
- CRegDWORD(_T("Software\\TortoiseSVN\\RecursiveOverlay")).removeValue();\r
+ CRegString(_T("Software\\TortoiseGit\\TortoiseProc\\ResizableState\\")).removeKey();\r
+ CRegDWORD(_T("Software\\TortoiseGit\\RecursiveOverlay")).removeValue();\r
// remove the external cache key\r
- CRegDWORD(_T("Software\\TortoiseSVN\\ExternalCache")).removeValue();\r
+ CRegDWORD(_T("Software\\TortoiseGit\\ExternalCache")).removeValue();\r
}\r
#endif \r
if (lVersion <= 0x01020200)\r
{\r
// upgrade to > 1.2.3 means the doc diff scripts changed from vbs to js\r
// so remove the diff/merge scripts if they're the defaults\r
- CRegString diffreg = CRegString(_T("Software\\TortoiseSVN\\DiffTools\\.doc"));\r
+ CRegString diffreg = CRegString(_T("Software\\TortoiseGit\\DiffTools\\.doc"));\r
CString sDiff = diffreg;\r
CString sCL = _T("wscript.exe \"") + CPathUtils::GetAppParentDirectory()+_T("Diff-Scripts\\diff-doc.vbs\"");\r
if (sDiff.Left(sCL.GetLength()).CompareNoCase(sCL)==0)\r
diffreg = _T("");\r
- CRegString mergereg = CRegString(_T("Software\\TortoiseSVN\\MergeTools\\.doc"));\r
+ CRegString mergereg = CRegString(_T("Software\\TortoiseGit\\MergeTools\\.doc"));\r
sDiff = mergereg;\r
sCL = _T("wscript.exe \"") + CPathUtils::GetAppParentDirectory()+_T("Diff-Scripts\\merge-doc.vbs\"");\r
if (sDiff.Left(sCL.GetLength()).CompareNoCase(sCL)==0)\r
}\r
if (lVersion <= 0x01040000)\r
{\r
- CRegStdWORD(_T("Software\\TortoiseSVN\\OwnerdrawnMenus")).removeValue();\r
+ CRegStdWORD(_T("Software\\TortoiseGit\\OwnerdrawnMenus")).removeValue();\r
}\r
\r
// set the custom diff scripts for every user\r
\r
if (filename.Left(5).CompareNoCase(_T("diff-"))==0)\r
{\r
- CRegString diffreg = CRegString(_T("Software\\TortoiseSVN\\DiffTools\\")+ext);\r
+ CRegString diffreg = CRegString(_T("Software\\TortoiseGit\\DiffTools\\")+ext);\r
CString diffregstring = diffreg;\r
if ((diffregstring.IsEmpty()) || (diffregstring.Find(filename)>=0))\r
diffreg = _T("wscript.exe \"") + file + _T("\" %base %mine") + kind;\r
}\r
if (filename.Left(6).CompareNoCase(_T("merge-"))==0)\r
{\r
- CRegString diffreg = CRegString(_T("Software\\TortoiseSVN\\MergeTools\\")+ext);\r
+ CRegString diffreg = CRegString(_T("Software\\TortoiseGit\\MergeTools\\")+ext);\r
CString diffregstring = diffreg;\r
if ((diffregstring.IsEmpty()) || (diffregstring.Find(filename)>=0))\r
diffreg = _T("wscript.exe \"") + file + _T("\" %merged %theirs %mine %base") + kind;\r
}\r
}\r
\r
- // Initialize "Software\\TortoiseSVN\\DiffProps" once with the same value as "Software\\TortoiseSVN\\Diff"\r
- CRegString regDiffPropsPath = CRegString(_T("Software\\TortoiseSVN\\DiffProps"),_T("non-existant"));\r
+ // Initialize "Software\\TortoiseGit\\DiffProps" once with the same value as "Software\\TortoiseGit\\Diff"\r
+ CRegString regDiffPropsPath = CRegString(_T("Software\\TortoiseGit\\DiffProps"),_T("non-existant"));\r
CString strDiffPropsPath = regDiffPropsPath;\r
if ( strDiffPropsPath==_T("non-existant") )\r
{\r
- CString strDiffPath = CRegString(_T("Software\\TortoiseSVN\\Diff"));\r
+ CString strDiffPath = CRegString(_T("Software\\TortoiseGit\\Diff"));\r
regDiffPropsPath = strDiffPath;\r
}\r
\r
\r
int CTortoiseProcApp::ExitInstance()\r
{\r
+ Gdiplus::GdiplusShutdown(m_gdiplusToken);\r
+\r
CWinAppEx::ExitInstance();\r
if (retSuccess)\r
return 0;\r