mirror of
https://github.com/chibicitiberiu/rainmeter-studio.git
synced 2024-02-24 04:33:31 +00:00
ImagePath: Fixed that the image was not reloaded when changing with !SetOption
This commit is contained in:
parent
136689bcfb
commit
f1cb311723
@ -166,7 +166,8 @@ TintedImage::TintedImage(const WCHAR* name, const WCHAR** optionArray, bool disa
|
||||
m_Flip(RotateNoneFlipNone),
|
||||
m_Rotate(),
|
||||
m_UseExifOrientation(false),
|
||||
m_MeterWindow(meterWindow)
|
||||
m_MeterWindow(meterWindow),
|
||||
m_HasPathChanged(false)
|
||||
{
|
||||
}
|
||||
|
||||
@ -318,6 +319,7 @@ void TintedImage::LoadImage(const std::wstring& imageName, bool bLoadAlways)
|
||||
{
|
||||
std::wstring filename = m_Path + imageName;
|
||||
if (m_MeterWindow) m_MeterWindow->MakePathAbsolute(filename);
|
||||
m_HasPathChanged = false;
|
||||
|
||||
// Check extension and if it is missing, add .png
|
||||
size_t pos = filename.rfind(L'\\');
|
||||
@ -626,6 +628,7 @@ void TintedImage::ReadOptions(ConfigParser& parser, const WCHAR* section, const
|
||||
ColorMatrix oldColorMatrix = *m_ColorMatrix;
|
||||
RotateFlipType oldFlip = m_Flip;
|
||||
REAL oldRotate = m_Rotate;
|
||||
std::wstring oldPath = m_Path;
|
||||
|
||||
m_Path = parser.ReadString(section, m_OptionArray[OptionIndexImagePath], imagePath);
|
||||
if (!m_Path.empty())
|
||||
@ -636,6 +639,8 @@ void TintedImage::ReadOptions(ConfigParser& parser, const WCHAR* section, const
|
||||
}
|
||||
}
|
||||
|
||||
m_HasPathChanged = (oldPath != m_Path);
|
||||
|
||||
if (!m_DisableTransform)
|
||||
{
|
||||
m_Crop.X = m_Crop.Y = m_Crop.Width = m_Crop.Height = -1;
|
||||
|
@ -76,8 +76,8 @@ public:
|
||||
|
||||
bool IsLoaded() { return (m_Bitmap != nullptr); }
|
||||
bool IsTinted() { return (m_BitmapTint != nullptr); }
|
||||
bool IsOptionsChanged() { return m_NeedsCrop || m_NeedsTinting || m_NeedsTransform; }
|
||||
void ClearOptionFlags() { m_NeedsCrop = m_NeedsTinting = m_NeedsTransform = false; }
|
||||
bool IsOptionsChanged() { return m_NeedsCrop || m_NeedsTinting || m_NeedsTransform || m_HasPathChanged; }
|
||||
void ClearOptionFlags() { m_NeedsCrop = m_NeedsTinting = m_NeedsTransform = m_HasPathChanged = false; }
|
||||
|
||||
Gdiplus::Bitmap* GetOriginalImage() { return m_Bitmap; }
|
||||
Gdiplus::Bitmap* GetTintedImage() { return m_BitmapTint; }
|
||||
@ -123,7 +123,9 @@ protected:
|
||||
Gdiplus::RotateFlipType m_Flip;
|
||||
Gdiplus::REAL m_Rotate;
|
||||
bool m_UseExifOrientation;
|
||||
|
||||
std::wstring m_Path;
|
||||
bool m_HasPathChanged;
|
||||
|
||||
std::wstring m_CacheKey;
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user