Kaydet (Commit) a2c9d4f8 authored tarafından Rodolfo Ribeiro Gomes's avatar Rodolfo Ribeiro Gomes Kaydeden (comit) Fridrich Strba

Little cleanup in image loader internal functions

Change-Id: I6def704dc22d7a536849a9e4b51a08bf68778329
Signed-off-by: 's avatarRodolfo Ribeiro Gomes <rodolforg@gmail.com>
Reviewed-on: https://gerrit.libreoffice.org/3950Reviewed-by: 's avatarFridrich Strba <fridrich@documentfoundation.org>
Tested-by: 's avatarFridrich Strba <fridrich@documentfoundation.org>
üst 863d38fb
...@@ -64,13 +64,13 @@ ...@@ -64,13 +64,13 @@
namespace { namespace {
OUString createPath( static OUString createPath(
OUString const & name, sal_Int32 pos, OUString const & locale) OUString const & name, sal_Int32 pos, OUString const & locale)
{ {
return name.copy(0, pos + 1) + locale + name.copy(pos); 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 // This could use SvInputStream instead if that did not have a broken
// SeekPos implementation for an XInputStream that is not also XSeekable // SeekPos implementation for an XInputStream that is not also XSeekable
...@@ -90,22 +90,7 @@ boost::shared_ptr< SvStream > wrapFile(osl::File & file) ...@@ -90,22 +90,7 @@ boost::shared_ptr< SvStream > wrapFile(osl::File & file)
return s; return s;
} }
void loadFromFile( static boost::shared_ptr< SvStream > wrapStream(
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(
css::uno::Reference< css::io::XInputStream > const & stream) css::uno::Reference< css::io::XInputStream > const & stream)
{ {
// This could use SvInputStream instead if that did not have a broken // This could use SvInputStream instead if that did not have a broken
...@@ -127,18 +112,17 @@ boost::shared_ptr< SvStream > wrapStream( ...@@ -127,18 +112,17 @@ boost::shared_ptr< SvStream > wrapStream(
return s; return s;
} }
void loadFromStream( static void loadImageFromStream(
css::uno::Reference< css::io::XInputStream > const & stream, boost::shared_ptr< SvStream > pStream,
OUString const & path, BitmapEx & bitmap) OUString const & rPath, BitmapEx & rBitmap)
{ {
boost::shared_ptr< SvStream > s(wrapStream(stream)); if (rPath.endsWith(".png"))
if (path.endsWith(".png"))
{ {
vcl::PNGReader aPNGReader( *s ); vcl::PNGReader aPNGReader( *pStream );
aPNGReader.SetIgnoreGammaChunk( sal_True ); aPNGReader.SetIgnoreGammaChunk( sal_True );
bitmap = aPNGReader.Read(); rBitmap = aPNGReader.Read();
} else { } else {
*s >> bitmap; *pStream >> rBitmap;
} }
} }
...@@ -271,27 +255,22 @@ void ImplImageTree::setStyle(OUString const & style) { ...@@ -271,27 +255,22 @@ void ImplImageTree::setStyle(OUString const & style) {
void ImplImageTree::resetPaths() { void ImplImageTree::resetPaths() {
m_paths.clear(); 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); INetURLObject u(url);
OSL_ASSERT(!u.HasError()); OSL_ASSERT(!u.HasError());
bool ok = u.Append("images_" + m_style, INetURLObject::ENCODE_ALL); bool ok = u.Append("images_" + m_style, INetURLObject::ENCODE_ALL);
OSL_ASSERT(ok); (void) ok; OSL_ASSERT(ok); (void) ok;
m_paths.push_back( url = u.GetMainURL(INetURLObject::NO_DECODE);
std::make_pair(
u.GetMainURL(INetURLObject::NO_DECODE),
css::uno::Reference< css::container::XNameAccess >()));
}
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( bool ImplImageTree::checkStyleCacheLookup(
...@@ -329,7 +308,7 @@ bool ImplImageTree::find( ...@@ -329,7 +308,7 @@ bool ImplImageTree::find(
{ {
osl::File file(i->first + "/" + *j); osl::File file(i->first + "/" + *j);
if (file.open(osl_File_OpenFlag_Read) == ::osl::FileBase::E_None) { if (file.open(osl_File_OpenFlag_Read) == ::osl::FileBase::E_None) {
loadFromFile(file, *j, bitmap); loadImageFromStream( wrapFile(file), *j, bitmap );
file.close(); file.close();
return true; return true;
} }
...@@ -361,7 +340,7 @@ bool ImplImageTree::find( ...@@ -361,7 +340,7 @@ bool ImplImageTree::find(
css::uno::Reference< css::io::XInputStream > s; css::uno::Reference< css::io::XInputStream > s;
bool ok = i->second->getByName(*j) >>= s; bool ok = i->second->getByName(*j) >>= s;
OSL_ASSERT(ok); (void) ok; OSL_ASSERT(ok); (void) ok;
loadFromStream(s, *j, bitmap); loadImageFromStream( wrapStream(s), *j, bitmap );
return true; return true;
} }
} }
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment