[guiqwt] 01/03: Imported Upstream version 3.0.0~b5

Frédéric-Emmanuel Picca picca at moszumanska.debian.org
Sun Oct 4 07:17:59 UTC 2015


This is an automated email from the git hooks/post-receive script.

picca pushed a commit to branch master
in repository guiqwt.

commit 8423ebf186b7d26ec39dde2b854b58910b61426c
Author: Picca Frédéric-Emmanuel <picca at debian.org>
Date:   Sun Oct 4 08:46:05 2015 +0200

    Imported Upstream version 3.0.0~b5
---
 PKG-INFO                                 |   2 +-
 README                                   |   7 +-
 changelog                                |   7 +-
 doc/conf.py                              |   4 +-
 doc/development.rst                      |  83 +++++++++++++++---
 doc/disthelpers.rst                      |  58 +++----------
 doc/examples.rst                         |   2 +
 doc/images/curve_widgets.png             | Bin 34387 -> 32373 bytes
 doc/images/image_widgets.png             | Bin 50678 -> 49787 bytes
 doc/images/screenshots/simple_dialog.png | Bin 47500 -> 47500 bytes
 doc/index.rst                            |   2 +-
 doc/installation.rst                     |  16 ++--
 doc/overview.rst                         |  10 +--
 doc/reference.rst                        |  40 ---------
 doc/reference/annotations.rst            |   1 +
 doc/reference/baseplot.rst               |   1 +
 doc/reference/builder.rst                |   1 +
 doc/reference/cross_section.rst          |   1 +
 doc/reference/curve.rst                  |   1 +
 doc/reference/histogram.rst              |   1 +
 doc/reference/image.rst                  |   1 +
 doc/reference/index.rst                  |  27 ++++++
 doc/reference/io.rst                     |   1 +
 doc/reference/label.rst                  |   1 +
 doc/reference/panels.rst                 |   1 +
 doc/reference/plot.rst                   |   1 +
 doc/reference/pyplot.rst                 |   1 +
 doc/reference/shapes.rst                 |   1 +
 doc/reference/signals.rst                |   1 +
 doc/reference/styles.rst                 |   1 +
 doc/reference/tools.rst                  |   1 +
 doc/reference/widgets_fit.rst            |   1 +
 doc/reference/widgets_resizedialog.rst   |   1 +
 doc/reference/widgets_rotatecrop.rst     |   1 +
 guiqwt.egg-info/PKG-INFO                 |   2 +-
 guiqwt.egg-info/SOURCES.txt              |  23 ++++-
 guiqwt/__init__.py                       |   8 +-
 guiqwt/annotations.py                    |   3 +
 guiqwt/baseplot.py                       |  50 ++++++-----
 guiqwt/builder.py                        | 141 ++++++++++++++++++-------------
 guiqwt/config.py                         |   2 -
 guiqwt/cross_section.py                  |   2 +-
 guiqwt/curve.py                          |  25 ++++--
 guiqwt/events.py                         |  14 +++
 guiqwt/histogram.py                      |  27 ++++--
 guiqwt/image.py                          |  89 +++++++++++++------
 guiqwt/panels.py                         |  21 +++--
 guiqwt/plot.py                           | 105 +++++++++++++++--------
 guiqwt/pyplot.py                         | 128 ++++++++++++++--------------
 guiqwt/shapes.py                         |   3 +
 guiqwt/signals.py                        |  14 ++-
 guiqwt/styles.py                         |   7 +-
 guiqwt/tests/qtdesigner.ui               |   4 +-
 guiqwt/tools.py                          |  15 +++-
 guiqwt/transitional.py                   |   4 -
 guiqwt/widgets/fit.py                    |   4 +-
 py2exe_example/create_exe.py             |  22 -----
 py2exe_example/simpledialog.pyw          |  27 ------
 setup.cfg                                |   2 +-
 src/pcolor.cpp                           |   2 +-
 src/scaler.cpp                           |   2 +-
 61 files changed, 594 insertions(+), 429 deletions(-)

diff --git a/PKG-INFO b/PKG-INFO
index fedc9d8..9229a54 100644
--- a/PKG-INFO
+++ b/PKG-INFO
@@ -1,6 +1,6 @@
 Metadata-Version: 1.1
 Name: guiqwt
-Version: 2.4.0b4
+Version: 3.0.0b5
 Summary: guiqwt is a set of tools for curve and image plotting (extension to `qwt`)
 Home-page: https://github.com/PierreRaybaut/guiqwt
 Author: Pierre Raybaut
diff --git a/README b/README
index c82537f..d314735 100644
--- a/README
+++ b/README
@@ -8,14 +8,15 @@ Licensed under the terms of the CECILL License (see Licence_CeCILL_V2-en.txt)
 
     Overview
 
-	Based on qwt (a pure Python/PyQt reimplementation of the curve 
+	Based on `python-qwt` (a pure Python/PyQt reimplementation of the curve 
       plotting Qwt C++ library, included in guiqwt base source code)
 	and on the scientific modules NumPy and SciPy, guiqwt is a Python 
 	library providing efficient 2D data-plotting features (curve/image 
 	visualization and related tools) for interactive computing and 
 	signal/image processing application development.
 	
-	Extension to `qwt`:
+	Extension to `python-qwt`:
+
 	  * set of tools for curve and image plotting
 	  * GUI-based application development helpers
 
@@ -24,7 +25,7 @@ Licensed under the terms of the CECILL License (see Licence_CeCILL_V2-en.txt)
         Requirements
             Python 2.6+ or Python 3
             PyQt4 4.3+ or PyQt5 5.5+
-            qwt 6.1+ (pure Python reimplementation of Qwt6 C++ library)
+            qwt 0.1+ (pure Python reimplementation of Qwt6 C++ library)
             guidata 1.7+
             NumPy 1.3+ -- NumPy 1.6 or later is required for Windows binaries
             SciPy 0.7+
diff --git a/changelog b/changelog
index 2e2fc6d..12851bd 100644
--- a/changelog
+++ b/changelog
@@ -1,10 +1,11 @@
-== Version 2.4.0beta2 ==
+== Version 3.0.0beta5 ==
 
 === Possible API compatibility issues (since v2.3.2) ===
 
-  * Added support for PyQt5
-  * Replaced PyQwt dependency by the new [included since beta2] `qwt` package (pure Python reimplementation of the Qwt6 C++ library)
+  * Added support for PyQt5 (removed old-style signals)
+  * Replaced `PyQwt` dependency by the new `python-qwt` package (pure Python reimplementation of the Qwt6 C++ library)
   * Removed "curvetype" feature (Yfx, Xfy) which is no longer supported in Qwt6
+  * Removed curve "fitted" option which is not supported in `qwt`.
 
 === Bug fixes (since v2.3.2) ===
 
diff --git a/doc/conf.py b/doc/conf.py
index 29d659f..407173a 100644
--- a/doc/conf.py
+++ b/doc/conf.py
@@ -96,6 +96,8 @@ pygments_style = 'sphinx'
 # A list of ignored prefixes for module index sorting.
 modindex_common_prefix = ['guiqwt.']
 
+autodoc_member_order = 'bysource'
+
 
 # -- Options for HTML output ---------------------------------------------------
 
@@ -126,7 +128,7 @@ html_logo = 'images/guiqwt.png'
 # The name of an image file (within the static path) to use as favicon of the
 # docs.  This file should be a Windows icon file (.ico) being 16x16 or 32x32
 # pixels large.
-html_favicon = 'favicon.ico'
+html_favicon = '_static/favicon.ico'
 
 # Add any paths that contain custom static files (such as style sheets) here,
 # relative to this directory. They are copied after the builtin static files,
diff --git a/doc/development.rst b/doc/development.rst
index 9819613..2ed9a1a 100644
--- a/doc/development.rst
+++ b/doc/development.rst
@@ -50,19 +50,80 @@ following recommendations should be followed:
 PyQt / PySide compatibility
 ---------------------------
 
-In the near future, the project will be officially compatible with both PyQt 
-and PySide.
+The project should be mostly compatible with both PyQt and PySide (although 
+PySide is not as popular as it used to be, so testing tend to be limited).
 
-In its current implementation, it has to be compatible with PyQt API #1 (old 
-PyQt versions) and API #2 (PySide-compatible API, PyQt >= v4.6), which means 
-that the following recommendations should be followed:
+PyQt5 compatibility
+-------------------
+
+In its current implementation, the code base has to be compatible with PyQt 
+API #2 (PySide-compatible API, PyQt >= v4.6) and with PyQt5, which means that 
+the following recommendations should be followed:
 
 * `QVariant` objects must not be used (API #2 compatibility)
 
-* `QString` and `QStringList` objects must not be used (API #2 compatibility)
+* Use exclusively new-style signals and slots
+
+* Read carefully PyQt5 documentation regarding class inheritance behavior: it 
+  is quite different than the old PyQt4 implementation. Producing code 
+  compatible with both PyQt4 and PyQt5 can be tricky: testing is essential.
+
+
+Python 3 compatibility
+======================
+
+Regarding Python 3 compatibility, we chose to handle it by maintaining a single
+source branch being compatible with both Python 2.6-2.7 and Python 3.
+
+Here is what we have done.
+
+Fixing trivial things with 2to3
+-------------------------------
+
+The first step is to run the `2to3` script (see Python documentation) to 
+convert print statements to print function calls -- note that your source 
+directory (named `directory_name`) has to be version controlled (no backup is 
+done thanks to the `-n` option flag).
+`python 2to3.py -w -n -f print directory_name`
+
+Open each modified source file and add the following line at the beginning:
+from __future__ import print_function
+
+Then run again `2to3` with all other Python 2/3 compatible fixers:
+`python 2to3.py -w -n -f apply -f dict -f except -f exitfunc -f filter -f has_key -f map -f ne -f raise -f ws_comma -f xrange -f xreadlines -f zip directory_name`
+
+After these two steps, your code should be compatible with Python 2.6, 2.7 
+and 3.x, but only with respect to the simplest changes that occured between 
+Python 2 and Python 3. However, this a step forward to Python 3 compatibility 
+without breaking Python 2.6+ compatibility.
+
+Fixing unicode issues
+---------------------
+
+In Python 3, `unicode` and `str` strings have been replaced by `str` and 
+`bytes` strings:
+
+  * `str` is the text string type, supporting unicode characters natively
+
+  * `bytes` is the binary string type.
+
+As a consequence, Python 2 code involving strings may cause compatibility 
+issues with Python 3. For example:
+
+  * file I/O may return `bytes` instead of `str` in Python 3 (depending on the 
+    open mode): this can be solved by calling the `decode` method on the `bytes` 
+    object (this will work on both Python 2 `str` and Python 3 `bytes` objects)
+
+  * in Python 3.0-3.2, the `u'unicode text'` or `u"unicode text"` syntax is 
+    not allowed and will raise a SyntaxError: this can be solved by inserting the 
+    `from __future__ import unicode_literals` at the beginning of the script and 
+    by removing all the `u` string prefixes
+
+  * in Python 3 `isinstance(text, basestring)` can be replaced by 
+    `is_text_string(text)` (function of the `guidata.py3compat` module)
+
+  * in Python 3 `isinstance(text, unicode)` can be replaced by 
+    `is_unicode(text)` (function of the `guidata.py3compat` module)
 
-* When connecting built-in C++ signals which were originally made to pass 
-  strings (or string lists), the arguments should always be assumed to be 
-  `QString` (or `QStringList`) objects (API #1 compatibility) and so be 
-  converted systematically to the Python equivalent object, i.e. unicode 
-  (or list).
+  * in Python 3 `unicode(text)` can be replaced by `to_text_string(text)` 
+    (function of the `guidata.py3compat` module)
diff --git a/doc/disthelpers.rst b/doc/disthelpers.rst
index af4af5d..c1a5018 100644
--- a/doc/disthelpers.rst
+++ b/doc/disthelpers.rst
@@ -1,9 +1,10 @@
 Making executable Windows programs
 ==================================
 
-The `py2exe` Python library is an extension to Python `distutils` module which 
-converts Python scripts into executable Windows programs, able to run without 
-requiring a Python installation.
+Applications developed with Python may be deployed using specialized tools 
+like `py2exe` or `cx_Freeze`. These tools work as extensions to Python builtin 
+`distutils` module and converts Python scripts into executable Windows 
+programs which may be executed without requiring a Python installation.
 
 Making such an executable program may be a non trivial task when the script 
 dependencies include libraries with data or extensions, such as `PyQt4` or 
@@ -14,7 +15,7 @@ Example
 ~~~~~~~
 
 This example is included in `guiqwt` source package (see the 
-``py2exe_example`` directory).
+``deployment_example`` folder at source package root directory).
 
 Simple example script named ``simpledialog.pyw`` which is based on `guiqwt` 
 (and implicitely on `guidata`)::
@@ -38,45 +39,14 @@ Simple example script named ``simpledialog.pyw`` which is based on `guiqwt`
         dlg.set_data(np.random.rand(100, 100))
         dlg.exec_()
 
-The ``setup.py`` script may be written as the following::
+The ``create_exe.py`` script may be written as the following::
 
-    from distutils.core import setup
-    import py2exe # Patching distutils setup
-    from guidata.disthelpers import (remove_build_dist, get_default_excludes,
-                             get_default_dll_excludes, create_vs2008_data_files,
-                             add_modules)
-    
-    # Removing old build/dist folders
-    remove_build_dist()
-    
-    # Including/excluding DLLs and Python modules
-    EXCLUDES = get_default_excludes()
-    INCLUDES = []
-    DLL_EXCLUDES = get_default_dll_excludes()
-    DATA_FILES = create_vs2008_data_files()
-    
-    # Configuring/including Python modules
-    add_modules(('PyQt4', 'guidata', 'guiqwt'), DATA_FILES, INCLUDES, EXCLUDES)
-    
-    setup(
-          options={
-                   "py2exe": {"compressed": 2, "optimize": 2, 'bundle_files': 1,
-                              "includes": INCLUDES, "excludes": EXCLUDES,
-                              "dll_excludes": DLL_EXCLUDES,
-                              "dist_dir": "dist",},
-                   },
-          data_files=DATA_FILES,
-          windows=[{
-                    "script": "simpledialog.pyw",
-                    "dest_base": "simpledialog",
-                    "version": "1.0.0",
-                    "company_name": u"CEA",
-                    "copyright": u"Copyright © 2010 CEA - Pierre Raybaut",
-                    "name": "Simple dialog box",
-                    "description": "Simple dialog box",
-                    },],
-          zipfile = None,
-          )
+    from guidata import disthelpers as dh
+    dist = dh.Distribution()
+    dist.setup('example', '1.0', 'guiqwt app example', 'simpledialog.pyw')
+    dist.add_modules('guidata', 'guiqwt')
+    dist.build_cx_freeze()  # use `build_py2exe` to use py2exe instead
+
+Make the Windows executable program by simply running the script::
 
-Make the Windows executable program with the following command:
-    `python setup.py py2exe`
+    python create_exe.py
diff --git a/doc/examples.rst b/doc/examples.rst
index 6b3efd1..3e04bdf 100644
--- a/doc/examples.rst
+++ b/doc/examples.rst
@@ -1,3 +1,5 @@
+.. _examples:
+
 Examples
 ========
 
diff --git a/doc/images/curve_widgets.png b/doc/images/curve_widgets.png
index a1dd846..2cf1395 100644
Binary files a/doc/images/curve_widgets.png and b/doc/images/curve_widgets.png differ
diff --git a/doc/images/image_widgets.png b/doc/images/image_widgets.png
index d171938..05185d2 100644
Binary files a/doc/images/image_widgets.png and b/doc/images/image_widgets.png differ
diff --git a/doc/images/screenshots/simple_dialog.png b/doc/images/screenshots/simple_dialog.png
index 57b11e6..84336c7 100644
Binary files a/doc/images/screenshots/simple_dialog.png and b/doc/images/screenshots/simple_dialog.png differ
diff --git a/doc/index.rst b/doc/index.rst
index 70a8db9..51bbbc2 100644
--- a/doc/index.rst
+++ b/doc/index.rst
@@ -12,7 +12,7 @@ Contents:
     examples
     sift
     disthelpers
-    reference
+    reference/index
     
 
 Indices and tables:
diff --git a/doc/installation.rst b/doc/installation.rst
index e996911..e97f166 100644
--- a/doc/installation.rst
+++ b/doc/installation.rst
@@ -7,7 +7,7 @@ Dependencies
 Requirements:
     * Python 2.x (x>=6)
     * PyQt4 4.x (x>=3 ; recommended x>=4) or PyQt5 5.x (x>=5)
-    * qwt 6.x (x>=1)
+    * qwt 0.x (x>=1)
     * guidata 1.7 or later
     * NumPy 1.x (x>=3) -- NumPy 1.6 or later is required for Windows binaries
     * SciPy 0.x (x>=7)
@@ -28,21 +28,19 @@ All platforms:
 
 On GNU/Linux and MacOS platforms:
     ``python setup.py build install``
-
-    If `gfortran` is not your default Fortran compiler:
-	``python setup.py build --fcompiler=gfortran install``
-    or if it fails, you may try the following:
-	``python setup.py build_ext --fcompiler=gnu95 build install``
     
-On Windows platforms (requires MinGW with gfortran):
+On Windows platforms with MinGW:
     ``python setup.py build -c mingw32 install``
 
+On Windows platforms with Microsoft Visual C++ compiler:
+    ``python setup.py build -c msvc install``
+
 Help and support
 ----------------
 
 External resources:
-    * Bug reports and feature requests: `GoogleCode`_
+    * Bug reports and feature requests: `GitHub`_
     * Help, support and discussions around the project: `GoogleGroup`_
 
-.. _GoogleCode: http://guiqwt.googlecode.com
+.. _GitHub: https://github.com/PierreRaybaut/guiqwt
 .. _GoogleGroup: http://groups.google.fr/group/guidata_guiqwt
diff --git a/doc/overview.rst b/doc/overview.rst
index 510207c..c8ff25f 100644
--- a/doc/overview.rst
+++ b/doc/overview.rst
@@ -1,11 +1,11 @@
 Overview
 ========
 
-Based on `qwt` (plotting widgets for PyQt4 graphical user interfaces) and 
-on the scientific modules `NumPy` and `SciPy`, `guiqwt` is a Python library 
-providing efficient 2D data-plotting features (curve/image visualization 
-and related tools) for interactive computing and signal/image processing 
-application development.
+Based on `python-qwt` (plotting widgets for Python-Qt graphical user 
+interfaces) and on the scientific modules `NumPy` and `SciPy`, `guiqwt` is a 
+Python library providing efficient 2D data-plotting features (curve/image 
+visualization and related tools) for interactive computing and signal/image 
+processing application development.
 
 Performances
 ~~~~~~~~~~~~
diff --git a/doc/reference.rst b/doc/reference.rst
deleted file mode 100644
index d78e53f..0000000
--- a/doc/reference.rst
+++ /dev/null
@@ -1,40 +0,0 @@
-GUIQwt reference
-=================
-
-.. automodule:: guiqwt.pyplot
-
-.. automodule:: guiqwt.widgets.fit
-
-.. automodule:: guiqwt.plot
-
-.. automodule:: guiqwt.builder
-
-.. automodule:: guiqwt.panels
-
-.. automodule:: guiqwt.signals
-
-.. automodule:: guiqwt.baseplot
-
-.. automodule:: guiqwt.curve
-
-.. automodule:: guiqwt.image
-
-.. automodule:: guiqwt.histogram
-
-.. automodule:: guiqwt.cross_section
-
-.. automodule:: guiqwt.annotations
-
-.. automodule:: guiqwt.shapes
-
-.. automodule:: guiqwt.label
-
-.. automodule:: guiqwt.tools
-
-.. automodule:: guiqwt.styles
-
-.. automodule:: guiqwt.io
-
-.. automodule:: guiqwt.widgets.resizedialog
-
-.. automodule:: guiqwt.widgets.rotatecrop
diff --git a/doc/reference/annotations.rst b/doc/reference/annotations.rst
new file mode 100644
index 0000000..135236a
--- /dev/null
+++ b/doc/reference/annotations.rst
@@ -0,0 +1 @@
+.. automodule:: guiqwt.annotations
diff --git a/doc/reference/baseplot.rst b/doc/reference/baseplot.rst
new file mode 100644
index 0000000..749db57
--- /dev/null
+++ b/doc/reference/baseplot.rst
@@ -0,0 +1 @@
+.. automodule:: guiqwt.baseplot
diff --git a/doc/reference/builder.rst b/doc/reference/builder.rst
new file mode 100644
index 0000000..cf6c970
--- /dev/null
+++ b/doc/reference/builder.rst
@@ -0,0 +1 @@
+.. automodule:: guiqwt.builder
diff --git a/doc/reference/cross_section.rst b/doc/reference/cross_section.rst
new file mode 100644
index 0000000..7dcc02b
--- /dev/null
+++ b/doc/reference/cross_section.rst
@@ -0,0 +1 @@
+.. automodule:: guiqwt.cross_section
diff --git a/doc/reference/curve.rst b/doc/reference/curve.rst
new file mode 100644
index 0000000..1713f4a
--- /dev/null
+++ b/doc/reference/curve.rst
@@ -0,0 +1 @@
+.. automodule:: guiqwt.curve
diff --git a/doc/reference/histogram.rst b/doc/reference/histogram.rst
new file mode 100644
index 0000000..56da7c4
--- /dev/null
+++ b/doc/reference/histogram.rst
@@ -0,0 +1 @@
+.. automodule:: guiqwt.histogram
diff --git a/doc/reference/image.rst b/doc/reference/image.rst
new file mode 100644
index 0000000..2a4c231
--- /dev/null
+++ b/doc/reference/image.rst
@@ -0,0 +1 @@
+.. automodule:: guiqwt.image
diff --git a/doc/reference/index.rst b/doc/reference/index.rst
new file mode 100644
index 0000000..22293b2
--- /dev/null
+++ b/doc/reference/index.rst
@@ -0,0 +1,27 @@
+Reference
+=========
+
+guiqwt API:
+
+.. toctree::
+    :maxdepth: 2
+    
+    pyplot
+    widgets_fit
+    plot
+    builder
+    panels
+    signals
+    baseplot
+    curve
+    image
+    histogram
+    cross_section
+    annotations
+    shapes
+    label
+    tools
+    styles
+    io
+    widgets_resizedialog
+    widgets_rotatecrop
diff --git a/doc/reference/io.rst b/doc/reference/io.rst
new file mode 100644
index 0000000..3563fc7
--- /dev/null
+++ b/doc/reference/io.rst
@@ -0,0 +1 @@
+.. automodule:: guiqwt.io
diff --git a/doc/reference/label.rst b/doc/reference/label.rst
new file mode 100644
index 0000000..5da1e31
--- /dev/null
+++ b/doc/reference/label.rst
@@ -0,0 +1 @@
+.. automodule:: guiqwt.label
diff --git a/doc/reference/panels.rst b/doc/reference/panels.rst
new file mode 100644
index 0000000..c6f71c1
--- /dev/null
+++ b/doc/reference/panels.rst
@@ -0,0 +1 @@
+.. automodule:: guiqwt.panels
diff --git a/doc/reference/plot.rst b/doc/reference/plot.rst
new file mode 100644
index 0000000..af72a66
--- /dev/null
+++ b/doc/reference/plot.rst
@@ -0,0 +1 @@
+.. automodule:: guiqwt.plot
diff --git a/doc/reference/pyplot.rst b/doc/reference/pyplot.rst
new file mode 100644
index 0000000..5a4833f
--- /dev/null
+++ b/doc/reference/pyplot.rst
@@ -0,0 +1 @@
+.. automodule:: guiqwt.pyplot
diff --git a/doc/reference/shapes.rst b/doc/reference/shapes.rst
new file mode 100644
index 0000000..45a3ccd
--- /dev/null
+++ b/doc/reference/shapes.rst
@@ -0,0 +1 @@
+.. automodule:: guiqwt.shapes
diff --git a/doc/reference/signals.rst b/doc/reference/signals.rst
new file mode 100644
index 0000000..a797ea8
--- /dev/null
+++ b/doc/reference/signals.rst
@@ -0,0 +1 @@
+.. automodule:: guiqwt.signals
diff --git a/doc/reference/styles.rst b/doc/reference/styles.rst
new file mode 100644
index 0000000..b00b355
--- /dev/null
+++ b/doc/reference/styles.rst
@@ -0,0 +1 @@
+.. automodule:: guiqwt.styles
diff --git a/doc/reference/tools.rst b/doc/reference/tools.rst
new file mode 100644
index 0000000..9f31bbe
--- /dev/null
+++ b/doc/reference/tools.rst
@@ -0,0 +1 @@
+.. automodule:: guiqwt.tools
diff --git a/doc/reference/widgets_fit.rst b/doc/reference/widgets_fit.rst
new file mode 100644
index 0000000..0daaa24
--- /dev/null
+++ b/doc/reference/widgets_fit.rst
@@ -0,0 +1 @@
+.. automodule:: guiqwt.widgets.fit
diff --git a/doc/reference/widgets_resizedialog.rst b/doc/reference/widgets_resizedialog.rst
new file mode 100644
index 0000000..7035fd2
--- /dev/null
+++ b/doc/reference/widgets_resizedialog.rst
@@ -0,0 +1 @@
+.. automodule:: guiqwt.widgets.resizedialog
diff --git a/doc/reference/widgets_rotatecrop.rst b/doc/reference/widgets_rotatecrop.rst
new file mode 100644
index 0000000..a7659fe
--- /dev/null
+++ b/doc/reference/widgets_rotatecrop.rst
@@ -0,0 +1 @@
+.. automodule:: guiqwt.widgets.rotatecrop
diff --git a/guiqwt.egg-info/PKG-INFO b/guiqwt.egg-info/PKG-INFO
index fedc9d8..9229a54 100644
--- a/guiqwt.egg-info/PKG-INFO
+++ b/guiqwt.egg-info/PKG-INFO
@@ -1,6 +1,6 @@
 Metadata-Version: 1.1
 Name: guiqwt
-Version: 2.4.0b4
+Version: 3.0.0b5
 Summary: guiqwt is a set of tools for curve and image plotting (extension to `qwt`)
 Home-page: https://github.com/PierreRaybaut/guiqwt
 Author: Pierre Raybaut
diff --git a/guiqwt.egg-info/SOURCES.txt b/guiqwt.egg-info/SOURCES.txt
index c9201e8..758c280 100644
--- a/guiqwt.egg-info/SOURCES.txt
+++ b/guiqwt.egg-info/SOURCES.txt
@@ -10,7 +10,6 @@ doc/examples.rst
 doc/index.rst
 doc/installation.rst
 doc/overview.rst
-doc/reference.rst
 doc/sift.rst
 doc/_static/favicon.ico
 doc/images/curve_widgets.png
@@ -40,6 +39,26 @@ doc/images/screenshots/sift3.png
 doc/images/screenshots/simple_dialog.png
 doc/images/screenshots/simple_window.png
 doc/images/screenshots/transform.png
+doc/reference/annotations.rst
+doc/reference/baseplot.rst
+doc/reference/builder.rst
+doc/reference/cross_section.rst
+doc/reference/curve.rst
+doc/reference/histogram.rst
+doc/reference/image.rst
+doc/reference/index.rst
+doc/reference/io.rst
+doc/reference/label.rst
+doc/reference/panels.rst
+doc/reference/plot.rst
+doc/reference/pyplot.rst
+doc/reference/shapes.rst
+doc/reference/signals.rst
+doc/reference/styles.rst
+doc/reference/tools.rst
+doc/reference/widgets_fit.rst
+doc/reference/widgets_resizedialog.rst
+doc/reference/widgets_rotatecrop.rst
 guiqwt/__init__.py
 guiqwt/_cm.py
 guiqwt/annotations.py
@@ -235,8 +254,6 @@ guiqwt/widgets/fit.py
 guiqwt/widgets/fliprotate.py
 guiqwt/widgets/resizedialog.py
 guiqwt/widgets/rotatecrop.py
-py2exe_example/create_exe.py
-py2exe_example/simpledialog.pyw
 qtdesigner/imageplotplugin.py
 qtdesigner/plotplugin.py
 scripts/guiqwt-tests
diff --git a/guiqwt/__init__.py b/guiqwt/__init__.py
index a79e2c3..5c32ab4 100644
--- a/guiqwt/__init__.py
+++ b/guiqwt/__init__.py
@@ -3,7 +3,7 @@
 guiqwt
 ======
 
-Based on `qwt` (plotting widgets for PyQt4 graphical user interfaces) and 
+Based on `qwt` (plotting widgets for Qt graphical user interfaces) and 
 on the scientific modules NumPy and SciPy, `guiqwt` is a Python library 
 providing efficient 2D data-plotting features (curve/image visualization 
 and related tools) for interactive computing and signal/image processing 
@@ -13,15 +13,15 @@ application development.
 
 
 External resources:
-    * Bug reports and feature requests: `GoogleCode`_
+    * Bug reports and feature requests: `GitHub`_
     * Help, support and discussions around the project: `GoogleGroup`_
 
-.. _GoogleCode: http://guiqwt.googlecode.com
+.. _GitHub: https://github.com/PierreRaybaut/guiqwt
 .. _GoogleGroup: http://groups.google.fr/group/guidata_guiqwt
 """
 
 
-__version__ = '2.4.0b4'
+__version__ = '3.0.0b5'
 
 # Dear (Debian, RPM, ...) package makers, please feel free to customize the
 # following path to module's data (images) and translations:
diff --git a/guiqwt/annotations.py b/guiqwt/annotations.py
index 23b30e5..a796c1a 100644
--- a/guiqwt/annotations.py
+++ b/guiqwt/annotations.py
@@ -502,10 +502,13 @@ class AnnotatedObliqueRectangle(AnnotatedRectangle):
     def set_rect(self, x0, y0, x1, y1, x2, y2, x3, y3):
         """
         Set the rectangle corners coordinates:
+            
             (x0, y0): top-left corner
             (x1, y1): top-right corner
             (x2, y2): bottom-right corner
             (x3, y3): bottom-left corner
+
+        ::
             
             x: additionnal points
             
diff --git a/guiqwt/baseplot.py b/guiqwt/baseplot.py
index 136fb16..c54677f 100644
--- a/guiqwt/baseplot.py
+++ b/guiqwt/baseplot.py
@@ -14,6 +14,7 @@ guiqwt.baseplot
 The `baseplot` module provides the `guiqwt` plotting widget base class: 
 :py:class:`guiqwt.baseplot.BasePlot`. This is an enhanced version of 
 `qwt`'s QwtPlot plotting widget which supports the following features:
+
     * add to plot, del from plot, hide/show and save/restore `plot items` easily
     * item selection and multiple selection
     * active item
@@ -102,9 +103,6 @@ class BasePlot(QwtPlot):
     
     Activatable items must support IBasePlotItem interface and should
     be added to the plot using add_item methods.
-    
-    Signals:
-    SIG_ITEMS_CHANGED, SIG_ACTIVE_ITEM_CHANGED
     """
     Y_LEFT, Y_RIGHT, X_BOTTOM, X_TOP = (QwtPlot.yLeft, QwtPlot.yRight,
                                         QwtPlot.xBottom, QwtPlot.xTop)
@@ -118,47 +116,47 @@ class BasePlot(QwtPlot):
     DEFAULT_ACTIVE_XAXIS = X_BOTTOM
     DEFAULT_ACTIVE_YAXIS = Y_LEFT
     
-    # Emitted by plot when an IBasePlotItem object was moved (args: x0, y0, x1, y1)
+    #: Signal emitted by plot when an IBasePlotItem object was moved (args: x0, y0, x1, y1)
     SIG_ITEM_MOVED = Signal("PyQt_PyObject", float, float, float, float)
     
-    # Emitted by plot when a shapes.Marker position changes
+    #: Signal emitted by plot when a shapes.Marker position changes
     SIG_MARKER_CHANGED = Signal("PyQt_PyObject")
     
-    # Emitted by plot when a shapes.Axes position (or the angle) changes
+    #: Signal emitted by plot when a shapes.Axes position (or the angle) changes
     SIG_AXES_CHANGED = Signal("PyQt_PyObject")
     
-    # Emitted by plot when an annotation.AnnotatedShape position changes
+    #: Signal emitted by plot when an annotation.AnnotatedShape position changes
     SIG_ANNOTATION_CHANGED = Signal("PyQt_PyObject")
     
-    # Emitted by plot when the a shapes.XRangeSelection range changes
+    #: Signal emitted by plot when the a shapes.XRangeSelection range changes
     SIG_RANGE_CHANGED = Signal("PyQt_PyObject", float, float)
     
-    # Emitted by plot when item list has changed (item removed, added, ...)
+    #: Signal emitted by plot when item list has changed (item removed, added, ...)
     SIG_ITEMS_CHANGED = Signal('PyQt_PyObject')
     
-    # Emitted by plot when selected item has changed
+    #: Signal emitted by plot when selected item has changed
     SIG_ACTIVE_ITEM_CHANGED = Signal('PyQt_PyObject')
     
-    # Emitted by plot when an item was deleted from the item list or using the 
-    # delete item tool
+    #: Signal emitted by plot when an item was deleted from the item list or using the 
+    #: delete item tool
     SIG_ITEM_REMOVED = Signal('PyQt_PyObject')
     
-    # Emitted by plot when an item is selected
+    #: Signal emitted by plot when an item is selected
     SIG_ITEM_SELECTION_CHANGED = Signal('PyQt_PyObject')
     
-    # Emitted by plot when plot's title or any axis label has changed
+    #: Signal emitted by plot when plot's title or any axis label has changed
     SIG_PLOT_LABELS_CHANGED = Signal('PyQt_PyObject')
     
-    # Emitted by plot when any plot axis direction has changed
+    #: Signal emitted by plot when any plot axis direction has changed
     SIG_AXIS_DIRECTION_CHANGED = Signal('PyQt_PyObject', 'PyQt_PyObject')
     
-    # Emitted by plot when LUT has been changed by the user
+    #: Signal emitted by plot when LUT has been changed by the user
     SIG_LUT_CHANGED = Signal("PyQt_PyObject")
     
-    # Emitted by plot when image mask has changed
+    #: Signal emitted by plot when image mask has changed
     SIG_MASK_CHANGED = Signal("PyQt_PyObject")
 
-    # Emitted by cross section plot when cross section curve data has changed
+    #: Signal emitted by cross section plot when cross section curve data has changed
     SIG_CS_CURVE_CHANGED = Signal("PyQt_PyObject")
 
     def __init__(self, parent=None, section="plot"):
@@ -430,7 +428,7 @@ class BasePlot(QwtPlot):
         clipboard.setPixmap(pixmap)
             
     def save_widget(self, fname):
-        """Grab widget's window and save it to filename (*.png, *.pdf)"""
+        """Grab widget's window and save it to filename (\*.png, \*.pdf)"""
         fname = to_text_string(fname)
         if fname.lower().endswith('.pdf'):
             printer = QPrinter()
@@ -468,7 +466,7 @@ class BasePlot(QwtPlot):
         """
         Add a *plot item* instance to this *plot widget*
         
-        item: QwtPlotItem (PyQt4.Qwt5) object implementing
+        item: :py:data:`qwt.QwtPlotItem` object implementing
               the IBasePlotItem interface (guiqwt.interfaces)
         """
         assert hasattr(item, "__implements__")
@@ -768,9 +766,15 @@ class BasePlot(QwtPlot):
     def get_nearest_object(self, pos, close_dist=0):
         """
         Return nearest item from position 'pos'
-        If close_dist > 0: return the first found item (higher z) which
-                           distance to 'pos' is less than close_dist
-        else: return the closest item
+
+        If close_dist > 0:
+            
+            Return the first found item (higher z) which distance to 'pos' is 
+            less than close_dist
+
+        else:
+            
+            Return the closest item
         """
         selobj, distance, inside, handle = None, maxsize, None, None
         for obj in self.get_items(z_sorted=True):
diff --git a/guiqwt/builder.py b/guiqwt/builder.py
index 76e3fa6..be5c616 100644
--- a/guiqwt/builder.py
+++ b/guiqwt/builder.py
@@ -113,6 +113,7 @@ class PlotItemBuilder(object):
                   major_style=None, minor_style=None):
         """
         Make `guiqwt.styles.GridParam` instance
+        
            * background = canvas background color
            * major_enabled = tuple (major_xenabled, major_yenabled)
            * minor_enabled = tuple (minor_xenabled, minor_yenabled)
@@ -145,6 +146,7 @@ class PlotItemBuilder(object):
              major_style=None, minor_style=None):
         """
         Make a grid `plot item` (`guiqwt.curve.GridItem` object)
+        
            * background = canvas background color
            * major_enabled = tuple (major_xenabled, major_yenabled)
            * minor_enabled = tuple (minor_xenabled, minor_yenabled)
@@ -192,9 +194,9 @@ class PlotItemBuilder(object):
                                          markeredgecolor) # MATLAB-style
             param.symbol.edgecolor = markeredgecolor
 
-    def __set_param(self, param, title, color, linestyle, linewidth,
-                    marker, markersize, markerfacecolor, markeredgecolor,
-                    shade, fitted, curvestyle, baseline):
+    def __set_param(self, param, title, color, linestyle, linewidth, marker,
+                    markersize, markerfacecolor, markeredgecolor, shade,
+                    curvestyle, baseline):
         """Apply parameters to a `guiqwt.styles.CurveParam` instance"""
         self.__set_baseparam(param, color, linestyle, linewidth, marker,
                              markersize, markerfacecolor, markeredgecolor)
@@ -202,8 +204,6 @@ class PlotItemBuilder(object):
             param.label = title
         if shade is not None:
             param.shade = shade
-        if fitted is not None:
-            param.fitted = fitted
         if curvestyle is not None:
             param.curvestyle = curvestyle
         if baseline is not None:
@@ -229,10 +229,11 @@ class PlotItemBuilder(object):
                 style = args[0]
             else:
                 x, y = get_x_y_from_data(args[0])
-                if isinstance(y, ndarray):
-                    style = next(self.style)
-                else:
+                y_matrix = not isinstance(y, ndarray)
+                if y_matrix:
                     style = [next(self.style) for yi in y]
+                else:
+                    style = next(self.style)
         elif len(args) == 2:
             a1, a2 = args
             if is_text_string(a2):
@@ -248,7 +249,7 @@ class PlotItemBuilder(object):
             raise TypeError("Wrong number of arguments")
         if isinstance(x, (list, tuple)):
             x = array(x)
-        if isinstance(y, (list, tuple)):
+        if isinstance(y, (list, tuple)) and not y_matrix:
             y = array(y)
         return x, y, style
         
@@ -291,7 +292,9 @@ class PlotItemBuilder(object):
         (may returns a list of curves if data contains more than one signal)
         (:py:class:`guiqwt.curve.CurveItem` object)
         
-        Example: mcurve(x, y, 'r+')
+        Example::
+            
+            mcurve(x, y, 'r+')
         """
         x, y, style = self.__get_arg_triple_plot(args)
         if isinstance(y, ndarray):
@@ -323,7 +326,9 @@ class PlotItemBuilder(object):
         based on a `guiqwt.styles.CurveParam` instance
         (:py:class:`guiqwt.curve.CurveItem` object)
         
-        Usage: pcurve(x, y, param)
+        Usage::
+            
+            pcurve(x, y, param)
         """
         curve = CurveItem(param)
         curve.set_data(x, y)
@@ -331,45 +336,41 @@ class PlotItemBuilder(object):
         self.__set_curve_axes(curve, xaxis, yaxis)
         return curve
 
-    def curve(self, x, y, title="",
-              color=None, linestyle=None, linewidth=None,
+    def curve(self, x, y, title="", color=None, linestyle=None, linewidth=None,
               marker=None, markersize=None, markerfacecolor=None,
-              markeredgecolor=None, shade=None, fitted=None,
-              curvestyle=None, baseline=None,
+              markeredgecolor=None, shade=None, curvestyle=None, baseline=None,
               xaxis="bottom", yaxis="left"):
         """
         Make a curve `plot item` from x, y, data
         (:py:class:`guiqwt.curve.CurveItem` object)
+
             * x: 1D NumPy array
             * y: 1D NumPy array
             * color: curve color name
-            * linestyle: curve line style (MATLAB-like string or attribute name 
-              from the :py:class:`PyQt4.QtCore.Qt.PenStyle` enum
-              (i.e. "SolidLine" "DashLine", "DotLine", "DashDotLine", 
-              "DashDotDotLine" or "NoPen")
+            * linestyle: curve line style (MATLAB-like string or "SolidLine",
+              "DashLine", "DotLine", "DashDotLine", "DashDotDotLine", "NoPen")
             * linewidth: line width (pixels)
-            * marker: marker shape (MATLAB-like string or attribute name from 
-              the :py:class:`PyQt4.Qwt5.QwtSymbol.Style` enum (i.e. "Cross",
+            * marker: marker shape (MATLAB-like string or "Cross",
               "Ellipse", "Star1", "XCross", "Rect", "Diamond", "UTriangle", 
-              "DTriangle", "RTriangle", "LTriangle", "Star2" or "NoSymbol")
+              "DTriangle", "RTriangle", "LTriangle", "Star2", "NoSymbol")
             * markersize: marker size (pixels)
             * markerfacecolor: marker face color name
             * markeredgecolor: marker edge color name
             * shade: 0 <= float <= 1 (curve shade)
-            * fitted: boolean (fit curve to data)
-            * curvestyle: attribute name from the 
-              :py:class:`PyQt4.Qwt5.QwtPlotCurve.CurveStyle` enum
-              (i.e. "Lines", "Sticks", "Steps", "Dots" or "NoCurve")
+            * curvestyle: "Lines", "Sticks", "Steps", "Dots", "NoCurve"
             * baseline (float: default=0.0): the baseline is needed for filling 
               the curve with a brush or the Sticks drawing style. 
               The interpretation of the baseline depends on the curve type 
               (horizontal line for "Yfx", vertical line for "Xfy")
             * xaxis, yaxis: X/Y axes bound to curve
         
-        Examples:
-        curve(x, y, marker='Ellipse', markerfacecolor='#ffffff')
-        which is equivalent to (MATLAB-style support):
-        curve(x, y, marker='o', markerfacecolor='w')
+        Example::
+            
+            curve(x, y, marker='Ellipse', markerfacecolor='#ffffff')
+
+        which is equivalent to (MATLAB-style support)::
+
+            curve(x, y, marker='o', markerfacecolor='w')
         """
         basename = _("Curve")
         param = CurveParam(title=basename, icon='curve.png')
@@ -378,8 +379,8 @@ class PlotItemBuilder(object):
             CURVE_COUNT += 1
             title = make_title(basename, CURVE_COUNT)
         self.__set_param(param, title, color, linestyle, linewidth, marker,
-                         markersize, markerfacecolor, markeredgecolor,
-                         shade, fitted, curvestyle, baseline)
+                         markersize, markerfacecolor, markeredgecolor, shade,
+                         curvestyle, baseline)
         return self.pcurve(x, y, param, xaxis, yaxis)
 
     def merror(self, *args, **kwargs):
@@ -387,7 +388,9 @@ class PlotItemBuilder(object):
         Make an errorbar curve `plot item` based on MATLAB-like syntax
         (:py:class:`guiqwt.curve.ErrorBarCurveItem` object)
         
-        Example: mcurve(x, y, 'r+')
+        Example::
+            
+            mcurve(x, y, 'r+')
         """
         x, y, dx, dy, style = self.__get_arg_triple_errorbar(args)
         basename = _("Curve")
@@ -410,6 +413,7 @@ class PlotItemBuilder(object):
         Make an errorbar curve `plot item` 
         based on a `guiqwt.styles.ErrorBarParam` instance
         (:py:class:`guiqwt.curve.ErrorBarCurveItem` object)
+ 
             * x: 1D NumPy array
             * y: 1D NumPy array
             * dx: None, or scalar, or 1D NumPy array
@@ -418,7 +422,9 @@ class PlotItemBuilder(object):
             * errorbarparam: `guiqwt.styles.ErrorBarParam` object
             * xaxis, yaxis: X/Y axes bound to curve
         
-        Usage: perror(x, y, dx, dy, curveparam, errorbarparam)
+        Usage::
+            
+            perror(x, y, dx, dy, curveparam, errorbarparam)
         """
         curve = ErrorBarCurveItem(curveparam, errorbarparam)
         curve.set_data(x, y, dx, dy)
@@ -429,13 +435,13 @@ class PlotItemBuilder(object):
     def error(self, x, y, dx, dy, title="",
               color=None, linestyle=None, linewidth=None,
               errorbarwidth=None, errorbarcap=None, errorbarmode=None,
-              errorbaralpha=None, marker=None,
-              markersize=None, markerfacecolor=None, markeredgecolor=None,
-              shade=None, fitted=None, curvestyle=None,
-              baseline=None, xaxis="bottom", yaxis="left"):
+              errorbaralpha=None, marker=None, markersize=None,
+              markerfacecolor=None, markeredgecolor=None, shade=None,
+              curvestyle=None, baseline=None, xaxis="bottom", yaxis="left"):
         """
         Make an errorbar curve `plot item` 
         (:py:class:`guiqwt.curve.ErrorBarCurveItem` object)
+
             * x: 1D NumPy array
             * y: 1D NumPy array
             * dx: None, or scalar, or 1D NumPy array
@@ -454,7 +460,6 @@ class PlotItemBuilder(object):
             * markerfacecolor: marker face color name
             * markeredgecolor: marker edge color name
             * shade: 0 <= float <= 1 (curve shade)
-            * fitted: boolean (fit curve to data)
             * curvestyle: attribute name from the 
               :py:class:`PyQt4.Qwt5.QwtPlotCurve.CurveStyle` enum
               (i.e. "Lines", "Sticks", "Steps", "Dots" or "NoCurve")
@@ -464,9 +469,12 @@ class PlotItemBuilder(object):
               (horizontal line for "Yfx", vertical line for "Xfy")
             * xaxis, yaxis: X/Y axes bound to curve
         
-        Examples::
+        Example::
+            
             error(x, y, None, dy, marker='Ellipse', markerfacecolor='#ffffff')
-            which is equivalent to (MATLAB-style support):
+        
+        which is equivalent to (MATLAB-style support)::
+
             error(x, y, None, dy, marker='o', markerfacecolor='w')
         """
         basename = _("Curve")
@@ -479,7 +487,7 @@ class PlotItemBuilder(object):
             curveparam.label = make_title(basename, CURVE_COUNT)
         self.__set_param(curveparam, title, color, linestyle, linewidth, marker,
                          markersize, markerfacecolor, markeredgecolor,
-                         shade, fitted, curvestyle, baseline)
+                         shade, curvestyle, baseline)
         errorbarparam.color = curveparam.line.color
         if errorbarwidth is not None:
             errorbarparam.width = errorbarwidth
@@ -497,6 +505,7 @@ class PlotItemBuilder(object):
         """
         Make 1D Histogram `plot item` 
         (:py:class:`guiqwt.histogram.HistogramItem` object)
+
             * data (1D NumPy array)
             * bins: number of bins (int)
             * logscale: Y-axis scale (bool)
@@ -526,7 +535,9 @@ class PlotItemBuilder(object):
         based on a `guiqwt.styles.CurveParam` and 
         `guiqwt.styles.HistogramParam` instances
         
-        Usage: phistogram(data, curveparam, histparam)
+        Usage::
+            
+            phistogram(data, curveparam, histparam)
         """
         hist = HistogramItem(curveparam, histparam)
         hist.update_params()
@@ -709,7 +720,8 @@ class PlotItemBuilder(object):
         based on MATLAB-like syntax
         (:py:class:`guiqwt.image.QuadGridItem` object)
         
-        Examples:
+        Examples::
+
             pcolor(C)
             pcolor(X, Y, C)
         """
@@ -732,6 +744,7 @@ class PlotItemBuilder(object):
         Make a transformable image `plot item` (image with an arbitrary 
         affine transform)
         (:py:class:`guiqwt.image.TrImageItem` object)
+
             * data: 2D NumPy array (image pixel data)
             * filename: image filename (if data is not specified)
             * title: image title (optional)
@@ -762,6 +775,7 @@ class PlotItemBuilder(object):
         """
         Make an xyimage `plot item` (image with non-linear X/Y axes) from data
         (:py:class:`guiqwt.image.XYImageItem` object)
+
             * x: 1D NumPy array
             * y: 1D NumPy array
             * data: 2D NumPy array (image pixel data)
@@ -784,6 +798,7 @@ class PlotItemBuilder(object):
         """
         Make a rectangular area image filter `plot item`
         (:py:class:`guiqwt.image.ImageFilterItem` object)
+
             * xmin, xmax, ymin, ymax: filter area bounds
             * imageitem: An imageitem instance
             * filter: function (x, y, data) --> data
@@ -803,6 +818,7 @@ class PlotItemBuilder(object):
         """
         Make a 2D Histogram `plot item` 
         (:py:class:`guiqwt.image.Histogram2DItem` object)
+
             * X: data (1D array)
             * Y: data (1D array)
             * NX: Number of bins along x-axis (int)
@@ -835,6 +851,7 @@ class PlotItemBuilder(object):
         """
         Make a label `plot item` 
         (:py:class:`guiqwt.label.LabelItem` object)
+
             * text: label text (string)
             * g: position in plot coordinates (tuple) 
               or relative position (string)
@@ -843,6 +860,7 @@ class PlotItemBuilder(object):
             * title: label name (optional)
         
         Examples::
+            
             make.label("Relative position", (x[0], y[0]), (10, 10), "BR")
             make.label("Absolute position", "R", (0,0), "R")
         """
@@ -872,6 +890,7 @@ class PlotItemBuilder(object):
         Make a legend `plot item` 
         (:py:class:`guiqwt.label.LegendBoxItem` or 
         :py:class:`guiqwt.label.SelectedLegendBoxItem` object)
+
             * anchor: legend position in relative position (string)
             * c (optional): position in canvas coordinates (tuple)
             * restrict_items (optional):
@@ -952,6 +971,7 @@ class PlotItemBuilder(object):
         """
         Make a marker `plot item`
         (:py:class:`guiqwt.shapes.Marker` object)
+
             * position: tuple (x, y)
             * label_cb: function with two arguments (x, y) returning a string
             * constraint_cb: function with two arguments (x, y) returning a 
@@ -966,10 +986,9 @@ class PlotItemBuilder(object):
               (i.e. "SolidLine" "DashLine", "DotLine", "DashDotLine", 
               "DashDotDotLine" or "NoPen")
             * linewidth: line width (pixels)
-            * marker: marker shape (MATLAB-like string or attribute name from 
-              the :py:class:`PyQt4.Qwt5.QwtSymbol.Style` enum (i.e. "Cross",
-              "Ellipse", "Star1", "XCross", "Rect", "Diamond", "UTriangle", 
-              "DTriangle", "RTriangle", "LTriangle", "Star2" or "NoSymbol")
+            * marker: marker shape (MATLAB-like string or "Cross", "Ellipse",
+              "Star1", "XCross", "Rect", "Diamond", "UTriangle", "DTriangle",
+              "RTriangle", "LTriangle", "Star2", "NoSymbol")
             * markersize: marker size (pixels)
             * markerfacecolor: marker face color name
             * markeredgecolor: marker edge color name
@@ -1014,6 +1033,7 @@ class PlotItemBuilder(object):
         """
         Make a rectangle shape `plot item` 
         (:py:class:`guiqwt.shapes.RectangleShape` object)
+
             * x0, y0, x1, y1: rectangle coordinates
             * title: label name (optional)
         """
@@ -1023,6 +1043,7 @@ class PlotItemBuilder(object):
         """
         Make an ellipse shape `plot item` 
         (:py:class:`guiqwt.shapes.EllipseShape` object)
+
             * x0, y0, x1, y1: ellipse x-axis coordinates
             * title: label name (optional)
         """
@@ -1036,6 +1057,7 @@ class PlotItemBuilder(object):
         """
         Make a circle shape `plot item` 
         (:py:class:`guiqwt.shapes.EllipseShape` object)
+
             * x0, y0, x1, y1: circle diameter coordinates
             * title: label name (optional)
         """
@@ -1045,6 +1067,7 @@ class PlotItemBuilder(object):
         """
         Make a segment shape `plot item` 
         (:py:class:`guiqwt.shapes.SegmentShape` object)
+
             * x0, y0, x1, y1: segment coordinates
             * title: label name (optional)
         """
@@ -1068,6 +1091,7 @@ class PlotItemBuilder(object):
         """
         Make an annotated rectangle `plot item` 
         (:py:class:`guiqwt.annotations.AnnotatedRectangle` object)
+
             * x0, y0, x1, y1: rectangle coordinates
             * title, subtitle: strings
         """
@@ -1079,6 +1103,7 @@ class PlotItemBuilder(object):
         """
         Make an annotated ellipse `plot item`
         (:py:class:`guiqwt.annotations.AnnotatedEllipse` object)
+
             * x0, y0, x1, y1: ellipse rectangle coordinates
             * ratio: ratio between y-axis and x-axis lengths
             * title, subtitle: strings
@@ -1093,6 +1118,7 @@ class PlotItemBuilder(object):
         """
         Make an annotated circle `plot item`
         (:py:class:`guiqwt.annotations.AnnotatedCircle` object)
+
             * x0, y0, x1, y1: circle diameter coordinates
             * title, subtitle: strings
         """
@@ -1102,6 +1128,7 @@ class PlotItemBuilder(object):
         """
         Make an annotated segment `plot item`
         (:py:class:`guiqwt.annotations.AnnotatedSegment` object)
+
             * x0, y0, x1, y1: segment coordinates
             * title, subtitle: strings
         """
@@ -1133,20 +1160,18 @@ class PlotItemBuilder(object):
                          function=None, title=None):
         """
         Make an info label `plot item` showing an XRangeSelection object infos
+        (:py:class:`guiqwt.label.DataInfoLabel` object)
+        (see example: :py:mod:`guiqwt.tests.computations`)
         
         Default function is `lambda x, dx: (x, dx)`.
 
-        Example:
-        -------
+        Example::
         
-        x = linspace(-10, 10, 10)
-        y = sin(sin(sin(x)))
-        range = make.range(-2, 2)
-        disp = make.range_info_label(range, 'BL', "x = %.1f ± %.1f cm",
-                                     lambda x, dx: (x, dx))
-        
-        (:py:class:`guiqwt.label.DataInfoLabel` object)
-        (see example: :py:mod:`guiqwt.tests.computations`)
+            x = linspace(-10, 10, 10)
+            y = sin(sin(sin(x)))
+            range = make.range(-2, 2)
+            disp = make.range_info_label(range, 'BL', "x = %.1f ± %.1f cm",
+                                         lambda x, dx: (x, dx))        
         """
         info = RangeInfo(label, range, function)
         return make.info_label(anchor, info, title=title)
diff --git a/guiqwt/config.py b/guiqwt/config.py
index 471694c..223770e 100644
--- a/guiqwt/config.py
+++ b/guiqwt/config.py
@@ -588,7 +588,6 @@ DEFAULTS = {
               "curve/symbol/facecolor": "black",
               "curve/symbol/alpha": 1.,
               "curve/shade": .85,
-              "curve/fitted": False,
               "curve/curvestyle": "Steps",
               "curve/label": "",
 
@@ -689,7 +688,6 @@ DEFAULTS = {
               "curve/symbol/facecolor": "black",
               "curve/symbol/alpha": 1.,
               "curve/shade": 0.,
-              "curve/fitted": False,
               "curve/label": "",
 
               "range/line/style": 'SolidLine',
diff --git a/guiqwt/cross_section.py b/guiqwt/cross_section.py
index 9f94c37..3c7ece9 100644
--- a/guiqwt/cross_section.py
+++ b/guiqwt/cross_section.py
@@ -24,7 +24,7 @@ Example
 
 Simple cross-section demo:
 
-.. literalinclude:: ../guiqwt/tests/cross_section.py
+.. literalinclude:: /../guiqwt/tests/cross_section.py
 
 Reference
 ~~~~~~~~~
diff --git a/guiqwt/curve.py b/guiqwt/curve.py
index 28a9e2c..7479b9e 100644
--- a/guiqwt/curve.py
+++ b/guiqwt/curve.py
@@ -873,6 +873,7 @@ class ErrorBarCurveItem(CurveItem):
     def get_data(self):
         """
         Return error-bar curve data: x, y, dx, dy
+
             * x: NumPy array
             * y: NumPy array
             * dx: float or NumPy array (non-constant error bars)
@@ -883,6 +884,7 @@ class ErrorBarCurveItem(CurveItem):
     def set_data(self, x, y, dx=None, dy=None):
         """
         Set error-bar curve data:
+            
             * x: NumPy array
             * y: NumPy array
             * dx: float or NumPy array (non-constant error bars)
@@ -1127,8 +1129,12 @@ class ItemListWidget(QListWidget):
         
     def get_selected_items(self):
         """Return selected QwtPlot items
-        Warning: this is not the same as self.plot.get_selected_items
-        --> some items could appear in itemlist without being registered in 
+        
+        .. warning::
+
+            This is not the same as 
+            :py:data:`guiqwt.baseplot.BasePlot.get_selected_items`.
+            Some items could appear in itemlist without being registered in 
             plot widget items (in particular, some items could be selected in 
             itemlist without being selected in plot widget)
         """
@@ -1310,6 +1316,7 @@ class CurvePlot(BasePlot):
     """
     Construct a 2D curve plotting widget 
     (this class inherits :py:class:`guiqwt.baseplot.BasePlot`)
+    
         * parent: parent widget
         * title: plot title
         * xlabel: (bottom axis title, top axis title) or bottom axis title only
@@ -1318,12 +1325,12 @@ class CurvePlot(BasePlot):
         * yunit: (left axis unit, right axis unit) or left axis unit only
         * gridparam: GridParam instance
         * axes_synchronised: keep all x and y axes synchronised when zomming or
-                             panning
+          panning
     """
     DEFAULT_ITEM_TYPE = ICurveItemType
     AUTOSCALE_TYPES = (CurveItem, PolygonMapItem)
     
-    # Signals
+    #: Signal emitted by plot when plot axis has changed, e.g. when panning/zooming (arg: plot))
     SIG_PLOT_AXIS_CHANGED = Signal("PyQt_PyObject")
     
     def __init__(self, parent=None, title=None, xlabel=None, ylabel=None,
@@ -1551,8 +1558,9 @@ class CurvePlot(BasePlot):
     def add_item(self, item, z=None):
         """
         Add a *plot item* instance to this *plot widget*
-            * item: QwtPlotItem (PyQt4.Qwt5) object implementing
-              the IBasePlotItem interface (guiqwt.interfaces)
+        
+            * item: :py:data:`qwt.QwtPlotItem` object implementing
+              the :py:data:`guiqwt.interfaces.IBasePlotItem` interface
             * z: item's z order (None -> z = max(self.get_items())+1)
         """
         if isinstance(item, QwtPlotCurve):
@@ -1641,6 +1649,7 @@ class CurvePlot(BasePlot):
     def get_axis_direction(self, axis_id):
         """
         Return axis direction of increasing values
+
             * axis_id: axis id (BasePlot.Y_LEFT, BasePlot.X_BOTTOM, ...)
               or string: 'bottom', 'left', 'top' or 'right'
         """
@@ -1650,6 +1659,7 @@ class CurvePlot(BasePlot):
     def set_axis_direction(self, axis_id, reverse=False):
         """
         Set axis direction of increasing values
+
             * axis_id: axis id (BasePlot.Y_LEFT, BasePlot.X_BOTTOM, ...)
               or string: 'bottom', 'left', 'top' or 'right'
             * reverse: False (default)
@@ -1672,6 +1682,7 @@ class CurvePlot(BasePlot):
                    xunit=None, yunit=None):
         """
         Set plot and axes titles at once
+
             * title: plot title
             * xlabel: (bottom axis title, top axis title) 
               or bottom axis title only
@@ -1712,7 +1723,9 @@ class CurvePlot(BasePlot):
     def set_pointer(self, pointer_type):
         """
         Set pointer.
+
         Valid values of `pointer_type`:
+
             * None: disable pointer
             * "canvas": enable canvas pointer
             * "curve": enable on-curve pointer
diff --git a/guiqwt/events.py b/guiqwt/events.py
index ea07066..ff85d44 100644
--- a/guiqwt/events.py
+++ b/guiqwt/events.py
@@ -307,7 +307,10 @@ class ClickHandler(QObject):
     """Classe de base pour les gestionnaires d'événements du type
     click - release
     """
+    
+    #: Signal emitted by ClickHandler on mouse click
     SIG_CLICK_EVENT = Signal("PyQt_PyObject", "QEvent")
+    
     def __init__(self, filter, btn, mods=Qt.NoModifier, start_state=0):
         super(ClickHandler, self).__init__()
         self.state0 = filter.add_event(start_state,
@@ -342,10 +345,19 @@ class MenuHandler(ClickHandler):
 
 
 class QtDragHandler(DragHandler):
+
+    #: Signal emitted by QtDragHandler when starting tracking
     SIG_START_TRACKING = Signal("PyQt_PyObject", "QEvent")
+    
+    #: Signal emitted by QtDragHandler when stopping tracking and not moving
     SIG_STOP_NOT_MOVING = Signal("PyQt_PyObject", "QEvent")
+    
+    #: Signal emitted by QtDragHandler when stopping tracking and moving
     SIG_STOP_MOVING = Signal("PyQt_PyObject", "QEvent")
+    
+    #: Signal emitted by QtDragHandler when moving
     SIG_MOVE = Signal("PyQt_PyObject", "QEvent")
+
     def start_tracking(self, filter, event):
         DragHandler.start_tracking(self, filter, event)
         self.SIG_START_TRACKING.emit(filter, event)
@@ -584,6 +596,8 @@ class ObjectHandler(object):
 
 
 class RectangularSelectionHandler(DragHandler):
+
+    #: Signal emitted by RectangularSelectionHandler when ending selection
     SIG_END_RECT = Signal("PyQt_PyObject", "QPoint", "QPoint")
     
     def __init__(self, filter, btn, mods=Qt.NoModifier, start_state=0):
diff --git a/guiqwt/histogram.py b/guiqwt/histogram.py
index cf7103f..d4315f2 100644
--- a/guiqwt/histogram.py
+++ b/guiqwt/histogram.py
@@ -28,7 +28,7 @@ Example
 
 Simple histogram plotting example:
 
-.. literalinclude:: ../guiqwt/tests/histogram.py
+.. literalinclude:: /../guiqwt/tests/histogram.py
 
 Reference
 ~~~~~~~~~
@@ -122,16 +122,26 @@ class HistogramItem(CurveItem):
         self.setCurveAttribute(QwtPlotCurve.Inverted)
             
     def set_hist_source(self, src):
-        """Set histogram source
-        (source: object with method 'get_histogram',
-         e.g. objects derived from guiqwt.image.ImageItem)"""
+        """
+        Set histogram source
+        
+        *source*:
+            
+            Object with method `get_histogram`, e.g. objects derived from 
+            :py:data:`guiqwt.image.ImageItem`
+        """
         self.source = weakref.ref(src)
         self.update_histogram()
 
     def get_hist_source(self):
-        """Return histogram source
-        (source: object with method 'get_histogram',
-         e.g. objects derived from guiqwt.image.ImageItem)"""
+        """
+        Return histogram source
+        
+        *source*:
+            
+            Object with method `get_histogram`, e.g. objects derived from 
+            :py:data:`guiqwt.image.ImageItem`
+        """
         if self.source is not None:
             return self.source()
         
@@ -198,7 +208,10 @@ assert_interfaces_valid(HistogramItem)
 
 class LevelsHistogram(CurvePlot):
     """Image levels histogram widget"""
+    
+    #: Signal emitted by LevelsHistogram when LUT range was changed
     SIG_VOI_CHANGED = Signal()
+
     def __init__(self, parent=None):
         super(LevelsHistogram, self).__init__(parent=parent, title="",
                                               section="histogram")
diff --git a/guiqwt/image.py b/guiqwt/image.py
index 6c7f550..9704576 100644
--- a/guiqwt/image.py
+++ b/guiqwt/image.py
@@ -43,6 +43,7 @@ Examples
 ~~~~~~~~
 
 Create a basic image plotting widget:
+    
     * before creating any widget, a `QApplication` must be instantiated (that
       is a `Qt` internal requirement):
 
@@ -68,10 +69,11 @@ Generate random data for testing purpose:
 >>> data = np.random.rand(100, 100)
 
 Create a simple image item:
+    
     * from the associated plot item class (e.g. `XYImageItem` to create
       an image with non-linear X/Y axes): the item properties are then
       assigned by creating the appropriate style parameters object
-      (e.g. :py:class:`guiqwt.styles.ImageParam)
+      (e.g. :py:class:`guiqwt.styles.ImageParam`)
 
 >>> from guiqwt.curve import ImageItem
 >>> from guiqwt.styles import ImageParam
@@ -370,8 +372,10 @@ class BaseImageItem(QwtPlotItem):
         (i.e. indexes may be outside image index bounds: negative or
         superior than the image dimension)
 
-        Note: this is *not* the same as retrieving the canvas pixel
-        coordinates (which depends on the zoom level)
+        .. note::
+
+            This is *not* the same as retrieving the canvas pixel coordinates 
+            (which depends on the zoom level)
         """
         x, y = self.get_pixel_coordinates(x, y)
         i = int(pixelround(x))
@@ -387,11 +391,12 @@ class BaseImageItem(QwtPlotItem):
     def get_data(self, x0, y0, x1=None, y1=None):
         """
         Return image data
-        Arguments:
-          x0, y0 [, x1, y1]
+        Arguments: x0, y0 [, x1, y1]
         Return image level at coordinates (x0,y0)
+
         If x1,y1 are specified:
-          return image levels (np.ndarray) in rectangular area (x0,y0,x1,y1)
+            
+          Return image levels (np.ndarray) in rectangular area (x0,y0,x1,y1)
         """
         i0, j0 = self.get_closest_indexes(x0, y0)
         if x1 is None or y1 is None:
@@ -512,8 +517,11 @@ class BaseImageItem(QwtPlotItem):
     def draw_image(self, painter, canvasRect, src_rect, dst_rect, xMap, yMap):
         """
         Draw image with painter on canvasRect
-        <!> src_rect and dst_rect are coord tuples 
-        (xleft, ytop, xright, ybottom)
+        
+        .. warning::
+
+            `src_rect` and `dst_rect` are coordinates tuples 
+            (xleft, ytop, xright, ybottom)
         """
         dest = _scale_rect(self.data, src_rect, self._offscreen, dst_rect,
                            self.lut, self.interpolate)
@@ -762,6 +770,7 @@ assert_interfaces_valid(BaseImageItem)
 class RawImageItem(BaseImageItem):
     """
     Construct a simple image item
+    
         * data: 2D NumPy array
         * param (optional): image parameters
           (:py:class:`guiqwt.styles.RawImageParam` instance)
@@ -837,6 +846,7 @@ class RawImageItem(BaseImageItem):
     def set_data(self, data, lut_range=None):
         """
         Set Image item data
+        
             * data: 2D NumPy array
             * lut_range: LUT range -- tuple (levelmin, levelmax)
         """
@@ -888,6 +898,7 @@ assert_interfaces_valid(RawImageItem)
 class ImageItem(RawImageItem):
     """
     Construct a simple image item
+    
         * data: 2D NumPy array
         * param (optional): image parameters
           (:py:class:`guiqwt.styles.ImageParam` instance)
@@ -1055,6 +1066,7 @@ assert_interfaces_valid(ImageItem)
 class QuadGridItem(RawImageItem):
     """
     Construct a QuadGrid image
+    
         * X, Y, Z: A structured grid of quadrilaterals
           each quad is defined by (X[i], Y[i]), (X[i], Y[i+1]),
           (X[i+1], Y[i+1]), (X[i+1], Y[i])
@@ -1095,6 +1107,7 @@ class QuadGridItem(RawImageItem):
     def set_data(self, data, X=None, Y=None, lut_range=None):
         """
         Set Image item data
+        
             * data: 2D NumPy array
             * lut_range: LUT range -- tuple (levelmin, levelmax)
         """
@@ -1137,6 +1150,7 @@ assert_interfaces_valid(QuadGridItem)
 class TrImageItem(RawImageItem):
     """
     Construct a transformable image item
+    
         * data: 2D NumPy array
         * param (optional): image parameters
           (:py:class:`guiqwt.styles.TrImageParam` instance)
@@ -1373,9 +1387,12 @@ def assemble_imageitems(items, src_qrect, destw, desth, align=None,
                         apply_interpolation=False,
                         original_resolution=False):
     """
-    Assemble together image items in qrect (QRectF object)
+    Assemble together image items in qrect (`QRectF` object)
     and return resulting pixel data
-    <!> Does not support XYImageItem objects
+    
+    .. warning::
+
+        Does not support `XYImageItem` objects
     """
     # align width to 'align' bytes
     if align is not None:
@@ -1421,8 +1438,8 @@ def assemble_imageitems(items, src_qrect, destw, desth, align=None,
 
 def get_plot_qrect(plot, p0, p1):
     """
-    Return QRectF rectangle object in plot coordinates
-    from top-left and bottom-right QPoint objects in canvas coordinates
+    Return `QRectF` rectangle object in plot coordinates
+    from top-left and bottom-right `QPoint` objects in canvas coordinates
     """
     ax, ay = plot.X_BOTTOM, plot.Y_LEFT
     p0x, p0y = plot.invTransform(ax, p0.x()), plot.invTransform(ay, p0.y())
@@ -1431,7 +1448,7 @@ def get_plot_qrect(plot, p0, p1):
 
 def get_items_in_rectangle(plot, p0, p1, item_type=None):
     """Return items which bounding rectangle intersects (p0, p1)
-    item_type: default is IExportROIImageItemType"""
+    item_type: default is `IExportROIImageItemType`"""
     if item_type is None:
         item_type = IExportROIImageItemType
     items = plot.get_items(item_type=IExportROIImageItemType)
@@ -1439,7 +1456,7 @@ def get_items_in_rectangle(plot, p0, p1, item_type=None):
     return [it for it in items if src_qrect.intersects(it.boundingRect())]
 
 def compute_trimageitems_original_size(items, src_w, src_h):
-    """Compute TrImageItem original size from max dx and dy"""
+    """Compute `TrImageItem` original size from max dx and dy"""
     trparams = [item.get_transform() for item in items
                 if isinstance(item, TrImageItem)]
     if trparams:
@@ -1453,8 +1470,8 @@ def get_image_from_qrect(plot, p0, p1, src_size=None,
                          adjust_range=None, item_type=None,
                          apply_lut=False, apply_interpolation=False,
                          original_resolution=False):
-    """Return image array from QRect area (p0 and p1 are respectively the 
-    top-left and bottom-right QPoint objects)
+    """Return image array from `QRect` area (p0 and p1 are respectively the 
+    top-left and bottom-right `QPoint` objects)
     
     adjust_range: None (return raw data, dtype=np.float32), 'original' 
     (return data with original data type), 'normalize' (normalize range with
@@ -1507,12 +1524,14 @@ def get_image_from_plot(plot, p0, p1, destw=None, desth=None, add_images=False,
                         original_resolution=False):
     """
     Return pixel data of a rectangular plot area (image items only)
-    p0, p1: resp. top-left and bottom-right points (QPoint objects)
+    p0, p1: resp. top-left and bottom-right points (`QPoint` objects)
     apply_lut: apply contrast settings
     add_images: add superimposed images (instead of replace by the foreground)
 
-    Support only the image items implementing the IExportROIImageItemType
-    interface, i.e. this does *not* support XYImageItem objects
+    .. warning::
+
+        Support only the image items implementing the `IExportROIImageItemType`
+        interface, i.e. this does *not* support `XYImageItem` objects
     """
     if destw is None:
         destw = p1.x()-p0.x()+1
@@ -1540,6 +1559,7 @@ def to_bins(x):
 class XYImageItem(RawImageItem):
     """
     Construct an image item with non-linear X/Y axes
+    
         * x: 1D NumPy array, must be increasing
         * y: 1D NumPy array, must be increasing
         * data: 2D NumPy array
@@ -1684,8 +1704,9 @@ assert_interfaces_valid(XYImageItem)
 class RGBImageItem(ImageItem):
     """
     Construct a RGB/RGBA image item
+    
         * data: NumPy array of uint8 (shape: NxMx[34] -- 3: RGB, 4: RGBA)
-        (last dimension: 0:Red, 1:Green, 2:Blue[, 3:Alpha])
+          (last dimension: 0: Red, 1: Green, 2: Blue {, 3:Alpha})
         * param (optional): image parameters
           (:py:class:`guiqwt.styles.RGBImageParam` instance)
     """
@@ -1794,6 +1815,7 @@ class MaskedArea(object):
 class MaskedImageItem(ImageItem):
     """
     Construct a masked image item
+    
         * data: 2D NumPy array
         * mask (optional): 2D NumPy array
         * param (optional): image parameters
@@ -1886,9 +1908,12 @@ class MaskedImageItem(ImageItem):
     def set_mask_filename(self, fname):
         """
         Set mask filename
-        There are two ways for pickling mask data of MaskedImageItem objects:
+        
+        There are two ways for pickling mask data of `MaskedImageItem` objects:
+
             1. using the mask filename (as for data itself)
-            2. using the mask areas (MaskedAreas instance, see set_mask_areas)
+            2. using the mask areas (`MaskedAreas` instance, see set_mask_areas)
+
         When saving objects, the first method is tried and then, if no
         filename has been defined for mask data, the second method is used.
         """
@@ -1918,7 +1943,7 @@ class MaskedImageItem(ImageItem):
         self._masked_areas.append(area)
 
     def _mask_changed(self):
-        """Emit the SIG_MASK_CHANGED signal (emitter: plot)"""
+        """Emit the :py:data:`guiqwt.baseplot.BasePlot.SIG_MASK_CHANGED` signal"""
         plot = self.plot()
         if plot is not None:
             plot.SIG_MASK_CHANGED.emit(self)
@@ -1968,7 +1993,7 @@ class MaskedImageItem(ImageItem):
                            trace=True, do_signal=True):
         """
         Mask circular area, inside the rectangle (x0, y0, x1, y1), i.e.
-        circle with a radius of .5*(x1-x0)
+        circle with a radius of ``.5\*(x1-x0)``
         If inside is True (default), mask the inside of the area
         Otherwise, mask the outside
         """
@@ -2030,6 +2055,7 @@ class MaskedImageItem(ImageItem):
     def set_data(self, data, lut_range=None):
         """
         Set Image item data
+        
             * data: 2D NumPy array
             * lut_range: LUT range -- tuple (levelmin, levelmax)
         """
@@ -2051,6 +2077,7 @@ class MaskedImageItem(ImageItem):
 class ImageFilterItem(BaseImageItem):
     """
     Construct a rectangular area image filter item
+    
         * image: :py:class:`guiqwt.image.RawImageItem` instance
         * filter: function (x, y, data) --> data
         * param: image filter parameters
@@ -2076,6 +2103,7 @@ class ImageFilterItem(BaseImageItem):
     def set_image(self, image):
         """
         Set the image item on which the filter will be applied
+        
             * image: :py:class:`guiqwt.image.RawImageItem` instance
         """
         self.image = image
@@ -2083,6 +2111,7 @@ class ImageFilterItem(BaseImageItem):
     def set_filter(self, filter):
         """
         Set the filter function
+        
             * filter: function (x, y, data) --> data
         """
         self.filter = filter
@@ -2166,6 +2195,7 @@ class ImageFilterItem(BaseImageItem):
 class XYImageFilterItem(ImageFilterItem):
     """
     Construct a rectangular area image filter item
+    
         * image: :py:class:`guiqwt.image.XYImageItem` instance
         * filter: function (x, y, data) --> data
         * param: image filter parameters
@@ -2177,6 +2207,7 @@ class XYImageFilterItem(ImageFilterItem):
     def set_image(self, image):
         """
         Set the image item on which the filter will be applied
+        
             * image: :py:class:`guiqwt.image.XYImageItem` instance
         """
         ImageFilterItem.set_image(self, image)
@@ -2215,6 +2246,7 @@ assert_interfaces_valid(ImageFilterItem)
 class Histogram2DItem(BaseImageItem):
     """
     Construct a 2D histogram item
+    
         * X: data (1-D array)
         * Y: data (1-D array)
         * param (optional): style parameters
@@ -2353,6 +2385,7 @@ class ImagePlot(CurvePlot):
     """
     Construct a 2D curve and image plotting widget
     (this class inherits :py:class:`guiqwt.curve.CurvePlot`)
+    
         * parent: parent widget
         * title: plot title (string)
         * xlabel, ylabel, zlabel: resp. bottom, left and right axis titles
@@ -2505,10 +2538,10 @@ class ImagePlot(CurvePlot):
         """
         Add a *plot item* instance to this *plot widget*
 
-        item: QwtPlotItem (PyQt4.Qwt5) object implementing
-              the IBasePlotItem interface (guiqwt.interfaces)
-        z: item's z order (None -> z = max(self.get_items())+1)
-        autoscale: True -> rescale plot to fit image bounds
+            * item: :py:data:`qwt.QwtPlotItem` object implementing the 
+              :py:data:`guiqwt.interfaces.IBasePlotItem` interface
+            * z: item's z order (None -> z = max(self.get_items())+1)
+              autoscale: True -> rescale plot to fit image bounds
         """
         CurvePlot.add_item(self, item, z)
         if isinstance(item, BaseImageItem):
diff --git a/guiqwt/panels.py b/guiqwt/panels.py
index 5de9560..bfb0770 100644
--- a/guiqwt/panels.py
+++ b/guiqwt/panels.py
@@ -9,9 +9,10 @@
 guiqwt.panels
 -------------
 
-The `panels` module provides :py:class:`guiqwt.curve.PanelWidget` (the `panel` 
-widget class from which all panels must derived) and identifiers for each kind 
-of panel:
+The `panels` module provides :py:class:`guiqwt.panels.PanelWidget` (the 
+`panel` widget class from which all panels must derived from) and identifiers 
+for each kind of panel:
+
     * :py:data:`guiqwt.panels.ID_ITEMLIST`: ID of the `item list` panel
     * :py:data:`guiqwt.panels.ID_CONTRAST`: ID of the `contrast 
       adjustment` panel
@@ -44,19 +45,19 @@ from guidata.qtwidgets import DockableWidget
 # Panel IDs
 #===============================================================================
 
-# Item list panel
+#: Item list panel
 ID_ITEMLIST = "itemlist"
 
-# Contrast adjustment panel
+#: Contrast adjustment panel
 ID_CONTRAST = "contrast"
 
-# X-cross section panel
+#: X-cross section panel
 ID_XCS = "x_cross_section"
 
-# Y-cross section panel
+#: Y-cross section panel
 ID_YCS = "y_cross_section"
 
-# Oblique averaged cross section panel
+#: Oblique averaged cross section panel
 ID_OCS = "oblique_cross_section"
 
 
@@ -64,9 +65,13 @@ ID_OCS = "oblique_cross_section"
 # Base Panel Widget class
 #===============================================================================
 class PanelWidget(DockableWidget):
+    """Panel Widget base class"""
+
     PANEL_ID = None # string
     PANEL_TITLE = None # string
     PANEL_ICON = None # string
+
+    #: Signal emitted by PanelWidget when its visibility has changed (arg: bool)
     SIG_VISIBILITY_CHANGED = Signal(bool)
     
     def __init__(self, parent=None):
diff --git a/guiqwt/plot.py b/guiqwt/plot.py
index 4ddf817..2585da4 100644
--- a/guiqwt/plot.py
+++ b/guiqwt/plot.py
@@ -53,15 +53,15 @@ Class diagrams
 
 Curve-related widgets with integrated plot manager:
 
-.. image:: images/curve_widgets.png
+.. image:: /images/curve_widgets.png
 
 Image-related widgets with integrated plot manager:
 
-.. image:: images/image_widgets.png
+.. image:: /images/image_widgets.png
 
 Building your own plot manager:
 
-.. image:: images/my_plot_manager.png
+.. image:: /images/my_plot_manager.png
 
 
 Examples
@@ -69,7 +69,7 @@ Examples
 
 Simple example *without* the `plot manager`:
 
-.. literalinclude:: ../guiqwt/tests/filtertest1.py
+.. literalinclude:: /../guiqwt/tests/filtertest1.py
    :start-after: SHOW
    :end-before: Workaround for Sphinx v0.6 bug: empty 'end-before' directive
 
@@ -79,7 +79,7 @@ even if this simple example does not justify the use of the `plot manager`
 complex applications, using the `plot manager` allows to design highly versatile
 graphical user interfaces.
 
-.. literalinclude:: ../guiqwt/tests/filtertest2.py
+.. literalinclude:: /../guiqwt/tests/filtertest2.py
    :start-after: SHOW
    :end-before: Workaround for Sphinx v0.6 bug: empty 'end-before' directive
 
@@ -255,8 +255,8 @@ class PlotManager(object):
         Register a tool to the manager
             * ToolKlass: tool's class (`guiqwt` builtin tools are defined in 
               module :py:mod:`guiqwt.tools`)
-            * *args: arguments sent to the tool's class
-            * **kwargs: keyword arguments sent to the tool's class
+            * args: arguments sent to the tool's class
+            * kwargs: keyword arguments sent to the tool's class
         
         Plot manager's registration sequence is the following:
             1. add plots
@@ -512,11 +512,15 @@ class PlotManager(object):
         """
         Register only curve-related tools
         
-        .. seealso:: methods 
-        :py:meth:`guiqwt.plot.PlotManager.add_tool`
-        :py:meth:`guiqwt.plot.PlotManager.register_standard_tools`
-        :py:meth:`guiqwt.plot.PlotManager.register_other_tools`
-        :py:meth:`guiqwt.plot.PlotManager.register_image_tools`
+        .. seealso::
+            
+            :py:meth:`guiqwt.plot.PlotManager.add_tool`
+            
+            :py:meth:`guiqwt.plot.PlotManager.register_standard_tools`
+            
+            :py:meth:`guiqwt.plot.PlotManager.register_other_tools`
+            
+            :py:meth:`guiqwt.plot.PlotManager.register_image_tools`
         """
         self.add_tool(SignalStatsTool)
         self.add_tool(AntiAliasingTool)
@@ -526,11 +530,15 @@ class PlotManager(object):
         """
         Register only image-related tools
         
-        .. seealso:: methods 
-        :py:meth:`guiqwt.plot.PlotManager.add_tool`
-        :py:meth:`guiqwt.plot.PlotManager.register_standard_tools`
-        :py:meth:`guiqwt.plot.PlotManager.register_other_tools`
-        :py:meth:`guiqwt.plot.PlotManager.register_curve_tools`
+        .. seealso::
+            
+            :py:meth:`guiqwt.plot.PlotManager.add_tool`
+            
+            :py:meth:`guiqwt.plot.PlotManager.register_standard_tools`
+            
+            :py:meth:`guiqwt.plot.PlotManager.register_other_tools`
+            
+            :py:meth:`guiqwt.plot.PlotManager.register_curve_tools`
         """
         self.add_tool(ColormapTool)
         self.add_tool(ReverseYAxisTool)
@@ -549,11 +557,15 @@ class PlotManager(object):
         """
         Register other common tools
         
-        .. seealso:: methods 
-        :py:meth:`guiqwt.plot.PlotManager.add_tool`
-        :py:meth:`guiqwt.plot.PlotManager.register_standard_tools`
-        :py:meth:`guiqwt.plot.PlotManager.register_curve_tools`
-        :py:meth:`guiqwt.plot.PlotManager.register_image_tools`
+        .. seealso::
+
+            :py:meth:`guiqwt.plot.PlotManager.add_tool`
+            
+            :py:meth:`guiqwt.plot.PlotManager.register_standard_tools`
+            
+            :py:meth:`guiqwt.plot.PlotManager.register_curve_tools`
+            
+            :py:meth:`guiqwt.plot.PlotManager.register_image_tools`
         """
         self.add_tool(SaveAsTool)
         self.add_tool(CopyToClipboardTool)
@@ -564,13 +576,19 @@ class PlotManager(object):
         """
         Register standard, curve-related and other tools
         
-        .. seealso:: methods 
-        :py:meth:`guiqwt.plot.PlotManager.add_tool`
-        :py:meth:`guiqwt.plot.PlotManager.register_standard_tools`
-        :py:meth:`guiqwt.plot.PlotManager.register_other_tools`
-        :py:meth:`guiqwt.plot.PlotManager.register_curve_tools`
-        :py:meth:`guiqwt.plot.PlotManager.register_image_tools`
-        :py:meth:`guiqwt.plot.PlotManager.register_all_image_tools`
+        .. seealso::
+
+            :py:meth:`guiqwt.plot.PlotManager.add_tool`
+            
+            :py:meth:`guiqwt.plot.PlotManager.register_standard_tools`
+            
+            :py:meth:`guiqwt.plot.PlotManager.register_other_tools`
+            
+            :py:meth:`guiqwt.plot.PlotManager.register_curve_tools`
+            
+            :py:meth:`guiqwt.plot.PlotManager.register_image_tools`
+            
+            :py:meth:`guiqwt.plot.PlotManager.register_all_image_tools`
         """
         self.register_standard_tools()
         self.add_separator_tool()
@@ -584,13 +602,19 @@ class PlotManager(object):
         """
         Register standard, image-related and other tools
         
-        .. seealso:: methods 
-        :py:meth:`guiqwt.plot.PlotManager.add_tool`
-        :py:meth:`guiqwt.plot.PlotManager.register_standard_tools`
-        :py:meth:`guiqwt.plot.PlotManager.register_other_tools`
-        :py:meth:`guiqwt.plot.PlotManager.register_curve_tools`
-        :py:meth:`guiqwt.plot.PlotManager.register_image_tools`
-        :py:meth:`guiqwt.plot.PlotManager.register_all_curve_tools`
+        .. seealso::
+
+            :py:meth:`guiqwt.plot.PlotManager.add_tool`
+
+            :py:meth:`guiqwt.plot.PlotManager.register_standard_tools`
+
+            :py:meth:`guiqwt.plot.PlotManager.register_other_tools`
+
+            :py:meth:`guiqwt.plot.PlotManager.register_curve_tools`
+
+            :py:meth:`guiqwt.plot.PlotManager.register_image_tools`
+
+            :py:meth:`guiqwt.plot.PlotManager.register_all_curve_tools`
         """
         self.register_standard_tools()
         self.add_separator_tool()
@@ -713,6 +737,7 @@ class CurveWidget(BaseCurveWidget, PlotManager):
     """
     Construct a CurveWidget object: plotting widget with integrated 
     plot manager
+    
         * parent: parent widget
         * title: plot title
         * xlabel: (bottom axis title, top axis title) or bottom axis title only
@@ -815,6 +840,7 @@ class CurveDialog(QDialog, CurveWidgetMixin):
     """
     Construct a CurveDialog object: plotting dialog box with integrated 
     plot manager
+    
         * wintitle: window title
         * icon: window icon
         * edit: editable state
@@ -865,7 +891,9 @@ class CurveDialog(QDialog, CurveWidgetMixin):
         
 class CurveWindow(QMainWindow, CurveWidgetMixin):
     """
-    Construct a CurveWindow object: plotting window with integrated plot manager
+    Construct a CurveWindow object: plotting window with integrated plot 
+    manager
+    
         * wintitle: window title
         * icon: window icon
         * toolbar: show/hide toolbar
@@ -1011,6 +1039,7 @@ class ImageWidget(BaseImageWidget, PlotManager):
     """
     Construct a ImageWidget object: plotting widget with integrated 
     plot manager
+    
         * parent: parent widget
         * title: plot title (string)
         * xlabel, ylabel, zlabel: resp. bottom, left and right axis titles 
@@ -1101,6 +1130,7 @@ class ImageDialog(CurveDialog, ImageWidgetMixin):
     """
     Construct a ImageDialog object: plotting dialog box with integrated 
     plot manager
+    
         * wintitle: window title
         * icon: window icon
         * edit: editable state
@@ -1115,6 +1145,7 @@ class ImageDialog(CurveDialog, ImageWidgetMixin):
 class ImageWindow(CurveWindow, ImageWidgetMixin):
     """
     Construct a ImageWindow object: plotting window with integrated plot manager
+    
         * wintitle: window title
         * icon: window icon
         * toolbar: show/hide toolbar
diff --git a/guiqwt/pyplot.py b/guiqwt/pyplot.py
index 0a80449..cc7ed18 100644
--- a/guiqwt/pyplot.py
+++ b/guiqwt/pyplot.py
@@ -454,15 +454,16 @@ def subplot(n, m, k):
     """
     Create a subplot command
     
-    Example:
-    import numpy as np
-    x = np.linspace(-5, 5, 1000)
-    figure(1)
-    subplot(2, 1, 1)
-    plot(x, np.sin(x), "r+")
-    subplot(2, 1, 2)
-    plot(x, np.cos(x), "g-")
-    show()
+    Example::
+
+        import numpy as np
+        x = np.linspace(-5, 5, 1000)
+        figure(1)
+        subplot(2, 1, 1)
+        plot(x, np.sin(x), "r+")
+        subplot(2, 1, 2)
+        plot(x, np.cos(x), "g-")
+        show()
     """
     global _current_axes
     lig = (k-1)/m
@@ -476,13 +477,13 @@ def plot(*args, **kwargs):
     """
     Plot curves
     
-    Example:
+    Example::
     
-    import numpy as np
-    x = np.linspace(-5, 5, 1000)
-    plot(x, np.sin(x), "r+")
-    plot(x, np.cos(x), "g-")
-    show()
+        import numpy as np
+        x = np.linspace(-5, 5, 1000)
+        plot(x, np.sin(x), "r+")
+        plot(x, np.cos(x), "g-")
+        show()
     """
     axe = gca()
     curves = make.mcurve(*args, **kwargs)
@@ -497,13 +498,13 @@ def plotyy(x1, y1, x2, y2):
     """
     Plot curves with two different y axes
     
-    Example:
+    Example::
         
-    import numpy as np
-    x = np.linspace(-5, 5, 1000)
-    plotyy(x, np.sin(x), x, np.cos(x))
-    ylabel("sinus", "cosinus")
-    show()
+        import numpy as np
+        x = np.linspace(-5, 5, 1000)
+        plotyy(x, np.sin(x), x, np.cos(x))
+        ylabel("sinus", "cosinus")
+        show()
     """
     axe = gca()
     curve1 = make.mcurve(x1, y1, yaxis='left')
@@ -518,12 +519,12 @@ def hist(data, bins=None, logscale=None, title=None, color=None):
     """
     Plot 1-D histogram
     
-    Example:
+    Example::
         
-    from numpy.random import normal
-    data = normal(0, 1, (2000, ))
-    hist(data)
-    show()
+        from numpy.random import normal
+        data = normal(0, 1, (2000, ))
+        hist(data)
+        show()
     """
     axe = gca()
     curve = make.histogram(data, bins=bins, logscale=logscale,
@@ -536,12 +537,12 @@ def semilogx(*args, **kwargs):
     """
     Plot curves with logarithmic x-axis scale
     
-    Example:
+    Example::
         
-    import numpy as np
-    x = np.linspace(-5, 5, 1000)
-    semilogx(x, np.sin(12*x), "g-")
-    show()
+        import numpy as np
+        x = np.linspace(-5, 5, 1000)
+        semilogx(x, np.sin(12*x), "g-")
+        show()
     """
     axe = gca()
     axe.xscale = 'log'
@@ -554,12 +555,12 @@ def semilogy(*args, **kwargs):
     """
     Plot curves with logarithmic y-axis scale
     
-    Example:
+    Example::
         
-    import numpy as np
-    x = np.linspace(-5, 5, 1000)
-    semilogy(x, np.sin(12*x), "g-")
-    show()
+        import numpy as np
+        x = np.linspace(-5, 5, 1000)
+        semilogy(x, np.sin(12*x), "g-")
+        show()
     """
     axe = gca()
     axe.yscale = 'log'
@@ -572,12 +573,12 @@ def loglog(*args, **kwargs):
     """
     Plot curves with logarithmic x-axis and y-axis scales
     
-    Example:
+    Example::
         
-    import numpy as np
-    x = np.linspace(-5, 5, 1000)
-    loglog(x, np.sin(12*x), "g-")
-    show()
+        import numpy as np
+        x = np.linspace(-5, 5, 1000)
+        loglog(x, np.sin(12*x), "g-")
+        show()
     """
     axe = gca()
     axe.xscale = 'log'
@@ -591,12 +592,12 @@ def errorbar(*args, **kwargs):
     """
     Plot curves with error bars
     
-    Example:
+    Example::
         
-    import numpy as np
-    x = np.linspace(-5, 5, 1000)
-    errorbar(x, -1+x**2/20+.2*np.random.rand(len(x)), x/20)
-    show()
+        import numpy as np
+        x = np.linspace(-5, 5, 1000)
+        errorbar(x, -1+x**2/20+.2*np.random.rand(len(x)), x/20)
+        show()
     """
     axe = gca()
     curve = make.merror(*args, **kwargs)
@@ -614,15 +615,14 @@ def imshow(data, interpolation=None, mask=None):
     Display the image in *data* to current axes
     interpolation: 'nearest', 'linear' (default), 'antialiasing'
     
-    Example:
+    Example::
         
-    import numpy as np
-    x = np.linspace(-5, 5, 1000)
-    img = np.fromfunction(lambda x, y:
-                          np.sin((x/200.)*(y/200.)**2), (1000, 1000))
-    gray()
-    imshow(img)
-    show()
+        import numpy as np
+        x = np.linspace(-5, 5, 1000)
+        img = np.fromfunction(lambda x, y: np.sin((x/200.)*(y/200.)**2), (1000, 1000))
+        gray()
+        imshow(img)
+        show()
     """
     axe = gca()
     import numpy as np
@@ -648,17 +648,17 @@ def pcolor(*args):
     """
     Create a pseudocolor plot of a 2-D array
     
-    Example:
+    Example::
     
-    import numpy as np
-    r = np.linspace(1., 16, 100)
-    th = np.linspace(0., np.pi, 100)
-    R, TH = np.meshgrid(r, th)
-    X = R*np.cos(TH)
-    Y = R*np.sin(TH)
-    Z = 4*TH+R
-    pcolor(X, Y, Z)
-    show()
+        import numpy as np
+        r = np.linspace(1., 16, 100)
+        th = np.linspace(0., np.pi, 100)
+        R, TH = np.meshgrid(r, th)
+        X = R*np.cos(TH)
+        Y = R*np.sin(TH)
+        Z = 4*TH+R
+        pcolor(X, Y, Z)
+        show()
     """
     axe = gca()
     img = make.pcolor(*args)
diff --git a/guiqwt/shapes.py b/guiqwt/shapes.py
index c38d60a..75b50d7 100644
--- a/guiqwt/shapes.py
+++ b/guiqwt/shapes.py
@@ -878,11 +878,14 @@ class ObliqueRectangleShape(PolygonShape):
     def set_rect(self, x0, y0, x1, y1, x2, y2, x3, y3):
         """
         Set the rectangle corners coordinates:
+            
             (x0, y0): top-left corner
             (x1, y1): top-right corner
             (x2, y2): bottom-right corner
             (x3, y3): bottom-left corner
             
+        ::
+            
             x: additionnal points (handles used for rotation -- other handles
             being used for rectangle resizing)
             
diff --git a/guiqwt/signals.py b/guiqwt/signals.py
index 2afa1a2..32f3fbc 100644
--- a/guiqwt/signals.py
+++ b/guiqwt/signals.py
@@ -9,9 +9,17 @@
 guiqwt.signals
 --------------
 
-The `signals` module contains constants defining the custom Qt SIGNAL objects 
-used by `guiqwt`: the signals definition are gathered here to avoid mispelling
-signals at connect and emit sites.
+In `guiqwt` version 2, the `signals` module used to contain constants defining 
+the custom Qt SIGNAL objects used by `guiqwt`: the signals definition were 
+gathered here to avoid misspelling signals at connect and emit sites (with 
+old-style signals, any misspelled signal string would have lead to a silent 
+failure of signal emission or connection).
+
+Since version 3, to ensure PyQt5 compatibility, `guiqwt` is using only 
+new-style signals and slots.
+
+However, all signals are summarized below, in order to facilitate migration 
+from `guiqwt` v2 to `guiqwt` v3.
 
 Signals available:
     :py:data:`guiqwt.baseplot.BasePlot.SIG_ITEM_MOVED`
diff --git a/guiqwt/styles.py b/guiqwt/styles.py
index b935388..84962bd 100644
--- a/guiqwt/styles.py
+++ b/guiqwt/styles.py
@@ -859,7 +859,6 @@ class CurveParam(DataSet):
     line = LineStyleItem(_("Line"))
     symbol = SymbolItem(_("Symbol"))
     shade = FloatItem(_("Shadow"), default=0, min=0, max=1)
-    fitted = BoolItem(_("Fit curve to data"), _("Fitting"), default=False)
     curvestyle = ImageChoiceItem(_("Curve style"), CURVESTYLE_CHOICES,
                                  default="Lines")
     baseline = FloatItem(_("Baseline"), default=0.)
@@ -884,8 +883,6 @@ class CurveParam(DataSet):
         curve.setBrush(brush)
         # Symbol
         self.symbol.update_symbol( curve )
-        # CurveAttribute
-        curve.setCurveAttribute(QwtPlotCurve.Fitted, self.fitted)
         # Curve style, type and baseline
         curve.setStyle(getattr(QwtPlotCurve, self.curvestyle))
         curve.setBaseline(self.baseline)
@@ -1360,9 +1357,11 @@ class MarkerParam(DataSet):
     def set_markerstyle(self, style):
         """
         Set marker line style
+
         style:
+            
             * convenient values: '+', '-', '|' or None
-            * QwtPlotMarker.NoLine, QwtPlotMarker.Vertical, ...
+            * `QwtPlotMarker.NoLine`, `QwtPlotMarker.Vertical`, ...
         """
         self.markerstyle = MARKERSTYLES.get(style, style)
 
diff --git a/guiqwt/tests/qtdesigner.ui b/guiqwt/tests/qtdesigner.ui
index 59b89c4..85a620f 100644
--- a/guiqwt/tests/qtdesigner.ui
+++ b/guiqwt/tests/qtdesigner.ui
@@ -5,8 +5,8 @@
    <rect>
     <x>0</x>
     <y>0</y>
-    <width>779</width>
-    <height>1056</height>
+    <width>500</width>
+    <height>800</height>
    </rect>
   </property>
   <property name="windowTitle" >
diff --git a/guiqwt/tools.py b/guiqwt/tools.py
index 7987d93..41e0c7a 100644
--- a/guiqwt/tools.py
+++ b/guiqwt/tools.py
@@ -88,11 +88,11 @@ Example
 The following example add all the existing tools to an `ImageWidget` object 
 for testing purpose:
 
-.. literalinclude:: ../guiqwt/tests/image_plot_tools.py
+.. literalinclude:: /../guiqwt/tests/image_plot_tools.py
    :start-after: SHOW
    :end-before: Workaround for Sphinx v0.6 bug: empty 'end-before' directive
 
-.. image:: images/screenshots/image_plot_tools.png
+.. image:: /images/screenshots/image_plot_tools.png
 
 
 Reference
@@ -359,12 +359,18 @@ class GuiTool(QObject):
 
 
 class InteractiveTool(GuiTool):
+    """Interactive tool base class"""
+    
     TITLE = None
     ICON = None
     TIP = None
     CURSOR = Qt.CrossCursor
     SWITCH_TO_DEFAULT_TOOL = False # switch to default tool when finished
+
+    #: Signal emitted by InteractiveTool when validating tool action
     SIG_VALIDATE_TOOL = Signal()
+
+    #: Signal emitted by InteractiveTool when tool job is finished
     SIG_TOOL_JOB_FINISHED = Signal()
 
     def __init__(self, manager, toolbar_id=DefaultToolbarID,
@@ -1694,7 +1700,10 @@ class PrintTool(CommandTool):
 
 
 class OpenFileTool(CommandTool):
+    
+    #: Signal emitted by OpenFileTool when a file was opened (arg: filename)
     SIG_OPEN_FILE = Signal(str)
+
     def __init__(self, manager, title=_("Open..."), formats='*.*',
                  toolbar_id=DefaultToolbarID):
         super(OpenFileTool, self).__init__(manager, title,
@@ -2081,6 +2090,8 @@ class ColormapTool(CommandTool):
 
 
 class ImageMaskTool(CommandTool):
+    
+    #: Signal emitted by ImageMaskTool when mask was applied
     SIG_APPLIED_MASK_TOOL = Signal()
 
     def __init__(self, manager, toolbar_id=DefaultToolbarID):
diff --git a/guiqwt/transitional.py b/guiqwt/transitional.py
index 67bf674..f16d4ce 100644
--- a/guiqwt/transitional.py
+++ b/guiqwt/transitional.py
@@ -16,10 +16,6 @@ No other ``guiqwt`` module should import ``qwt`` or use any of its
 interfaces directly.
 """
 
-from __future__ import print_function
-import sys
-
-print("Using experimental 'pure Python' qwt API", file=sys.stderr)
 from qwt import (QwtPlot, QwtSymbol, QwtLinearScaleEngine, QwtLogScaleEngine,
                  QwtText, QwtPlotCanvas, QwtLinearColorMap, QwtInterval,
                  toQImage, QwtPlotGrid, QwtPlotItem, QwtScaleMap, QwtPlotCurve,
diff --git a/guiqwt/widgets/fit.py b/guiqwt/widgets/fit.py
index 0f98520..c5541bb 100644
--- a/guiqwt/widgets/fit.py
+++ b/guiqwt/widgets/fit.py
@@ -19,11 +19,11 @@ The `fit` module provides an interactive curve fitting widget/dialog allowing:
 Example
 ~~~~~~~
 
-.. literalinclude:: ../guiqwt/tests/fit.py
+.. literalinclude:: /../guiqwt/tests/fit.py
    :start-after: SHOW
    :end-before: Workaround for Sphinx v0.6 bug: empty 'end-before' directive
 
-.. image:: images/screenshots/fit.png
+.. image:: /images/screenshots/fit.png
 
 Reference
 ~~~~~~~~~
diff --git a/py2exe_example/create_exe.py b/py2exe_example/create_exe.py
deleted file mode 100644
index da89b4b..0000000
--- a/py2exe_example/create_exe.py
+++ /dev/null
@@ -1,22 +0,0 @@
-#!/usr/bin/env python
-# -*- coding: utf-8 -*-
-"""
-Created on Sun May 26 11:11:57 2013
-
-Buiding instructions:
-python setup.py py2exe
-
- at author: pierre
-"""
-
-from guidata import disthelpers as dh
-
-def create_exe():
-    dist = dh.Distribution()
-    dist.setup('example', '1.0', 'guiqwt app example', 'simpledialog.pyw')
-    dist.add_modules('guidata', 'guiqwt')
-    dist.build_cx_freeze()  # use `build_py2exe` to use py2exe instead
-
-if __name__ == '__main__':
-    create_exe()
-    
\ No newline at end of file
diff --git a/py2exe_example/simpledialog.pyw b/py2exe_example/simpledialog.pyw
deleted file mode 100644
index 2387449..0000000
--- a/py2exe_example/simpledialog.pyw
+++ /dev/null
@@ -1,27 +0,0 @@
-# -*- coding: utf-8 -*-
-#
-# Copyright © 2009-2010 CEA
-# Pierre Raybaut
-# Licensed under the terms of the CECILL License
-# (see guiqwt/__init__.py for details)
-
-"""Very simple dialog box"""
-
-from guiqwt.plot import ImageDialog
-from guiqwt.builder import make
-
-class VerySimpleDialog(ImageDialog):
-    def set_data(self, data):
-        plot = self.get_plot()
-        item = make.trimage(data)
-        plot.add_item(item, z=0)
-        plot.set_active_item(item)
-        plot.replot()
-
-if __name__ == "__main__":
-    import numpy as np
-    from guidata import qapplication
-    _app = qapplication()
-    dlg = VerySimpleDialog()
-    dlg.set_data(np.random.rand(100, 100))
-    dlg.exec_() # No need to call app.exec_: a dialog box has its own event loop
diff --git a/setup.cfg b/setup.cfg
index 9828790..ce27595 100644
--- a/setup.cfg
+++ b/setup.cfg
@@ -1,5 +1,5 @@
 [egg_info]
-tag_build = 
 tag_svn_revision = 0
+tag_build = 
 tag_date = 0
 
diff --git a/src/pcolor.cpp b/src/pcolor.cpp
index cff8217..06d680f 100644
--- a/src/pcolor.cpp
+++ b/src/pcolor.cpp
@@ -16,7 +16,7 @@
     #include <fenv.h>
 #endif
 #include <math.h>
-#ifdef _MSC_VER
+#if defined(_MSC_VER) || defined(__MINGW32__)
     #define isnan(x) _isnan(x)
 #endif
 #include <stdio.h>
diff --git a/src/scaler.cpp b/src/scaler.cpp
index 66181ef..f2b2c30 100644
--- a/src/scaler.cpp
+++ b/src/scaler.cpp
@@ -26,7 +26,7 @@
     #include <fenv.h>
 #endif
 #include <math.h>
-#ifdef _MSC_VER
+#if defined(_MSC_VER) || defined(__MINGW32__)
     #define isnan(x) _isnan(x)
 #endif
 #include <stdio.h>

-- 
Alioth's /usr/local/bin/git-commit-notice on /srv/git.debian.org/git/debian-science/packages/guiqwt.git



More information about the debian-science-commits mailing list