[taurus] 02/06: Imported Upstream version 3.6.0+dfsg

Frédéric-Emmanuel Picca picca at moszumanska.debian.org
Sun Jul 26 09:39:52 UTC 2015


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

picca pushed a commit to branch master
in repository taurus.

commit 44698d50ccd5b3f58a28decb50079f92742d84b1
Author: Picca Frédéric-Emmanuel <picca at debian.org>
Date:   Fri Jul 24 17:38:33 2015 +0200

    Imported Upstream version 3.6.0+dfsg
---
 PKG-INFO                                           |  13 +-
 doc/auto_rst4api.py                                |   4 +-
 doc/buildmock.py                                   | 336 +++++++++++++++++
 doc/man/tau2taurus.1                               |   6 +-
 doc/man/taurusconfigbrowser.1                      |   6 +-
 doc/man/tauruscurve.1                              |   6 +-
 doc/man/taurusdemo.1                               |   4 +-
 doc/man/taurusdesigner.1                           |   6 +-
 doc/man/taurusdevicepanel.1                        |   6 +-
 doc/man/taurusdoc.1                                |   6 +-
 doc/man/taurusform.1                               |   6 +-
 doc/man/taurusgui.1                                |   6 +-
 doc/man/taurusimage.1                              |   6 +-
 doc/man/tauruspanel.1                              |   6 +-
 doc/man/taurusplot.1                               |   6 +-
 doc/man/taurusremotelogmonitor.1                   |   4 +-
 doc/man/taurustrend.1                              |   6 +-
 doc/man/taurustrend1d.1                            |   6 +-
 doc/man/taurustrend2d.1                            |   6 +-
 doc/man/taurusui.1                                 |   4 +-
 doc/man/taurusuic4.1                               |   6 +-
 doc/mock.zip                                       | Bin 0 -> 2128510 bytes
 doc/source/_static/taurus_showcase01.png           | Bin 0 -> 293767 bytes
 doc/source/_static/taurusgui-extapp.png            | Bin 0 -> 30118 bytes
 doc/source/_templates/layout.html                  |   8 +-
 doc/source/conf.py                                 |  77 +++-
 doc/source/contents.rst                            |  18 -
 doc/source/docs.rst                                |  22 ++
 doc/source/index.html                              |  11 -
 doc/source/index.rst                               |  78 ++--
 doc/source/sphinxext/taurusextension.py            |   4 +-
 doc/source/users/getting_started.rst               |  18 +-
 doc/source/users/introduction.rst                  |   6 +-
 doc/source/users/ui/forms.rst                      |   4 +-
 doc/source/users/ui/plot.rst                       |   2 +-
 doc/source/users/ui/taurusgui.rst                  |  30 ++
 doc/thumbnails.zip                                 | Bin 0 -> 881911 bytes
 lib/taurus/__init__.py                             |   4 +-
 lib/taurus/console/__init__.py                     |   4 +-
 lib/taurus/console/enums.py                        |   4 +-
 lib/taurus/console/list.py                         |   4 +-
 lib/taurus/console/table.py                        |   4 +-
 lib/taurus/console/util/__init__.py                |   4 +-
 lib/taurus/core/__init__.py                        |   4 +-
 lib/taurus/core/epics/__init__.py                  |   4 +-
 lib/taurus/core/epics/epicsfactory.py              |   4 +-
 lib/taurus/core/evaluation/__init__.py             |   4 +-
 lib/taurus/core/evaluation/dev_example.py          |   4 +-
 lib/taurus/core/evaluation/evalfactory.py          |   4 +-
 lib/taurus/core/evaluation/ipap_example.py         |   4 +-
 lib/taurus/core/init_bkcomp.py                     |   4 +-
 lib/taurus/core/init_lightweight.py                |   4 +-
 lib/taurus/core/release.py                         |  17 +-
 lib/taurus/core/resource/__init__.py               |   4 +-
 lib/taurus/core/resource/resfactory.py             |   4 +-
 lib/taurus/core/simulation/__init__.py             |   4 +-
 lib/taurus/core/simulation/simfactory.py           |   4 +-
 lib/taurus/core/tango/__init__.py                  |   4 +-
 lib/taurus/core/tango/enums.py                     |   4 +-
 lib/taurus/core/tango/img/__init__.py              |   7 +-
 lib/taurus/core/tango/img/img.py                   |  31 +-
 lib/taurus/core/tango/search.py                    |   4 +-
 lib/taurus/core/tango/starter.py                   |  16 +-
 lib/taurus/core/tango/tangoattribute.py            |   8 +-
 lib/taurus/core/tango/tangoconfiguration.py        |   4 +-
 lib/taurus/core/tango/tangodatabase.py             |   4 +-
 lib/taurus/core/tango/tangodevice.py               |   4 +-
 lib/taurus/core/tango/tangofactory.py              |   4 +-
 lib/taurus/core/taurusattribute.py                 |   4 +-
 lib/taurus/core/taurusbasetypes.py                 |   4 +-
 lib/taurus/core/taurusconfiguration.py             |   4 +-
 lib/taurus/core/taurusdatabase.py                  |   4 +-
 lib/taurus/core/taurusdevice.py                    |  12 +-
 lib/taurus/core/taurusexception.py                 |   4 +-
 lib/taurus/core/taurusfactory.py                   |   4 +-
 lib/taurus/core/taurushelper.py                    |   4 +-
 lib/taurus/core/tauruslistener.py                  |   4 +-
 lib/taurus/core/taurusmanager.py                   |   4 +-
 lib/taurus/core/taurusmodel.py                     |   4 +-
 lib/taurus/core/taurusoperation.py                 |   4 +-
 lib/taurus/core/tauruspollingtimer.py              |   8 +-
 lib/taurus/core/taurusvalidator.py                 |   4 +-
 lib/taurus/core/util/__init__.py                   |   4 +-
 lib/taurus/core/util/argparse/__init__.py          |   4 +-
 lib/taurus/core/util/argparse/taurusargparse.py    |   4 +-
 lib/taurus/core/util/codecs.py                     |  18 +-
 lib/taurus/core/util/colors.py                     |   4 +-
 lib/taurus/core/util/console.py                    |   4 +-
 lib/taurus/core/util/constant.py                   |   4 +-
 lib/taurus/core/util/containers.py                 |   4 +-
 lib/taurus/core/util/decorator/decorator.py        |   4 +-
 lib/taurus/core/util/decorator/deprecated.py       |   4 +-
 lib/taurus/core/util/decorator/memoize.py          |   4 +-
 lib/taurus/core/util/decorator/typecheck.py        |   4 +-
 lib/taurus/core/util/enumeration.py                |   4 +-
 lib/taurus/core/util/event.py                      |   4 +-
 lib/taurus/core/util/eventfilters.py               |   4 +-
 lib/taurus/core/util/excepthook.py                 |   4 +-
 lib/taurus/core/util/init_bkcomp.py                |   4 +-
 lib/taurus/core/util/init_lightweight.py           |   4 +-
 lib/taurus/core/util/lock.py                       |   4 +-
 lib/taurus/core/util/log.py                        |   4 +-
 lib/taurus/core/util/object.py                     |   4 +-
 lib/taurus/core/util/prop.py                       |   4 +-
 lib/taurus/core/util/property_parser.py            |   4 +-
 lib/taurus/core/util/propertyfile.py               |   4 +-
 lib/taurus/core/util/remotelogmonitor.py           |   4 +-
 lib/taurus/core/util/report/__init__.py            |   4 +-
 lib/taurus/core/util/report/report.py              |   4 +-
 lib/taurus/core/util/safeeval.py                   |   4 +-
 lib/taurus/core/util/singleton.py                  |   4 +-
 lib/taurus/core/util/sourcecode.py                 |   4 +-
 lib/taurus/core/util/tablepprint.py                |   4 +-
 lib/taurus/core/util/tb.py                         |   4 +-
 .../graphic/jdraw => core/util}/test/__init__.py   |   7 +-
 lib/taurus/core/util/test/test_codecs.py           |   4 +-
 lib/taurus/core/util/test/test_timer.py            |   4 +-
 lib/taurus/core/util/threadpool.py                 |  95 +++--
 lib/taurus/core/util/timer.py                      |   4 +-
 lib/taurus/core/util/user.py                       |   4 +-
 lib/taurus/core/util/whichexecutable.py            |   4 +-
 lib/taurus/core/util/wrap.py                       |   4 +-
 lib/taurus/core/utils/__init__.py                  |   4 +-
 lib/taurus/external/__init__.py                    |   4 +-
 lib/taurus/external/argparse/__init__.py           |   4 +-
 lib/taurus/external/enum/__init__.py               |   4 +-
 lib/taurus/external/ordereddict/__init__.py        |   4 +-
 lib/taurus/external/pint/__init__.py               |   4 +-
 lib/taurus/external/qt/Qt.py                       |   4 +-
 lib/taurus/external/qt/QtCore.py                   |   4 +-
 lib/taurus/external/qt/QtDesigner.py               |   4 +-
 lib/taurus/external/qt/QtGui.py                    |   4 +-
 lib/taurus/external/qt/QtHelp.py                   |   4 +-
 lib/taurus/external/qt/QtNetwork.py                |   4 +-
 lib/taurus/external/qt/QtSvg.py                    |   4 +-
 lib/taurus/external/qt/QtUiTools.py                |   4 +-
 lib/taurus/external/qt/QtWebKit.py                 |   4 +-
 lib/taurus/external/qt/Qwt5.py                     |   4 +-
 lib/taurus/external/qt/__init__.py                 |   4 +-
 lib/taurus/external/qt/uic.py                      |   4 +-
 lib/taurus/external/test/__init__.py               |   4 +-
 lib/taurus/external/test/test_qt.py                |  13 +-
 lib/taurus/external/unittest/__init__.py           |   4 +-
 lib/taurus/qt/Qt.py                                |   4 +-
 lib/taurus/qt/QtCore.py                            |   4 +-
 lib/taurus/qt/QtDesigner.py                        |   4 +-
 lib/taurus/qt/QtGui.py                             |   4 +-
 lib/taurus/qt/QtNetwork.py                         |   4 +-
 lib/taurus/qt/QtSvg.py                             |   4 +-
 lib/taurus/qt/QtUiTools.py                         |   4 +-
 lib/taurus/qt/QtWebKit.py                          |   4 +-
 lib/taurus/qt/Qwt5.py                              |   4 +-
 lib/taurus/qt/__init__.py                          |   4 +-
 lib/taurus/qt/qtcore/__init__.py                   |   4 +-
 lib/taurus/qt/qtcore/communication/__init__.py     |   4 +-
 .../qt/qtcore/communication/communication.py       |   4 +-
 lib/taurus/qt/qtcore/configuration/__init__.py     |   4 +-
 .../qt/qtcore/configuration/configuration.py       |   4 +-
 lib/taurus/qt/qtcore/mimetypes/__init__.py         |   4 +-
 lib/taurus/qt/qtcore/mimetypes/mimetypes.py        |   4 +-
 lib/taurus/qt/qtcore/model/__init__.py             |   4 +-
 lib/taurus/qt/qtcore/model/taurusdatabasemodel.py  |   4 +-
 lib/taurus/qt/qtcore/model/taurusmodel.py          |   4 +-
 lib/taurus/qt/qtcore/tango/__init__.py             |   4 +-
 lib/taurus/qt/qtcore/taurusqlistener.py            |   4 +-
 lib/taurus/qt/qtcore/util/__init__.py              |   4 +-
 lib/taurus/qt/qtcore/util/emitter.py               |   2 +-
 lib/taurus/qt/qtcore/util/properties.py            |   4 +-
 lib/taurus/qt/qtcore/util/tauruslog.py             |   4 +-
 lib/taurus/qt/qtdesigner/__init__.py               |   4 +-
 lib/taurus/qt/qtdesigner/containerplugin.py        |   4 +-
 lib/taurus/qt/qtdesigner/extraguiqwtplugin.py      |   4 +-
 lib/taurus/qt/qtdesigner/taurusdesigner.py         |   4 +-
 lib/taurus/qt/qtdesigner/taurusplugin/__init__.py  |   4 +-
 .../qt/qtdesigner/taurusplugin/taurusplugin.py     |   4 +-
 lib/taurus/qt/qtdesigner/tauruspluginplugin.py     |   4 +-
 lib/taurus/qt/qtgui/__init__.py                    |   4 +-
 lib/taurus/qt/qtgui/application/__init__.py        |   4 +-
 .../qt/qtgui/application/taurusapplication.py      |   4 +-
 lib/taurus/qt/qtgui/base/__init__.py               |   4 +-
 lib/taurus/qt/qtgui/base/taurusbase.py             |   4 +-
 lib/taurus/qt/qtgui/base/tauruscontroller.py       |   4 +-
 lib/taurus/qt/qtgui/base/taurusqattribute.py       |   4 +-
 lib/taurus/qt/qtgui/button/__init__.py             |   4 +-
 lib/taurus/qt/qtgui/button/qbuttonbox.py           |   4 +-
 lib/taurus/qt/qtgui/button/taurusbutton.py         |   4 +-
 lib/taurus/qt/qtgui/button/test/__init__.py        |   4 +-
 lib/taurus/qt/qtgui/button/test/res/__init__.py    |   4 +-
 .../qt/qtgui/button/test/test_taurusbutton.py      |   4 +-
 lib/taurus/qt/qtgui/compact/__init__.py            |   4 +-
 lib/taurus/qt/qtgui/compact/abstractswitcher.py    |   4 +-
 lib/taurus/qt/qtgui/compact/basicswitcher.py       |   4 +-
 lib/taurus/qt/qtgui/console/__init__.py            |   4 +-
 lib/taurus/qt/qtgui/console/taurusconsole.py       |   4 +-
 .../qt/qtgui/console/taurusconsoleapplication.py   |   4 +-
 .../qt/qtgui/console/taurusconsoleextensions.py    |   4 +-
 .../qt/qtgui/console/taurusconsolefactory.py       |   4 +-
 lib/taurus/qt/qtgui/console/taurusconsolewidget.py |   4 +-
 lib/taurus/qt/qtgui/console/taurusconsolewindow.py |   4 +-
 lib/taurus/qt/qtgui/container/__init__.py          |   4 +-
 lib/taurus/qt/qtgui/container/qcontainer.py        |   4 +-
 .../qt/qtgui/container/taurusbasecontainer.py      |   4 +-
 lib/taurus/qt/qtgui/container/taurusframe.py       |   4 +-
 lib/taurus/qt/qtgui/container/taurusgroupbox.py    |   4 +-
 lib/taurus/qt/qtgui/container/taurusgroupwidget.py |   4 +-
 lib/taurus/qt/qtgui/container/taurusmainwindow.py  |  73 +++-
 lib/taurus/qt/qtgui/container/taurusscrollarea.py  |   4 +-
 lib/taurus/qt/qtgui/container/tauruswidget.py      |   4 +-
 lib/taurus/qt/qtgui/dialog/__init__.py             |   4 +-
 .../qt/qtgui/dialog/taurusconfigurationdialog.py   |   4 +-
 lib/taurus/qt/qtgui/dialog/taurusinputdialog.py    |   4 +-
 lib/taurus/qt/qtgui/dialog/taurusmessagebox.py     |   4 +-
 lib/taurus/qt/qtgui/display/__init__.py            |   4 +-
 lib/taurus/qt/qtgui/display/demo/__init__.py       |   4 +-
 .../qt/qtgui/display/demo/qpixmapwidgetdemo.py     |   4 +-
 .../qt/qtgui/display/demo/tauruslabeldemo.py       |   4 +-
 lib/taurus/qt/qtgui/display/demo/tauruslcddemo.py  |   4 +-
 lib/taurus/qt/qtgui/display/demo/taurusleddemo.py  |   4 +-
 lib/taurus/qt/qtgui/display/qfallback.py           |   4 +-
 lib/taurus/qt/qtgui/display/qled.py                |   6 +-
 lib/taurus/qt/qtgui/display/qlogo.py               |   4 +-
 lib/taurus/qt/qtgui/display/qpixmapwidget.py       |   4 +-
 lib/taurus/qt/qtgui/display/qsevensegment.py       |   4 +-
 lib/taurus/qt/qtgui/display/taurusboolled.py       |   4 +-
 lib/taurus/qt/qtgui/display/taurusconfiglabel.py   |   4 +-
 lib/taurus/qt/qtgui/display/tauruslabel.py         |   4 +-
 lib/taurus/qt/qtgui/display/tauruslcd.py           |   4 +-
 lib/taurus/qt/qtgui/display/tauruslcdvalue.py      |   4 +-
 lib/taurus/qt/qtgui/display/taurusled.py           |   4 +-
 lib/taurus/qt/qtgui/display/taurusstateled.py      |   4 +-
 lib/taurus/qt/qtgui/display/taurusvaluelabel.py    |   4 +-
 lib/taurus/qt/qtgui/display/test/__init__.py       |   4 +-
 .../qt/qtgui/display/test/test_tauruslabel.py      |   6 +-
 lib/taurus/qt/qtgui/editor/__init__.py             |   4 +-
 lib/taurus/qt/qtgui/editor/tauruseditor.py         |   4 +-
 lib/taurus/qt/qtgui/extra_guiqwt/__init__.py       |   4 +-
 lib/taurus/qt/qtgui/extra_guiqwt/builder.py        |   4 +-
 lib/taurus/qt/qtgui/extra_guiqwt/curve.py          |   4 +-
 lib/taurus/qt/qtgui/extra_guiqwt/curvesmodel.py    |   4 +-
 lib/taurus/qt/qtgui/extra_guiqwt/image.py          |  10 +-
 lib/taurus/qt/qtgui/extra_guiqwt/plot.py           |  16 +-
 lib/taurus/qt/qtgui/extra_guiqwt/styles.py         |   4 +-
 lib/taurus/qt/qtgui/extra_guiqwt/taurustrend2d.py  |   4 +-
 lib/taurus/qt/qtgui/extra_guiqwt/tools.py          |   4 +-
 .../qt/qtgui/extra_macroexecutor/__init__.py       |   4 +-
 lib/taurus/qt/qtgui/extra_nexus/__init__.py        |   4 +-
 .../qt/qtgui/extra_nexus/taurusnexuswidget.py      |   4 +-
 lib/taurus/qt/qtgui/extra_pool/__init__.py         |   4 +-
 lib/taurus/qt/qtgui/extra_sardana/__init__.py      |   4 +-
 lib/taurus/qt/qtgui/extra_xterm/__init__.py        |   4 +-
 lib/taurus/qt/qtgui/extra_xterm/qxtermwidget.py    |   4 +-
 lib/taurus/qt/qtgui/gauge/__init__.py              |   4 +-
 lib/taurus/qt/qtgui/gauge/demo/__init__.py         |   4 +-
 lib/taurus/qt/qtgui/gauge/demo/qmeterdemo.py       |   4 +-
 lib/taurus/qt/qtgui/gauge/qmeter.py                |   4 +-
 lib/taurus/qt/qtgui/gauge/taurusgauge.py           |   4 +-
 lib/taurus/qt/qtgui/graphic/__init__.py            |   4 +-
 lib/taurus/qt/qtgui/graphic/jdraw/__init__.py      |   4 +-
 lib/taurus/qt/qtgui/graphic/jdraw/jdraw.py         |   4 +-
 lib/taurus/qt/qtgui/graphic/jdraw/jdraw_parser.py  |   4 +-
 lib/taurus/qt/qtgui/graphic/jdraw/jdraw_view.py    |   4 +-
 lib/taurus/qt/qtgui/graphic/jdraw/test/__init__.py |   4 +-
 .../qt/qtgui/graphic/jdraw/test/res/__init__.py    |   4 +-
 lib/taurus/qt/qtgui/graphic/taurusgraphic.py       |   4 +-
 lib/taurus/qt/qtgui/graphic/taurusgraphicview.py   |   4 +-
 lib/taurus/qt/qtgui/help/__init__.py               |   4 +-
 lib/taurus/qt/qtgui/help/aboutdialog.py            |   4 +-
 lib/taurus/qt/qtgui/help/assistant.py              |   4 +-
 lib/taurus/qt/qtgui/help/helppanel.py              |   4 +-
 lib/taurus/qt/qtgui/image/__init__.py              |   4 +-
 lib/taurus/qt/qtgui/image/taurusqub.py             |   4 +-
 lib/taurus/qt/qtgui/input/__init__.py              |   4 +-
 lib/taurus/qt/qtgui/input/choicedlg.py             |   4 +-
 lib/taurus/qt/qtgui/input/qwheel.py                |  45 ++-
 lib/taurus/qt/qtgui/input/tauruscheckbox.py        |   4 +-
 lib/taurus/qt/qtgui/input/tauruscombobox.py        |   4 +-
 lib/taurus/qt/qtgui/input/tauruslineedit.py        |   4 +-
 lib/taurus/qt/qtgui/input/taurusspinbox.py         |   4 +-
 lib/taurus/qt/qtgui/input/tauruswheel.py           |  63 ++--
 lib/taurus/qt/qtgui/model/__init__.py              |   4 +-
 lib/taurus/qt/qtgui/model/qbasemodel.py            |   4 +-
 lib/taurus/qt/qtgui/panel/__init__.py              |   4 +-
 lib/taurus/qt/qtgui/panel/qdataexportdialog.py     |  33 +-
 lib/taurus/qt/qtgui/panel/qdoublelist.py           |   4 +-
 lib/taurus/qt/qtgui/panel/qrawdatachooser.py       |   4 +-
 lib/taurus/qt/qtgui/panel/report/__init__.py       |   4 +-
 lib/taurus/qt/qtgui/panel/report/albareport.py     |   4 +-
 lib/taurus/qt/qtgui/panel/report/basicreport.py    |   4 +-
 .../qt/qtgui/panel/taurusattributechooser.py       |   4 +-
 lib/taurus/qt/qtgui/panel/taurusconfigbrowser.py   |   4 +-
 lib/taurus/qt/qtgui/panel/taurusconfigeditor.py    |   4 +-
 .../qt/qtgui/panel/taurusconfigurationpanel.py     |   4 +-
 lib/taurus/qt/qtgui/panel/taurusdevicepanel.py     |   4 +-
 lib/taurus/qt/qtgui/panel/taurusfilterpanel.py     |   4 +-
 lib/taurus/qt/qtgui/panel/taurusform.py            |   4 +-
 lib/taurus/qt/qtgui/panel/taurusinputpanel.py      |   4 +-
 lib/taurus/qt/qtgui/panel/taurusmessagepanel.py    |   4 +-
 lib/taurus/qt/qtgui/panel/taurusmodelchooser.py    |   4 +-
 lib/taurus/qt/qtgui/panel/taurusmodellist.py       |   4 +-
 lib/taurus/qt/qtgui/panel/taurusvalue.py           |   6 +-
 lib/taurus/qt/qtgui/panel/test/__init__.py         |   4 +-
 lib/taurus/qt/qtgui/panel/test/test_taurusform.py  |   4 +-
 lib/taurus/qt/qtgui/panel/test/test_taurusvalue.py |   4 +-
 lib/taurus/qt/qtgui/plot/__init__.py               |   4 +-
 lib/taurus/qt/qtgui/plot/arrayedit.py              |   4 +-
 lib/taurus/qt/qtgui/plot/curveStatsDlg.py          |   4 +-
 lib/taurus/qt/qtgui/plot/curveprops.py             |   4 +-
 .../qt/qtgui/plot/curvesAppearanceChooserDlg.py    |   4 +-
 lib/taurus/qt/qtgui/plot/monitor.py                |   4 +-
 lib/taurus/qt/qtgui/plot/qwtdialog.py              |   6 +-
 lib/taurus/qt/qtgui/plot/qwtplot.py                |   4 +-
 lib/taurus/qt/qtgui/plot/scales.py                 |   4 +-
 lib/taurus/qt/qtgui/plot/taurusarrayedit.py        |   4 +-
 lib/taurus/qt/qtgui/plot/taurusplot.py             |  81 +++--
 lib/taurus/qt/qtgui/plot/taurusplotconf.py         |   4 +-
 lib/taurus/qt/qtgui/plot/taurustrend.py            |   4 +-
 lib/taurus/qt/qtgui/resource/__init__.py           |   4 +-
 .../qt/qtgui/resource/taurus_resource_utils.py     |   4 +-
 lib/taurus/qt/qtgui/style/__init__.py              |   4 +-
 lib/taurus/qt/qtgui/style/nebula.py                |   4 +-
 lib/taurus/qt/qtgui/table/__init__.py              |   4 +-
 lib/taurus/qt/qtgui/table/qdictionary.py           |   4 +-
 lib/taurus/qt/qtgui/table/qlogtable.py             |   4 +-
 lib/taurus/qt/qtgui/table/qtable.py                |   4 +-
 lib/taurus/qt/qtgui/table/taurusdbtable.py         |   4 +-
 .../qt/qtgui/table/taurusdevicepropertytable.py    |   4 +-
 lib/taurus/qt/qtgui/table/taurusgrid.py            |   4 +-
 lib/taurus/qt/qtgui/table/taurustable.py           |   4 +-
 lib/taurus/qt/qtgui/table/taurusvaluestable.py     |   4 +-
 lib/taurus/qt/qtgui/table/taurusvaluestable_ro.py  |   4 +-
 .../qt/qtgui/taurusgui/PermanentCustomPanelsDlg.py |   4 +-
 lib/taurus/qt/qtgui/taurusgui/__init__.py          |   4 +-
 lib/taurus/qt/qtgui/taurusgui/appsettingswizard.py |   4 +-
 lib/taurus/qt/qtgui/taurusgui/conf/__init__.py     |   4 +-
 lib/taurus/qt/qtgui/taurusgui/conf/gui_noconf.py   |   4 +-
 lib/taurus/qt/qtgui/taurusgui/conf/gui_pureconf.py |   4 +-
 lib/taurus/qt/qtgui/taurusgui/conf/gui_selfconf.py |   4 +-
 .../taurusgui/conf/tgconf_example01/__init__.py    |   4 +-
 .../taurusgui/conf/tgconf_example01/config.py      |   4 +-
 .../taurusgui/conf/tgconf_macrogui/__init__.py     |   4 +-
 .../qtgui/taurusgui/conf/tgconf_macrogui/config.py |   4 +-
 lib/taurus/qt/qtgui/taurusgui/macrolistener.py     |   4 +-
 .../qt/qtgui/taurusgui/paneldescriptionwizard.py   |   4 +-
 lib/taurus/qt/qtgui/taurusgui/taurusgui.py         | 169 ++++++++-
 lib/taurus/qt/qtgui/taurusgui/utils.py             |   4 +-
 lib/taurus/qt/qtgui/test/__init__.py               |   4 +-
 lib/taurus/qt/qtgui/test/base.py                   |  13 +-
 lib/taurus/qt/qtgui/tree/__init__.py               |   4 +-
 lib/taurus/qt/qtgui/tree/qtree.py                  |   4 +-
 lib/taurus/qt/qtgui/tree/taurusdbtree.py           |   4 +-
 lib/taurus/qt/qtgui/tree/taurusdevicetree.py       |   4 +-
 lib/taurus/qt/qtgui/tree/taurustree.py             |   4 +-
 lib/taurus/qt/qtgui/util/__init__.py               |   4 +-
 lib/taurus/qt/qtgui/util/qdraganddropdebug.py      |   4 +-
 lib/taurus/qt/qtgui/util/taurusaction.py           |   9 +-
 lib/taurus/qt/qtgui/util/taurusactionfactory.py    |   4 +-
 lib/taurus/qt/qtgui/util/tauruscolor.py            |   4 +-
 lib/taurus/qt/qtgui/util/taurusropepatch.py        |   4 +-
 lib/taurus/qt/qtgui/util/taurusscreenshot.py       |   4 +-
 lib/taurus/qt/qtgui/util/tauruswidgetfactory.py    |   4 +-
 lib/taurus/qt/qtgui/util/tauruswidgettree.py       |   4 +-
 lib/taurus/qt/qtgui/util/test/__init__.py          |  14 +-
 lib/taurus/qt/qtgui/util/test/test_ui/__init__.py  |   4 +-
 .../test/test_ui/mywidget3}/__init__.py            |  14 +-
 .../util/test/test_ui/mywidget3/ui/MyWidget3.ui    |  32 ++
 lib/taurus/qt/qtgui/util/test/test_ui/test_ui.py   |  19 +-
 lib/taurus/qt/qtgui/util/ui.py                     |  13 +-
 lib/taurus/qt/qtgui/util/widgetgen.py              |   4 +-
 lib/taurus/qt/qtopengl/__init__.py                 |   4 +-
 lib/taurus/qt/uic/__init__.py                      |   4 +-
 lib/taurus/qt/uic/pyuic4/taurus.py                 |   4 +-
 lib/taurus/qt/uic/tau2taurus_map.py                |   4 +-
 lib/taurus/tauruscustomsettings.py                 |   4 +-
 lib/taurus/test/__init__.py                        |   4 +-
 lib/taurus/test/base.py                            |   4 +-
 lib/taurus/test/fuzzytest.py                       |   4 +-
 lib/taurus/test/moduleexplorer.py                  |   9 +-
 lib/taurus/test/resource.py                        |   4 +-
 lib/taurus/test/skip.py                            |   4 +-
 lib/taurus/test/test_import.py                     |   4 +-
 lib/taurus/test/testsuite.py                       |   4 +-
 lib/taurus/web/__init__.py                         |   4 +-
 lib/taurus/web/examples/tornado/demo.py            |   4 +-
 lib/taurus/web/examples/tornado/machinestatus.py   |   4 +-
 lib/taurus/web/taurustornado.py                    |   4 +-
 setup.py                                           | 398 ++++++++++++++-------
 386 files changed, 2125 insertions(+), 1141 deletions(-)

diff --git a/PKG-INFO b/PKG-INFO
index dd677d3..5d9242e 100644
--- a/PKG-INFO
+++ b/PKG-INFO
@@ -1,15 +1,16 @@
 Metadata-Version: 1.1
 Name: taurus
-Version: 3.4.0
-Summary: A library designed to provide an abstraction layer over PyTango.
-Home-page: http://packages.python.org/taurus
+Version: 3.6.0
+Summary: A framework for scientific/industrial CLIs and GUIs
+Home-page: http://www.taurus-scada.org
 Author: Carlos Pascual-Izarra
 Author-email: cpascual at cells.es
 License: LGPL
 Download-URL: http://pypi.python.org/packages/source/t/taurus
-Description: Taurus stands for TAngo User interface 'R' US. It
-        is a python framework for both CLI and GUI tango applications.
-        It is build on top of PyTango and PyQt.
+Description: Taurus is a python framework for control and data 
+        acquisition CLIs and GUIs in scientific/industrial environments. 
+        It supports multiple control systems or data sources: Tango, EPICS, spec... 
+        New control system libraries can be integrated through plugins.
 Keywords: CLI,GUI,PyTango,Tango,Shell
 Platform: Linux
 Platform: Windows XP/2000/NT
diff --git a/doc/auto_rst4api.py b/doc/auto_rst4api.py
index 863a039..a21dbcb 100644
--- a/doc/auto_rst4api.py
+++ b/doc/auto_rst4api.py
@@ -3,9 +3,9 @@
 
 #############################################################################
 ##
-## This file is part of Taurus, a Tango User Interface Library
+## This file is part of Taurus
 ## 
-## http://www.tango-controls.org/static/taurus/latest/doc/html/index.html
+## http://taurus-scada.org
 ##
 ## Copyright 2011 CELLS / ALBA Synchrotron, Bellaterra, Spain
 ## 
diff --git a/doc/buildmock.py b/doc/buildmock.py
new file mode 100644
index 0000000..acff6c4
--- /dev/null
+++ b/doc/buildmock.py
@@ -0,0 +1,336 @@
+#!/usr/bin/env python
+# -*- coding: utf-8 -*-
+
+#############################################################################
+##
+## This file is part of Taurus
+## 
+## http://taurus-scada.org
+##
+## Copyright 2011 CELLS / ALBA Synchrotron, Bellaterra, Spain
+## 
+## Taurus is free software: you can redistribute it and/or modify
+## it under the terms of the GNU Lesser General Public License as published by
+## the Free Software Foundation, either version 3 of the License, or
+## (at your option) any later version.
+## 
+## Taurus is distributed in the hope that it will be useful,
+## but WITHOUT ANY WARRANTY; without even the implied warranty of
+## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+## GNU Lesser General Public License for more details.
+## 
+## You should have received a copy of the GNU Lesser General Public License
+## along with Taurus.  If not, see <http://www.gnu.org/licenses/>.
+##
+###########################################################################
+
+# ----------------------------------------------------------------------------
+# This class also borrows much code from the build_mock_qt.py script from
+# qarbon (http://qarbon.rtfd.org/)
+# 
+# Copyright (c) 2013 European Synchrotron Radiation Facility, Grenoble, France
+#
+# ---------------------------------------------------------------------------- 
+
+''' Creates a tree of dirs and restructured text stub files for documenting 
+the API of a python module with sphinx'''
+
+from __future__ import with_statement
+
+import os
+import sys
+import glob
+import re
+import inspect
+import shutil
+
+# Define templates
+
+module_init_template = """\
+from __future__ import print_function
+
+{imports}
+
+class _MockMeta(type):
+    def __getattr__(self, name):
+        return _Mock()
+
+class _Mock(object):
+    __metaclass__ = _MockMeta
+    def __init__(self, *a, **kw):
+        object.__init__(self)
+        for k,v in kw.iteritems():
+            setattr(self, k, v)
+    def __getattr__(*a, **kw): return _Mock()
+    def __call__(*a, **kw): return _Mock()
+    def __getitem__(*a, **kw): return _Mock()
+    def __int__(*a, **kw): return 1
+    def __contains__(*a, **kw): return False
+    def __len__(*a, **kw): return 1
+    def __iter__(*a, **kw): return iter([])
+    def __exit__(*a, **kw): return False
+    def __complex__(*a, **kw): return 1j
+    def __float__(*a, **kw): return 1.0
+    def __bool__(*a, **kw): return True
+    def __nonzero__(*a, **kw): return True
+    def __oct__(*a, **kw): return 1
+    def __hex__(*a, **kw): return 0x1
+    def __long__(*a, **kw): return long(1)
+    def __index__(*a, **kw): return 1       
+"""
+
+import_template = """import {name} as {asname}"""
+mock_template = """{name} = _Mock()"""
+
+klass_template = """\
+class {klass}({super_klass}):
+  pass
+{members}"""
+
+function_template = """def {function}(*a,**k): return _Mock()"""
+member_template = """  {name} = {value!r}"""
+constant_template = """{name} = {value!r}"""
+specialfloats_template = """{name} = float('{value!r}')"""
+
+
+def abspath(*path):
+    """A method to determine absolute path for a given relative path to the
+    directory where this .py script is located"""
+    this_dir = os.path.dirname(os.path.abspath(__file__))
+    return os.path.abspath(os.path.join(this_dir, *path))
+
+def _import(name):
+    __import__(name)
+    return sys.modules[name]
+
+def _is_pseudo_enum(obj):
+    if not isinstance(obj, int):
+        return False
+    try:
+        int(repr(obj))
+        return False
+    except:
+        return True
+    
+def _is_special_float(obj):
+    if not isinstance(obj, float):
+        return False
+    return repr(obj) in ('inf', 'nan', '-inf')
+
+def _discard_element(name, exclude, include):
+    if name in include:
+        return False
+    return name in exclude or name.startswith("__")
+    
+def build_class(k_name, k, exclude=(), include=()):
+    '''return the source text for a mock class based on a given class'''
+    methods = []
+    members = []
+
+    for element_name in dir(k):
+        if _discard_element(element_name, exclude, include):
+            continue
+        try:
+            element = getattr(k, element_name)
+        except AttributeError:
+            continue
+        if _is_special_float(element):
+            members.append(specialfloats_template.format(name=element_name,
+                                                         value=element))
+        elif isinstance(element, (int, float, bool, str, unicode)):
+            try: # make sure that the repr makes sense
+                type(element)(repr(element))
+            except: # skip it (the _Mock.__getattr__ will deal with it)
+                continue
+            members.append(member_template.format(name=element_name,
+                                                  value=element))
+    members = "\n".join(members)
+
+    klass_str = klass_template.format(klass=k_name,
+                                      super_klass='_Mock',
+                                      members=members)
+    return klass_str
+
+def build_module(module_name, imports=(), out_prefix='mock',
+                 exclude=(), include=()):
+    '''generate a mock package for a given module'''
+    rel_dir = module_name.split(".")
+    abs_dir = abspath(out_prefix, *rel_dir)
+    if os.path.isdir(abs_dir):
+        return
+    os.makedirs(abs_dir)
+    module = _import(module_name)
+    fake_module_filename = os.path.join(abs_dir, "__init__.py")
+
+    klasses = []
+    constants = []
+    mocks = []
+    imports = set([import_template.format(name=m, asname=m) for m in imports])
+    for element_name in sorted(dir(module)):
+        if _discard_element(element_name, exclude, include):
+            continue
+        element = getattr(module, element_name)
+        # internal imports (from the same package)
+        if (inspect.ismodule(element) and 
+            element.__name__.split('.')[0] == module_name.split('.')[0]):
+            # add the module to the imports set #@TODO: this does not work
+            #imports.add(import_template.format(name=element.__name__, 
+            #                                    asname=element_name))
+            # @todo: The above lines were commented because they created
+            # problems with circular imports. So for now we just mock them
+            mocks.append(mock_template.format(name=element_name))
+            # make sure that the module is built
+            build_module(element.__name__, imports=(), 
+                         out_prefix=out_prefix, exclude=exclude,
+                         include=include)
+        # classes
+        elif inspect.isclass(element):
+            klasses.append(build_class(element_name, element, 
+                                       exclude=exclude, include=include))
+        # inf, and NaN constants
+        elif _is_special_float(element):
+            constants.append(specialfloats_template.format(name=element_name,
+                                                           value=element))
+        # enumerations-like objects
+        elif (_is_pseudo_enum(element)):
+            constants.append(mock_template.format(name=element_name))
+        # constants
+        elif isinstance(element, (int, float, bool, str, unicode)):
+            try: # make sure that the repr makes sense
+                type(element)(repr(element))
+            except:  # cannot write anything better than a mock
+                constants.append(mock_template.format(name=element_name))
+            constants.append(constant_template.format(name=element_name, 
+                                                      value=element))
+        # final catch-all: it covers modules, functions and other elements
+        # that aren't caught by any of the above
+        elif (element_name not in imports):
+            mocks.append(mock_template.format(name=element_name))
+
+        
+    imports = "\n".join(sorted(imports))
+
+    module_init = module_init_template.format(imports=imports)
+    mocks = "\n\n".join(mocks)
+    constants = "\n\n".join(constants)
+    klasses = "\n\n".join(klasses)
+    with open(fake_module_filename, "w") as f:
+        f.write(module_init)
+        f.write("\n\n")
+        f.write(mocks)
+        f.write("\n\n")
+        f.write(constants)
+        f.write("\n\n")
+        f.write(klasses)
+        f.write("\n\n")
+    
+def guess_submodules_from_package(module_name, exclude=(), include=()):
+    '''returns a list of submodule names found in a given package name.
+    If module_name is not implemented as a package, it returns an empty list'''
+    if module_name in exclude:
+        return []
+    module = _import(module_name)
+    try:
+        modulefile = inspect.getfile(module)
+    except TypeError:
+        return []
+    if not (modulefile.endswith('__init__.py') or 
+            modulefile.endswith('__init__.pyc') ):
+        return []
+    
+    pkgdir, _ = os.path.split(modulefile)
+    # explore pkgdir to find subdirs with __init__.py files
+    g = glob.glob(os.path.join(pkgdir, '*', '__init__.py'))
+    names = [re.findall(r".+\/(.*)\/__init__.py", s)[0] for s in g]
+    # explore pkgdir to find .py files
+    g = glob.glob(os.path.join(pkgdir, '*.py'))
+    names += [re.findall(r".+\/(.*).py", s)[0] for s in g]
+    # explore pkgdir to find .pyc files
+    g = glob.glob(os.path.join(pkgdir, '*.pyc'))
+    names += [re.findall(r".+\/(.*).pyc", s)[0] for s in g]
+    # explore pkgdir to find .so files
+    g = glob.glob(os.path.join(pkgdir, '*.so'))
+    names += [re.findall(r".+\/(.*).so", s)[0] for s in g]
+    # build list with full module names and filter out non-importable submodules
+    full_module_names = []
+    for sm_name in names:
+        name = '.'.join((module_name, sm_name))
+        # skip __main__ and __init__, etc and excluded (unless included)
+        if ( name not in include and 
+             (name in exclude or sm_name.startswith('__')) ):
+            continue
+        # check if the module is indeed importable
+        try:
+            print name
+            _import(name)
+            full_module_names.append(name)
+        except:
+            print '!'
+            pass
+    return full_module_names
+
+def build_full_module(module_name, exclude=(), include=(), out_prefix='mock'):
+    '''build a full mocked package (modules and submodules, recursively) for the
+    given module'''
+    rel_dir = module_name.split(".")
+    abs_dir = abspath(out_prefix, *rel_dir)
+    if os.path.isdir(abs_dir):
+        shutil.rmtree(abs_dir)
+    
+    build_module(module_name, imports=(), exclude=exclude, include=include,
+                 out_prefix=out_prefix)
+    
+    #recursive call for submodules
+    for name in guess_submodules_from_package(module_name, exclude=exclude):
+        build_full_module(name, exclude=exclude, include=include, 
+                          out_prefix=out_prefix)
+
+def _zipdir(basedir, archivename):
+    '''function to zip directories. Adapted from:
+    http://stackoverflow.com/questions/296499
+    '''
+    from zipfile import ZipFile, ZIP_DEFLATED
+    from contextlib import closing
+    assert os.path.isdir(basedir)
+    with closing(ZipFile(archivename, "w", ZIP_DEFLATED)) as z:
+        for root, dirs, files in os.walk(basedir):
+            #NOTE: ignore empty directories
+            for fn in files:
+                absfn = os.path.join(root, fn)
+                zfn = absfn[len(basedir)+len(os.sep):] #XXX: relative path
+                z.write(absfn, zfn)
+         
+def build_mocks_for_taurus(output='mock.zip'):
+    '''builds mocks for the packages required by taurus. The mocks are written 
+    into the given output directory (or a zip file if output ends with ".zip")
+    ''' 
+    import sys
+    import tempfile
+    
+    if output.endswith('.zip'):
+        zfile, outdir = output, tempfile.mkdtemp()
+    else:
+        zfile, outdir = None, output
+
+    module_names = ['PyTango', 'PyMca', 'numpy', 'PyQt4', 'sip', 'lxml',
+                    'guidata', 'guiqwt', 'spyderlib', 'IPython', 'ply'] 
+    #module_names = ['numpy']
+    
+    exclude = ['exec', 'None',
+               'spyderlib.scientific_startup', 
+               'spyderlib.spyder', 
+               'spyderlib.widgets.externalshell.start_ipython_kernel']
+    include = ['__version__']
+
+    for module_name in module_names:
+        build_full_module(module_name, exclude=exclude, include=include,
+                          out_prefix=outdir)
+    if zfile:
+        _zipdir(outdir, zfile) # compress the dir into the zip file 
+        shutil.rmtree(outdir) # delete the dir
+    print '\nMocks written in %s' % output
+    
+    
+
+if __name__ == "__main__": 
+    build_mocks_for_taurus() 
\ No newline at end of file
diff --git a/doc/man/tau2taurus.1 b/doc/man/tau2taurus.1
index 3826f0f..f415ee5 100644
--- a/doc/man/tau2taurus.1
+++ b/doc/man/tau2taurus.1
@@ -1,7 +1,7 @@
-.\" DO NOT MODIFY THIS FILE!  It was generated by help2man 1.46.4.
-.TH TAU2TAURUS "1" "February 2015" "tau2taurus 3.4.0" "User Commands"
+.\" DO NOT MODIFY THIS FILE!  It was generated by help2man 1.46.6.
+.TH TAU2TAURUS "1" "July 2015" "tau2taurus 3.6.0" "User Commands"
 .SH NAME
-tau2taurus \- manual page for tau2taurus 3.4.0
+tau2taurus \- manual page for tau2taurus 3.6.0
 .SH SYNOPSIS
 .B tau2taurus
 [\fI\,options\/\fR] \fI\,inputfile\/\fR
diff --git a/doc/man/taurusconfigbrowser.1 b/doc/man/taurusconfigbrowser.1
index c82f435..b2faeb8 100644
--- a/doc/man/taurusconfigbrowser.1
+++ b/doc/man/taurusconfigbrowser.1
@@ -1,7 +1,7 @@
-.\" DO NOT MODIFY THIS FILE!  It was generated by help2man 1.46.4.
-.TH TAURUSCONFIGEDITOR "1" "February 2015" "taurusconfigeditor 3.4.0" "User Commands"
+.\" DO NOT MODIFY THIS FILE!  It was generated by help2man 1.46.6.
+.TH TAURUSCONFIGEDITOR "1" "July 2015" "taurusconfigeditor 3.6.0" "User Commands"
 .SH NAME
-taurusconfigeditor \- manual page for taurusconfigeditor 3.4.0
+taurusconfigeditor \- manual page for taurusconfigeditor 3.6.0
 .SH SYNOPSIS
 .B taurusconfigbrowser
 [\fI\,options\/\fR] [\fI\,INIFILENAME\/\fR]
diff --git a/doc/man/tauruscurve.1 b/doc/man/tauruscurve.1
index 0c6aef4..bae0d51 100644
--- a/doc/man/tauruscurve.1
+++ b/doc/man/tauruscurve.1
@@ -1,7 +1,7 @@
-.\" DO NOT MODIFY THIS FILE!  It was generated by help2man 1.46.4.
-.TH TAURUS "1" "February 2015" "Taurus Curve Dialog 3.4.0" "User Commands"
+.\" DO NOT MODIFY THIS FILE!  It was generated by help2man 1.46.6.
+.TH TAURUS "1" "July 2015" "Taurus Curve Dialog 3.6.0" "User Commands"
 .SH NAME
-Taurus \- manual page for Taurus Curve Dialog 3.4.0
+Taurus \- manual page for Taurus Curve Dialog 3.6.0
 .SH SYNOPSIS
 .B tauruscurve
 [\fI\,options\/\fR] [\fI\,<model1> \/\fR[\fI\,<model2>\/\fR] ...]
diff --git a/doc/man/taurusdemo.1 b/doc/man/taurusdemo.1
index dad6426..a4ecdf9 100644
--- a/doc/man/taurusdemo.1
+++ b/doc/man/taurusdemo.1
@@ -1,5 +1,5 @@
-.\" DO NOT MODIFY THIS FILE!  It was generated by help2man 1.46.4.
-.TH TAURUSDEMO "1" "February 2015" "taurusdemo 1.0" "User Commands"
+.\" DO NOT MODIFY THIS FILE!  It was generated by help2man 1.46.6.
+.TH TAURUSDEMO "1" "July 2015" "taurusdemo 1.0" "User Commands"
 .SH NAME
 taurusdemo \- manual page for taurusdemo 1.0
 .SH SYNOPSIS
diff --git a/doc/man/taurusdesigner.1 b/doc/man/taurusdesigner.1
index a1aecb3..a3670c9 100644
--- a/doc/man/taurusdesigner.1
+++ b/doc/man/taurusdesigner.1
@@ -1,7 +1,7 @@
-.\" DO NOT MODIFY THIS FILE!  It was generated by help2man 1.46.4.
-.TH TAURUSDESIGNER "1" "February 2015" "taurusdesigner 3.4.0" "User Commands"
+.\" DO NOT MODIFY THIS FILE!  It was generated by help2man 1.46.6.
+.TH TAURUSDESIGNER "1" "July 2015" "taurusdesigner 3.6.0" "User Commands"
 .SH NAME
-taurusdesigner \- manual page for taurusdesigner 3.4.0
+taurusdesigner \- manual page for taurusdesigner 3.6.0
 .SH SYNOPSIS
 .B taurusdesigner
 [\fI\,options\/\fR] \fI\,<ui file(s)>\/\fR
diff --git a/doc/man/taurusdevicepanel.1 b/doc/man/taurusdevicepanel.1
index d699e04..898d80b 100644
--- a/doc/man/taurusdevicepanel.1
+++ b/doc/man/taurusdevicepanel.1
@@ -1,7 +1,7 @@
-.\" DO NOT MODIFY THIS FILE!  It was generated by help2man 1.46.4.
-.TH TAURUSDEVICEPANEL "1" "February 2015" "TaurusDevicePanel 3.4.0" "User Commands"
+.\" DO NOT MODIFY THIS FILE!  It was generated by help2man 1.46.6.
+.TH TAURUSDEVICEPANEL "1" "July 2015" "TaurusDevicePanel 3.6.0" "User Commands"
 .SH NAME
-TaurusDevicePanel \- manual page for TaurusDevicePanel 3.4.0
+TaurusDevicePanel \- manual page for TaurusDevicePanel 3.6.0
 .SH SYNOPSIS
 .B taurusdevicepanel
 [\fI\,options\/\fR] [\fI\,devname \/\fR[\fI\,attrs\/\fR]]
diff --git a/doc/man/taurusdoc.1 b/doc/man/taurusdoc.1
index 15ccacb..cfbedb0 100644
--- a/doc/man/taurusdoc.1
+++ b/doc/man/taurusdoc.1
@@ -1,7 +1,7 @@
-.\" DO NOT MODIFY THIS FILE!  It was generated by help2man 1.46.4.
-.TH TAURUSDOC "1" "February 2015" "taurusdoc 3.4.0" "User Commands"
+.\" DO NOT MODIFY THIS FILE!  It was generated by help2man 1.46.6.
+.TH TAURUSDOC "1" "July 2015" "taurusdoc 3.6.0" "User Commands"
 .SH NAME
-taurusdoc \- manual page for taurusdoc 3.4.0
+taurusdoc \- manual page for taurusdoc 3.6.0
 .SH SYNOPSIS
 .B taurusdoc
 [\fI\,options\/\fR]
diff --git a/doc/man/taurusform.1 b/doc/man/taurusform.1
index 21d7e70..fbc8a12 100644
--- a/doc/man/taurusform.1
+++ b/doc/man/taurusform.1
@@ -1,7 +1,7 @@
-.\" DO NOT MODIFY THIS FILE!  It was generated by help2man 1.46.4.
-.TH TAURUSFORM "1" "February 2015" "taurusform 3.4.0" "User Commands"
+.\" DO NOT MODIFY THIS FILE!  It was generated by help2man 1.46.6.
+.TH TAURUSFORM "1" "July 2015" "taurusform 3.6.0" "User Commands"
 .SH NAME
-taurusform \- manual page for taurusform 3.4.0
+taurusform \- manual page for taurusform 3.6.0
 .SH SYNOPSIS
 .B taurusform
 [\fI\,options\/\fR] [\fI\,model1 \/\fR[\fI\,model2 \/\fR...]]
diff --git a/doc/man/taurusgui.1 b/doc/man/taurusgui.1
index 918d3a0..f2c699f 100644
--- a/doc/man/taurusgui.1
+++ b/doc/man/taurusgui.1
@@ -1,7 +1,7 @@
-.\" DO NOT MODIFY THIS FILE!  It was generated by help2man 1.46.4.
-.TH TAURUSGUI "1" "February 2015" "taurusgui 3.4.0" "User Commands"
+.\" DO NOT MODIFY THIS FILE!  It was generated by help2man 1.46.6.
+.TH TAURUSGUI "1" "July 2015" "taurusgui 3.6.0" "User Commands"
 .SH NAME
-taurusgui \- manual page for taurusgui 3.4.0
+taurusgui \- manual page for taurusgui 3.6.0
 .SH SYNOPSIS
 .B taurusgui
 [\fI\,options\/\fR] \fI\,confname\/\fR
diff --git a/doc/man/taurusimage.1 b/doc/man/taurusimage.1
index 59ad39d..015d424 100644
--- a/doc/man/taurusimage.1
+++ b/doc/man/taurusimage.1
@@ -1,7 +1,7 @@
-.\" DO NOT MODIFY THIS FILE!  It was generated by help2man 1.46.4.
-.TH TAURUS "1" "February 2015" "Taurus Image Dialog 3.4.0" "User Commands"
+.\" DO NOT MODIFY THIS FILE!  It was generated by help2man 1.46.6.
+.TH TAURUS "1" "July 2015" "Taurus Image Dialog 3.6.0" "User Commands"
 .SH NAME
-Taurus \- manual page for Taurus Image Dialog 3.4.0
+Taurus \- manual page for Taurus Image Dialog 3.6.0
 .SH SYNOPSIS
 .B taurusimage
 [\fI\,options\/\fR] \fI\,<model>\/\fR
diff --git a/doc/man/tauruspanel.1 b/doc/man/tauruspanel.1
index 80eecb2..20e3940 100644
--- a/doc/man/tauruspanel.1
+++ b/doc/man/tauruspanel.1
@@ -1,7 +1,7 @@
-.\" DO NOT MODIFY THIS FILE!  It was generated by help2man 1.46.4.
-.TH TAURUSPANEL "1" "February 2015" "tauruspanel 3.4.0" "User Commands"
+.\" DO NOT MODIFY THIS FILE!  It was generated by help2man 1.46.6.
+.TH TAURUSPANEL "1" "July 2015" "tauruspanel 3.6.0" "User Commands"
 .SH NAME
-tauruspanel \- manual page for tauruspanel 3.4.0
+tauruspanel \- manual page for tauruspanel 3.6.0
 .SH SYNOPSIS
 .B tauruspanel
 [\fI\,options\/\fR] [\fI\,devname\/\fR]
diff --git a/doc/man/taurusplot.1 b/doc/man/taurusplot.1
index 61cebef..f3e4f21 100644
--- a/doc/man/taurusplot.1
+++ b/doc/man/taurusplot.1
@@ -1,7 +1,7 @@
-.\" DO NOT MODIFY THIS FILE!  It was generated by help2man 1.46.4.
-.TH TAURUSPLOT "1" "February 2015" "taurusplot 3.4.0" "User Commands"
+.\" DO NOT MODIFY THIS FILE!  It was generated by help2man 1.46.6.
+.TH TAURUSPLOT "1" "July 2015" "taurusplot 3.6.0" "User Commands"
 .SH NAME
-taurusplot \- manual page for taurusplot 3.4.0
+taurusplot \- manual page for taurusplot 3.6.0
 .SH SYNOPSIS
 .B taurusplot
 [\fI\,options\/\fR] [\fI\,<model1> \/\fR[\fI\,<model2>\/\fR] ...]
diff --git a/doc/man/taurusremotelogmonitor.1 b/doc/man/taurusremotelogmonitor.1
index d0c8e6d..822084a 100644
--- a/doc/man/taurusremotelogmonitor.1
+++ b/doc/man/taurusremotelogmonitor.1
@@ -1,5 +1,5 @@
-.\" DO NOT MODIFY THIS FILE!  It was generated by help2man 1.46.4.
-.TH TAURUS "1" "February 2015" "Taurus remote logger 1.0" "User Commands"
+.\" DO NOT MODIFY THIS FILE!  It was generated by help2man 1.46.6.
+.TH TAURUS "1" "July 2015" "Taurus remote logger 1.0" "User Commands"
 .SH NAME
 Taurus \- manual page for Taurus remote logger 1.0
 .SH SYNOPSIS
diff --git a/doc/man/taurustrend.1 b/doc/man/taurustrend.1
index 13d372f..3ed406d 100644
--- a/doc/man/taurustrend.1
+++ b/doc/man/taurustrend.1
@@ -1,7 +1,7 @@
-.\" DO NOT MODIFY THIS FILE!  It was generated by help2man 1.46.4.
-.TH TAURUSTREND "1" "February 2015" "taurustrend 3.4.0" "User Commands"
+.\" DO NOT MODIFY THIS FILE!  It was generated by help2man 1.46.6.
+.TH TAURUSTREND "1" "July 2015" "taurustrend 3.6.0" "User Commands"
 .SH NAME
-taurustrend \- manual page for taurustrend 3.4.0
+taurustrend \- manual page for taurustrend 3.6.0
 .SH SYNOPSIS
 .B taurustrend
 [\fI\,options\/\fR] [\fI\,<model1> \/\fR[\fI\,<model2>\/\fR] ...]
diff --git a/doc/man/taurustrend1d.1 b/doc/man/taurustrend1d.1
index 774fafb..206c71a 100644
--- a/doc/man/taurustrend1d.1
+++ b/doc/man/taurustrend1d.1
@@ -1,7 +1,7 @@
-.\" DO NOT MODIFY THIS FILE!  It was generated by help2man 1.46.4.
-.TH TAURUS "1" "February 2015" "Taurus Trend 3.4.0" "User Commands"
+.\" DO NOT MODIFY THIS FILE!  It was generated by help2man 1.46.6.
+.TH TAURUS "1" "July 2015" "Taurus Trend 3.6.0" "User Commands"
 .SH NAME
-Taurus \- manual page for Taurus Trend 3.4.0
+Taurus \- manual page for Taurus Trend 3.6.0
 .SH SYNOPSIS
 .B taurustrend1d
 [\fI\,options\/\fR] \fI\,<model>\/\fR
diff --git a/doc/man/taurustrend2d.1 b/doc/man/taurustrend2d.1
index fa58089..14739b2 100644
--- a/doc/man/taurustrend2d.1
+++ b/doc/man/taurustrend2d.1
@@ -1,7 +1,7 @@
-.\" DO NOT MODIFY THIS FILE!  It was generated by help2man 1.46.4.
-.TH TAURUS "1" "February 2015" "Taurus Trend 2D 3.4.0" "User Commands"
+.\" DO NOT MODIFY THIS FILE!  It was generated by help2man 1.46.6.
+.TH TAURUS "1" "July 2015" "Taurus Trend 2D 3.6.0" "User Commands"
 .SH NAME
-Taurus \- manual page for Taurus Trend 2D 3.4.0
+Taurus \- manual page for Taurus Trend 2D 3.6.0
 .SH SYNOPSIS
 .B taurustrend2d
 [\fI\,options\/\fR] \fI\,<model>\/\fR
diff --git a/doc/man/taurusui.1 b/doc/man/taurusui.1
index 645a40f..3772368 100644
--- a/doc/man/taurusui.1
+++ b/doc/man/taurusui.1
@@ -1,5 +1,5 @@
-.\" DO NOT MODIFY THIS FILE!  It was generated by help2man 1.46.4.
-.TH TAURUSUI "1" "February 2015" "taurusui 1.0" "User Commands"
+.\" DO NOT MODIFY THIS FILE!  It was generated by help2man 1.46.6.
+.TH TAURUSUI "1" "July 2015" "taurusui 1.0" "User Commands"
 .SH NAME
 taurusui \- manual page for taurusui 1.0
 .SH SYNOPSIS
diff --git a/doc/man/taurusuic4.1 b/doc/man/taurusuic4.1
index 0383b74..aef93d2 100644
--- a/doc/man/taurusuic4.1
+++ b/doc/man/taurusuic4.1
@@ -1,5 +1,5 @@
-.\" DO NOT MODIFY THIS FILE!  It was generated by help2man 1.46.4.
-.TH TAURUSUIC4 "1" "February 2015" "taurusuic4 *******************************************************************************" "User Commands"
+.\" DO NOT MODIFY THIS FILE!  It was generated by help2man 1.46.6.
+.TH TAURUSUIC4 "1" "July 2015" "taurusuic4 *******************************************************************************" "User Commands"
 .SH NAME
 taurusuic4 \- manual page for taurusuic4 *******************************************************************************
 .SH SYNOPSIS
@@ -44,4 +44,4 @@ generate an additional taurus python file
 taurusuic4 is deprecated since SEP11 (http://sf.net/p/sardana/wiki/SEP11)
 Consider using the taurus.qt.qtgui.util.UILoadable decorator instead
 *******************************************************************************
-taurusuic4 3.4.0
+taurusuic4 3.6.0
diff --git a/doc/mock.zip b/doc/mock.zip
new file mode 100644
index 0000000..6dc47bf
Binary files /dev/null and b/doc/mock.zip differ
diff --git a/doc/source/_static/taurus_showcase01.png b/doc/source/_static/taurus_showcase01.png
new file mode 100644
index 0000000..aedfa7c
Binary files /dev/null and b/doc/source/_static/taurus_showcase01.png differ
diff --git a/doc/source/_static/taurusgui-extapp.png b/doc/source/_static/taurusgui-extapp.png
new file mode 100644
index 0000000..89f4697
Binary files /dev/null and b/doc/source/_static/taurusgui-extapp.png differ
diff --git a/doc/source/_templates/layout.html b/doc/source/_templates/layout.html
index 0243cb9..1eb1940 100644
--- a/doc/source/_templates/layout.html
+++ b/doc/source/_templates/layout.html
@@ -1,10 +1,10 @@
 {% extends "sphinxdoc/layout.html" %}
 
 {% block rootrellink %}
-    <li><a href="{{ pathto('index') }}">home</a>| </li>
-    <li><a href="{{ pathto('devel/examples') }}">examples</a>| </li>
-    <li><a href="{{ pathto('users/screenshots') }}">screenshots</a>| </li>
-    <li><a href="{{ pathto('contents') }}">documentation </a> »</li>
+    <li><a href="http://taurus-scada.org">home</a>| </li>
+    <li><a href="http://sourceforge.net/projects/sardana/">project</a>| </li>
+    <li><a href="https://pypi.python.org/pypi/taurus">download</a>| </li>
+    <li><a href="http://taurus.readthedocs.org">documentation </a> »</li>
 {% endblock %}
 
 {% block relbar1 %}
diff --git a/doc/source/conf.py b/doc/source/conf.py
index adc3fea..4691848 100644
--- a/doc/source/conf.py
+++ b/doc/source/conf.py
@@ -3,9 +3,9 @@
 
 ##############################################################################
 ##
-## This file is part of Taurus, a Tango User Interface Library
+## This file is part of Taurus
 ## 
-## http://www.tango-controls.org/static/taurus/latest/doc/html/index.html
+## http://taurus-scada.org
 ##
 ## Copyright 2011 CELLS / ALBA Synchrotron, Bellaterra, Spain
 ## 
@@ -24,6 +24,24 @@
 ##
 ##############################################################################
 import sys, os
+
+
+# declare some useful absolute paths
+_this_dir = os.path.dirname(os.path.abspath(__file__))
+_setup_dir = os.path.abspath(os.path.join(_this_dir, os.path.pardir, 
+                             os.path.pardir))
+_lib_dir = os.path.join(_setup_dir, 'lib')
+_doc_dir = os.path.join(_setup_dir, 'doc')
+_api_dir = os.path.join(_doc_dir, 'source', 'devel', 'api')
+_mock_path = os.path.join(_doc_dir, 'mock.zip')
+
+
+# append mock dir to the sys path (mocks will be used if needed)
+sys.path.append(_mock_path)
+    
+# Import code from src distribution
+sys.path.insert(0, os.path.abspath(_lib_dir))
+
 import taurus
 
 # If extensions (or modules to document with autodoc) are in another directory,
@@ -31,6 +49,59 @@ import taurus
 # documentation root, use os.path.abspath to make it absolute, like shown here.
 sys.path.append(os.path.abspath('sphinxext'))
 
+# -- RTD hack -----------------------------------------------------------------
+# This code is to allow RTD to build the catalog and the api
+# it has no effect on local builds
+
+on_rtd = os.environ.get('READTHEDOCS', None) == 'True'
+if on_rtd:    
+    import imp
+
+    def _build_catalog():
+        #import setup.py as a module
+        name = 'setup'
+        data = imp.find_module(name, [_setup_dir])
+        setupmod = imp.load_module(name, *data)
+        catalog = setupmod.build_catalog()
+        #build
+        fname = os.path.join(_doc_dir, 'source', 'devel', 'catalog.html')
+        catalog.fname = fname
+        catalog.builder_target_dir = _this_dir
+        catalog.thumbnails_source = os.path.join(_doc_dir, 'thumbnails.zip')
+        catalog.verbose = True
+        catalog.out = sys.stdout
+        catalog.run()
+        
+    def _build_doc_api():
+        #import auto_rst4api from the doc dir
+        name = 'auto_rst4api'
+        data = imp.find_module(name, [_doc_dir])
+        auto_rst4api = imp.load_module(name, *data)
+        API_Creator = auto_rst4api.Auto_rst4API_Creator
+        # prepare api creator
+        excl = ['_[^\.]*[^_]', '.*.extra_sardana', '.*.extra_pool', 
+                '.*.extra_macroexecutor', 'taurus.external']
+        rstCreator = API_Creator(exclude_patterns=excl,
+                                 templatespath=_doc_dir,
+                                 overwrite_old=True,
+                                 verbose=True)
+        # clean previously existing rst files
+        rstCreator.cleanAutogenerated(_api_dir)
+        # generate api
+        import taurus
+        r = rstCreator.documentModule('taurus', _api_dir)
+        # report
+        print("Auto Creation of API docs Finished with %i warnings:" % len(r))
+        for i in r:
+            print(i)
+        
+    #build the api and the catalog    
+    _build_catalog()
+    _build_doc_api()
+
+# ------------------------------------------------------------------------------
+
+
 # -- General configuration -----------------------------------------------------
 
 #autosummary_generate = True
@@ -243,7 +314,7 @@ intersphinx_mapping = {
     'http://docs.python.org/dev': None,
     'http://docs.scipy.org/doc/scipy/reference' : None,
     'http://docs.scipy.org/doc/numpy' : None,
-    'http://www.tango-controls.org/static/PyTango/latest/doc/html' : None,
+    'http://www.esrf.fr/computing/cs/tango/tango_doc/kernel_doc/pytango/latest/': None,
     'http://pyqt.sourceforge.net/Docs/PyQt4/' : None,
 }
 
diff --git a/doc/source/contents.rst b/doc/source/contents.rst
deleted file mode 100644
index c258839..0000000
--- a/doc/source/contents.rst
+++ /dev/null
@@ -1,18 +0,0 @@
-
-.. currentmodule:: taurus
-
-.. _contents: 
-
-========
-Contents
-========
-
-.. toctree::
-   :maxdepth: 2
-
-   users/index.rst
-   devel/index.rst
-   
-* :ref:`genindex`
-* :ref:`modindex`
-* :ref:`search`
\ No newline at end of file
diff --git a/doc/source/docs.rst b/doc/source/docs.rst
new file mode 100644
index 0000000..ad00e5b
--- /dev/null
+++ b/doc/source/docs.rst
@@ -0,0 +1,22 @@
+
+.. currentmodule:: taurus
+
+.. _docs:
+
+====================
+Taurus documentation
+====================
+Taurus is a free, open source, multi-platform pure Python module for creating 
+and supporting Graphical User Interfaces for experiment control and data 
+acquisition.
+
+.. toctree::
+   :maxdepth: 2
+
+   users/index.rst
+   devel/index.rst
+
+* :ref:`genindex`
+* :ref:`modindex`
+* :ref:`search`
+
diff --git a/doc/source/index.html b/doc/source/index.html
deleted file mode 100644
index 2a3a9a5..0000000
--- a/doc/source/index.html
+++ /dev/null
@@ -1,11 +0,0 @@
-<!-- This is just a pypi redirection page.
-     Is is not intended to be part of taurus documentation. -->
-<html>
-<head>
-<title>Taurus documentation</title>
-<meta HTTP-EQUIV="REFRESH" content="0; url=http://www.tango-controls.org/static/taurus/latest/doc/html/index.html">
-<body>
-taurus documentation is too big to be hosted by PyPi.<br/>
-We are redirecting you the proper page.
-</body>
-</html>
diff --git a/doc/source/index.rst b/doc/source/index.rst
index afa4d59..53ba773 100644
--- a/doc/source/index.rst
+++ b/doc/source/index.rst
@@ -1,69 +1,57 @@
-.. Tau documentation master file, created by
-   sphinx-quickstart on Thu Dec 10 10:39:03 2009.
-   You can adapt this file completely to your liking, but it should at least
-   contain the root `toctree` directive.
 
-Welcome to Taurus's |version| documentation!
+Welcome to Taurus's Home Page!
 =============================================
 
-    |image1| |image2| |image3|
+    |image1| 
 
-.. sidebar:: Latest news
+Taurus is a python framework for control and data acquisition CLIs and GUIs
+in scientific/industrial environments.
+It supports multiple control systems or data sources: Tango_, EPICS_, spec... 
+New control system libraries can be integrated through plugins.
 
-    2015-02-04
-        Taurus 3.4.0 released!
-        
-    2014-07-11
-        Taurus 3.3.0 released!
-        
-    2014-02-14
-        Taurus 3.2.0 released!
+For non-programmers: Taurus allows the creation of fully-featured GUI (with 
+forms, plots, synoptics, etc) from scratch in a few minutes using a "wizard",
+which can also be customized and expanded by drag-and-dropping elements 
+around at execution time.
 
-    2013-07-25
-        Taurus 3.1.0 released!
+For programmers: Taurus gives full control to more advanced users to create 
+and customize CLIs and GUIs programmatically using Python and a very simple 
+and economical API which abstracts data sources as "models".
 
-    2012-04-24
-        Taurus 3.0.0 released!
+Of course, Taurus is Free Software (under LGPL). You can download it from PyPi_,
+access its Documentation_ or get support from its community and the latest code
+from the `project page <http://sourceforge.net/projects/sardana>`_.
 
-    2011-03-23
-        Taurus 2.1.1 released!
+Projects related to Taurus
+---------------------------
 
+- Taurus uses PyQt_ for the GUIs (Pyside_ support planned)
+- Tango_ is supported vis PyTango_ 
+- Taurus is part of the Sardana_ suite
 
-Taurus is a python framework for both CLI and GUI tango applications. It is
-build on top of PyTango_ and PyQt_. Taurus stands for TAngo User interface 'R' US.
 
-Taurus was originally known as Tau. Since version 2 the name was
-changed to Taurus.
-
-An :ref:`introduction` guide will help you getting started with the basic taurus
-concepts.
-
-For sampling, see the :ref:`screenshots` and :ref:`examples` directory.
-
-.. |image1| image::  _static/taurusform_example02.png
-    :align: middle
-    :height: 180
-
-.. |image2| image::  _static/taurusplot03.png
-    :align: middle
-    :height: 180
-    
-.. |image3| image::  _static/taurus_tree01.png
+.. |image1| image::  _static/taurus_showcase01.png
     :align: middle
     :height: 180
 
-
 .. toctree::
     :hidden:
 
-    contents
+    Home Page <http://www.taurus-scada.org>
+    Project Page <http://sourceforge.net/projects/tauruslib>
+    Download from PyPI <http://pypi.python.org/pypi/taurus>
+    docs
 
 :Last Update: |today|
 
 
 .. _Tango: http://www.tango-controls.org/
 .. _PyTango: http://packages.python.org/PyTango/
-.. _Qt: http://qt.nokia.com/products/
+.. _EPICS: http://www.aps.anl.gov/epics/
 .. _PyQt: http://www.riverbankcomputing.co.uk/software/pyqt/
-.. _IPython: http://ipython.scipy.org/
-.. _ATK: http://www.tango-controls.org/Documents/gui/atk/tango-application-toolkit
+.. _Sardana: http://sardana-controls.org
+.. _PySide: http://pyside.org
+.. _LGPL: http://www.gnu.org/licenses/lgpl.html
+.. _PyPi: http://pypi.python.org/pypi/taurus 
+.. _Documentation: http://taurus.readthedocs.org
+
diff --git a/doc/source/sphinxext/taurusextension.py b/doc/source/sphinxext/taurusextension.py
index cd7b993..4fe97aa 100644
--- a/doc/source/sphinxext/taurusextension.py
+++ b/doc/source/sphinxext/taurusextension.py
@@ -2,9 +2,9 @@
 
 ##############################################################################
 ##
-## This file is part of Taurus, a Tango User Interface Library
+## This file is part of Taurus
 ## 
-## http://www.tango-controls.org/static/taurus/latest/doc/html/index.html
+## http://taurus-scada.org
 ##
 ## Copyright 2011 CELLS / ALBA Synchrotron, Bellaterra, Spain
 ## 
diff --git a/doc/source/users/getting_started.rst b/doc/source/users/getting_started.rst
index ca15592..bb758f3 100644
--- a/doc/source/users/getting_started.rst
+++ b/doc/source/users/getting_started.rst
@@ -69,24 +69,20 @@ necessary to run taurus on your windows machine
 Working from Git
 ----------------
 
-Sometimes it is convenient to work directly from the git source without
-installing. Taurus code is hosted in a `subdirectory
-<http://sourceforge.net/p/sardana/sardana.git/ci/master/tree/taurus/>`_ of the
-`main Sardana git repository <http://sourceforge.net/p/sardana/sardana.git>`_
+Sometimes it is convenient to work directly from the git source without 
+installing. 
 
-You can clone sardana from our main git repository::
+You can clone taurus from our main git repository::
 
-    git clone git://git.code.sf.net/p/sardana/sardana.git sardana
-
-and you will find the taurus code in the `sardana/taurus` directory.
+    git clone git://git.code.sf.net/p/tauruslib/taurus.git taurus
 
 Then, if you decide to work directly from Git code (without installing):
 
-    1. add <sardana_root_dir>/taurus/lib to PYTHONPATH
-    2. add <sardana_root_dir>/taurus/scripts to PATH
+    1. add <taurus_root_dir>/lib to PYTHONPATH
+    2. add <taurus_root_dir>/scripts to PATH
     3. build the resources::
     
-        cd <sardana_root_dir>/taurus
+        cd <taurus_root_dir>
         python setup.py build_resources
         
 
diff --git a/doc/source/users/introduction.rst b/doc/source/users/introduction.rst
index ea2c113..10922f0 100644
--- a/doc/source/users/introduction.rst
+++ b/doc/source/users/introduction.rst
@@ -16,8 +16,10 @@ applications (CLIs and GUIs) to Tango_ device servers.
           Nevertheless, due to its Tango roots, this documentation may assume
           that you are using Tango.
 
-Taurus is developed as a part of the Sardana_ project, which aims to provide an
-integrated SCADA, but it can be used independently of the rest of Sardana.
+Taurus was developed within the Sardana_ project, but since it has being found 
+to be useful for other projects not related to Sardana, it has been 
+moved to a separate project (although both projects are kept in sync and share 
+most of their developers).
 
 For its Tango interface, Taurus uses PyTango_ which is a python binding
 for the Tango_ library. It provides an abstraction layer that allows Tango to be
diff --git a/doc/source/users/ui/forms.rst b/doc/source/users/ui/forms.rst
index 49cbb1e..f819c8d 100644
--- a/doc/source/users/ui/forms.rst
+++ b/doc/source/users/ui/forms.rst
@@ -115,10 +115,10 @@ and *how* it is shown in the form.
 - You can alter *what* is shown in two ways:
 
   - right-clicking in the form and selecting the `Modify contents` option in the
-    context menu. A :ref:`TauruModelChooser <modelchooser>` widget will let you
+    context menu. A :ref:`TaurusModelChooser <modelchooser>` widget will let you
     modify the list of taurus models being represented by the form.
   - Dropping models that you drag from another taurus widget (typically another
-    TaurusForm, or a :ref:`TauruModelChooser <modelchooser>`). See the `Drag and
+    TaurusForm, or a :ref:`TaurusModelChooser <modelchooser>`). See the `Drag and
     Drop support`_ section for more details.
   
 - Regarding *how* it is shown, you can change which widget is used for
diff --git a/doc/source/users/ui/plot.rst b/doc/source/users/ui/plot.rst
index 84292ec..9956774 100644
--- a/doc/source/users/ui/plot.rst
+++ b/doc/source/users/ui/plot.rst
@@ -161,7 +161,7 @@ stored in a file, or even against some attribute of the control system...
 ...then the `Input data selection` option from the `TaurusPlot context menu`_ is for you!
 
 From the `Attributes` tab of the import data dialog, you can choose which Tango attributes are
-plotted, thanks to a :ref:`TauruModelChooser <modelchooser>` widget.
+plotted, thanks to a :ref:`TaurusModelChooser <modelchooser>` widget.
 
 .. figure:: /_static/taurusmodelchooser01.png
    :align: center
diff --git a/doc/source/users/ui/taurusgui.rst b/doc/source/users/ui/taurusgui.rst
index 4bc6332..0c4ffd1 100644
--- a/doc/source/users/ui/taurusgui.rst
+++ b/doc/source/users/ui/taurusgui.rst
@@ -239,6 +239,36 @@ panel-crowded applications.
 Also note that you can find a button in the application toolbar for
 showing/hiding each synoptic panel.
 
+.. _externalapps:
+
+External Application Launchers
+------------------------------
+
+TaurusGui-based applications allow you to add and remove launchers for
+"external applications". An external application is some other program
+already installed in the system which will be launched as an independent
+process (i.e., the TaurusGui just provides a convenience launcher for some
+related but independent program).
+
+External application launchers may be pre-defined in the application and new
+ones can be added and removed at any moment by using the corresponding
+option of the `Tools->External Applications` menu.
+
+.. figure:: /_static/taurusgui-extapp.png
+  :align: center
+
+  External application editor. You can associate  a command, a text and
+  an icon to a new launcher
+
+Just as with the `custom panels <panelcreation>`, when you close the application
+(or when you save a :ref:`perspective <perspectives>`), a dialog will be
+shown if you have created any custom launchers. In this dialog you can choose
+which of the custom launchers you want to keep for future use and which are
+only meant for the current session.
+
+.. tip:: You may find external application launchers useful for launching some
+         arbitrary python script that automates some task related to the
+         purpose of the GUI.
 
 .. _macrostuff:
 
diff --git a/doc/thumbnails.zip b/doc/thumbnails.zip
new file mode 100644
index 0000000..0cf0971
Binary files /dev/null and b/doc/thumbnails.zip differ
diff --git a/lib/taurus/__init__.py b/lib/taurus/__init__.py
index 6862570..0c1a58d 100644
--- a/lib/taurus/__init__.py
+++ b/lib/taurus/__init__.py
@@ -2,9 +2,9 @@
 
 #############################################################################
 ##
-## This file is part of Taurus, a Tango User Interface Library
+## This file is part of Taurus
 ## 
-## http://www.tango-controls.org/static/taurus/latest/doc/html/index.html
+## http://taurus-scada.org
 ##
 ## Copyright 2011 CELLS / ALBA Synchrotron, Bellaterra, Spain
 ## 
diff --git a/lib/taurus/console/__init__.py b/lib/taurus/console/__init__.py
index dcfa585..ca26083 100644
--- a/lib/taurus/console/__init__.py
+++ b/lib/taurus/console/__init__.py
@@ -2,9 +2,9 @@
 
 #############################################################################
 ##
-## This file is part of Taurus, a Tango User Interface Library
+## This file is part of Taurus
 ## 
-## http://www.tango-controls.org/static/taurus/latest/doc/html/index.html
+## http://taurus-scada.org
 ##
 ## Copyright 2011 CELLS / ALBA Synchrotron, Bellaterra, Spain
 ## 
diff --git a/lib/taurus/console/enums.py b/lib/taurus/console/enums.py
index 4621895..d12aae3 100644
--- a/lib/taurus/console/enums.py
+++ b/lib/taurus/console/enums.py
@@ -2,9 +2,9 @@
 
 #############################################################################
 ##
-## This file is part of Taurus, a Tango User Interface Library
+## This file is part of Taurus
 ## 
-## http://www.tango-controls.org/static/taurus/latest/doc/html/index.html
+## http://taurus-scada.org
 ##
 ## Copyright 2011 CELLS / ALBA Synchrotron, Bellaterra, Spain
 ## 
diff --git a/lib/taurus/console/list.py b/lib/taurus/console/list.py
index a9b1cfb..80b8208 100644
--- a/lib/taurus/console/list.py
+++ b/lib/taurus/console/list.py
@@ -2,9 +2,9 @@
 
 #############################################################################
 ##
-## This file is part of Taurus, a Tango User Interface Library
+## This file is part of Taurus
 ## 
-## http://www.tango-controls.org/static/taurus/latest/doc/html/index.html
+## http://taurus-scada.org
 ##
 ## Copyright 2011 CELLS / ALBA Synchrotron, Bellaterra, Spain
 ## 
diff --git a/lib/taurus/console/table.py b/lib/taurus/console/table.py
index 3ac0a14..238d12d 100644
--- a/lib/taurus/console/table.py
+++ b/lib/taurus/console/table.py
@@ -2,9 +2,9 @@
 
 #############################################################################
 ##
-## This file is part of Taurus, a Tango User Interface Library
+## This file is part of Taurus
 ## 
-## http://www.tango-controls.org/static/taurus/latest/doc/html/index.html
+## http://taurus-scada.org
 ##
 ## Copyright 2011 CELLS / ALBA Synchrotron, Bellaterra, Spain
 ## 
diff --git a/lib/taurus/console/util/__init__.py b/lib/taurus/console/util/__init__.py
index b7a624b..9a620ef 100644
--- a/lib/taurus/console/util/__init__.py
+++ b/lib/taurus/console/util/__init__.py
@@ -2,9 +2,9 @@
 
 #############################################################################
 ##
-## This file is part of Taurus, a Tango User Interface Library
+## This file is part of Taurus
 ## 
-## http://www.tango-controls.org/static/taurus/latest/doc/html/index.html
+## http://taurus-scada.org
 ##
 ## Copyright 2011 CELLS / ALBA Synchrotron, Bellaterra, Spain
 ## 
diff --git a/lib/taurus/core/__init__.py b/lib/taurus/core/__init__.py
index 6677cbb..0295f9b 100644
--- a/lib/taurus/core/__init__.py
+++ b/lib/taurus/core/__init__.py
@@ -2,9 +2,9 @@
 
 #############################################################################
 ##
-## This file is part of Taurus, a Tango User Interface Library
+## This file is part of Taurus
 ## 
-## http://www.tango-controls.org/static/taurus/latest/doc/html/index.html
+## http://taurus-scada.org
 ##
 ## Copyright 2011 CELLS / ALBA Synchrotron, Bellaterra, Spain
 ## 
diff --git a/lib/taurus/core/epics/__init__.py b/lib/taurus/core/epics/__init__.py
index 56dd24a..5ae00d2 100644
--- a/lib/taurus/core/epics/__init__.py
+++ b/lib/taurus/core/epics/__init__.py
@@ -2,9 +2,9 @@
 
 #############################################################################
 ##
-## This file is part of Taurus, a Tango User Interface Library
+## This file is part of Taurus
 ## 
-## http://www.tango-controls.org/static/taurus/latest/doc/html/index.html
+## http://taurus-scada.org
 ##
 ## Copyright 2011 CELLS / ALBA Synchrotron, Bellaterra, Spain
 ## 
diff --git a/lib/taurus/core/epics/epicsfactory.py b/lib/taurus/core/epics/epicsfactory.py
index b6922ea..d214c93 100644
--- a/lib/taurus/core/epics/epicsfactory.py
+++ b/lib/taurus/core/epics/epicsfactory.py
@@ -1,9 +1,9 @@
 #!/usr/bin/env python
 #############################################################################
 ##
-## This file is part of Taurus, a Tango User Interface Library
+## This file is part of Taurus
 ## 
-## http://www.tango-controls.org/static/taurus/latest/doc/html/index.html
+## http://taurus-scada.org
 ##
 ## Copyright 2011 CELLS / ALBA Synchrotron, Bellaterra, Spain
 ## 
diff --git a/lib/taurus/core/evaluation/__init__.py b/lib/taurus/core/evaluation/__init__.py
index baf1402..bb2ee60 100644
--- a/lib/taurus/core/evaluation/__init__.py
+++ b/lib/taurus/core/evaluation/__init__.py
@@ -2,9 +2,9 @@
 
 #############################################################################
 ##
-## This file is part of Taurus, a Tango User Interface Library
+## This file is part of Taurus
 ## 
-## http://www.tango-controls.org/static/taurus/latest/doc/html/index.html
+## http://taurus-scada.org
 ##
 ## Copyright 2011 CELLS / ALBA Synchrotron, Bellaterra, Spain
 ## 
diff --git a/lib/taurus/core/evaluation/dev_example.py b/lib/taurus/core/evaluation/dev_example.py
index 65773ff..811cdc7 100644
--- a/lib/taurus/core/evaluation/dev_example.py
+++ b/lib/taurus/core/evaluation/dev_example.py
@@ -1,9 +1,9 @@
 #!/usr/bin/env python
 #############################################################################
 ##
-## This file is part of Taurus, a Tango User Interface Library
+## This file is part of Taurus
 ## 
-## http://www.tango-controls.org/static/taurus/latest/doc/html/index.html
+## http://taurus-scada.org
 ##
 ## Copyright 2011 CELLS / ALBA Synchrotron, Bellaterra, Spain
 ## 
diff --git a/lib/taurus/core/evaluation/evalfactory.py b/lib/taurus/core/evaluation/evalfactory.py
index f2e3636..6521057 100644
--- a/lib/taurus/core/evaluation/evalfactory.py
+++ b/lib/taurus/core/evaluation/evalfactory.py
@@ -1,9 +1,9 @@
 #!/usr/bin/env python
 #############################################################################
 ##
-## This file is part of Taurus, a Tango User Interface Library
+## This file is part of Taurus
 ## 
-## http://www.tango-controls.org/static/taurus/latest/doc/html/index.html
+## http://taurus-scada.org
 ##
 ## Copyright 2011 CELLS / ALBA Synchrotron, Bellaterra, Spain
 ## 
diff --git a/lib/taurus/core/evaluation/ipap_example.py b/lib/taurus/core/evaluation/ipap_example.py
index 1299f4c..12f29d0 100644
--- a/lib/taurus/core/evaluation/ipap_example.py
+++ b/lib/taurus/core/evaluation/ipap_example.py
@@ -1,9 +1,9 @@
 #!/usr/bin/env python
 #############################################################################
 ##
-## This file is part of Taurus, a Tango User Interface Library
+## This file is part of Taurus
 ## 
-## http://www.tango-controls.org/static/taurus/latest/doc/html/index.html
+## http://taurus-scada.org
 ##
 ## Copyright 2011 CELLS / ALBA Synchrotron, Bellaterra, Spain
 ## 
diff --git a/lib/taurus/core/init_bkcomp.py b/lib/taurus/core/init_bkcomp.py
index cd6f900..97003c3 100644
--- a/lib/taurus/core/init_bkcomp.py
+++ b/lib/taurus/core/init_bkcomp.py
@@ -2,9 +2,9 @@
 
 #############################################################################
 ##
-## This file is part of Taurus, a Tango User Interface Library
+## This file is part of Taurus
 ## 
-## http://www.tango-controls.org/static/taurus/latest/doc/html/index.html
+## http://taurus-scada.org
 ##
 ## Copyright 2011 CELLS / ALBA Synchrotron, Bellaterra, Spain
 ## 
diff --git a/lib/taurus/core/init_lightweight.py b/lib/taurus/core/init_lightweight.py
index 994f2d4..5f58b67 100644
--- a/lib/taurus/core/init_lightweight.py
+++ b/lib/taurus/core/init_lightweight.py
@@ -2,9 +2,9 @@
 
 #############################################################################
 ##
-## This file is part of Taurus, a Tango User Interface Library
+## This file is part of Taurus
 ## 
-## http://www.tango-controls.org/static/taurus/latest/doc/html/index.html
+## http://taurus-scada.org
 ##
 ## Copyright 2011 CELLS / ALBA Synchrotron, Bellaterra, Spain
 ## 
diff --git a/lib/taurus/core/release.py b/lib/taurus/core/release.py
index c15de62..68c4a67 100644
--- a/lib/taurus/core/release.py
+++ b/lib/taurus/core/release.py
@@ -2,9 +2,9 @@
 
 #############################################################################
 ##
-## This file is part of Taurus, a Tango User Interface Library
+## This file is part of Taurus
 ## 
-## http://www.tango-controls.org/static/taurus/latest/doc/html/index.html
+## http://taurus-scada.org
 ##
 ## Copyright 2011 CELLS / ALBA Synchrotron, Bellaterra, Spain
 ## 
@@ -53,15 +53,16 @@ name = 'taurus'
 # bdist_deb does not accept underscores (a Debian convention).
 
 
-version_info = (3,4,0,'rc',0)
+version_info = (3,6,0,'rc',0)
 version = '.'.join(map(str, version_info[:3]))
 revision = str(version_info[4])
 
-description = "A library designed to provide an abstraction layer over PyTango."
+description = "A framework for scientific/industrial CLIs and GUIs"
 
-long_description = """Taurus stands for TAngo User interface 'R' US. It
-is a python framework for both CLI and GUI tango applications.
-It is build on top of PyTango and PyQt."""
+long_description = """Taurus is a python framework for control and data 
+acquisition CLIs and GUIs in scientific/industrial environments. 
+It supports multiple control systems or data sources: Tango, EPICS, spec... 
+New control system libraries can be integrated through plugins."""
 
 license = 'LGPL'
 
@@ -70,7 +71,7 @@ authors = {'Tiago'          : ('Tiago Coutinho','tiago.coutinho at esrf.fr'),
            'Reszela'        : ('Zbigniew Reszela','zreszela at cells.es') }
             
 
-url = 'http://packages.python.org/taurus'
+url = 'http://www.taurus-scada.org'
 
 download_url = 'http://pypi.python.org/packages/source/t/taurus'
 
diff --git a/lib/taurus/core/resource/__init__.py b/lib/taurus/core/resource/__init__.py
index 08dda71..795eb7e 100644
--- a/lib/taurus/core/resource/__init__.py
+++ b/lib/taurus/core/resource/__init__.py
@@ -2,9 +2,9 @@
 
 #############################################################################
 ##
-## This file is part of Taurus, a Tango User Interface Library
+## This file is part of Taurus
 ## 
-## http://www.tango-controls.org/static/taurus/latest/doc/html/index.html
+## http://taurus-scada.org
 ##
 ## Copyright 2011 CELLS / ALBA Synchrotron, Bellaterra, Spain
 ## 
diff --git a/lib/taurus/core/resource/resfactory.py b/lib/taurus/core/resource/resfactory.py
index d815ebb..c280644 100644
--- a/lib/taurus/core/resource/resfactory.py
+++ b/lib/taurus/core/resource/resfactory.py
@@ -2,9 +2,9 @@
 
 #############################################################################
 ##
-## This file is part of Taurus, a Tango User Interface Library
+## This file is part of Taurus
 ## 
-## http://www.tango-controls.org/static/taurus/latest/doc/html/index.html
+## http://taurus-scada.org
 ##
 ## Copyright 2011 CELLS / ALBA Synchrotron, Bellaterra, Spain
 ## 
diff --git a/lib/taurus/core/simulation/__init__.py b/lib/taurus/core/simulation/__init__.py
index 432c236..cc53e92 100644
--- a/lib/taurus/core/simulation/__init__.py
+++ b/lib/taurus/core/simulation/__init__.py
@@ -2,9 +2,9 @@
 
 #############################################################################
 ##
-## This file is part of Taurus, a Tango User Interface Library
+## This file is part of Taurus
 ## 
-## http://www.tango-controls.org/static/taurus/latest/doc/html/index.html
+## http://taurus-scada.org
 ##
 ## Copyright 2011 CELLS / ALBA Synchrotron, Bellaterra, Spain
 ## 
diff --git a/lib/taurus/core/simulation/simfactory.py b/lib/taurus/core/simulation/simfactory.py
index ea62fca..25ab7f6 100644
--- a/lib/taurus/core/simulation/simfactory.py
+++ b/lib/taurus/core/simulation/simfactory.py
@@ -2,9 +2,9 @@
 
 #############################################################################
 ##
-## This file is part of Taurus, a Tango User Interface Library
+## This file is part of Taurus
 ## 
-## http://www.tango-controls.org/static/taurus/latest/doc/html/index.html
+## http://taurus-scada.org
 ##
 ## Copyright 2011 CELLS / ALBA Synchrotron, Bellaterra, Spain
 ## 
diff --git a/lib/taurus/core/tango/__init__.py b/lib/taurus/core/tango/__init__.py
index 2938c66..1b35051 100644
--- a/lib/taurus/core/tango/__init__.py
+++ b/lib/taurus/core/tango/__init__.py
@@ -2,9 +2,9 @@
 
 #############################################################################
 ##
-## This file is part of Taurus, a Tango User Interface Library
+## This file is part of Taurus
 ## 
-## http://www.tango-controls.org/static/taurus/latest/doc/html/index.html
+## http://taurus-scada.org
 ##
 ## Copyright 2011 CELLS / ALBA Synchrotron, Bellaterra, Spain
 ## 
diff --git a/lib/taurus/core/tango/enums.py b/lib/taurus/core/tango/enums.py
index adcd55a..08fc9c8 100644
--- a/lib/taurus/core/tango/enums.py
+++ b/lib/taurus/core/tango/enums.py
@@ -2,9 +2,9 @@
 
 #############################################################################
 ##
-## This file is part of Taurus, a Tango User Interface Library
+## This file is part of Taurus
 ## 
-## http://www.tango-controls.org/static/taurus/latest/doc/html/index.html
+## http://taurus-scada.org
 ##
 ## Copyright 2011 CELLS / ALBA Synchrotron, Bellaterra, Spain
 ## 
diff --git a/lib/taurus/core/tango/img/__init__.py b/lib/taurus/core/tango/img/__init__.py
index 0ede2a0..a6be985 100644
--- a/lib/taurus/core/tango/img/__init__.py
+++ b/lib/taurus/core/tango/img/__init__.py
@@ -2,9 +2,9 @@
 
 #############################################################################
 ##
-## This file is part of Taurus, a Tango User Interface Library
+## This file is part of Taurus
 ## 
-## http://www.tango-controls.org/static/taurus/latest/doc/html/index.html
+## http://taurus-scada.org
 ##
 ## Copyright 2011 CELLS / ALBA Synchrotron, Bellaterra, Spain
 ## 
@@ -38,4 +38,5 @@ def registerExtensions():
     factory.registerDeviceClass('ImgGrabber', ImgGrabber)
     factory.registerDeviceClass('ImgBeamAnalyzer', ImgBeamAnalyzer)
     factory.registerDeviceClass('CCDPVCAM', CCDPVCAM)
-    factory.registerDeviceClass('Falcon', Falcon)
\ No newline at end of file
+    factory.registerDeviceClass('Falcon', Falcon)
+    factory.registerDeviceClass('LimaCCDs', LimaCCDs)
diff --git a/lib/taurus/core/tango/img/img.py b/lib/taurus/core/tango/img/img.py
index 7099d07..455b720 100644
--- a/lib/taurus/core/tango/img/img.py
+++ b/lib/taurus/core/tango/img/img.py
@@ -2,9 +2,9 @@
 
 #############################################################################
 ##
-## This file is part of Taurus, a Tango User Interface Library
+## This file is part of Taurus
 ## 
-## http://www.tango-controls.org/static/taurus/latest/doc/html/index.html
+## http://taurus-scada.org
 ##
 ## Copyright 2011 CELLS / ALBA Synchrotron, Bellaterra, Spain
 ## 
@@ -27,7 +27,7 @@
 2D detectors"""
 
 __all__ = ['ImageDevice', 'ImageCounterDevice', 'PyImageViewer', 'ImgGrabber',
-           'CCDPVCAM', 'ImgBeamAnalyzer', 'Falcon']
+           'CCDPVCAM', 'ImgBeamAnalyzer', 'Falcon', 'LimaCCDs']
 
 __docformat__ = 'restructuredtext'
 
@@ -35,6 +35,7 @@ __docformat__ = 'restructuredtext'
 from taurus.core.taurusbasetypes import TaurusEventType
 from taurus.core.tango import TangoDevice
 from taurus.core.util.containers import CaselessDict, CaselessList
+from threading import RLock
 
 class ImageDevice(TangoDevice):
     """A class encapsulating a generic image device"""
@@ -143,4 +144,26 @@ class ImgBeamAnalyzer(ImageCounterDevice):
     
     def __init__(self, name, image_name='roiimage', **kw):
         self.call__init__(ImageCounterDevice, name, image_name, **kw)
-    
+
+class LimaCCDs(ImageCounterDevice):
+
+    def __init__(self, name, image_name='video_last_image', **kw):
+        self.call__init__(ImageCounterDevice, name, image_name, **kw)
+        self.rlock = RLock()
+        self.processing = False
+
+    def getImageIDAttrName(self):
+        return 'video_last_image_counter'
+
+    def eventReceived(self, evt_src, evt_type, evt_value):
+        if evt_src == self._image_id_attr and self.processing == False:
+            if evt_type == TaurusEventType.Change:
+                with self.rlock:
+                    self.processing = True
+                    attr_image = self.getAttribute('video_last_image')
+                    evt_value = attr_image.read(False)
+                    attr_image.fireEvent(evt_type, evt_value)
+                    self.processing = False
+
+        else:
+            ImageCounterDevice.eventReceived(self, evt_src, evt_type, evt_value)
diff --git a/lib/taurus/core/tango/search.py b/lib/taurus/core/tango/search.py
index 5e4026a..0cc8428 100644
--- a/lib/taurus/core/tango/search.py
+++ b/lib/taurus/core/tango/search.py
@@ -2,9 +2,9 @@
 
 #############################################################################
 ##
-## This file is part of Taurus, a Tango User Interface Library
+## This file is part of Taurus
 ## 
-## http://www.tango-controls.org/static/taurus/latest/doc/html/index.html
+## http://taurus-scada.org
 ##
 ## Copyright 2011 CELLS / ALBA Synchrotron, Bellaterra, Spain
 ## 
diff --git a/lib/taurus/core/tango/starter.py b/lib/taurus/core/tango/starter.py
index a21c4a1..79888f7 100644
--- a/lib/taurus/core/tango/starter.py
+++ b/lib/taurus/core/tango/starter.py
@@ -2,9 +2,9 @@
 
 #############################################################################
 ##
-## This file is part of Taurus, a Tango User Interface Library
+## This file is part of Taurus
 ## 
-## http://www.tango-controls.org/static/taurus/latest/doc/html/index.html
+## http://taurus-scada.org
 ##
 ## Copyright 2011 CELLS / ALBA Synchrotron, Bellaterra, Spain
 ## 
@@ -88,7 +88,10 @@ class Starter(object):
             if self.isRunning():
                 time.sleep(1)
             else:
-                time.sleep(3) #TODO: figure out why we have to wait here
+                ##############################################################
+                # TODO: this workaround doesn't seem necessary (see isRunning)
+                #time.sleep(3)
+                ##############################################################
                 _log.info('Server %s has been stopped' % self.ds_name)
                 return
         _log.warning('Server %s did not stop within %d seconds'%
@@ -107,7 +110,10 @@ class Starter(object):
                       (self.ds_name, i))
             if self.isRunning():
                 _log.info('Server %s has been started' % self.ds_name)
-                time.sleep(3) #TODO: figure out why we have to wait here
+                ##############################################################
+                # TODO: this workaround doesn't seem necessary (see isRunning)
+                #time.sleep(3)
+                ##############################################################
                 return
             else:
                 time.sleep(1)
@@ -173,6 +179,8 @@ class Starter(object):
 
 
     def isRunning(self):
+        # TODO: In case the sleeps in startDS and stopDS need to be re-added,
+        #       we should study another implementation for this method.
         if self.dserver is None:
             return False
         try:
diff --git a/lib/taurus/core/tango/tangoattribute.py b/lib/taurus/core/tango/tangoattribute.py
old mode 100644
new mode 100755
index 60a2f2c..1639578
--- a/lib/taurus/core/tango/tangoattribute.py
+++ b/lib/taurus/core/tango/tangoattribute.py
@@ -2,9 +2,9 @@
 
 #############################################################################
 ##
-## This file is part of Taurus, a Tango User Interface Library
+## This file is part of Taurus
 ##
-## http://www.tango-controls.org/static/taurus/latest/doc/html/index.html
+## http://taurus-scada.org
 ##
 ## Copyright 2011 CELLS / ALBA Synchrotron, Bellaterra, Spain
 ##
@@ -184,7 +184,7 @@ class TangoAttribute(TaurusAttribute):
                 attrvalue = float(value)
             elif type == DataType.DevFloat:
                 # We encode to float, but rounding to Tango::DevFloat precision
-                # see: http://sf.net/p/sardana/tickets/162
+                # see: http://sf.net/p/tauruslib/tickets/61
                 attrvalue = float(numpy.float32(value))
             elif PyTango.is_int_type(type):
                 #attrvalue = int(value)
@@ -196,7 +196,7 @@ class TangoAttribute(TaurusAttribute):
                     attrvalue = str(value).lower() == 'true'
             elif type == DataType.DevUChar:
                 attrvalue = chr(value)
-            elif type == DataType.DevState:
+            elif type == DataType.DevState or type == DataType.DevEncoded:
                 attrvalue = value
             else:
                 attrvalue = str(value)
diff --git a/lib/taurus/core/tango/tangoconfiguration.py b/lib/taurus/core/tango/tangoconfiguration.py
index 05d78ab..2380892 100644
--- a/lib/taurus/core/tango/tangoconfiguration.py
+++ b/lib/taurus/core/tango/tangoconfiguration.py
@@ -2,9 +2,9 @@
 
 #############################################################################
 ##
-## This file is part of Taurus, a Tango User Interface Library
+## This file is part of Taurus
 ## 
-## http://www.tango-controls.org/static/taurus/latest/doc/html/index.html
+## http://taurus-scada.org
 ##
 ## Copyright 2011 CELLS / ALBA Synchrotron, Bellaterra, Spain
 ## 
diff --git a/lib/taurus/core/tango/tangodatabase.py b/lib/taurus/core/tango/tangodatabase.py
index a881040..f6c501b 100644
--- a/lib/taurus/core/tango/tangodatabase.py
+++ b/lib/taurus/core/tango/tangodatabase.py
@@ -2,9 +2,9 @@
 
 #############################################################################
 ##
-## This file is part of Taurus, a Tango User Interface Library
+## This file is part of Taurus
 ## 
-## http://www.tango-controls.org/static/taurus/latest/doc/html/index.html
+## http://taurus-scada.org
 ##
 ## Copyright 2011 CELLS / ALBA Synchrotron, Bellaterra, Spain
 ## 
diff --git a/lib/taurus/core/tango/tangodevice.py b/lib/taurus/core/tango/tangodevice.py
index 59565b5..2a7114c 100644
--- a/lib/taurus/core/tango/tangodevice.py
+++ b/lib/taurus/core/tango/tangodevice.py
@@ -2,9 +2,9 @@
 
 #############################################################################
 ##
-## This file is part of Taurus, a Tango User Interface Library
+## This file is part of Taurus
 ## 
-## http://www.tango-controls.org/static/taurus/latest/doc/html/index.html
+## http://taurus-scada.org
 ##
 ## Copyright 2011 CELLS / ALBA Synchrotron, Bellaterra, Spain
 ## 
diff --git a/lib/taurus/core/tango/tangofactory.py b/lib/taurus/core/tango/tangofactory.py
index a4a5c81..a9ada49 100644
--- a/lib/taurus/core/tango/tangofactory.py
+++ b/lib/taurus/core/tango/tangofactory.py
@@ -2,9 +2,9 @@
 
 #############################################################################
 ##
-## This file is part of Taurus, a Tango User Interface Library
+## This file is part of Taurus
 ## 
-## http://www.tango-controls.org/static/taurus/latest/doc/html/index.html
+## http://taurus-scada.org
 ##
 ## Copyright 2011 CELLS / ALBA Synchrotron, Bellaterra, Spain
 ## 
diff --git a/lib/taurus/core/taurusattribute.py b/lib/taurus/core/taurusattribute.py
index 8db537c..1f66be5 100644
--- a/lib/taurus/core/taurusattribute.py
+++ b/lib/taurus/core/taurusattribute.py
@@ -2,9 +2,9 @@
 
 #############################################################################
 ##
-## This file is part of Taurus, a Tango User Interface Library
+## This file is part of Taurus
 ## 
-## http://www.tango-controls.org/static/taurus/latest/doc/html/index.html
+## http://taurus-scada.org
 ##
 ## Copyright 2011 CELLS / ALBA Synchrotron, Bellaterra, Spain
 ## 
diff --git a/lib/taurus/core/taurusbasetypes.py b/lib/taurus/core/taurusbasetypes.py
index a94c348..f336ee3 100644
--- a/lib/taurus/core/taurusbasetypes.py
+++ b/lib/taurus/core/taurusbasetypes.py
@@ -1,9 +1,9 @@
 #!/usr/bin/env python
 #############################################################################
 ##
-## This file is part of Taurus, a Tango User Interface Library
+## This file is part of Taurus
 ## 
-## http://www.tango-controls.org/static/taurus/latest/doc/html/index.html
+## http://taurus-scada.org
 ##
 ## Copyright 2011 CELLS / ALBA Synchrotron, Bellaterra, Spain
 ## 
diff --git a/lib/taurus/core/taurusconfiguration.py b/lib/taurus/core/taurusconfiguration.py
index 472506a..70dfba9 100644
--- a/lib/taurus/core/taurusconfiguration.py
+++ b/lib/taurus/core/taurusconfiguration.py
@@ -3,9 +3,9 @@
 
 #############################################################################
 ##
-## This file is part of Taurus, a Tango User Interface Library
+## This file is part of Taurus
 ## 
-## http://www.tango-controls.org/static/taurus/latest/doc/html/index.html
+## http://taurus-scada.org
 ##
 ## Copyright 2011 CELLS / ALBA Synchrotron, Bellaterra, Spain
 ## 
diff --git a/lib/taurus/core/taurusdatabase.py b/lib/taurus/core/taurusdatabase.py
index e0a5dd2..79f579e 100644
--- a/lib/taurus/core/taurusdatabase.py
+++ b/lib/taurus/core/taurusdatabase.py
@@ -2,9 +2,9 @@
 
 #############################################################################
 ##
-## This file is part of Taurus, a Tango User Interface Library
+## This file is part of Taurus
 ## 
-## http://www.tango-controls.org/static/taurus/latest/doc/html/index.html
+## http://taurus-scada.org
 ##
 ## Copyright 2011 CELLS / ALBA Synchrotron, Bellaterra, Spain
 ## 
diff --git a/lib/taurus/core/taurusdevice.py b/lib/taurus/core/taurusdevice.py
index 442518f..9b4b6ef 100644
--- a/lib/taurus/core/taurusdevice.py
+++ b/lib/taurus/core/taurusdevice.py
@@ -2,9 +2,9 @@
 
 #############################################################################
 ##
-## This file is part of Taurus, a Tango User Interface Library
+## This file is part of Taurus
 ##
-## http://www.tango-controls.org/static/taurus/latest/doc/html/index.html
+## http://taurus-scada.org
 ##
 ## Copyright 2011 CELLS / ALBA Synchrotron, Bellaterra, Spain
 ##
@@ -242,14 +242,14 @@ class TaurusDevice(TaurusModel):
         return self.getAttribute(child_name)
 
     def eventReceived(self, event_src, event_type, event_value):
-        new_sw_state = TaurusSWDevState.Uninitialized
-
         if event_type == TaurusEventType.Config:
             return
         value = self.decode(event_value)
-
         if value.value != self._deviceSwState.value:
-            self.debug("SW Device State changed %s -> %s" % (TaurusSWDevState.whatis(self._deviceSwState.value), TaurusSWDevState.whatis(new_sw_state)))
+            msg = "SW Device State changed %s -> %s" %\
+                  (TaurusSWDevState.whatis(self._deviceSwState.value), 
+                   TaurusSWDevState.whatis(value.value))
+            self.debug(msg)
             self._deviceSwState = value
             self.fireEvent(TaurusEventType.Change, value)
 
diff --git a/lib/taurus/core/taurusexception.py b/lib/taurus/core/taurusexception.py
index ad3e9ae..46da9ec 100644
--- a/lib/taurus/core/taurusexception.py
+++ b/lib/taurus/core/taurusexception.py
@@ -2,9 +2,9 @@
 
 #############################################################################
 ##
-## This file is part of Taurus, a Tango User Interface Library
+## This file is part of Taurus
 ## 
-## http://www.tango-controls.org/static/taurus/latest/doc/html/index.html
+## http://taurus-scada.org
 ##
 ## Copyright 2011 CELLS / ALBA Synchrotron, Bellaterra, Spain
 ## 
diff --git a/lib/taurus/core/taurusfactory.py b/lib/taurus/core/taurusfactory.py
index 19b627f..29ca8ea 100644
--- a/lib/taurus/core/taurusfactory.py
+++ b/lib/taurus/core/taurusfactory.py
@@ -2,9 +2,9 @@
 
 #############################################################################
 ##
-## This file is part of Taurus, a Tango User Interface Library
+## This file is part of Taurus
 ## 
-## http://www.tango-controls.org/static/taurus/latest/doc/html/index.html
+## http://taurus-scada.org
 ##
 ## Copyright 2011 CELLS / ALBA Synchrotron, Bellaterra, Spain
 ## 
diff --git a/lib/taurus/core/taurushelper.py b/lib/taurus/core/taurushelper.py
index 9aa55a8..dae7c93 100644
--- a/lib/taurus/core/taurushelper.py
+++ b/lib/taurus/core/taurushelper.py
@@ -2,9 +2,9 @@
 
 #############################################################################
 ##
-## This file is part of Taurus, a Tango User Interface Library
+## This file is part of Taurus
 ##
-## http://www.tango-controls.org/static/taurus/latest/doc/html/index.html
+## http://taurus-scada.org
 ##
 ## Copyright 2011 CELLS / ALBA Synchrotron, Bellaterra, Spain
 ##
diff --git a/lib/taurus/core/tauruslistener.py b/lib/taurus/core/tauruslistener.py
index f53baf1..3455d17 100644
--- a/lib/taurus/core/tauruslistener.py
+++ b/lib/taurus/core/tauruslistener.py
@@ -2,9 +2,9 @@
 
 #############################################################################
 ##
-## This file is part of Taurus, a Tango User Interface Library
+## This file is part of Taurus
 ## 
-## http://www.tango-controls.org/static/taurus/latest/doc/html/index.html
+## http://taurus-scada.org
 ##
 ## Copyright 2011 CELLS / ALBA Synchrotron, Bellaterra, Spain
 ## 
diff --git a/lib/taurus/core/taurusmanager.py b/lib/taurus/core/taurusmanager.py
index d62c854..d140b26 100644
--- a/lib/taurus/core/taurusmanager.py
+++ b/lib/taurus/core/taurusmanager.py
@@ -2,9 +2,9 @@
 
 #############################################################################
 ##
-## This file is part of Taurus, a Tango User Interface Library
+## This file is part of Taurus
 ## 
-## http://www.tango-controls.org/static/taurus/latest/doc/html/index.html
+## http://taurus-scada.org
 ##
 ## Copyright 2011 CELLS / ALBA Synchrotron, Bellaterra, Spain
 ## 
diff --git a/lib/taurus/core/taurusmodel.py b/lib/taurus/core/taurusmodel.py
index 7589ec4..4f11b9d 100644
--- a/lib/taurus/core/taurusmodel.py
+++ b/lib/taurus/core/taurusmodel.py
@@ -2,9 +2,9 @@
 
 #############################################################################
 ##
-## This file is part of Taurus, a Tango User Interface Library
+## This file is part of Taurus
 ## 
-## http://www.tango-controls.org/static/taurus/latest/doc/html/index.html
+## http://taurus-scada.org
 ##
 ## Copyright 2011 CELLS / ALBA Synchrotron, Bellaterra, Spain
 ## 
diff --git a/lib/taurus/core/taurusoperation.py b/lib/taurus/core/taurusoperation.py
index a4538d7..25117af 100644
--- a/lib/taurus/core/taurusoperation.py
+++ b/lib/taurus/core/taurusoperation.py
@@ -2,9 +2,9 @@
 
 #############################################################################
 ##
-## This file is part of Taurus, a Tango User Interface Library
+## This file is part of Taurus
 ##
-## http://www.tango-controls.org/static/taurus/latest/doc/html/index.html
+## http://taurus-scada.org
 ##
 ## Copyright 2011 CELLS / ALBA Synchrotron, Bellaterra, Spain
 ##
diff --git a/lib/taurus/core/tauruspollingtimer.py b/lib/taurus/core/tauruspollingtimer.py
index bd0a458..e8eb563 100644
--- a/lib/taurus/core/tauruspollingtimer.py
+++ b/lib/taurus/core/tauruspollingtimer.py
@@ -2,9 +2,9 @@
 
 #############################################################################
 ##
-## This file is part of Taurus, a Tango User Interface Library
+## This file is part of Taurus
 ## 
-## http://www.tango-controls.org/static/taurus/latest/doc/html/index.html
+## http://taurus-scada.org
 ##
 ## Copyright 2011 CELLS / ALBA Synchrotron, Bellaterra, Spain
 ## 
@@ -108,8 +108,10 @@ class TaurusPollingTimer(Logger):
         attr_dict = self.dev_dict.get(dev)
         if attr_dict is None:
             return
-        if attr_name not in attr_dict:
+        if attr_name in attr_dict:
             del attr_dict[attr_name]
+            if not attr_dict:
+                del self.dev_dict[dev]
             self.attr_nb -= 1
         if self.attr_nb < 1:
             self.stop()
diff --git a/lib/taurus/core/taurusvalidator.py b/lib/taurus/core/taurusvalidator.py
index 01a5baa..33df99f 100644
--- a/lib/taurus/core/taurusvalidator.py
+++ b/lib/taurus/core/taurusvalidator.py
@@ -2,9 +2,9 @@
 
 #############################################################################
 ##
-## This file is part of Taurus, a Tango User Interface Library
+## This file is part of Taurus
 ## 
-## http://www.tango-controls.org/static/taurus/latest/doc/html/index.html
+## http://taurus-scada.org
 ##
 ## Copyright 2011 CELLS / ALBA Synchrotron, Bellaterra, Spain
 ## 
diff --git a/lib/taurus/core/util/__init__.py b/lib/taurus/core/util/__init__.py
index 684c575..fa13d8b 100644
--- a/lib/taurus/core/util/__init__.py
+++ b/lib/taurus/core/util/__init__.py
@@ -2,9 +2,9 @@
 
 #############################################################################
 ##
-## This file is part of Taurus, a Tango User Interface Library
+## This file is part of Taurus
 ## 
-## http://www.tango-controls.org/static/taurus/latest/doc/html/index.html
+## http://taurus-scada.org
 ##
 ## Copyright 2011 CELLS / ALBA Synchrotron, Bellaterra, Spain
 ## 
diff --git a/lib/taurus/core/util/argparse/__init__.py b/lib/taurus/core/util/argparse/__init__.py
index a4bfb51..3e8e7de 100644
--- a/lib/taurus/core/util/argparse/__init__.py
+++ b/lib/taurus/core/util/argparse/__init__.py
@@ -2,9 +2,9 @@
 
 #############################################################################
 ##
-## This file is part of Taurus, a Tango User Interface Library
+## This file is part of Taurus
 ## 
-## http://www.tango-controls.org/static/taurus/latest/doc/html/index.html
+## http://taurus-scada.org
 ##
 ## Copyright 2011 CELLS / ALBA Synchrotron, Bellaterra, Spain
 ## 
diff --git a/lib/taurus/core/util/argparse/taurusargparse.py b/lib/taurus/core/util/argparse/taurusargparse.py
index c9ad402..d8eda87 100644
--- a/lib/taurus/core/util/argparse/taurusargparse.py
+++ b/lib/taurus/core/util/argparse/taurusargparse.py
@@ -2,9 +2,9 @@
 
 #############################################################################
 ##
-## This file is part of Taurus, a Tango User Interface Library
+## This file is part of Taurus
 ##
-## http://www.tango-controls.org/static/taurus/latest/doc/html/index.html
+## http://taurus-scada.org
 ##
 ## Copyright 2011 CELLS / ALBA Synchrotron, Bellaterra, Spain
 ##
diff --git a/lib/taurus/core/util/codecs.py b/lib/taurus/core/util/codecs.py
index 4337d12..0ce4d8c 100644
--- a/lib/taurus/core/util/codecs.py
+++ b/lib/taurus/core/util/codecs.py
@@ -2,9 +2,9 @@
 
 #############################################################################
 ##
-## This file is part of Taurus, a Tango User Interface Library
+## This file is part of Taurus
 ## 
-## http://www.tango-controls.org/static/taurus/latest/doc/html/index.html
+## http://taurus-scada.org
 ##
 ## Copyright 2011 CELLS / ALBA Synchrotron, Bellaterra, Spain
 ## 
@@ -86,6 +86,8 @@ class Codec(Logger):
         """Constructor"""
         Logger.__init__(self, self.__class__.__name__)
     
+    # TODO: similar code exists in encode and decode methods from different
+    # codecs. It should be implemented in this base class 'Codec'.
     def encode(self, data, *args, **kwargs):
         """encodes the given data. This method is abstract an therefore must
         be implemented in the subclass.
@@ -123,7 +125,10 @@ class NullCodec(Codec):
         :param data: (sequence[str, obj]) a sequence of two elements where the first item is the encoding format of the second item object
         
         :return: (sequence[str, obj]) a sequence of two elements where the first item is the encoding format of the second item object"""
-        return data
+        format = 'null'
+        if len(data[0]):
+            format += '_%s' % data[0]
+        return format, data[1]
     
     def decode(self, data, *args, **kwargs):
         """decodes with Null encoder. Just returns the given data
@@ -131,7 +136,10 @@ class NullCodec(Codec):
         :param data: (sequence[str, obj]) a sequence of two elements where the first item is the encoding format of the second item object
         
         :return: (sequence[str, obj]) a sequence of two elements where the first item is the encoding format of the second item object"""
-        return data
+        if not data[0].startswith('null'):
+            return data
+        format = data[0].partition('_')[2]
+        return format, data[1]
 
 
 class ZIPCodec(Codec):
@@ -744,7 +752,7 @@ class CodecPipeline(Codec, list):
         
         Codec.__init__(self)
         list.__init__(self)
-        
+
         f = CodecFactory()
         for i in format.split('_'):
             codec = f.getCodec(i)
diff --git a/lib/taurus/core/util/colors.py b/lib/taurus/core/util/colors.py
index 81204e5..94c754b 100644
--- a/lib/taurus/core/util/colors.py
+++ b/lib/taurus/core/util/colors.py
@@ -2,9 +2,9 @@
 
 #############################################################################
 ##
-## This file is part of Taurus, a Tango User Interface Library
+## This file is part of Taurus
 ## 
-## http://www.tango-controls.org/static/taurus/latest/doc/html/index.html
+## http://taurus-scada.org
 ##
 ## Copyright 2011 CELLS / ALBA Synchrotron, Bellaterra, Spain
 ## 
diff --git a/lib/taurus/core/util/console.py b/lib/taurus/core/util/console.py
index 4ae3db8..1679b99 100644
--- a/lib/taurus/core/util/console.py
+++ b/lib/taurus/core/util/console.py
@@ -2,9 +2,9 @@
 
 #############################################################################
 ##
-## This file is part of Taurus, a Tango User Interface Library
+## This file is part of Taurus
 ## 
-## http://www.tango-controls.org/static/taurus/latest/doc/html/index.html
+## http://taurus-scada.org
 ##
 ## Copyright 2011 CELLS / ALBA Synchrotron, Bellaterra, Spain
 ## 
diff --git a/lib/taurus/core/util/constant.py b/lib/taurus/core/util/constant.py
index e7d5bf7..37c5aca 100644
--- a/lib/taurus/core/util/constant.py
+++ b/lib/taurus/core/util/constant.py
@@ -2,9 +2,9 @@
 
 #############################################################################
 ##
-## This file is part of Taurus, a Tango User Interface Library
+## This file is part of Taurus
 ## 
-## http://www.tango-controls.org/static/taurus/latest/doc/html/index.html
+## http://taurus-scada.org
 ##
 ## Copyright 2011 CELLS / ALBA Synchrotron, Bellaterra, Spain
 ## 
diff --git a/lib/taurus/core/util/containers.py b/lib/taurus/core/util/containers.py
index 0fa00be..f0b8f32 100644
--- a/lib/taurus/core/util/containers.py
+++ b/lib/taurus/core/util/containers.py
@@ -2,9 +2,9 @@
 
 #############################################################################
 ##
-## This file is part of Taurus, a Tango User Interface Library
+## This file is part of Taurus
 ## 
-## http://www.tango-controls.org/static/taurus/latest/doc/html/index.html
+## http://taurus-scada.org
 ##
 ## Copyright 2011 CELLS / ALBA Synchrotron, Bellaterra, Spain
 ## 
diff --git a/lib/taurus/core/util/decorator/decorator.py b/lib/taurus/core/util/decorator/decorator.py
index 7065a71..df109a2 100644
--- a/lib/taurus/core/util/decorator/decorator.py
+++ b/lib/taurus/core/util/decorator/decorator.py
@@ -2,9 +2,9 @@
 
 #############################################################################
 ##
-## This file is part of Taurus, a Tango User Interface Library
+## This file is part of Taurus
 ## 
-## http://www.tango-controls.org/static/taurus/latest/doc/html/index.html
+## http://taurus-scada.org
 ##
 ## Copyright 2011 CELLS / ALBA Synchrotron, Bellaterra, Spain
 ## 
diff --git a/lib/taurus/core/util/decorator/deprecated.py b/lib/taurus/core/util/decorator/deprecated.py
index 0fc53c7..3e4393d 100644
--- a/lib/taurus/core/util/decorator/deprecated.py
+++ b/lib/taurus/core/util/decorator/deprecated.py
@@ -2,9 +2,9 @@
 
 #############################################################################
 ##
-## This file is part of Taurus, a Tango User Interface Library
+## This file is part of Taurus
 ## 
-## http://www.tango-controls.org/static/taurus/latest/doc/html/index.html
+## http://taurus-scada.org
 ##
 ## Copyright 2011 CELLS / ALBA Synchrotron, Bellaterra, Spain
 ## 
diff --git a/lib/taurus/core/util/decorator/memoize.py b/lib/taurus/core/util/decorator/memoize.py
index 7db9c05..4dbb1d2 100644
--- a/lib/taurus/core/util/decorator/memoize.py
+++ b/lib/taurus/core/util/decorator/memoize.py
@@ -2,9 +2,9 @@
 
 #############################################################################
 ##
-## This file is part of Taurus, a Tango User Interface Library
+## This file is part of Taurus
 ##
-## http://www.tango-controls.org/static/taurus/latest/doc/html/index.html
+## http://taurus-scada.org
 ##
 ## Copyright 2011 CELLS / ALBA Synchrotron, Bellaterra, Spain
 ##
diff --git a/lib/taurus/core/util/decorator/typecheck.py b/lib/taurus/core/util/decorator/typecheck.py
index f8b7c63..932008c 100644
--- a/lib/taurus/core/util/decorator/typecheck.py
+++ b/lib/taurus/core/util/decorator/typecheck.py
@@ -2,9 +2,9 @@
 
 #############################################################################
 ##
-## This file is part of Taurus, a Tango User Interface Library
+## This file is part of Taurus
 ## 
-## http://www.tango-controls.org/static/taurus/latest/doc/html/index.html
+## http://taurus-scada.org
 ##
 ## Copyright 2011 CELLS / ALBA Synchrotron, Bellaterra, Spain
 ## 
diff --git a/lib/taurus/core/util/enumeration.py b/lib/taurus/core/util/enumeration.py
index 736c853..d0adc7a 100644
--- a/lib/taurus/core/util/enumeration.py
+++ b/lib/taurus/core/util/enumeration.py
@@ -2,9 +2,9 @@
 
 #############################################################################
 ##
-## This file is part of Taurus, a Tango User Interface Library
+## This file is part of Taurus
 ##
-## http://www.tango-controls.org/static/taurus/latest/doc/html/index.html
+## http://taurus-scada.org
 ##
 ## Copyright 2011 CELLS / ALBA Synchrotron, Bellaterra, Spain
 ##
diff --git a/lib/taurus/core/util/event.py b/lib/taurus/core/util/event.py
index b30dae3..7748225 100644
--- a/lib/taurus/core/util/event.py
+++ b/lib/taurus/core/util/event.py
@@ -2,9 +2,9 @@
 
 #############################################################################
 ##
-## This file is part of Taurus, a Tango User Interface Library
+## This file is part of Taurus
 ## 
-## http://www.tango-controls.org/static/taurus/latest/doc/html/index.html
+## http://taurus-scada.org
 ##
 ## Copyright 2011 CELLS / ALBA Synchrotron, Bellaterra, Spain
 ## 
diff --git a/lib/taurus/core/util/eventfilters.py b/lib/taurus/core/util/eventfilters.py
index 4e01b8f..8dc52a1 100644
--- a/lib/taurus/core/util/eventfilters.py
+++ b/lib/taurus/core/util/eventfilters.py
@@ -2,9 +2,9 @@
 
 #############################################################################
 ##
-## This file is part of Taurus, a Tango User Interface Library
+## This file is part of Taurus
 ## 
-## http://www.tango-controls.org/static/taurus/latest/doc/html/index.html
+## http://taurus-scada.org
 ##
 ## Copyright 2011 CELLS / ALBA Synchrotron, Bellaterra, Spain
 ## 
diff --git a/lib/taurus/core/util/excepthook.py b/lib/taurus/core/util/excepthook.py
index 8d4d1f8..1cbb626 100644
--- a/lib/taurus/core/util/excepthook.py
+++ b/lib/taurus/core/util/excepthook.py
@@ -2,9 +2,9 @@
 
 #############################################################################
 ##
-## This file is part of Taurus, a Tango User Interface Library
+## This file is part of Taurus
 ## 
-## http://www.tango-controls.org/static/taurus/latest/doc/html/index.html
+## http://taurus-scada.org
 ##
 ## Copyright 2011 CELLS / ALBA Synchrotron, Bellaterra, Spain
 ## 
diff --git a/lib/taurus/core/util/init_bkcomp.py b/lib/taurus/core/util/init_bkcomp.py
index dc56ecf..2dedc28 100644
--- a/lib/taurus/core/util/init_bkcomp.py
+++ b/lib/taurus/core/util/init_bkcomp.py
@@ -2,9 +2,9 @@
 
 #############################################################################
 ##
-## This file is part of Taurus, a Tango User Interface Library
+## This file is part of Taurus
 ## 
-## http://www.tango-controls.org/static/taurus/latest/doc/html/index.html
+## http://taurus-scada.org
 ##
 ## Copyright 2011 CELLS / ALBA Synchrotron, Bellaterra, Spain
 ## 
diff --git a/lib/taurus/core/util/init_lightweight.py b/lib/taurus/core/util/init_lightweight.py
index e12c7c7..a52b250 100644
--- a/lib/taurus/core/util/init_lightweight.py
+++ b/lib/taurus/core/util/init_lightweight.py
@@ -2,9 +2,9 @@
 
 #############################################################################
 ##
-## This file is part of Taurus, a Tango User Interface Library
+## This file is part of Taurus
 ## 
-## http://www.tango-controls.org/static/taurus/latest/doc/html/index.html
+## http://taurus-scada.org
 ##
 ## Copyright 2011 CELLS / ALBA Synchrotron, Bellaterra, Spain
 ## 
diff --git a/lib/taurus/core/util/lock.py b/lib/taurus/core/util/lock.py
index ca55ca3..ed547a8 100644
--- a/lib/taurus/core/util/lock.py
+++ b/lib/taurus/core/util/lock.py
@@ -2,9 +2,9 @@
 
 #############################################################################
 ##
-## This file is part of Taurus, a Tango User Interface Library
+## This file is part of Taurus
 ## 
-## http://www.tango-controls.org/static/taurus/latest/doc/html/index.html
+## http://taurus-scada.org
 ##
 ## Copyright 2011 CELLS / ALBA Synchrotron, Bellaterra, Spain
 ## 
diff --git a/lib/taurus/core/util/log.py b/lib/taurus/core/util/log.py
index 56b3340..aa98e87 100644
--- a/lib/taurus/core/util/log.py
+++ b/lib/taurus/core/util/log.py
@@ -2,9 +2,9 @@
 
 #############################################################################
 ##
-## This file is part of Taurus, a Tango User Interface Library
+## This file is part of Taurus
 ##
-## http://www.tango-controls.org/static/taurus/latest/doc/html/index.html
+## http://taurus-scada.org
 ##
 ## Copyright 2011 CELLS / ALBA Synchrotron, Bellaterra, Spain
 ##
diff --git a/lib/taurus/core/util/object.py b/lib/taurus/core/util/object.py
index 735d076..d61bb2d 100644
--- a/lib/taurus/core/util/object.py
+++ b/lib/taurus/core/util/object.py
@@ -2,9 +2,9 @@
 
 #############################################################################
 ##
-## This file is part of Taurus, a Tango User Interface Library
+## This file is part of Taurus
 ## 
-## http://www.tango-controls.org/static/taurus/latest/doc/html/index.html
+## http://taurus-scada.org
 ##
 ## Copyright 2011 CELLS / ALBA Synchrotron, Bellaterra, Spain
 ## 
diff --git a/lib/taurus/core/util/prop.py b/lib/taurus/core/util/prop.py
index 2316d1d..647c428 100644
--- a/lib/taurus/core/util/prop.py
+++ b/lib/taurus/core/util/prop.py
@@ -2,9 +2,9 @@
 
 #############################################################################
 ##
-## This file is part of Taurus, a Tango User Interface Library
+## This file is part of Taurus
 ## 
-## http://www.tango-controls.org/static/taurus/latest/doc/html/index.html
+## http://taurus-scada.org
 ##
 ## Copyright 2011 CELLS / ALBA Synchrotron, Bellaterra, Spain
 ## 
diff --git a/lib/taurus/core/util/property_parser.py b/lib/taurus/core/util/property_parser.py
index 591316e..b5e4fc6 100644
--- a/lib/taurus/core/util/property_parser.py
+++ b/lib/taurus/core/util/property_parser.py
@@ -2,9 +2,9 @@
 
 #############################################################################
 ##
-## This file is part of Taurus, a Tango User Interface Library
+## This file is part of Taurus
 ## 
-## http://www.tango-controls.org/static/taurus/latest/doc/html/index.html
+## http://taurus-scada.org
 ##
 ## Copyright 2011 CELLS / ALBA Synchrotron, Bellaterra, Spain
 ## 
diff --git a/lib/taurus/core/util/propertyfile.py b/lib/taurus/core/util/propertyfile.py
index 356013e..14082b9 100644
--- a/lib/taurus/core/util/propertyfile.py
+++ b/lib/taurus/core/util/propertyfile.py
@@ -2,9 +2,9 @@
 
 #############################################################################
 ##
-## This file is part of Taurus, a Tango User Interface Library
+## This file is part of Taurus
 ## 
-## http://www.tango-controls.org/static/taurus/latest/doc/html/index.html
+## http://taurus-scada.org
 ##
 ## Copyright 2011 CELLS / ALBA Synchrotron, Bellaterra, Spain
 ## 
diff --git a/lib/taurus/core/util/remotelogmonitor.py b/lib/taurus/core/util/remotelogmonitor.py
index ed9a052..87940b5 100644
--- a/lib/taurus/core/util/remotelogmonitor.py
+++ b/lib/taurus/core/util/remotelogmonitor.py
@@ -2,9 +2,9 @@
 
 #############################################################################
 ##
-## This file is part of Taurus, a Tango User Interface Library
+## This file is part of Taurus
 ##
-## http://www.tango-controls.org/static/taurus/latest/doc/html/index.html
+## http://taurus-scada.org
 ##
 ## Copyright 2011 CELLS / ALBA Synchrotron, Bellaterra, Spain
 ##
diff --git a/lib/taurus/core/util/report/__init__.py b/lib/taurus/core/util/report/__init__.py
index eb69308..b0f01bf 100644
--- a/lib/taurus/core/util/report/__init__.py
+++ b/lib/taurus/core/util/report/__init__.py
@@ -2,9 +2,9 @@
 
 #############################################################################
 ##
-## This file is part of Taurus, a Tango User Interface Library
+## This file is part of Taurus
 ## 
-## http://www.tango-controls.org/static/taurus/latest/doc/html/index.html
+## http://taurus-scada.org
 ##
 ## Copyright 2011 CELLS / ALBA Synchrotron, Bellaterra, Spain
 ## 
diff --git a/lib/taurus/core/util/report/report.py b/lib/taurus/core/util/report/report.py
index ca11e0e..229fdde 100644
--- a/lib/taurus/core/util/report/report.py
+++ b/lib/taurus/core/util/report/report.py
@@ -2,9 +2,9 @@
 
 #############################################################################
 ##
-## This file is part of Taurus, a Tango User Interface Library
+## This file is part of Taurus
 ## 
-## http://www.tango-controls.org/static/taurus/latest/doc/html/index.html
+## http://taurus-scada.org
 ##
 ## Copyright 2011 CELLS / ALBA Synchrotron, Bellaterra, Spain
 ## 
diff --git a/lib/taurus/core/util/safeeval.py b/lib/taurus/core/util/safeeval.py
index 75be46e..77cd312 100644
--- a/lib/taurus/core/util/safeeval.py
+++ b/lib/taurus/core/util/safeeval.py
@@ -2,9 +2,9 @@
 
 #############################################################################
 ##
-## This file is part of Taurus, a Tango User Interface Library
+## This file is part of Taurus
 ## 
-## http://www.tango-controls.org/static/taurus/latest/doc/html/index.html
+## http://taurus-scada.org
 ##
 ## Copyright 2011 CELLS / ALBA Synchrotron, Bellaterra, Spain
 ## 
diff --git a/lib/taurus/core/util/singleton.py b/lib/taurus/core/util/singleton.py
index c76800d..ba8edc1 100644
--- a/lib/taurus/core/util/singleton.py
+++ b/lib/taurus/core/util/singleton.py
@@ -2,9 +2,9 @@
 
 #############################################################################
 ##
-## This file is part of Taurus, a Tango User Interface Library
+## This file is part of Taurus
 ## 
-## http://www.tango-controls.org/static/taurus/latest/doc/html/index.html
+## http://taurus-scada.org
 ##
 ## Copyright 2011 CELLS / ALBA Synchrotron, Bellaterra, Spain
 ## 
diff --git a/lib/taurus/core/util/sourcecode.py b/lib/taurus/core/util/sourcecode.py
index 036f579..ef26040 100644
--- a/lib/taurus/core/util/sourcecode.py
+++ b/lib/taurus/core/util/sourcecode.py
@@ -2,9 +2,9 @@
 
 #############################################################################
 ##
-## This file is part of Taurus, a Tango User Interface Library
+## This file is part of Taurus
 ## 
-## http://www.tango-controls.org/static/taurus/latest/doc/html/index.html
+## http://taurus-scada.org
 ##
 ## Copyright 2011 CELLS / ALBA Synchrotron, Bellaterra, Spain
 ## 
diff --git a/lib/taurus/core/util/tablepprint.py b/lib/taurus/core/util/tablepprint.py
index 9c69ff3..0e166ef 100644
--- a/lib/taurus/core/util/tablepprint.py
+++ b/lib/taurus/core/util/tablepprint.py
@@ -2,9 +2,9 @@
 
 #############################################################################
 ##
-## This file is part of Taurus, a Tango User Interface Library
+## This file is part of Taurus
 ## 
-## http://www.tango-controls.org/static/taurus/latest/doc/html/index.html
+## http://taurus-scada.org
 ##
 ## Copyright 2011 CELLS / ALBA Synchrotron, Bellaterra, Spain
 ## 
diff --git a/lib/taurus/core/util/tb.py b/lib/taurus/core/util/tb.py
index dceda92..ff11cc1 100644
--- a/lib/taurus/core/util/tb.py
+++ b/lib/taurus/core/util/tb.py
@@ -2,9 +2,9 @@
 
 #############################################################################
 ##
-## This file is part of Taurus, a Tango User Interface Library
+## This file is part of Taurus
 ## 
-## http://www.tango-controls.org/static/taurus/latest/doc/html/index.html
+## http://taurus-scada.org
 ##
 ## Copyright 2011 CELLS / ALBA Synchrotron, Bellaterra, Spain
 ## 
diff --git a/lib/taurus/qt/qtgui/graphic/jdraw/test/__init__.py b/lib/taurus/core/util/test/__init__.py
similarity index 86%
copy from lib/taurus/qt/qtgui/graphic/jdraw/test/__init__.py
copy to lib/taurus/core/util/test/__init__.py
index 810fb34..5551527 100644
--- a/lib/taurus/qt/qtgui/graphic/jdraw/test/__init__.py
+++ b/lib/taurus/core/util/test/__init__.py
@@ -2,9 +2,9 @@
 
 #############################################################################
 ##
-## This file is part of Taurus, a Tango User Interface Library
+## This file is part of Taurus
 ## 
-## http://www.tango-controls.org/static/taurus/latest/doc/html/index.html
+## http://taurus-scada.org
 ##
 ## Copyright 2011 CELLS / ALBA Synchrotron, Bellaterra, Spain
 ## 
@@ -22,3 +22,6 @@
 ## along with Taurus.  If not, see <http://www.gnu.org/licenses/>.
 ##
 #############################################################################
+
+"""
+"""
\ No newline at end of file
diff --git a/lib/taurus/core/util/test/test_codecs.py b/lib/taurus/core/util/test/test_codecs.py
index e3c13a9..71f1fbb 100644
--- a/lib/taurus/core/util/test/test_codecs.py
+++ b/lib/taurus/core/util/test/test_codecs.py
@@ -2,9 +2,9 @@
 
 #############################################################################
 ##
-## This file is part of Taurus, a Tango User Interface Library
+## This file is part of Taurus
 ## 
-## http://www.tango-controls.org/static/taurus/latest/doc/html/index.html
+## http://taurus-scada.org
 ##
 ## Copyright 2011 CELLS / ALBA Synchrotron, Bellaterra, Spain
 ## 
diff --git a/lib/taurus/core/util/test/test_timer.py b/lib/taurus/core/util/test/test_timer.py
index c067f47..9ae1898 100644
--- a/lib/taurus/core/util/test/test_timer.py
+++ b/lib/taurus/core/util/test/test_timer.py
@@ -2,9 +2,9 @@
 
 #############################################################################
 ##
-## This file is part of Taurus, a Tango User Interface Library
+## This file is part of Taurus
 ## 
-## http://www.tango-controls.org/static/taurus/latest/doc/html/index.html
+## http://taurus-scada.org
 ##
 ## Copyright 2011 CELLS / ALBA Synchrotron, Bellaterra, Spain
 ## 
diff --git a/lib/taurus/core/util/threadpool.py b/lib/taurus/core/util/threadpool.py
index 37d036c..445e4ff 100644
--- a/lib/taurus/core/util/threadpool.py
+++ b/lib/taurus/core/util/threadpool.py
@@ -2,9 +2,9 @@
 
 #############################################################################
 ##
-## This file is part of Taurus, a Tango User Interface Library
+## This file is part of Taurus
 ## 
-## http://www.tango-controls.org/static/taurus/latest/doc/html/index.html
+## http://taurus-scada.org
 ##
 ## Copyright 2011 CELLS / ALBA Synchrotron, Bellaterra, Spain
 ## 
@@ -31,7 +31,7 @@ __docformat__ = "restructuredtext"
 
 from threading import Thread, currentThread
 from Queue import Queue
-from time import sleep
+from time import sleep, time
 from traceback import extract_stack, format_list
 
 from prop import propertx
@@ -51,7 +51,7 @@ class ThreadPool(Logger):
         self.jobs = Queue(Qsize)
         self.size = Psize
         self.accept = True
-        
+
     @propertx
     def size():
         def set(self, newSize):
@@ -99,6 +99,15 @@ class ThreadPool(Logger):
     @property
     def qsize(self): return self.jobs.qsize()
 
+    def getNumOfBusyWorkers(self):
+        ''' Get the number of workers that are in busy mode.
+        '''
+        n = 0
+        for w in self.workers:
+            if w.isBusy():
+                n += 1
+        return n
+
 
 class Worker(Thread, Logger):
     
@@ -109,12 +118,14 @@ class Worker(Thread, Logger):
         self.daemon = daemon
         self.pool = pool
         self.cmd=''
+        self.busy = False
     
     def run(self):
         get = self.pool.jobs.get
         while True:
             cmd, args, kw, callback, th_id, stack = get()
             if cmd:
+                self.busy = True
                 self.cmd = cmd.__name__
                 try:
                     if callback:
@@ -127,11 +138,15 @@ class Worker(Thread, Logger):
                                "from thread %s:\n%s",
                                self.cmd, th_id, orig_stack, exc_info=1)
                 finally:
+                    self.busy = False
                     self.cmd = ''
             else:
                 self.pool.workers.remove(self)
                 return
 
+    def isBusy(self):
+        return self.busy
+
 if __name__=='__main__':
 
     def easyJob(*arg, **kw):
@@ -150,20 +165,58 @@ if __name__=='__main__':
     def show(*arg, **kw):
         print 'callback : %s' % arg[0]
 
-    pool = ThreadPool(5, 50)
-    print "\n\t\t... let's add some jobs ...\n"
-    for j in range(5):
-        if j==1: pool.add(badJob)
-        for i in range(5,0,-1):
-            pool.add(longJob, show, i)
-            pool.add(easyJob, show, i)
-    print '''
-        \t\t... and now, we're waiting for the %i workers to get the %i jobs done ...
-    ''' % (pool.size, pool.qsize)
-    sleep(15)
-    print "\n\t\t... ok, that may take a while, let's get some reinforcement ...\n"
-    sleep(5)
-    pool.size=50
-    print '\n\t\t... Joining ...\n'
-    pool.join()
-    print '\n\t\t... Ok ...\n'
+    def test_1(**kwargs):
+        workers = kwargs.pop('workers', 5)
+        jobqueue = kwargs.pop('jobqueue', 10)
+        pool = ThreadPool(name='ThreadPool', Psize=workers, Qsize=jobqueue)
+        print "\n\t\t... let's add some jobs ...\n"
+        for j in range(5):
+            if j==1: pool.add(badJob)
+            for i in range(5, 0, -1):
+                pool.add(longJob, show, i)
+                pool.add(easyJob, show, i)
+        print '''
+            \t\t... and now, we're waiting for the %i workers to get the %i jobs done ...
+        ''' % (pool.size, pool.qsize)
+        sleep(15)
+        print "\n\t\t... ok, that may take a while, let's get some reinforcement ...\n"
+        sleep(5)
+        pool.size=50
+        print '\n\t\t... Joining ...\n'
+        pool.join()
+        print '\n\t\t... Ok ...\n'
+
+    def test_2(**kwargs):
+        workers = kwargs.pop('workers', 5)
+        jobqueue = kwargs.pop('jobqueue', 10)
+        numjobs = kwargs.pop('numjobs', 10)
+        sleep_t = kwargs.pop('sleep_t', 1)
+        #from taurus.core.util.threadpool import ThreadPool
+        pool = ThreadPool(name='ThreadPool', Psize=workers, Qsize=jobqueue)
+        print "\n\t\t... Check the number of busy workers ...\n"
+        print "Num of busy workers = %s" % (pool.getNumOfBusyWorkers())
+        print "\n\t\t... let's add some jobs ...\n"
+        for i in range(numjobs):
+            pool.add(easyJob, None, sleep_t)
+        print '\n\t\t... Monitoring the busy workers ...\n'
+        t0 = time()
+        while pool.getNumOfBusyWorkers() > 0 :
+            print "busy workers = %s" % (pool.getNumOfBusyWorkers())
+            sleep(0.5)
+        t1 = time()
+        print "Run %s jobs of 1 second took %.3f" % (numjobs, t1-t0)
+        print '\n\t\t... Joining ...\n'
+        pool.join()
+        print '\n\t\t... Ok ...\n'
+
+    def main(argv):
+        kwargs = {}
+        for arg in argv:
+            k, v = arg.split('=')
+            kwargs[k] = int(v)
+        # Run test
+        test_1(**kwargs)
+        test_2(**kwargs)
+
+    import sys
+    main(sys.argv[1:])
diff --git a/lib/taurus/core/util/timer.py b/lib/taurus/core/util/timer.py
index 1e263d1..fd87aa0 100644
--- a/lib/taurus/core/util/timer.py
+++ b/lib/taurus/core/util/timer.py
@@ -2,9 +2,9 @@
 
 #############################################################################
 ##
-## This file is part of Taurus, a Tango User Interface Library
+## This file is part of Taurus
 ## 
-## http://www.tango-controls.org/static/taurus/latest/doc/html/index.html
+## http://taurus-scada.org
 ##
 ## Copyright 2011 CELLS / ALBA Synchrotron, Bellaterra, Spain
 ## 
diff --git a/lib/taurus/core/util/user.py b/lib/taurus/core/util/user.py
index 1bb73be..fe55d3e 100644
--- a/lib/taurus/core/util/user.py
+++ b/lib/taurus/core/util/user.py
@@ -2,9 +2,9 @@
 
 #############################################################################
 ##
-## This file is part of Taurus, a Tango User Interface Library
+## This file is part of Taurus
 ## 
-## http://www.tango-controls.org/static/taurus/latest/doc/html/index.html
+## http://taurus-scada.org
 ##
 ## Copyright 2011 CELLS / ALBA Synchrotron, Bellaterra, Spain
 ## 
diff --git a/lib/taurus/core/util/whichexecutable.py b/lib/taurus/core/util/whichexecutable.py
index 0a099f5..6399481 100644
--- a/lib/taurus/core/util/whichexecutable.py
+++ b/lib/taurus/core/util/whichexecutable.py
@@ -2,9 +2,9 @@
 
 #############################################################################
 ##
-## This file is part of Taurus, a Tango User Interface Library
+## This file is part of Taurus
 ##
-## http://www.tango-controls.org/static/taurus/latest/doc/html/index.html
+## http://taurus-scada.org
 ##
 ## Copyright 2011 CELLS / ALBA Synchrotron, Bellaterra, Spain
 ##
diff --git a/lib/taurus/core/util/wrap.py b/lib/taurus/core/util/wrap.py
index 1ef099b..bf82c22 100644
--- a/lib/taurus/core/util/wrap.py
+++ b/lib/taurus/core/util/wrap.py
@@ -2,9 +2,9 @@
 
 #############################################################################
 ##
-## This file is part of Taurus, a Tango User Interface Library
+## This file is part of Taurus
 ## 
-## http://www.tango-controls.org/static/taurus/latest/doc/html/index.html
+## http://taurus-scada.org
 ##
 ## Copyright 2011 CELLS / ALBA Synchrotron, Bellaterra, Spain
 ## 
diff --git a/lib/taurus/core/utils/__init__.py b/lib/taurus/core/utils/__init__.py
index 1b5d690..9ec35d7 100644
--- a/lib/taurus/core/utils/__init__.py
+++ b/lib/taurus/core/utils/__init__.py
@@ -2,9 +2,9 @@
 
 #############################################################################
 ##
-## This file is part of Taurus, a Tango User Interface Library
+## This file is part of Taurus
 ## 
-## http://www.tango-controls.org/static/taurus/latest/doc/html/index.html
+## http://taurus-scada.org
 ##
 ## Copyright 2011 CELLS / ALBA Synchrotron, Bellaterra, Spain
 ## 
diff --git a/lib/taurus/external/__init__.py b/lib/taurus/external/__init__.py
index c050b0b..f36e7b8 100644
--- a/lib/taurus/external/__init__.py
+++ b/lib/taurus/external/__init__.py
@@ -2,9 +2,9 @@
 
 ##############################################################################
 ##
-## This file is part of Taurus, a Tango User Interface Library
+## This file is part of Taurus
 ##
-## http://www.tango-controls.org/static/taurus/latest/doc/html/index.html
+## http://taurus-scada.org
 ##
 ## Copyright 2011 CELLS / ALBA Synchrotron, Bellaterra, Spain
 ##
diff --git a/lib/taurus/external/argparse/__init__.py b/lib/taurus/external/argparse/__init__.py
index e64d5f1..85129e6 100644
--- a/lib/taurus/external/argparse/__init__.py
+++ b/lib/taurus/external/argparse/__init__.py
@@ -2,9 +2,9 @@
 
 ##############################################################################
 ##
-## This file is part of Taurus, a Tango User Interface Library
+## This file is part of Taurus
 ##
-## http://www.tango-controls.org/static/taurus/latest/doc/html/index.html
+## http://taurus-scada.org
 ##
 ## Copyright 2011 CELLS / ALBA Synchrotron, Bellaterra, Spain
 ##
diff --git a/lib/taurus/external/enum/__init__.py b/lib/taurus/external/enum/__init__.py
index 911320c..827e9c0 100644
--- a/lib/taurus/external/enum/__init__.py
+++ b/lib/taurus/external/enum/__init__.py
@@ -2,9 +2,9 @@
 
 ##############################################################################
 ##
-## This file is part of Taurus, a Tango User Interface Library
+## This file is part of Taurus
 ##
-## http://www.tango-controls.org/static/taurus/latest/doc/html/index.html
+## http://taurus-scada.org
 ##
 ## Copyright 2011 CELLS / ALBA Synchrotron, Bellaterra, Spain
 ##
diff --git a/lib/taurus/external/ordereddict/__init__.py b/lib/taurus/external/ordereddict/__init__.py
index a2a399a..caf0c37 100644
--- a/lib/taurus/external/ordereddict/__init__.py
+++ b/lib/taurus/external/ordereddict/__init__.py
@@ -2,9 +2,9 @@
 
 ##############################################################################
 ##
-## This file is part of Taurus, a Tango User Interface Library
+## This file is part of Taurus
 ##
-## http://www.tango-controls.org/static/taurus/latest/doc/html/index.html
+## http://taurus-scada.org
 ##
 ## Copyright 2011 CELLS / ALBA Synchrotron, Bellaterra, Spain
 ##
diff --git a/lib/taurus/external/pint/__init__.py b/lib/taurus/external/pint/__init__.py
index fc86581..5bebb89 100644
--- a/lib/taurus/external/pint/__init__.py
+++ b/lib/taurus/external/pint/__init__.py
@@ -2,9 +2,9 @@
 
 ##############################################################################
 ##
-## This file is part of Taurus, a Tango User Interface Library
+## This file is part of Taurus
 ##
-## http://www.tango-controls.org/static/taurus/latest/doc/html/index.html
+## http://taurus-scada.org
 ##
 ## Copyright 2011 CELLS / ALBA Synchrotron, Bellaterra, Spain
 ##
diff --git a/lib/taurus/external/qt/Qt.py b/lib/taurus/external/qt/Qt.py
index 29311cb..c6dfebb 100644
--- a/lib/taurus/external/qt/Qt.py
+++ b/lib/taurus/external/qt/Qt.py
@@ -2,9 +2,9 @@
 
 ##############################################################################
 ##
-## This file is part of Taurus, a Tango User Interface Library
+## This file is part of Taurus
 ##
-## http://www.tango-controls.org/static/taurus/latest/doc/html/index.html
+## http://taurus-scada.org
 ##
 ## Copyright 2011 CELLS / ALBA Synchrotron, Bellaterra, Spain
 ##
diff --git a/lib/taurus/external/qt/QtCore.py b/lib/taurus/external/qt/QtCore.py
index c4e7e5e..c276dfd 100644
--- a/lib/taurus/external/qt/QtCore.py
+++ b/lib/taurus/external/qt/QtCore.py
@@ -2,9 +2,9 @@
 
 ##############################################################################
 ##
-## This file is part of Taurus, a Tango User Interface Library
+## This file is part of Taurus
 ##
-## http://www.tango-controls.org/static/taurus/latest/doc/html/index.html
+## http://taurus-scada.org
 ##
 ## Copyright 2011 CELLS / ALBA Synchrotron, Bellaterra, Spain
 ##
diff --git a/lib/taurus/external/qt/QtDesigner.py b/lib/taurus/external/qt/QtDesigner.py
index a1f50c7..e38e3e0 100644
--- a/lib/taurus/external/qt/QtDesigner.py
+++ b/lib/taurus/external/qt/QtDesigner.py
@@ -2,9 +2,9 @@
 
 ##############################################################################
 ##
-## This file is part of Taurus, a Tango User Interface Library
+## This file is part of Taurus
 ##
-## http://www.tango-controls.org/static/taurus/latest/doc/html/index.html
+## http://taurus-scada.org
 ##
 ## Copyright 2011 CELLS / ALBA Synchrotron, Bellaterra, Spain
 ##
diff --git a/lib/taurus/external/qt/QtGui.py b/lib/taurus/external/qt/QtGui.py
index 3a380b1..bbbf023 100644
--- a/lib/taurus/external/qt/QtGui.py
+++ b/lib/taurus/external/qt/QtGui.py
@@ -2,9 +2,9 @@
 
 ##############################################################################
 ##
-## This file is part of Taurus, a Tango User Interface Library
+## This file is part of Taurus
 ##
-## http://www.tango-controls.org/static/taurus/latest/doc/html/index.html
+## http://taurus-scada.org
 ##
 ## Copyright 2011 CELLS / ALBA Synchrotron, Bellaterra, Spain
 ##
diff --git a/lib/taurus/external/qt/QtHelp.py b/lib/taurus/external/qt/QtHelp.py
index d21608b..ce467bf 100644
--- a/lib/taurus/external/qt/QtHelp.py
+++ b/lib/taurus/external/qt/QtHelp.py
@@ -2,9 +2,9 @@
 
 ##############################################################################
 ##
-## This file is part of Taurus, a Tango User Interface Library
+## This file is part of Taurus
 ##
-## http://www.tango-controls.org/static/taurus/latest/doc/html/index.html
+## http://taurus-scada.org
 ##
 ## Copyright 2011 CELLS / ALBA Synchrotron, Bellaterra, Spain
 ##
diff --git a/lib/taurus/external/qt/QtNetwork.py b/lib/taurus/external/qt/QtNetwork.py
index b272f85..f807a32 100644
--- a/lib/taurus/external/qt/QtNetwork.py
+++ b/lib/taurus/external/qt/QtNetwork.py
@@ -2,9 +2,9 @@
 
 ##############################################################################
 ##
-## This file is part of Taurus, a Tango User Interface Library
+## This file is part of Taurus
 ##
-## http://www.tango-controls.org/static/taurus/latest/doc/html/index.html
+## http://taurus-scada.org
 ##
 ## Copyright 2011 CELLS / ALBA Synchrotron, Bellaterra, Spain
 ##
diff --git a/lib/taurus/external/qt/QtSvg.py b/lib/taurus/external/qt/QtSvg.py
index 917f621..a806a57 100644
--- a/lib/taurus/external/qt/QtSvg.py
+++ b/lib/taurus/external/qt/QtSvg.py
@@ -2,9 +2,9 @@
 
 ##############################################################################
 ##
-## This file is part of Taurus, a Tango User Interface Library
+## This file is part of Taurus
 ##
-## http://www.tango-controls.org/static/taurus/latest/doc/html/index.html
+## http://taurus-scada.org
 ##
 ## Copyright 2011 CELLS / ALBA Synchrotron, Bellaterra, Spain
 ##
diff --git a/lib/taurus/external/qt/QtUiTools.py b/lib/taurus/external/qt/QtUiTools.py
index 1f42605..4360ca3 100644
--- a/lib/taurus/external/qt/QtUiTools.py
+++ b/lib/taurus/external/qt/QtUiTools.py
@@ -2,9 +2,9 @@
 
 ##############################################################################
 ##
-## This file is part of Taurus, a Tango User Interface Library
+## This file is part of Taurus
 ##
-## http://www.tango-controls.org/static/taurus/latest/doc/html/index.html
+## http://taurus-scada.org
 ##
 ## Copyright 2011 CELLS / ALBA Synchrotron, Bellaterra, Spain
 ##
diff --git a/lib/taurus/external/qt/QtWebKit.py b/lib/taurus/external/qt/QtWebKit.py
index 3765429..2135721 100644
--- a/lib/taurus/external/qt/QtWebKit.py
+++ b/lib/taurus/external/qt/QtWebKit.py
@@ -2,9 +2,9 @@
 
 ##############################################################################
 ##
-## This file is part of Taurus, a Tango User Interface Library
+## This file is part of Taurus
 ##
-## http://www.tango-controls.org/static/taurus/latest/doc/html/index.html
+## http://taurus-scada.org
 ##
 ## Copyright 2011 CELLS / ALBA Synchrotron, Bellaterra, Spain
 ##
diff --git a/lib/taurus/external/qt/Qwt5.py b/lib/taurus/external/qt/Qwt5.py
index 0c58e51..aba6c69 100644
--- a/lib/taurus/external/qt/Qwt5.py
+++ b/lib/taurus/external/qt/Qwt5.py
@@ -2,9 +2,9 @@
 
 ##############################################################################
 ##
-## This file is part of Taurus, a Tango User Interface Library
+## This file is part of Taurus
 ##
-## http://www.tango-controls.org/static/taurus/latest/doc/html/index.html
+## http://taurus-scada.org
 ##
 ## Copyright 2011 CELLS / ALBA Synchrotron, Bellaterra, Spain
 ##
diff --git a/lib/taurus/external/qt/__init__.py b/lib/taurus/external/qt/__init__.py
index 4c8a229..d7ddbd9 100644
--- a/lib/taurus/external/qt/__init__.py
+++ b/lib/taurus/external/qt/__init__.py
@@ -2,9 +2,9 @@
 
 ##############################################################################
 ##
-## This file is part of Taurus, a Tango User Interface Library
+## This file is part of Taurus
 ##
-## http://www.tango-controls.org/static/taurus/latest/doc/html/index.html
+## http://taurus-scada.org
 ##
 ## Copyright 2011 CELLS / ALBA Synchrotron, Bellaterra, Spain
 ##
diff --git a/lib/taurus/external/qt/uic.py b/lib/taurus/external/qt/uic.py
index b4fb2e4..2f37e80 100644
--- a/lib/taurus/external/qt/uic.py
+++ b/lib/taurus/external/qt/uic.py
@@ -2,9 +2,9 @@
 
 ##############################################################################
 ##
-## This file is part of Taurus, a Tango User Interface Library
+## This file is part of Taurus
 ##
-## http://www.tango-controls.org/static/taurus/latest/doc/html/index.html
+## http://taurus-scada.org
 ##
 ## Copyright 2011 CELLS / ALBA Synchrotron, Bellaterra, Spain
 ##
diff --git a/lib/taurus/external/test/__init__.py b/lib/taurus/external/test/__init__.py
index c050b0b..f36e7b8 100644
--- a/lib/taurus/external/test/__init__.py
+++ b/lib/taurus/external/test/__init__.py
@@ -2,9 +2,9 @@
 
 ##############################################################################
 ##
-## This file is part of Taurus, a Tango User Interface Library
+## This file is part of Taurus
 ##
-## http://www.tango-controls.org/static/taurus/latest/doc/html/index.html
+## http://taurus-scada.org
 ##
 ## Copyright 2011 CELLS / ALBA Synchrotron, Bellaterra, Spain
 ##
diff --git a/lib/taurus/external/test/test_qt.py b/lib/taurus/external/test/test_qt.py
index c7d2d1c..00935b7 100644
--- a/lib/taurus/external/test/test_qt.py
+++ b/lib/taurus/external/test/test_qt.py
@@ -2,9 +2,9 @@
 
 ##############################################################################
 ##
-## This file is part of Taurus, a Tango User Interface Library
+## This file is part of Taurus
 ##
-## http://www.tango-controls.org/static/taurus/latest/doc/html/index.html
+## http://taurus-scada.org
 ##
 ## Copyright 2011 CELLS / ALBA Synchrotron, Bellaterra, Spain
 ##
@@ -102,9 +102,12 @@ class QtTestCase(unittest.TestCase):
         return self.__test_qt_module("QtGui")
 
     def test_icons(self):
-        from taurus.external.qt.QtGui import QIcon
-        icon = QIcon.fromTheme("folder-open")
-        self.assertFalse(icon.isNull())
+        '''check that theme icons work'''
+        from taurus.qt.qtgui.resource import getThemeIcon
+        icon = getThemeIcon("folder-open")
+        msg = ('Theme icons not available ' + 
+               '(if PyQt<4.6, make sure to build resources first!)')
+        self.assertFalse(icon.isNull(), msg)
 
 
 def  main():
diff --git a/lib/taurus/external/unittest/__init__.py b/lib/taurus/external/unittest/__init__.py
index 308b227..c03c354 100644
--- a/lib/taurus/external/unittest/__init__.py
+++ b/lib/taurus/external/unittest/__init__.py
@@ -2,9 +2,9 @@
 
 ##############################################################################
 ##
-## This file is part of Taurus, a Tango User Interface Library
+## This file is part of Taurus
 ##
-## http://www.tango-controls.org/static/taurus/latest/doc/html/index.html
+## http://taurus-scada.org
 ##
 ## Copyright 2011 CELLS / ALBA Synchrotron, Bellaterra, Spain
 ##
diff --git a/lib/taurus/qt/Qt.py b/lib/taurus/qt/Qt.py
index 5b1c3c6..fe51e01 100644
--- a/lib/taurus/qt/Qt.py
+++ b/lib/taurus/qt/Qt.py
@@ -2,9 +2,9 @@
 
 #############################################################################
 ##
-## This file is part of Taurus, a Tango User Interface Library
+## This file is part of Taurus
 ## 
-## http://www.tango-controls.org/static/taurus/latest/doc/html/index.html
+## http://taurus-scada.org
 ##
 ## Copyright 2011 CELLS / ALBA Synchrotron, Bellaterra, Spain
 ## 
diff --git a/lib/taurus/qt/QtCore.py b/lib/taurus/qt/QtCore.py
index 5a8f747..e495d96 100644
--- a/lib/taurus/qt/QtCore.py
+++ b/lib/taurus/qt/QtCore.py
@@ -2,9 +2,9 @@
 
 #############################################################################
 ##
-## This file is part of Taurus, a Tango User Interface Library
+## This file is part of Taurus
 ## 
-## http://www.tango-controls.org/static/taurus/latest/doc/html/index.html
+## http://taurus-scada.org
 ##
 ## Copyright 2011 CELLS / ALBA Synchrotron, Bellaterra, Spain
 ## 
diff --git a/lib/taurus/qt/QtDesigner.py b/lib/taurus/qt/QtDesigner.py
index 95f7d9f..5a12bcc 100644
--- a/lib/taurus/qt/QtDesigner.py
+++ b/lib/taurus/qt/QtDesigner.py
@@ -2,9 +2,9 @@
 
 #############################################################################
 ##
-## This file is part of Taurus, a Tango User Interface Library
+## This file is part of Taurus
 ## 
-## http://www.tango-controls.org/static/taurus/latest/doc/html/index.html
+## http://taurus-scada.org
 ##
 ## Copyright 2011 CELLS / ALBA Synchrotron, Bellaterra, Spain
 ## 
diff --git a/lib/taurus/qt/QtGui.py b/lib/taurus/qt/QtGui.py
index 0c9dac5..3173fa8 100644
--- a/lib/taurus/qt/QtGui.py
+++ b/lib/taurus/qt/QtGui.py
@@ -2,9 +2,9 @@
 
 #############################################################################
 ##
-## This file is part of Taurus, a Tango User Interface Library
+## This file is part of Taurus
 ## 
-## http://www.tango-controls.org/static/taurus/latest/doc/html/index.html
+## http://taurus-scada.org
 ##
 ## Copyright 2011 CELLS / ALBA Synchrotron, Bellaterra, Spain
 ## 
diff --git a/lib/taurus/qt/QtNetwork.py b/lib/taurus/qt/QtNetwork.py
index c956ddc..8c32056 100644
--- a/lib/taurus/qt/QtNetwork.py
+++ b/lib/taurus/qt/QtNetwork.py
@@ -2,9 +2,9 @@
 
 #############################################################################
 ##
-## This file is part of Taurus, a Tango User Interface Library
+## This file is part of Taurus
 ##
-## http://www.tango-controls.org/static/taurus/latest/doc/html/index.html
+## http://taurus-scada.org
 ##
 ## Copyright 2011 CELLS / ALBA Synchrotron, Bellaterra, Spain
 ##
diff --git a/lib/taurus/qt/QtSvg.py b/lib/taurus/qt/QtSvg.py
index b5d6bd1..6cd41d2 100644
--- a/lib/taurus/qt/QtSvg.py
+++ b/lib/taurus/qt/QtSvg.py
@@ -2,9 +2,9 @@
 
 #############################################################################
 ##
-## This file is part of Taurus, a Tango User Interface Library
+## This file is part of Taurus
 ##
-## http://www.tango-controls.org/static/taurus/latest/doc/html/index.html
+## http://taurus-scada.org
 ##
 ## Copyright 2011 CELLS / ALBA Synchrotron, Bellaterra, Spain
 ##
diff --git a/lib/taurus/qt/QtUiTools.py b/lib/taurus/qt/QtUiTools.py
index 4e628c5..33060e7 100644
--- a/lib/taurus/qt/QtUiTools.py
+++ b/lib/taurus/qt/QtUiTools.py
@@ -2,9 +2,9 @@
 
 #############################################################################
 ##
-## This file is part of Taurus, a Tango User Interface Library
+## This file is part of Taurus
 ##
-## http://www.tango-controls.org/static/taurus/latest/doc/html/index.html
+## http://taurus-scada.org
 ##
 ## Copyright 2011 CELLS / ALBA Synchrotron, Bellaterra, Spain
 ##
diff --git a/lib/taurus/qt/QtWebKit.py b/lib/taurus/qt/QtWebKit.py
index ae03f74..a6746c8 100644
--- a/lib/taurus/qt/QtWebKit.py
+++ b/lib/taurus/qt/QtWebKit.py
@@ -2,9 +2,9 @@
 
 #############################################################################
 ##
-## This file is part of Taurus, a Tango User Interface Library
+## This file is part of Taurus
 ##
-## http://www.tango-controls.org/static/taurus/latest/doc/html/index.html
+## http://taurus-scada.org
 ##
 ## Copyright 2011 CELLS / ALBA Synchrotron, Bellaterra, Spain
 ##
diff --git a/lib/taurus/qt/Qwt5.py b/lib/taurus/qt/Qwt5.py
index 784ba34..d88d9e3 100644
--- a/lib/taurus/qt/Qwt5.py
+++ b/lib/taurus/qt/Qwt5.py
@@ -2,9 +2,9 @@
 
 #############################################################################
 ##
-## This file is part of Taurus, a Tango User Interface Library
+## This file is part of Taurus
 ##
-## http://www.tango-controls.org/static/taurus/latest/doc/html/index.html
+## http://taurus-scada.org
 ##
 ## Copyright 2011 CELLS / ALBA Synchrotron, Bellaterra, Spain
 ##
diff --git a/lib/taurus/qt/__init__.py b/lib/taurus/qt/__init__.py
index 103a25c..c8595b5 100644
--- a/lib/taurus/qt/__init__.py
+++ b/lib/taurus/qt/__init__.py
@@ -2,9 +2,9 @@
 
 #############################################################################
 ##
-## This file is part of Taurus, a Tango User Interface Library
+## This file is part of Taurus
 ## 
-## http://www.tango-controls.org/static/taurus/latest/doc/html/index.html
+## http://taurus-scada.org
 ##
 ## Copyright 2011 CELLS / ALBA Synchrotron, Bellaterra, Spain
 ## 
diff --git a/lib/taurus/qt/qtcore/__init__.py b/lib/taurus/qt/qtcore/__init__.py
index 283a37b..39c21a4 100644
--- a/lib/taurus/qt/qtcore/__init__.py
+++ b/lib/taurus/qt/qtcore/__init__.py
@@ -2,9 +2,9 @@
 
 #############################################################################
 ##
-## This file is part of Taurus, a Tango User Interface Library
+## This file is part of Taurus
 ## 
-## http://www.tango-controls.org/static/taurus/latest/doc/html/index.html
+## http://taurus-scada.org
 ##
 ## Copyright 2011 CELLS / ALBA Synchrotron, Bellaterra, Spain
 ## 
diff --git a/lib/taurus/qt/qtcore/communication/__init__.py b/lib/taurus/qt/qtcore/communication/__init__.py
index f4adf5d..eb8be41 100644
--- a/lib/taurus/qt/qtcore/communication/__init__.py
+++ b/lib/taurus/qt/qtcore/communication/__init__.py
@@ -2,9 +2,9 @@
 
 #############################################################################
 ##
-## This file is part of Taurus, a Tango User Interface Library
+## This file is part of Taurus
 ## 
-## http://www.tango-controls.org/static/taurus/latest/doc/html/index.html
+## http://taurus-scada.org
 ##
 ## Copyright 2011 CELLS / ALBA Synchrotron, Bellaterra, Spain
 ## 
diff --git a/lib/taurus/qt/qtcore/communication/communication.py b/lib/taurus/qt/qtcore/communication/communication.py
index 21c5973..13746f5 100644
--- a/lib/taurus/qt/qtcore/communication/communication.py
+++ b/lib/taurus/qt/qtcore/communication/communication.py
@@ -2,9 +2,9 @@
 
 #############################################################################
 ##
-## This file is part of Taurus, a Tango User Interface Library
+## This file is part of Taurus
 ## 
-## http://www.tango-controls.org/static/taurus/latest/doc/html/index.html
+## http://taurus-scada.org
 ##
 ## Copyright 2011 CELLS / ALBA Synchrotron, Bellaterra, Spain
 ## 
diff --git a/lib/taurus/qt/qtcore/configuration/__init__.py b/lib/taurus/qt/qtcore/configuration/__init__.py
index 353f0b8..155bd62 100644
--- a/lib/taurus/qt/qtcore/configuration/__init__.py
+++ b/lib/taurus/qt/qtcore/configuration/__init__.py
@@ -2,9 +2,9 @@
 
 #############################################################################
 ##
-## This file is part of Taurus, a Tango User Interface Library
+## This file is part of Taurus
 ## 
-## http://www.tango-controls.org/static/taurus/latest/doc/html/index.html
+## http://taurus-scada.org
 ##
 ## Copyright 2011 CELLS / ALBA Synchrotron, Bellaterra, Spain
 ## 
diff --git a/lib/taurus/qt/qtcore/configuration/configuration.py b/lib/taurus/qt/qtcore/configuration/configuration.py
index cb8a2c8..0227f35 100644
--- a/lib/taurus/qt/qtcore/configuration/configuration.py
+++ b/lib/taurus/qt/qtcore/configuration/configuration.py
@@ -2,9 +2,9 @@
 
 #############################################################################
 ##
-## This file is part of Taurus, a Tango User Interface Library
+## This file is part of Taurus
 ## 
-## http://www.tango-controls.org/static/taurus/latest/doc/html/index.html
+## http://taurus-scada.org
 ##
 ## Copyright 2011 CELLS / ALBA Synchrotron, Bellaterra, Spain
 ## 
diff --git a/lib/taurus/qt/qtcore/mimetypes/__init__.py b/lib/taurus/qt/qtcore/mimetypes/__init__.py
index f88e88f..0f90702 100644
--- a/lib/taurus/qt/qtcore/mimetypes/__init__.py
+++ b/lib/taurus/qt/qtcore/mimetypes/__init__.py
@@ -2,9 +2,9 @@
 
 #############################################################################
 ##
-## This file is part of Taurus, a Tango User Interface Library
+## This file is part of Taurus
 ## 
-## http://www.tango-controls.org/static/taurus/latest/doc/html/index.html
+## http://taurus-scada.org
 ##
 ## Copyright 2011 CELLS / ALBA Synchrotron, Bellaterra, Spain
 ## 
diff --git a/lib/taurus/qt/qtcore/mimetypes/mimetypes.py b/lib/taurus/qt/qtcore/mimetypes/mimetypes.py
index 3c8de23..b937054 100644
--- a/lib/taurus/qt/qtcore/mimetypes/mimetypes.py
+++ b/lib/taurus/qt/qtcore/mimetypes/mimetypes.py
@@ -2,9 +2,9 @@
 
 #############################################################################
 ##
-## This file is part of Taurus, a Tango User Interface Library
+## This file is part of Taurus
 ## 
-## http://www.tango-controls.org/static/taurus/latest/doc/html/index.html
+## http://taurus-scada.org
 ##
 ## Copyright 2011 CELLS / ALBA Synchrotron, Bellaterra, Spain
 ## 
diff --git a/lib/taurus/qt/qtcore/model/__init__.py b/lib/taurus/qt/qtcore/model/__init__.py
index d037e71..a696457 100644
--- a/lib/taurus/qt/qtcore/model/__init__.py
+++ b/lib/taurus/qt/qtcore/model/__init__.py
@@ -2,9 +2,9 @@
 
 #############################################################################
 ##
-## This file is part of Taurus, a Tango User Interface Library
+## This file is part of Taurus
 ## 
-## http://www.tango-controls.org/static/taurus/latest/doc/html/index.html
+## http://taurus-scada.org
 ##
 ## Copyright 2011 CELLS / ALBA Synchrotron, Bellaterra, Spain
 ## 
diff --git a/lib/taurus/qt/qtcore/model/taurusdatabasemodel.py b/lib/taurus/qt/qtcore/model/taurusdatabasemodel.py
index 8e7022a..25e9ef8 100644
--- a/lib/taurus/qt/qtcore/model/taurusdatabasemodel.py
+++ b/lib/taurus/qt/qtcore/model/taurusdatabasemodel.py
@@ -2,9 +2,9 @@
 
 #############################################################################
 ##
-## This file is part of Taurus, a Tango User Interface Library
+## This file is part of Taurus
 ##
-## http://www.tango-controls.org/static/taurus/latest/doc/html/index.html
+## http://taurus-scada.org
 ##
 ## Copyright 2011 CELLS / ALBA Synchrotron, Bellaterra, Spain
 ##
diff --git a/lib/taurus/qt/qtcore/model/taurusmodel.py b/lib/taurus/qt/qtcore/model/taurusmodel.py
index 644ee24..5e2efc8 100644
--- a/lib/taurus/qt/qtcore/model/taurusmodel.py
+++ b/lib/taurus/qt/qtcore/model/taurusmodel.py
@@ -2,9 +2,9 @@
 
 #############################################################################
 ##
-## This file is part of Taurus, a Tango User Interface Library
+## This file is part of Taurus
 ## 
-## http://www.tango-controls.org/static/taurus/latest/doc/html/index.html
+## http://taurus-scada.org
 ##
 ## Copyright 2011 CELLS / ALBA Synchrotron, Bellaterra, Spain
 ## 
diff --git a/lib/taurus/qt/qtcore/tango/__init__.py b/lib/taurus/qt/qtcore/tango/__init__.py
index 8d0cc05..c4dcead 100644
--- a/lib/taurus/qt/qtcore/tango/__init__.py
+++ b/lib/taurus/qt/qtcore/tango/__init__.py
@@ -2,9 +2,9 @@
 
 #############################################################################
 ##
-## This file is part of Taurus, a Tango User Interface Library
+## This file is part of Taurus
 ## 
-## http://www.tango-controls.org/static/taurus/latest/doc/html/index.html
+## http://taurus-scada.org
 ##
 ## Copyright 2011 CELLS / ALBA Synchrotron, Bellaterra, Spain
 ## 
diff --git a/lib/taurus/qt/qtcore/taurusqlistener.py b/lib/taurus/qt/qtcore/taurusqlistener.py
index e37de4c..a674286 100644
--- a/lib/taurus/qt/qtcore/taurusqlistener.py
+++ b/lib/taurus/qt/qtcore/taurusqlistener.py
@@ -2,9 +2,9 @@
 
 #############################################################################
 ##
-## This file is part of Taurus, a Tango User Interface Library
+## This file is part of Taurus
 ##
-## http://www.tango-controls.org/static/taurus/latest/doc/html/index.html
+## http://taurus-scada.org
 ##
 ## Copyright 2011 CELLS / ALBA Synchrotron, Bellaterra, Spain
 ##
diff --git a/lib/taurus/qt/qtcore/util/__init__.py b/lib/taurus/qt/qtcore/util/__init__.py
index c913ca2..09b8922 100644
--- a/lib/taurus/qt/qtcore/util/__init__.py
+++ b/lib/taurus/qt/qtcore/util/__init__.py
@@ -2,9 +2,9 @@
 
 #############################################################################
 ##
-## This file is part of Taurus, a Tango User Interface Library
+## This file is part of Taurus
 ## 
-## http://www.tango-controls.org/static/taurus/latest/doc/html/index.html
+## http://taurus-scada.org
 ##
 ## Copyright 2011 CELLS / ALBA Synchrotron, Bellaterra, Spain
 ## 
diff --git a/lib/taurus/qt/qtcore/util/emitter.py b/lib/taurus/qt/qtcore/util/emitter.py
index ac71c53..8298a61 100644
--- a/lib/taurus/qt/qtcore/util/emitter.py
+++ b/lib/taurus/qt/qtcore/util/emitter.py
@@ -2,7 +2,7 @@
 
 #############################################################################
 ##
-## This file is part of Taurus, a Tango User Interface Library
+## This file is part of Taurus
 ##
 ## http://www.tango-controls.org/static/tau/latest/doc/html/index.html
 ##
diff --git a/lib/taurus/qt/qtcore/util/properties.py b/lib/taurus/qt/qtcore/util/properties.py
index 2a6a497..843804b 100644
--- a/lib/taurus/qt/qtcore/util/properties.py
+++ b/lib/taurus/qt/qtcore/util/properties.py
@@ -2,9 +2,9 @@
 
 #############################################################################
 ##
-## This file is part of Taurus, a Tango User Interface Library
+## This file is part of Taurus
 ## 
-## http://www.tango-controls.org/static/taurus/latest/doc/html/index.html
+## http://taurus-scada.org
 ##
 ## Copyright 2011 CELLS / ALBA Synchrotron, Bellaterra, Spain
 ## 
diff --git a/lib/taurus/qt/qtcore/util/tauruslog.py b/lib/taurus/qt/qtcore/util/tauruslog.py
index b320249..69cf441 100644
--- a/lib/taurus/qt/qtcore/util/tauruslog.py
+++ b/lib/taurus/qt/qtcore/util/tauruslog.py
@@ -2,9 +2,9 @@
 
 #############################################################################
 ##
-## This file is part of Taurus, a Tango User Interface Library
+## This file is part of Taurus
 ## 
-## http://www.tango-controls.org/static/taurus/latest/doc/html/index.html
+## http://taurus-scada.org
 ##
 ## Copyright 2011 CELLS / ALBA Synchrotron, Bellaterra, Spain
 ## 
diff --git a/lib/taurus/qt/qtdesigner/__init__.py b/lib/taurus/qt/qtdesigner/__init__.py
index 17e1ebc..fff6519 100644
--- a/lib/taurus/qt/qtdesigner/__init__.py
+++ b/lib/taurus/qt/qtdesigner/__init__.py
@@ -2,9 +2,9 @@
 
 #############################################################################
 ##
-## This file is part of Taurus, a Tango User Interface Library
+## This file is part of Taurus
 ## 
-## http://www.tango-controls.org/static/taurus/latest/doc/html/index.html
+## http://taurus-scada.org
 ##
 ## Copyright 2011 CELLS / ALBA Synchrotron, Bellaterra, Spain
 ## 
diff --git a/lib/taurus/qt/qtdesigner/containerplugin.py b/lib/taurus/qt/qtdesigner/containerplugin.py
index a679c50..2b75647 100644
--- a/lib/taurus/qt/qtdesigner/containerplugin.py
+++ b/lib/taurus/qt/qtdesigner/containerplugin.py
@@ -2,9 +2,9 @@
 
 #############################################################################
 ##
-## This file is part of Taurus, a Tango User Interface Library
+## This file is part of Taurus
 ## 
-## http://www.tango-controls.org/static/taurus/latest/doc/html/index.html
+## http://taurus-scada.org
 ##
 ## Copyright 2011 CELLS / ALBA Synchrotron, Bellaterra, Spain
 ## 
diff --git a/lib/taurus/qt/qtdesigner/extraguiqwtplugin.py b/lib/taurus/qt/qtdesigner/extraguiqwtplugin.py
index a4314eb..e32da5d 100644
--- a/lib/taurus/qt/qtdesigner/extraguiqwtplugin.py
+++ b/lib/taurus/qt/qtdesigner/extraguiqwtplugin.py
@@ -2,9 +2,9 @@
 
 #############################################################################
 ##
-## This file is part of Taurus, a Tango User Interface Library
+## This file is part of Taurus
 ## 
-## http://www.tango-controls.org/static/taurus/latest/doc/html/index.html
+## http://taurus-scada.org
 ##
 ## Copyright 2011 CELLS / ALBA Synchrotron, Bellaterra, Spain
 ## 
diff --git a/lib/taurus/qt/qtdesigner/taurusdesigner.py b/lib/taurus/qt/qtdesigner/taurusdesigner.py
index f0003cf..3e7f127 100644
--- a/lib/taurus/qt/qtdesigner/taurusdesigner.py
+++ b/lib/taurus/qt/qtdesigner/taurusdesigner.py
@@ -2,9 +2,9 @@
 
 #############################################################################
 ##
-## This file is part of Taurus, a Tango User Interface Library
+## This file is part of Taurus
 ## 
-## http://www.tango-controls.org/static/taurus/latest/doc/html/index.html
+## http://taurus-scada.org
 ##
 ## Copyright 2011 CELLS / ALBA Synchrotron, Bellaterra, Spain
 ## 
diff --git a/lib/taurus/qt/qtdesigner/taurusplugin/__init__.py b/lib/taurus/qt/qtdesigner/taurusplugin/__init__.py
index 7854a2e..2121a3d 100644
--- a/lib/taurus/qt/qtdesigner/taurusplugin/__init__.py
+++ b/lib/taurus/qt/qtdesigner/taurusplugin/__init__.py
@@ -2,9 +2,9 @@
 
 #############################################################################
 ##
-## This file is part of Taurus, a Tango User Interface Library
+## This file is part of Taurus
 ## 
-## http://www.tango-controls.org/static/taurus/latest/doc/html/index.html
+## http://taurus-scada.org
 ##
 ## Copyright 2011 CELLS / ALBA Synchrotron, Bellaterra, Spain
 ## 
diff --git a/lib/taurus/qt/qtdesigner/taurusplugin/taurusplugin.py b/lib/taurus/qt/qtdesigner/taurusplugin/taurusplugin.py
index c0402df..09d6d00 100644
--- a/lib/taurus/qt/qtdesigner/taurusplugin/taurusplugin.py
+++ b/lib/taurus/qt/qtdesigner/taurusplugin/taurusplugin.py
@@ -2,9 +2,9 @@
 
 #############################################################################
 ##
-## This file is part of Taurus, a Tango User Interface Library
+## This file is part of Taurus
 ## 
-## http://www.tango-controls.org/static/taurus/latest/doc/html/index.html
+## http://taurus-scada.org
 ##
 ## Copyright 2011 CELLS / ALBA Synchrotron, Bellaterra, Spain
 ## 
diff --git a/lib/taurus/qt/qtdesigner/tauruspluginplugin.py b/lib/taurus/qt/qtdesigner/tauruspluginplugin.py
index 086763b..82c0928 100644
--- a/lib/taurus/qt/qtdesigner/tauruspluginplugin.py
+++ b/lib/taurus/qt/qtdesigner/tauruspluginplugin.py
@@ -2,9 +2,9 @@
 
 #############################################################################
 ##
-## This file is part of Taurus, a Tango User Interface Library
+## This file is part of Taurus
 ## 
-## http://www.tango-controls.org/static/taurus/latest/doc/html/index.html
+## http://taurus-scada.org
 ##
 ## Copyright 2011 CELLS / ALBA Synchrotron, Bellaterra, Spain
 ## 
diff --git a/lib/taurus/qt/qtgui/__init__.py b/lib/taurus/qt/qtgui/__init__.py
index b06ab26..e8a8ebc 100644
--- a/lib/taurus/qt/qtgui/__init__.py
+++ b/lib/taurus/qt/qtgui/__init__.py
@@ -2,9 +2,9 @@
 
 #############################################################################
 ##
-## This file is part of Taurus, a Tango User Interface Library
+## This file is part of Taurus
 ## 
-## http://www.tango-controls.org/static/taurus/latest/doc/html/index.html
+## http://taurus-scada.org
 ##
 ## Copyright 2011 CELLS / ALBA Synchrotron, Bellaterra, Spain
 ## 
diff --git a/lib/taurus/qt/qtgui/application/__init__.py b/lib/taurus/qt/qtgui/application/__init__.py
index 8e63555..ad39dcd 100644
--- a/lib/taurus/qt/qtgui/application/__init__.py
+++ b/lib/taurus/qt/qtgui/application/__init__.py
@@ -2,9 +2,9 @@
 
 #############################################################################
 ##
-## This file is part of Taurus, a Tango User Interface Library
+## This file is part of Taurus
 ## 
-## http://www.tango-controls.org/static/taurus/latest/doc/html/index.html
+## http://taurus-scada.org
 ##
 ## Copyright 2011 CELLS / ALBA Synchrotron, Bellaterra, Spain
 ## 
diff --git a/lib/taurus/qt/qtgui/application/taurusapplication.py b/lib/taurus/qt/qtgui/application/taurusapplication.py
index 2b6220f..b123bd7 100644
--- a/lib/taurus/qt/qtgui/application/taurusapplication.py
+++ b/lib/taurus/qt/qtgui/application/taurusapplication.py
@@ -2,9 +2,9 @@
 
 #############################################################################
 ##
-## This file is part of Taurus, a Tango User Interface Library
+## This file is part of Taurus
 ##
-## http://www.tango-controls.org/static/taurus/latest/doc/html/index.html
+## http://taurus-scada.org
 ##
 ## Copyright 2011 CELLS / ALBA Synchrotron, Bellaterra, Spain
 ##
diff --git a/lib/taurus/qt/qtgui/base/__init__.py b/lib/taurus/qt/qtgui/base/__init__.py
index e3b7dcd..6caebb3 100644
--- a/lib/taurus/qt/qtgui/base/__init__.py
+++ b/lib/taurus/qt/qtgui/base/__init__.py
@@ -2,9 +2,9 @@
 
 #############################################################################
 ##
-## This file is part of Taurus, a Tango User Interface Library
+## This file is part of Taurus
 ## 
-## http://www.tango-controls.org/static/taurus/latest/doc/html/index.html
+## http://taurus-scada.org
 ##
 ## Copyright 2011 CELLS / ALBA Synchrotron, Bellaterra, Spain
 ## 
diff --git a/lib/taurus/qt/qtgui/base/taurusbase.py b/lib/taurus/qt/qtgui/base/taurusbase.py
index 58e9530..3ee23e5 100644
--- a/lib/taurus/qt/qtgui/base/taurusbase.py
+++ b/lib/taurus/qt/qtgui/base/taurusbase.py
@@ -3,9 +3,9 @@
 
 #############################################################################
 ##
-## This file is part of Taurus, a Tango User Interface Library
+## This file is part of Taurus
 ## 
-## http://www.tango-controls.org/static/taurus/latest/doc/html/index.html
+## http://taurus-scada.org
 ##
 ## Copyright 2011 CELLS / ALBA Synchrotron, Bellaterra, Spain
 ## 
diff --git a/lib/taurus/qt/qtgui/base/tauruscontroller.py b/lib/taurus/qt/qtgui/base/tauruscontroller.py
index 440f72f..e0342aa 100644
--- a/lib/taurus/qt/qtgui/base/tauruscontroller.py
+++ b/lib/taurus/qt/qtgui/base/tauruscontroller.py
@@ -3,9 +3,9 @@
 
 #############################################################################
 ##
-## This file is part of Taurus, a Tango User Interface Library
+## This file is part of Taurus
 ## 
-## http://www.tango-controls.org/static/taurus/latest/doc/html/index.html
+## http://taurus-scada.org
 ##
 ## Copyright 2011 CELLS / ALBA Synchrotron, Bellaterra, Spain
 ## 
diff --git a/lib/taurus/qt/qtgui/base/taurusqattribute.py b/lib/taurus/qt/qtgui/base/taurusqattribute.py
index 0ed4cbc..382adde 100644
--- a/lib/taurus/qt/qtgui/base/taurusqattribute.py
+++ b/lib/taurus/qt/qtgui/base/taurusqattribute.py
@@ -2,9 +2,9 @@
 
 #############################################################################
 ##
-## This file is part of Taurus, a Tango User Interface Library
+## This file is part of Taurus
 ## 
-## http://www.tango-controls.org/static/taurus/latest/doc/html/index.html
+## http://taurus-scada.org
 ##
 ## Copyright 2011 CELLS / ALBA Synchrotron, Bellaterra, Spain
 ## 
diff --git a/lib/taurus/qt/qtgui/button/__init__.py b/lib/taurus/qt/qtgui/button/__init__.py
index 28439e5..69bbade 100644
--- a/lib/taurus/qt/qtgui/button/__init__.py
+++ b/lib/taurus/qt/qtgui/button/__init__.py
@@ -2,9 +2,9 @@
 
 #############################################################################
 ##
-## This file is part of Taurus, a Tango User Interface Library
+## This file is part of Taurus
 ## 
-## http://www.tango-controls.org/static/taurus/latest/doc/html/index.html
+## http://taurus-scada.org
 ##
 ## Copyright 2011 CELLS / ALBA Synchrotron, Bellaterra, Spain
 ## 
diff --git a/lib/taurus/qt/qtgui/button/qbuttonbox.py b/lib/taurus/qt/qtgui/button/qbuttonbox.py
index 19cf7ab..7a89fcb 100644
--- a/lib/taurus/qt/qtgui/button/qbuttonbox.py
+++ b/lib/taurus/qt/qtgui/button/qbuttonbox.py
@@ -2,9 +2,9 @@
 
 #############################################################################
 ##
-## This file is part of Taurus, a Tango User Interface Library
+## This file is part of Taurus
 ## 
-## http://www.tango-controls.org/static/taurus/latest/doc/html/index.html
+## http://taurus-scada.org
 ##
 ## Copyright 2011 CELLS / ALBA Synchrotron, Bellaterra, Spain
 ## 
diff --git a/lib/taurus/qt/qtgui/button/taurusbutton.py b/lib/taurus/qt/qtgui/button/taurusbutton.py
index b6f47fb..9e049d1 100644
--- a/lib/taurus/qt/qtgui/button/taurusbutton.py
+++ b/lib/taurus/qt/qtgui/button/taurusbutton.py
@@ -3,9 +3,9 @@
 
 #############################################################################
 ##
-## This file is part of Taurus, a Tango User Interface Library
+## This file is part of Taurus
 ## 
-## http://www.tango-controls.org/static/taurus/latest/doc/html/index.html
+## http://taurus-scada.org
 ##
 ## Copyright 2011 CELLS / ALBA Synchrotron, Bellaterra, Spain
 ## 
diff --git a/lib/taurus/qt/qtgui/button/test/__init__.py b/lib/taurus/qt/qtgui/button/test/__init__.py
index 538a327..e097032 100644
--- a/lib/taurus/qt/qtgui/button/test/__init__.py
+++ b/lib/taurus/qt/qtgui/button/test/__init__.py
@@ -1,8 +1,8 @@
 #############################################################################
 ##
-## This file is part of Taurus, a Tango User Interface Library
+## This file is part of Taurus
 ##
-## http://www.tango-controls.org/static/taurus/latest/doc/html/index.html
+## http://taurus-scada.org
 ##
 ## Copyright 2011 CELLS / ALBA Synchrotron, Bellaterra, Spain
 ##
diff --git a/lib/taurus/qt/qtgui/button/test/res/__init__.py b/lib/taurus/qt/qtgui/button/test/res/__init__.py
index d36d30e..9503bca 100644
--- a/lib/taurus/qt/qtgui/button/test/res/__init__.py
+++ b/lib/taurus/qt/qtgui/button/test/res/__init__.py
@@ -2,9 +2,9 @@
 
 #############################################################################
 ##
-## This file is part of Taurus, a Tango User Interface Library
+## This file is part of Taurus
 ##
-## http://www.tango-controls.org/static/taurus/latest/doc/html/index.html
+## http://taurus-scada.org
 ##
 ## Copyright 2011 CELLS / ALBA Synchrotron, Bellaterra, Spain
 ##
diff --git a/lib/taurus/qt/qtgui/button/test/test_taurusbutton.py b/lib/taurus/qt/qtgui/button/test/test_taurusbutton.py
index 3dbb82b..b40e5d0 100644
--- a/lib/taurus/qt/qtgui/button/test/test_taurusbutton.py
+++ b/lib/taurus/qt/qtgui/button/test/test_taurusbutton.py
@@ -2,9 +2,9 @@
 
 #############################################################################
 ##
-## This file is part of Taurus, a Tango User Interface Library
+## This file is part of Taurus
 ##
-## http://www.tango-controls.org/static/taurus/latest/doc/html/index.html
+## http://taurus-scada.org
 ##
 ## Copyright 2011 CELLS / ALBA Synchrotron, Bellaterra, Spain
 ##
diff --git a/lib/taurus/qt/qtgui/compact/__init__.py b/lib/taurus/qt/qtgui/compact/__init__.py
index 6729529..3e453f4 100644
--- a/lib/taurus/qt/qtgui/compact/__init__.py
+++ b/lib/taurus/qt/qtgui/compact/__init__.py
@@ -2,9 +2,9 @@
 
 #############################################################################
 ##
-## This file is part of Taurus, a Tango User Interface Library
+## This file is part of Taurus
 ## 
-## http://www.tango-controls.org/static/taurus/latest/doc/html/index.html
+## http://taurus-scada.org
 ##
 ## Copyright 2013 CELLS / ALBA Synchrotron, Bellaterra, Spain
 ## 
diff --git a/lib/taurus/qt/qtgui/compact/abstractswitcher.py b/lib/taurus/qt/qtgui/compact/abstractswitcher.py
index 8334dd6..2a890af 100644
--- a/lib/taurus/qt/qtgui/compact/abstractswitcher.py
+++ b/lib/taurus/qt/qtgui/compact/abstractswitcher.py
@@ -2,9 +2,9 @@
 
 #############################################################################
 ##
-## This file is part of Taurus, a Tango User Interface Library
+## This file is part of Taurus
 ## 
-## http://www.tango-controls.org/static/taurus/latest/doc/html/index.html
+## http://taurus-scada.org
 ##
 ## Copyright 2013 CELLS / ALBA Synchrotron, Bellaterra, Spain
 ## 
diff --git a/lib/taurus/qt/qtgui/compact/basicswitcher.py b/lib/taurus/qt/qtgui/compact/basicswitcher.py
index a355b4d..2753541 100644
--- a/lib/taurus/qt/qtgui/compact/basicswitcher.py
+++ b/lib/taurus/qt/qtgui/compact/basicswitcher.py
@@ -2,9 +2,9 @@
 
 #############################################################################
 ##
-## This file is part of Taurus, a Tango User Interface Library
+## This file is part of Taurus
 ## 
-## http://www.tango-controls.org/static/taurus/latest/doc/html/index.html
+## http://taurus-scada.org
 ##
 ## Copyright 2013 CELLS / ALBA Synchrotron, Bellaterra, Spain
 ## 
diff --git a/lib/taurus/qt/qtgui/console/__init__.py b/lib/taurus/qt/qtgui/console/__init__.py
index 0886060..dd60b84 100644
--- a/lib/taurus/qt/qtgui/console/__init__.py
+++ b/lib/taurus/qt/qtgui/console/__init__.py
@@ -2,9 +2,9 @@
 
 #############################################################################
 ##
-## This file is part of Taurus, a Tango User Interface Library
+## This file is part of Taurus
 ## 
-## http://www.tango-controls.org/static/taurus/latest/doc/html/index.html
+## http://taurus-scada.org
 ##
 ## Copyright 2011 CELLS / ALBA Synchrotron, Bellaterra, Spain
 ## 
diff --git a/lib/taurus/qt/qtgui/console/taurusconsole.py b/lib/taurus/qt/qtgui/console/taurusconsole.py
index 97fe691..f87cb37 100644
--- a/lib/taurus/qt/qtgui/console/taurusconsole.py
+++ b/lib/taurus/qt/qtgui/console/taurusconsole.py
@@ -2,9 +2,9 @@
 
 #############################################################################
 ##
-## This file is part of Taurus, a Tango User Interface Library
+## This file is part of Taurus
 ##
-## http://www.tango-controls.org/static/taurus/latest/doc/html/index.html
+## http://taurus-scada.org
 ##
 ## Copyright 2011 CELLS / ALBA Synchrotron, Bellaterra, Spain
 ##
diff --git a/lib/taurus/qt/qtgui/console/taurusconsoleapplication.py b/lib/taurus/qt/qtgui/console/taurusconsoleapplication.py
index 9f749a5..f69e02a 100644
--- a/lib/taurus/qt/qtgui/console/taurusconsoleapplication.py
+++ b/lib/taurus/qt/qtgui/console/taurusconsoleapplication.py
@@ -2,9 +2,9 @@
 
 #############################################################################
 ##
-## This file is part of Taurus, a Tango User Interface Library
+## This file is part of Taurus
 ##
-## http://www.tango-controls.org/static/taurus/latest/doc/html/index.html
+## http://taurus-scada.org
 ##
 ## Copyright 2011 CELLS / ALBA Synchrotron, Bellaterra, Spain
 ##
diff --git a/lib/taurus/qt/qtgui/console/taurusconsoleextensions.py b/lib/taurus/qt/qtgui/console/taurusconsoleextensions.py
index 325c2bf..cdbe0f1 100644
--- a/lib/taurus/qt/qtgui/console/taurusconsoleextensions.py
+++ b/lib/taurus/qt/qtgui/console/taurusconsoleextensions.py
@@ -2,9 +2,9 @@
 
 #############################################################################
 ##
-## This file is part of Taurus, a Tango User Interface Library
+## This file is part of Taurus
 ##
-## http://www.tango-controls.org/static/taurus/latest/doc/html/index.html
+## http://taurus-scada.org
 ##
 ## Copyright 2011 CELLS / ALBA Synchrotron, Bellaterra, Spain
 ##
diff --git a/lib/taurus/qt/qtgui/console/taurusconsolefactory.py b/lib/taurus/qt/qtgui/console/taurusconsolefactory.py
index ff7f4f6..6ca57cd 100644
--- a/lib/taurus/qt/qtgui/console/taurusconsolefactory.py
+++ b/lib/taurus/qt/qtgui/console/taurusconsolefactory.py
@@ -2,9 +2,9 @@
 
 #############################################################################
 ##
-## This file is part of Taurus, a Tango User Interface Library
+## This file is part of Taurus
 ##
-## http://www.tango-controls.org/static/taurus/latest/doc/html/index.html
+## http://taurus-scada.org
 ##
 ## Copyright 2011 CELLS / ALBA Synchrotron, Bellaterra, Spain
 ##
diff --git a/lib/taurus/qt/qtgui/console/taurusconsolewidget.py b/lib/taurus/qt/qtgui/console/taurusconsolewidget.py
index 2ff1c47..1276aa4 100644
--- a/lib/taurus/qt/qtgui/console/taurusconsolewidget.py
+++ b/lib/taurus/qt/qtgui/console/taurusconsolewidget.py
@@ -2,9 +2,9 @@
 
 #############################################################################
 ##
-## This file is part of Taurus, a Tango User Interface Library
+## This file is part of Taurus
 ##
-## http://www.tango-controls.org/static/taurus/latest/doc/html/index.html
+## http://taurus-scada.org
 ##
 ## Copyright 2011 CELLS / ALBA Synchrotron, Bellaterra, Spain
 ##
diff --git a/lib/taurus/qt/qtgui/console/taurusconsolewindow.py b/lib/taurus/qt/qtgui/console/taurusconsolewindow.py
index 13fdad0..aa14233 100644
--- a/lib/taurus/qt/qtgui/console/taurusconsolewindow.py
+++ b/lib/taurus/qt/qtgui/console/taurusconsolewindow.py
@@ -2,9 +2,9 @@
 
 #############################################################################
 ##
-## This file is part of Taurus, a Tango User Interface Library
+## This file is part of Taurus
 ##
-## http://www.tango-controls.org/static/taurus/latest/doc/html/index.html
+## http://taurus-scada.org
 ##
 ## Copyright 2011 CELLS / ALBA Synchrotron, Bellaterra, Spain
 ##
diff --git a/lib/taurus/qt/qtgui/container/__init__.py b/lib/taurus/qt/qtgui/container/__init__.py
index 9613f40..bf7bad0 100644
--- a/lib/taurus/qt/qtgui/container/__init__.py
+++ b/lib/taurus/qt/qtgui/container/__init__.py
@@ -2,9 +2,9 @@
 
 #############################################################################
 ##
-## This file is part of Taurus, a Tango User Interface Library
+## This file is part of Taurus
 ## 
-## http://www.tango-controls.org/static/taurus/latest/doc/html/index.html
+## http://taurus-scada.org
 ##
 ## Copyright 2011 CELLS / ALBA Synchrotron, Bellaterra, Spain
 ## 
diff --git a/lib/taurus/qt/qtgui/container/qcontainer.py b/lib/taurus/qt/qtgui/container/qcontainer.py
index c85d5e4..7c3faf8 100644
--- a/lib/taurus/qt/qtgui/container/qcontainer.py
+++ b/lib/taurus/qt/qtgui/container/qcontainer.py
@@ -2,9 +2,9 @@
 
 #############################################################################
 ##
-## This file is part of Taurus, a Tango User Interface Library
+## This file is part of Taurus
 ## 
-## http://www.tango-controls.org/static/taurus/latest/doc/html/index.html
+## http://taurus-scada.org
 ##
 ## Copyright 2011 CELLS / ALBA Synchrotron, Bellaterra, Spain
 ## 
diff --git a/lib/taurus/qt/qtgui/container/taurusbasecontainer.py b/lib/taurus/qt/qtgui/container/taurusbasecontainer.py
index 5ab285b..7f73194 100644
--- a/lib/taurus/qt/qtgui/container/taurusbasecontainer.py
+++ b/lib/taurus/qt/qtgui/container/taurusbasecontainer.py
@@ -2,9 +2,9 @@
 
 #############################################################################
 ##
-## This file is part of Taurus, a Tango User Interface Library
+## This file is part of Taurus
 ## 
-## http://www.tango-controls.org/static/taurus/latest/doc/html/index.html
+## http://taurus-scada.org
 ##
 ## Copyright 2011 CELLS / ALBA Synchrotron, Bellaterra, Spain
 ## 
diff --git a/lib/taurus/qt/qtgui/container/taurusframe.py b/lib/taurus/qt/qtgui/container/taurusframe.py
index 9edffcb..cb76e79 100644
--- a/lib/taurus/qt/qtgui/container/taurusframe.py
+++ b/lib/taurus/qt/qtgui/container/taurusframe.py
@@ -2,9 +2,9 @@
 
 #############################################################################
 ##
-## This file is part of Taurus, a Tango User Interface Library
+## This file is part of Taurus
 ## 
-## http://www.tango-controls.org/static/taurus/latest/doc/html/index.html
+## http://taurus-scada.org
 ##
 ## Copyright 2011 CELLS / ALBA Synchrotron, Bellaterra, Spain
 ## 
diff --git a/lib/taurus/qt/qtgui/container/taurusgroupbox.py b/lib/taurus/qt/qtgui/container/taurusgroupbox.py
index 5d8fa6d..d8ce215 100644
--- a/lib/taurus/qt/qtgui/container/taurusgroupbox.py
+++ b/lib/taurus/qt/qtgui/container/taurusgroupbox.py
@@ -2,9 +2,9 @@
 
 #############################################################################
 ##
-## This file is part of Taurus, a Tango User Interface Library
+## This file is part of Taurus
 ## 
-## http://www.tango-controls.org/static/taurus/latest/doc/html/index.html
+## http://taurus-scada.org
 ##
 ## Copyright 2011 CELLS / ALBA Synchrotron, Bellaterra, Spain
 ## 
diff --git a/lib/taurus/qt/qtgui/container/taurusgroupwidget.py b/lib/taurus/qt/qtgui/container/taurusgroupwidget.py
index 45e01fb..ef9bcde 100644
--- a/lib/taurus/qt/qtgui/container/taurusgroupwidget.py
+++ b/lib/taurus/qt/qtgui/container/taurusgroupwidget.py
@@ -2,9 +2,9 @@
 
 #############################################################################
 ##
-## This file is part of Taurus, a Tango User Interface Library
+## This file is part of Taurus
 ## 
-## http://www.tango-controls.org/static/taurus/latest/doc/html/index.html
+## http://taurus-scada.org
 ##
 ## Copyright 2011 CELLS / ALBA Synchrotron, Bellaterra, Spain
 ## 
diff --git a/lib/taurus/qt/qtgui/container/taurusmainwindow.py b/lib/taurus/qt/qtgui/container/taurusmainwindow.py
index dad3bb7..4ae2103 100644
--- a/lib/taurus/qt/qtgui/container/taurusmainwindow.py
+++ b/lib/taurus/qt/qtgui/container/taurusmainwindow.py
@@ -2,9 +2,9 @@
 
 #############################################################################
 ##
-## This file is part of Taurus, a Tango User Interface Library
+## This file is part of Taurus
 ## 
-## http://www.tango-controls.org/static/taurus/latest/doc/html/index.html
+## http://taurus-scada.org
 ##
 ## Copyright 2011 CELLS / ALBA Synchrotron, Bellaterra, Spain
 ## 
@@ -45,13 +45,17 @@ from taurus.qt.qtgui.dialog import protectTaurusMessageBox
 
 class CommandArgsLineEdit(Qt.QLineEdit):
     ''' An specialized QLineEdit that can transform its text from/to command argument lists'''
-    def __init__(self, *args):
+    def __init__(self, extapp, *args):
         Qt.QLineEdit.__init__(self, *args)
-    
+        self._extapp = extapp
+        self.connect(self, Qt.SIGNAL("textEdited(QString)"), self.setCmdText)
+
     def setCmdText(self, cmdargs):
         if not isinstance(cmdargs, (basestring, Qt.QString)): 
             cmdargs = " ".join(cmdargs)
         self.setText(cmdargs)
+        self._extapp.setCmdArgs(self.getCmdArgs(), False)
+
     def getCmdArgs(self):
         import shlex
         return shlex.split(str(self.text()))
@@ -84,11 +88,34 @@ class ConfigurationDialog(Qt.QDialog, BaseConfigurableClass):
             self.externalAppsPage.setWidgetResizable(True)
             self._tabwidget.addTab(self.externalAppsPage, "External Application Paths")
         label = "Command line for %s"%unicode(extapp.text())
-        editWidget = CommandArgsLineEdit(" ".join(extapp.cmdArgs()))
+        editWidget = CommandArgsLineEdit(extapp, " ".join(extapp.cmdArgs()))
         #editWidget = Qt.QLineEdit(" ".join(extapp.cmdArgs()))
         self.externalAppsPage.widget().layout().addRow(label, editWidget)
-        self.connect(editWidget, Qt.SIGNAL("textEdited(QString)"), extapp.setCmdArgs)
         self.connect(extapp, Qt.SIGNAL("cmdArgsChanged"), editWidget.setCmdText)
+
+    def deleteExternalAppConfig(self, extapp):
+        '''Remove the given external application configuration from
+        the "External Apps" tab of the configuration dialog
+        
+        :param extapp: (ExternalAppAction) the external application that is to
+                       be included in the configuration menu.
+        '''
+        from taurus.external.qt import Qt
+        layout = self.externalAppsPage.widget().layout()
+        for cnt in reversed(range(layout.count())):
+            widget = layout.itemAt(cnt).widget()
+            if widget is not None:
+                text = str(widget.text()) # command1
+                if isinstance(widget, Qt.QLabel):
+                    dialog_text = "Command line for %s" % unicode(extapp.text())
+                    if text == dialog_text:
+                        layout.removeWidget(widget)
+                        widget.close()
+                else:
+                    cmdargs = " ".join(extapp.cmdArgs())
+                    if text == cmdargs:
+                        layout.removeWidget(widget)
+                        widget.close()
         
     def show(self):
         ''' calls :meth:`Qt.QDialog.show` only if there is something to configure'''
@@ -726,7 +753,9 @@ class TaurusMainWindow(Qt.QMainWindow, TaurusBaseContainer):
         self.saveSettings() #save current window state before closing
         if hasattr(self,"socketServer"):
             self.socketServer.close()
-        
+        Qt.QMainWindow.closeEvent(self, event)
+        TaurusBaseContainer.closeEvent(self, event)
+
         #print "\n\n------ MAIN WINDOW CLOSED ------ \n\n"
     
     def addExternalAppLauncher(self, extapp, toToolBar=True, toMenu=True):
@@ -748,7 +777,8 @@ class TaurusMainWindow(Qt.QMainWindow, TaurusBaseContainer):
         '''
         if not isinstance(extapp, ExternalAppAction):
             extapp = ExternalAppAction(extapp, parent = self)
-        if extapp.parentWidget() is None: extapp.setParent(self)
+        if extapp.parentWidget() is None:
+            extapp.setParent(self)
         
         self.configurationDialog.addExternalAppConfig(extapp)
         self.configurationAction.setEnabled(True)
@@ -768,7 +798,32 @@ class TaurusMainWindow(Qt.QMainWindow, TaurusBaseContainer):
             self.externalAppsMenu.addAction(extapp)
         #register this action for config
         self.registerConfigDelegate(extapp, "_extApp[%s]"%str(extapp.text()))
-        
+
+    def deleteExternalAppLauncher(self, action):
+        '''
+        Remove launchers for an external application to the Tools Menu
+        and/or to the Tools ToolBar.
+
+        :param extapp: (ExternalAppAction) the external application
+                       to be removed passed as a :class:`ExternalAppAction`
+        '''
+        self.configurationDialog.deleteExternalAppConfig(action)
+        try:
+            # if is in ToolBar
+            self.extAppsBar.removeAction(action)
+            self.extAppsBar.update()
+        except:
+            pass
+        try:
+            # if is in Menu
+            self.externalAppsMenu.removeAction(action)
+            self.externalAppsMenu.update
+        except:
+            pass
+        #unregister this action for config
+        self.unregisterConfigurableItem("_extApp[%s]" % str(action.text()),
+                                        raiseOnError=False)
+
     def _onChangeTangoHostAction(self):
         '''
         slot called when the Change Tango Host is triggered. It prompts for a
diff --git a/lib/taurus/qt/qtgui/container/taurusscrollarea.py b/lib/taurus/qt/qtgui/container/taurusscrollarea.py
index d91eb7f..37b3470 100644
--- a/lib/taurus/qt/qtgui/container/taurusscrollarea.py
+++ b/lib/taurus/qt/qtgui/container/taurusscrollarea.py
@@ -2,9 +2,9 @@
 
 #############################################################################
 ##
-## This file is part of Taurus, a Tango User Interface Library
+## This file is part of Taurus
 ## 
-## http://www.tango-controls.org/static/taurus/latest/doc/html/index.html
+## http://taurus-scada.org
 ##
 ## Copyright 2011 CELLS / ALBA Synchrotron, Bellaterra, Spain
 ## 
diff --git a/lib/taurus/qt/qtgui/container/tauruswidget.py b/lib/taurus/qt/qtgui/container/tauruswidget.py
index bccbe1d..4d182e6 100644
--- a/lib/taurus/qt/qtgui/container/tauruswidget.py
+++ b/lib/taurus/qt/qtgui/container/tauruswidget.py
@@ -2,9 +2,9 @@
 
 #############################################################################
 ##
-## This file is part of Taurus, a Tango User Interface Library
+## This file is part of Taurus
 ## 
-## http://www.tango-controls.org/static/taurus/latest/doc/html/index.html
+## http://taurus-scada.org
 ##
 ## Copyright 2011 CELLS / ALBA Synchrotron, Bellaterra, Spain
 ## 
diff --git a/lib/taurus/qt/qtgui/dialog/__init__.py b/lib/taurus/qt/qtgui/dialog/__init__.py
index 7c43618..39f0961 100644
--- a/lib/taurus/qt/qtgui/dialog/__init__.py
+++ b/lib/taurus/qt/qtgui/dialog/__init__.py
@@ -2,9 +2,9 @@
 
 #############################################################################
 ##
-## This file is part of Taurus, a Tango User Interface Library
+## This file is part of Taurus
 ## 
-## http://www.tango-controls.org/static/taurus/latest/doc/html/index.html
+## http://taurus-scada.org
 ##
 ## Copyright 2011 CELLS / ALBA Synchrotron, Bellaterra, Spain
 ## 
diff --git a/lib/taurus/qt/qtgui/dialog/taurusconfigurationdialog.py b/lib/taurus/qt/qtgui/dialog/taurusconfigurationdialog.py
index 5384e94..e339e00 100644
--- a/lib/taurus/qt/qtgui/dialog/taurusconfigurationdialog.py
+++ b/lib/taurus/qt/qtgui/dialog/taurusconfigurationdialog.py
@@ -2,9 +2,9 @@
 
 #############################################################################
 ##
-## This file is part of Taurus, a Tango User Interface Library
+## This file is part of Taurus
 ## 
-## http://www.tango-controls.org/static/taurus/latest/doc/html/index.html
+## http://taurus-scada.org
 ##
 ## Copyright 2011 CELLS / ALBA Synchrotron, Bellaterra, Spain
 ## 
diff --git a/lib/taurus/qt/qtgui/dialog/taurusinputdialog.py b/lib/taurus/qt/qtgui/dialog/taurusinputdialog.py
index 786aa12..001a486 100644
--- a/lib/taurus/qt/qtgui/dialog/taurusinputdialog.py
+++ b/lib/taurus/qt/qtgui/dialog/taurusinputdialog.py
@@ -2,9 +2,9 @@
 
 #############################################################################
 ##
-## This file is part of Taurus, a Tango User Interface Library
+## This file is part of Taurus
 ## 
-## http://www.tango-controls.org/static/taurus/latest/doc/html/index.html
+## http://taurus-scada.org
 ##
 ## Copyright 2011 CELLS / ALBA Synchrotron, Bellaterra, Spain
 ## 
diff --git a/lib/taurus/qt/qtgui/dialog/taurusmessagebox.py b/lib/taurus/qt/qtgui/dialog/taurusmessagebox.py
index 59bed83..08f3e3d 100644
--- a/lib/taurus/qt/qtgui/dialog/taurusmessagebox.py
+++ b/lib/taurus/qt/qtgui/dialog/taurusmessagebox.py
@@ -2,9 +2,9 @@
 
 #############################################################################
 ##
-## This file is part of Taurus, a Tango User Interface Library
+## This file is part of Taurus
 ## 
-## http://www.tango-controls.org/static/taurus/latest/doc/html/index.html
+## http://taurus-scada.org
 ##
 ## Copyright 2011 CELLS / ALBA Synchrotron, Bellaterra, Spain
 ## 
diff --git a/lib/taurus/qt/qtgui/display/__init__.py b/lib/taurus/qt/qtgui/display/__init__.py
index 1b180ac..b796efd 100644
--- a/lib/taurus/qt/qtgui/display/__init__.py
+++ b/lib/taurus/qt/qtgui/display/__init__.py
@@ -2,9 +2,9 @@
 
 #############################################################################
 ##
-## This file is part of Taurus, a Tango User Interface Library
+## This file is part of Taurus
 ## 
-## http://www.tango-controls.org/static/taurus/latest/doc/html/index.html
+## http://taurus-scada.org
 ##
 ## Copyright 2011 CELLS / ALBA Synchrotron, Bellaterra, Spain
 ## 
diff --git a/lib/taurus/qt/qtgui/display/demo/__init__.py b/lib/taurus/qt/qtgui/display/demo/__init__.py
index f9423cd..c0f5fce 100644
--- a/lib/taurus/qt/qtgui/display/demo/__init__.py
+++ b/lib/taurus/qt/qtgui/display/demo/__init__.py
@@ -2,9 +2,9 @@
 
 #############################################################################
 ##
-## This file is part of Taurus, a Tango User Interface Library
+## This file is part of Taurus
 ## 
-## http://www.tango-controls.org/static/taurus/latest/doc/html/index.html
+## http://taurus-scada.org
 ##
 ## Copyright 2011 CELLS / ALBA Synchrotron, Bellaterra, Spain
 ## 
diff --git a/lib/taurus/qt/qtgui/display/demo/qpixmapwidgetdemo.py b/lib/taurus/qt/qtgui/display/demo/qpixmapwidgetdemo.py
index 1e78ff4..463c3cf 100644
--- a/lib/taurus/qt/qtgui/display/demo/qpixmapwidgetdemo.py
+++ b/lib/taurus/qt/qtgui/display/demo/qpixmapwidgetdemo.py
@@ -2,9 +2,9 @@
 
 #############################################################################
 ##
-## This file is part of Taurus, a Tango User Interface Library
+## This file is part of Taurus
 ##
-## http://www.tango-controls.org/static/taurus/latest/doc/html/index.html
+## http://taurus-scada.org
 ##
 ## Copyright 2011 CELLS / ALBA Synchrotron, Bellaterra, Spain
 ##
diff --git a/lib/taurus/qt/qtgui/display/demo/tauruslabeldemo.py b/lib/taurus/qt/qtgui/display/demo/tauruslabeldemo.py
index 92ede2e..02b67c9 100644
--- a/lib/taurus/qt/qtgui/display/demo/tauruslabeldemo.py
+++ b/lib/taurus/qt/qtgui/display/demo/tauruslabeldemo.py
@@ -2,9 +2,9 @@
 
 #############################################################################
 ##
-## This file is part of Taurus, a Tango User Interface Library
+## This file is part of Taurus
 ## 
-## http://www.tango-controls.org/static/taurus/latest/doc/html/index.html
+## http://taurus-scada.org
 ##
 ## Copyright 2011 CELLS / ALBA Synchrotron, Bellaterra, Spain
 ## 
diff --git a/lib/taurus/qt/qtgui/display/demo/tauruslcddemo.py b/lib/taurus/qt/qtgui/display/demo/tauruslcddemo.py
index 00e991c..fe23097 100644
--- a/lib/taurus/qt/qtgui/display/demo/tauruslcddemo.py
+++ b/lib/taurus/qt/qtgui/display/demo/tauruslcddemo.py
@@ -2,9 +2,9 @@
 
 #############################################################################
 ##
-## This file is part of Taurus, a Tango User Interface Library
+## This file is part of Taurus
 ## 
-## http://www.tango-controls.org/static/taurus/latest/doc/html/index.html
+## http://taurus-scada.org
 ##
 ## Copyright 2011 CELLS / ALBA Synchrotron, Bellaterra, Spain
 ## 
diff --git a/lib/taurus/qt/qtgui/display/demo/taurusleddemo.py b/lib/taurus/qt/qtgui/display/demo/taurusleddemo.py
index 930be90..6af4e66 100644
--- a/lib/taurus/qt/qtgui/display/demo/taurusleddemo.py
+++ b/lib/taurus/qt/qtgui/display/demo/taurusleddemo.py
@@ -2,9 +2,9 @@
 
 #############################################################################
 ##
-## This file is part of Taurus, a Tango User Interface Library
+## This file is part of Taurus
 ## 
-## http://www.tango-controls.org/static/taurus/latest/doc/html/index.html
+## http://taurus-scada.org
 ##
 ## Copyright 2011 CELLS / ALBA Synchrotron, Bellaterra, Spain
 ## 
diff --git a/lib/taurus/qt/qtgui/display/qfallback.py b/lib/taurus/qt/qtgui/display/qfallback.py
index 9f98326..103eea9 100644
--- a/lib/taurus/qt/qtgui/display/qfallback.py
+++ b/lib/taurus/qt/qtgui/display/qfallback.py
@@ -2,9 +2,9 @@
 
 #############################################################################
 ##
-## This file is part of Taurus, a Tango User Interface Library
+## This file is part of Taurus
 ## 
-## http://www.tango-controls.org/static/taurus/latest/doc/html/index.html
+## http://taurus-scada.org
 ##
 ## Copyright 2011 CELLS / ALBA Synchrotron, Bellaterra, Spain
 ## 
diff --git a/lib/taurus/qt/qtgui/display/qled.py b/lib/taurus/qt/qtgui/display/qled.py
index 576df22..1066147 100644
--- a/lib/taurus/qt/qtgui/display/qled.py
+++ b/lib/taurus/qt/qtgui/display/qled.py
@@ -2,9 +2,9 @@
 
 #############################################################################
 ##
-## This file is part of Taurus, a Tango User Interface Library
+## This file is part of Taurus
 ## 
-## http://www.tango-controls.org/static/taurus/latest/doc/html/index.html
+## http://taurus-scada.org
 ##
 ## Copyright 2011 CELLS / ALBA Synchrotron, Bellaterra, Spain
 ## 
@@ -34,7 +34,7 @@ import sys
 from taurus.external.qt import Qt
 from taurus.core.util.enumeration import Enumeration
 from taurus.qt.qtgui.resource import getPixmap
-from .qpixmapwidget import QPixmapWidget
+from taurus.qt.qtgui.display.qpixmapwidget import QPixmapWidget
 
 LedColor  = Enumeration("LedColor",  ["BLUE", "GREEN", "RED", "YELLOW", "ORANGE", "MAGENTA", "GRENOBLE", "BLACK", "WHITE"])
 LedStatus = Enumeration("LedStatus", ["ON", "OFF"])
diff --git a/lib/taurus/qt/qtgui/display/qlogo.py b/lib/taurus/qt/qtgui/display/qlogo.py
index d213f8b..981f923 100644
--- a/lib/taurus/qt/qtgui/display/qlogo.py
+++ b/lib/taurus/qt/qtgui/display/qlogo.py
@@ -2,9 +2,9 @@
 
 #############################################################################
 ##
-## This file is part of Taurus, a Tango User Interface Library
+## This file is part of Taurus
 ## 
-## http://www.tango-controls.org/static/taurus/latest/doc/html/index.html
+## http://taurus-scada.org
 ##
 ## Copyright 2011 CELLS / ALBA Synchrotron, Bellaterra, Spain
 ## 
diff --git a/lib/taurus/qt/qtgui/display/qpixmapwidget.py b/lib/taurus/qt/qtgui/display/qpixmapwidget.py
index 22a1beb..fcad541 100644
--- a/lib/taurus/qt/qtgui/display/qpixmapwidget.py
+++ b/lib/taurus/qt/qtgui/display/qpixmapwidget.py
@@ -2,9 +2,9 @@
 
 #############################################################################
 ##
-## This file is part of Taurus, a Tango User Interface Library
+## This file is part of Taurus
 ## 
-## http://www.tango-controls.org/static/taurus/latest/doc/html/index.html
+## http://taurus-scada.org
 ##
 ## Copyright 2011 CELLS / ALBA Synchrotron, Bellaterra, Spain
 ## 
diff --git a/lib/taurus/qt/qtgui/display/qsevensegment.py b/lib/taurus/qt/qtgui/display/qsevensegment.py
index 6cfd230..c2bac78 100644
--- a/lib/taurus/qt/qtgui/display/qsevensegment.py
+++ b/lib/taurus/qt/qtgui/display/qsevensegment.py
@@ -2,9 +2,9 @@
 
 #############################################################################
 ##
-## This file is part of Taurus, a Tango User Interface Library
+## This file is part of Taurus
 ## 
-## http://www.tango-controls.org/static/taurus/latest/doc/html/index.html
+## http://taurus-scada.org
 ##
 ## Copyright 2011 CELLS / ALBA Synchrotron, Bellaterra, Spain
 ## 
diff --git a/lib/taurus/qt/qtgui/display/taurusboolled.py b/lib/taurus/qt/qtgui/display/taurusboolled.py
index 30c9bc2..a0af537 100644
--- a/lib/taurus/qt/qtgui/display/taurusboolled.py
+++ b/lib/taurus/qt/qtgui/display/taurusboolled.py
@@ -3,9 +3,9 @@
 
 #############################################################################
 ##
-## This file is part of Taurus, a Tango User Interface Library
+## This file is part of Taurus
 ## 
-## http://www.tango-controls.org/static/taurus/latest/doc/html/index.html
+## http://taurus-scada.org
 ##
 ## Copyright 2011 CELLS / ALBA Synchrotron, Bellaterra, Spain
 ## 
diff --git a/lib/taurus/qt/qtgui/display/taurusconfiglabel.py b/lib/taurus/qt/qtgui/display/taurusconfiglabel.py
index b08405c..59fdcea 100644
--- a/lib/taurus/qt/qtgui/display/taurusconfiglabel.py
+++ b/lib/taurus/qt/qtgui/display/taurusconfiglabel.py
@@ -2,9 +2,9 @@
 
 #############################################################################
 ##
-## This file is part of Taurus, a Tango User Interface Library
+## This file is part of Taurus
 ## 
-## http://www.tango-controls.org/static/taurus/latest/doc/html/index.html
+## http://taurus-scada.org
 ##
 ## Copyright 2011 CELLS / ALBA Synchrotron, Bellaterra, Spain
 ## 
diff --git a/lib/taurus/qt/qtgui/display/tauruslabel.py b/lib/taurus/qt/qtgui/display/tauruslabel.py
index e36f8f3..ebd96c5 100644
--- a/lib/taurus/qt/qtgui/display/tauruslabel.py
+++ b/lib/taurus/qt/qtgui/display/tauruslabel.py
@@ -2,9 +2,9 @@
 
 #############################################################################
 ##
-## This file is part of Taurus, a Tango User Interface Library
+## This file is part of Taurus
 ## 
-## http://www.tango-controls.org/static/taurus/latest/doc/html/index.html
+## http://taurus-scada.org
 ##
 ## Copyright 2011 CELLS / ALBA Synchrotron, Bellaterra, Spain
 ## 
diff --git a/lib/taurus/qt/qtgui/display/tauruslcd.py b/lib/taurus/qt/qtgui/display/tauruslcd.py
index 00b955e..4c2a3b9 100644
--- a/lib/taurus/qt/qtgui/display/tauruslcd.py
+++ b/lib/taurus/qt/qtgui/display/tauruslcd.py
@@ -2,9 +2,9 @@
 
 #############################################################################
 ##
-## This file is part of Taurus, a Tango User Interface Library
+## This file is part of Taurus
 ## 
-## http://www.tango-controls.org/static/taurus/latest/doc/html/index.html
+## http://taurus-scada.org
 ##
 ## Copyright 2011 CELLS / ALBA Synchrotron, Bellaterra, Spain
 ## 
diff --git a/lib/taurus/qt/qtgui/display/tauruslcdvalue.py b/lib/taurus/qt/qtgui/display/tauruslcdvalue.py
index 850e483..3661740 100644
--- a/lib/taurus/qt/qtgui/display/tauruslcdvalue.py
+++ b/lib/taurus/qt/qtgui/display/tauruslcdvalue.py
@@ -2,9 +2,9 @@
 
 #############################################################################
 ##
-## This file is part of Taurus, a Tango User Interface Library
+## This file is part of Taurus
 ## 
-## http://www.tango-controls.org/static/taurus/latest/doc/html/index.html
+## http://taurus-scada.org
 ##
 ## Copyright 2011 CELLS / ALBA Synchrotron, Bellaterra, Spain
 ## 
diff --git a/lib/taurus/qt/qtgui/display/taurusled.py b/lib/taurus/qt/qtgui/display/taurusled.py
index 70f6de9..1d8ceac 100644
--- a/lib/taurus/qt/qtgui/display/taurusled.py
+++ b/lib/taurus/qt/qtgui/display/taurusled.py
@@ -3,9 +3,9 @@
 
 #############################################################################
 ##
-## This file is part of Taurus, a Tango User Interface Library
+## This file is part of Taurus
 ## 
-## http://www.tango-controls.org/static/taurus/latest/doc/html/index.html
+## http://taurus-scada.org
 ##
 ## Copyright 2011 CELLS / ALBA Synchrotron, Bellaterra, Spain
 ## 
diff --git a/lib/taurus/qt/qtgui/display/taurusstateled.py b/lib/taurus/qt/qtgui/display/taurusstateled.py
index 3e0b995..d978ec2 100644
--- a/lib/taurus/qt/qtgui/display/taurusstateled.py
+++ b/lib/taurus/qt/qtgui/display/taurusstateled.py
@@ -3,9 +3,9 @@
 
 #############################################################################
 ##
-## This file is part of Taurus, a Tango User Interface Library
+## This file is part of Taurus
 ## 
-## http://www.tango-controls.org/static/taurus/latest/doc/html/index.html
+## http://taurus-scada.org
 ##
 ## Copyright 2011 CELLS / ALBA Synchrotron, Bellaterra, Spain
 ## 
diff --git a/lib/taurus/qt/qtgui/display/taurusvaluelabel.py b/lib/taurus/qt/qtgui/display/taurusvaluelabel.py
index 7247bb5..325d621 100644
--- a/lib/taurus/qt/qtgui/display/taurusvaluelabel.py
+++ b/lib/taurus/qt/qtgui/display/taurusvaluelabel.py
@@ -2,9 +2,9 @@
 
 #############################################################################
 ##
-## This file is part of Taurus, a Tango User Interface Library
+## This file is part of Taurus
 ## 
-## http://www.tango-controls.org/static/taurus/latest/doc/html/index.html
+## http://taurus-scada.org
 ##
 ## Copyright 2011 CELLS / ALBA Synchrotron, Bellaterra, Spain
 ## 
diff --git a/lib/taurus/qt/qtgui/display/test/__init__.py b/lib/taurus/qt/qtgui/display/test/__init__.py
index d36d30e..9503bca 100644
--- a/lib/taurus/qt/qtgui/display/test/__init__.py
+++ b/lib/taurus/qt/qtgui/display/test/__init__.py
@@ -2,9 +2,9 @@
 
 #############################################################################
 ##
-## This file is part of Taurus, a Tango User Interface Library
+## This file is part of Taurus
 ##
-## http://www.tango-controls.org/static/taurus/latest/doc/html/index.html
+## http://taurus-scada.org
 ##
 ## Copyright 2011 CELLS / ALBA Synchrotron, Bellaterra, Spain
 ##
diff --git a/lib/taurus/qt/qtgui/display/test/test_tauruslabel.py b/lib/taurus/qt/qtgui/display/test/test_tauruslabel.py
index db2ae70..c07256b 100644
--- a/lib/taurus/qt/qtgui/display/test/test_tauruslabel.py
+++ b/lib/taurus/qt/qtgui/display/test/test_tauruslabel.py
@@ -1,9 +1,9 @@
 #!/usr/bin/env python
 #############################################################################
 ##
-## This file is part of Taurus, a Tango User Interface Library
+## This file is part of Taurus
 ##
-## http://www.tango-controls.org/static/taurus/latest/doc/html/index.html
+## http://taurus-scada.org
 ##
 ## Copyright 2011 CELLS / ALBA Synchrotron, Bellaterra, Spain
 ##
@@ -49,7 +49,7 @@ class Bug169_Test(BaseWidgetTestCase, unittest.TestCase):
         AttributeError: type object 'TaurusConfigurationProxy' has no attribute
         'buildModelName'.
         
-        See: http://sf.net/p/sardana/tickets/169/
+        See: http://sf.net/p/tauruslib/tickets/65/
     
 
     .. seealso: :class:`taurus.qt.qtgui.test.base.BaseWidgetTestCase`
diff --git a/lib/taurus/qt/qtgui/editor/__init__.py b/lib/taurus/qt/qtgui/editor/__init__.py
index e0d4851..c2e37c4 100644
--- a/lib/taurus/qt/qtgui/editor/__init__.py
+++ b/lib/taurus/qt/qtgui/editor/__init__.py
@@ -2,9 +2,9 @@
 
 #############################################################################
 ##
-## This file is part of Taurus, a Tango User Interface Library
+## This file is part of Taurus
 ## 
-## http://www.tango-controls.org/static/taurus/latest/doc/html/index.html
+## http://taurus-scada.org
 ##
 ## Copyright 2011 CELLS / ALBA Synchrotron, Bellaterra, Spain
 ## 
diff --git a/lib/taurus/qt/qtgui/editor/tauruseditor.py b/lib/taurus/qt/qtgui/editor/tauruseditor.py
index 0d4f0be..a712733 100644
--- a/lib/taurus/qt/qtgui/editor/tauruseditor.py
+++ b/lib/taurus/qt/qtgui/editor/tauruseditor.py
@@ -2,9 +2,9 @@
 
 #############################################################################
 ##
-## This file is part of Taurus, a Tango User Interface Library
+## This file is part of Taurus
 ## 
-## http://www.tango-controls.org/static/taurus/latest/doc/html/index.html
+## http://taurus-scada.org
 ##
 ## Copyright 2011 CELLS / ALBA Synchrotron, Bellaterra, Spain
 ## 
diff --git a/lib/taurus/qt/qtgui/extra_guiqwt/__init__.py b/lib/taurus/qt/qtgui/extra_guiqwt/__init__.py
index d913f6d..6bc4c9c 100644
--- a/lib/taurus/qt/qtgui/extra_guiqwt/__init__.py
+++ b/lib/taurus/qt/qtgui/extra_guiqwt/__init__.py
@@ -2,9 +2,9 @@
 
 #############################################################################
 ##
-## This file is part of Taurus, a Tango User Interface Library
+## This file is part of Taurus
 ## 
-## http://www.tango-controls.org/static/taurus/latest/doc/html/index.html
+## http://taurus-scada.org
 ##
 ## Copyright 2011 CELLS / ALBA Synchrotron, Bellaterra, Spain
 ## 
diff --git a/lib/taurus/qt/qtgui/extra_guiqwt/builder.py b/lib/taurus/qt/qtgui/extra_guiqwt/builder.py
index fd46670..1685ecd 100644
--- a/lib/taurus/qt/qtgui/extra_guiqwt/builder.py
+++ b/lib/taurus/qt/qtgui/extra_guiqwt/builder.py
@@ -2,9 +2,9 @@
 
 #############################################################################
 ##
-## This file is part of Taurus, a Tango User Interface Library
+## This file is part of Taurus
 ## 
-## http://www.tango-controls.org/static/taurus/latest/doc/html/index.html
+## http://taurus-scada.org
 ##
 ## Copyright 2011 CELLS / ALBA Synchrotron, Bellaterra, Spain
 ## 
diff --git a/lib/taurus/qt/qtgui/extra_guiqwt/curve.py b/lib/taurus/qt/qtgui/extra_guiqwt/curve.py
index 76a6605..d78b646 100644
--- a/lib/taurus/qt/qtgui/extra_guiqwt/curve.py
+++ b/lib/taurus/qt/qtgui/extra_guiqwt/curve.py
@@ -2,9 +2,9 @@
 
 #############################################################################
 ##
-## This file is part of Taurus, a Tango User Interface Library
+## This file is part of Taurus
 ## 
-## http://www.tango-controls.org/static/taurus/latest/doc/html/index.html
+## http://taurus-scada.org
 ##
 ## Copyright 2011 CELLS / ALBA Synchrotron, Bellaterra, Spain
 ## 
diff --git a/lib/taurus/qt/qtgui/extra_guiqwt/curvesmodel.py b/lib/taurus/qt/qtgui/extra_guiqwt/curvesmodel.py
index 005150f..a205f41 100644
--- a/lib/taurus/qt/qtgui/extra_guiqwt/curvesmodel.py
+++ b/lib/taurus/qt/qtgui/extra_guiqwt/curvesmodel.py
@@ -2,9 +2,9 @@
 
 #############################################################################
 ##
-## This file is part of Taurus, a Tango User Interface Library
+## This file is part of Taurus
 ##
-## http://www.tango-controls.org/static/taurus/latest/doc/html/index.html
+## http://taurus-scada.org
 ##
 ## Copyright 2011 CELLS / ALBA Synchrotron, Bellaterra, Spain
 ##
diff --git a/lib/taurus/qt/qtgui/extra_guiqwt/image.py b/lib/taurus/qt/qtgui/extra_guiqwt/image.py
index ebffb74..e20a766 100644
--- a/lib/taurus/qt/qtgui/extra_guiqwt/image.py
+++ b/lib/taurus/qt/qtgui/extra_guiqwt/image.py
@@ -2,9 +2,9 @@
 
 #############################################################################
 ##
-## This file is part of Taurus, a Tango User Interface Library
+## This file is part of Taurus
 ## 
-## http://www.tango-controls.org/static/taurus/latest/doc/html/index.html
+## http://taurus-scada.org
 ##
 ## Copyright 2011 CELLS / ALBA Synchrotron, Bellaterra, Spain
 ## 
@@ -98,7 +98,7 @@ class TaurusBaseImageItem(TaurusBaseComponent):
         See: 
           - http://code.google.com/p/guiqwt/issues/detail?id=44 and
           - https://sourceforge.net/tracker/?func=detail&atid=484769&aid=3603991&group_id=57612
-          - https://sourceforge.net/p/sardana/tickets/70/
+          - https://sourceforge.net/p/tauruslib/tickets/33/
         '''
         try:
             dtype = data.dtype
@@ -109,7 +109,7 @@ class TaurusBaseImageItem(TaurusBaseComponent):
 
         if dtype not in (float, numpy.double, numpy.int32, numpy.uint16,
                           numpy.int16, numpy.uint8, numpy.int8, bool): 
-            #note: numpy.uint32 was not included because of https://sourceforge.net/p/sardana/tickets/70/    
+            #note: numpy.uint32 was not included because of https://sourceforge.net/p/tauruslib/tickets/33/    
             try: 
                 self.debug('casting to numpy.int32')
                 v = numpy.int32(v)  
@@ -152,7 +152,7 @@ class TaurusEncodedBaseImageItem(TaurusBaseImageItem):
 
             if dtype not in (float, numpy.double, numpy.int32, numpy.uint16,
                              numpy.int16, numpy.uint8, numpy.int8, bool): 
-            #note: numpy.uint32 was not included because of https://sourceforge.net/p/sardana/tickets/70/    
+            #note: numpy.uint32 was not included because of https://sourceforge.net/p/tauruslib/tickets/33/    
                 try:
                     self.debug('casting to numpy.int32')
                     v = numpy.int32(v)  
diff --git a/lib/taurus/qt/qtgui/extra_guiqwt/plot.py b/lib/taurus/qt/qtgui/extra_guiqwt/plot.py
index 72ea88a..db4bb25 100644
--- a/lib/taurus/qt/qtgui/extra_guiqwt/plot.py
+++ b/lib/taurus/qt/qtgui/extra_guiqwt/plot.py
@@ -2,9 +2,9 @@
 
 #############################################################################
 ##
-## This file is part of Taurus, a Tango User Interface Library
+## This file is part of Taurus
 ## 
-## http://www.tango-controls.org/static/taurus/latest/doc/html/index.html
+## http://taurus-scada.org
 ##
 ## Copyright 2011 CELLS / ALBA Synchrotron, Bellaterra, Spain
 ## 
@@ -63,7 +63,8 @@ class TaurusCurveDialog(CurveDialog, TaurusBaseWidget):
         from taurus.qt.qtgui.extra_guiqwt.tools import TaurusCurveChooserTool
         self.add_tool(TaurusCurveChooserTool)
         self.setModifiableByUser(self._modifiableByUser)
-    
+        self.setContextMenuPolicy(Qt.Qt.CustomContextMenu)
+
     def keyPressEvent(self,event):
         if(event.key() == Qt.Qt.Key_Escape):
             event.ignore()
@@ -203,7 +204,8 @@ class TaurusTrendDialog(CurveDialog, TaurusBaseWidget):
         if taurusparam is None:
             taurusparam = TaurusTrendParam()
         self.defaultTaurusparam = taurusparam
-    
+        self.setContextMenuPolicy(Qt.Qt.CustomContextMenu)
+
     def keyPressEvent(self,event):
         if(event.key() == Qt.Qt.Key_Escape):
             event.ignore()
@@ -417,7 +419,8 @@ class TaurusImageDialog(ImageDialog, TaurusBaseWidget):
         from taurus.qt.qtgui.extra_guiqwt.tools import TaurusModelChooserTool
         self.add_tool(TaurusModelChooserTool, singleModel=True)
         self.setModifiableByUser(True)
-        
+        self.setContextMenuPolicy(Qt.Qt.CustomContextMenu)
+
     def keyPressEvent(self,event):
         if(event.key() == Qt.Qt.Key_Escape):
             event.ignore()
@@ -623,5 +626,4 @@ def taurusImageDlgMain():
 if __name__ == "__main__":
 #    taurusCurveDlgMain()
     taurusTrendDlgMain()
-#    taurusImageDlgMain()    
-    
+#    taurusImageDlgMain()
diff --git a/lib/taurus/qt/qtgui/extra_guiqwt/styles.py b/lib/taurus/qt/qtgui/extra_guiqwt/styles.py
index 77f1854..26183f6 100644
--- a/lib/taurus/qt/qtgui/extra_guiqwt/styles.py
+++ b/lib/taurus/qt/qtgui/extra_guiqwt/styles.py
@@ -2,9 +2,9 @@
 
 #############################################################################
 ##
-## This file is part of Taurus, a Tango User Interface Library
+## This file is part of Taurus
 ## 
-## http://www.tango-controls.org/static/taurus/latest/doc/html/index.html
+## http://taurus-scada.org
 ##
 ## Copyright 2011 CELLS / ALBA Synchrotron, Bellaterra, Spain
 ## 
diff --git a/lib/taurus/qt/qtgui/extra_guiqwt/taurustrend2d.py b/lib/taurus/qt/qtgui/extra_guiqwt/taurustrend2d.py
index 73f39e8..6f36f35 100644
--- a/lib/taurus/qt/qtgui/extra_guiqwt/taurustrend2d.py
+++ b/lib/taurus/qt/qtgui/extra_guiqwt/taurustrend2d.py
@@ -2,9 +2,9 @@
 
 #############################################################################
 ##
-## This file is part of Taurus, a Tango User Interface Library
+## This file is part of Taurus
 ## 
-## http://www.tango-controls.org/static/taurus/latest/doc/html/index.html
+## http://taurus-scada.org
 ##
 ## Copyright 2011 CELLS / ALBA Synchrotron, Bellaterra, Spain
 ## 
diff --git a/lib/taurus/qt/qtgui/extra_guiqwt/tools.py b/lib/taurus/qt/qtgui/extra_guiqwt/tools.py
index bae8d11..5ecd2bd 100644
--- a/lib/taurus/qt/qtgui/extra_guiqwt/tools.py
+++ b/lib/taurus/qt/qtgui/extra_guiqwt/tools.py
@@ -2,9 +2,9 @@
 
 #############################################################################
 ##
-## This file is part of Taurus, a Tango User Interface Library
+## This file is part of Taurus
 ## 
-## http://www.tango-controls.org/static/taurus/latest/doc/html/index.html
+## http://taurus-scada.org
 ##
 ## Copyright 2011 CELLS / ALBA Synchrotron, Bellaterra, Spain
 ## 
diff --git a/lib/taurus/qt/qtgui/extra_macroexecutor/__init__.py b/lib/taurus/qt/qtgui/extra_macroexecutor/__init__.py
index e87a243..ecba5e5 100644
--- a/lib/taurus/qt/qtgui/extra_macroexecutor/__init__.py
+++ b/lib/taurus/qt/qtgui/extra_macroexecutor/__init__.py
@@ -1,8 +1,8 @@
 #############################################################################
 ##
-## This file is part of Taurus, a Tango User Interface Library
+## This file is part of Taurus
 ##
-## http://www.tango-controls.org/static/taurus/latest/doc/html/index.html
+## http://taurus-scada.org
 ##
 ## Copyright 2011 CELLS / ALBA Synchrotron, Bellaterra, Spain
 ##
diff --git a/lib/taurus/qt/qtgui/extra_nexus/__init__.py b/lib/taurus/qt/qtgui/extra_nexus/__init__.py
index adadae1..9657ed7 100644
--- a/lib/taurus/qt/qtgui/extra_nexus/__init__.py
+++ b/lib/taurus/qt/qtgui/extra_nexus/__init__.py
@@ -2,9 +2,9 @@
 
 #############################################################################
 ##
-## This file is part of Taurus, a Tango User Interface Library
+## This file is part of Taurus
 ## 
-## http://www.tango-controls.org/static/taurus/latest/doc/html/index.html
+## http://taurus-scada.org
 ##
 ## Copyright 2011 CELLS / ALBA Synchrotron, Bellaterra, Spain
 ## 
diff --git a/lib/taurus/qt/qtgui/extra_nexus/taurusnexuswidget.py b/lib/taurus/qt/qtgui/extra_nexus/taurusnexuswidget.py
index 1a75bda..8143ed4 100644
--- a/lib/taurus/qt/qtgui/extra_nexus/taurusnexuswidget.py
+++ b/lib/taurus/qt/qtgui/extra_nexus/taurusnexuswidget.py
@@ -2,9 +2,9 @@
 
 #############################################################################
 ##
-## This file is part of Taurus, a Tango User Interface Library
+## This file is part of Taurus
 ## 
-## http://www.tango-controls.org/static/taurus/latest/doc/html/index.html
+## http://taurus-scada.org
 ##
 ## Copyright 2011 CELLS / ALBA Synchrotron, Bellaterra, Spain
 ## 
diff --git a/lib/taurus/qt/qtgui/extra_pool/__init__.py b/lib/taurus/qt/qtgui/extra_pool/__init__.py
index 728e07b..be1ace3 100644
--- a/lib/taurus/qt/qtgui/extra_pool/__init__.py
+++ b/lib/taurus/qt/qtgui/extra_pool/__init__.py
@@ -1,8 +1,8 @@
 #############################################################################
 ##
-## This file is part of Taurus, a Tango User Interface Library
+## This file is part of Taurus
 ##
-## http://www.tango-controls.org/static/taurus/latest/doc/html/index.html
+## http://taurus-scada.org
 ##
 ## Copyright 2011 CELLS / ALBA Synchrotron, Bellaterra, Spain
 ##
diff --git a/lib/taurus/qt/qtgui/extra_sardana/__init__.py b/lib/taurus/qt/qtgui/extra_sardana/__init__.py
index 2953ab8..3e35df3 100644
--- a/lib/taurus/qt/qtgui/extra_sardana/__init__.py
+++ b/lib/taurus/qt/qtgui/extra_sardana/__init__.py
@@ -1,8 +1,8 @@
 #############################################################################
 ##
-## This file is part of Taurus, a Tango User Interface Library
+## This file is part of Taurus
 ##
-## http://www.tango-controls.org/static/taurus/latest/doc/html/index.html
+## http://taurus-scada.org
 ##
 ## Copyright 2011 CELLS / ALBA Synchrotron, Bellaterra, Spain
 ##
diff --git a/lib/taurus/qt/qtgui/extra_xterm/__init__.py b/lib/taurus/qt/qtgui/extra_xterm/__init__.py
index 3d6cc03..1fcf5d0 100644
--- a/lib/taurus/qt/qtgui/extra_xterm/__init__.py
+++ b/lib/taurus/qt/qtgui/extra_xterm/__init__.py
@@ -2,9 +2,9 @@
 
 #############################################################################
 ##
-## This file is part of Taurus, a Tango User Interface Library
+## This file is part of Taurus
 ## 
-## http://www.tango-controls.org/static/taurus/latest/doc/html/index.html
+## http://taurus-scada.org
 ##
 ## Copyright 2011 CELLS / ALBA Synchrotron, Bellaterra, Spain
 ## 
diff --git a/lib/taurus/qt/qtgui/extra_xterm/qxtermwidget.py b/lib/taurus/qt/qtgui/extra_xterm/qxtermwidget.py
index 05dcf23..c8b255d 100644
--- a/lib/taurus/qt/qtgui/extra_xterm/qxtermwidget.py
+++ b/lib/taurus/qt/qtgui/extra_xterm/qxtermwidget.py
@@ -2,9 +2,9 @@
 
 #############################################################################
 ##
-## This file is part of Taurus, a Tango User Interface Library
+## This file is part of Taurus
 ## 
-## http://www.tango-controls.org/static/taurus/latest/doc/html/index.html
+## http://taurus-scada.org
 ##
 ## Copyright 2011 CELLS / ALBA Synchrotron, Bellaterra, Spain
 ## 
diff --git a/lib/taurus/qt/qtgui/gauge/__init__.py b/lib/taurus/qt/qtgui/gauge/__init__.py
index c5b4855..31968cb 100644
--- a/lib/taurus/qt/qtgui/gauge/__init__.py
+++ b/lib/taurus/qt/qtgui/gauge/__init__.py
@@ -2,9 +2,9 @@
 
 #############################################################################
 ##
-## This file is part of Taurus, a Tango User Interface Library
+## This file is part of Taurus
 ## 
-## http://www.tango-controls.org/static/taurus/latest/doc/html/index.html
+## http://taurus-scada.org
 ##
 ## Copyright 2011 CELLS / ALBA Synchrotron, Bellaterra, Spain
 ## 
diff --git a/lib/taurus/qt/qtgui/gauge/demo/__init__.py b/lib/taurus/qt/qtgui/gauge/demo/__init__.py
index 7ea2ec7..ae329fb 100644
--- a/lib/taurus/qt/qtgui/gauge/demo/__init__.py
+++ b/lib/taurus/qt/qtgui/gauge/demo/__init__.py
@@ -2,9 +2,9 @@
 
 #############################################################################
 ##
-## This file is part of Taurus, a Tango User Interface Library
+## This file is part of Taurus
 ## 
-## http://www.tango-controls.org/static/taurus/latest/doc/html/index.html
+## http://taurus-scada.org
 ##
 ## Copyright 2011 CELLS / ALBA Synchrotron, Bellaterra, Spain
 ## 
diff --git a/lib/taurus/qt/qtgui/gauge/demo/qmeterdemo.py b/lib/taurus/qt/qtgui/gauge/demo/qmeterdemo.py
index bdc5351..5005dc9 100644
--- a/lib/taurus/qt/qtgui/gauge/demo/qmeterdemo.py
+++ b/lib/taurus/qt/qtgui/gauge/demo/qmeterdemo.py
@@ -2,9 +2,9 @@
 
 #############################################################################
 ##
-## This file is part of Taurus, a Tango User Interface Library
+## This file is part of Taurus
 ## 
-## http://www.tango-controls.org/static/taurus/latest/doc/html/index.html
+## http://taurus-scada.org
 ##
 ## Copyright 2011 CELLS / ALBA Synchrotron, Bellaterra, Spain
 ## 
diff --git a/lib/taurus/qt/qtgui/gauge/qmeter.py b/lib/taurus/qt/qtgui/gauge/qmeter.py
index 9d21b06..78800f9 100644
--- a/lib/taurus/qt/qtgui/gauge/qmeter.py
+++ b/lib/taurus/qt/qtgui/gauge/qmeter.py
@@ -2,9 +2,9 @@
 
 #############################################################################
 ##
-## This file is part of Taurus, a Tango User Interface Library
+## This file is part of Taurus
 ## 
-## http://www.tango-controls.org/static/taurus/latest/doc/html/index.html
+## http://taurus-scada.org
 ##
 ## Copyright 2011 CELLS / ALBA Synchrotron, Bellaterra, Spain
 ## 
diff --git a/lib/taurus/qt/qtgui/gauge/taurusgauge.py b/lib/taurus/qt/qtgui/gauge/taurusgauge.py
index e232367..174c938 100644
--- a/lib/taurus/qt/qtgui/gauge/taurusgauge.py
+++ b/lib/taurus/qt/qtgui/gauge/taurusgauge.py
@@ -2,9 +2,9 @@
 
 #############################################################################
 ##
-## This file is part of Taurus, a Tango User Interface Library
+## This file is part of Taurus
 ## 
-## http://www.tango-controls.org/static/taurus/latest/doc/html/index.html
+## http://taurus-scada.org
 ##
 ## Copyright 2011 CELLS / ALBA Synchrotron, Bellaterra, Spain
 ## 
diff --git a/lib/taurus/qt/qtgui/graphic/__init__.py b/lib/taurus/qt/qtgui/graphic/__init__.py
index a15f26b..68229bf 100644
--- a/lib/taurus/qt/qtgui/graphic/__init__.py
+++ b/lib/taurus/qt/qtgui/graphic/__init__.py
@@ -2,9 +2,9 @@
 
 #############################################################################
 ##
-## This file is part of Taurus, a Tango User Interface Library
+## This file is part of Taurus
 ## 
-## http://www.tango-controls.org/static/taurus/latest/doc/html/index.html
+## http://taurus-scada.org
 ##
 ## Copyright 2011 CELLS / ALBA Synchrotron, Bellaterra, Spain
 ## 
diff --git a/lib/taurus/qt/qtgui/graphic/jdraw/__init__.py b/lib/taurus/qt/qtgui/graphic/jdraw/__init__.py
index 5094a3f..c17174a 100644
--- a/lib/taurus/qt/qtgui/graphic/jdraw/__init__.py
+++ b/lib/taurus/qt/qtgui/graphic/jdraw/__init__.py
@@ -2,9 +2,9 @@
 
 #############################################################################
 ##
-## This file is part of Taurus, a Tango User Interface Library
+## This file is part of Taurus
 ## 
-## http://www.tango-controls.org/static/taurus/latest/doc/html/index.html
+## http://taurus-scada.org
 ##
 ## Copyright 2011 CELLS / ALBA Synchrotron, Bellaterra, Spain
 ## 
diff --git a/lib/taurus/qt/qtgui/graphic/jdraw/jdraw.py b/lib/taurus/qt/qtgui/graphic/jdraw/jdraw.py
index 7157411..1e0e4c1 100644
--- a/lib/taurus/qt/qtgui/graphic/jdraw/jdraw.py
+++ b/lib/taurus/qt/qtgui/graphic/jdraw/jdraw.py
@@ -2,9 +2,9 @@
 
 #############################################################################
 ##
-## This file is part of Taurus, a Tango User Interface Library
+## This file is part of Taurus
 ## 
-## http://www.tango-controls.org/static/taurus/latest/doc/html/index.html
+## http://taurus-scada.org
 ##
 ## Copyright 2011 CELLS / ALBA Synchrotron, Bellaterra, Spain
 ## 
diff --git a/lib/taurus/qt/qtgui/graphic/jdraw/jdraw_parser.py b/lib/taurus/qt/qtgui/graphic/jdraw/jdraw_parser.py
index 425ea33..84c6156 100644
--- a/lib/taurus/qt/qtgui/graphic/jdraw/jdraw_parser.py
+++ b/lib/taurus/qt/qtgui/graphic/jdraw/jdraw_parser.py
@@ -2,9 +2,9 @@
 
 #############################################################################
 ##
-## This file is part of Taurus, a Tango User Interface Library
+## This file is part of Taurus
 ## 
-## http://www.tango-controls.org/static/taurus/latest/doc/html/index.html
+## http://taurus-scada.org
 ##
 ## Copyright 2011 CELLS / ALBA Synchrotron, Bellaterra, Spain
 ## 
diff --git a/lib/taurus/qt/qtgui/graphic/jdraw/jdraw_view.py b/lib/taurus/qt/qtgui/graphic/jdraw/jdraw_view.py
index be92f70..5497e1b 100644
--- a/lib/taurus/qt/qtgui/graphic/jdraw/jdraw_view.py
+++ b/lib/taurus/qt/qtgui/graphic/jdraw/jdraw_view.py
@@ -2,9 +2,9 @@
 
 #############################################################################
 ##
-## This file is part of Taurus, a Tango User Interface Library
+## This file is part of Taurus
 ## 
-## http://www.tango-controls.org/static/taurus/latest/doc/html/index.html
+## http://taurus-scada.org
 ##
 ## Copyright 2011 CELLS / ALBA Synchrotron, Bellaterra, Spain
 ## 
diff --git a/lib/taurus/qt/qtgui/graphic/jdraw/test/__init__.py b/lib/taurus/qt/qtgui/graphic/jdraw/test/__init__.py
index 810fb34..b5472aa 100644
--- a/lib/taurus/qt/qtgui/graphic/jdraw/test/__init__.py
+++ b/lib/taurus/qt/qtgui/graphic/jdraw/test/__init__.py
@@ -2,9 +2,9 @@
 
 #############################################################################
 ##
-## This file is part of Taurus, a Tango User Interface Library
+## This file is part of Taurus
 ## 
-## http://www.tango-controls.org/static/taurus/latest/doc/html/index.html
+## http://taurus-scada.org
 ##
 ## Copyright 2011 CELLS / ALBA Synchrotron, Bellaterra, Spain
 ## 
diff --git a/lib/taurus/qt/qtgui/graphic/jdraw/test/res/__init__.py b/lib/taurus/qt/qtgui/graphic/jdraw/test/res/__init__.py
index 7d2077d..fdef775 100644
--- a/lib/taurus/qt/qtgui/graphic/jdraw/test/res/__init__.py
+++ b/lib/taurus/qt/qtgui/graphic/jdraw/test/res/__init__.py
@@ -2,9 +2,9 @@
 
 #############################################################################
 ##
-## This file is part of Taurus, a Tango User Interface Library
+## This file is part of Taurus
 ## 
-## http://www.tango-controls.org/static/taurus/latest/doc/html/index.html
+## http://taurus-scada.org
 ##
 ## Copyright 2011 CELLS / ALBA Synchrotron, Bellaterra, Spain
 ## 
diff --git a/lib/taurus/qt/qtgui/graphic/taurusgraphic.py b/lib/taurus/qt/qtgui/graphic/taurusgraphic.py
index f93e07c..e69c8ef 100644
--- a/lib/taurus/qt/qtgui/graphic/taurusgraphic.py
+++ b/lib/taurus/qt/qtgui/graphic/taurusgraphic.py
@@ -3,9 +3,9 @@ import PyTango
 
 #############################################################################
 ##
-## This file is part of Taurus, a Tango User Interface Library
+## This file is part of Taurus
 ## 
-## http://www.tango-controls.org/static/taurus/latest/doc/html/index.html
+## http://taurus-scada.org
 ##
 ## Copyright 2011 CELLS / ALBA Synchrotron, Bellaterra, Spain
 ## 
diff --git a/lib/taurus/qt/qtgui/graphic/taurusgraphicview.py b/lib/taurus/qt/qtgui/graphic/taurusgraphicview.py
index 190a385..4d62414 100644
--- a/lib/taurus/qt/qtgui/graphic/taurusgraphicview.py
+++ b/lib/taurus/qt/qtgui/graphic/taurusgraphicview.py
@@ -2,9 +2,9 @@
 
 #############################################################################
 ##
-## This file is part of Taurus, a Tango User Interface Library
+## This file is part of Taurus
 ## 
-## http://www.tango-controls.org/static/taurus/latest/doc/html/index.html
+## http://taurus-scada.org
 ##
 ## Copyright 2011 CELLS / ALBA Synchrotron, Bellaterra, Spain
 ## 
diff --git a/lib/taurus/qt/qtgui/help/__init__.py b/lib/taurus/qt/qtgui/help/__init__.py
index 91112ec..e9cf2e4 100644
--- a/lib/taurus/qt/qtgui/help/__init__.py
+++ b/lib/taurus/qt/qtgui/help/__init__.py
@@ -2,9 +2,9 @@
 
 #############################################################################
 ##
-## This file is part of Taurus, a Tango User Interface Library
+## This file is part of Taurus
 ##
-## http://www.tango-controls.org/static/taurus/latest/doc/html/index.html
+## http://taurus-scada.org
 ##
 ## Copyright 2011 CELLS / ALBA Synchrotron, Bellaterra, Spain
 ##
diff --git a/lib/taurus/qt/qtgui/help/aboutdialog.py b/lib/taurus/qt/qtgui/help/aboutdialog.py
index 1c0db62..5dfff2e 100644
--- a/lib/taurus/qt/qtgui/help/aboutdialog.py
+++ b/lib/taurus/qt/qtgui/help/aboutdialog.py
@@ -2,9 +2,9 @@
 
 ##############################################################################
 ##
-## This file is part of Taurus, a Tango User Interface Library
+## This file is part of Taurus
 ##
-## http://www.tango-controls.org/static/taurus/latest/doc/html/index.html
+## http://taurus-scada.org
 ##
 ## Copyright 2011 CELLS / ALBA Synchrotron, Bellaterra, Spain
 ##
diff --git a/lib/taurus/qt/qtgui/help/assistant.py b/lib/taurus/qt/qtgui/help/assistant.py
index aedd808..30b1455 100644
--- a/lib/taurus/qt/qtgui/help/assistant.py
+++ b/lib/taurus/qt/qtgui/help/assistant.py
@@ -2,9 +2,9 @@
 
 ##############################################################################
 ##
-## This file is part of Taurus, a Tango User Interface Library
+## This file is part of Taurus
 ##
-## http://www.tango-controls.org/static/taurus/latest/doc/html/index.html
+## http://taurus-scada.org
 ##
 ## Copyright 2011 CELLS / ALBA Synchrotron, Bellaterra, Spain
 ##
diff --git a/lib/taurus/qt/qtgui/help/helppanel.py b/lib/taurus/qt/qtgui/help/helppanel.py
index ad7bafe..701f9c2 100644
--- a/lib/taurus/qt/qtgui/help/helppanel.py
+++ b/lib/taurus/qt/qtgui/help/helppanel.py
@@ -2,9 +2,9 @@
 
 ##############################################################################
 ##
-## This file is part of Taurus, a Tango User Interface Library
+## This file is part of Taurus
 ##
-## http://www.tango-controls.org/static/taurus/latest/doc/html/index.html
+## http://taurus-scada.org
 ##
 ## Copyright 2011 CELLS / ALBA Synchrotron, Bellaterra, Spain
 ##
diff --git a/lib/taurus/qt/qtgui/image/__init__.py b/lib/taurus/qt/qtgui/image/__init__.py
index b0e9035..994241a 100644
--- a/lib/taurus/qt/qtgui/image/__init__.py
+++ b/lib/taurus/qt/qtgui/image/__init__.py
@@ -2,9 +2,9 @@
 
 #############################################################################
 ##
-## This file is part of Taurus, a Tango User Interface Library
+## This file is part of Taurus
 ## 
-## http://www.tango-controls.org/static/taurus/latest/doc/html/index.html
+## http://taurus-scada.org
 ##
 ## Copyright 2011 CELLS / ALBA Synchrotron, Bellaterra, Spain
 ## 
diff --git a/lib/taurus/qt/qtgui/image/taurusqub.py b/lib/taurus/qt/qtgui/image/taurusqub.py
index e60c743..22d8b7a 100644
--- a/lib/taurus/qt/qtgui/image/taurusqub.py
+++ b/lib/taurus/qt/qtgui/image/taurusqub.py
@@ -2,9 +2,9 @@
 
 #############################################################################
 ##
-## This file is part of Taurus, a Tango User Interface Library
+## This file is part of Taurus
 ## 
-## http://www.tango-controls.org/static/taurus/latest/doc/html/index.html
+## http://taurus-scada.org
 ##
 ## Copyright 2011 CELLS / ALBA Synchrotron, Bellaterra, Spain
 ## 
diff --git a/lib/taurus/qt/qtgui/input/__init__.py b/lib/taurus/qt/qtgui/input/__init__.py
index a5b3ae3..cc5c7b0 100644
--- a/lib/taurus/qt/qtgui/input/__init__.py
+++ b/lib/taurus/qt/qtgui/input/__init__.py
@@ -2,9 +2,9 @@
 
 #############################################################################
 ##
-## This file is part of Taurus, a Tango User Interface Library
+## This file is part of Taurus
 ## 
-## http://www.tango-controls.org/static/taurus/latest/doc/html/index.html
+## http://taurus-scada.org
 ##
 ## Copyright 2011 CELLS / ALBA Synchrotron, Bellaterra, Spain
 ## 
diff --git a/lib/taurus/qt/qtgui/input/choicedlg.py b/lib/taurus/qt/qtgui/input/choicedlg.py
index 78f5d64..e72ebb6 100644
--- a/lib/taurus/qt/qtgui/input/choicedlg.py
+++ b/lib/taurus/qt/qtgui/input/choicedlg.py
@@ -2,9 +2,9 @@
 
 #############################################################################
 ##
-## This file is part of Taurus, a Tango User Interface Library
+## This file is part of Taurus
 ## 
-## http://www.tango-controls.org/static/taurus/latest/doc/html/index.html
+## http://taurus-scada.org
 ##
 ## Copyright 2011 CELLS / ALBA Synchrotron, Bellaterra, Spain
 ## 
diff --git a/lib/taurus/qt/qtgui/input/qwheel.py b/lib/taurus/qt/qtgui/input/qwheel.py
index 2279a5b..54c56ff 100644
--- a/lib/taurus/qt/qtgui/input/qwheel.py
+++ b/lib/taurus/qt/qtgui/input/qwheel.py
@@ -2,9 +2,9 @@
 
 #############################################################################
 ##
-## This file is part of Taurus, a Tango User Interface Library
+## This file is part of Taurus
 ## 
-## http://www.tango-controls.org/static/taurus/latest/doc/html/index.html
+## http://taurus-scada.org
 ##
 ## Copyright 2011 CELLS / ALBA Synchrotron, Bellaterra, Spain
 ## 
@@ -31,11 +31,10 @@ __docformat__ = 'restructuredtext'
 
 import os
 import math
+import numpy
 
 from taurus.external.qt import Qt
 
-#from taurus.qt.qtgui.resource.qrc_extra_icons import *
-
 class _ArrowButton(Qt.QPushButton):
     """Private class to be used by QWheelEdit for an arrow button"""
 
@@ -201,14 +200,12 @@ class QWheelEdit(Qt.QFrame):
         self._previous_value = 0
         self._value = 0
         self._value_str = '0'
-        self._minValue = float('-inf')
-        self._maxValue = float('+inf')
+        self._minValue = numpy.finfo('d').min # -inf
+        self._maxValue = numpy.finfo('d').max # inf
         self._editor = None
         self._editing = False
         self._showArrowButtons = True
         self._setDigits(QWheelEdit.DefaultIntDigitCount, QWheelEdit.DefaultDecDigitCount)
-
-        self._setMinMax( self._getMinPossibleValue(), self._getMaxPossibleValue())
         self._setValue(0)
         
         self._build()
@@ -259,7 +256,7 @@ class QWheelEdit(Qt.QFrame):
         
         signLabel = _DigitLabel('+')
         signLabel.setFocusPolicy(Qt.Qt.NoFocus)
-        signLabel.setAlignment(Qt.Qt.AlignRight)
+        signLabel.setAlignment(Qt.Qt.AlignRight|Qt.Qt.AlignVCenter)
         self._digitLabels.append(signLabel)
         l.addWidget(signLabel, 1, 0)
         l.setRowMinimumHeight(1, signLabel.minimumSizeHint().height())
@@ -371,24 +368,33 @@ class QWheelEdit(Qt.QFrame):
     
     def _setDigits(self, int_nb=None, dec_nb=None):
         """_setDigits(self, int_nb=None, dec_nb=None) -> None
-        
-        Sets the number of digits that this widget shows.
-        
+
+        Sets the number of digits that this widget shows. It will ensure that
+        the current value can be displayed (i.e., int_nb will be forced to be
+        large enough for displaying the integer representation of the value)
+
         @param[in] int_nb (int) number of integer digits (optional, default is
                    None, meaning use the existing number of integer digits
         @param[in] dec_nb (int) number of decimal digits (optional, default is
                    None, meaning use the existing number of decimal digits
         """
+
         if not int_nb is None:
             self._intDigitCount = int_nb
         if not dec_nb is None:
             self._decDigitCount = dec_nb
+
+        # make sure that the current value can be displayed
+        self._intDigitCount = max(self._intDigitCount, len("%d" % self._value))
+
         self._digitCount = self._intDigitCount + self._decDigitCount
         total_chars = self._digitCount
         total_chars += 1 # for sign
         if self._decDigitCount > 0:
             total_chars += 1 # for dot
         self._valueFormat = '%%+0%d.%df' % (total_chars, self._decDigitCount)
+        self._setMinMax( self._getMinPossibleValue(),
+                         self._getMaxPossibleValue())
         # we call setValue to update the self._value_str
         self._setValue(self.getValue())
         
@@ -403,10 +409,11 @@ class QWheelEdit(Qt.QFrame):
         @return (str) a proper string representation of the given value
         """
         if v is None:
-            return (self._valueFormat % 0).replace('0', '-')
-        ret = self._valueFormat % v
-        if ret.endswith('nan'):
-            ret = ret.replace('0',' ')
+            ret = (self._valueFormat % 0).replace('0', '-')
+        else:
+            ret = self._valueFormat % v
+            if ret.endswith('nan'):
+                ret = ret.replace('0',' ')
         self._value_str = ret
         return ret
     
@@ -739,7 +746,7 @@ class QWheelEdit(Qt.QFrame):
         rect = Qt.QRect(l.cellRect(1, 0).topLeft(), l.cellRect(1,
                             l.columnCount() - 1).bottomRight())
         ed.setGeometry(rect)
-        ed.setAlignment(Qt.Qt.AlignRight);
+        ed.setAlignment(Qt.Qt.AlignRight)
         ed.setMaxLength(self.getDigitCount() + 2)
         ed.setText(self.getValueStr())
         ed.selectAll()
@@ -888,8 +895,8 @@ def main():
     button_layout.addWidget(resetbutton)
     isb.setValue(arrowWidget.getIntDigitCount())
     dsb.setValue(arrowWidget.getDecDigitCount())
-    minv.setRange(float('-inf'), float('+inf'))
-    maxv.setRange(float('-inf'), float('+inf'))
+    minv.setRange(numpy.finfo('d').min, numpy.finfo('d').max)
+    maxv.setRange(numpy.finfo('d').min, numpy.finfo('d').max)
     minv.setValue(arrowWidget.getMinValue())
     maxv.setValue(arrowWidget.getMaxValue())
     showarrowbutton.setChecked(arrowWidget.getShowArrowButtons())
diff --git a/lib/taurus/qt/qtgui/input/tauruscheckbox.py b/lib/taurus/qt/qtgui/input/tauruscheckbox.py
index 7a16138..ba7c3e1 100644
--- a/lib/taurus/qt/qtgui/input/tauruscheckbox.py
+++ b/lib/taurus/qt/qtgui/input/tauruscheckbox.py
@@ -2,9 +2,9 @@
 
 #############################################################################
 ##
-## This file is part of Taurus, a Tango User Interface Library
+## This file is part of Taurus
 ##
-## http://www.tango-controls.org/static/taurus/latest/doc/html/index.html
+## http://taurus-scada.org
 ##
 ## Copyright 2011 CELLS / ALBA Synchrotron, Bellaterra, Spain
 ##
diff --git a/lib/taurus/qt/qtgui/input/tauruscombobox.py b/lib/taurus/qt/qtgui/input/tauruscombobox.py
index 46f9379..efe5810 100644
--- a/lib/taurus/qt/qtgui/input/tauruscombobox.py
+++ b/lib/taurus/qt/qtgui/input/tauruscombobox.py
@@ -3,9 +3,9 @@
 
 #############################################################################
 ##
-## This file is part of Taurus, a Tango User Interface Library
+## This file is part of Taurus
 ## 
-## http://www.tango-controls.org/static/taurus/latest/doc/html/index.html
+## http://taurus-scada.org
 ##
 ## Copyright 2011 CELLS / ALBA Synchrotron, Bellaterra, Spain
 ## 
diff --git a/lib/taurus/qt/qtgui/input/tauruslineedit.py b/lib/taurus/qt/qtgui/input/tauruslineedit.py
index 36a0fac..b677776 100644
--- a/lib/taurus/qt/qtgui/input/tauruslineedit.py
+++ b/lib/taurus/qt/qtgui/input/tauruslineedit.py
@@ -2,9 +2,9 @@
 
 #############################################################################
 ##
-## This file is part of Taurus, a Tango User Interface Library
+## This file is part of Taurus
 ## 
-## http://www.tango-controls.org/static/taurus/latest/doc/html/index.html
+## http://taurus-scada.org
 ##
 ## Copyright 2011 CELLS / ALBA Synchrotron, Bellaterra, Spain
 ## 
diff --git a/lib/taurus/qt/qtgui/input/taurusspinbox.py b/lib/taurus/qt/qtgui/input/taurusspinbox.py
index e7b8533..15c509b 100644
--- a/lib/taurus/qt/qtgui/input/taurusspinbox.py
+++ b/lib/taurus/qt/qtgui/input/taurusspinbox.py
@@ -2,9 +2,9 @@
 
 #############################################################################
 ##
-## This file is part of Taurus, a Tango User Interface Library
+## This file is part of Taurus
 ## 
-## http://www.tango-controls.org/static/taurus/latest/doc/html/index.html
+## http://taurus-scada.org
 ##
 ## Copyright 2011 CELLS / ALBA Synchrotron, Bellaterra, Spain
 ## 
diff --git a/lib/taurus/qt/qtgui/input/tauruswheel.py b/lib/taurus/qt/qtgui/input/tauruswheel.py
index a962621..6495961 100644
--- a/lib/taurus/qt/qtgui/input/tauruswheel.py
+++ b/lib/taurus/qt/qtgui/input/tauruswheel.py
@@ -2,9 +2,9 @@
 
 #############################################################################
 ##
-## This file is part of Taurus, a Tango User Interface Library
+## This file is part of Taurus
 ## 
-## http://www.tango-controls.org/static/taurus/latest/doc/html/index.html
+## http://taurus-scada.org
 ##
 ## Copyright 2011 CELLS / ALBA Synchrotron, Bellaterra, Spain
 ## 
@@ -29,9 +29,10 @@ __all__ = ["TaurusWheelEdit" ]
 
 __docformat__ = 'restructuredtext'
 
+import taurus
 from taurus.external.qt import Qt
 
-import taurus.core
+from  taurus.core.taurusbasetypes import TaurusEventType
 from taurus.qt.qtgui.base import TaurusBaseWritableWidget
 from qwheel import QWheelEdit
 
@@ -51,30 +52,44 @@ class TaurusWheelEdit(QWheelEdit, TaurusBaseWritableWidget):
     #-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-
         
     def handleEvent(self, evt_src, evt_type, evt_value):
-        if evt_type == taurus.core.taurusbasetypes.TaurusEventType.Config and not evt_value is None:
-            f = evt_value.format.lower()
-            if f[-1] not in ('d', 'f', 'g'):
-                raise ValueError("'%s' format unsupported" % f)
-            f = f.replace('g','f')
-            if 'd' == f[-1]:
-                dec_nb = 0
-                try: total = int(f[1:-1])
-                except: total = 6
+        if evt_type == TaurusEventType.Config and evt_value is not None:
+            import re
+            # match the format string to "%[width][.precision][f_type]"
+            m = re.match(r'%([0-9]+)?(\.([0-9]+))?([df])', evt_value.format)
+            if m is None:
+                raise ValueError("'%s' format unsupported" % evt_value.format)
+
+            width, _, precision, f_type = m.groups()
+
+            if width is None:
+                width = self.DefaultIntDigitCount + \
+                        self.DefaultDecDigitCount + 1
+            else:
+                width = int(width)
+
+            if precision is None:
+                precision = self.DefaultDecDigitCount
+            else:
+                precision = int(precision)
+
+            dec_nb = precision
+
+            if dec_nb == 0 or f_type == 'd':
+                int_nb = width
             else:
-                f = map(int, f[1:-1].split('.', 1))
-                total = f[0]
-                if len(f)>1:
-                    dec_nb = f[1]
-                else:
-                    dec_nb = 2
-            int_nb = total-dec_nb
+                int_nb = width - dec_nb - 1 # account for decimal sep
+
             self.setDigitCount(int_nb=int_nb, dec_nb=dec_nb)
-            try: self.setMinValue(float(evt_value.min_value))
-            except: pass
-            try: self.setMaxValue(float(evt_value.max_value))
-            except: pass
+            try:
+                self.setMinValue(float(evt_value.min_value))
+            except:
+                pass
+            try:
+                self.setMaxValue(float(evt_value.max_value))
+            except:
+                pass
         TaurusBaseWritableWidget.handleEvent(self, evt_src, evt_type, evt_value)
-    
+
     def updateStyle(self):
         TaurusBaseWritableWidget.updateStyle(self)
         if self.hasPendingOperations():
diff --git a/lib/taurus/qt/qtgui/model/__init__.py b/lib/taurus/qt/qtgui/model/__init__.py
index f5cfc48..19f1b59 100644
--- a/lib/taurus/qt/qtgui/model/__init__.py
+++ b/lib/taurus/qt/qtgui/model/__init__.py
@@ -2,9 +2,9 @@
 
 #############################################################################
 ##
-## This file is part of Taurus, a Tango User Interface Library
+## This file is part of Taurus
 ## 
-## http://www.tango-controls.org/static/taurus/latest/doc/html/index.html
+## http://taurus-scada.org
 ##
 ## Copyright 2011 CELLS / ALBA Synchrotron, Bellaterra, Spain
 ## 
diff --git a/lib/taurus/qt/qtgui/model/qbasemodel.py b/lib/taurus/qt/qtgui/model/qbasemodel.py
index e891a15..3812009 100644
--- a/lib/taurus/qt/qtgui/model/qbasemodel.py
+++ b/lib/taurus/qt/qtgui/model/qbasemodel.py
@@ -2,9 +2,9 @@
 
 #############################################################################
 ##
-## This file is part of Taurus, a Tango User Interface Library
+## This file is part of Taurus
 ##
-## http://www.tango-controls.org/static/taurus/latest/doc/html/index.html
+## http://taurus-scada.org
 ##
 ## Copyright 2011 CELLS / ALBA Synchrotron, Bellaterra, Spain
 ##
diff --git a/lib/taurus/qt/qtgui/panel/__init__.py b/lib/taurus/qt/qtgui/panel/__init__.py
index 338fa5d..4d326b2 100644
--- a/lib/taurus/qt/qtgui/panel/__init__.py
+++ b/lib/taurus/qt/qtgui/panel/__init__.py
@@ -2,9 +2,9 @@
 
 #############################################################################
 ##
-## This file is part of Taurus, a Tango User Interface Library
+## This file is part of Taurus
 ## 
-## http://www.tango-controls.org/static/taurus/latest/doc/html/index.html
+## http://taurus-scada.org
 ##
 ## Copyright 2011 CELLS / ALBA Synchrotron, Bellaterra, Spain
 ## 
diff --git a/lib/taurus/qt/qtgui/panel/qdataexportdialog.py b/lib/taurus/qt/qtgui/panel/qdataexportdialog.py
index 140e5a0..ecd2cb9 100644
--- a/lib/taurus/qt/qtgui/panel/qdataexportdialog.py
+++ b/lib/taurus/qt/qtgui/panel/qdataexportdialog.py
@@ -2,9 +2,9 @@
 
 #############################################################################
 ##
-## This file is part of Taurus, a Tango User Interface Library
+## This file is part of Taurus
 ## 
-## http://www.tango-controls.org/static/taurus/latest/doc/html/index.html
+## http://taurus-scada.org
 ##
 ## Copyright 2011 CELLS / ALBA Synchrotron, Bellaterra, Spain
 ## 
@@ -50,7 +50,7 @@ class QDataExportDialog(Qt.QDialog):
     allInSingleFile = "All sets in a single file (table like)"
     allInMultipleFiles = "All set in multiple files"
 
-    def __init__(self, parent=None, datadict=None):
+    def __init__(self, parent=None, datadict=None, sortedNames=None):
         super(QDataExportDialog,self).__init__(parent)
         self.loadUi()
         self._xIsTime = False
@@ -59,17 +59,21 @@ class QDataExportDialog(Qt.QDialog):
         Qt.QObject.connect(self.exportBT,Qt.SIGNAL("clicked()"),self.exportData)
         Qt.QObject.connect(self.dataSetCB,Qt.SIGNAL("currentIndexChanged(const QString&)"),self.onDataSetCBChange)
         
-        self.setDataSets(datadict)
+        self.setDataSets(datadict, sortedNames)
+        
 
 
-    def setDataSets(self, datadict):
+    def setDataSets(self, datadict, sortedNames=None):
         """Used to set the sets that are to be offered for exporting. It overwrites previous values.
         """
         if datadict is None: return
+        if sortedNames is None:
+            sortedNames = sorted(self.datadict.keys())
+        self.sortedNames = sortedNames
         self.datatime=datetime.now()
         self.datadict=datadict
         self.dataSetCB.clear()
-        self.dataSetCB.insertItems(0,sorted(self.datadict.keys()))
+        self.dataSetCB.insertItems(0, sortedNames)
         if len(self.datadict.keys()) > 1:
             self.dataSetCB.insertItems(0,[self.allInSingleFile, self.allInMultipleFiles])
 
@@ -118,7 +122,7 @@ class QDataExportDialog(Qt.QDialog):
             outputdir=Qt.QFileDialog.getExistingDirectory (self, 'Export Directory', Qt.QString())
             if not outputdir:return False
             preffix=os.path.join(str(outputdir),"set")
-        for i,k in zip(range(len(self.datadict)),sorted(self.datadict.keys())):
+        for i,k in zip(range(len(self.datadict)), self.sortedNames):
             ofile="%s%03i.dat"%(preffix,i+1)
             try:
                 self.exportCurrentData(set=k,ofile=ofile,verbose=False,AllowCloseAfter=False)
@@ -143,9 +147,12 @@ class QDataExportDialog(Qt.QDialog):
             header = "# DATASET= " 
             body = ""
             previous = None
-            for curve_name in sorted(self.datadict.keys()):
+            for curve_name in self.sortedNames:
                 xdata, ydata = self.datadict[curve_name]
-                if (previous is not None) and (previous != xdata):
+                if previous is None:
+                    previous = xdata
+                    header +=' "abscissa"'
+                elif previous != xdata:
                     if (key==self.allInSingleFile):
                         self.dataTE.clear()
                         Qt.QMessageBox.critical(self,\
@@ -158,17 +165,17 @@ class QDataExportDialog(Qt.QDialog):
                         self.dataTE.insertPlainText("Unable to display because abscissas are different.\n"\
                                                     "Curves will be saved each one in its own file")
                         return
-                else:
-                    previous = xdata
-                    header +=' "abscissa", "%s"' % curve_name
+                header +=' , "%s"' % curve_name
+            
             header+="\n# SNAPSHOT_TIME= %s\n"%self.datatime.isoformat('_')
             #if we reached this point x axes are equal, so fill the editor with the data
             for i, x in enumerate(previous):
                 if self.xIsTime():
+                    t=datetime.fromtimestamp(x)
                     body += "%s" % t.isoformat('_')
                 else:
                     body += "%g" % x
-                for curve_name in sorted(self.datadict.keys()):
+                for curve_name in self.sortedNames:
                     xdata, ydata = self.datadict[curve_name]
                     body += ("\t%g" % ydata[i])
                 body+="\n"
diff --git a/lib/taurus/qt/qtgui/panel/qdoublelist.py b/lib/taurus/qt/qtgui/panel/qdoublelist.py
index 48e2d8a..be50e7a 100644
--- a/lib/taurus/qt/qtgui/panel/qdoublelist.py
+++ b/lib/taurus/qt/qtgui/panel/qdoublelist.py
@@ -2,9 +2,9 @@
 
 #############################################################################
 ##
-## This file is part of Taurus, a Tango User Interface Library
+## This file is part of Taurus
 ## 
-## http://www.tango-controls.org/static/taurus/latest/doc/html/index.html
+## http://taurus-scada.org
 ##
 ## Copyright 2011 CELLS / ALBA Synchrotron, Bellaterra, Spain
 ## 
diff --git a/lib/taurus/qt/qtgui/panel/qrawdatachooser.py b/lib/taurus/qt/qtgui/panel/qrawdatachooser.py
index 7ba9ce1..5d8d15d 100644
--- a/lib/taurus/qt/qtgui/panel/qrawdatachooser.py
+++ b/lib/taurus/qt/qtgui/panel/qrawdatachooser.py
@@ -2,9 +2,9 @@
 
 #############################################################################
 ##
-## This file is part of Taurus, a Tango User Interface Library
+## This file is part of Taurus
 ## 
-## http://www.tango-controls.org/static/taurus/latest/doc/html/index.html
+## http://taurus-scada.org
 ##
 ## Copyright 2011 CELLS / ALBA Synchrotron, Bellaterra, Spain
 ## 
diff --git a/lib/taurus/qt/qtgui/panel/report/__init__.py b/lib/taurus/qt/qtgui/panel/report/__init__.py
index 208f8eb..369b6eb 100644
--- a/lib/taurus/qt/qtgui/panel/report/__init__.py
+++ b/lib/taurus/qt/qtgui/panel/report/__init__.py
@@ -2,9 +2,9 @@
 
 #############################################################################
 ##
-## This file is part of Taurus, a Tango User Interface Library
+## This file is part of Taurus
 ## 
-## http://www.tango-controls.org/static/taurus/latest/doc/html/index.html
+## http://taurus-scada.org
 ##
 ## Copyright 2011 CELLS / ALBA Synchrotron, Bellaterra, Spain
 ## 
diff --git a/lib/taurus/qt/qtgui/panel/report/albareport.py b/lib/taurus/qt/qtgui/panel/report/albareport.py
index 53604ea..ef0fe12 100644
--- a/lib/taurus/qt/qtgui/panel/report/albareport.py
+++ b/lib/taurus/qt/qtgui/panel/report/albareport.py
@@ -2,9 +2,9 @@
 
 #############################################################################
 ##
-## This file is part of Taurus, a Tango User Interface Library
+## This file is part of Taurus
 ##
-## http://www.tango-controls.org/static/taurus/latest/doc/html/index.html
+## http://taurus-scada.org
 ##
 ## Copyright 2011 CELLS / ALBA Synchrotron, Bellaterra, Spain
 ##
diff --git a/lib/taurus/qt/qtgui/panel/report/basicreport.py b/lib/taurus/qt/qtgui/panel/report/basicreport.py
index 57dcb46..43d0665 100644
--- a/lib/taurus/qt/qtgui/panel/report/basicreport.py
+++ b/lib/taurus/qt/qtgui/panel/report/basicreport.py
@@ -2,9 +2,9 @@
 
 #############################################################################
 ##
-## This file is part of Taurus, a Tango User Interface Library
+## This file is part of Taurus
 ##
-## http://www.tango-controls.org/static/taurus/latest/doc/html/index.html
+## http://taurus-scada.org
 ##
 ## Copyright 2011 CELLS / ALBA Synchrotron, Bellaterra, Spain
 ##
diff --git a/lib/taurus/qt/qtgui/panel/taurusattributechooser.py b/lib/taurus/qt/qtgui/panel/taurusattributechooser.py
index f3cd813..3fdcdeb 100644
--- a/lib/taurus/qt/qtgui/panel/taurusattributechooser.py
+++ b/lib/taurus/qt/qtgui/panel/taurusattributechooser.py
@@ -2,9 +2,9 @@
 
 #############################################################################
 ##
-## This file is part of Taurus, a Tango User Interface Library
+## This file is part of Taurus
 ## 
-## http://www.tango-controls.org/static/taurus/latest/doc/html/index.html
+## http://taurus-scada.org
 ##
 ## Copyright 2011 CELLS / ALBA Synchrotron, Bellaterra, Spain
 ## 
diff --git a/lib/taurus/qt/qtgui/panel/taurusconfigbrowser.py b/lib/taurus/qt/qtgui/panel/taurusconfigbrowser.py
index d99fcbd..521d750 100644
--- a/lib/taurus/qt/qtgui/panel/taurusconfigbrowser.py
+++ b/lib/taurus/qt/qtgui/panel/taurusconfigbrowser.py
@@ -2,9 +2,9 @@
 
 #############################################################################
 ##
-## This file is part of Taurus, a Tango User Interface Library
+## This file is part of Taurus
 ## 
-## http://www.tango-controls.org/static/taurus/latest/doc/html/index.html
+## http://taurus-scada.org
 ##
 ## Copyright 2011 CELLS / ALBA Synchrotron, Bellaterra, Spain
 ## 
diff --git a/lib/taurus/qt/qtgui/panel/taurusconfigeditor.py b/lib/taurus/qt/qtgui/panel/taurusconfigeditor.py
index 93b6377..3e442d4 100644
--- a/lib/taurus/qt/qtgui/panel/taurusconfigeditor.py
+++ b/lib/taurus/qt/qtgui/panel/taurusconfigeditor.py
@@ -2,9 +2,9 @@
 
 #############################################################################
 ##
-## This file is part of Taurus, a Tango User Interface Library
+## This file is part of Taurus
 ## 
-## http://www.tango-controls.org/static/taurus/latest/doc/html/index.html
+## http://taurus-scada.org
 ##
 ## Copyright 2011 CELLS / ALBA Synchrotron, Bellaterra, Spain
 ## 
diff --git a/lib/taurus/qt/qtgui/panel/taurusconfigurationpanel.py b/lib/taurus/qt/qtgui/panel/taurusconfigurationpanel.py
index 1b64e2d..6c60028 100644
--- a/lib/taurus/qt/qtgui/panel/taurusconfigurationpanel.py
+++ b/lib/taurus/qt/qtgui/panel/taurusconfigurationpanel.py
@@ -2,9 +2,9 @@
 
 #############################################################################
 ##
-## This file is part of Taurus, a Tango User Interface Library
+## This file is part of Taurus
 ## 
-## http://www.tango-controls.org/static/taurus/latest/doc/html/index.html
+## http://taurus-scada.org
 ##
 ## Copyright 2011 CELLS / ALBA Synchrotron, Bellaterra, Spain
 ## 
diff --git a/lib/taurus/qt/qtgui/panel/taurusdevicepanel.py b/lib/taurus/qt/qtgui/panel/taurusdevicepanel.py
index e2bb4ee..73df63f 100644
--- a/lib/taurus/qt/qtgui/panel/taurusdevicepanel.py
+++ b/lib/taurus/qt/qtgui/panel/taurusdevicepanel.py
@@ -2,9 +2,9 @@
 
 #############################################################################
 ##
-## This file is part of Taurus, a Tango User Interface Library
+## This file is part of Taurus
 ## 
-## http://www.tango-controls.org/static/taurus/latest/doc/html/index.html
+## http://taurus-scada.org
 ##
 ## Copyright 2011 CELLS / ALBA Synchrotron, Bellaterra, Spain
 ## 
diff --git a/lib/taurus/qt/qtgui/panel/taurusfilterpanel.py b/lib/taurus/qt/qtgui/panel/taurusfilterpanel.py
index b4c77e3..70275ce 100644
--- a/lib/taurus/qt/qtgui/panel/taurusfilterpanel.py
+++ b/lib/taurus/qt/qtgui/panel/taurusfilterpanel.py
@@ -2,9 +2,9 @@
 
 #############################################################################
 ##
-## This file is part of Taurus, a Tango User Interface Library
+## This file is part of Taurus
 ## 
-## http://www.tango-controls.org/static/taurus/latest/doc/html/index.html
+## http://taurus-scada.org
 ##
 ## Copyright 2011 CELLS / ALBA Synchrotron, Bellaterra, Spain
 ## 
diff --git a/lib/taurus/qt/qtgui/panel/taurusform.py b/lib/taurus/qt/qtgui/panel/taurusform.py
index 83ba242..99c2ec5 100644
--- a/lib/taurus/qt/qtgui/panel/taurusform.py
+++ b/lib/taurus/qt/qtgui/panel/taurusform.py
@@ -2,9 +2,9 @@
 
 #############################################################################
 ##
-## This file is part of Taurus, a Tango User Interface Library
+## This file is part of Taurus
 ## 
-## http://www.tango-controls.org/static/taurus/latest/doc/html/index.html
+## http://taurus-scada.org
 ##
 ## Copyright 2011 CELLS / ALBA Synchrotron, Bellaterra, Spain
 ## 
diff --git a/lib/taurus/qt/qtgui/panel/taurusinputpanel.py b/lib/taurus/qt/qtgui/panel/taurusinputpanel.py
index eb4fe44..e975240 100644
--- a/lib/taurus/qt/qtgui/panel/taurusinputpanel.py
+++ b/lib/taurus/qt/qtgui/panel/taurusinputpanel.py
@@ -2,9 +2,9 @@
 
 #############################################################################
 ##
-## This file is part of Taurus, a Tango User Interface Library
+## This file is part of Taurus
 ## 
-## http://www.tango-controls.org/static/taurus/latest/doc/html/index.html
+## http://taurus-scada.org
 ##
 ## Copyright 2011 CELLS / ALBA Synchrotron, Bellaterra, Spain
 ## 
diff --git a/lib/taurus/qt/qtgui/panel/taurusmessagepanel.py b/lib/taurus/qt/qtgui/panel/taurusmessagepanel.py
index 807d65c..1826d56 100644
--- a/lib/taurus/qt/qtgui/panel/taurusmessagepanel.py
+++ b/lib/taurus/qt/qtgui/panel/taurusmessagepanel.py
@@ -2,9 +2,9 @@
 
 #############################################################################
 ##
-## This file is part of Taurus, a Tango User Interface Library
+## This file is part of Taurus
 ##
-## http://www.tango-controls.org/static/taurus/latest/doc/html/index.html
+## http://taurus-scada.org
 ##
 ## Copyright 2011 CELLS / ALBA Synchrotron, Bellaterra, Spain
 ##
diff --git a/lib/taurus/qt/qtgui/panel/taurusmodelchooser.py b/lib/taurus/qt/qtgui/panel/taurusmodelchooser.py
index 67ef89b..d96264d 100644
--- a/lib/taurus/qt/qtgui/panel/taurusmodelchooser.py
+++ b/lib/taurus/qt/qtgui/panel/taurusmodelchooser.py
@@ -2,9 +2,9 @@
 
 #############################################################################
 ##
-## This file is part of Taurus, a Tango User Interface Library
+## This file is part of Taurus
 ## 
-## http://www.tango-controls.org/static/taurus/latest/doc/html/index.html
+## http://taurus-scada.org
 ##
 ## Copyright 2011 CELLS / ALBA Synchrotron, Bellaterra, Spain
 ## 
diff --git a/lib/taurus/qt/qtgui/panel/taurusmodellist.py b/lib/taurus/qt/qtgui/panel/taurusmodellist.py
index 0664fa1..d8c0dda 100644
--- a/lib/taurus/qt/qtgui/panel/taurusmodellist.py
+++ b/lib/taurus/qt/qtgui/panel/taurusmodellist.py
@@ -2,9 +2,9 @@
 
 #############################################################################
 ##
-## This file is part of Taurus, a Tango User Interface Library
+## This file is part of Taurus
 ## 
-## http://www.tango-controls.org/static/taurus/latest/doc/html/index.html
+## http://taurus-scada.org
 ##
 ## Copyright 2011 CELLS / ALBA Synchrotron, Bellaterra, Spain
 ## 
diff --git a/lib/taurus/qt/qtgui/panel/taurusvalue.py b/lib/taurus/qt/qtgui/panel/taurusvalue.py
index cd492d9..85b00d0 100644
--- a/lib/taurus/qt/qtgui/panel/taurusvalue.py
+++ b/lib/taurus/qt/qtgui/panel/taurusvalue.py
@@ -2,9 +2,9 @@
 
 #############################################################################
 ##
-## This file is part of Taurus, a Tango User Interface Library
+## This file is part of Taurus
 ## 
-## http://www.tango-controls.org/static/taurus/latest/doc/html/index.html
+## http://taurus-scada.org
 ##
 ## Copyright 2011 CELLS / ALBA Synchrotron, Bellaterra, Spain
 ## 
@@ -318,7 +318,7 @@ class TaurusValue(Qt.QWidget, TaurusBaseWidget):
         used, it returns the switcher's writeWidget instead of None.
         '''
         if followCompact and self.isCompact():
-            return self._readWidget.writeWidget
+            return getattr(self._readWidget,'writeWidget', None)
         return self._writeWidget
     
     def unitsWidget(self):
diff --git a/lib/taurus/qt/qtgui/panel/test/__init__.py b/lib/taurus/qt/qtgui/panel/test/__init__.py
index d36d30e..9503bca 100644
--- a/lib/taurus/qt/qtgui/panel/test/__init__.py
+++ b/lib/taurus/qt/qtgui/panel/test/__init__.py
@@ -2,9 +2,9 @@
 
 #############################################################################
 ##
-## This file is part of Taurus, a Tango User Interface Library
+## This file is part of Taurus
 ##
-## http://www.tango-controls.org/static/taurus/latest/doc/html/index.html
+## http://taurus-scada.org
 ##
 ## Copyright 2011 CELLS / ALBA Synchrotron, Bellaterra, Spain
 ##
diff --git a/lib/taurus/qt/qtgui/panel/test/test_taurusform.py b/lib/taurus/qt/qtgui/panel/test/test_taurusform.py
index e20963c..641d037 100644
--- a/lib/taurus/qt/qtgui/panel/test/test_taurusform.py
+++ b/lib/taurus/qt/qtgui/panel/test/test_taurusform.py
@@ -1,9 +1,9 @@
 #!/usr/bin/env python
 #############################################################################
 ##
-## This file is part of Taurus, a Tango User Interface Library
+## This file is part of Taurus
 ##
-## http://www.tango-controls.org/static/taurus/latest/doc/html/index.html
+## http://taurus-scada.org
 ##
 ## Copyright 2011 CELLS / ALBA Synchrotron, Bellaterra, Spain
 ##
diff --git a/lib/taurus/qt/qtgui/panel/test/test_taurusvalue.py b/lib/taurus/qt/qtgui/panel/test/test_taurusvalue.py
index 0c26855..8a93bcc 100644
--- a/lib/taurus/qt/qtgui/panel/test/test_taurusvalue.py
+++ b/lib/taurus/qt/qtgui/panel/test/test_taurusvalue.py
@@ -2,9 +2,9 @@
 
 #############################################################################
 ##
-## This file is part of Taurus, a Tango User Interface Library
+## This file is part of Taurus
 ## 
-## http://www.tango-controls.org/static/taurus/latest/doc/html/index.html
+## http://taurus-scada.org
 ##
 ## Copyright 2011 CELLS / ALBA Synchrotron, Bellaterra, Spain
 ## 
diff --git a/lib/taurus/qt/qtgui/plot/__init__.py b/lib/taurus/qt/qtgui/plot/__init__.py
index 2c5d19e..f7b4795 100644
--- a/lib/taurus/qt/qtgui/plot/__init__.py
+++ b/lib/taurus/qt/qtgui/plot/__init__.py
@@ -2,9 +2,9 @@
 
 #############################################################################
 ##
-## This file is part of Taurus, a Tango User Interface Library
+## This file is part of Taurus
 ## 
-## http://www.tango-controls.org/static/taurus/latest/doc/html/index.html
+## http://taurus-scada.org
 ##
 ## Copyright 2011 CELLS / ALBA Synchrotron, Bellaterra, Spain
 ## 
diff --git a/lib/taurus/qt/qtgui/plot/arrayedit.py b/lib/taurus/qt/qtgui/plot/arrayedit.py
index 24d15aa..016d138 100644
--- a/lib/taurus/qt/qtgui/plot/arrayedit.py
+++ b/lib/taurus/qt/qtgui/plot/arrayedit.py
@@ -2,9 +2,9 @@
 
 #############################################################################
 ##
-## This file is part of Taurus, a Tango User Interface Library
+## This file is part of Taurus
 ## 
-## http://www.tango-controls.org/static/taurus/latest/doc/html/index.html
+## http://taurus-scada.org
 ##
 ## Copyright 2011 CELLS / ALBA Synchrotron, Bellaterra, Spain
 ## 
diff --git a/lib/taurus/qt/qtgui/plot/curveStatsDlg.py b/lib/taurus/qt/qtgui/plot/curveStatsDlg.py
index 2208dca..997a7f0 100644
--- a/lib/taurus/qt/qtgui/plot/curveStatsDlg.py
+++ b/lib/taurus/qt/qtgui/plot/curveStatsDlg.py
@@ -2,9 +2,9 @@
 
 #############################################################################
 ##
-## This file is part of Taurus, a Tango User Interface Library
+## This file is part of Taurus
 ## 
-## http://www.tango-controls.org/static/taurus/latest/doc/html/index.html
+## http://taurus-scada.org
 ##
 ## Copyright 2011 CELLS / ALBA Synchrotron, Bellaterra, Spain
 ## 
diff --git a/lib/taurus/qt/qtgui/plot/curveprops.py b/lib/taurus/qt/qtgui/plot/curveprops.py
index 2faa83b..91345ba 100644
--- a/lib/taurus/qt/qtgui/plot/curveprops.py
+++ b/lib/taurus/qt/qtgui/plot/curveprops.py
@@ -2,9 +2,9 @@
 
 #############################################################################
 ##
-## This file is part of Taurus, a Tango User Interface Library
+## This file is part of Taurus
 ## 
-## http://www.tango-controls.org/static/taurus/latest/doc/html/index.html
+## http://taurus-scada.org
 ##
 ## Copyright 2011 CELLS / ALBA Synchrotron, Bellaterra, Spain
 ## 
diff --git a/lib/taurus/qt/qtgui/plot/curvesAppearanceChooserDlg.py b/lib/taurus/qt/qtgui/plot/curvesAppearanceChooserDlg.py
index 106dccb..ebb043e 100644
--- a/lib/taurus/qt/qtgui/plot/curvesAppearanceChooserDlg.py
+++ b/lib/taurus/qt/qtgui/plot/curvesAppearanceChooserDlg.py
@@ -2,9 +2,9 @@
 
 #############################################################################
 ##
-## This file is part of Taurus, a Tango User Interface Library
+## This file is part of Taurus
 ## 
-## http://www.tango-controls.org/static/taurus/latest/doc/html/index.html
+## http://taurus-scada.org
 ##
 ## Copyright 2011 CELLS / ALBA Synchrotron, Bellaterra, Spain
 ## 
diff --git a/lib/taurus/qt/qtgui/plot/monitor.py b/lib/taurus/qt/qtgui/plot/monitor.py
index 2d4410d..343e8a9 100644
--- a/lib/taurus/qt/qtgui/plot/monitor.py
+++ b/lib/taurus/qt/qtgui/plot/monitor.py
@@ -2,9 +2,9 @@
 
 #############################################################################
 ##
-## This file is part of Taurus, a Tango User Interface Library
+## This file is part of Taurus
 ## 
-## http://www.tango-controls.org/static/taurus/latest/doc/html/index.html
+## http://taurus-scada.org
 ##
 ## Copyright 2011 CELLS / ALBA Synchrotron, Bellaterra, Spain
 ## 
diff --git a/lib/taurus/qt/qtgui/plot/qwtdialog.py b/lib/taurus/qt/qtgui/plot/qwtdialog.py
index c44f88d..4c1424a 100644
--- a/lib/taurus/qt/qtgui/plot/qwtdialog.py
+++ b/lib/taurus/qt/qtgui/plot/qwtdialog.py
@@ -2,9 +2,9 @@
 
 #############################################################################
 ##
-## This file is part of Taurus, a Tango User Interface Library
+## This file is part of Taurus
 ## 
-## http://www.tango-controls.org/static/taurus/latest/doc/html/index.html
+## http://taurus-scada.org
 ##
 ## Copyright 2011 CELLS / ALBA Synchrotron, Bellaterra, Spain
 ## 
@@ -148,7 +148,7 @@ class TaurusPlotConfigDialog(Qt.QDialog):
         #qwt QwtPlot.axis enum type to relate our GUI combo name and qwt axis name (enum type).
         axes = [self.ui.y1ModeComboBox, self.ui.y2ModeComboBox, self.ui.xModeComboBox]
         for axis in range(len(axes)):
-            scaleType = self.parent.axisScaleEngine(axis).transformation().type()
+            scaleType = self.parent.getAxisTransformationType(axis)
             if scaleType == Qwt5.QwtScaleTransformation.Linear:
                 axes[axis].setCurrentIndex(0)
             elif scaleType == Qwt5.QwtScaleTransformation.Log10:
diff --git a/lib/taurus/qt/qtgui/plot/qwtplot.py b/lib/taurus/qt/qtgui/plot/qwtplot.py
index 5800069..e7c4b7d 100644
--- a/lib/taurus/qt/qtgui/plot/qwtplot.py
+++ b/lib/taurus/qt/qtgui/plot/qwtplot.py
@@ -2,9 +2,9 @@
 
 #############################################################################
 ##
-## This file is part of Taurus, a Tango User Interface Library
+## This file is part of Taurus
 ## 
-## http://www.tango-controls.org/static/taurus/latest/doc/html/index.html
+## http://taurus-scada.org
 ##
 ## Copyright 2011 CELLS / ALBA Synchrotron, Bellaterra, Spain
 ## 
diff --git a/lib/taurus/qt/qtgui/plot/scales.py b/lib/taurus/qt/qtgui/plot/scales.py
index 046c590..36d085c 100644
--- a/lib/taurus/qt/qtgui/plot/scales.py
+++ b/lib/taurus/qt/qtgui/plot/scales.py
@@ -2,9 +2,9 @@
 
 #############################################################################
 ##
-## This file is part of Taurus, a Tango User Interface Library
+## This file is part of Taurus
 ## 
-## http://www.tango-controls.org/static/taurus/latest/doc/html/index.html
+## http://taurus-scada.org
 ##
 ## Copyright 2011 CELLS / ALBA Synchrotron, Bellaterra, Spain
 ## 
diff --git a/lib/taurus/qt/qtgui/plot/taurusarrayedit.py b/lib/taurus/qt/qtgui/plot/taurusarrayedit.py
index 3faac8a..cbc9c20 100644
--- a/lib/taurus/qt/qtgui/plot/taurusarrayedit.py
+++ b/lib/taurus/qt/qtgui/plot/taurusarrayedit.py
@@ -2,9 +2,9 @@
 
 #############################################################################
 ##
-## This file is part of Taurus, a Tango User Interface Library
+## This file is part of Taurus
 ## 
-## http://www.tango-controls.org/static/taurus/latest/doc/html/index.html
+## http://taurus-scada.org
 ##
 ## Copyright 2011 CELLS / ALBA Synchrotron, Bellaterra, Spain
 ## 
diff --git a/lib/taurus/qt/qtgui/plot/taurusplot.py b/lib/taurus/qt/qtgui/plot/taurusplot.py
index ab53298..9a1ddf1 100644
--- a/lib/taurus/qt/qtgui/plot/taurusplot.py
+++ b/lib/taurus/qt/qtgui/plot/taurusplot.py
@@ -2,9 +2,9 @@
 
 #############################################################################
 ##
-## This file is part of Taurus, a Tango User Interface Library
+## This file is part of Taurus
 ## 
-## http://www.tango-controls.org/static/taurus/latest/doc/html/index.html
+## http://taurus-scada.org
 ##
 ## Copyright 2011 CELLS / ALBA Synchrotron, Bellaterra, Spain
 ## 
@@ -67,13 +67,16 @@ class DummyLock(object):
 #from taurus.core.util.log import TraceIt, DebugIt, InfoIt, WarnIt
 
 
-DFT_CURVE_PENS = [Qt.QPen(Qt.Qt.red, 2),
-                 Qt.QPen(Qt.Qt.blue, 2),
-                 Qt.QPen(Qt.Qt.green, 2),
-                 Qt.QPen(Qt.Qt.magenta, 2),
-                 Qt.QPen(Qt.Qt.cyan, 2),
-                 Qt.QPen(Qt.Qt.yellow, 2),
-                 Qt.QPen(Qt.Qt.black, 2)]
+DFT_CURVE_PENS = [Qt.QPen(Qt.Qt.red),
+                 Qt.QPen(Qt.Qt.blue),
+                 Qt.QPen(Qt.Qt.green),
+                 Qt.QPen(Qt.Qt.magenta),
+                 Qt.QPen(Qt.Qt.cyan),
+                 Qt.QPen(Qt.Qt.yellow),
+                 Qt.QPen(Qt.Qt.black)]
+
+for __p in DFT_CURVE_PENS:
+    __p.setWidth(1) # TODO: we would like this to be 2, but bug #171 forces 1
 
 class TaurusZoomer(Qwt5.QwtPlotZoomer):
     '''A QwtPlotZoomer that displays the label assuming that X values are timestamps'''
@@ -668,11 +671,22 @@ class TaurusCurve(Qwt5.QwtPlotCurve, TaurusBaseComponent):
         if prop.sStyle is not None: s.setStyle(Qwt5.QwtSymbol.Style(prop.sStyle))
         if prop.sSize is not None: s.setSize(prop.sSize)
         if prop.sColor is not None:
-            s.brush().setColor(Qt.QColor(prop.sColor))
-            s.pen().setColor(s.brush().color()) #the symbol pen color is the same as the symbol filling
+            b = s.brush()
+            p = s.pen()
+            color = Qt.QColor(prop.sColor)
+            p.setColor(color)
+            b.setColor(color)
+            b.setStyle(Qt.Qt.NoBrush)
+            s.setBrush(b)
+            s.setPen(p)
         if prop.sFill is not None:
-            if prop.sFill: s.brush().setStyle(Qt.Qt.SolidPattern)
-            else: s.brush().setStyle(Qt.Qt.NoBrush)
+            b = s.brush()
+            if prop.sFill:
+                b.setStyle(Qt.Qt.SolidPattern)
+                s.setBrush(b)
+            else:
+                s.brush().setStyle(Qt.Qt.NoBrush)
+                s.setBrush(b)
         p = Qt.QPen(self.pen())
         if prop.lStyle is not None: p.setStyle(prop.lStyle)
         if prop.lWidth is not None: p.setWidth(prop.lWidth)
@@ -754,12 +768,12 @@ class TaurusCurve(Qwt5.QwtPlotCurve, TaurusBaseComponent):
         if self.isFilteredWhenLog():
             #filter out the nonpossitive elements if the scale is logarithmic
             if self.plot():
-                type_ = self.plot().axisScaleEngine(self.xAxis()).transformation().type()
+                type_ = self.plot().getAxisTransformationType(self.xAxis())
                 if type_ == Qwt5.QwtScaleTransformation.Log10:
                     x,y = numpy.array(x),numpy.array(y)
                     valid = x>0 #this is an array of bools representing valid entries
                     x , y = x[valid], y[valid]
-                type_ = self.plot().axisScaleEngine(self.yAxis()).transformation().type()
+                type_ = self.plot().getAxisTransformationType(self.yAxis())
                 if type_ == Qwt5.QwtScaleTransformation.Log10:
                     x,y = numpy.array(x),numpy.array(y)
                     valid = y>0 #this is an array of bools representing valid entries
@@ -986,12 +1000,15 @@ class TaurusPlot(Qwt5.QwtPlot, TaurusBaseWidget):
         self._curvePens = LoopList(DFT_CURVE_PENS)
         self._gridPen = Qt.QPen(Qt.Qt.gray, 1)
         self._supportedConfigVersions = ["tpc-1","tpc-1.1"] #the latest element of this list is considered the current version
+
 #        Logger.__init__(self)
 #        Qwt5.QwtPlot.__init__(self, parent)
 
         #dictionary for default axes naming
         self._axesnames = {Qwt5.QwtPlot.xBottom:'X',Qwt5.QwtPlot.xTop:'X2',
                            Qwt5.QwtPlot.yLeft:'Y1', Qwt5.QwtPlot.yRight:'Y2'}
+        # cache for the values of the axis transformation
+        self.__transformations = {}
 
         #Data Import Dialog (it will only be initialised if required)
         self.DataImportDlg=None
@@ -1212,6 +1229,29 @@ class TaurusPlot(Qwt5.QwtPlot, TaurusBaseWidget):
 #                    self.info('Dropped data is invalid (%s)'%repr(modelname))
 #                return
 
+    def getAxisTransformationType(self, axis):
+        """Retrieve the transformation type for a given axis (cached)
+
+        :param axis: (Qwt5.QwtPlot.Axis) the axis
+
+        :return: (Qwt5.QwtScaleTransformation.Type)
+
+        .. note:: this method helps to avoid a memory leak in Qwt (see
+                  http://sf.net/p/tauruslib/tickets/171 )
+        """
+        try:
+            return self.__transformations[axis]
+        except KeyError:
+            t =  self.axisScaleEngine(axis).transformation().type()
+            self.__transformations[axis] = t
+            return t
+
+    def setAxisScaleEngine(self, axis, scaleEngine):
+        """ reimplemented from :meth:`Qwt5.QwtPlot.setAxisScaleEngine` to store
+         a cache of the transformation type """
+        self.__transformations[axis] = scaleEngine.transformation().type()
+        return Qwt5.QwtPlot.setAxisScaleEngine(self, axis, scaleEngine)
+
     def getCurveTitle(self, curvename):
         '''return the current title associated to a given curve name
         
@@ -2139,9 +2179,9 @@ class TaurusPlot(Qwt5.QwtPlot, TaurusBaseWidget):
         y1Min, y1Max= self.getAxisScale(Qwt5.QwtPlot.yLeft)
         y2Min, y2Max= self.getAxisScale(Qwt5.QwtPlot.yRight)
         axesdict= {'xMin': xMin, 'xMax': xMax, 'y1Min': y1Min, 'y1Max': y1Max, 'y2Min': y2Min, 'y2Max': y2Max,
-                   'xMode': int(self.axisScaleEngine(Qwt5.QwtPlot.xBottom).transformation().type()),
-                   'y1Mode':int(self.axisScaleEngine(Qwt5.QwtPlot.yLeft).transformation().type()),
-                   'y2Mode':int(self.axisScaleEngine(Qwt5.QwtPlot.yRight).transformation().type()),
+                   'xMode': int(self.getAxisTransformationType(Qwt5.QwtPlot.xBottom)),
+                   'y1Mode':int(self.getAxisTransformationType(Qwt5.QwtPlot.yLeft)),
+                   'y2Mode':int(self.getAxisTransformationType(Qwt5.QwtPlot.yRight)),
                    'xDyn': self.getXDynScale(),
                    'xIsTime':self.getXIsTime()
                    }
@@ -2427,7 +2467,7 @@ class TaurusPlot(Qwt5.QwtPlot, TaurusBaseWidget):
         if not Qwt5.QwtPlot.axisValid(axis):
             self.error("TaurusPlot.setScale() invalid axis: " + axis)
         if scale is None:
-            currentType = self.axisScaleEngine(axis).transformation().type()
+            currentType = self.getAxisTransformationType(axis)
             if currentType == Qwt5.QwtScaleTransformation.Linear:
                 scale = Qwt5.QwtScaleTransformation.Log10
             elif  currentType == Qwt5.QwtScaleTransformation.Log10:
@@ -2535,7 +2575,8 @@ class TaurusPlot(Qwt5.QwtPlot, TaurusBaseWidget):
         if klass is None:
             from taurus.qt.qtgui.panel import QDataExportDialog
             klass = QDataExportDialog
-        dialog = klass(parent=self, datadict=frozendata)
+        dialog = klass(parent=self, datadict=frozendata, 
+                       sortedNames=self.getCurveNamesSorted())
         dialog.setXIsTime(self.getXIsTime())
         return dialog.exec_()
 
diff --git a/lib/taurus/qt/qtgui/plot/taurusplotconf.py b/lib/taurus/qt/qtgui/plot/taurusplotconf.py
index bb9b32a..f032c57 100644
--- a/lib/taurus/qt/qtgui/plot/taurusplotconf.py
+++ b/lib/taurus/qt/qtgui/plot/taurusplotconf.py
@@ -2,9 +2,9 @@
 
 #############################################################################
 ##
-## This file is part of Taurus, a Tango User Interface Library
+## This file is part of Taurus
 ## 
-## http://www.tango-controls.org/static/taurus/latest/doc/html/index.html
+## http://taurus-scada.org
 ##
 ## Copyright 2011 CELLS / ALBA Synchrotron, Bellaterra, Spain
 ## 
diff --git a/lib/taurus/qt/qtgui/plot/taurustrend.py b/lib/taurus/qt/qtgui/plot/taurustrend.py
index 718c6d0..c1fae42 100644
--- a/lib/taurus/qt/qtgui/plot/taurustrend.py
+++ b/lib/taurus/qt/qtgui/plot/taurustrend.py
@@ -2,9 +2,9 @@
 
 #############################################################################
 ##
-## This file is part of Taurus, a Tango User Interface Library
+## This file is part of Taurus
 ## 
-## http://www.tango-controls.org/static/taurus/latest/doc/html/index.html
+## http://taurus-scada.org
 ##
 ## Copyright 2011 CELLS / ALBA Synchrotron, Bellaterra, Spain
 ## 
diff --git a/lib/taurus/qt/qtgui/resource/__init__.py b/lib/taurus/qt/qtgui/resource/__init__.py
index d97aa8f..707b30d 100644
--- a/lib/taurus/qt/qtgui/resource/__init__.py
+++ b/lib/taurus/qt/qtgui/resource/__init__.py
@@ -2,9 +2,9 @@
 
 #############################################################################
 ##
-## This file is part of Taurus, a Tango User Interface Library
+## This file is part of Taurus
 ## 
-## http://www.tango-controls.org/static/taurus/latest/doc/html/index.html
+## http://taurus-scada.org
 ##
 ## Copyright 2011 CELLS / ALBA Synchrotron, Bellaterra, Spain
 ## 
diff --git a/lib/taurus/qt/qtgui/resource/taurus_resource_utils.py b/lib/taurus/qt/qtgui/resource/taurus_resource_utils.py
index e278886..9f7df3a 100644
--- a/lib/taurus/qt/qtgui/resource/taurus_resource_utils.py
+++ b/lib/taurus/qt/qtgui/resource/taurus_resource_utils.py
@@ -2,9 +2,9 @@
 
 #############################################################################
 ##
-## This file is part of Taurus, a Tango User Interface Library
+## This file is part of Taurus
 ## 
-## http://www.tango-controls.org/static/taurus/latest/doc/html/index.html
+## http://taurus-scada.org
 ##
 ## Copyright 2011 CELLS / ALBA Synchrotron, Bellaterra, Spain
 ## 
diff --git a/lib/taurus/qt/qtgui/style/__init__.py b/lib/taurus/qt/qtgui/style/__init__.py
index f2f5f2e..6467301 100644
--- a/lib/taurus/qt/qtgui/style/__init__.py
+++ b/lib/taurus/qt/qtgui/style/__init__.py
@@ -2,9 +2,9 @@
 
 #############################################################################
 ##
-## This file is part of Taurus, a Tango User Interface Library
+## This file is part of Taurus
 ## 
-## http://www.tango-controls.org/static/taurus/latest/doc/html/index.html
+## http://taurus-scada.org
 ##
 ## Copyright 2011 CELLS / ALBA Synchrotron, Bellaterra, Spain
 ## 
diff --git a/lib/taurus/qt/qtgui/style/nebula.py b/lib/taurus/qt/qtgui/style/nebula.py
index 346a892..c151675 100644
--- a/lib/taurus/qt/qtgui/style/nebula.py
+++ b/lib/taurus/qt/qtgui/style/nebula.py
@@ -2,9 +2,9 @@
 
 #############################################################################
 ##
-## This file is part of Taurus, a Tango User Interface Library
+## This file is part of Taurus
 ## 
-## http://www.tango-controls.org/static/taurus/latest/doc/html/index.html
+## http://taurus-scada.org
 ##
 ## Copyright 2011 CELLS / ALBA Synchrotron, Bellaterra, Spain
 ## 
diff --git a/lib/taurus/qt/qtgui/table/__init__.py b/lib/taurus/qt/qtgui/table/__init__.py
index 052e4b8..c9ef11e 100644
--- a/lib/taurus/qt/qtgui/table/__init__.py
+++ b/lib/taurus/qt/qtgui/table/__init__.py
@@ -2,9 +2,9 @@
 
 #############################################################################
 ##
-## This file is part of Taurus, a Tango User Interface Library
+## This file is part of Taurus
 ## 
-## http://www.tango-controls.org/static/taurus/latest/doc/html/index.html
+## http://taurus-scada.org
 ##
 ## Copyright 2011 CELLS / ALBA Synchrotron, Bellaterra, Spain
 ## 
diff --git a/lib/taurus/qt/qtgui/table/qdictionary.py b/lib/taurus/qt/qtgui/table/qdictionary.py
index 4bcaad7..ccf3c86 100644
--- a/lib/taurus/qt/qtgui/table/qdictionary.py
+++ b/lib/taurus/qt/qtgui/table/qdictionary.py
@@ -2,9 +2,9 @@
 
 #############################################################################
 ##
-## This file is part of Taurus, a Tango User Interface Library
+## This file is part of Taurus
 ##
-## http://www.tango-controls.org/static/taurus/latest/doc/html/index.html
+## http://taurus-scada.org
 ##
 ## Copyright 2011 CELLS / ALBA Synchrotron, Bellaterra, Spain
 ##
diff --git a/lib/taurus/qt/qtgui/table/qlogtable.py b/lib/taurus/qt/qtgui/table/qlogtable.py
index d2b20c2..56e4d2c 100644
--- a/lib/taurus/qt/qtgui/table/qlogtable.py
+++ b/lib/taurus/qt/qtgui/table/qlogtable.py
@@ -2,9 +2,9 @@
 
 #############################################################################
 ##
-## This file is part of Taurus, a Tango User Interface Library
+## This file is part of Taurus
 ##
-## http://www.tango-controls.org/static/taurus/latest/doc/html/index.html
+## http://taurus-scada.org
 ##
 ## Copyright 2011 CELLS / ALBA Synchrotron, Bellaterra, Spain
 ##
diff --git a/lib/taurus/qt/qtgui/table/qtable.py b/lib/taurus/qt/qtgui/table/qtable.py
index 3ee46f9..2e7437d 100644
--- a/lib/taurus/qt/qtgui/table/qtable.py
+++ b/lib/taurus/qt/qtgui/table/qtable.py
@@ -2,9 +2,9 @@
 
 #############################################################################
 ##
-## This file is part of Taurus, a Tango User Interface Library
+## This file is part of Taurus
 ##
-## http://www.tango-controls.org/static/taurus/latest/doc/html/index.html
+## http://taurus-scada.org
 ##
 ## Copyright 2011 CELLS / ALBA Synchrotron, Bellaterra, Spain
 ##
diff --git a/lib/taurus/qt/qtgui/table/taurusdbtable.py b/lib/taurus/qt/qtgui/table/taurusdbtable.py
index a596612..6bf8e3f 100644
--- a/lib/taurus/qt/qtgui/table/taurusdbtable.py
+++ b/lib/taurus/qt/qtgui/table/taurusdbtable.py
@@ -2,9 +2,9 @@
 
 #############################################################################
 ##
-## This file is part of Taurus, a Tango User Interface Library
+## This file is part of Taurus
 ## 
-## http://www.tango-controls.org/static/taurus/latest/doc/html/index.html
+## http://taurus-scada.org
 ##
 ## Copyright 2011 CELLS / ALBA Synchrotron, Bellaterra, Spain
 ## 
diff --git a/lib/taurus/qt/qtgui/table/taurusdevicepropertytable.py b/lib/taurus/qt/qtgui/table/taurusdevicepropertytable.py
index 417d1c1..9901ec3 100644
--- a/lib/taurus/qt/qtgui/table/taurusdevicepropertytable.py
+++ b/lib/taurus/qt/qtgui/table/taurusdevicepropertytable.py
@@ -2,9 +2,9 @@
 
 #############################################################################
 ##
-## This file is part of Taurus, a Tango User Interface Library
+## This file is part of Taurus
 ## 
-## http://www.tango-controls.org/static/taurus/latest/doc/html/index.html
+## http://taurus-scada.org
 ##
 ## Copyright 2011 CELLS / ALBA Synchrotron, Bellaterra, Spain
 ## 
diff --git a/lib/taurus/qt/qtgui/table/taurusgrid.py b/lib/taurus/qt/qtgui/table/taurusgrid.py
index 18ecfe6..5048dfa 100644
--- a/lib/taurus/qt/qtgui/table/taurusgrid.py
+++ b/lib/taurus/qt/qtgui/table/taurusgrid.py
@@ -2,9 +2,9 @@
 
 #############################################################################
 ##
-## This file is part of Taurus, a Tango User Interface Library
+## This file is part of Taurus
 ## 
-## http://www.tango-controls.org/static/taurus/latest/doc/html/index.html
+## http://taurus-scada.org
 ##
 ## Copyright 2011 CELLS / ALBA Synchrotron, Bellaterra, Spain
 ## 
diff --git a/lib/taurus/qt/qtgui/table/taurustable.py b/lib/taurus/qt/qtgui/table/taurustable.py
index ed85951..185b1db 100644
--- a/lib/taurus/qt/qtgui/table/taurustable.py
+++ b/lib/taurus/qt/qtgui/table/taurustable.py
@@ -2,9 +2,9 @@
 
 #############################################################################
 ##
-## This file is part of Taurus, a Tango User Interface Library
+## This file is part of Taurus
 ##
-## http://www.tango-controls.org/static/taurus/latest/doc/html/index.html
+## http://taurus-scada.org
 ##
 ## Copyright 2011 CELLS / ALBA Synchrotron, Bellaterra, Spain
 ##
diff --git a/lib/taurus/qt/qtgui/table/taurusvaluestable.py b/lib/taurus/qt/qtgui/table/taurusvaluestable.py
index e3950c0..ffcea9b 100644
--- a/lib/taurus/qt/qtgui/table/taurusvaluestable.py
+++ b/lib/taurus/qt/qtgui/table/taurusvaluestable.py
@@ -2,9 +2,9 @@
 
 #############################################################################
 ##
-## This file is part of Taurus, a Tango User Interface Library
+## This file is part of Taurus
 ## 
-## http://www.tango-controls.org/static/taurus/latest/doc/html/index.html
+## http://taurus-scada.org
 ##
 ## Copyright 2011 CELLS / ALBA Synchrotron, Bellaterra, Spain
 ## 
diff --git a/lib/taurus/qt/qtgui/table/taurusvaluestable_ro.py b/lib/taurus/qt/qtgui/table/taurusvaluestable_ro.py
index 5508fca..82a9d64 100644
--- a/lib/taurus/qt/qtgui/table/taurusvaluestable_ro.py
+++ b/lib/taurus/qt/qtgui/table/taurusvaluestable_ro.py
@@ -2,9 +2,9 @@
 
 #############################################################################
 ##
-## This file is part of Taurus, a Tango User Interface Library
+## This file is part of Taurus
 ## 
-## http://www.tango-controls.org/static/taurus/latest/doc/html/index.html
+## http://taurus-scada.org
 ##
 ## Copyright 2011 CELLS / ALBA Synchrotron, Bellaterra, Spain
 ## 
diff --git a/lib/taurus/qt/qtgui/taurusgui/PermanentCustomPanelsDlg.py b/lib/taurus/qt/qtgui/taurusgui/PermanentCustomPanelsDlg.py
index 41df27d..9eb692d 100644
--- a/lib/taurus/qt/qtgui/taurusgui/PermanentCustomPanelsDlg.py
+++ b/lib/taurus/qt/qtgui/taurusgui/PermanentCustomPanelsDlg.py
@@ -2,9 +2,9 @@
 
 #############################################################################
 ##
-## This file is part of Taurus, a Tango User Interface Library
+## This file is part of Taurus
 ## 
-## http://www.tango-controls.org/static/taurus/latest/doc/html/index.html
+## http://taurus-scada.org
 ##
 ## Copyright 2011 CELLS / ALBA Synchrotron, Bellaterra, Spain
 ## 
diff --git a/lib/taurus/qt/qtgui/taurusgui/__init__.py b/lib/taurus/qt/qtgui/taurusgui/__init__.py
index 2dbf96f..bf1f5fb 100644
--- a/lib/taurus/qt/qtgui/taurusgui/__init__.py
+++ b/lib/taurus/qt/qtgui/taurusgui/__init__.py
@@ -2,9 +2,9 @@
 
 #############################################################################
 ##
-## This file is part of Taurus, a Tango User Interface Library
+## This file is part of Taurus
 ## 
-## http://www.tango-controls.org/static/taurus/latest/doc/html/index.html
+## http://taurus-scada.org
 ##
 ## Copyright 2011 CELLS / ALBA Synchrotron, Bellaterra, Spain
 ## 
diff --git a/lib/taurus/qt/qtgui/taurusgui/appsettingswizard.py b/lib/taurus/qt/qtgui/taurusgui/appsettingswizard.py
index b40c52f..d97f36a 100644
--- a/lib/taurus/qt/qtgui/taurusgui/appsettingswizard.py
+++ b/lib/taurus/qt/qtgui/taurusgui/appsettingswizard.py
@@ -2,9 +2,9 @@
 
 #############################################################################
 ##
-## This file is part of Taurus, a Tango User Interface Library
+## This file is part of Taurus
 ##
-## http://www.tango-controls.org/static/taurus/latest/doc/html/index.html
+## http://taurus-scada.org
 ##
 ## Copyright 2011 CELLS / ALBA Synchrotron, Bellaterra, Spain
 ##
diff --git a/lib/taurus/qt/qtgui/taurusgui/conf/__init__.py b/lib/taurus/qt/qtgui/taurusgui/conf/__init__.py
index a18b97e..d833fbc 100644
--- a/lib/taurus/qt/qtgui/taurusgui/conf/__init__.py
+++ b/lib/taurus/qt/qtgui/taurusgui/conf/__init__.py
@@ -2,9 +2,9 @@
 
 #############################################################################
 ##
-## This file is part of Taurus, a Tango User Interface Library
+## This file is part of Taurus
 ## 
-## http://www.tango-controls.org/static/taurus/latest/doc/html/index.html
+## http://taurus-scada.org
 ##
 ## Copyright 2011 CELLS / ALBA Synchrotron, Bellaterra, Spain
 ## 
diff --git a/lib/taurus/qt/qtgui/taurusgui/conf/gui_noconf.py b/lib/taurus/qt/qtgui/taurusgui/conf/gui_noconf.py
index 2f8d7af..65af63b 100755
--- a/lib/taurus/qt/qtgui/taurusgui/conf/gui_noconf.py
+++ b/lib/taurus/qt/qtgui/taurusgui/conf/gui_noconf.py
@@ -2,9 +2,9 @@
 
 #############################################################################
 ##
-## This file is part of Taurus, a Tango User Interface Library
+## This file is part of Taurus
 ## 
-## http://www.tango-controls.org/static/taurus/latest/doc/html/index.html
+## http://taurus-scada.org
 ##
 ## Copyright 2011 CELLS / ALBA Synchrotron, Bellaterra, Spain
 ## 
diff --git a/lib/taurus/qt/qtgui/taurusgui/conf/gui_pureconf.py b/lib/taurus/qt/qtgui/taurusgui/conf/gui_pureconf.py
index f0b9173..7d0e2c3 100644
--- a/lib/taurus/qt/qtgui/taurusgui/conf/gui_pureconf.py
+++ b/lib/taurus/qt/qtgui/taurusgui/conf/gui_pureconf.py
@@ -2,9 +2,9 @@
 
 #############################################################################
 ##
-## This file is part of Taurus, a Tango User Interface Library
+## This file is part of Taurus
 ## 
-## http://www.tango-controls.org/static/taurus/latest/doc/html/index.html
+## http://taurus-scada.org
 ##
 ## Copyright 2011 CELLS / ALBA Synchrotron, Bellaterra, Spain
 ## 
diff --git a/lib/taurus/qt/qtgui/taurusgui/conf/gui_selfconf.py b/lib/taurus/qt/qtgui/taurusgui/conf/gui_selfconf.py
index 1d639cd..8e32451 100755
--- a/lib/taurus/qt/qtgui/taurusgui/conf/gui_selfconf.py
+++ b/lib/taurus/qt/qtgui/taurusgui/conf/gui_selfconf.py
@@ -2,9 +2,9 @@
 
 #############################################################################
 ##
-## This file is part of Taurus, a Tango User Interface Library
+## This file is part of Taurus
 ## 
-## http://www.tango-controls.org/static/taurus/latest/doc/html/index.html
+## http://taurus-scada.org
 ##
 ## Copyright 2011 CELLS / ALBA Synchrotron, Bellaterra, Spain
 ## 
diff --git a/lib/taurus/qt/qtgui/taurusgui/conf/tgconf_example01/__init__.py b/lib/taurus/qt/qtgui/taurusgui/conf/tgconf_example01/__init__.py
index 893bb8c..729d964 100644
--- a/lib/taurus/qt/qtgui/taurusgui/conf/tgconf_example01/__init__.py
+++ b/lib/taurus/qt/qtgui/taurusgui/conf/tgconf_example01/__init__.py
@@ -2,9 +2,9 @@
 
 #############################################################################
 ##
-## This file is part of Taurus, a Tango User Interface Library
+## This file is part of Taurus
 ## 
-## http://www.tango-controls.org/static/taurus/latest/doc/html/index.html
+## http://taurus-scada.org
 ##
 ## Copyright 2011 CELLS / ALBA Synchrotron, Bellaterra, Spain
 ## 
diff --git a/lib/taurus/qt/qtgui/taurusgui/conf/tgconf_example01/config.py b/lib/taurus/qt/qtgui/taurusgui/conf/tgconf_example01/config.py
index 99ab32e..e03d005 100644
--- a/lib/taurus/qt/qtgui/taurusgui/conf/tgconf_example01/config.py
+++ b/lib/taurus/qt/qtgui/taurusgui/conf/tgconf_example01/config.py
@@ -2,9 +2,9 @@
 
 #############################################################################
 ##
-## This file is part of Taurus, a Tango User Interface Library
+## This file is part of Taurus
 ## 
-## http://www.tango-controls.org/static/taurus/latest/doc/html/index.html
+## http://taurus-scada.org
 ##
 ## Copyright 2011 CELLS / ALBA Synchrotron, Bellaterra, Spain
 ## 
diff --git a/lib/taurus/qt/qtgui/taurusgui/conf/tgconf_macrogui/__init__.py b/lib/taurus/qt/qtgui/taurusgui/conf/tgconf_macrogui/__init__.py
index 893bb8c..729d964 100644
--- a/lib/taurus/qt/qtgui/taurusgui/conf/tgconf_macrogui/__init__.py
+++ b/lib/taurus/qt/qtgui/taurusgui/conf/tgconf_macrogui/__init__.py
@@ -2,9 +2,9 @@
 
 #############################################################################
 ##
-## This file is part of Taurus, a Tango User Interface Library
+## This file is part of Taurus
 ## 
-## http://www.tango-controls.org/static/taurus/latest/doc/html/index.html
+## http://taurus-scada.org
 ##
 ## Copyright 2011 CELLS / ALBA Synchrotron, Bellaterra, Spain
 ## 
diff --git a/lib/taurus/qt/qtgui/taurusgui/conf/tgconf_macrogui/config.py b/lib/taurus/qt/qtgui/taurusgui/conf/tgconf_macrogui/config.py
index 006c81e..e7dee2b 100644
--- a/lib/taurus/qt/qtgui/taurusgui/conf/tgconf_macrogui/config.py
+++ b/lib/taurus/qt/qtgui/taurusgui/conf/tgconf_macrogui/config.py
@@ -2,9 +2,9 @@
 
 #############################################################################
 ##
-## This file is part of Taurus, a Tango User Interface Library
+## This file is part of Taurus
 ## 
-## http://www.tango-controls.org/static/taurus/latest/doc/html/index.html
+## http://taurus-scada.org
 ##
 ## Copyright 2011 CELLS / ALBA Synchrotron, Bellaterra, Spain
 ## 
diff --git a/lib/taurus/qt/qtgui/taurusgui/macrolistener.py b/lib/taurus/qt/qtgui/taurusgui/macrolistener.py
index eb02a97..b4bcb09 100644
--- a/lib/taurus/qt/qtgui/taurusgui/macrolistener.py
+++ b/lib/taurus/qt/qtgui/taurusgui/macrolistener.py
@@ -2,9 +2,9 @@
 
 #############################################################################
 ##
-## This file is part of Taurus, a Tango User Interface Library
+## This file is part of Taurus
 ##
-## http://www.tango-controls.org/static/taurus/latest/doc/html/index.html
+## http://taurus-scada.org
 ##
 ## Copyright 2011 CELLS / ALBA Synchrotron, Bellaterra, Spain
 ##
diff --git a/lib/taurus/qt/qtgui/taurusgui/paneldescriptionwizard.py b/lib/taurus/qt/qtgui/taurusgui/paneldescriptionwizard.py
index 3129504..607b5c1 100644
--- a/lib/taurus/qt/qtgui/taurusgui/paneldescriptionwizard.py
+++ b/lib/taurus/qt/qtgui/taurusgui/paneldescriptionwizard.py
@@ -2,9 +2,9 @@
 
 #############################################################################
 ##
-## This file is part of Taurus, a Tango User Interface Library
+## This file is part of Taurus
 ## 
-## http://www.tango-controls.org/static/taurus/latest/doc/html/index.html
+## http://taurus-scada.org
 ##
 ## Copyright 2011 CELLS / ALBA Synchrotron, Bellaterra, Spain
 ## 
diff --git a/lib/taurus/qt/qtgui/taurusgui/taurusgui.py b/lib/taurus/qt/qtgui/taurusgui/taurusgui.py
index d3fefbd..406a397 100644
--- a/lib/taurus/qt/qtgui/taurusgui/taurusgui.py
+++ b/lib/taurus/qt/qtgui/taurusgui/taurusgui.py
@@ -2,9 +2,9 @@
 
 #############################################################################
 ##
-## This file is part of Taurus, a Tango User Interface Library
+## This file is part of Taurus
 ##
-## http://www.tango-controls.org/static/taurus/latest/doc/html/index.html
+## http://taurus-scada.org
 ##
 ## Copyright 2011 CELLS / ALBA Synchrotron, Bellaterra, Spain
 ##
@@ -46,10 +46,13 @@ from taurus.qt.qtcore.communication import SharedDataManager
 from taurus.qt.qtgui.util import TaurusWidgetFactory
 from taurus.qt.qtgui.base import TaurusBaseWidget, TaurusBaseComponent
 from taurus.qt.qtgui.container import TaurusMainWindow
-from taurus.qt.qtgui.taurusgui.utils import ExternalApp, PanelDescription, \
-    ToolBarDescription, AppletDescription
+from taurus.qt.qtgui.taurusgui.utils import (ExternalApp, PanelDescription,
+                                             ToolBarDescription,
+                                             AppletDescription)
+from taurus.qt.qtgui.taurusgui.appsettingswizard import ExternalAppEditor
 from taurus.qt.qtgui.panel import QDoubleListDlg
 from taurus.qt.qtgui.util.ui import UILoadable
+from taurus.qt.qtgui.taurusgui.utils import ExternalAppAction
 
 
 @UILoadable(with_ui='ui')
@@ -197,6 +200,10 @@ class DockWidgetPanel(Qt.QDockWidget, TaurusBaseWidget):
             configdict['widget'] = self.widget().createConfig()
         return configdict
 
+    def closeEvent(self, event):
+        Qt.QDockWidget.closeEvent(self, event)      
+        TaurusBaseWidget.closeEvent(self, event)
+
 
 class TaurusGui(TaurusMainWindow):
     '''
@@ -268,11 +275,18 @@ class TaurusGui(TaurusMainWindow):
             self.defaultConfigRecursionDepth = configRecursionDepth
 
         self.__panels = {}
+        self.__external_app = {}
+        self.__external_app_actions = {}
+        self._external_app_names = []
+        self.__permanent_ext_apps = []
         self.__synoptics = []
         self.__instrumentToPanelMap = {}
         self.__panelToInstrumentMap = {}
         self.setDockNestingEnabled(True)
 
+        self.registerConfigProperty(self._getPermanentExternalApps,
+                                    self._setPermanentExternalApps,
+                                    'permanentexternalapps')
         self.registerConfigProperty(self._getPermanentCustomPanels, self._setPermanentCustomPanels, 'permanentCustomPanels')
         self.registerConfigProperty(self.getAllInstrumentAssociations, self.setAllInstrumentAssociations, 'instrumentAssociation')
 
@@ -283,12 +297,12 @@ class TaurusGui(TaurusMainWindow):
         Qt.qApp.SDM = SharedDataManager(self)
 
         self.__initPanelsMenu()
-        self.__initViewMenu()
-        self.__initPanelsToolBar()
         self.__initQuickAccessToolBar()
         self.__initJorgBar()
         self.__initSharedDataConnections()
         self.__initToolsMenu()
+        self.__initViewMenu()
+        self.__initPanelsToolBar()
 
         self.loadConfiguration(confname)
 
@@ -314,6 +328,18 @@ class TaurusGui(TaurusMainWindow):
         except:
             pass
         TaurusMainWindow.closeEvent(self, event)
+        for n, panel in self.__panels.items():
+            panel.closeEvent(event)
+            panel.widget().closeEvent(event)
+            if not event.isAccepted():
+                result = Qt.QMessageBox.question(
+                    self, 'Closing error',
+                    "Panel '%s' cannot be closed. Proceed closing?" % n,
+                    Qt.QMessageBox.Yes | Qt.QMessageBox.No)
+                if result == Qt.QMessageBox.Yes:
+                    event.accept()
+                else:
+                    break
 
     def __updatePanelsMenu(self):
         '''dynamically fill the panels menus'''
@@ -390,9 +416,77 @@ class TaurusGui(TaurusMainWindow):
     def __initToolsMenu(self):
         if self.toolsMenu is None:
             self.toolsMenu = Qt.QMenu("Tools")
-        self.toolsMenu.addAction(getIcon(":/apps/preferences-system-session.svg"), "manage instrument-panel associations", self.onShowAssociationDialog)
-        self.toolsMenu.addAction(getThemeIcon("document-save"), "Export current Panel configuration to XML", self.onExportCurrentPanelConfiguration)
-        self.toolsMenu.addAction(getIcon(":/actions/data-transfer.svg"), "Show Shared Data Manager connections", self.showSDMInfo)
+        tm = self.toolsMenu
+        tm.addAction(getIcon(":/apps/preferences-system-session.svg"), "manage instrument-panel associations", self.onShowAssociationDialog)
+        tm.addAction(getThemeIcon("document-save"), "Export current Panel configuration to XML", self.onExportCurrentPanelConfiguration)
+        tm.addAction(getIcon(":/actions/data-transfer.svg"), "Show Shared Data Manager connections", self.showSDMInfo)
+
+        # tools->external apps submenu
+        self.addExternalApplicationAction = self.externalAppsMenu.addAction(
+            getThemeIcon('list-add'),
+            'Add external application launcher...',
+            self.createExternalApp)
+        self.removeExternalApplicationAction = self.externalAppsMenu.addAction(
+            getThemeIcon('list-remove'),
+            'Remove external appication launcher...',
+            self.removeExternalApp)
+        self.externalAppsMenu.addSeparator()
+
+    def createExternalApp(self):
+        '''Add a new external application on execution time'''
+        app_editor = ExternalAppEditor(self)
+        name, xml, ok = app_editor.getDialog()
+        if name in self._external_app_names:
+            msg = ('The "%s" external application exists in your GUI.'
+                   ' If you want to create a new one, '
+                   'please use other text label' % name)
+            taurus.warning(msg)
+            return
+
+        if ok:
+            extapp = ExternalApp.fromXml(xml)
+            action = extapp.getAction()
+            action_name = str(action.text())
+            self.__external_app[action_name] = extapp
+            self._addExternalAppLauncher(name, action)
+
+    def _addExternalAppLauncher(self, name, action):
+            action_name = str(action.text())
+            self.__external_app_actions[action_name] = action
+            self.addExternalAppLauncher(action)
+            self._external_app_names.append(name)
+
+    def removeExternalApp(self, name=None):
+        '''Remove the given external application from the GUI.
+
+        :param name: (str or None) the name of the external application to be
+                     removed
+                     If None given, the user will be prompted
+        '''
+        apps = self.__external_app.keys() + self.__permanent_ext_apps
+        if name is None:
+            items = sorted(apps)
+            msg1 = "Remove External application"
+            msg2 = ("External application to be removed "
+                    "(only custom external applications can be removed).")
+            name, ok = Qt.QInputDialog.getItem (self, msg1, msg2, items, 0,
+                                                False)
+            if not ok:
+                return
+        name = unicode(name)
+        if name not in apps:
+            msg = ('Cannot remove the external application "%s"'
+                   ' (not found)' % name)
+            self.debug(msg)
+            return
+        if name in self.__external_app.keys():
+            self.__external_app.pop(name)
+        else:
+            self.__permanent_ext_apps.remove(name)
+        action = self.__external_app_actions.pop(name)
+        self._external_app_names.remove(name)
+        self.deleteExternalAppLauncher(action)
+        self.debug('External application "%s" removed' % name)
 
     def setCustomWidgetMap(self, map):
         '''
@@ -423,7 +517,9 @@ class TaurusGui(TaurusMainWindow):
     def createConfig(self, *args, **kwargs):
         '''reimplemented from TaurusMainWindow.createConfig'''
         self.updatePermanentCustomPanels(showAlways=False)
-        return TaurusMainWindow.createConfig(self, *args, **kwargs)
+        self.updatePermanentExternalApplications(showAlways=False)
+        cfg = TaurusMainWindow.createConfig(self, *args, **kwargs)
+        return cfg
 
     def removePanel(self, name=None):
         ''' remove the given panel from the GUI.
@@ -544,6 +640,22 @@ class TaurusGui(TaurusMainWindow):
         '''
         return copy.deepcopy(self.__panels.keys())
 
+    def _setPermanentExternalApps(self, permExternalApps):
+        '''creates empty panels for restoring custom panels.
+
+        :param permCustomPanels: (list<str>) list of names of custom panels
+        '''
+        #first create the panels if they don't actually exist
+        for name in permExternalApps:
+            if name not in self._external_app_names:
+                # create empty action
+                self.__permanent_ext_apps.append(name)
+                action = ExternalAppAction('', name)
+                self._addExternalAppLauncher(name, action)
+
+    def _getPermanentExternalApps(self):
+        return self.__permanent_ext_apps
+
     def _setPermanentCustomPanels(self, permCustomPanels):
         '''creates empty panels for restoring custom panels.
         
@@ -592,6 +704,36 @@ class TaurusGui(TaurusMainWindow):
                     self.__panels[name].setPermanent(False)
                     self.unregisterConfigurableItem(name, raiseOnError=False)
 
+    def updatePermanentExternalApplications(self, showAlways=True):
+        '''
+        Shows a dialog for selecting which new externals applications
+        should be permanently stored in the configuration.
+
+        :param showAlways: (bool) forces showing the dialog
+        '''
+        #check if there are some newly created external applications that may
+        # be made permanent
+        #permanet_ext_app = list(self._external_app_names)
+        if len(self.__external_app) > 0 or showAlways:
+            msg = 'Select which of the external applications should be stored'
+            dlg = QDoubleListDlg(winTitle='Stored external applications',
+                                 mainLabel=msg,
+                                 label1='Temporary (to be discarded)',
+                                 label2='Permanent (to be stored)',
+                                 list1=self.__external_app.keys(),
+                                 list2=self.__permanent_ext_apps)
+            result = dlg.exec_()
+            if result == Qt.QDialog.Accepted:
+                # update the temporally external applications
+                for name in dlg.getAll2():
+                    self.__permanent_ext_apps.append(str(name))
+                    if name in self.__external_app:
+                        self.__external_app.pop(str(name))
+
+                for name in dlg.getAll1():
+                    self.unregisterConfigurableItem("_extApp[%s]" % str(name),
+                                                    raiseOnError=False)
+
     def createCustomPanel(self, paneldesc=None):
         '''
         Creates a panel from a Panel Description and sets it as "custom panel".
@@ -1030,6 +1172,7 @@ class TaurusGui(TaurusMainWindow):
                         EXTERNAL_APPS.append(ea)
 
         for a in EXTERNAL_APPS:
+            self._external_app_names.append(str(a.getAction().text()))
             self.addExternalAppLauncher(a.getAction())
 
 
@@ -1057,7 +1200,11 @@ class TaurusGui(TaurusMainWindow):
         for panel in self.__panels.values():
             panel.toggleViewAction().setEnabled(modifiable)
             panel.setFeatures(dwfeat)
-        for action in (self.newPanelAction, self.showAllPanelsAction, self.hideAllPanelsAction):
+        for action in (self.newPanelAction, self.showAllPanelsAction,
+                       self.hideAllPanelsAction,
+                       self.addExternalApplicationAction,
+                       self.removeExternalApplicationAction,
+                       ):
             action.setEnabled(modifiable)
 
         self._lockviewAction.setChecked(not modifiable)
diff --git a/lib/taurus/qt/qtgui/taurusgui/utils.py b/lib/taurus/qt/qtgui/taurusgui/utils.py
index fcb2c0b..44464a7 100644
--- a/lib/taurus/qt/qtgui/taurusgui/utils.py
+++ b/lib/taurus/qt/qtgui/taurusgui/utils.py
@@ -2,9 +2,9 @@
 
 #############################################################################
 ##
-## This file is part of Taurus, a Tango User Interface Library
+## This file is part of Taurus
 ## 
-## http://www.tango-controls.org/static/taurus/latest/doc/html/index.html
+## http://taurus-scada.org
 ##
 ## Copyright 2011 CELLS / ALBA Synchrotron, Bellaterra, Spain
 ## 
diff --git a/lib/taurus/qt/qtgui/test/__init__.py b/lib/taurus/qt/qtgui/test/__init__.py
index 6c69e43..a50aaed 100644
--- a/lib/taurus/qt/qtgui/test/__init__.py
+++ b/lib/taurus/qt/qtgui/test/__init__.py
@@ -2,9 +2,9 @@
 
 #############################################################################
 ##
-## This file is part of Taurus, a Tango User Interface Library
+## This file is part of Taurus
 ##
-## http://www.tango-controls.org/static/taurus/latest/doc/html/index.html
+## http://taurus-scada.org
 ##
 ## Copyright 2011 CELLS / ALBA Synchrotron, Bellaterra, Spain
 ##
diff --git a/lib/taurus/qt/qtgui/test/base.py b/lib/taurus/qt/qtgui/test/base.py
index 3c01885..06c45f5 100644
--- a/lib/taurus/qt/qtgui/test/base.py
+++ b/lib/taurus/qt/qtgui/test/base.py
@@ -1,9 +1,9 @@
 #!/usr/bin/env python
 #############################################################################
 ##
-## This file is part of Taurus, a Tango User Interface Library
+## This file is part of Taurus
 ##
-## http://www.tango-controls.org/static/taurus/latest/doc/html/index.html
+## http://taurus-scada.org
 ##
 ## Copyright 2011 CELLS / ALBA Synchrotron, Bellaterra, Spain
 ##
@@ -58,18 +58,15 @@ class BaseWidgetTestCase(object):
           - The widget must be instantiated
         
         """
-        if self._klass is None:
-            self.skipTest('klass is None')
-            return
-
         unittest.TestCase.setUp(self)
         
         app = TaurusApplication.instance()
         if app is None:
             app = TaurusApplication([])
         self._app = app
-
-        self._widget = self._klass(*self.initargs, **self.initkwargs)
+        
+        if self._klass is not None:
+            self._widget = self._klass(*self.initargs, **self.initkwargs)
 
 
 @skipUnlessGui()
diff --git a/lib/taurus/qt/qtgui/tree/__init__.py b/lib/taurus/qt/qtgui/tree/__init__.py
index 4779c0b..93576b1 100644
--- a/lib/taurus/qt/qtgui/tree/__init__.py
+++ b/lib/taurus/qt/qtgui/tree/__init__.py
@@ -2,9 +2,9 @@
 
 #############################################################################
 ##
-## This file is part of Taurus, a Tango User Interface Library
+## This file is part of Taurus
 ## 
-## http://www.tango-controls.org/static/taurus/latest/doc/html/index.html
+## http://taurus-scada.org
 ##
 ## Copyright 2011 CELLS / ALBA Synchrotron, Bellaterra, Spain
 ## 
diff --git a/lib/taurus/qt/qtgui/tree/qtree.py b/lib/taurus/qt/qtgui/tree/qtree.py
index d50cddd..603d04d 100644
--- a/lib/taurus/qt/qtgui/tree/qtree.py
+++ b/lib/taurus/qt/qtgui/tree/qtree.py
@@ -2,9 +2,9 @@
 
 #############################################################################
 ##
-## This file is part of Taurus, a Tango User Interface Library
+## This file is part of Taurus
 ##
-## http://www.tango-controls.org/static/taurus/latest/doc/html/index.html
+## http://taurus-scada.org
 ##
 ## Copyright 2011 CELLS / ALBA Synchrotron, Bellaterra, Spain
 ##
diff --git a/lib/taurus/qt/qtgui/tree/taurusdbtree.py b/lib/taurus/qt/qtgui/tree/taurusdbtree.py
index ff35f39..eb903de 100644
--- a/lib/taurus/qt/qtgui/tree/taurusdbtree.py
+++ b/lib/taurus/qt/qtgui/tree/taurusdbtree.py
@@ -2,9 +2,9 @@
 
 #############################################################################
 ##
-## This file is part of Taurus, a Tango User Interface Library
+## This file is part of Taurus
 ## 
-## http://www.tango-controls.org/static/taurus/latest/doc/html/index.html
+## http://taurus-scada.org
 ##
 ## Copyright 2011 CELLS / ALBA Synchrotron, Bellaterra, Spain
 ## 
diff --git a/lib/taurus/qt/qtgui/tree/taurusdevicetree.py b/lib/taurus/qt/qtgui/tree/taurusdevicetree.py
index c00ef68..7f18130 100644
--- a/lib/taurus/qt/qtgui/tree/taurusdevicetree.py
+++ b/lib/taurus/qt/qtgui/tree/taurusdevicetree.py
@@ -2,9 +2,9 @@
 
 #############################################################################
 ##
-## This file is part of Taurus, a Tango User Interface Library
+## This file is part of Taurus
 ## 
-## http://www.tango-controls.org/static/taurus/latest/doc/html/index.html
+## http://taurus-scada.org
 ##
 ## Copyright 2011 CELLS / ALBA Synchrotron, Bellaterra, Spain
 ## 
diff --git a/lib/taurus/qt/qtgui/tree/taurustree.py b/lib/taurus/qt/qtgui/tree/taurustree.py
index 1b1b112..8697233 100644
--- a/lib/taurus/qt/qtgui/tree/taurustree.py
+++ b/lib/taurus/qt/qtgui/tree/taurustree.py
@@ -2,9 +2,9 @@
 
 #############################################################################
 ##
-## This file is part of Taurus, a Tango User Interface Library
+## This file is part of Taurus
 ## 
-## http://www.tango-controls.org/static/taurus/latest/doc/html/index.html
+## http://taurus-scada.org
 ##
 ## Copyright 2011 CELLS / ALBA Synchrotron, Bellaterra, Spain
 ## 
diff --git a/lib/taurus/qt/qtgui/util/__init__.py b/lib/taurus/qt/qtgui/util/__init__.py
index cc1d7b2..44c8730 100644
--- a/lib/taurus/qt/qtgui/util/__init__.py
+++ b/lib/taurus/qt/qtgui/util/__init__.py
@@ -2,9 +2,9 @@
 
 #############################################################################
 ##
-## This file is part of Taurus, a Tango User Interface Library
+## This file is part of Taurus
 ## 
-## http://www.tango-controls.org/static/taurus/latest/doc/html/index.html
+## http://taurus-scada.org
 ##
 ## Copyright 2011 CELLS / ALBA Synchrotron, Bellaterra, Spain
 ## 
diff --git a/lib/taurus/qt/qtgui/util/qdraganddropdebug.py b/lib/taurus/qt/qtgui/util/qdraganddropdebug.py
index cbf1a12..c767e01 100644
--- a/lib/taurus/qt/qtgui/util/qdraganddropdebug.py
+++ b/lib/taurus/qt/qtgui/util/qdraganddropdebug.py
@@ -2,9 +2,9 @@
 
 #############################################################################
 ##
-## This file is part of Taurus, a Tango User Interface Library
+## This file is part of Taurus
 ## 
-## http://www.tango-controls.org/static/taurus/latest/doc/html/index.html
+## http://taurus-scada.org
 ##
 ## Copyright 2011 CELLS / ALBA Synchrotron, Bellaterra, Spain
 ## 
diff --git a/lib/taurus/qt/qtgui/util/taurusaction.py b/lib/taurus/qt/qtgui/util/taurusaction.py
index c61359c..68255f4 100644
--- a/lib/taurus/qt/qtgui/util/taurusaction.py
+++ b/lib/taurus/qt/qtgui/util/taurusaction.py
@@ -2,9 +2,9 @@
 
 #############################################################################
 ##
-## This file is part of Taurus, a Tango User Interface Library
+## This file is part of Taurus
 ## 
-## http://www.tango-controls.org/static/taurus/latest/doc/html/index.html
+## http://taurus-scada.org
 ##
 ## Copyright 2011 CELLS / ALBA Synchrotron, Bellaterra, Spain
 ## 
@@ -74,7 +74,7 @@ class ExternalAppAction(Qt.QAction, BaseConfigurableClass):
         self.setToolTip("Launches %s (external application)"%text)
         self.registerConfigProperty(self.cmdArgs, self.setCmdArgs, 'cmdArgs')
     
-    def setCmdArgs(self, cmdargs):
+    def setCmdArgs(self, cmdargs, emitsignal=True):
         '''Sets the command args for executing this external application.
         
         It emits the "cmdArgsChanged" signal with the new cmdArgs list 
@@ -88,7 +88,8 @@ class ExternalAppAction(Qt.QAction, BaseConfigurableClass):
             import shlex
             cmdargs = shlex.split(str(cmdargs))
         self.__cmdargs = cmdargs
-        self.emit(Qt.SIGNAL("cmdArgsChanged"), self.__cmdargs)
+        if emitsignal:
+            self.emit(Qt.SIGNAL("cmdArgsChanged"), self.__cmdargs)
         
     def cmdArgs(self):
         return self.__cmdargs
diff --git a/lib/taurus/qt/qtgui/util/taurusactionfactory.py b/lib/taurus/qt/qtgui/util/taurusactionfactory.py
index 686d98d..53ced98 100644
--- a/lib/taurus/qt/qtgui/util/taurusactionfactory.py
+++ b/lib/taurus/qt/qtgui/util/taurusactionfactory.py
@@ -2,9 +2,9 @@
 
 #############################################################################
 ##
-## This file is part of Taurus, a Tango User Interface Library
+## This file is part of Taurus
 ## 
-## http://www.tango-controls.org/static/taurus/latest/doc/html/index.html
+## http://taurus-scada.org
 ##
 ## Copyright 2011 CELLS / ALBA Synchrotron, Bellaterra, Spain
 ## 
diff --git a/lib/taurus/qt/qtgui/util/tauruscolor.py b/lib/taurus/qt/qtgui/util/tauruscolor.py
index fd2a2eb..eb450ef 100644
--- a/lib/taurus/qt/qtgui/util/tauruscolor.py
+++ b/lib/taurus/qt/qtgui/util/tauruscolor.py
@@ -2,9 +2,9 @@
 
 #############################################################################
 ##
-## This file is part of Taurus, a Tango User Interface Library
+## This file is part of Taurus
 ## 
-## http://www.tango-controls.org/static/taurus/latest/doc/html/index.html
+## http://taurus-scada.org
 ##
 ## Copyright 2011 CELLS / ALBA Synchrotron, Bellaterra, Spain
 ## 
diff --git a/lib/taurus/qt/qtgui/util/taurusropepatch.py b/lib/taurus/qt/qtgui/util/taurusropepatch.py
index d19dd4e..4c7a429 100644
--- a/lib/taurus/qt/qtgui/util/taurusropepatch.py
+++ b/lib/taurus/qt/qtgui/util/taurusropepatch.py
@@ -2,9 +2,9 @@
 
 #############################################################################
 ##
-## This file is part of Taurus, a Tango User Interface Library
+## This file is part of Taurus
 ## 
-## http://www.tango-controls.org/static/taurus/latest/doc/html/index.html
+## http://taurus-scada.org
 ##
 ## Copyright 2011 CELLS / ALBA Synchrotron, Bellaterra, Spain
 ## 
diff --git a/lib/taurus/qt/qtgui/util/taurusscreenshot.py b/lib/taurus/qt/qtgui/util/taurusscreenshot.py
index 0d8e96e..8dea6e6 100644
--- a/lib/taurus/qt/qtgui/util/taurusscreenshot.py
+++ b/lib/taurus/qt/qtgui/util/taurusscreenshot.py
@@ -2,9 +2,9 @@
 
 #############################################################################
 ##
-## This file is part of Taurus, a Tango User Interface Library
+## This file is part of Taurus
 ## 
-## http://www.tango-controls.org/static/taurus/latest/doc/html/index.html
+## http://taurus-scada.org
 ##
 ## Copyright 2011 CELLS / ALBA Synchrotron, Bellaterra, Spain
 ## 
diff --git a/lib/taurus/qt/qtgui/util/tauruswidgetfactory.py b/lib/taurus/qt/qtgui/util/tauruswidgetfactory.py
index 6ec4822..8a45c5f 100644
--- a/lib/taurus/qt/qtgui/util/tauruswidgetfactory.py
+++ b/lib/taurus/qt/qtgui/util/tauruswidgetfactory.py
@@ -2,9 +2,9 @@
 
 #############################################################################
 ##
-## This file is part of Taurus, a Tango User Interface Library
+## This file is part of Taurus
 ## 
-## http://www.tango-controls.org/static/taurus/latest/doc/html/index.html
+## http://taurus-scada.org
 ##
 ## Copyright 2011 CELLS / ALBA Synchrotron, Bellaterra, Spain
 ## 
diff --git a/lib/taurus/qt/qtgui/util/tauruswidgettree.py b/lib/taurus/qt/qtgui/util/tauruswidgettree.py
index f451c35..dbaecc4 100644
--- a/lib/taurus/qt/qtgui/util/tauruswidgettree.py
+++ b/lib/taurus/qt/qtgui/util/tauruswidgettree.py
@@ -2,9 +2,9 @@
 
 #############################################################################
 ##
-## This file is part of Taurus, a Tango User Interface Library
+## This file is part of Taurus
 ## 
-## http://www.tango-controls.org/static/taurus/latest/doc/html/index.html
+## http://taurus-scada.org
 ##
 ## Copyright 2011 CELLS / ALBA Synchrotron, Bellaterra, Spain
 ## 
diff --git a/lib/taurus/qt/qtgui/util/test/__init__.py b/lib/taurus/qt/qtgui/util/test/__init__.py
index d36d30e..bfa1d38 100644
--- a/lib/taurus/qt/qtgui/util/test/__init__.py
+++ b/lib/taurus/qt/qtgui/util/test/__init__.py
@@ -2,23 +2,25 @@
 
 #############################################################################
 ##
-## This file is part of Taurus, a Tango User Interface Library
-##
-## http://www.tango-controls.org/static/taurus/latest/doc/html/index.html
+## This file is part of Taurus
+## 
+## http://taurus-scada.org
 ##
 ## Copyright 2011 CELLS / ALBA Synchrotron, Bellaterra, Spain
-##
+## 
 ## Taurus is free software: you can redistribute it and/or modify
 ## it under the terms of the GNU Lesser General Public License as published by
 ## the Free Software Foundation, either version 3 of the License, or
 ## (at your option) any later version.
-##
+## 
 ## Taurus is distributed in the hope that it will be useful,
 ## but WITHOUT ANY WARRANTY; without even the implied warranty of
 ## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 ## GNU Lesser General Public License for more details.
-##
+## 
 ## You should have received a copy of the GNU Lesser General Public License
 ## along with Taurus.  If not, see <http://www.gnu.org/licenses/>.
 ##
 #############################################################################
+
+"""tests for taurus.qt.qtgui.util"""
diff --git a/lib/taurus/qt/qtgui/util/test/test_ui/__init__.py b/lib/taurus/qt/qtgui/util/test/test_ui/__init__.py
index bd93378..c8c1e55 100644
--- a/lib/taurus/qt/qtgui/util/test/test_ui/__init__.py
+++ b/lib/taurus/qt/qtgui/util/test/test_ui/__init__.py
@@ -2,9 +2,9 @@
 
 #############################################################################
 ##
-## This file is part of Taurus, a Tango User Interface Library
+## This file is part of Taurus
 ## 
-## http://www.tango-controls.org/static/taurus/latest/doc/html/index.html
+## http://taurus-scada.org
 ##
 ## Copyright 2011 CELLS / ALBA Synchrotron, Bellaterra, Spain
 ## 
diff --git a/lib/taurus/qt/qtgui/test/__init__.py b/lib/taurus/qt/qtgui/util/test/test_ui/mywidget3/__init__.py
similarity index 75%
copy from lib/taurus/qt/qtgui/test/__init__.py
copy to lib/taurus/qt/qtgui/util/test/test_ui/mywidget3/__init__.py
index 6c69e43..9ffe6b5 100644
--- a/lib/taurus/qt/qtgui/test/__init__.py
+++ b/lib/taurus/qt/qtgui/util/test/test_ui/mywidget3/__init__.py
@@ -2,9 +2,9 @@
 
 #############################################################################
 ##
-## This file is part of Taurus, a Tango User Interface Library
+## This file is part of Taurus
 ##
-## http://www.tango-controls.org/static/taurus/latest/doc/html/index.html
+## http://taurus-scada.org
 ##
 ## Copyright 2011 CELLS / ALBA Synchrotron, Bellaterra, Spain
 ##
@@ -23,4 +23,12 @@
 ##
 #############################################################################
 
-from .base import BaseWidgetTestCase, GenericWidgetTestCase
+from taurus.external.qt import Qt
+from taurus.qt.qtgui.util.ui import UILoadable
+        
+ at UILoadable
+class MyWidget3(Qt.QWidget):
+    
+    def __init__(self, parent=None):
+        Qt.QWidget.__init__(self, parent)
+        self.loadUi()
diff --git a/lib/taurus/qt/qtgui/util/test/test_ui/mywidget3/ui/MyWidget3.ui b/lib/taurus/qt/qtgui/util/test/test_ui/mywidget3/ui/MyWidget3.ui
new file mode 100644
index 0000000..7dcbbfa
--- /dev/null
+++ b/lib/taurus/qt/qtgui/util/test/test_ui/mywidget3/ui/MyWidget3.ui
@@ -0,0 +1,32 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<ui version="4.0">
+ <class>Form</class>
+ <widget class="QWidget" name="Form">
+  <property name="geometry">
+   <rect>
+    <x>0</x>
+    <y>0</y>
+    <width>400</width>
+    <height>300</height>
+   </rect>
+  </property>
+  <property name="windowTitle">
+   <string>Form</string>
+  </property>
+  <widget class="QPushButton" name="my_button">
+   <property name="geometry">
+    <rect>
+     <x>120</x>
+     <y>80</y>
+     <width>91</width>
+     <height>27</height>
+    </rect>
+   </property>
+   <property name="text">
+    <string>PushButton</string>
+   </property>
+  </widget>
+ </widget>
+ <resources/>
+ <connections/>
+</ui>
diff --git a/lib/taurus/qt/qtgui/util/test/test_ui/test_ui.py b/lib/taurus/qt/qtgui/util/test/test_ui/test_ui.py
index 3c0ee31..29d3b3e 100644
--- a/lib/taurus/qt/qtgui/util/test/test_ui/test_ui.py
+++ b/lib/taurus/qt/qtgui/util/test/test_ui/test_ui.py
@@ -2,9 +2,9 @@
 
 #############################################################################
 ##
-## This file is part of Taurus, a Tango User Interface Library
+## This file is part of Taurus
 ##
-## http://www.tango-controls.org/static/taurus/latest/doc/html/index.html
+## http://taurus-scada.org
 ##
 ## Copyright 2011 CELLS / ALBA Synchrotron, Bellaterra, Spain
 ##
@@ -30,6 +30,8 @@ import os.path
 from taurus.external import unittest
 from taurus.external.qt import Qt
 from taurus.qt.qtgui.util.ui import UILoadable
+from taurus.qt.qtgui.test import BaseWidgetTestCase
+from mywidget3 import MyWidget3
 
 
 class UILoadableTestCase(unittest.TestCase):
@@ -77,6 +79,19 @@ class UILoadableTestCase(unittest.TestCase):
                          "widget has a my_button member")
         self.assertEquals(widget.ui.my_button.text(), "This is MY2 button",
                           "button text differs from expected")
+
+         
+class Bug151_TestCase(BaseWidgetTestCase, unittest.TestCase):
+    '''Test for bug 151: https://sourceforge.net/p/tauruslib/tickets/151/'''
+    def test_bug151(self):
+        '''Check inheritance of UILoadable classes across packages (bug #151)
+        '''
+        class Bug151_Widget(MyWidget3):
+                pass 
+        try:
+            Bug151_Widget()
+        except:
+            self.fail('Inheriting from UILoadable from another package fails')
         
 
 def main():
diff --git a/lib/taurus/qt/qtgui/util/ui.py b/lib/taurus/qt/qtgui/util/ui.py
index a7fed1d..0c93973 100644
--- a/lib/taurus/qt/qtgui/util/ui.py
+++ b/lib/taurus/qt/qtgui/util/ui.py
@@ -2,9 +2,9 @@
 
 #############################################################################
 ##
-## This file is part of Taurus, a Tango User Interface Library
+## This file is part of Taurus
 ##
-## http://www.tango-controls.org/static/taurus/latest/doc/html/index.html
+## http://taurus-scada.org
 ##
 ## Copyright 2011 CELLS / ALBA Synchrotron, Bellaterra, Spain
 ##
@@ -55,6 +55,10 @@ def loadUi(obj, filename=None, path=None, with_ui=None):
                  [default: None, meaning calculate path with algorithm explained
                  before]
     :type path: str
+    :param with_ui: if True, the objects defined in the ui file will be 
+                    accessible as submembers of an ui member of the widget. If
+                    False, such objects will directly be members of the widget. 
+    :type with_ui: bool
     """
     if path is None:
         obj_file = sys.modules[obj.__module__].__file__
@@ -147,9 +151,14 @@ def UILoadable(klass=None, with_ui=None):
         return functools.partial(UILoadable, with_ui=with_ui)
 
     klass_name = klass.__name__
+    klass_file = sys.modules[klass.__module__].__file__
+    klass_path = os.path.join(os.path.dirname(klass_file), 'ui')
+
     def _loadUi(self, filename=None, path=None):
         if filename is None:
             filename = klass_name + os.path.extsep + 'ui'
+        if path is None:
+            path = klass_path
         return loadUi(self, filename=filename, path=path, with_ui=with_ui)
     
     klass.loadUi = _loadUi
diff --git a/lib/taurus/qt/qtgui/util/widgetgen.py b/lib/taurus/qt/qtgui/util/widgetgen.py
index 8f65d3d..757950a 100644
--- a/lib/taurus/qt/qtgui/util/widgetgen.py
+++ b/lib/taurus/qt/qtgui/util/widgetgen.py
@@ -2,9 +2,9 @@
 
 #############################################################################
 ##
-## This file is part of Taurus, a Tango User Interface Library
+## This file is part of Taurus
 ## 
-## http://www.tango-controls.org/static/taurus/latest/doc/html/index.html
+## http://taurus-scada.org
 ##
 ## Copyright 2011 CELLS / ALBA Synchrotron, Bellaterra, Spain
 ## 
diff --git a/lib/taurus/qt/qtopengl/__init__.py b/lib/taurus/qt/qtopengl/__init__.py
index 4f08023..9afdcc0 100644
--- a/lib/taurus/qt/qtopengl/__init__.py
+++ b/lib/taurus/qt/qtopengl/__init__.py
@@ -2,9 +2,9 @@
 
 #############################################################################
 ##
-## This file is part of Taurus, a Tango User Interface Library
+## This file is part of Taurus
 ## 
-## http://www.tango-controls.org/static/taurus/latest/doc/html/index.html
+## http://taurus-scada.org
 ##
 ## Copyright 2011 CELLS / ALBA Synchrotron, Bellaterra, Spain
 ## 
diff --git a/lib/taurus/qt/uic/__init__.py b/lib/taurus/qt/uic/__init__.py
index a4eff0e..1130eca 100644
--- a/lib/taurus/qt/uic/__init__.py
+++ b/lib/taurus/qt/uic/__init__.py
@@ -2,9 +2,9 @@
 
 #############################################################################
 ##
-## This file is part of Taurus, a Tango User Interface Library
+## This file is part of Taurus
 ## 
-## http://www.tango-controls.org/static/taurus/latest/doc/html/index.html
+## http://taurus-scada.org
 ##
 ## Copyright 2011 CELLS / ALBA Synchrotron, Bellaterra, Spain
 ## 
diff --git a/lib/taurus/qt/uic/pyuic4/taurus.py b/lib/taurus/qt/uic/pyuic4/taurus.py
index e431c28..9c616e6 100644
--- a/lib/taurus/qt/uic/pyuic4/taurus.py
+++ b/lib/taurus/qt/uic/pyuic4/taurus.py
@@ -2,9 +2,9 @@
 
 #############################################################################
 ##
-## This file is part of Taurus, a Tango User Interface Library
+## This file is part of Taurus
 ## 
-## http://www.tango-controls.org/static/taurus/latest/doc/html/index.html
+## http://taurus-scada.org
 ##
 ## Copyright 2011 CELLS / ALBA Synchrotron, Bellaterra, Spain
 ## 
diff --git a/lib/taurus/qt/uic/tau2taurus_map.py b/lib/taurus/qt/uic/tau2taurus_map.py
index 520e276..ae082d1 100644
--- a/lib/taurus/qt/uic/tau2taurus_map.py
+++ b/lib/taurus/qt/uic/tau2taurus_map.py
@@ -2,9 +2,9 @@
 
 #############################################################################
 ##
-## This file is part of Taurus, a Tango User Interface Library
+## This file is part of Taurus
 ## 
-## http://www.tango-controls.org/static/taurus/latest/doc/html/index.html
+## http://taurus-scada.org
 ##
 ## Copyright 2011 CELLS / ALBA Synchrotron, Bellaterra, Spain
 ## 
diff --git a/lib/taurus/tauruscustomsettings.py b/lib/taurus/tauruscustomsettings.py
index 1950ace..971e9c2 100644
--- a/lib/taurus/tauruscustomsettings.py
+++ b/lib/taurus/tauruscustomsettings.py
@@ -2,9 +2,9 @@
 
 #############################################################################
 ##
-## This file is part of Taurus, a Tango User Interface Library
+## This file is part of Taurus
 ##
-## http://www.tango-controls.org/static/taurus/latest/doc/html/index.html
+## http://taurus-scada.org
 ##
 ## Copyright 2011 CELLS / ALBA Synchrotron, Bellaterra, Spain
 ##
diff --git a/lib/taurus/test/__init__.py b/lib/taurus/test/__init__.py
index 2f4ae9b..5418d26 100644
--- a/lib/taurus/test/__init__.py
+++ b/lib/taurus/test/__init__.py
@@ -2,9 +2,9 @@
 
 #############################################################################
 ##
-## This file is part of Taurus, a Tango User Interface Library
+## This file is part of Taurus
 ##
-## http://www.tango-controls.org/static/taurus/latest/doc/html/index.html
+## http://taurus-scada.org
 ##
 ## Copyright 2011 CELLS / ALBA Synchrotron, Bellaterra, Spain
 ##
diff --git a/lib/taurus/test/base.py b/lib/taurus/test/base.py
index be378ff..31a5c61 100644
--- a/lib/taurus/test/base.py
+++ b/lib/taurus/test/base.py
@@ -2,9 +2,9 @@
 
 #############################################################################
 ##
-## This file is part of Taurus, a Tango User Interface Library
+## This file is part of Taurus
 ## 
-## http://www.tango-controls.org/static/taurus/latest/doc/html/index.html
+## http://taurus-scada.org
 ##
 ## Copyright 2011 CELLS / ALBA Synchrotron, Bellaterra, Spain
 ## 
diff --git a/lib/taurus/test/fuzzytest.py b/lib/taurus/test/fuzzytest.py
index f18c998..95625da 100644
--- a/lib/taurus/test/fuzzytest.py
+++ b/lib/taurus/test/fuzzytest.py
@@ -2,9 +2,9 @@
 
 #############################################################################
 ##
-## This file is part of Taurus, a Tango User Interface Library
+## This file is part of Taurus
 ##
-## http://www.tango-controls.org/static/taurus/latest/doc/html/index.html
+## http://taurus-scada.org
 ##
 ## Copyright 2011 CELLS / ALBA Synchrotron, Bellaterra, Spain
 ##
diff --git a/lib/taurus/test/moduleexplorer.py b/lib/taurus/test/moduleexplorer.py
index f3f7353..f1d18d8 100644
--- a/lib/taurus/test/moduleexplorer.py
+++ b/lib/taurus/test/moduleexplorer.py
@@ -3,9 +3,9 @@
 
 #############################################################################
 ##
-## This file is part of Taurus, a Tango User Interface Library
+## This file is part of Taurus
 ##
-## http://www.tango-controls.org/static/taurus/latest/doc/html/index.html
+## http://taurus-scada.org
 ##
 ## Copyright 2011 CELLS / ALBA Synchrotron, Bellaterra, Spain
 ##
@@ -166,7 +166,10 @@ class ModuleExplorer(object):
         '''
         mname = info['modulename']
         try:
-            ret = [(mname, el) for el in info[key]]
+            if not isinstance(info[key], list):
+                ret = [(mname, info[key])]
+            else:
+                ret = [(mname, el) for el in info[key]]
         except KeyError:
             return []
         for sminfo in info['submodules'].itervalues():
diff --git a/lib/taurus/test/resource.py b/lib/taurus/test/resource.py
index fd2c328..bcd1842 100644
--- a/lib/taurus/test/resource.py
+++ b/lib/taurus/test/resource.py
@@ -2,9 +2,9 @@
 
 #############################################################################
 ##
-## This file is part of Taurus, a Tango User Interface Library
+## This file is part of Taurus
 ##
-## http://www.tango-controls.org/static/taurus/latest/doc/html/index.html
+## http://taurus-scada.org
 ##
 ## Copyright 2011 CELLS / ALBA Synchrotron, Bellaterra, Spain
 ##
diff --git a/lib/taurus/test/skip.py b/lib/taurus/test/skip.py
index a71a7bf..ed52c1e 100644
--- a/lib/taurus/test/skip.py
+++ b/lib/taurus/test/skip.py
@@ -2,9 +2,9 @@
 
 #############################################################################
 ##
-## This file is part of Taurus, a Tango User Interface Library
+## This file is part of Taurus
 ##
-## http://www.tango-controls.org/static/taurus/latest/doc/html/index.html
+## http://taurus-scada.org
 ##
 ## Copyright 2011 CELLS / ALBA Synchrotron, Bellaterra, Spain
 ##
diff --git a/lib/taurus/test/test_import.py b/lib/taurus/test/test_import.py
index f1eb16b..a1f98f3 100644
--- a/lib/taurus/test/test_import.py
+++ b/lib/taurus/test/test_import.py
@@ -1,9 +1,9 @@
 #!/usr/bin/env python
 #############################################################################
 ##
-## This file is part of Taurus, a Tango User Interface Library
+## This file is part of Taurus
 ##
-## http://www.tango-controls.org/static/taurus/latest/doc/html/index.html
+## http://taurus-scada.org
 ##
 ## Copyright 2011 CELLS / ALBA Synchrotron, Bellaterra, Spain
 ##
diff --git a/lib/taurus/test/testsuite.py b/lib/taurus/test/testsuite.py
index 3450398..0cdcdef 100644
--- a/lib/taurus/test/testsuite.py
+++ b/lib/taurus/test/testsuite.py
@@ -2,9 +2,9 @@
 
 #############################################################################
 ##
-## This file is part of Taurus, a Tango User Interface Library
+## This file is part of Taurus
 ##
-## http://www.tango-controls.org/static/taurus/latest/doc/html/index.html
+## http://taurus-scada.org
 ##
 ## Copyright 2011 CELLS / ALBA Synchrotron, Bellaterra, Spain
 ##
diff --git a/lib/taurus/web/__init__.py b/lib/taurus/web/__init__.py
index 836f149..b8e01ed 100644
--- a/lib/taurus/web/__init__.py
+++ b/lib/taurus/web/__init__.py
@@ -2,9 +2,9 @@
 
 #############################################################################
 ##
-## This file is part of Taurus, a Tango User Interface Library
+## This file is part of Taurus
 ## 
-## http://www.tango-controls.org/static/taurus/latest/doc/html/index.html
+## http://taurus-scada.org
 ##
 ## Copyright 2011 CELLS / ALBA Synchrotron, Bellaterra, Spain
 ## 
diff --git a/lib/taurus/web/examples/tornado/demo.py b/lib/taurus/web/examples/tornado/demo.py
index 04d265b..7fac5c5 100644
--- a/lib/taurus/web/examples/tornado/demo.py
+++ b/lib/taurus/web/examples/tornado/demo.py
@@ -2,9 +2,9 @@
 
 #############################################################################
 ##
-## This file is part of Taurus, a Tango User Interface Library
+## This file is part of Taurus
 ## 
-## http://www.tango-controls.org/static/taurus/latest/doc/html/index.html
+## http://taurus-scada.org
 ##
 ## Copyright 2011 CELLS / ALBA Synchrotron, Bellaterra, Spain
 ## 
diff --git a/lib/taurus/web/examples/tornado/machinestatus.py b/lib/taurus/web/examples/tornado/machinestatus.py
index 161ef5c..059ee2a 100644
--- a/lib/taurus/web/examples/tornado/machinestatus.py
+++ b/lib/taurus/web/examples/tornado/machinestatus.py
@@ -2,9 +2,9 @@
 
 #############################################################################
 ##
-## This file is part of Taurus, a Tango User Interface Library
+## This file is part of Taurus
 ## 
-## http://www.tango-controls.org/static/taurus/latest/doc/html/index.html
+## http://taurus-scada.org
 ##
 ## Copyright 2011 CELLS / ALBA Synchrotron, Bellaterra, Spain
 ## 
diff --git a/lib/taurus/web/taurustornado.py b/lib/taurus/web/taurustornado.py
index 5e63ad6..54abfad 100644
--- a/lib/taurus/web/taurustornado.py
+++ b/lib/taurus/web/taurustornado.py
@@ -2,9 +2,9 @@
 
 #############################################################################
 ##
-## This file is part of Taurus, a Tango User Interface Library
+## This file is part of Taurus
 ## 
-## http://www.tango-controls.org/static/taurus/latest/doc/html/index.html
+## http://taurus-scada.org
 ##
 ## Copyright 2011 CELLS / ALBA Synchrotron, Bellaterra, Spain
 ## 
diff --git a/setup.py b/setup.py
index 63073a9..e028014 100644
--- a/setup.py
+++ b/setup.py
@@ -2,9 +2,9 @@
 
 ##############################################################################
 ##
-## This file is part of Taurus, a Tango User Interface Library
+## This file is part of Taurus
 ##
-## http://www.tango-controls.org/static/taurus/latest/doc/html/index.html
+## http://taurus-scada.org
 ##
 ## Copyright 2011 CELLS / ALBA Synchrotron, Bellaterra, Spain
 ##
@@ -35,6 +35,7 @@ import StringIO
 from distutils import log
 from distutils.core import setup, Command
 from distutils.command.build import build as dftbuild
+from distutils.command.clean import clean as dftclean
 from distutils.command.install import install as dftinstall
 from distutils.command.install_lib import install_lib as dftinstall_lib
 from distutils.command.install_scripts import install_scripts as dftinstall_scripts
@@ -395,14 +396,14 @@ class build_resources(Command):
             out.flush()
             f = file(qrc_filename, 'w')
             try:
-                qresource_prefix = ""
+                qres_prefix = ""
                 if len(local_bases) > 2:
-                    qresource_prefix = "/" + "/".join(local_bases[2:])
-                    f.write('<RCC>\n    <qresource prefix="%s">\n' % qresource_prefix)
+                    qres_prefix = "/" + "/".join(local_bases[2:])
+                    f.write('<RCC>\n    <qresource prefix="%s">\n' % qres_prefix)
                 else:
                     f.write('<RCC>\n    <qresource>\n')
-                qresource_prefix = ":" + qresource_prefix
-                qresource_prefix += "/"
+                qres_prefix = ":" + qres_prefix
+                qres_prefix += "/"
                 for elem in local_elems:
                     rel_elem = os.path.join(base_dir, elem)
                     f.write('        <file alias="%s">%s</file>\n' % (elem, rel_elem))
@@ -703,50 +704,50 @@ class install(dftinstall):
     sub_commands.append(('install_html', has_html))
 
 
-class build_doc_api(Command):
+class clean(dftclean):
+    def run(self):
+        dftclean.run(self)
 
-    user_options = []
+        # This is a very crude approach to clean the garbage created by taurus
+        # outside of the build dir when running the build command
+        # see: https://sourceforge.net/p/sardana/tickets/324/
+        import glob
+        from distutils.dir_util import remove_tree
 
-    description = "\"build\" sphinx RST files for API"
+        # collect the garbage *files* to be deleted
+        garbage = []
 
-    def initialize_options (self):
-        if self.distribution.verbose:
-            self.out = sys.stdout
-        else:
-            self.out = StringIO.StringIO()
+        resource = abspath('lib', 'taurus', 'qt', 'qtgui', 'resource')
+        garbage.extend(glob.glob(os.path.join(resource, '*.rcc')))
+        garbage.extend(glob.glob(os.path.join(resource, '*.qrc')))
+        garbage.append(os.path.join(resource, 'catalog.html'))
 
+        jdraw = abspath('lib', 'taurus', 'qt', 'qtgui', 'graphic', 'jdraw')
+        garbage.append(os.path.join(jdraw, 'jdraw_lextab.py'))
+        garbage.append(os.path.join(jdraw, 'jdraw_yacctab.py'))
 
-    def finalize_options (self):
-        pass
+        doc_devel = abspath('doc', 'source', 'devel')
+        garbage.append(os.path.join(doc_devel, 'catalog.html'))
 
-    def run(self):
-        #print("SKIPPING API");return
-        buildcmd = self.get_finalized_command('build_doc')
-        name = "auto_rst4api"
-        data = imp.find_module(name, [abspath('doc')])
-        auto_rst4api = imp.load_module(name, *data)
-
-        docpreffix = abspath('doc', 'source', 'devel', 'api')
-        templatespath = abspath('doc')
-        excl = ['.*\.ui', '_[^\.]*[^_]', '.*.extra_sardana', '.*.extra_pool', 
-                '.*.extra_macroexecutor', 'taurus.external']
-        rstCreator = auto_rst4api.Auto_rst4API_Creator(exclude_patterns=excl,
-                                                       templatespath=templatespath,
-                                                       overwrite_old=buildcmd.all_files,
-                                                       verbose=self.distribution.verbose)
-        if buildcmd.all_files:
-            rstCreator.cleanAutogenerated(docpreffix)  #@todo: This may need to be called *only* if --fres-env or --all-files options are given
-
-        # import taurus module from the source to autogenerate the api docs
-        name = 'taurus'
-        data = imp.find_module(name, [abspath('lib')])
-        taurus = imp.load_module(name, *data)
-
-        r = rstCreator.documentModule('taurus', docpreffix)
-        out = self.out
-        print("Auto Creation of API docs Finished with %i warnings:" % len(r), file=out)
-        for i in r:
-            print(i, file=out)
+        doc = abspath('doc')
+        garbage.append(os.path.join(doc, '~thumbnails.zip'))
+
+        # delete the garbage files
+        for fn in garbage:
+            if os.path.exists(fn):
+                log.info("removing '%s'", fn)
+                if self.dry_run:
+                    continue
+                os.remove(fn)
+            else:
+                log.debug("'%s' does not exist -- can't clean it", fn)
+
+        # now delete the api dir
+        api_dir = os.path.join(doc_devel, 'api')
+        if os.path.exists(api_dir):
+            remove_tree(api_dir, dry_run=self.dry_run)
+        else:
+            log.debug("'%s' does not exist -- can't clean it", api_dir)
 
 
 cmdclass = { 'build' : build,
@@ -756,27 +757,45 @@ cmdclass = { 'build' : build,
              'install_man' : install_man,
              'install_html' : install_html,
              'install_scripts' : install_scripts,
-             'build_doc_api' : build_doc_api }
+             'clean' : clean }
 
 if sphinx:
     from sphinx.setup_command import BuildDoc
 
     class build_catalog(object):
+        '''builds an html catalog of icons. It links to png thumbnails that are 
+        created in the _static dir
+        '''
 
         AllowedExt = build_resources.AllowedExt
 
-        HTML_IL = """<tr height="30"><td width="30" align="center"><img width="24" src="%s" alt="%s"/></td><td width="400">%s%s</td><td width="400">%s</td><td width="200">%s</td></tr>\n"""
+        HTML_IL = '<tr height="30">' \
+                  '<td width="30" align="center">' \
+                     '<img width="24" src="{thumbnail}"' \
+                                    ' alt="{res_relpath}"/></td>' \
+                  '<td width="400">{qres_prefix}{icon_name}</td>' \
+                  '<td width="400">{res_relpath}</td>' \
+                  '<td width="200">{theme}</td></tr>\n'
         HTML_T = '<table border="1" cellspacing="0" cellpadding="2">\n' \
                  '<th colspan="4">Resource: "%s" Directory: "%s"</th>\n' \
-                 '<tr><th>Preview</th><th>Resouce</th><th>File name</th><th>Theme</th></tr>\n'
+                 '<tr><th>Preview</th><th>Resouce</th><th>File name</th>' \
+                 '<th>Theme</th></tr>\n'
 
         def run(self):
-            self.resource_dir = abspath('lib', 'taurus', 'qt', 'qtgui', 'resource')
-            self.taurus = os.path.join(self.resource_dir, 'taurus.png')
+            self.resource_dir = abspath('lib', 'taurus', 'qt', 'qtgui', 
+                                        'resource')
+            pngs_dir = os.path.abspath(os.path.join(self.builder_target_dir,
+                                                    '_static', 
+                                                    'icon_thumbnails') )
+            devel_dir = os.path.abspath(os.path.join(self.builder_target_dir,
+                                                     'devel') )
+            self.thumbnails_relpath = os.path.relpath(pngs_dir, devel_dir)
+            
             orig_dir = os.path.abspath(os.curdir)
             os.chdir(self.resource_dir)
-
-            catalog = file('catalog.html', 'w')
+            
+            # create temporary catalog file (to be removed at end of build_doc)
+            catalog = file(self.fname, 'w')
             catalog.write("<html><head>\n<title>taurus Icon Catalog</title>\n" \
             "<style>table { border-collapse: collapse; }</style>\n</head>\n<body>\n")
 
@@ -798,7 +817,89 @@ if sphinx:
                 catalog.write("""</body></html>""")
                 catalog.close()
                 os.chdir(orig_dir)
-
+            
+            #make thumbnails 
+            try:
+                if self.thumbnails_source == 'wand':
+                    from wand.image import Image
+                    def transform(ifname, ofname):
+                        with Image(filename=ifname) as img:
+                            img.transform(resize='24x')
+                            img.save(filename=ofname)
+                            return True
+                        return False
+                elif self.thumbnails_source == 'qt':
+                    import PyQt4.Qt
+                    if PyQt4.Qt.qApp.instance() is None:
+                        self.app = PyQt4.Qt.QApplication([])
+                    from PyQt4 import Qt
+                    def transform(ifname, ofname):
+                        pixmap = Qt.QPixmap(ifname)
+                        p = pixmap.scaledToWidth(24, Qt.Qt.SmoothTransformation)
+                        return p.save(ofname)
+                else:
+                    if not os.path.isabs(self.thumbnails_source):
+                        m = 'Absolute path required for Thumbnails dir or zip'
+                        raise ValueError(m)
+                    shutil.rmtree(pngs_dir, ignore_errors=True)
+                    if self.thumbnails_source.lower().endswith('.zip'):
+                        from zipfile import ZipFile
+                        zfile = ZipFile(self.thumbnails_source)
+                        zfile.extractall(pngs_dir)
+                    else:
+                        shutil.copytree(self.thumbnails_source, pngs_dir)
+                    def transform(ifname, ofname):
+                        #just check if the required thumbnail exists
+                        return os.path.isfile(ofname) 
+
+                print("\tCreating PNG thumbnails for icon catalog")
+                os.path.walk(self.resource_dir, self._make_thumbnails, 
+                             (self.resource_dir, pngs_dir, transform) )
+                # create a zipped file for the thumbnails
+                fname = abspath('doc', '~thumbnails.zip')
+                if os.path.isfile(fname):
+                    os.remove(fname)
+                self._zipdir(pngs_dir, fname) 
+                
+            except ImportError, e:
+                print("\tCannot create PNG thumbnails for icon catalog: %s" %
+                       repr(e))
+                
+        @staticmethod
+        def _make_thumbnails(arg, dirname, fnames):
+            '''create thumbnails. To be called by a walker'''
+            resource, target, transform = arg
+            relpath = os.path.relpath(dirname, start=resource)
+            path = os.path.join(target, relpath)
+            if not os.path.isdir(path):
+                os.makedirs(path)
+            for fname in fnames:
+                fbase, f_ext = os.path.splitext(fname)
+                if f_ext[1:] in build_catalog.AllowedExt:
+                    full_source_fname = os.path.join(dirname, fname)
+                    target_fname = fbase + ".png"
+                    full_target_fname = os.path.join(path, target_fname)
+                    if not os.path.isfile(full_target_fname):
+                        ok = transform(full_source_fname, full_target_fname)
+                        print(ok and "[OK]" or "[FAIL]", full_source_fname, 
+                              '->', full_target_fname)
+        
+        @staticmethod                
+        def _zipdir(basedir, archivename):
+            '''function to zip the contents of basedir into archivename. 
+            Adapted from: http://stackoverflow.com/questions/296499
+            '''
+            from zipfile import ZipFile, ZIP_DEFLATED
+            from contextlib import closing
+            assert os.path.isdir(basedir)
+            with closing(ZipFile(archivename, "w", ZIP_DEFLATED)) as z:
+                for root, dirs, files in os.walk(basedir):
+                    #NOTE: ignore empty directories
+                    for fn in files:
+                        absfn = os.path.join(root, fn)
+                        zfn = absfn[len(basedir)+len(os.sep):] 
+                        z.write(absfn, zfn)
+                        
         def getThemeIcon(self, resource):
             try:
                 import PyQt4.Qt
@@ -820,8 +921,15 @@ if sphinx:
             html += self.HTML_T % (':/', '')
             anchor = '<a href="#_base">Base icons</a>'
             try:
-                taurus_relpath = os.path.relpath(self.taurus)
-                html += self.HTML_IL % (taurus_relpath, taurus_relpath, ":/", taurus_relpath, taurus_relpath, self.getThemeIcon("taurus.png"))
+                taurus_relpath = 'taurus.png'
+                png_relpath = os.path.join(self.thumbnails_relpath, 
+                                           taurus_relpath)
+                html += self.HTML_IL.format(thumbnail=png_relpath,
+                                            res_relpath=taurus_relpath,
+                                            qres_prefix=":/",
+                                            icon_name=taurus_relpath,
+                                            theme=self.getThemeIcon("taurus.png")
+                                            )
             except Exception, e:
                 print("[FAILED]\nDescription:\n%s" % str(e), file=out)
                 import traceback
@@ -861,20 +969,26 @@ if sphinx:
                 html = ''
                 anchor = ''
                 try:
-                    qresource_prefix = ""
+                    qres_prefix = ""
                     if len(local_bases) > 2:
-                        qresource_prefix = "/" + "/".join(local_bases[2:])
-                    qresource_prefix = ":" + qresource_prefix
-                    qresource_prefix += "/"
+                        qres_prefix = "/" + "/".join(local_bases[2:])
+                    qres_prefix = ":" + qres_prefix
+                    qres_prefix += "/"
 
-                    html += '<h2><a name="%s">%s (%s)</a></h2>\n' % (base_dir, qresource_prefix, base_dir)
-                    html += self.HTML_T % (qresource_prefix , base_dir)
-                    anchor = '<a href="#%s">%s (%s)</a>' % (base_dir, base_dir, qresource_prefix)
+                    html += '<h2><a name="%s">%s (%s)</a></h2>\n' % (base_dir, qres_prefix, base_dir)
+                    html += self.HTML_T % (qres_prefix , base_dir)
+                    anchor = '<a href="#%s">%s (%s)</a>' % (base_dir, base_dir, qres_prefix)
                     for elem in local_elems:
                         rel_elem = os.path.join(base_dir, elem)
                         base_elem, _ = os.path.splitext(rel_elem)
-                        rel_png_elem = base_elem + ".png"
-                        html += self.HTML_IL % (rel_png_elem, rel_elem, qresource_prefix, elem, rel_elem, self.getThemeIcon(elem))
+                        png_relpath = os.path.join(self.thumbnails_relpath,
+                                                   base_elem + ".png")
+                        html += self.HTML_IL.format(thumbnail=png_relpath,
+                                                    res_relpath=rel_elem,
+                                                    qres_prefix=qres_prefix,
+                                                    icon_name=rel_elem,
+                                                    theme=self.getThemeIcon(elem)
+                                                    )
                 except Exception, e:
                     print("[FAILED]\nDescription:\n%s" % str(e), file=out)
                     raise e
@@ -883,21 +997,29 @@ if sphinx:
                 result[0].append(html)
                 result[1].append(anchor)
             return result
+        
 
     class build_doc(BuildDoc):
         user_options = BuildDoc.user_options + \
-                     [('external-img-tools', None,
-                       "Use external tools for converting the icon catalog (useful if QApplication cannot be used while building, but requires inkscape and imagemagick)")]
-        boolean_options = BuildDoc.boolean_options + ['external-img-tools']
+                     [('thumbnails-source=', None, 
+                       ('Source for catalog thumbnails. Use "qt" for ' +
+                        'transforming the icons in the resource dir using ' +
+                        'QPixmap  (this is the default). Use "wand" to ' +
+                        'transform using the wand module. Or provide an ' +
+                        'absolute path to either a dir or a zipfile ' +
+                        'containing a tree of pre-transformed thumbnails') ),
+                      ('skip-api', None, 'skip api doc creation'),
+                      ('skip-catalog', None, 'skip icon catalog creation')
+                      ]
+        boolean_options = BuildDoc.boolean_options + ['skip-api',
+                                                      'skip-catalog'
+                                                      ]
 
         def initialize_options (self):
             BuildDoc.initialize_options(self)
-            self.external_img_tools = False
-
-        def has_doc_api(self):
-            return True
-
-        sub_commands = BuildDoc.sub_commands + [(('build_doc_api', has_doc_api))]
+            self.thumbnails_source = 'qt'
+            self.skip_api = False
+            self.skip_catalog = False
 
         def run(self):
             try:
@@ -905,82 +1027,84 @@ if sphinx:
             except Exception, e:
                 self.warn("Failed to build doc. Reason: %s" % str(e))
 
-        def doit(self):
-            if self.distribution.verbose:
-                out = sys.stdout
-            else:
-                out = StringIO.StringIO()
-
+        def _build_doc_api(self, api_dir, doc_dir):
+            if self.skip_api:
+                return
+
+            #import auto_rst4api from the doc dir
+            name = 'auto_rst4api'
+            data = imp.find_module(name, [doc_dir])
+            auto_rst4api = imp.load_module(name, *data)
+            API_Creator = auto_rst4api.Auto_rst4API_Creator
+            
+            # prepare api creator
+            excl = ['_[^\.]*[^_]', '.*.extra_sardana', '.*.extra_pool', 
+                    '.*.extra_macroexecutor', 'taurus.external']
+            rstCreator = API_Creator(exclude_patterns=excl,
+                                     templatespath=doc_dir,
+                                     overwrite_old=True,
+                                     verbose=self.distribution.verbose)
+            # clean previously existing rst files
+            rstCreator.cleanAutogenerated(api_dir)
+            
+            # generate api
+            # IMPORTANT: 'taurus' here is already the one from source, since we went 
+            #            through doc/conf.py already and inserted the lib dir in the
+            #            path
+            import taurus
+            r = rstCreator.documentModule('taurus', api_dir)
+            
+            # report
+            print("Auto Creation of API docs Finished with %i warnings:" % len(r))
+            for i in r:
+                print(i)
+                
+        def _build_catalog(self, fname):
+            if self.skip_catalog:
+                return            
             catalog = build_catalog()
+            catalog.fname = fname
+            catalog.builder_target_dir = self.builder_target_dir
+            catalog.thumbnails_source = self.thumbnails_source
             catalog.verbose = self.distribution.verbose
-            catalog.out = out
+            catalog.out = self.out
             catalog.run()
-
-            resource = abspath('lib', 'taurus', 'qt', 'qtgui', 'resource')
-            tango_catalog = os.path.join(resource, 'catalog.html')
-            build_dir = os.path.abspath(self.builder_target_dir)
-            target = abspath('doc', 'source', 'devel')
-            target_catalog = os.path.join(target, 'catalog.html')
-
-            # copy the icon catalog.html to the doc directory
-            refresh = self.fresh_env or self.all_files
-            if not os.path.isfile(target_catalog) or refresh:
-                print("copying", tango_catalog, '->', target_catalog, file=out)
-                shutil.copyfile(tango_catalog, target_catalog)
-
-            # make sure the python path is pointing to the newly built
-            # code so that the documentation is built on this and not a
-            # previously installed version
-            build_cmd = self.get_finalized_command('build')
-            build_lib = os.path.abspath(build_cmd.build_lib)
-            sys.path.insert(0, build_lib)
+        
+        def doit(self):
+            if self.distribution.verbose:
+                self.out = sys.stdout
+            else:
+                self.out = StringIO.StringIO()
+            
+            _catalog_file = abspath('doc', 'source', 'devel', 'catalog.html')
+            _api_dir = abspath('doc', 'source', 'devel', 'api')
+            _lib_dir = abspath('lib')
+            _doc_dir = abspath('doc')
+            _mock_path = os.path.join(_doc_dir, 'mock.zip') 
+            # append mock dir to the sys path (mocks will be used if needed)
+            sys.path.append(_mock_path)
+            # Import taurus from src distribution
+            sys.path.insert(0, os.path.abspath(_lib_dir))
+                
             try:
                 for cmd_name in self.get_sub_commands():
                     self.run_command(cmd_name)
+                self._build_doc_api(_api_dir, _doc_dir)
+                self._build_catalog(_catalog_file)
                 BuildDoc.run(self)
             finally:
                 sys.path.pop(0)
-
-            # copy the tango icons to the build directory of documentation
-            target = os.path.join(build_dir, 'devel')
-
-            if not self.external_img_tools:
-                import PyQt4.Qt
-                if PyQt4.Qt.qApp.instance() is None:
-                    self.app = PyQt4.Qt.QApplication([])
-
-            print("\tBuilding PNGs for icon catalog")
-            os.path.walk(resource, svg_to_png, (resource, target, self.external_img_tools))
-            return
+                print('Removing temporary api dir: ', _api_dir)
+                shutil.rmtree(_api_dir, ignore_errors=True)
+                print('Removing temporary catalog file', _catalog_file)
+                try:
+                    os.remove(_catalog_file)
+                except:
+                    pass
 
     cmdclass['build_doc'] = build_doc
 
-def svg_to_png(arg, dirname, fnames):
-    resource, target, external_img_tools = arg
-    if not external_img_tools:
-        import PyQt4.Qt
-    relpath = os.path.relpath(dirname, start=resource)
-    path = os.path.join(target, relpath)
-    if not os.path.isdir(path):
-        os.makedirs(path)
-    for fname in fnames:
-        fbase, f_ext = os.path.splitext(fname)
-        if f_ext[1:] in build_catalog.AllowedExt:
-            full_source_fname = os.path.join(dirname, fname)
-            target_fname = fbase + ".png"
-            full_target_fname = os.path.join(path, target_fname)
-            if not os.path.isfile(full_target_fname):
-                if external_img_tools:
-                    cmd = "inkscape -z '%s' -e '%s' -w 24 >/dev/null 2>/dev/null" % (full_source_fname, full_target_fname)
-                    ok = not(os.system(cmd))
-                    if not ok:
-                        cmd = "convert -resize 24 '%s' '%s' >/dev/null 2>/dev/null" % (full_source_fname, full_target_fname)
-                        ok = not(os.system(cmd))
-                else:
-                    pixmap = PyQt4.Qt.QPixmap(full_source_fname)
-                    pix = pixmap.scaledToWidth(24, PyQt4.Qt.Qt.SmoothTransformation)
-                    ok = pix.save(full_target_fname)
-                print(ok and "[OK]" or "[FAIL]", full_source_fname, '->', full_target_fname)
+
 
 def main():
     setup(name='taurus',

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



More information about the debian-science-commits mailing list