Hello community,

here is the log from the commit of package python-veusz for openSUSE:Factory 
checked in at 2013-04-22 14:32:40
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/python-veusz (Old)
 and      /work/SRC/openSUSE:Factory/.python-veusz.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "python-veusz", Maintainer is ""

Changes:
--------
--- /work/SRC/openSUSE:Factory/python-veusz/python-veusz.changes        
2013-04-07 14:26:18.000000000 +0200
+++ /work/SRC/openSUSE:Factory/.python-veusz.new/python-veusz.changes   
2013-04-22 14:32:42.000000000 +0200
@@ -1,0 +2,13 @@
+Tue Apr 16 02:24:50 UTC 2013 - [email protected]
+
+- Update to 1.17.1:
+  + Allow coloured points for non-orthogonal plots (polar,
+    ternary)
+  + Remove unnecessary exception data
+  + Bug fixes:
+    - Fix Print dialog
+    - Fix command-line "Print" command
+    - Fix duplicate axes drawn in grid
+    - Fix crash adding empty polar plot 
+
+-------------------------------------------------------------------

Old:
----
  veusz-1.17.tar.gz

New:
----
  veusz-1.17.1.tar.gz

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Other differences:
------------------
++++++ python-veusz.spec ++++++
--- /var/tmp/diff_new_pack.Ze70MH/_old  2013-04-22 14:32:43.000000000 +0200
+++ /var/tmp/diff_new_pack.Ze70MH/_new  2013-04-22 14:32:43.000000000 +0200
@@ -1,7 +1,7 @@
 #
 # spec file for package python-veusz
 #
-# Copyright (c) 2011 SUSE LINUX Products GmbH, Nuernberg, Germany.
+# Copyright (c) 2013 SUSE LINUX Products GmbH, Nuernberg, Germany.
 #
 # All modifications and additions to the file contributed by third parties
 # remain the property of their copyright owners, unless otherwise agreed
@@ -15,19 +15,20 @@
 # Please submit bugfixes or comments via http://bugs.opensuse.org/
 #
 
+
 %{!?python_sitelib: %global python_sitelib %(%{__python} -c "from 
distutils.sysconfig import get_python_lib; print(get_python_lib())")}
 %{!?python_sitearch: %global python_sitearch %(%{__python} -c "from 
distutils.sysconfig import get_python_lib; print(get_python_lib(1))")}
 
 %define pyname veusz
 
 Name:           python-veusz
-Version:        1.17
+Version:        1.17.1
 Release:        0
 # The entire source code is GPL-2.0+ except helpers/src/_nc_cntr.c which is 
Python-2.0
-License:        GPL-2.0+ and Python-2.0
 Summary:        GUI scientific plotting package
-Url:            http://home.gna.org/veusz/
+License:        GPL-2.0+ and Python-2.0
 Group:          Productivity/Scientific/Other
+Url:            http://home.gna.org/veusz/
 Source0:        http://download.gna.org/veusz/veusz-%{version}.tar.gz
 Source1:        %{pyname}.desktop
 Source2:        %{pyname}.xml

++++++ veusz-1.17.tar.gz -> veusz-1.17.1.tar.gz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/veusz-1.17/ChangeLog new/veusz-1.17.1/ChangeLog
--- old/veusz-1.17/ChangeLog    2013-03-23 10:08:54.000000000 +0100
+++ new/veusz-1.17.1/ChangeLog  2013-04-07 14:28:39.000000000 +0200
@@ -1,3 +1,15 @@
+Changes in 1.17.1:
+ * Allow coloured points for non-orthogonal plots (polar, ternary)
+ * Remove unnecessary exception data
+
+Bug fixes:
+ * Fix Print dialog
+ * Fix command-line "Print" command
+ * Fix duplicate axes drawn in grid
+ * Fix crash adding empty polar plot
+ * Exit properly on Mac OS X with --export option
+ * Fix highlighted button icons missing (Mac OS X binary)
+
 Changes in 1.17:
  * Add new broken axis widget with gaps in the numerical sequence
  * Grid lines are plotted always under (or over) the data
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/veusz-1.17/PKG-INFO new/veusz-1.17.1/PKG-INFO
--- old/veusz-1.17/PKG-INFO     2013-03-23 10:23:21.000000000 +0100
+++ new/veusz-1.17.1/PKG-INFO   2013-04-07 14:30:05.000000000 +0200
@@ -1,6 +1,6 @@
 Metadata-Version: 1.1
 Name: veusz
-Version: 1.17
+Version: 1.17.1
 Summary: A scientific plotting package
 Home-page: http://home.gna.org/veusz/
 Author: Jeremy Sanders
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/veusz-1.17/README new/veusz-1.17.1/README
--- old/veusz-1.17/README       2013-03-23 10:08:54.000000000 +0100
+++ new/veusz-1.17.1/README     2013-04-07 14:28:39.000000000 +0200
@@ -1,25 +1,29 @@
-Veusz 1.17
-----------
-Velvet Ember Under Sky Zenith
------------------------------
+Veusz 1.17.1
+------------
 http://home.gna.org/veusz/
 
-Copyright (C) 2003-2013 Jeremy Sanders <[email protected]>
-and contributors.
+Veusz is a scientific plotting package.  It is designed to produce
+publication-ready Postscript/PDF/SVG output. Graphs are built-up by
+combining plotting widgets. The user interface aims to be simple,
+consistent and powerful.
 
-Licenced under the GPL (version 2 or greater).
-
-Veusz is a Qt4 based scientific plotting package. It is written in
-Python, using PyQt4 for display and user-interfaces, and numpy for
-handling the numeric data. Veusz is designed to produce
-publication-ready Postscript/PDF/SVG output. The user interface aims
-to be simple, consistent and powerful.
-
-Veusz provides a GUI, command line, embedding and scripting interface
-(based on Python) to its plotting facilities. It also allows for
+Veusz provides GUI, Python module, command line, scripting, DBUS and
+SAMP interfaces to its plotting facilities. It also allows for
 manipulation and editing of datasets. Data can be captured from
 external sources such as Internet sockets or other programs.
 
+Changes in 1.17.1:
+ * Allow coloured points for non-orthogonal plots (polar, ternary)
+ * Remove unnecessary exception data
+
+Bug fixes:
+ * Fix Print dialog
+ * Fix command-line "Print" command
+ * Fix duplicate axes drawn in grid
+ * Fix crash adding empty polar plot
+ * Exit properly on Mac OS X with --export option
+ * Fix highlighted button icons missing (Mac OS X binary)
+
 Changes in 1.17:
  * Add new broken axis widget with gaps in the numerical sequence
  * Grid lines are plotted always under (or over) the data
@@ -42,43 +46,49 @@
  * Fix bold and italic output in SVG output
 
 Features of package:
- * X-Y plots (with errorbars)
- * Line and function plots
- * Contour plots
- * Images (with colour mappings and colorbars)
- * Stepped plots (for histograms)
- * Bar graphs
- * Vector field plots
- * Box plots
- * Polar plots
- * Ternary plots
- * Plotting dates
- * Fitting functions to data
- * Stacked plots and arrays of plots
- * Plot keys
- * Plot labels
- * Shapes and arrows on plots
- * LaTeX-like formatting for text
- * EPS/PDF/PNG/SVG/EMF export
- * Scripting interface
- * Dataset creation/manipulation
- * Embed Veusz within other programs
- * Text, CSV, FITS, NPY/NPZ, QDP, binary and user-plugin importing
- * Data can be captured from external sources
- * User defined functions, constants and can import external Python functions
- * Plugin interface to allow user to write or load code to
-    - import data using new formats
-    - make new datasets, optionally linked to existing datasets
-    - arbitrarily manipulate the document
- * Data picker
- * Interactive tutorial
- * Multithreaded rendering
+ Plotting features:
+  * X-Y plots (with errorbars)
+  * Line and function plots
+  * Contour plots
+  * Images (with colour mappings and colorbars)
+  * Stepped plots (for histograms)
+  * Bar graphs
+  * Vector field plots
+  * Box plots
+  * Polar plots
+  * Ternary plots
+  * Plotting dates
+  * Fitting functions to data
+  * Stacked plots and arrays of plots
+  * Plot keys
+  * Plot labels
+  * Shapes and arrows on plots
+  * LaTeX-like formatting for text
+ Input and output:
+  * EPS/PDF/PNG/SVG/EMF export
+  * Dataset creation/manipulation
+  * Embed Veusz within other programs
+  * Text, CSV, FITS, NPY/NPZ, QDP, binary and user-plugin importing
+  * Data can be captured from external sources
+ Extending:
+  * Use as a Python module
+  * User defined functions, constants and can import external Python functions
+  * Plugin interface to allow user to write or load code to
+     - import data using new formats
+     - make new datasets, optionally linked to existing datasets
+     - arbitrarily manipulate the document
+  * Scripting interface
+  * Control with DBUS and SAMP
+ Other features:
+  * Data picker
+  * Interactive tutorial
+  * Multithreaded rendering
 
 Requirements for source install:
  Python (2.6 or greater required)
    http://www.python.org/
  Qt >= 4.4 (free edition)
-   http://www.trolltech.com/products/qt/  
+   http://www.trolltech.com/products/qt/
  PyQt >= 4.3 (SIP is required to be installed first)
    http://www.riverbankcomputing.co.uk/software/pyqt/
    http://www.riverbankcomputing.co.uk/software/sip/
@@ -101,6 +111,10 @@
  SAMPy (optional for SAMP support)
    http://pypi.python.org/pypi/sampy/
 
+Veusz is Copyright (C) 2003-2013 Jeremy Sanders
+<[email protected]> and contributors. It is licenced under the
+GPL (version 2 or greater).
+
 For documentation on using Veusz, see the "Documents" directory. The
 manual is in PDF, HTML and text format (generated from docbook). The
 examples are also useful documentation. Please also see and contribute
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/veusz-1.17/VERSION new/veusz-1.17.1/VERSION
--- old/veusz-1.17/VERSION      2013-03-23 10:08:54.000000000 +0100
+++ new/veusz-1.17.1/VERSION    2013-04-07 14:28:39.000000000 +0200
@@ -1 +1 @@
-1.17
+1.17.1
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/veusz-1.17/dialogs/exceptiondialog.py 
new/veusz-1.17.1/dialogs/exceptiondialog.py
--- old/veusz-1.17/dialogs/exceptiondialog.py   2013-03-23 10:08:54.000000000 
+0100
+++ new/veusz-1.17.1/dialogs/exceptiondialog.py 2013-04-07 14:28:39.000000000 
+0200
@@ -148,8 +148,12 @@
             if key == 'self' and value not in alreadyself:
                 alreadyself.add(value)
                 for attr in sorted( dir(value) ):
+                    v = getattr(value, attr)
+                    if hasattr(v, '__call__'):
+                        # skip callables, to cut down output
+                        continue
                     try:
-                        sv = repr( getattr(value, attr) )
+                        sv = repr(v)
                     except:
                         sv = '<???>'
                     if len(sv) > 128:
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/veusz-1.17/document/__init__.py 
new/veusz-1.17.1/document/__init__.py
--- old/veusz-1.17/document/__init__.py 2013-03-23 10:08:54.000000000 +0100
+++ new/veusz-1.17.1/document/__init__.py       2013-04-07 14:28:39.000000000 
+0200
@@ -29,6 +29,6 @@
 from mime import *
 from dataset_histo import *
 from painthelper import *
-from export import Export
+from export import Export, printDialog
 from dbusinterface import *
 from importparams import *
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/veusz-1.17/document/commandinterface.py 
new/veusz-1.17.1/document/commandinterface.py
--- old/veusz-1.17/document/commandinterface.py 2013-03-23 10:08:54.000000000 
+0100
+++ new/veusz-1.17.1/document/commandinterface.py       2013-04-07 
14:28:39.000000000 +0200
@@ -875,12 +875,7 @@
 
     def Print(self):
         """Print document."""
-        p = qt4.QPrinter()
-
-        if p.setup():
-            p.newPage()
-            self.document.printTo( p,
-                                   range(self.document.getNumberPages()) )
+        export.printDialog(None, self.document)
             
     def Export(self, filename, color=True, page=0, dpi=100,
                antialias=True, quality=85, backcolor='#ffffff00',
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/veusz-1.17/document/doc.py 
new/veusz-1.17.1/document/doc.py
--- old/veusz-1.17/document/doc.py      2013-03-23 10:08:54.000000000 +0100
+++ new/veusz-1.17.1/document/doc.py    2013-04-07 14:28:39.000000000 +0200
@@ -407,24 +407,23 @@
         """Print onto printing device."""
 
         dpi = (printer.logicalDpiX(), printer.logicalDpiY())
-        painter = qt4.QPainter(printer)
+        painter = painthelper.DirectPainter(printer)
         if antialias:
             painter.setRenderHint(qt4.QPainter.Antialiasing, True)
             painter.setRenderHint(qt4.QPainter.TextAntialiasing, True)
    
-        # This all assumes that only pages can go into the root widget
-        num = len(pages)
-        for count, page in enumerate(pages):
-            size = self.pageSize(page, dpi=dpi)
-            helper = painthelper.PaintHelper(size, dpi=dpi, 
directpaint=painter)
-            self.paintTo(helper, page)
-            painter.restore()
+        with painter:
+            # This all assumes that only pages can go into the root widget
+            for count, page in enumerate(pages):
+                painter.save()
+                size = self.pageSize(page, dpi=dpi)
+                helper = painthelper.PaintHelper(size, dpi=dpi, 
directpaint=painter)
+                self.paintTo(helper, page)
+                painter.restore()
 
-            # start new pages between each page
-            if count < num-1:
-                printer.newPage()
-
-        painter.end()
+                # start new pages between each page
+                if count < len(pages)-1:
+                    printer.newPage()
 
     def paintTo(self, painthelper, page):
         """Paint page specified to the paint helper."""
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/veusz-1.17/document/export.py 
new/veusz-1.17.1/document/export.py
--- old/veusz-1.17/document/export.py   2013-03-23 10:08:54.000000000 +0100
+++ new/veusz-1.17.1/document/export.py 2013-04-07 14:28:39.000000000 +0200
@@ -307,3 +307,44 @@
         painter = painthelper.DirectPainter(paintdev)
         self.renderPage(size, (dpi,dpi), painter)
         paintdev.paintEngine().saveFile(self.filename)
+
+def printDialog(parentwindow, document, filename=None):
+    """Open a print dialog and print document."""
+
+    if document.getNumberPages() == 0:
+        qt4.QMessageBox.warning(parentwindow, _("Error - Veusz"),
+                                _("No pages to print"))
+        return
+
+    prnt = qt4.QPrinter(qt4.QPrinter.HighResolution)
+    prnt.setColorMode(qt4.QPrinter.Color)
+    prnt.setCreator(_('Veusz %s') % utils.version())
+    if filename:
+        prnt.setDocName(filename)
+
+    dialog = qt4.QPrintDialog(prnt, parentwindow)
+    dialog.setMinMax(1, document.getNumberPages())
+    if dialog.exec_():
+        # get page range
+        if dialog.printRange() == qt4.QAbstractPrintDialog.PageRange:
+            # page range
+            minval, maxval = dialog.fromPage(), dialog.toPage()
+        else:
+            # all pages
+            minval, maxval = 1, document.getNumberPages()
+
+        # pages are relative to zero
+        minval -= 1
+        maxval -= 1
+
+        # reverse or forward order
+        if prnt.pageOrder() == qt4.QPrinter.FirstPageFirst:
+            pages = range(minval, maxval+1)
+        else:
+            pages = range(maxval, minval-1, -1)
+
+        # if more copies are requested
+        pages *= prnt.numCopies()
+
+        # do the printing
+        document.printTo( prnt, pages )
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/veusz-1.17/setting/collections.py 
new/veusz-1.17.1/setting/collections.py
--- old/veusz-1.17/setting/collections.py       2013-03-23 10:08:54.000000000 
+0100
+++ new/veusz-1.17.1/setting/collections.py     2013-04-07 14:28:39.000000000 
+0200
@@ -343,3 +343,27 @@
                                     descr=_('Horizontal position of label'),
                                     usertext=_('Horz position'),
                                     formatting=True), 0 )
+
+class MarkerColor(Settings):
+    """Settings for a coloring points using data values."""
+
+    def __init__(self, name):
+        Settings.__init__(self, name, setnsmode='groupedsetting')
+        self.add( setting.DatasetOrFloatList(
+                'points', '',
+                descr = _('Use color value (0-1) in dataset to paint points'),
+                usertext=_('Color markers')), 7 )
+        self.add( setting.Float(
+                'min', 0.,
+                descr = _('Minimum value of color dataset'),
+                usertext = _('Min val') ))
+        self.add( setting.Float(
+                'max', 1.,
+                descr = _('Maximum value of color dataset'),
+                usertext = _('Max val') ))
+        self.add( setting.Choice(
+                'scaling',
+                ['linear', 'sqrt', 'log', 'squared'],
+                'linear',
+                descr = _('Scaling to transform numbers to color'),
+                usertext=_('Scaling')))
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/veusz-1.17/tests/comparison/inside.vsz.selftest 
new/veusz-1.17.1/tests/comparison/inside.vsz.selftest
--- old/veusz-1.17/tests/comparison/inside.vsz.selftest 2013-03-23 
10:08:54.000000000 +0100
+++ new/veusz-1.17.1/tests/comparison/inside.vsz.selftest       2013-04-07 
14:28:39.000000000 +0200
@@ -279,22 +279,6 @@
 <text x="395.2" y="476.5" font-size="14pt" fill="#000000">150</text>
 <text x="505.2" y="476.5" font-size="14pt" fill="#000000">200</text>
 </g>
-<g fill="none" stroke-linecap="butt" stroke-width="0.6">
-<path d="M81.4,159.4l131.1,0"/>
-<path 
d="M81.4,159.4l0,-3.7M88,159.4l0,-3.7M94.6,159.4l0,-3.7M101.1,159.4l0,-3.7M107.7,159.4l0,-3.7M114.2,159.4l0,-3.7M120.8,159.4l0,-3.7M127.3,159.4l0,-3.7M133.9,159.4l0,-3.7M140.4,159.4l0,-3.7M147,159.4l0,-3.7M153.6,159.4l0,-3.7M160.1,159.4l0,-3.7M166.7,159.4l0,-3.7M173.2,159.4l0,-3.7M179.8,159.4l0,-3.7M186.3,159.4l0,-3.7M192.9,159.4l0,-3.7M199.4,159.4l0,-3.7M206,159.4l0,-3.7M212.5,159.4l0,-3.7"/>
-<path 
d="M81.4,159.4l0,-7.5M107.7,159.4l0,-7.5M133.9,159.4l0,-7.5M160.1,159.4l0,-7.5M186.3,159.4l0,-7.5M212.5,159.4l0,-7.5"/>
-<path d="M81.4,17.7l131.1,0"/>
-<path 
d="M81.4,17.7l0,3.7M88,17.7l0,3.7M94.6,17.7l0,3.7M101.1,17.7l0,3.7M107.7,17.7l0,3.7M114.2,17.7l0,3.7M120.8,17.7l0,3.7M127.3,17.7l0,3.7M133.9,17.7l0,3.7M140.4,17.7l0,3.7M147,17.7l0,3.7M153.6,17.7l0,3.7M160.1,17.7l0,3.7M166.7,17.7l0,3.7M173.2,17.7l0,3.7M179.8,17.7l0,3.7M186.3,17.7l0,3.7M192.9,17.7l0,3.7M199.4,17.7l0,3.7M206,17.7l0,3.7M212.5,17.7l0,3.7"/>
-<path 
d="M81.4,17.7l0,7.5M107.7,17.7l0,7.5M133.9,17.7l0,7.5M160.1,17.7l0,7.5M186.3,17.7l0,7.5M212.5,17.7l0,7.5"/>
-</g>
-<g fill="none" stroke-width="1">
-<text x="77.1" y="164.6" font-size="14pt" fill="#000000">0</text>
-<text x="103.3" y="164.6" font-size="14pt" fill="#000000">2</text>
-<text x="129.5" y="164.6" font-size="14pt" fill="#000000">4</text>
-<text x="155.7" y="164.6" font-size="14pt" fill="#000000">6</text>
-<text x="182" y="164.6" font-size="14pt" fill="#000000">8</text>
-<text x="203.8" y="164.6" font-size="14pt" fill="#000000">10</text>
-</g>
 <g fill="#ffffc0" stroke-width="0.6">
 <path d="m81.4,17.7l131.1,0l0,70.8l-131.1,0l0,-70.8"/>
 </g>
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/veusz-1.17/tests/comparison/profile.vsz.selftest 
new/veusz-1.17.1/tests/comparison/profile.vsz.selftest
--- old/veusz-1.17/tests/comparison/profile.vsz.selftest        2013-03-23 
10:08:54.000000000 +0100
+++ new/veusz-1.17.1/tests/comparison/profile.vsz.selftest      2013-04-07 
14:28:39.000000000 +0200
@@ -27,20 +27,6 @@
 </defs>
 <g stroke-linejoin="bevel" stroke-linecap="square" stroke="#000000" 
fill-rule="evenodd">
 <g clip-path="url(#c0)">
-<g fill="none" stroke-linecap="butt" stroke-width="0.6">
-<path d="M64.8,374.5l435.8,0"/>
-<path 
d="M64.8,374.5l0,-3.7M74.7,374.5l0,-3.7M141.9,374.5l0,-3.7M176,374.5l0,-3.7M200.3,374.5l0,-3.7M219,374.5l0,-3.7M234.4,374.5l0,-3.7M247.4,374.5l0,-3.7M258.6,374.5l0,-3.7M268.5,374.5l0,-3.7M335.7,374.5l0,-3.7M369.8,374.5l0,-3.7M394.1,374.5l0,-3.7M412.8,374.5l0,-3.7M428.2,374.5l0,-3.7M441.2,374.5l0,-3.7M452.4,374.5l0,-3.7M462.3,374.5l0,-3.7"/>
-<path d="M83.6,374.5l0,-7.5M277.4,374.5l0,-7.5M471.2,374.5l0,-7.5"/>
-<path d="M64.8,0l435.8,0"/>
-<path 
d="M64.8,0l0,3.7M74.7,0l0,3.7M141.9,0l0,3.7M176,0l0,3.7M200.3,0l0,3.7M219,0l0,3.7M234.4,0l0,3.7M247.4,0l0,3.7M258.6,0l0,3.7M268.5,0l0,3.7M335.7,0l0,3.7M369.8,0l0,3.7M394.1,0l0,3.7M412.8,0l0,3.7M428.2,0l0,3.7M441.2,0l0,3.7M452.4,0l0,3.7M462.3,0l0,3.7"/>
-<path d="M83.6,0l0,7.5M277.4,0l0,7.5M471.2,0l0,7.5"/>
-</g>
-<g fill="none" stroke-width="1">
-<text x="230.2" y="416.3" font-size="14pt" fill="#000000">Radius (kpc)</text>
-<text x="74.8" y="379.7" font-size="14pt" fill="#000000">10</text>
-<text x="264.2" y="379.7" font-size="14pt" fill="#000000">100</text>
-<text x="453.7" y="379.7" font-size="14pt" fill="#000000">1000</text>
-</g>
 <g fill="#ffffff" stroke-width="0.6">
 <path d="m64.8,7l435.8,0l0,180.1l-435.8,0l0,-180.1"/>
 </g>
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/veusz-1.17/tests/comparison/stackedxy.vsz.selftest 
new/veusz-1.17.1/tests/comparison/stackedxy.vsz.selftest
--- old/veusz-1.17/tests/comparison/stackedxy.vsz.selftest      2013-03-23 
10:08:54.000000000 +0100
+++ new/veusz-1.17.1/tests/comparison/stackedxy.vsz.selftest    2013-04-07 
14:28:39.000000000 +0200
@@ -21,22 +21,6 @@
 </defs>
 <g stroke-linejoin="bevel" stroke-linecap="square" stroke="#000000" 
fill-rule="evenodd">
 <g clip-path="url(#c0)">
-<g fill="none" stroke-linecap="butt" stroke-width="0.6">
-<path d="M60.2,471.2l464.1,0"/>
-<path 
d="M60.2,471.2l0,-3.7M83.4,471.2l0,-3.7M106.6,471.2l0,-3.7M129.8,471.2l0,-3.7M153,471.2l0,-3.7M176.2,471.2l0,-3.7M199.4,471.2l0,-3.7M222.6,471.2l0,-3.7M245.9,471.2l0,-3.7M269.1,471.2l0,-3.7M292.3,471.2l0,-3.7M315.5,471.2l0,-3.7M338.7,471.2l0,-3.7M361.9,471.2l0,-3.7M385.1,471.2l0,-3.7M408.3,471.2l0,-3.7M431.5,471.2l0,-3.7M454.7,471.2l0,-3.7M477.9,471.2l0,-3.7M501.2,471.2l0,-3.7M524.4,471.2l0,-3.7"/>
-<path 
d="M60.2,471.2l0,-7.5M176.2,471.2l0,-7.5M292.3,471.2l0,-7.5M408.3,471.2l0,-7.5M524.4,471.2l0,-7.5"/>
-<path d="M60.2,7l464.1,0"/>
-<path 
d="M60.2,7l0,3.7M83.4,7l0,3.7M106.6,7l0,3.7M129.8,7l0,3.7M153,7l0,3.7M176.2,7l0,3.7M199.4,7l0,3.7M222.6,7l0,3.7M245.9,7l0,3.7M269.1,7l0,3.7M292.3,7l0,3.7M315.5,7l0,3.7M338.7,7l0,3.7M361.9,7l0,3.7M385.1,7l0,3.7M408.3,7l0,3.7M431.5,7l0,3.7M454.7,7l0,3.7M477.9,7l0,3.7M501.2,7l0,3.7M524.4,7l0,3.7"/>
-<path 
d="M60.2,7l0,7.5M176.2,7l0,7.5M292.3,7l0,7.5M408.3,7l0,7.5M524.4,7l0,7.5"/>
-</g>
-<g fill="none" stroke-width="1">
-<text x="231" y="485.2" font-size="14pt" fill="#000000">Traffic police</text>
-<text x="55.8" y="476.5" font-size="14pt" fill="#000000">0</text>
-<text x="171.8" y="476.5" font-size="14pt" fill="#000000">5</text>
-<text x="283.5" y="476.5" font-size="14pt" fill="#000000">10</text>
-<text x="399.6" y="476.5" font-size="14pt" fill="#000000">15</text>
-<text x="513.9" y="476.5" font-size="14pt" fill="#000000">20</text>
-</g>
 <g fill="#ffffff" stroke-width="0.6">
 <path d="m60.2,7l464.1,0l0,154.7l-464.1,0l0,-154.7"/>
 </g>
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/veusz-1.17/utils/colormap.py 
new/veusz-1.17.1/utils/colormap.py
--- old/veusz-1.17/utils/colormap.py    2013-03-23 10:08:54.000000000 +0100
+++ new/veusz-1.17.1/utils/colormap.py  2013-04-07 14:28:39.000000000 +0200
@@ -224,4 +224,4 @@
     img = applyColorMap(cmap, colorscaling, vals,
                         minval, maxval, transparency)
 
-    return (minval, maxval, coloraxisscale, img)
+    return img
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/veusz-1.17/veusz_main.py 
new/veusz-1.17.1/veusz_main.py
--- old/veusz-1.17/veusz_main.py        2013-03-23 10:08:54.000000000 +0100
+++ new/veusz-1.17.1/veusz_main.py      2013-04-07 14:28:39.000000000 +0200
@@ -217,6 +217,7 @@
                     'output files')
             export(options.export, args)
             qt4.qApp.quit()
+            sys.exit(0)
         else:
             # standard start main window
             mainwindow(args)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/veusz-1.17/widgets/colorbar.py 
new/veusz-1.17.1/widgets/colorbar.py
--- old/veusz-1.17/widgets/colorbar.py  2013-03-23 10:08:54.000000000 +0100
+++ new/veusz-1.17.1/widgets/colorbar.py        2013-04-07 14:28:39.000000000 
+0200
@@ -30,6 +30,7 @@
 import grid
 import widget
 import axis
+import nonorthgraph
 
 def _(text, disambiguation=None, context='ColorBar'):
     """Translate text."""
@@ -43,7 +44,7 @@
     """
 
     typename='colorbar'
-    allowedparenttypes = [graph.Graph, grid.Grid]
+    allowedparenttypes = [graph.Graph, grid.Grid, nonorthgraph.NonOrthGraph]
     allowusercreation = True
     description = _('Image color bar')
 
@@ -61,7 +62,7 @@
 
         s.add( setting.WidgetChoice('widgetName', '',
                                     descr=_('Corresponding widget'),
-                                    widgettypes=('image', 'xy'),
+                                    widgettypes=('image', 'xy', 
'nonorthpoint'),
                                     usertext = _('Widget')), 0 )
 
         s.get('log').readonly = True
@@ -186,9 +187,14 @@
 
         # update image if necessary with new settings
         if imgwidget is not None:
-            # could find widget
-            (minval, maxval,
-             axisscale, img) = imgwidget.makeColorbarImage(s.direction)
+            minval, maxval, axisscale, cmapname, trans, invert = \
+                imgwidget.getColorbarParameters()
+
+            cmap = self.document.getColormap(cmapname, invert)
+
+            img = utils.makeColorbarImage(
+                minval, maxval, axisscale, cmap, trans,
+                direction=s.direction)
         else:
             # couldn't find widget
             minval, maxval, axisscale = 0., 1., 'linear'
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/veusz-1.17/widgets/grid.py 
new/veusz-1.17.1/widgets/grid.py
--- old/veusz-1.17/widgets/grid.py      2013-03-23 10:08:54.000000000 +0100
+++ new/veusz-1.17.1/widgets/grid.py    2013-04-07 14:28:39.000000000 +0200
@@ -366,7 +366,7 @@
 
         with painter:
             for child in self.children:
-                if not hasattr(child.typename, 'isaxis'):
+                if not hasattr(child, 'isaxis'):
                     self._drawChild(phelper, child, bounds, parentposn)
 
         # do not call widget.Widget.draw, do not collect 200 pounds
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/veusz-1.17/widgets/image.py 
new/veusz-1.17.1/widgets/image.py
--- old/veusz-1.17/widgets/image.py     2013-03-23 10:08:54.000000000 +0100
+++ new/veusz-1.17.1/widgets/image.py   2013-04-07 14:28:39.000000000 +0200
@@ -227,30 +227,15 @@
         # return new image coordinates and image
         return pltx, plty, newimage
 
-    def makeColorbarImage(self, direction='horz'):
-        """Make a QImage colorbar for the current plot.
-
-        direction is 'horizontal' or 'vertical' to draw horizontal or
-          vertical bars
-
-        Returns a tuple (minval, maxval, scale, qimage)
-
-        minval is the minimum value which should be plotted on the axis
-        maxval is the maximum "                                       "
-        scale is 'linear' or 'log', depending on how numbers should be scaled
-        qimage is a QImage of 1 x barsize
-        """
+    def getColorbarParameters(self):
+        """Return parameters for colorbar."""
 
         self.recomputeInternals()
         minval, maxval = self.cacheddatarange
         s = self.settings
 
-        # get colormap
-        cmap = self.document.getColormap(s.colorMap, s.colorInvert)
-
-        return utils.makeColorbarImage(
-            minval, maxval, s.colorScaling, cmap, s.transparency,
-            direction=direction)
+        return (minval, maxval, s.colorScaling, s.colorMap,
+                s.transparency, s.colorInvert)
 
     def recomputeInternals(self):
         """Recompute the internals if required.
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/veusz-1.17/widgets/nonorthgraph.py 
new/veusz-1.17.1/widgets/nonorthgraph.py
--- old/veusz-1.17/widgets/nonorthgraph.py      2013-03-23 10:08:54.000000000 
+0100
+++ new/veusz-1.17.1/widgets/nonorthgraph.py    2013-04-07 14:28:39.000000000 
+0200
@@ -98,19 +98,30 @@
         '''
     
     def drawGraph(self, painter, bounds, datarange, outerbounds=None):
-        '''Plot graph area.'''
+        '''Plot graph area.
+        datarange is  [mina, maxa, minb, maxb] or None
+        '''
 
     def drawAxes(self, painter, bounds, datarange, outerbounds=None):
-        '''Plot axes.'''
+        '''Plot axes.
+        datarange is  [mina, maxa, minb, maxb] or None
+        '''
 
     def setClip(self, painter, bounds):
         '''Set clipping for graph.'''
 
     def getDataRange(self):
-        """Get automatic data range."""
+        """Get automatic data range. Return None if no data."""
+
         drange = [1e199, -1e199, 1e199, -1e199]
         for c in self.children:
-            c.updateDataRanges(drange)
+            if hasattr(c, 'updateDataRanges'):
+                c.updateDataRanges(drange)
+
+        # no data
+        if drange[0] > drange[1] or drange[2] > drange[3]:
+            drange = None
+
         return drange
 
     def getMargins(self, painthelper):
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/veusz-1.17/widgets/nonorthpoint.py 
new/veusz-1.17.1/widgets/nonorthpoint.py
--- old/veusz-1.17/widgets/nonorthpoint.py      2013-03-23 10:08:54.000000000 
+0100
+++ new/veusz-1.17.1/widgets/nonorthpoint.py    2013-04-07 14:28:39.000000000 
+0200
@@ -65,14 +65,15 @@
                 'data2', 'y',
                 descr=_('Dataset containing 2nd dataset or list of values'),
                 usertext=_('Dataset 2')) )
+        s.add( setting.DatasetOrStr('labels', '',
+                                    descr=_('Dataset or string to label 
points'),
+                                    usertext=_('Labels'), datatype='text') )
         s.add( setting.DatasetOrFloatList(
                 'scalePoints', '',
                 descr = _('Scale size of plotted markers by this dataset or'
                           ' list of values'),
                 usertext=_('Scale markers')) )
-        s.add( setting.DatasetOrStr('labels', '',
-                                    descr=_('Dataset or string to label 
points'),
-                                    usertext=_('Labels'), datatype='text') )
+        s.add( setting.MarkerColor('Color') )
 
         s.add( setting.DistancePt('markerSize',
                                   '3pt',
@@ -129,16 +130,6 @@
                 lambda v1, v2: self.parent.graphToPlotCoords(v1, v2))
         return p.pickIndex(oldindex, direction, bounds)
 
-    def plotMarkers(self, painter, plta, pltb, scaling, markersize, clip):
-        '''Draw markers in widget.'''
-        s = self.settings
-        if not s.MarkerLine.hide or not s.MarkerFill.hide:
-            painter.setBrush( s.MarkerFill.makeQBrushWHide() )
-            painter.setPen( s.MarkerLine.makeQPenWHide(painter) )
-
-            utils.plotMarkers(painter, plta, pltb, s.marker, markersize,
-                              scaling=scaling, clip=clip)
-
     def drawLabels(self, painter, xplotter, yplotter,
                    textvals, markersize):
         """Draw labels for the points.
@@ -170,6 +161,13 @@
             utils.Renderer( painter, font, x, y, t,
                             alignhorz, alignvert, angle ).render()
 
+    def getColorbarParameters(self):
+        """Return parameters for colorbar."""
+        s = self.settings
+        c = s.Color
+        return (c.min, c.max, c.scaling, s.MarkerFill.colorMap, 0,
+                s.MarkerFill.colorMapInvert)
+
     def draw(self, parentposn, phelper, outerbounds=None):
         '''Plot the data on a plotter.'''
 
@@ -184,6 +182,7 @@
         d1 = s.get('data1').getData(d)
         d2 = s.get('data2').getData(d)
         dscale = s.get('scalePoints').getData(d)
+        colorpoints = s.Color.get('points').getData(d)
         text = s.get('labels').getData(d, checknull=True)
         if not d1 or not d2:
             return
@@ -195,8 +194,8 @@
             self.parent.setClip(painter, posn)
 
             # split parts separated by NaNs
-            for v1, v2, scalings, textitems in 
document.generateValidDatasetParts(
-                d1, d2, dscale, text):
+            for v1, v2, scalings, cvals, textitems in 
document.generateValidDatasetParts(
+                d1, d2, dscale, colorpoints, text):
                 # convert data (chopping down length)
                 v1d, v2d = v1.data, v2.data
                 minlen = min(v1d.shape[0], v2d.shape[0])
@@ -218,12 +217,28 @@
                     utils.addNumpyToPolygonF(pts, px, py)
                     utils.plotClippedPolyline(painter, cliprect, pts)
 
-                # markers
+                # plot markers
                 markersize = s.get('markerSize').convert(painter)
-                pscale = None
-                if scalings:
-                    pscale = scalings.data
-                self.plotMarkers(painter, px, py, pscale, markersize, cliprect)
+                if not s.MarkerLine.hide or not s.MarkerFill.hide:
+                    pscale = colorvals = cmap = None
+
+                    if scalings:
+                        pscale = scalings.data
+
+                    # color point individually
+                    if cvals and not s.MarkerFill.hide:
+                        colorvals = utils.applyScaling(
+                            cvals.data, s.Color.scaling,
+                            s.Color.min, s.Color.max)
+                        cmap = self.document.getColormap(
+                            s.MarkerFill.colorMap, s.MarkerFill.colorMapInvert)
+
+                    painter.setBrush(s.MarkerFill.makeQBrushWHide())
+                    painter.setPen(s.MarkerLine.makeQPenWHide(painter))
+
+                    utils.plotMarkers(painter, px, py, s.marker, markersize,
+                                      scaling=pscale, clip=cliprect,
+                                      cmap=cmap, colorvals=colorvals)
 
                 # finally plot any labels
                 if textitems and not s.Label.hide:
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/veusz-1.17/widgets/point.py 
new/veusz-1.17.1/widgets/point.py
--- old/veusz-1.17/widgets/point.py     2013-03-23 10:08:54.000000000 +0100
+++ new/veusz-1.17.1/widgets/point.py   2013-04-07 14:28:39.000000000 +0200
@@ -244,30 +244,6 @@
                 usertext = _('Invert map'),
                 formatting=True) )
 
-class ColorSettings(setting.Settings):
-    """Settings for a coloring points using data values."""
-
-    def __init__(self, name):
-        setting.Settings.__init__(self, name, setnsmode='groupedsetting')
-        self.add( setting.DatasetOrFloatList(
-                'points', '',
-                descr = _('Use color value (0-1) in dataset to paint points'),
-                usertext=_('Color markers')), 7 )
-        self.add( setting.Float(
-                'min', 0.,
-                descr = _('Minimum value of color dataset'),
-                usertext = _('Min val') ))
-        self.add( setting.Float(
-                'max', 1.,
-                descr = _('Maximum value of color dataset'),
-                usertext = _('Max val') ))
-        self.add( setting.Choice(
-                'scaling',
-                ['linear', 'sqrt', 'log', 'squared'],
-                'linear',
-                descr = _('Scaling to transform numbers to color'),
-                usertext=_('Scaling')))
-
 class PointPlotter(GenericPlotter):
     """A class for plotting points and their errors."""
 
@@ -312,7 +288,7 @@
                           ' list of values'),
                 usertext=_('Scale markers')), 6 )
 
-        s.add( ColorSettings('Color') )
+        s.add( setting.MarkerColor('Color') )
 
         s.add( setting.DatasetOrFloatList(
                 'yData', 'y',
@@ -689,17 +665,12 @@
     def pickIndex(self, oldindex, direction, bounds):
         return self._pickable(bounds).pickIndex(oldindex, direction, bounds)
 
-    def makeColorbarImage(self, direction='horz'):
-        """Make a QImage colorbar for the current plot."""
-
+    def getColorbarParameters(self):
+        """Return parameters for colorbar."""
         s = self.settings
         c = s.Color
-        cmap = self.document.getColormap(
-            s.MarkerFill.colorMap, s.MarkerFill.colorMapInvert)
-
-        return utils.makeColorbarImage(
-            c.min, c.max, c.scaling, cmap, 0,
-            direction=direction)
+        return (c.min, c.max, c.scaling, s.MarkerFill.colorMap, 0,
+                s.MarkerFill.colorMapInvert)
 
     def dataDraw(self, painter, axes, posn, cliprect):
         """Plot the data on a plotter."""
@@ -801,7 +772,7 @@
                         scaling = scaling[::s.thinfactor]
 
                 # color point individually
-                if cvals:
+                if cvals and not s.MarkerFill.hide:
                     colorvals = utils.applyScaling(
                         cvals.data, s.Color.scaling,
                         s.Color.min, s.Color.max)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/veusz-1.17/widgets/polar.py 
new/veusz-1.17.1/widgets/polar.py
--- old/veusz-1.17/widgets/polar.py     2013-03-23 10:08:54.000000000 +0100
+++ new/veusz-1.17.1/widgets/polar.py   2013-04-07 14:28:39.000000000 +0200
@@ -200,10 +200,15 @@
         '''Plot graph area and axes.'''
 
         s = self.settings
+
+        if datarange is None:
+            datarange = [0., 1., 0., 1.]
+
         if s.maxradius == 'Auto':
             self._maxradius = datarange[1]
         else:
             self._maxradius = s.maxradius
+
         if s.minradius == 'Auto':
             if s.log:
                 if datarange[0] > 0.:
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/veusz-1.17/windows/mainwindow.py 
new/veusz-1.17.1/windows/mainwindow.py
--- old/veusz-1.17/windows/mainwindow.py        2013-03-23 10:08:54.000000000 
+0100
+++ new/veusz-1.17.1/windows/mainwindow.py      2013-04-07 14:28:39.000000000 
+0200
@@ -1272,43 +1272,7 @@
 
     def slotFilePrint(self):
         """Print the document."""
-
-        if self.document.getNumberPages() == 0:
-            qt4.QMessageBox.warning(self, _("Error - Veusz"),
-                                    _("No pages to print"))
-            return
-
-        prnt = qt4.QPrinter(qt4.QPrinter.HighResolution)
-        prnt.setColorMode(qt4.QPrinter.Color)
-        prnt.setCreator(_('Veusz %s') % utils.version())
-        prnt.setDocName(self.filename)
-
-        dialog = qt4.QPrintDialog(prnt, self)
-        dialog.setMinMax(1, self.document.getNumberPages())
-        if dialog.exec_():
-            # get page range
-            if dialog.printRange() == qt4.QAbstractPrintDialog.PageRange:
-                # page range
-                minval, maxval = dialog.fromPage(), dialog.toPage()
-            else:
-                # all pages
-                minval, maxval = 1, self.document.getNumberPages()
-
-            # pages are relative to zero
-            minval -= 1
-            maxval -= 1
-
-            # reverse or forward order
-            if prnt.pageOrder() == qt4.QPrinter.FirstPageFirst:
-                pages = range(minval, maxval+1)
-            else:
-                pages = range(maxval, minval-1, -1)
-
-            # if more copies are requested
-            pages *= prnt.numCopies()
-
-            # do the printing
-            self.document.printTo( prnt, pages )
+        document.printDialog(self, self.document, filename=self.filename)
 
     def slotModifiedDoc(self, ismodified):
         """Disable certain actions if document is not modified."""


-- 
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to