mirror of
				https://github.com/chibicitiberiu/rainmeter-studio.git
				synced 2024-02-24 04:33:31 +00:00 
			
		
		
		
	Fixed issue that Counter in Measure=Calc is case-sensitive. Added MeasureName2 as an alternative to SecondaryMeasureName in Meter=Histogram.
This commit is contained in:
		@@ -76,7 +76,7 @@ bool CMeasureCalc::Update()
 | 
				
			|||||||
	m_Parser->Parameters = c_VarMap;
 | 
						m_Parser->Parameters = c_VarMap;
 | 
				
			||||||
	if(m_UpdateRandom > 0)
 | 
						if(m_UpdateRandom > 0)
 | 
				
			||||||
	{
 | 
						{
 | 
				
			||||||
		RandomFormulaReplace();
 | 
							FormulaReplace();
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	char* errMsg = MathParser_Parse(m_Parser, ConvertToAscii(m_Formula.c_str()).c_str(), &m_Value);
 | 
						char* errMsg = MathParser_Parse(m_Parser, ConvertToAscii(m_Formula.c_str()).c_str(), &m_Value);
 | 
				
			||||||
@@ -134,23 +134,24 @@ void CMeasureCalc::ReadConfig(CConfigParser& parser, const WCHAR* section)
 | 
				
			|||||||
	m_HighBound = parser.ReadInt(section, L"HighBound", 100);
 | 
						m_HighBound = parser.ReadInt(section, L"HighBound", 100);
 | 
				
			||||||
	m_UpdateRandom = parser.ReadInt(section, L"UpdateRandom", 0);
 | 
						m_UpdateRandom = parser.ReadInt(section, L"UpdateRandom", 0);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	RandomFormulaReplace();
 | 
						FormulaReplace();
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
/*
 | 
					/*
 | 
				
			||||||
** RandomFormulaReplace
 | 
					** FormulaReplace
 | 
				
			||||||
**
 | 
					**
 | 
				
			||||||
** This replaces the word Random in m_Formula with a random number
 | 
					** This replaces the word Random in m_Formula with a random number
 | 
				
			||||||
 | 
					** and all cases of counter with Counter
 | 
				
			||||||
**
 | 
					**
 | 
				
			||||||
*/
 | 
					*/
 | 
				
			||||||
void CMeasureCalc::RandomFormulaReplace()
 | 
					void CMeasureCalc::FormulaReplace()
 | 
				
			||||||
{
 | 
					{
 | 
				
			||||||
	//To implement random numbers the word "Random" in the string
 | 
						//To implement random numbers the word "Random" in the string
 | 
				
			||||||
	//formula is being replaced by the random number value
 | 
						//formula is being replaced by the random number value
 | 
				
			||||||
	m_Formula = m_FormulaHolder;
 | 
						m_Formula = m_FormulaHolder;
 | 
				
			||||||
	std::wstring::size_type loc = 0;
 | 
						std::wstring::size_type loc = 0;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	while ((loc = m_Formula.find_first_of(L"Rr", loc)) != std::wstring::npos)
 | 
						while ((loc = m_Formula.find_first_of(L"RrCc", loc)) != std::wstring::npos)
 | 
				
			||||||
	{
 | 
						{
 | 
				
			||||||
		if (wcsnicmp(L"Random", m_Formula.c_str() + loc, 6) == 0)
 | 
							if (wcsnicmp(L"Random", m_Formula.c_str() + loc, 6) == 0)
 | 
				
			||||||
		{
 | 
							{
 | 
				
			||||||
@@ -164,6 +165,11 @@ void CMeasureCalc::RandomFormulaReplace()
 | 
				
			|||||||
			m_Formula.replace(loc, 6, buffer);
 | 
								m_Formula.replace(loc, 6, buffer);
 | 
				
			||||||
			loc += wcslen(buffer);
 | 
								loc += wcslen(buffer);
 | 
				
			||||||
		}
 | 
							}
 | 
				
			||||||
 | 
							else if (wcsnicmp(L"Counter", m_Formula.c_str() + loc, 7) == 0)
 | 
				
			||||||
 | 
							{
 | 
				
			||||||
 | 
								m_Formula.replace(loc, 7, L"Counter");
 | 
				
			||||||
 | 
								loc += 7;
 | 
				
			||||||
 | 
							}
 | 
				
			||||||
		else
 | 
							else
 | 
				
			||||||
		{
 | 
							{
 | 
				
			||||||
			++loc;
 | 
								++loc;
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -34,7 +34,7 @@ public:
 | 
				
			|||||||
	static void UpdateVariableMap(CMeterWindow& meterWindow);
 | 
						static void UpdateVariableMap(CMeterWindow& meterWindow);
 | 
				
			||||||
	
 | 
						
 | 
				
			||||||
private:
 | 
					private:
 | 
				
			||||||
	void RandomFormulaReplace();
 | 
						void FormulaReplace();
 | 
				
			||||||
	std::wstring m_Formula;
 | 
						std::wstring m_Formula;
 | 
				
			||||||
	std::wstring m_FormulaHolder;
 | 
						std::wstring m_FormulaHolder;
 | 
				
			||||||
	hqMathParser* m_Parser;
 | 
						hqMathParser* m_Parser;
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -258,7 +258,11 @@ void CMeterHistogram::ReadConfig(const WCHAR* section)
 | 
				
			|||||||
	m_SecondaryColor = parser.ReadColor(section, L"SecondaryColor", Color::Red);
 | 
						m_SecondaryColor = parser.ReadColor(section, L"SecondaryColor", Color::Red);
 | 
				
			||||||
	m_BothColor = parser.ReadColor(section, L"BothColor", Color::Yellow);
 | 
						m_BothColor = parser.ReadColor(section, L"BothColor", Color::Yellow);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	m_SecondaryMeasureName = parser.ReadString(section, L"SecondaryMeasureName", L"");
 | 
						m_SecondaryMeasureName = parser.ReadString(section, L"MeasureName2", L"");
 | 
				
			||||||
 | 
						if (m_SecondaryMeasureName == L"")
 | 
				
			||||||
 | 
						{
 | 
				
			||||||
 | 
							m_SecondaryMeasureName = parser.ReadString(section, L"SecondaryMeasureName", L"");
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	m_PrimaryImageName = parser.ReadString(section, L"PrimaryImage", L"");
 | 
						m_PrimaryImageName = parser.ReadString(section, L"PrimaryImage", L"");
 | 
				
			||||||
	m_PrimaryImageName = m_MeterWindow->MakePathAbsolute(m_PrimaryImageName);
 | 
						m_PrimaryImageName = m_MeterWindow->MakePathAbsolute(m_PrimaryImageName);
 | 
				
			||||||
 
 | 
				
			|||||||
		Reference in New Issue
	
	Block a user