示例#1
0
COLORREF CColors::GetColor (Colors col, bool bDefault)
{
    switch (col)
    {
    case DryRunConflict:
        {
            COLORREF c = GetColor(Conflict);
            static const int scale = 150;
            long red   = MulDiv(GetRValue(c),(255-scale),255);
            long green = MulDiv(GetGValue(c),(255-scale),255);
            long blue  = MulDiv(GetBValue(c),(255-scale),255);

            return RGB(red, green, blue);
        }
        break;
    default:
        {
            CRegDWORD* setting = GetRegistrySetting (col);
            if (setting == NULL)
                return RGB (0,0,0);

            return bDefault ? setting->defaultValue() : (DWORD)*setting;
        }
    }
}
示例#2
0
void CColors::SetColor (GDIPlusColor id, Color color)
{
    CRegDWORD* setting = GetRegistrySetting (id);
    if (setting == NULL)
        return;

    *setting = color.GetValue();

    // remove legacy info

    CRegDWORD* lecagySetting = GetLegacyRegistrySetting (id);
    if ((lecagySetting != NULL) && lecagySetting->exists())
        lecagySetting->removeKey();
}
示例#3
0
Color CColors::GetColor (GDIPlusColor id, bool bDefault)
{
    CRegDWORD* setting = GetRegistrySetting (id);
    if (setting == NULL)
        return Color();

    if (bDefault)
        return setting->defaultValue();

    if (setting->exists())
        return (DWORD)*setting;

    CRegDWORD* lecagySetting = GetLegacyRegistrySetting (id);
    if ((lecagySetting != NULL) && lecagySetting->exists())
    {
        Color result;
        result.SetFromCOLORREF (*lecagySetting);
        return result;
    }

    return setting->defaultValue();
}
示例#4
0
void CSettings::Migrate()
{
    CRegDWORD oldEnableLogCaching (REGKEY15 ("UseLogCache"), TRUE);
    if (oldEnableLogCaching.exists())
    {
        SetEnabled ((DWORD)oldEnableLogCaching != FALSE);
        oldEnableLogCaching.removeValue();
    }

    CRegDWORD oldSupportAmbiguousURL (REGKEY15 ("SupportAmbiguousURL"), FALSE);
    if (oldSupportAmbiguousURL.exists())
    {
//      Since the old default differs from the new one,
//      we will not migrate this setting.
//
//      SetAllowAmbiguousURL ((DWORD)oldSupportAmbiguousURL != FALSE);

        oldSupportAmbiguousURL.removeValue();
    }

    CRegDWORD oldDefaultConnectionState (REGKEY15 ("DefaultConnectionState"), 0);
    if (oldDefaultConnectionState.exists())
    {
        ConnectionState state
            = static_cast<ConnectionState>
                ((DWORD)oldDefaultConnectionState);

        SetDefaultConnectionState (state);
        oldDefaultConnectionState.removeValue();
    }

    CRegDWORD oldMaxHeadAge (REGKEY15 ("HeadCacheAgeLimit"), 0);
    if (oldMaxHeadAge.exists())
    {
        SetMaxHeadAge ((DWORD)oldMaxHeadAge);
        oldMaxHeadAge.removeValue();
    }

    // current registry format

    CRegDWORD (REGKEY ("Version")) = 160;
}
示例#5
0
void CTortoiseProcApp::CheckUpgrade()
{
	CRegString regVersion = CRegString(_T("Software\\TortoiseGit\\CurrentVersion"));
	CString sVersion = regVersion;
	if (sVersion.Compare(_T(STRPRODUCTVER))==0)
		return;
	// we're starting the first time with a new version!

	LONG lVersion = 0;
	int pos = sVersion.Find(',');
	if (pos > 0)
	{
		lVersion = (_ttol(sVersion.Left(pos))<<24);
		lVersion |= (_ttol(sVersion.Mid(pos+1))<<16);
		pos = sVersion.Find(',', pos+1);
		lVersion |= (_ttol(sVersion.Mid(pos+1))<<8);
	}

	CRegDWORD regval = CRegDWORD(_T("Software\\TortoiseGit\\DontConvertBase"), 999);
	if ((DWORD)regval != 999)
	{
		// there's a leftover registry setting we have to convert and then delete it
		CRegDWORD newregval = CRegDWORD(_T("Software\\TortoiseGit\\ConvertBase"));
		newregval = !regval;
		regval.removeValue();
	}
#if 0
	if (lVersion <= 0x01010300)
	{
		CSoundUtils::RegisterTSVNSounds();
		// remove all saved dialog positions
		CRegString(_T("Software\\TortoiseGit\\TortoiseProc\\ResizableState\\")).removeKey();
		CRegDWORD(_T("Software\\TortoiseGit\\RecursiveOverlay")).removeValue();
		// remove the external cache key
		CRegDWORD(_T("Software\\TortoiseGit\\ExternalCache")).removeValue();
	}
#endif
	if (lVersion <= 0x01020200)
	{
		// upgrade to > 1.2.3 means the doc diff scripts changed from vbs to js
		// so remove the diff/merge scripts if they're the defaults
		CRegString diffreg = CRegString(_T("Software\\TortoiseGit\\DiffTools\\.doc"));
		CString sDiff = diffreg;
		CString sCL = _T("wscript.exe \"") + CPathUtils::GetAppParentDirectory()+_T("Diff-Scripts\\diff-doc.vbs\"");
		if (sDiff.Left(sCL.GetLength()).CompareNoCase(sCL)==0)
			diffreg = _T("");
		CRegString mergereg = CRegString(_T("Software\\TortoiseGit\\MergeTools\\.doc"));
		sDiff = mergereg;
		sCL = _T("wscript.exe \"") + CPathUtils::GetAppParentDirectory()+_T("Diff-Scripts\\merge-doc.vbs\"");
		if (sDiff.Left(sCL.GetLength()).CompareNoCase(sCL)==0)
			mergereg = _T("");
	}
	if (lVersion <= 0x01040000)
	{
		CRegStdDWORD(_T("Software\\TortoiseGit\\OwnerdrawnMenus")).removeValue();
	}

	// set the custom diff scripts for every user
	CString scriptsdir = CPathUtils::GetAppParentDirectory();
	scriptsdir += _T("Diff-Scripts");
	CSimpleFileFind files(scriptsdir);
	while (files.FindNextFileNoDirectories())
	{
		CString file = files.GetFilePath();
		CString filename = files.GetFileName();
		CString ext = file.Mid(file.ReverseFind('-')+1);
		ext = _T(".")+ext.Left(ext.ReverseFind('.'));
		CString kind;
		if (file.Right(3).CompareNoCase(_T("vbs"))==0)
		{
			kind = _T(" //E:vbscript");
		}
		if (file.Right(2).CompareNoCase(_T("js"))==0)
		{
			kind = _T(" //E:javascript");
		}

		if (filename.Left(5).CompareNoCase(_T("diff-"))==0)
		{
			CRegString diffreg = CRegString(_T("Software\\TortoiseGit\\DiffTools\\")+ext);
			CString diffregstring = diffreg;
			if ((diffregstring.IsEmpty()) || (diffregstring.Find(filename)>=0))
				diffreg = _T("wscript.exe \"") + file + _T("\" %base %mine") + kind;
		}
		if (filename.Left(6).CompareNoCase(_T("merge-"))==0)
		{
			CRegString diffreg = CRegString(_T("Software\\TortoiseGit\\MergeTools\\")+ext);
			CString diffregstring = diffreg;
			if ((diffregstring.IsEmpty()) || (diffregstring.Find(filename)>=0))
				diffreg = _T("wscript.exe \"") + file + _T("\" %merged %theirs %mine %base") + kind;
		}
	}

	// Initialize "Software\\TortoiseGit\\DiffProps" once with the same value as "Software\\TortoiseGit\\Diff"
	CRegString regDiffPropsPath = CRegString(_T("Software\\TortoiseGit\\DiffProps"),_T("non-existant"));
	CString strDiffPropsPath = regDiffPropsPath;
	if ( strDiffPropsPath==_T("non-existant") )
	{
		CString strDiffPath = CRegString(_T("Software\\TortoiseGit\\Diff"));
		regDiffPropsPath = strDiffPath;
	}

	// set the current version so we don't come here again until the next update!
	regVersion = _T(STRPRODUCTVER);
}