Revision: 13112
http://sourceforge.net/p/plplot/code/13112
Author: airwin
Date: 2014-04-26 02:43:54 +0000 (Sat, 26 Apr 2014)
Log Message:
-----------
Drop dependence on libagg since the location of the tarball is still
not settled, and libagg is only needed for one component of the
wxwidgets device driver which is scheduled to be dropped in any case.
Change plplot dependence from qt4_lite to qt5_lite and exclusively use
Qt5 for plplot epa_build and tests.
The epa_build of qt5_lite and the epa_build and test of PLplot
were comprehensively tested (all three build systems all three major
configurations) on Linux with no issues.
Modified Paths:
--------------
trunk/cmake/epa_build/plplot/CMakeLists.txt
Modified: trunk/cmake/epa_build/plplot/CMakeLists.txt
===================================================================
--- trunk/cmake/epa_build/plplot/CMakeLists.txt 2014-04-26 02:38:37 UTC (rev 13111)
+++ trunk/cmake/epa_build/plplot/CMakeLists.txt 2014-04-26 02:43:54 UTC (rev 13112)
@@ -2,7 +2,7 @@
# Configure the build of PLplot.
-# Copyright (C) 2013 Alan W. Irwin
+# Copyright (C) 2013-2014 Alan W. Irwin
# This file is free software; you can redistribute it and/or
# modify it under the terms of the GNU Lesser General Public
@@ -25,7 +25,10 @@
set(ignored_dependencies_LIST ${extra_ignored_dependencies_list})
set(dependencies_LIST
- libagg
+ # agg website now (2014-04-13) a broken link, and this library only
+ # needed in any case for a purpose that may disappear (wxwidgets).
+ # So drop it.
+ #libagg
libharu
libqhull
shapelib
@@ -38,7 +41,7 @@
if(NOT MSYS_PLATFORM)
list(APPEND dependencies_LIST
pango
- qt4_lite
+ qt5_lite
)
endif(NOT MSYS_PLATFORM)
@@ -71,9 +74,14 @@
-DDROP_GTK_PLUS_2_BUILDS=ON
)
+# Only use Qt5 since that is all that is epa_built.
+list(APPEND cmake_args
+ -DPLPLOT_USE_QT5=ON
+ )
+
if(MSYS_PLATFORM)
# Turn off the cairo and qt device drivers for plplot on Windows
- # until the pango and qt4_lite packages and all their dependencies
+ # until the pango and qt5_lite packages and all their dependencies
# build properly on that platform
list(APPEND cmake_args
-DDEFAULT_NO_CAIRO_DEVICES:BOOL=ON
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.

Revision: 13111
http://sourceforge.net/p/plplot/code/13111
Author: airwin
Date: 2014-04-26 02:38:37 +0000 (Sat, 26 Apr 2014)
Log Message:
-----------
Drop dependence on libagg since the location of the tarball is still not settled, and
libagg is only needed for one component of the wxwidgets device driver
which is scheduled to be dropped in any case.
Modified Paths:
--------------
trunk/cmake/epa_build/plplot_lite/CMakeLists.txt
Modified: trunk/cmake/epa_build/plplot_lite/CMakeLists.txt
===================================================================
--- trunk/cmake/epa_build/plplot_lite/CMakeLists.txt 2014-04-26 02:36:45 UTC (rev 13110)
+++ trunk/cmake/epa_build/plplot_lite/CMakeLists.txt 2014-04-26 02:38:37 UTC (rev 13111)
@@ -3,7 +3,7 @@
# Configure the build of a "lite" version of PLplot (with fewer dependencies
# but with fewer features as well).
-# Copyright (C) 2013 Alan W. Irwin
+# Copyright (C) 2013-2014 Alan W. Irwin
# This file is free software; you can redistribute it and/or
# modify it under the terms of the GNU Lesser General Public
@@ -26,7 +26,10 @@
set(ignored_dependencies_LIST ${extra_ignored_dependencies_list})
set(dependencies_LIST
- libagg
+ # agg website now (2014-04-13) a broken link, and this library only
+ # needed in any case for a purpose that may disappear (wxwidgets).
+ # So drop it.
+ #libagg
libharu
libqhull
shapelib
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.

Revision: 13091
http://sourceforge.net/p/plplot/code/13091
Author: airwin
Date: 2014-04-01 19:53:12 +0000 (Tue, 01 Apr 2014)
Log Message:
-----------
Apply empirically derived (using examples/python/test_circle.py) and
examples/python/x02) vertical offset for all text for the Qt5 case.
This vertical offset is substantial (greater than half the character
box height) and roughly constant for most glyphs/fonts. However, the
final value was optimized for the light diagonal cross glyph in
test_circle.py. That example shows that other glyphs (except for the
well-known asterisk case which is vertically misaligned by font
design) have a dispersion in vertical alignments that is larger than
for cairo which in turn is larger than for qt with Qt4. Both those
latter dispersion results were derived with no empirical vertical
offset at all.
An additional issue which confuses the issue concerning the best
vertical alignment for qt with Qt5, cairo, and qt with Qt4 is the font
selection for all those cases is different (as evidenced by different
sizes/shapes of glyphs in all three cases and missing glyphs (i.e.,
Korean for example 24) for the Qt5 case which are present in the other
cases. I assume all these issues are due to Qt5 version 5.2.1 font
selection and font alignment issues which will be addressed for future
Qt5 versions. And when those Qt5 fixes occur, this empirical vertical
offset will have to be changed or else withdrawn (set to zero).
Modified Paths:
--------------
trunk/bindings/qt_gui/plqt.cpp
Modified: trunk/bindings/qt_gui/plqt.cpp
===================================================================
--- trunk/bindings/qt_gui/plqt.cpp 2014-04-01 19:28:28 UTC (rev 13090)
+++ trunk/bindings/qt_gui/plqt.cpp 2014-04-01 19:53:12 UTC (rev 13091)
@@ -249,8 +249,27 @@
PLFLT old_sscale, sscale, old_soffset, soffset;
PLINT level = 0;
PLFLT dyOffset = 0.;
-
- yOffset = 0.;
+#ifdef PLPLOT_USE_QT5
+ // Empirical Y offset of text (needed for Qt5 for some reason).
+ // Note this was derived using the test_circle.py python script
+ // with the vertical alignment of the light diagonal cross
+ // optimized. That example shows that other glyphs (except for
+ // the well-known asterisk case which is vertically misaligned by
+ // font design) do not have the best vertical alignment. This is
+ // contrary to the results for cairo and qt with Qt4 which need no
+ // special empirical Y offset to get good vertical alignment for
+ // most glyphs of that example (other than the asterisk). An
+ // additional issue which confuses the decision concerning the
+ // best vertical alignment for qt with Qt5 is the font selection
+ // for qt with Qt5 is quite different than that for qt with Qt4 or
+ // cairo. I assume all these issues are due to Qt5 version 5.2.1
+ // font selection and font alignment bugs which will be addressed
+ // for future Qt5 versions.
+ PLFLT empirical_yOffset = -0.63 * chrht * POINTS_PER_INCH / 25.4;
+#else
+ PLFLT empirical_yOffset = 0.;
+#endif
+ yOffset = empirical_yOffset;
xOffset = 0.;
// Scaling factor of 1.45 determined empirically to make all qt results
@@ -292,7 +311,7 @@
// dyOffset = -0.5 * currentFontSize * ( 1.0 - sscale );
// But empirically this change in offset should not be applied
// so leave it at its initial value of zero.
- yOffset = -( currentFontSize * RISE_FACTOR * soffset + dyOffset );
+ yOffset = empirical_yOffset - ( currentFontSize * RISE_FACTOR * soffset + dyOffset );
p.setFont( getFont( fci ) );
break;
@@ -312,7 +331,7 @@
// dyOffset = 0.5 * currentFontSize * ( 1.0 - sscale );
// But empirically this change in offset should not be applied
// so leave it at its initial value of zero.
- yOffset = currentFontSize * RISE_FACTOR * soffset + dyOffset;
+ yOffset = empirical_yOffset + currentFontSize * RISE_FACTOR * soffset + dyOffset;
p.setFont( getFont( fci ) );
break;
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.