Hi,
I have submitted a patch for review:
https://gerrit.libreoffice.org/3950
To pull it, you can do:
git pull ssh://gerrit.libreoffice.org:29418/core refs/changes/50/3950/1
Little cleanup in image loader internal functions
Change-Id: I6def704dc22d7a536849a9e4b51a08bf68778329
Signed-off-by: Rodolfo Ribeiro Gomes <rodolforg@gmail.com>
---
M vcl/source/gdi/impimagetree.cxx
1 file changed, 22 insertions(+), 43 deletions(-)
diff --git a/vcl/source/gdi/impimagetree.cxx b/vcl/source/gdi/impimagetree.cxx
index bcdfd01..97fa471 100644
--- a/vcl/source/gdi/impimagetree.cxx
+++ b/vcl/source/gdi/impimagetree.cxx
@@ -63,13 +63,13 @@
namespace {
-OUString createPath(
+static OUString createPath(
OUString const & name, sal_Int32 pos, OUString const & locale)
{
return name.copy(0, pos + 1) + locale + name.copy(pos);
}
-boost::shared_ptr< SvStream > wrapFile(osl::File & file)
+static boost::shared_ptr< SvStream > wrapFile(osl::File & file)
{
// This could use SvInputStream instead if that did not have a broken
// SeekPos implementation for an XInputStream that is not also XSeekable
@@ -89,22 +89,7 @@
return s;
}
-void loadFromFile(
- osl::File & file,
- OUString const & path, BitmapEx & bitmap)
-{
- boost::shared_ptr< SvStream > s(wrapFile(file));
- if (path.endsWith(".png"))
- {
- vcl::PNGReader aPNGReader( *s );
- aPNGReader.SetIgnoreGammaChunk( sal_True );
- bitmap = aPNGReader.Read();
- } else {
- *s >> bitmap;
- }
-}
-
-boost::shared_ptr< SvStream > wrapStream(
+static boost::shared_ptr< SvStream > wrapStream(
css::uno::Reference< css::io::XInputStream > const & stream)
{
// This could use SvInputStream instead if that did not have a broken
@@ -126,18 +111,17 @@
return s;
}
-void loadFromStream(
- css::uno::Reference< css::io::XInputStream > const & stream,
- OUString const & path, BitmapEx & bitmap)
+static void loadImageFromStream(
+ boost::shared_ptr< SvStream > pStream,
+ OUString const & rPath, BitmapEx & rBitmap)
{
- boost::shared_ptr< SvStream > s(wrapStream(stream));
- if (path.endsWith(".png"))
+ if (rPath.endsWith(".png"))
{
- vcl::PNGReader aPNGReader( *s );
+ vcl::PNGReader aPNGReader( *pStream );
aPNGReader.SetIgnoreGammaChunk( sal_True );
- bitmap = aPNGReader.Read();
+ rBitmap = aPNGReader.Read();
} else {
- *s >> bitmap;
+ *pStream >> rBitmap;
}
}
@@ -270,27 +254,22 @@
void ImplImageTree::resetPaths() {
m_paths.clear();
+
+ OUString url( "$BRAND_BASE_DIR/share/config/" );
+ rtl::Bootstrap::expandMacros(url);
+ if ( m_style != "default" )
{
- OUString url(
- "$BRAND_BASE_DIR/share/config");
- rtl::Bootstrap::expandMacros(url);
INetURLObject u(url);
OSL_ASSERT(!u.HasError());
bool ok = u.Append("images_" + m_style, INetURLObject::ENCODE_ALL);
OSL_ASSERT(ok); (void) ok;
- m_paths.push_back(
- std::make_pair(
- u.GetMainURL(INetURLObject::NO_DECODE),
- css::uno::Reference< css::container::XNameAccess >()));
+ url = u.GetMainURL(INetURLObject::NO_DECODE);
}
- if ( m_style == "default" )
- {
- OUString url( "$BRAND_BASE_DIR/share/config/images");
- rtl::Bootstrap::expandMacros(url);
- m_paths.push_back(
- std::make_pair(
- url, css::uno::Reference< css::container::XNameAccess >()));
- }
+ else
+ url += "images";
+ m_paths.push_back(
+ std::make_pair(
+ url, css::uno::Reference< css::container::XNameAccess >()));
}
bool ImplImageTree::checkStyleCacheLookup(
@@ -328,7 +307,7 @@
{
osl::File file(i->first + "/" + *j);
if (file.open(osl_File_OpenFlag_Read) == ::osl::FileBase::E_None) {
- loadFromFile(file, *j, bitmap);
+ loadImageFromStream( wrapFile(file), *j, bitmap );
file.close();
return true;
}
@@ -362,7 +341,7 @@
css::uno::Reference< css::io::XInputStream > s;
bool ok = i->second->getByName(*j) >>= s;
OSL_ASSERT(ok); (void) ok;
- loadFromStream(s, *j, bitmap);
+ loadImageFromStream( wrapStream(s), *j, bitmap );
return true;
}
}
--
To view, visit https://gerrit.libreoffice.org/3950
To unsubscribe, visit https://gerrit.libreoffice.org/settings
Gerrit-MessageType: newchange
Gerrit-Change-Id: I6def704dc22d7a536849a9e4b51a08bf68778329
Gerrit-PatchSet: 1
Gerrit-Project: core
Gerrit-Branch: master
Gerrit-Owner: Rodolfo Ribeiro Gomes <libo@rodolfo.eng.br>
Context
- [PATCH] Little cleanup in image loader internal functions · Rodolfo Ribeiro Gomes (via Code Review)
Privacy Policy |
Impressum (Legal Info) |
Copyright information: Unless otherwise specified, all text and images
on this website are licensed under the
Creative Commons Attribution-Share Alike 3.0 License.
This does not include the source code of LibreOffice, which is
licensed under the Mozilla Public License (
MPLv2).
"LibreOffice" and "The Document Foundation" are
registered trademarks of their corresponding registered owners or are
in actual use as trademarks in one or more countries. Their respective
logos and icons are also subject to international copyright laws. Use
thereof is explained in our
trademark policy.