summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorHenry Castro <hcastro@collabora.com>2016-05-24 17:24:16 -0400
committerAshod Nakashian <ashnakash@gmail.com>2016-05-25 23:11:39 +0000
commitb2f994469f3e2f1fe72e9f103b840aa949ace6dd (patch)
treec44c55836166be89ad9092ca84eac07c8f215272
parent61b43a02cc2b19cc39e801d68714958398d4a401 (diff)
lok: reset the font list when there are no items
In the pre-init stage the devices were initialized with no font list, but later the font list is updated. So those devices were not updated. Change-Id: I157d4c7079f9b1252916eb92b512aadb8e77329f Reviewed-on: https://gerrit.libreoffice.org/25419 Tested-by: Jenkins <ci@libreoffice.org> Reviewed-by: Ashod Nakashian <ashnakash@gmail.com>
-rw-r--r--desktop/qa/desktop_lib/test_desktop_lib.cxx5
-rw-r--r--vcl/source/outdev/font.cxx10
2 files changed, 14 insertions, 1 deletions
diff --git a/desktop/qa/desktop_lib/test_desktop_lib.cxx b/desktop/qa/desktop_lib/test_desktop_lib.cxx
index efa055adea92..bdda55ea7b7d 100644
--- a/desktop/qa/desktop_lib/test_desktop_lib.cxx
+++ b/desktop/qa/desktop_lib/test_desktop_lib.cxx
@@ -270,7 +270,8 @@ void DesktopLOKTest::testGetStyles()
void DesktopLOKTest::testGetFonts()
{
- LibLODocument_Impl* pDocument = loadDoc("blank_text.odt");
+ comphelper::LibreOfficeKit::setActive();
+ LibLODocument_Impl* pDocument = loadDoc("blank_presentation.odp");
boost::property_tree::ptree aTree;
char* pJSON = pDocument->m_pDocumentClass->getCommandValues(pDocument, ".uno:CharFontName");
std::stringstream aStream(pJSON);
@@ -285,6 +286,8 @@ void DesktopLOKTest::testGetFonts()
// check that we have font sizes available for each font
CPPUNIT_ASSERT( rPair.second.size() > 0);
}
+ free(pJSON);
+ comphelper::LibreOfficeKit::setActive(false);
}
void DesktopLOKTest::testCreateView()
diff --git a/vcl/source/outdev/font.cxx b/vcl/source/outdev/font.cxx
index c6c4f4f6bb34..01aa8419b67c 100644
--- a/vcl/source/outdev/font.cxx
+++ b/vcl/source/outdev/font.cxx
@@ -74,9 +74,19 @@ int OutputDevice::GetDevFontCount() const
if( !mpDeviceFontList )
{
if (!mpFontCollection)
+ {
return 0;
+ }
mpDeviceFontList = mpFontCollection->GetDeviceFontList();
+
+ if (!mpDeviceFontList->Count())
+ {
+ delete mpDeviceFontList;
+ mpDeviceFontList = nullptr;
+
+ return 0;
+ }
}
return mpDeviceFontList->Count();
}