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_Flip(RotateNoneFlipNone),
|
||||||
m_Rotate(),
|
m_Rotate(),
|
||||||
m_UseExifOrientation(false),
|
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;
|
std::wstring filename = m_Path + imageName;
|
||||||
if (m_MeterWindow) m_MeterWindow->MakePathAbsolute(filename);
|
if (m_MeterWindow) m_MeterWindow->MakePathAbsolute(filename);
|
||||||
|
m_HasPathChanged = false;
|
||||||
|
|
||||||
// Check extension and if it is missing, add .png
|
// Check extension and if it is missing, add .png
|
||||||
size_t pos = filename.rfind(L'\\');
|
size_t pos = filename.rfind(L'\\');
|
||||||
@ -626,6 +628,7 @@ void TintedImage::ReadOptions(ConfigParser& parser, const WCHAR* section, const
|
|||||||
ColorMatrix oldColorMatrix = *m_ColorMatrix;
|
ColorMatrix oldColorMatrix = *m_ColorMatrix;
|
||||||
RotateFlipType oldFlip = m_Flip;
|
RotateFlipType oldFlip = m_Flip;
|
||||||
REAL oldRotate = m_Rotate;
|
REAL oldRotate = m_Rotate;
|
||||||
|
std::wstring oldPath = m_Path;
|
||||||
|
|
||||||
m_Path = parser.ReadString(section, m_OptionArray[OptionIndexImagePath], imagePath);
|
m_Path = parser.ReadString(section, m_OptionArray[OptionIndexImagePath], imagePath);
|
||||||
if (!m_Path.empty())
|
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)
|
if (!m_DisableTransform)
|
||||||
{
|
{
|
||||||
m_Crop.X = m_Crop.Y = m_Crop.Width = m_Crop.Height = -1;
|
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 IsLoaded() { return (m_Bitmap != nullptr); }
|
||||||
bool IsTinted() { return (m_BitmapTint != nullptr); }
|
bool IsTinted() { return (m_BitmapTint != nullptr); }
|
||||||
bool IsOptionsChanged() { return m_NeedsCrop || m_NeedsTinting || m_NeedsTransform; }
|
bool IsOptionsChanged() { return m_NeedsCrop || m_NeedsTinting || m_NeedsTransform || m_HasPathChanged; }
|
||||||
void ClearOptionFlags() { m_NeedsCrop = m_NeedsTinting = m_NeedsTransform = false; }
|
void ClearOptionFlags() { m_NeedsCrop = m_NeedsTinting = m_NeedsTransform = m_HasPathChanged = false; }
|
||||||
|
|
||||||
Gdiplus::Bitmap* GetOriginalImage() { return m_Bitmap; }
|
Gdiplus::Bitmap* GetOriginalImage() { return m_Bitmap; }
|
||||||
Gdiplus::Bitmap* GetTintedImage() { return m_BitmapTint; }
|
Gdiplus::Bitmap* GetTintedImage() { return m_BitmapTint; }
|
||||||
@ -123,7 +123,9 @@ protected:
|
|||||||
Gdiplus::RotateFlipType m_Flip;
|
Gdiplus::RotateFlipType m_Flip;
|
||||||
Gdiplus::REAL m_Rotate;
|
Gdiplus::REAL m_Rotate;
|
||||||
bool m_UseExifOrientation;
|
bool m_UseExifOrientation;
|
||||||
|
|
||||||
std::wstring m_Path;
|
std::wstring m_Path;
|
||||||
|
bool m_HasPathChanged;
|
||||||
|
|
||||||
std::wstring m_CacheKey;
|
std::wstring m_CacheKey;
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user