summaryrefslogtreecommitdiff
path: root/vcl/source/image
diff options
context:
space:
mode:
authorTomaž Vajngerl <tomaz.vajngerl@collabora.co.uk>2016-12-22 22:28:23 +0100
committerTomaž Vajngerl <quikee@gmail.com>2016-12-23 22:03:34 +0000
commit96b95f5010be090ebae6f755d4d3891a2334332c (patch)
treeaa99215a87430cf32760376e2f6b12e7ee9b89a4 /vcl/source/image
parent995dca083778c9bd76f34f48134bb347f99de9b2 (diff)
tdf#103626 don't scale application icon to prevent a start-up loop
Change-Id: I2e65ba16d93167dc4abb029c7e941e91be9a62ab Reviewed-on: https://gerrit.libreoffice.org/32382 Tested-by: Jenkins <ci@libreoffice.org> Reviewed-by: Tomaž Vajngerl <quikee@gmail.com>
Diffstat (limited to 'vcl/source/image')
-rw-r--r--vcl/source/image/ImplImageTree.cxx50
1 files changed, 29 insertions, 21 deletions
diff --git a/vcl/source/image/ImplImageTree.cxx b/vcl/source/image/ImplImageTree.cxx
index 4cd491db57a8..42f210484953 100644
--- a/vcl/source/image/ImplImageTree.cxx
+++ b/vcl/source/image/ImplImageTree.cxx
@@ -49,6 +49,25 @@
#include <vcl/BitmapTools.hxx>
#include <vcl/pngwrite.hxx>
+bool ImageRequestParameters::convertToDarkTheme()
+{
+ static bool bIconsForDarkTheme = !!getenv("VCL_ICONS_FOR_DARK_THEME");
+
+ bool bConvertToDarkTheme = false;
+ if (!(meFlags & ImageLoadFlags::IgnoreDarkTheme))
+ bConvertToDarkTheme = bIconsForDarkTheme;
+
+ return bConvertToDarkTheme;
+}
+
+sal_Int32 ImageRequestParameters::scalePrecentage()
+{
+ sal_Int32 aScalePercentage = 100;
+ if (!(meFlags & ImageLoadFlags::IgnoreScalingFactor))
+ aScalePercentage = Application::GetDefaultDevice()->GetDPIScalePercentage();
+ return aScalePercentage;
+}
+
namespace
{
@@ -134,15 +153,8 @@ std::shared_ptr<SvStream> wrapStream(css::uno::Reference< css::io::XInputStream
void loadImageFromStream(std::shared_ptr<SvStream> const & xStream, OUString const & rPath, ImageRequestParameters& rParameters)
{
- static bool bIconsForDarkTheme = !!getenv("VCL_ICONS_FOR_DARK_THEME");
-
- bool bConvertToDarkTheme = bIconsForDarkTheme;
- if (rParameters.meFlags & ImageLoadFlags::IgnoreDarkTheme)
- bConvertToDarkTheme = false;
-
- float aScaleFactor = Application::GetDefaultDevice()->GetDPIScaleFactor();
- if (rParameters.meFlags & ImageLoadFlags::IgnoreScalingFactor)
- aScaleFactor = 1.0f;
+ bool bConvertToDarkTheme = rParameters.convertToDarkTheme();
+ sal_Int32 aScalePercentage = rParameters.scalePrecentage();
if (rPath.endsWith(".png"))
{
@@ -152,7 +164,7 @@ void loadImageFromStream(std::shared_ptr<SvStream> const & xStream, OUString con
}
else if (rPath.endsWith(".svg"))
{
- vcl::bitmap::loadFromSvg(*xStream.get(), rPath, rParameters.mrBitmap, double(aScaleFactor));
+ vcl::bitmap::loadFromSvg(*xStream.get(), rPath, rParameters.mrBitmap, aScalePercentage / 100.0);
if (bConvertToDarkTheme)
rParameters.mrBitmap = BitmapProcessor::createLightImage(rParameters.mrBitmap);
return;
@@ -165,8 +177,11 @@ void loadImageFromStream(std::shared_ptr<SvStream> const & xStream, OUString con
if (bConvertToDarkTheme)
rParameters.mrBitmap = BitmapProcessor::createLightImage(rParameters.mrBitmap);
- if (aScaleFactor > 1.0f)
- rParameters.mrBitmap.Scale(double(aScaleFactor), double(aScaleFactor), BmpScaleFlag::Fast);
+ if (aScalePercentage > 100)
+ {
+ double aScaleFactor(aScalePercentage / 100.0);
+ rParameters.mrBitmap.Scale(aScaleFactor, aScaleFactor, BmpScaleFlag::Fast);
+ }
}
} // end anonymous namespace
@@ -283,15 +298,8 @@ bool ImplImageTree::loadDefaultImage(OUString const & style, BitmapEx& bitmap, c
OUString createVariant(ImageRequestParameters& rParameters)
{
- static bool bIconsForDarkTheme = !!getenv("VCL_ICONS_FOR_DARK_THEME");
-
- bool bConvertToDarkTheme = bIconsForDarkTheme;
- if (rParameters.meFlags & ImageLoadFlags::IgnoreDarkTheme)
- bConvertToDarkTheme = false;
-
- sal_Int32 aScalePercentage = Application::GetDefaultDevice()->GetDPIScalePercentage();
- if (rParameters.meFlags & ImageLoadFlags::IgnoreScalingFactor)
- aScalePercentage = 100;
+ bool bConvertToDarkTheme = rParameters.convertToDarkTheme();
+ sal_Int32 aScalePercentage = rParameters.scalePrecentage();
OUString aVariant;
if (aScalePercentage == 100 && !bConvertToDarkTheme)