Skip to content

Commit

Permalink
Update test font to Vera San and start workaround for Mac 10.9 font-l…
Browse files Browse the repository at this point in the history
…oading bugs

- Test font loading should be moved to QgsFontUtils
  • Loading branch information
dakcarto committed Feb 19, 2014
1 parent 570e24b commit 34be93b
Show file tree
Hide file tree
Showing 24 changed files with 354 additions and 2,353 deletions.
2 changes: 1 addition & 1 deletion src/app/main.cpp
Expand Up @@ -737,7 +737,7 @@ int main( int argc, char *argv[] )
} }


// load standard test font from testdata.qrc (for unit tests) // load standard test font from testdata.qrc (for unit tests)
QFile testFont( ":/testdata/font/FreeSansQGIS.ttf" ); QFile testFont( ":/testdata/font/QGIS-Vera/QGIS-Vera.ttf" );
if ( testFont.open( QIODevice::ReadOnly ) ) if ( testFont.open( QIODevice::ReadOnly ) )
{ {
int fontID = QFontDatabase::addApplicationFontFromData( testFont.readAll() ); int fontID = QFontDatabase::addApplicationFontFromData( testFont.readAll() );
Expand Down
1 change: 1 addition & 0 deletions src/core/qgsapplication.cpp
Expand Up @@ -91,6 +91,7 @@ void QgsApplication::init( QString customConfigPath )
qRegisterMetaType<QgsGeometry::Error>( "QgsGeometry::Error" ); qRegisterMetaType<QgsGeometry::Error>( "QgsGeometry::Error" );


QString prefixPath( getenv( "QGIS_PREFIX_PATH" ) ? getenv( "QGIS_PREFIX_PATH" ) : applicationDirPath() ); QString prefixPath( getenv( "QGIS_PREFIX_PATH" ) ? getenv( "QGIS_PREFIX_PATH" ) : applicationDirPath() );
// QgsDebugMsg( QString( "prefixPath(): %1" ).arg( prefixPath ) );


// check if QGIS is run from build directory (not the install directory) // check if QGIS is run from build directory (not the install directory)
QFile f; QFile f;
Expand Down
40 changes: 33 additions & 7 deletions src/mapserver/qgis_map_serv.cpp
Expand Up @@ -248,21 +248,47 @@ int main( int argc, char * argv[] )
theMapRenderer->setLabelingEngine( new QgsPalLabeling() ); theMapRenderer->setLabelingEngine( new QgsPalLabeling() );


#ifdef QGSMSDEBUG #ifdef QGSMSDEBUG
// load standard test font from testdata.qrc (for unit tests) // load standard test font from filesystem or testdata.qrc (for unit tests)
bool testFontLoaded = false; bool testFontLoaded = false;
QFile testFont( ":/testdata/font/FreeSansQGIS.ttf" ); QFontDatabase fontDB;
if ( testFont.open( QIODevice::ReadOnly ) ) QFont testFont = fontDB.font( "QGIS Vera Sans", "Roman", 12 );
if ( testFont.family().startsWith( "QGIS", Qt::CaseInsensitive ) )
{ {
int fontID = QFontDatabase::addApplicationFontFromData( testFont.readAll() ); testFontLoaded = true;
testFontLoaded = ( fontID != -1 ); QgsDebugMsg( "Test font already available" );
} // else app wasn't built with ENABLE_TESTS or not GUI app }
else
{
QString fontFromWhere( "" );
if ( QgsApplication::isRunningFromBuildDir() )
{
// [LS] workaround for serious bugs on Mac 10.9, where fonts from qrc resources fail:
// https://bugreports.qt-project.org/browse/QTBUG-30917
// https://bugreports.qt-project.org/browse/QTBUG-32789
QString testFont( QgsApplication::buildSourcePath() + "/tests/testdata/font/QGIS-Vera/QGIS-Vera.ttf" );
int fontID = QFontDatabase::addApplicationFont( testFont );
testFontLoaded = ( fontID != -1 );
fontFromWhere = testFontLoaded ? "filesystem" : "";
}
else
{
QFile testFont( ":/testdata/font/QGIS-Vera/QGIS-Vera.ttf" );
if ( testFont.open( QIODevice::ReadOnly ) )
{
int fontID = QFontDatabase::addApplicationFontFromData( testFont.readAll() );
testFontLoaded = ( fontID != -1 );
} // else app wasn't built with ENABLE_TESTS or not GUI app
fontFromWhere = testFontLoaded ? "testdata.qrc" : "";
}
QgsDebugMsg( QString( "Test font %1loaded from %2 on startup" ).arg( testFontLoaded ? "" : "NOT " ).arg( fontFromWhere ) );
}
#endif #endif


while ( fcgi_accept() >= 0 ) while ( fcgi_accept() >= 0 )
{ {
printRequestInfos(); //print request infos if in debug mode printRequestInfos(); //print request infos if in debug mode
#ifdef QGSMSDEBUG #ifdef QGSMSDEBUG
QgsDebugMsg( QString( "Test font %1 loaded from testdata.qrc" ).arg( testFontLoaded ? "" : "NOT " ) ); QgsDebugMsg( QString( "Test font %1loaded" ).arg( testFontLoaded ? "" : "NOT " ) );
#endif #endif


//use QgsGetRequestHandler in case of HTTP GET and QgsSOAPRequestHandler in case of HTTP POST //use QgsGetRequestHandler in case of HTTP GET and QgsSOAPRequestHandler in case of HTTP POST
Expand Down
4 changes: 3 additions & 1 deletion tests/src/python/test_qgspallabeling_tests.py
Expand Up @@ -23,13 +23,15 @@
QgsPalLayerSettings, QgsPalLayerSettings,
) )


from utilities import loadTestFont



class TestPointBase(object): class TestPointBase(object):


def __init__(self): def __init__(self):
"""Dummy assignments, intended to be overriden in subclasses""" """Dummy assignments, intended to be overriden in subclasses"""
self.lyr = QgsPalLayerSettings() self.lyr = QgsPalLayerSettings()
self._TestFont = QApplication.font() self._TestFont = loadTestFont()


def checkTest(self, **kwargs): def checkTest(self, **kwargs):
"""Intended to be overriden in subclasses""" """Intended to be overriden in subclasses"""
Expand Down
14 changes: 8 additions & 6 deletions tests/src/python/utilities.py
Expand Up @@ -50,6 +50,7 @@


TESTFONT = None TESTFONT = None



def assertHashesForFile(theHashes, theFilename): def assertHashesForFile(theHashes, theFilename):
"""Assert that a files has matches one of a list of expected hashes""" """Assert that a files has matches one of a list of expected hashes"""
myHash = hashForFile(theFilename) myHash = hashForFile(theFilename)
Expand Down Expand Up @@ -220,10 +221,11 @@ def loadTestFont():
global TESTFONT # pylint: disable=W0603 global TESTFONT # pylint: disable=W0603


if TESTFONT is None: if TESTFONT is None:
fontid = QtGui.QFontDatabase.addApplicationFont( fontid = QtGui.QFontDatabase().addApplicationFont(
os.path.join(unitTestDataPath('font'), 'FreeSansQGIS.ttf')) os.path.join(unitTestDataPath('font'),
'QGIS-Vera', 'QGIS-Vera.ttf'))
if fontid != -1: if fontid != -1:
TESTFONT = QtGui.QFont('FreeSansQGIS') TESTFONT = QtGui.QFont('QGIS Vera Sans')


return TESTFONT return TESTFONT


Expand All @@ -235,6 +237,6 @@ def openInBrowserTab(url):
# some Linux OS pause execution on webbrowser open, so background it # some Linux OS pause execution on webbrowser open, so background it
cmd = 'import webbrowser;' \ cmd = 'import webbrowser;' \
'webbrowser.open_new_tab({0})'.format(url) 'webbrowser.open_new_tab({0})'.format(url)
p = subprocess.Popen([sys.executable, "-c", cmd], subprocess.Popen([sys.executable, "-c", cmd],
stdout=subprocess.PIPE, stdout=subprocess.PIPE,
stderr=subprocess.STDOUT).pid stderr=subprocess.STDOUT)
159 changes: 0 additions & 159 deletions tests/testdata/font/AUTHORS

This file was deleted.

0 comments on commit 34be93b

Please sign in to comment.