Changed MeasureName(N) to work dynamically

This commit is contained in:
Birunthan Mohanathas 2012-07-18 17:55:32 +03:00
parent a0a0c61e79
commit ea124f5ccd
3 changed files with 24 additions and 20 deletions

View File

@ -125,18 +125,7 @@ void CMeasure::ReadOptions(CConfigParser& parser, const WCHAR* section)
m_Invert = 0!=parser.ReadInt(section, L"InvertMeasure", 0); m_Invert = 0!=parser.ReadInt(section, L"InvertMeasure", 0);
if (!m_Initialized) m_Disabled = 0!=parser.ReadInt(section, L"Disabled", 0);
{
m_Disabled = 0!=parser.ReadInt(section, L"Disabled", 0);
}
else
{
const std::wstring& result = parser.ReadString(section, L"Disabled", L"0");
if (parser.GetLastReplaced())
{
m_Disabled = 0!=parser.ParseInt(result.c_str(), 0);
}
}
int updateDivider = parser.ReadInt(section, L"UpdateDivider", 1); int updateDivider = parser.ReadInt(section, L"UpdateDivider", 1);
if (updateDivider != m_UpdateDivider) if (updateDivider != m_UpdateDivider)
@ -183,6 +172,22 @@ void CMeasure::ReadOptions(CConfigParser& parser, const WCHAR* section)
InitializeGroup(group); InitializeGroup(group);
} }
void CMeasure::Disable()
{
m_Disabled = true;
// Change the option as well to avoid reset in ReadOptions().
m_MeterWindow->GetParser().SetValue(m_Name, L"Disabled", L"1");
}
void CMeasure::Enable()
{
m_Disabled = false;
// Change the option as well to avoid reset in ReadOptions().
m_MeterWindow->GetParser().SetValue(m_Name, L"Disabled", L"0");
}
/* /*
** Substitues text using a straight find and replace method ** Substitues text using a straight find and replace method
*/ */

View File

@ -57,8 +57,8 @@ public:
const WCHAR* GetName() { return m_Name.c_str(); } const WCHAR* GetName() { return m_Name.c_str(); }
const std::wstring& GetOriginalName() { return m_Name; } const std::wstring& GetOriginalName() { return m_Name; }
void Disable() { m_Disabled = true; } void Disable();
void Enable() { m_Disabled = false; } void Enable();
bool IsDisabled() { return m_Disabled; } bool IsDisabled() { return m_Disabled; }
bool HasDynamicVariables() { return m_DynamicVariables; } bool HasDynamicVariables() { return m_DynamicVariables; }

View File

@ -233,10 +233,7 @@ void CMeter::ReadOptions(CConfigParser& parser, const WCHAR* section)
parser.SetStyleTemplate(style); parser.SetStyleTemplate(style);
} }
if (!m_Initialized) BindMeasures(parser, section);
{
BindMeasures(parser, section);
}
int oldX = m_X; int oldX = m_X;
std::wstring& x = (std::wstring&)parser.ReadString(section, L"X", L"0"); std::wstring& x = (std::wstring&)parser.ReadString(section, L"X", L"0");
@ -437,14 +434,16 @@ bool CMeter::Update()
} }
/* /*
** Reads and binds the primary MeasureName. ** Reads and binds the primary MeasureName. This must always be called in overridden
** BindMeasures() implementations.
** **
*/ */
bool CMeter::BindPrimaryMeasure(CConfigParser& parser, const WCHAR* section, bool optional) bool CMeter::BindPrimaryMeasure(CConfigParser& parser, const WCHAR* section, bool optional)
{ {
m_Measures.clear();
const std::wstring& measureName = parser.ReadString(section, L"MeasureName", L""); const std::wstring& measureName = parser.ReadString(section, L"MeasureName", L"");
// The meter is not bound to anything
CMeasure* measure = parser.GetMeasure(measureName); CMeasure* measure = parser.GetMeasure(measureName);
if (measure) if (measure)
{ {