diff --git a/Application/Application.rc b/Application/Application.rc index 394bb678..e6595a77 100644 --- a/Application/Application.rc +++ b/Application/Application.rc @@ -28,8 +28,8 @@ LANGUAGE LANG_FINNISH, SUBLANG_DEFAULT // VS_VERSION_INFO VERSIONINFO - FILEVERSION 1,3,0,537 - PRODUCTVERSION 1,3,0,537 + FILEVERSION 1,3,0,539 + PRODUCTVERSION 1,3,0,539 FILEFLAGSMASK 0x17L #ifdef _DEBUG FILEFLAGS 0x1L @@ -45,12 +45,12 @@ BEGIN BLOCK "040b04b0" BEGIN VALUE "FileDescription", "Rainmeter - A Customizable Resource Meter" - VALUE "FileVersion", "1, 3, 0, 537" + VALUE "FileVersion", "1, 3, 0, 539" VALUE "InternalName", "Rainmeter" VALUE "LegalCopyright", "Copyright (C) 2010 - Rainy" VALUE "OriginalFilename", "Rainmeter.exe" VALUE "ProductName", "Rainmeter" - VALUE "ProductVersion", "1, 3, 0, 537" + VALUE "ProductVersion", "1, 3, 0, 539" END END BLOCK "VarFileInfo" diff --git a/Library/ConfigParser.cpp b/Library/ConfigParser.cpp index 61a88947..2ef6288f 100644 --- a/Library/ConfigParser.cpp +++ b/Library/ConfigParser.cpp @@ -549,7 +549,7 @@ bool CConfigParser::ReplaceMeasures(std::wstring& result) CMeasure* measure = GetMeasure(var); if (measure) { - std::wstring value = measure->GetStringValue(false, 1, 5, false); + std::wstring value = measure->GetStringValue(false, 1, -1, false); // Measure found, replace it with the value result.replace(result.begin() + pos, result.begin() + end + 1, value); diff --git a/Library/Measure.cpp b/Library/Measure.cpp index 49d6ab4e..c8051662 100644 --- a/Library/Measure.cpp +++ b/Library/Measure.cpp @@ -500,7 +500,7 @@ double CMeasure::GetValueRange() ** ** autoScale If true, scale the value automatically to some sensible range. ** scale The scale to use if autoScale is false. -** decimals Number of decimals used in the value. +** decimals Number of decimals used in the value. If -1, get rid of ".00000" for dynamic variables. ** percentual Return the value as % from the maximum value. */ const WCHAR* CMeasure::GetStringValue(bool autoScale, double scale, int decimals, bool percentual) @@ -524,6 +524,16 @@ const WCHAR* CMeasure::GetStringValue(bool autoScale, double scale, int decimals val += (val >= 0) ? 0.5 : -0.5; swprintf(buffer, L"%lli", (LONGLONG)val); } + else if (decimals == -1) + { + swprintf(buffer, L"%.5f", GetValue() * (1.0 / scale)); + + size_t len = wcslen(buffer); + if (len >= 6 && wcscmp(buffer + len - 6, L".00000") == 0) + { + buffer[len - 6] = L'\0'; + } + } else { swprintf(format, L"%%.%if", decimals); diff --git a/Library/Rainmeter.cpp b/Library/Rainmeter.cpp index 8122dd6a..be5d4bba 100644 --- a/Library/Rainmeter.cpp +++ b/Library/Rainmeter.cpp @@ -2619,7 +2619,7 @@ std::wstring CRainmeter::ParseCommand(const WCHAR* command, CMeterWindow* meterW { if (wcsicmp((*iter)->GetName(), measureName.c_str()) == 0) { - std::wstring value = (*iter)->GetStringValue(false, 1, 5, false); + std::wstring value = (*iter)->GetStringValue(false, 1, -1, false); strCommand.replace(start, (end - start) + 1, value); start += value.length(); break; diff --git a/revision-number.h b/revision-number.h index f66e3fd5..c324b19e 100644 --- a/revision-number.h +++ b/revision-number.h @@ -1,3 +1,3 @@ #pragma once -const int revision_number = 537; +const int revision_number = 539; const bool revision_beta = true; \ No newline at end of file