[guidata] 01/03: Imported Upstream version 1.7.0~b3

Frédéric-Emmanuel Picca picca at moszumanska.debian.org
Sun Sep 13 12:10:12 UTC 2015


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

picca pushed a commit to branch master
in repository guidata.

commit a8b0bc031a962b96ef96881c1904479df0cbc7fc
Author: Picca Frédéric-Emmanuel <picca at debian.org>
Date:   Sun Sep 13 12:35:57 2015 +0200

    Imported Upstream version 1.7.0~b3
---
 Licence_CeCILL_V2-en.txt              | 1012 +++++++++++++++----------------
 PKG-INFO                              |    2 +-
 guidata-tests                         |    4 +-
 guidata.egg-info/PKG-INFO             |    2 +-
 guidata/__init__.py                   |    2 +-
 guidata/dataset/dataitems.py          |  101 ++--
 guidata/dataset/datatypes.py          |    3 +-
 guidata/images/apply.png              |  Bin 612 -> 785 bytes
 guidata/images/arredit.png            |  Bin 873 -> 1123 bytes
 guidata/images/busy.png               |  Bin 3186 -> 721 bytes
 guidata/images/cell_edit.png          |  Bin 3012 -> 689 bytes
 guidata/images/copy.png               |  Bin 879 -> 830 bytes
 guidata/images/delete.png             |  Bin 522 -> 722 bytes
 guidata/images/dictedit.png           |  Bin 629 -> 911 bytes
 guidata/images/edit.png               |  Bin 3331 -> 929 bytes
 guidata/images/editors/edit.png       |  Bin 3331 -> 929 bytes
 guidata/images/editors/edit_add.png   |  Bin 3329 -> 1001 bytes
 guidata/images/editors/editcopy.png   |  Bin 3356 -> 1048 bytes
 guidata/images/editors/editdelete.png |  Bin 3653 -> 1453 bytes
 guidata/images/editors/editpaste.png  |  Bin 3529 -> 1295 bytes
 guidata/images/editors/fileimport.png |  Bin 2076 -> 2248 bytes
 guidata/images/editors/filesave.png   |  Bin 970 -> 1144 bytes
 guidata/images/editors/imshow.png     |  Bin 3206 -> 727 bytes
 guidata/images/editors/insert.png     |  Bin 3097 -> 525 bytes
 guidata/images/editors/plot.png       |  Bin 3165 -> 515 bytes
 guidata/images/editors/rename.png     |  Bin 3012 -> 689 bytes
 guidata/images/exit.png               |  Bin 876 -> 1164 bytes
 guidata/images/expander_down.png      |  Bin 1077 -> 1322 bytes
 guidata/images/expander_right.png     |  Bin 1057 -> 432 bytes
 guidata/images/file.png               |  Bin 425 -> 530 bytes
 guidata/images/fileclose.png          |  Bin 3714 -> 1424 bytes
 guidata/images/fileimport.png         |  Bin 1383 -> 1556 bytes
 guidata/images/filenew.png            |  Bin 347 -> 463 bytes
 guidata/images/fileopen.png           |  Bin 964 -> 1539 bytes
 guidata/images/filesave.png           |  Bin 970 -> 1144 bytes
 guidata/images/filesaveas.png         |  Bin 1264 -> 1443 bytes
 guidata/images/filetypes/doc.png      |  Bin 4072 -> 1601 bytes
 guidata/images/filetypes/gif.png      |  Bin 4045 -> 1512 bytes
 guidata/images/filetypes/html.png     |  Bin 4368 -> 1848 bytes
 guidata/images/filetypes/jpg.png      |  Bin 4045 -> 1512 bytes
 guidata/images/filetypes/pdf.png      |  Bin 4073 -> 1543 bytes
 guidata/images/filetypes/png.png      |  Bin 4045 -> 1512 bytes
 guidata/images/filetypes/pps.png      |  Bin 3793 -> 1439 bytes
 guidata/images/filetypes/ps.png       |  Bin 3760 -> 1428 bytes
 guidata/images/filetypes/tar.png      |  Bin 4099 -> 1577 bytes
 guidata/images/filetypes/tgz.png      |  Bin 4099 -> 1577 bytes
 guidata/images/filetypes/tif.png      |  Bin 4045 -> 1512 bytes
 guidata/images/filetypes/txt.png      |  Bin 4323 -> 1801 bytes
 guidata/images/filetypes/xls.png      |  Bin 3758 -> 1237 bytes
 guidata/images/filetypes/zip.png      |  Bin 4099 -> 1577 bytes
 guidata/images/guidata.svg            | 1076 ++++++++++++++++-----------------
 guidata/images/max.png                |  Bin 176 -> 356 bytes
 guidata/images/min.png                |  Bin 170 -> 351 bytes
 guidata/images/none.png               |  Bin 1193 -> 331 bytes
 guidata/images/not_found.png          |  Bin 355 -> 531 bytes
 guidata/images/python.png             |  Bin 654 -> 887 bytes
 guidata/images/quickview.png          |  Bin 3425 -> 888 bytes
 guidata/images/save_all.png           |  Bin 1428 -> 1599 bytes
 guidata/images/selection.png          |  Bin 603 -> 744 bytes
 guidata/images/settings.png           |  Bin 2074 -> 2445 bytes
 guidata/images/shape.png              |  Bin 248 -> 361 bytes
 guidata/images/xmax.png               |  Bin 184 -> 354 bytes
 guidata/images/xmin.png               |  Bin 186 -> 353 bytes
 guidata/qt/QtCore.py                  |   58 +-
 guidata/qt/QtDesigner.py              |   28 +-
 guidata/qt/QtGui.py                   |   40 +-
 guidata/qt/QtSvg.py                   |   28 +-
 guidata/qt/QtWebKit.py                |   32 +-
 guidata/qt/__init__.py                |  135 +++--
 guidata/tests/all_features.py         |    1 +
 70 files changed, 1281 insertions(+), 1243 deletions(-)

diff --git a/Licence_CeCILL_V2-en.txt b/Licence_CeCILL_V2-en.txt
index fcc8df2..f85af60 100644
--- a/Licence_CeCILL_V2-en.txt
+++ b/Licence_CeCILL_V2-en.txt
@@ -1,506 +1,506 @@
-
-CeCILL FREE SOFTWARE LICENSE AGREEMENT
-
-
-    Notice
-
-This Agreement is a Free Software license agreement that is the result
-of discussions between its authors in order to ensure compliance with
-the two main principles guiding its drafting:
-
-    * firstly, compliance with the principles governing the distribution
-      of Free Software: access to source code, broad rights granted to
-      users,
-    * secondly, the election of a governing law, French law, with which
-      it is conformant, both as regards the law of torts and
-      intellectual property law, and the protection that it offers to
-      both authors and holders of the economic rights over software.
-
-The authors of the CeCILL (for Ce[a] C[nrs] I[nria] L[ogiciel] L[ibre])
-license are:
-
-Commissariat � l'Energie Atomique - CEA, a public scientific, technical
-and industrial research establishment, having its principal place of
-business at 25 rue Leblanc, immeuble Le Ponant D, 75015 Paris, France.
-
-Centre National de la Recherche Scientifique - CNRS, a public scientific
-and technological establishment, having its principal place of business
-at 3 rue Michel-Ange, 75794 Paris cedex 16, France.
-
-Institut National de Recherche en Informatique et en Automatique -
-INRIA, a public scientific and technological establishment, having its
-principal place of business at Domaine de Voluceau, Rocquencourt, BP
-105, 78153 Le Chesnay cedex, France.
-
-
-    Preamble
-
-The purpose of this Free Software license agreement is to grant users
-the right to modify and redistribute the software governed by this
-license within the framework of an open source distribution model.
-
-The exercising of these rights is conditional upon certain obligations
-for users so as to preserve this status for all subsequent redistributions.
-
-In consideration of access to the source code and the rights to copy,
-modify and redistribute granted by the license, users are provided only
-with a limited warranty and the software's author, the holder of the
-economic rights, and the successive licensors only have limited liability.
-
-In this respect, the risks associated with loading, using, modifying
-and/or developing or reproducing the software by the user are brought to
-the user's attention, given its Free Software status, which may make it
-complicated to use, with the result that its use is reserved for
-developers and experienced professionals having in-depth computer
-knowledge. Users are therefore encouraged to load and test the
-suitability of the software as regards their requirements in conditions
-enabling the security of their systems and/or data to be ensured and,
-more generally, to use and operate it in the same conditions of
-security. This Agreement may be freely reproduced and published,
-provided it is not altered, and that no provisions are either added or
-removed herefrom.
-
-This Agreement may apply to any or all software for which the holder of
-the economic rights decides to submit the use thereof to its provisions.
-
-
-    Article 1 - DEFINITIONS
-
-For the purpose of this Agreement, when the following expressions
-commence with a capital letter, they shall have the following meaning:
-
-Agreement: means this license agreement, and its possible subsequent
-versions and annexes.
-
-Software: means the software in its Object Code and/or Source Code form
-and, where applicable, its documentation, "as is" when the Licensee
-accepts the Agreement.
-
-Initial Software: means the Software in its Source Code and possibly its
-Object Code form and, where applicable, its documentation, "as is" when
-it is first distributed under the terms and conditions of the Agreement.
-
-Modified Software: means the Software modified by at least one
-Contribution.
-
-Source Code: means all the Software's instructions and program lines to
-which access is required so as to modify the Software.
-
-Object Code: means the binary files originating from the compilation of
-the Source Code.
-
-Holder: means the holder(s) of the economic rights over the Initial
-Software.
-
-Licensee: means the Software user(s) having accepted the Agreement.
-
-Contributor: means a Licensee having made at least one Contribution.
-
-Licensor: means the Holder, or any other individual or legal entity, who
-distributes the Software under the Agreement.
-
-Contribution: means any or all modifications, corrections, translations,
-adaptations and/or new functions integrated into the Software by any or
-all Contributors, as well as any or all Internal Modules.
-
-Module: means a set of sources files including their documentation that
-enables supplementary functions or services in addition to those offered
-by the Software.
-
-External Module: means any or all Modules, not derived from the
-Software, so that this Module and the Software run in separate address
-spaces, with one calling the other when they are run.
-
-Internal Module: means any or all Module, connected to the Software so
-that they both execute in the same address space.
-
-GNU GPL: means the GNU General Public License version 2 or any
-subsequent version, as published by the Free Software Foundation Inc.
-
-Parties: mean both the Licensee and the Licensor.
-
-These expressions may be used both in singular and plural form.
-
-
-    Article 2 - PURPOSE
-
-The purpose of the Agreement is the grant by the Licensor to the
-Licensee of a non-exclusive, transferable and worldwide license for the
-Software as set forth in Article 5 hereinafter for the whole term of the
-protection granted by the rights over said Software. 
-
-
-    Article 3 - ACCEPTANCE
-
-3.1 The Licensee shall be deemed as having accepted the terms and
-conditions of this Agreement upon the occurrence of the first of the
-following events:
-
-    * (i) loading the Software by any or all means, notably, by
-      downloading from a remote server, or by loading from a physical
-      medium;
-    * (ii) the first time the Licensee exercises any of the rights
-      granted hereunder.
-
-3.2 One copy of the Agreement, containing a notice relating to the
-characteristics of the Software, to the limited warranty, and to the
-fact that its use is restricted to experienced users has been provided
-to the Licensee prior to its acceptance as set forth in Article 3.1
-hereinabove, and the Licensee hereby acknowledges that it has read and
-understood it.
-
-
-    Article 4 - EFFECTIVE DATE AND TERM
-
-
-      4.1 EFFECTIVE DATE
-
-The Agreement shall become effective on the date when it is accepted by
-the Licensee as set forth in Article 3.1.
-
-
-      4.2 TERM
-
-The Agreement shall remain in force for the entire legal term of
-protection of the economic rights over the Software.
-
-
-    Article 5 - SCOPE OF RIGHTS GRANTED
-
-The Licensor hereby grants to the Licensee, who accepts, the following
-rights over the Software for any or all use, and for the term of the
-Agreement, on the basis of the terms and conditions set forth hereinafter.
-
-Besides, if the Licensor owns or comes to own one or more patents
-protecting all or part of the functions of the Software or of its
-components, the Licensor undertakes not to enforce the rights granted by
-these patents against successive Licensees using, exploiting or
-modifying the Software. If these patents are transferred, the Licensor
-undertakes to have the transferees subscribe to the obligations set
-forth in this paragraph.
-
-
-      5.1 RIGHT OF USE
-
-The Licensee is authorized to use the Software, without any limitation
-as to its fields of application, with it being hereinafter specified
-that this comprises:
-
-   1. permanent or temporary reproduction of all or part of the Software
-      by any or all means and in any or all form.
-
-   2. loading, displaying, running, or storing the Software on any or
-      all medium.
-
-   3. entitlement to observe, study or test its operation so as to
-      determine the ideas and principles behind any or all constituent
-      elements of said Software. This shall apply when the Licensee
-      carries out any or all loading, displaying, running, transmission
-      or storage operation as regards the Software, that it is entitled
-      to carry out hereunder.
-
-
-      5.2 ENTITLEMENT TO MAKE CONTRIBUTIONS
-
-The right to make Contributions includes the right to translate, adapt,
-arrange, or make any or all modifications to the Software, and the right
-to reproduce the resulting software.
-
-The Licensee is authorized to make any or all Contributions to the
-Software provided that it includes an explicit notice that it is the
-author of said Contribution and indicates the date of the creation thereof.
-
-
-      5.3 RIGHT OF DISTRIBUTION
-
-In particular, the right of distribution includes the right to publish,
-transmit and communicate the Software to the general public on any or
-all medium, and by any or all means, and the right to market, either in
-consideration of a fee, or free of charge, one or more copies of the
-Software by any means.
-
-The Licensee is further authorized to distribute copies of the modified
-or unmodified Software to third parties according to the terms and
-conditions set forth hereinafter.
-
-
-        5.3.1 DISTRIBUTION OF SOFTWARE WITHOUT MODIFICATION
-
-The Licensee is authorized to distribute true copies of the Software in
-Source Code or Object Code form, provided that said distribution
-complies with all the provisions of the Agreement and is accompanied by:
-
-   1. a copy of the Agreement,
-
-   2. a notice relating to the limitation of both the Licensor's
-      warranty and liability as set forth in Articles 8 and 9,
-
-and that, in the event that only the Object Code of the Software is
-redistributed, the Licensee allows future Licensees unhindered access to
-the full Source Code of the Software by indicating how to access it, it
-being understood that the additional cost of acquiring the Source Code
-shall not exceed the cost of transferring the data.
-
-
-        5.3.2 DISTRIBUTION OF MODIFIED SOFTWARE
-
-When the Licensee makes a Contribution to the Software, the terms and
-conditions for the distribution of the resulting Modified Software
-become subject to all the provisions of this Agreement.
-
-The Licensee is authorized to distribute the Modified Software, in
-source code or object code form, provided that said distribution
-complies with all the provisions of the Agreement and is accompanied by:
-
-   1. a copy of the Agreement,
-
-   2. a notice relating to the limitation of both the Licensor's
-      warranty and liability as set forth in Articles 8 and 9,
-
-and that, in the event that only the object code of the Modified
-Software is redistributed, the Licensee allows future Licensees
-unhindered access to the full source code of the Modified Software by
-indicating how to access it, it being understood that the additional
-cost of acquiring the source code shall not exceed the cost of
-transferring the data.
-
-
-        5.3.3 DISTRIBUTION OF EXTERNAL MODULES
-
-When the Licensee has developed an External Module, the terms and
-conditions of this Agreement do not apply to said External Module, that
-may be distributed under a separate license agreement.
-
-
-        5.3.4 COMPATIBILITY WITH THE GNU GPL
-
-The Licensee can include a code that is subject to the provisions of one
-of the versions of the GNU GPL in the Modified or unmodified Software,
-and distribute that entire code under the terms of the same version of
-the GNU GPL.
-
-The Licensee can include the Modified or unmodified Software in a code
-that is subject to the provisions of one of the versions of the GNU GPL,
-and distribute that entire code under the terms of the same version of
-the GNU GPL.
-
-
-    Article 6 - INTELLECTUAL PROPERTY
-
-
-      6.1 OVER THE INITIAL SOFTWARE
-
-The Holder owns the economic rights over the Initial Software. Any or
-all use of the Initial Software is subject to compliance with the terms
-and conditions under which the Holder has elected to distribute its work
-and no one shall be entitled to modify the terms and conditions for the
-distribution of said Initial Software.
-
-The Holder undertakes that the Initial Software will remain ruled at
-least by this Agreement, for the duration set forth in Article 4.2.
-
-
-      6.2 OVER THE CONTRIBUTIONS
-
-The Licensee who develops a Contribution is the owner of the
-intellectual property rights over this Contribution as defined by
-applicable law.
-
-
-      6.3 OVER THE EXTERNAL MODULES
-
-The Licensee who develops an External Module is the owner of the
-intellectual property rights over this External Module as defined by
-applicable law and is free to choose the type of agreement that shall
-govern its distribution.
-
-
-      6.4 JOINT PROVISIONS
-
-The Licensee expressly undertakes:
-
-   1. not to remove, or modify, in any manner, the intellectual property
-      notices attached to the Software;
-
-   2. to reproduce said notices, in an identical manner, in the copies
-      of the Software modified or not.
-
-The Licensee undertakes not to directly or indirectly infringe the
-intellectual property rights of the Holder and/or Contributors on the
-Software and to take, where applicable, vis-�-vis its staff, any and all
-measures required to ensure respect of said intellectual property rights
-of the Holder and/or Contributors.
-
-
-    Article 7 - RELATED SERVICES
-
-7.1 Under no circumstances shall the Agreement oblige the Licensor to
-provide technical assistance or maintenance services for the Software.
-
-However, the Licensor is entitled to offer this type of services. The
-terms and conditions of such technical assistance, and/or such
-maintenance, shall be set forth in a separate instrument. Only the
-Licensor offering said maintenance and/or technical assistance services
-shall incur liability therefor.
-
-7.2 Similarly, any Licensor is entitled to offer to its licensees, under
-its sole responsibility, a warranty, that shall only be binding upon
-itself, for the redistribution of the Software and/or the Modified
-Software, under terms and conditions that it is free to decide. Said
-warranty, and the financial terms and conditions of its application,
-shall be subject of a separate instrument executed between the Licensor
-and the Licensee.
-
-
-    Article 8 - LIABILITY
-
-8.1 Subject to the provisions of Article 8.2, the Licensee shall be
-entitled to claim compensation for any direct loss it may have suffered
-from the Software as a result of a fault on the part of the relevant
-Licensor, subject to providing evidence thereof.
-
-8.2 The Licensor's liability is limited to the commitments made under
-this Agreement and shall not be incurred as a result of in particular:
-(i) loss due the Licensee's total or partial failure to fulfill its
-obligations, (ii) direct or consequential loss that is suffered by the
-Licensee due to the use or performance of the Software, and (iii) more
-generally, any consequential loss. In particular the Parties expressly
-agree that any or all pecuniary or business loss (i.e. loss of data,
-loss of profits, operating loss, loss of customers or orders,
-opportunity cost, any disturbance to business activities) or any or all
-legal proceedings instituted against the Licensee by a third party,
-shall constitute consequential loss and shall not provide entitlement to
-any or all compensation from the Licensor.
-
-
-    Article 9 - WARRANTY
-
-9.1 The Licensee acknowledges that the scientific and technical
-state-of-the-art when the Software was distributed did not enable all
-possible uses to be tested and verified, nor for the presence of
-possible defects to be detected. In this respect, the Licensee's
-attention has been drawn to the risks associated with loading, using,
-modifying and/or developing and reproducing the Software which are
-reserved for experienced users.
-
-The Licensee shall be responsible for verifying, by any or all means,
-the suitability of the product for its requirements, its good working
-order, and for ensuring that it shall not cause damage to either persons
-or properties.
-
-9.2 The Licensor hereby represents, in good faith, that it is entitled
-to grant all the rights over the Software (including in particular the
-rights set forth in Article 5).
-
-9.3 The Licensee acknowledges that the Software is supplied "as is" by
-the Licensor without any other express or tacit warranty, other than
-that provided for in Article 9.2 and, in particular, without any warranty 
-as to its commercial value, its secured, safe, innovative or relevant
-nature.
-
-Specifically, the Licensor does not warrant that the Software is free
-from any error, that it will operate without interruption, that it will
-be compatible with the Licensee's own equipment and software
-configuration, nor that it will meet the Licensee's requirements.
-
-9.4 The Licensor does not either expressly or tacitly warrant that the
-Software does not infringe any third party intellectual property right
-relating to a patent, software or any other property right. Therefore,
-the Licensor disclaims any and all liability towards the Licensee
-arising out of any or all proceedings for infringement that may be
-instituted in respect of the use, modification and redistribution of the
-Software. Nevertheless, should such proceedings be instituted against
-the Licensee, the Licensor shall provide it with technical and legal
-assistance for its defense. Such technical and legal assistance shall be
-decided on a case-by-case basis between the relevant Licensor and the
-Licensee pursuant to a memorandum of understanding. The Licensor
-disclaims any and all liability as regards the Licensee's use of the
-name of the Software. No warranty is given as regards the existence of
-prior rights over the name of the Software or as regards the existence
-of a trademark.
-
-
-    Article 10 - TERMINATION
-
-10.1 In the event of a breach by the Licensee of its obligations
-hereunder, the Licensor may automatically terminate this Agreement
-thirty (30) days after notice has been sent to the Licensee and has
-remained ineffective.
-
-10.2 A Licensee whose Agreement is terminated shall no longer be
-authorized to use, modify or distribute the Software. However, any
-licenses that it may have granted prior to termination of the Agreement
-shall remain valid subject to their having been granted in compliance
-with the terms and conditions hereof.
-
-
-    Article 11 - MISCELLANEOUS
-
-
-      11.1 EXCUSABLE EVENTS
-
-Neither Party shall be liable for any or all delay, or failure to
-perform the Agreement, that may be attributable to an event of force
-majeure, an act of God or an outside cause, such as defective
-functioning or interruptions of the electricity or telecommunications
-networks, network paralysis following a virus attack, intervention by
-government authorities, natural disasters, water damage, earthquakes,
-fire, explosions, strikes and labor unrest, war, etc.
-
-11.2 Any failure by either Party, on one or more occasions, to invoke
-one or more of the provisions hereof, shall under no circumstances be
-interpreted as being a waiver by the interested Party of its right to
-invoke said provision(s) subsequently.
-
-11.3 The Agreement cancels and replaces any or all previous agreements,
-whether written or oral, between the Parties and having the same
-purpose, and constitutes the entirety of the agreement between said
-Parties concerning said purpose. No supplement or modification to the
-terms and conditions hereof shall be effective as between the Parties
-unless it is made in writing and signed by their duly authorized
-representatives.
-
-11.4 In the event that one or more of the provisions hereof were to
-conflict with a current or future applicable act or legislative text,
-said act or legislative text shall prevail, and the Parties shall make
-the necessary amendments so as to comply with said act or legislative
-text. All other provisions shall remain effective. Similarly, invalidity
-of a provision of the Agreement, for any reason whatsoever, shall not
-cause the Agreement as a whole to be invalid.
-
-
-      11.5 LANGUAGE
-
-The Agreement is drafted in both French and English and both versions
-are deemed authentic.
-
-
-    Article 12 - NEW VERSIONS OF THE AGREEMENT
-
-12.1 Any person is authorized to duplicate and distribute copies of this
-Agreement.
-
-12.2 So as to ensure coherence, the wording of this Agreement is
-protected and may only be modified by the authors of the License, who
-reserve the right to periodically publish updates or new versions of the
-Agreement, each with a separate number. These subsequent versions may
-address new issues encountered by Free Software.
-
-12.3 Any Software distributed under a given version of the Agreement may
-only be subsequently distributed under the same version of the Agreement
-or a subsequent version, subject to the provisions of Article 5.3.4.
-
-
-    Article 13 - GOVERNING LAW AND JURISDICTION
-
-13.1 The Agreement is governed by French law. The Parties agree to
-endeavor to seek an amicable solution to any disagreements or disputes
-that may arise during the performance of the Agreement.
-
-13.2 Failing an amicable solution within two (2) months as from their
-occurrence, and unless emergency proceedings are necessary, the
-disagreements or disputes shall be referred to the Paris Courts having
-jurisdiction, by the more diligent Party.
-
-
-Version 2.0 dated 2006-09-05.
+
+CeCILL FREE SOFTWARE LICENSE AGREEMENT
+
+
+    Notice
+
+This Agreement is a Free Software license agreement that is the result
+of discussions between its authors in order to ensure compliance with
+the two main principles guiding its drafting:
+
+    * firstly, compliance with the principles governing the distribution
+      of Free Software: access to source code, broad rights granted to
+      users,
+    * secondly, the election of a governing law, French law, with which
+      it is conformant, both as regards the law of torts and
+      intellectual property law, and the protection that it offers to
+      both authors and holders of the economic rights over software.
+
+The authors of the CeCILL (for Ce[a] C[nrs] I[nria] L[ogiciel] L[ibre])
+license are:
+
+Commissariat � l'Energie Atomique - CEA, a public scientific, technical
+and industrial research establishment, having its principal place of
+business at 25 rue Leblanc, immeuble Le Ponant D, 75015 Paris, France.
+
+Centre National de la Recherche Scientifique - CNRS, a public scientific
+and technological establishment, having its principal place of business
+at 3 rue Michel-Ange, 75794 Paris cedex 16, France.
+
+Institut National de Recherche en Informatique et en Automatique -
+INRIA, a public scientific and technological establishment, having its
+principal place of business at Domaine de Voluceau, Rocquencourt, BP
+105, 78153 Le Chesnay cedex, France.
+
+
+    Preamble
+
+The purpose of this Free Software license agreement is to grant users
+the right to modify and redistribute the software governed by this
+license within the framework of an open source distribution model.
+
+The exercising of these rights is conditional upon certain obligations
+for users so as to preserve this status for all subsequent redistributions.
+
+In consideration of access to the source code and the rights to copy,
+modify and redistribute granted by the license, users are provided only
+with a limited warranty and the software's author, the holder of the
+economic rights, and the successive licensors only have limited liability.
+
+In this respect, the risks associated with loading, using, modifying
+and/or developing or reproducing the software by the user are brought to
+the user's attention, given its Free Software status, which may make it
+complicated to use, with the result that its use is reserved for
+developers and experienced professionals having in-depth computer
+knowledge. Users are therefore encouraged to load and test the
+suitability of the software as regards their requirements in conditions
+enabling the security of their systems and/or data to be ensured and,
+more generally, to use and operate it in the same conditions of
+security. This Agreement may be freely reproduced and published,
+provided it is not altered, and that no provisions are either added or
+removed herefrom.
+
+This Agreement may apply to any or all software for which the holder of
+the economic rights decides to submit the use thereof to its provisions.
+
+
+    Article 1 - DEFINITIONS
+
+For the purpose of this Agreement, when the following expressions
+commence with a capital letter, they shall have the following meaning:
+
+Agreement: means this license agreement, and its possible subsequent
+versions and annexes.
+
+Software: means the software in its Object Code and/or Source Code form
+and, where applicable, its documentation, "as is" when the Licensee
+accepts the Agreement.
+
+Initial Software: means the Software in its Source Code and possibly its
+Object Code form and, where applicable, its documentation, "as is" when
+it is first distributed under the terms and conditions of the Agreement.
+
+Modified Software: means the Software modified by at least one
+Contribution.
+
+Source Code: means all the Software's instructions and program lines to
+which access is required so as to modify the Software.
+
+Object Code: means the binary files originating from the compilation of
+the Source Code.
+
+Holder: means the holder(s) of the economic rights over the Initial
+Software.
+
+Licensee: means the Software user(s) having accepted the Agreement.
+
+Contributor: means a Licensee having made at least one Contribution.
+
+Licensor: means the Holder, or any other individual or legal entity, who
+distributes the Software under the Agreement.
+
+Contribution: means any or all modifications, corrections, translations,
+adaptations and/or new functions integrated into the Software by any or
+all Contributors, as well as any or all Internal Modules.
+
+Module: means a set of sources files including their documentation that
+enables supplementary functions or services in addition to those offered
+by the Software.
+
+External Module: means any or all Modules, not derived from the
+Software, so that this Module and the Software run in separate address
+spaces, with one calling the other when they are run.
+
+Internal Module: means any or all Module, connected to the Software so
+that they both execute in the same address space.
+
+GNU GPL: means the GNU General Public License version 2 or any
+subsequent version, as published by the Free Software Foundation Inc.
+
+Parties: mean both the Licensee and the Licensor.
+
+These expressions may be used both in singular and plural form.
+
+
+    Article 2 - PURPOSE
+
+The purpose of the Agreement is the grant by the Licensor to the
+Licensee of a non-exclusive, transferable and worldwide license for the
+Software as set forth in Article 5 hereinafter for the whole term of the
+protection granted by the rights over said Software. 
+
+
+    Article 3 - ACCEPTANCE
+
+3.1 The Licensee shall be deemed as having accepted the terms and
+conditions of this Agreement upon the occurrence of the first of the
+following events:
+
+    * (i) loading the Software by any or all means, notably, by
+      downloading from a remote server, or by loading from a physical
+      medium;
+    * (ii) the first time the Licensee exercises any of the rights
+      granted hereunder.
+
+3.2 One copy of the Agreement, containing a notice relating to the
+characteristics of the Software, to the limited warranty, and to the
+fact that its use is restricted to experienced users has been provided
+to the Licensee prior to its acceptance as set forth in Article 3.1
+hereinabove, and the Licensee hereby acknowledges that it has read and
+understood it.
+
+
+    Article 4 - EFFECTIVE DATE AND TERM
+
+
+      4.1 EFFECTIVE DATE
+
+The Agreement shall become effective on the date when it is accepted by
+the Licensee as set forth in Article 3.1.
+
+
+      4.2 TERM
+
+The Agreement shall remain in force for the entire legal term of
+protection of the economic rights over the Software.
+
+
+    Article 5 - SCOPE OF RIGHTS GRANTED
+
+The Licensor hereby grants to the Licensee, who accepts, the following
+rights over the Software for any or all use, and for the term of the
+Agreement, on the basis of the terms and conditions set forth hereinafter.
+
+Besides, if the Licensor owns or comes to own one or more patents
+protecting all or part of the functions of the Software or of its
+components, the Licensor undertakes not to enforce the rights granted by
+these patents against successive Licensees using, exploiting or
+modifying the Software. If these patents are transferred, the Licensor
+undertakes to have the transferees subscribe to the obligations set
+forth in this paragraph.
+
+
+      5.1 RIGHT OF USE
+
+The Licensee is authorized to use the Software, without any limitation
+as to its fields of application, with it being hereinafter specified
+that this comprises:
+
+   1. permanent or temporary reproduction of all or part of the Software
+      by any or all means and in any or all form.
+
+   2. loading, displaying, running, or storing the Software on any or
+      all medium.
+
+   3. entitlement to observe, study or test its operation so as to
+      determine the ideas and principles behind any or all constituent
+      elements of said Software. This shall apply when the Licensee
+      carries out any or all loading, displaying, running, transmission
+      or storage operation as regards the Software, that it is entitled
+      to carry out hereunder.
+
+
+      5.2 ENTITLEMENT TO MAKE CONTRIBUTIONS
+
+The right to make Contributions includes the right to translate, adapt,
+arrange, or make any or all modifications to the Software, and the right
+to reproduce the resulting software.
+
+The Licensee is authorized to make any or all Contributions to the
+Software provided that it includes an explicit notice that it is the
+author of said Contribution and indicates the date of the creation thereof.
+
+
+      5.3 RIGHT OF DISTRIBUTION
+
+In particular, the right of distribution includes the right to publish,
+transmit and communicate the Software to the general public on any or
+all medium, and by any or all means, and the right to market, either in
+consideration of a fee, or free of charge, one or more copies of the
+Software by any means.
+
+The Licensee is further authorized to distribute copies of the modified
+or unmodified Software to third parties according to the terms and
+conditions set forth hereinafter.
+
+
+        5.3.1 DISTRIBUTION OF SOFTWARE WITHOUT MODIFICATION
+
+The Licensee is authorized to distribute true copies of the Software in
+Source Code or Object Code form, provided that said distribution
+complies with all the provisions of the Agreement and is accompanied by:
+
+   1. a copy of the Agreement,
+
+   2. a notice relating to the limitation of both the Licensor's
+      warranty and liability as set forth in Articles 8 and 9,
+
+and that, in the event that only the Object Code of the Software is
+redistributed, the Licensee allows future Licensees unhindered access to
+the full Source Code of the Software by indicating how to access it, it
+being understood that the additional cost of acquiring the Source Code
+shall not exceed the cost of transferring the data.
+
+
+        5.3.2 DISTRIBUTION OF MODIFIED SOFTWARE
+
+When the Licensee makes a Contribution to the Software, the terms and
+conditions for the distribution of the resulting Modified Software
+become subject to all the provisions of this Agreement.
+
+The Licensee is authorized to distribute the Modified Software, in
+source code or object code form, provided that said distribution
+complies with all the provisions of the Agreement and is accompanied by:
+
+   1. a copy of the Agreement,
+
+   2. a notice relating to the limitation of both the Licensor's
+      warranty and liability as set forth in Articles 8 and 9,
+
+and that, in the event that only the object code of the Modified
+Software is redistributed, the Licensee allows future Licensees
+unhindered access to the full source code of the Modified Software by
+indicating how to access it, it being understood that the additional
+cost of acquiring the source code shall not exceed the cost of
+transferring the data.
+
+
+        5.3.3 DISTRIBUTION OF EXTERNAL MODULES
+
+When the Licensee has developed an External Module, the terms and
+conditions of this Agreement do not apply to said External Module, that
+may be distributed under a separate license agreement.
+
+
+        5.3.4 COMPATIBILITY WITH THE GNU GPL
+
+The Licensee can include a code that is subject to the provisions of one
+of the versions of the GNU GPL in the Modified or unmodified Software,
+and distribute that entire code under the terms of the same version of
+the GNU GPL.
+
+The Licensee can include the Modified or unmodified Software in a code
+that is subject to the provisions of one of the versions of the GNU GPL,
+and distribute that entire code under the terms of the same version of
+the GNU GPL.
+
+
+    Article 6 - INTELLECTUAL PROPERTY
+
+
+      6.1 OVER THE INITIAL SOFTWARE
+
+The Holder owns the economic rights over the Initial Software. Any or
+all use of the Initial Software is subject to compliance with the terms
+and conditions under which the Holder has elected to distribute its work
+and no one shall be entitled to modify the terms and conditions for the
+distribution of said Initial Software.
+
+The Holder undertakes that the Initial Software will remain ruled at
+least by this Agreement, for the duration set forth in Article 4.2.
+
+
+      6.2 OVER THE CONTRIBUTIONS
+
+The Licensee who develops a Contribution is the owner of the
+intellectual property rights over this Contribution as defined by
+applicable law.
+
+
+      6.3 OVER THE EXTERNAL MODULES
+
+The Licensee who develops an External Module is the owner of the
+intellectual property rights over this External Module as defined by
+applicable law and is free to choose the type of agreement that shall
+govern its distribution.
+
+
+      6.4 JOINT PROVISIONS
+
+The Licensee expressly undertakes:
+
+   1. not to remove, or modify, in any manner, the intellectual property
+      notices attached to the Software;
+
+   2. to reproduce said notices, in an identical manner, in the copies
+      of the Software modified or not.
+
+The Licensee undertakes not to directly or indirectly infringe the
+intellectual property rights of the Holder and/or Contributors on the
+Software and to take, where applicable, vis-�-vis its staff, any and all
+measures required to ensure respect of said intellectual property rights
+of the Holder and/or Contributors.
+
+
+    Article 7 - RELATED SERVICES
+
+7.1 Under no circumstances shall the Agreement oblige the Licensor to
+provide technical assistance or maintenance services for the Software.
+
+However, the Licensor is entitled to offer this type of services. The
+terms and conditions of such technical assistance, and/or such
+maintenance, shall be set forth in a separate instrument. Only the
+Licensor offering said maintenance and/or technical assistance services
+shall incur liability therefor.
+
+7.2 Similarly, any Licensor is entitled to offer to its licensees, under
+its sole responsibility, a warranty, that shall only be binding upon
+itself, for the redistribution of the Software and/or the Modified
+Software, under terms and conditions that it is free to decide. Said
+warranty, and the financial terms and conditions of its application,
+shall be subject of a separate instrument executed between the Licensor
+and the Licensee.
+
+
+    Article 8 - LIABILITY
+
+8.1 Subject to the provisions of Article 8.2, the Licensee shall be
+entitled to claim compensation for any direct loss it may have suffered
+from the Software as a result of a fault on the part of the relevant
+Licensor, subject to providing evidence thereof.
+
+8.2 The Licensor's liability is limited to the commitments made under
+this Agreement and shall not be incurred as a result of in particular:
+(i) loss due the Licensee's total or partial failure to fulfill its
+obligations, (ii) direct or consequential loss that is suffered by the
+Licensee due to the use or performance of the Software, and (iii) more
+generally, any consequential loss. In particular the Parties expressly
+agree that any or all pecuniary or business loss (i.e. loss of data,
+loss of profits, operating loss, loss of customers or orders,
+opportunity cost, any disturbance to business activities) or any or all
+legal proceedings instituted against the Licensee by a third party,
+shall constitute consequential loss and shall not provide entitlement to
+any or all compensation from the Licensor.
+
+
+    Article 9 - WARRANTY
+
+9.1 The Licensee acknowledges that the scientific and technical
+state-of-the-art when the Software was distributed did not enable all
+possible uses to be tested and verified, nor for the presence of
+possible defects to be detected. In this respect, the Licensee's
+attention has been drawn to the risks associated with loading, using,
+modifying and/or developing and reproducing the Software which are
+reserved for experienced users.
+
+The Licensee shall be responsible for verifying, by any or all means,
+the suitability of the product for its requirements, its good working
+order, and for ensuring that it shall not cause damage to either persons
+or properties.
+
+9.2 The Licensor hereby represents, in good faith, that it is entitled
+to grant all the rights over the Software (including in particular the
+rights set forth in Article 5).
+
+9.3 The Licensee acknowledges that the Software is supplied "as is" by
+the Licensor without any other express or tacit warranty, other than
+that provided for in Article 9.2 and, in particular, without any warranty 
+as to its commercial value, its secured, safe, innovative or relevant
+nature.
+
+Specifically, the Licensor does not warrant that the Software is free
+from any error, that it will operate without interruption, that it will
+be compatible with the Licensee's own equipment and software
+configuration, nor that it will meet the Licensee's requirements.
+
+9.4 The Licensor does not either expressly or tacitly warrant that the
+Software does not infringe any third party intellectual property right
+relating to a patent, software or any other property right. Therefore,
+the Licensor disclaims any and all liability towards the Licensee
+arising out of any or all proceedings for infringement that may be
+instituted in respect of the use, modification and redistribution of the
+Software. Nevertheless, should such proceedings be instituted against
+the Licensee, the Licensor shall provide it with technical and legal
+assistance for its defense. Such technical and legal assistance shall be
+decided on a case-by-case basis between the relevant Licensor and the
+Licensee pursuant to a memorandum of understanding. The Licensor
+disclaims any and all liability as regards the Licensee's use of the
+name of the Software. No warranty is given as regards the existence of
+prior rights over the name of the Software or as regards the existence
+of a trademark.
+
+
+    Article 10 - TERMINATION
+
+10.1 In the event of a breach by the Licensee of its obligations
+hereunder, the Licensor may automatically terminate this Agreement
+thirty (30) days after notice has been sent to the Licensee and has
+remained ineffective.
+
+10.2 A Licensee whose Agreement is terminated shall no longer be
+authorized to use, modify or distribute the Software. However, any
+licenses that it may have granted prior to termination of the Agreement
+shall remain valid subject to their having been granted in compliance
+with the terms and conditions hereof.
+
+
+    Article 11 - MISCELLANEOUS
+
+
+      11.1 EXCUSABLE EVENTS
+
+Neither Party shall be liable for any or all delay, or failure to
+perform the Agreement, that may be attributable to an event of force
+majeure, an act of God or an outside cause, such as defective
+functioning or interruptions of the electricity or telecommunications
+networks, network paralysis following a virus attack, intervention by
+government authorities, natural disasters, water damage, earthquakes,
+fire, explosions, strikes and labor unrest, war, etc.
+
+11.2 Any failure by either Party, on one or more occasions, to invoke
+one or more of the provisions hereof, shall under no circumstances be
+interpreted as being a waiver by the interested Party of its right to
+invoke said provision(s) subsequently.
+
+11.3 The Agreement cancels and replaces any or all previous agreements,
+whether written or oral, between the Parties and having the same
+purpose, and constitutes the entirety of the agreement between said
+Parties concerning said purpose. No supplement or modification to the
+terms and conditions hereof shall be effective as between the Parties
+unless it is made in writing and signed by their duly authorized
+representatives.
+
+11.4 In the event that one or more of the provisions hereof were to
+conflict with a current or future applicable act or legislative text,
+said act or legislative text shall prevail, and the Parties shall make
+the necessary amendments so as to comply with said act or legislative
+text. All other provisions shall remain effective. Similarly, invalidity
+of a provision of the Agreement, for any reason whatsoever, shall not
+cause the Agreement as a whole to be invalid.
+
+
+      11.5 LANGUAGE
+
+The Agreement is drafted in both French and English and both versions
+are deemed authentic.
+
+
+    Article 12 - NEW VERSIONS OF THE AGREEMENT
+
+12.1 Any person is authorized to duplicate and distribute copies of this
+Agreement.
+
+12.2 So as to ensure coherence, the wording of this Agreement is
+protected and may only be modified by the authors of the License, who
+reserve the right to periodically publish updates or new versions of the
+Agreement, each with a separate number. These subsequent versions may
+address new issues encountered by Free Software.
+
+12.3 Any Software distributed under a given version of the Agreement may
+only be subsequently distributed under the same version of the Agreement
+or a subsequent version, subject to the provisions of Article 5.3.4.
+
+
+    Article 13 - GOVERNING LAW AND JURISDICTION
+
+13.1 The Agreement is governed by French law. The Parties agree to
+endeavor to seek an amicable solution to any disagreements or disputes
+that may arise during the performance of the Agreement.
+
+13.2 Failing an amicable solution within two (2) months as from their
+occurrence, and unless emergency proceedings are necessary, the
+disagreements or disputes shall be referred to the Paris Courts having
+jurisdiction, by the more diligent Party.
+
+
+Version 2.0 dated 2006-09-05.
diff --git a/PKG-INFO b/PKG-INFO
index 404d246..aa7ae97 100644
--- a/PKG-INFO
+++ b/PKG-INFO
@@ -1,6 +1,6 @@
 Metadata-Version: 1.1
 Name: guidata
-Version: 1.7.0b2
+Version: 1.7.0b3
 Summary: guidata is a set of basic GUIs to edit and display objects of many kinds
 Home-page: https://github.com/PierreRaybaut/guidata
 Author: Pierre Raybaut
diff --git a/guidata-tests b/guidata-tests
index 491db57..edeca12 100644
--- a/guidata-tests
+++ b/guidata-tests
@@ -1,3 +1,3 @@
-#!/usr/bin/env python
-from guidata import tests
+#!/usr/bin/env python
+from guidata import tests
 tests.run()
\ No newline at end of file
diff --git a/guidata.egg-info/PKG-INFO b/guidata.egg-info/PKG-INFO
index 404d246..aa7ae97 100644
--- a/guidata.egg-info/PKG-INFO
+++ b/guidata.egg-info/PKG-INFO
@@ -1,6 +1,6 @@
 Metadata-Version: 1.1
 Name: guidata
-Version: 1.7.0b2
+Version: 1.7.0b3
 Summary: guidata is a set of basic GUIs to edit and display objects of many kinds
 Home-page: https://github.com/PierreRaybaut/guidata
 Author: Pierre Raybaut
diff --git a/guidata/__init__.py b/guidata/__init__.py
index 9d40af1..6574122 100644
--- a/guidata/__init__.py
+++ b/guidata/__init__.py
@@ -15,7 +15,7 @@ External resources:
 .. _GoogleGroup: http://groups.google.fr/group/guidata_guiqwt
 """
 
-__version__ = '1.7.0b2'
+__version__ = '1.7.0b3'
 
 # Dear (Debian, RPM, ...) package makers, please feel free to customize the
 # following path to module's data (images) and translations:
diff --git a/guidata/dataset/dataitems.py b/guidata/dataset/dataitems.py
index acd594d..6354d10 100644
--- a/guidata/dataset/dataitems.py
+++ b/guidata/dataset/dataitems.py
@@ -32,9 +32,10 @@ class NumericTypeItem(DataItem):
     """
     type = None
     def __init__(self, label, default=None, min=None, max=None,
-                 nonzero=None, unit='', help=''):
+                 nonzero=None, unit='', help='', check=True):
         DataItem.__init__(self, label, default=default, help=help)
-        self.set_prop("data", min=min, max=max, nonzero=nonzero)
+        self.set_prop("data", min=min, max=max, nonzero=nonzero,
+                      check_value=check)
         self.set_prop("display", unit=unit)
         
     def get_auto_help(self, instance):
@@ -67,7 +68,9 @@ class NumericTypeItem(DataItem):
         return text
 
     def check_value(self, value):
-        """Override DataItem method"""
+        """Override DataItem method"""        
+        if not self.get_prop('data', 'check_value', True):
+            return True 
         if not isinstance(value, self.type):
             return False
         if self.get_prop("data", "nonzero") and value == 0:
@@ -107,12 +110,13 @@ class FloatItem(NumericTypeItem):
         * nonzero [bool]: if True, zero is not a valid value (optional)
         * unit [string]: physical unit (optional)
         * help [string]: text shown in tooltip (optional)
+        * check [bool]: if False, value is not checked (optional, default=True)
     """
     type = float
-    def __init__(self, label, default=None, min=None, max=None,
-                 nonzero=None, unit='', step=0.1, slider=False, help=''):
+    def __init__(self, label, default=None, min=None, max=None, nonzero=None,
+                 unit='', step=0.1, slider=False, help='', check=True):
         super(FloatItem, self).__init__(label, default=default, min=min,
-                                max=max, nonzero=nonzero, unit=unit, help=help)
+                max=max, nonzero=nonzero, unit=unit, help=help, check=check)
         self.set_prop("display", slider=slider)
         self.set_prop("data", step=step)
 
@@ -136,12 +140,13 @@ class IntItem(NumericTypeItem):
         * slider [bool]: if True, shows a slider widget right after the line 
           edit widget (default is False)
         * help [string]: text shown in tooltip (optional)
+        * check [bool]: if False, value is not checked (optional, default=True)
     """
     type = int
-    def __init__(self, label, default=None, min=None, max=None,
-                 nonzero=None, unit='', even=None, slider=False, help=''):
+    def __init__(self, label, default=None, min=None, max=None, nonzero=None,
+                 unit='', even=None, slider=False, help='', check=True):
         super(IntItem, self).__init__(label, default=default, min=min, max=max,
-                                      nonzero=nonzero, unit=unit, help=help)
+                            nonzero=nonzero, unit=unit, help=help, check=check)
         self.set_prop("data", even=even)
         self.set_prop("display", slider=slider)
         
@@ -157,7 +162,9 @@ class IntItem(NumericTypeItem):
         return auto_help
         
     def check_value(self, value):
-        """Override DataItem method"""
+        """Override DataItem method"""        
+        if not self.get_prop('data', 'check_value', True):
+            return True 
         valid = super(IntItem, self).check_value(value)
         if not valid:
             return False
@@ -184,14 +191,14 @@ class StringItem(DataItem):
         * wordwrap [bool]: toggle word wrapping (optional)
     """
     type = TEXT_TYPES
-    def __init__(self, label, default=None, notempty=None,
-                 wordwrap=False, help=''):
+    def __init__(self, label, default=None, notempty=None, wordwrap=False,
+                 help=''):
         DataItem.__init__(self, label, default=default, help=help)
         self.set_prop("data", notempty=notempty)
         self.set_prop("display", wordwrap=wordwrap)
 
     def check_value(self, value):
-        """Override DataItem method"""
+        """Override DataItem method"""        
         notempty = self.get_prop("data", "notempty")
         if notempty and not value:
             return False
@@ -230,10 +237,11 @@ class BoolItem(DataItem):
         * label [string]: name
         * default [string]: default value (optional)
         * help [string]: text shown in tooltip (optional)
+        * check [bool]: if False, value is not checked (optional, default=True)
     """
     type = bool
-    def __init__(self, text='', label='', default=None, help=''):
-        DataItem.__init__(self, label, default=default, help=help)
+    def __init__(self, text='', label='', default=None, help='', check=True):
+        DataItem.__init__(self, label, default=default, help=help, check=check)
         self.set_prop("display", text=text)
 
     def get_value_from_reader(self, reader):
@@ -262,11 +270,14 @@ class ColorItem(StringItem):
         * label [string]: name
         * default [string]: default value (optional)
         * help [string]: text shown in tooltip (optional)
+        * check [bool]: if False, value is not checked (optional, default=True)
     
     Color values are encoded as hexadecimal strings or Qt color names
     """
     def check_value(self, value):
-        """Override DataItem method"""
+        """Override DataItem method"""        
+        if not self.get_prop('data', 'check_value', True):
+            return True 
         if not isinstance(value, self.type):
             return False
         from guidata.qthelpers import text_to_qcolor
@@ -289,10 +300,11 @@ class FileSaveItem(StringItem):
         * default [string]: default value (optional)
         * basedir [string]: default base directory (optional)
         * help [string]: text shown in tooltip (optional)
+        * check [bool]: if False, value is not checked (optional, default=True)
     """
     def __init__(self, label, formats='*', default=None,
-                 basedir=None, all_files_first=False, help=''):
-        DataItem.__init__(self, label, default=default, help=help)
+                 basedir=None, all_files_first=False, help='', check=True):
+        DataItem.__init__(self, label, default=default, help=help, check=check)
         if isinstance(formats, str):
             formats = [formats]
         self.set_prop("data", formats=formats)
@@ -306,7 +318,9 @@ class FileSaveItem(StringItem):
                else _("supported file types:") + " *.%s" % ", *.".join(formats)
     
     def check_value(self, value):
-        """Override DataItem method"""
+        """Override DataItem method"""        
+        if not self.get_prop('data', 'check_value', True):
+            return True 
         if not isinstance(value, self.type):
             return False
         return len(value)>0
@@ -324,9 +338,12 @@ class FileOpenItem(FileSaveItem):
         * default [string]: default value (optional)
         * basedir [string]: default base directory (optional)
         * help [string]: text shown in tooltip (optional)
+        * check [bool]: if False, value is not checked (optional, default=True)
     """
     def check_value(self, value):
         """Override DataItem method"""
+        if not self.get_prop('data', 'check_value', True):
+            return True        
         if not isinstance(value, self.type):
             return False
         return os.path.exists(value) and os.path.isfile(value)
@@ -340,18 +357,21 @@ class FilesOpenItem(FileSaveItem):
         * default [string]: default value (optional)
         * basedir [string]: default base directory (optional)
         * help [string]: text shown in tooltip (optional)
+        * check [bool]: if False, value is not checked (optional, default=True)
     """
     type = list
     def __init__(self, label, formats='*', default=None,
-                 basedir=None, all_files_first=False, help=''):
+                 basedir=None, all_files_first=False, help='', check=True):
         if is_text_string(default):
             default = [default]
-        FileSaveItem.__init__(self, label, formats=formats,
-                              default=default, basedir=basedir,
-                              all_files_first=all_files_first, help=help)
+        FileSaveItem.__init__(self, label, formats=formats, default=default,
+                              basedir=basedir, all_files_first=all_files_first,
+                              help=help, check=check)
 
     def check_value(self, value):
         """Override DataItem method"""
+        if not self.get_prop('data', 'check_value', True):
+            return True 
         allexist = True
         for path in value:
             allexist = allexist and os.path.exists(path) \
@@ -385,9 +405,12 @@ class DirectoryItem(StringItem):
         * label [string]: name
         * default [string]: default value (optional)
         * help [string]: text shown in tooltip (optional)
+        * check [bool]: if False, value is not checked (optional, default=True)
     """
     def check_value(self, value):
-        """Override DataItem method"""
+        """Override DataItem method"""        
+        if not self.get_prop('data', 'check_value', True):
+            return True 
         if not isinstance(value, self.type):
             return False
         return os.path.exists(value) and os.path.isdir(value)
@@ -406,8 +429,10 @@ class ChoiceItem(DataItem):
           or a function of one argument (key) returning a QIcon instance
         * default [-]: default label or default key (optional)
         * help [string]: text shown in tooltip (optional)
+        * check [bool]: if False, value is not checked (optional, default=True)
     """
-    def __init__(self, label, choices, default=FirstChoice, help=''):
+    def __init__(self, label, choices, default=FirstChoice, help='',
+                 check=True):
         if isinstance(choices, collections.Callable):
             _choices_data = ItemProperty(choices)
         else:
@@ -419,7 +444,7 @@ class ChoiceItem(DataItem):
             default = _choices_data[0][0]
         elif default is FirstChoice:
             default = None
-        DataItem.__init__(self, label, default=default, help=help)
+        DataItem.__init__(self, label, default=default, help=help, check=check)
         self.set_prop("data", choices=_choices_data )
 
     def _normalize_choice(self, idx, choice_tuple):
@@ -458,9 +483,10 @@ class MultipleChoiceItem(ChoiceItem):
         * choices [list or tuple]: string list or (key, label) list
         * default [-]: default label or default key (optional)
         * help [string]: text shown in tooltip (optional)
+        * check [bool]: if False, value is not checked (optional, default=True)
     """
-    def __init__(self, label, choices, default=(), help=''):
-        ChoiceItem.__init__(self, label, choices, default, help)
+    def __init__(self, label, choices, default=(), help='', check=True):
+        ChoiceItem.__init__(self, label, choices, default, help, check=check)
         self.set_prop("display", shape = (1, -1))
         
     def horizontal(self, row_nb=1):
@@ -516,6 +542,7 @@ class ImageChoiceItem(ChoiceItem):
           returning a QIcon instance
         * default [-]: default label or default key (optional)
         * help [string]: text shown in tooltip (optional)
+        * check [bool]: if False, value is not checked (optional, default=True)
     """
     def _normalize_choice(self, idx, choice_tuple):
         assert isinstance(choice_tuple, tuple)
@@ -540,10 +567,11 @@ class FloatArrayItem(DataItem):
         * transpose [bool]: transpose matrix (display only)
         * large [bool]: view all float of the array
         * minmax [string]: "all" (default), "columns", "rows"
+        * check [bool]: if False, value is not checked (optional, default=True)
     """
     def __init__(self, label, default=None, help='', format='%.3f',
-                 transpose=False, minmax="all"):
-        DataItem.__init__(self, label, default=default, help=help)
+                 transpose=False, minmax="all", check=True):
+        DataItem.__init__(self, label, default=default, help=help, check=check)
         self.set_prop("display", format=format, transpose=transpose,
                       minmax=minmax)
         
@@ -591,12 +619,14 @@ class ButtonItem(DataItem):
           (string: icon filename as in guidata/guiqwt image search paths)
         * default [unspecified]: default value passed to the callback (optional)
         * help [string]: text shown in button's tooltip (optional)
+        * check [bool]: if False, value is not checked (optional, default=True)
     
     The value of this item is unspecified but is passed to the callback along 
     with the whole dataset. The value is assigned the callback`s return value.
     """
-    def __init__(self, label, callback, icon=None, default=None, help=''):
-        DataItem.__init__(self, label, default=default, help=help)
+    def __init__(self, label, callback, icon=None, default=None, help='',
+                 check=True):
+        DataItem.__init__(self, label, default=default, help=help, check=check)
         self.set_prop("display", callback=callback)
         self.set_prop("display", icon=icon)
 
@@ -614,8 +644,9 @@ class DictItem(ButtonItem):
         * label [string]: name
         * default [dict]: default value (optional)
         * help [string]: text shown in tooltip (optional)
+        * check [bool]: if False, value is not checked (optional, default=True)
     """
-    def __init__(self, label, default=None, help=''):
+    def __init__(self, label, default=None, help='', check=True):
         def dictedit(instance, item, value, parent):
             from spyderlib.widgets.dicteditor import DictEditor
             editor = DictEditor(parent)
@@ -629,8 +660,8 @@ class DictItem(ButtonItem):
                 if value_was_none:
                     return
                 return value
-        ButtonItem.__init__(self, label, dictedit,
-                            icon='dictedit.png', default=default, help=help)
+        ButtonItem.__init__(self, label, dictedit, icon='dictedit.png',
+                            default=default, help=help, check=check)
 
 
 class FontFamilyItem(StringItem):
diff --git a/guidata/dataset/datatypes.py b/guidata/dataset/datatypes.py
index caad131..8332be7 100644
--- a/guidata/dataset/datatypes.py
+++ b/guidata/dataset/datatypes.py
@@ -145,7 +145,7 @@ class DataItem(object):
     """
     count = 0
 
-    def __init__(self, label, default=None, help=''):
+    def __init__(self, label, default=None, help='', check=True):
         self._order = DataItem.count
         DataItem.count += 1
         self._name = None
@@ -154,6 +154,7 @@ class DataItem(object):
         self._props = {} # a dict realm->dict containing realm-specific properties
         self.set_prop("display", col=0, colspan=None,
                       label=utf8_to_unicode(label))
+        self.set_prop('data', check_value=check)
 
     def get_prop(self, realm, name, default=NoDefault):
         """Get one property of this item"""
diff --git a/guidata/images/apply.png b/guidata/images/apply.png
index 2f86f0a..f599260 100644
Binary files a/guidata/images/apply.png and b/guidata/images/apply.png differ
diff --git a/guidata/images/arredit.png b/guidata/images/arredit.png
index 17643e2..d219a96 100644
Binary files a/guidata/images/arredit.png and b/guidata/images/arredit.png differ
diff --git a/guidata/images/busy.png b/guidata/images/busy.png
index d95221b..906a9e1 100644
Binary files a/guidata/images/busy.png and b/guidata/images/busy.png differ
diff --git a/guidata/images/cell_edit.png b/guidata/images/cell_edit.png
index 2de3c2e..a4e8bfc 100644
Binary files a/guidata/images/cell_edit.png and b/guidata/images/cell_edit.png differ
diff --git a/guidata/images/copy.png b/guidata/images/copy.png
index f882aa2..4311a78 100644
Binary files a/guidata/images/copy.png and b/guidata/images/copy.png differ
diff --git a/guidata/images/delete.png b/guidata/images/delete.png
index 2dd36b6..6725f65 100644
Binary files a/guidata/images/delete.png and b/guidata/images/delete.png differ
diff --git a/guidata/images/dictedit.png b/guidata/images/dictedit.png
index bbe7d07..096c23e 100644
Binary files a/guidata/images/dictedit.png and b/guidata/images/dictedit.png differ
diff --git a/guidata/images/edit.png b/guidata/images/edit.png
index 0fef9a9..c324bf6 100644
Binary files a/guidata/images/edit.png and b/guidata/images/edit.png differ
diff --git a/guidata/images/editors/edit.png b/guidata/images/editors/edit.png
index 0fef9a9..c324bf6 100644
Binary files a/guidata/images/editors/edit.png and b/guidata/images/editors/edit.png differ
diff --git a/guidata/images/editors/edit_add.png b/guidata/images/editors/edit_add.png
index 5b051f6..b88ace9 100644
Binary files a/guidata/images/editors/edit_add.png and b/guidata/images/editors/edit_add.png differ
diff --git a/guidata/images/editors/editcopy.png b/guidata/images/editors/editcopy.png
index a332961..dcb5c14 100644
Binary files a/guidata/images/editors/editcopy.png and b/guidata/images/editors/editcopy.png differ
diff --git a/guidata/images/editors/editdelete.png b/guidata/images/editors/editdelete.png
index f182216..713bdd4 100644
Binary files a/guidata/images/editors/editdelete.png and b/guidata/images/editors/editdelete.png differ
diff --git a/guidata/images/editors/editpaste.png b/guidata/images/editors/editpaste.png
index f9156c1..d4d0a0f 100644
Binary files a/guidata/images/editors/editpaste.png and b/guidata/images/editors/editpaste.png differ
diff --git a/guidata/images/editors/fileimport.png b/guidata/images/editors/fileimport.png
index 2cbb971..856fe24 100644
Binary files a/guidata/images/editors/fileimport.png and b/guidata/images/editors/fileimport.png differ
diff --git a/guidata/images/editors/filesave.png b/guidata/images/editors/filesave.png
index 7e32fc7..7f52a46 100644
Binary files a/guidata/images/editors/filesave.png and b/guidata/images/editors/filesave.png differ
diff --git a/guidata/images/editors/imshow.png b/guidata/images/editors/imshow.png
index 60d7f35..85001fd 100644
Binary files a/guidata/images/editors/imshow.png and b/guidata/images/editors/imshow.png differ
diff --git a/guidata/images/editors/insert.png b/guidata/images/editors/insert.png
index a87a07a..3058da3 100644
Binary files a/guidata/images/editors/insert.png and b/guidata/images/editors/insert.png differ
diff --git a/guidata/images/editors/plot.png b/guidata/images/editors/plot.png
index c810141..bda9b3d 100644
Binary files a/guidata/images/editors/plot.png and b/guidata/images/editors/plot.png differ
diff --git a/guidata/images/editors/rename.png b/guidata/images/editors/rename.png
index 2de3c2e..a4e8bfc 100644
Binary files a/guidata/images/editors/rename.png and b/guidata/images/editors/rename.png differ
diff --git a/guidata/images/exit.png b/guidata/images/exit.png
index fb510fb..eb91c9e 100644
Binary files a/guidata/images/exit.png and b/guidata/images/exit.png differ
diff --git a/guidata/images/expander_down.png b/guidata/images/expander_down.png
index c7b2f03..94d1423 100644
Binary files a/guidata/images/expander_down.png and b/guidata/images/expander_down.png differ
diff --git a/guidata/images/expander_right.png b/guidata/images/expander_right.png
index 5930e74..888b791 100644
Binary files a/guidata/images/expander_right.png and b/guidata/images/expander_right.png differ
diff --git a/guidata/images/file.png b/guidata/images/file.png
index 7f8be16..f9449ad 100644
Binary files a/guidata/images/file.png and b/guidata/images/file.png differ
diff --git a/guidata/images/fileclose.png b/guidata/images/fileclose.png
index 95458e0..f7cabdb 100644
Binary files a/guidata/images/fileclose.png and b/guidata/images/fileclose.png differ
diff --git a/guidata/images/fileimport.png b/guidata/images/fileimport.png
index 9850a45..7379bd8 100644
Binary files a/guidata/images/fileimport.png and b/guidata/images/fileimport.png differ
diff --git a/guidata/images/filenew.png b/guidata/images/filenew.png
index 76e81cd..6d8a564 100644
Binary files a/guidata/images/filenew.png and b/guidata/images/filenew.png differ
diff --git a/guidata/images/fileopen.png b/guidata/images/fileopen.png
index 4f046d4..c701cca 100644
Binary files a/guidata/images/fileopen.png and b/guidata/images/fileopen.png differ
diff --git a/guidata/images/filesave.png b/guidata/images/filesave.png
index 7e32fc7..7f52a46 100644
Binary files a/guidata/images/filesave.png and b/guidata/images/filesave.png differ
diff --git a/guidata/images/filesaveas.png b/guidata/images/filesaveas.png
index dfeb87b..1a07336 100644
Binary files a/guidata/images/filesaveas.png and b/guidata/images/filesaveas.png differ
diff --git a/guidata/images/filetypes/doc.png b/guidata/images/filetypes/doc.png
index 311665c..b732196 100644
Binary files a/guidata/images/filetypes/doc.png and b/guidata/images/filetypes/doc.png differ
diff --git a/guidata/images/filetypes/gif.png b/guidata/images/filetypes/gif.png
index af5683c..da5caeb 100644
Binary files a/guidata/images/filetypes/gif.png and b/guidata/images/filetypes/gif.png differ
diff --git a/guidata/images/filetypes/html.png b/guidata/images/filetypes/html.png
index 0f56a71..119b628 100644
Binary files a/guidata/images/filetypes/html.png and b/guidata/images/filetypes/html.png differ
diff --git a/guidata/images/filetypes/jpg.png b/guidata/images/filetypes/jpg.png
index af5683c..da5caeb 100644
Binary files a/guidata/images/filetypes/jpg.png and b/guidata/images/filetypes/jpg.png differ
diff --git a/guidata/images/filetypes/pdf.png b/guidata/images/filetypes/pdf.png
index 7962226..f52be03 100644
Binary files a/guidata/images/filetypes/pdf.png and b/guidata/images/filetypes/pdf.png differ
diff --git a/guidata/images/filetypes/png.png b/guidata/images/filetypes/png.png
index af5683c..da5caeb 100644
Binary files a/guidata/images/filetypes/png.png and b/guidata/images/filetypes/png.png differ
diff --git a/guidata/images/filetypes/pps.png b/guidata/images/filetypes/pps.png
index 762dfbc..31efbe0 100644
Binary files a/guidata/images/filetypes/pps.png and b/guidata/images/filetypes/pps.png differ
diff --git a/guidata/images/filetypes/ps.png b/guidata/images/filetypes/ps.png
index 9203b0d..639fd64 100644
Binary files a/guidata/images/filetypes/ps.png and b/guidata/images/filetypes/ps.png differ
diff --git a/guidata/images/filetypes/tar.png b/guidata/images/filetypes/tar.png
index 5a52ef8..6352941 100644
Binary files a/guidata/images/filetypes/tar.png and b/guidata/images/filetypes/tar.png differ
diff --git a/guidata/images/filetypes/tgz.png b/guidata/images/filetypes/tgz.png
index 5a52ef8..6352941 100644
Binary files a/guidata/images/filetypes/tgz.png and b/guidata/images/filetypes/tgz.png differ
diff --git a/guidata/images/filetypes/tif.png b/guidata/images/filetypes/tif.png
index af5683c..da5caeb 100644
Binary files a/guidata/images/filetypes/tif.png and b/guidata/images/filetypes/tif.png differ
diff --git a/guidata/images/filetypes/txt.png b/guidata/images/filetypes/txt.png
index 2867558..d7a9e44 100644
Binary files a/guidata/images/filetypes/txt.png and b/guidata/images/filetypes/txt.png differ
diff --git a/guidata/images/filetypes/xls.png b/guidata/images/filetypes/xls.png
index 42dc708..9c44bf6 100644
Binary files a/guidata/images/filetypes/xls.png and b/guidata/images/filetypes/xls.png differ
diff --git a/guidata/images/filetypes/zip.png b/guidata/images/filetypes/zip.png
index 5a52ef8..6352941 100644
Binary files a/guidata/images/filetypes/zip.png and b/guidata/images/filetypes/zip.png differ
diff --git a/guidata/images/guidata.svg b/guidata/images/guidata.svg
index 0283701..f8080d8 100644
--- a/guidata/images/guidata.svg
+++ b/guidata/images/guidata.svg
@@ -1,538 +1,538 @@
-<?xml version="1.0" encoding="UTF-8" standalone="no"?>
-<!-- Created with Inkscape (http://www.inkscape.org/) -->
-
-<svg
-   xmlns:osb="http://www.openswatchbook.org/uri/2009/osb"
-   xmlns:dc="http://purl.org/dc/elements/1.1/"
-   xmlns:cc="http://creativecommons.org/ns#"
-   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
-   xmlns:svg="http://www.w3.org/2000/svg"
-   xmlns="http://www.w3.org/2000/svg"
-   xmlns:xlink="http://www.w3.org/1999/xlink"
-   xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
-   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
-   version="1.0"
-   width="153.56583"
-   height="153.56583"
-   id="svg2"
-   sodipodi:version="0.32"
-   inkscape:version="0.48.2 r9819"
-   sodipodi:docname="guidata.svg"
-   inkscape:output_extension="org.inkscape.output.svg.inkscape"
-   inkscape:export-filename="D:\128.png"
-   inkscape:export-xdpi="28.091852"
-   inkscape:export-ydpi="28.091852">
-  <metadata
-     id="metadata2193">
-    <rdf:RDF>
-      <cc:Work
-         rdf:about="">
-        <dc:format>image/svg+xml</dc:format>
-        <dc:type
-           rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
-        <dc:title></dc:title>
-      </cc:Work>
-    </rdf:RDF>
-  </metadata>
-  <sodipodi:namedview
-     inkscape:window-height="744"
-     inkscape:window-width="1280"
-     inkscape:pageshadow="2"
-     inkscape:pageopacity="0.0"
-     borderopacity="1.0"
-     bordercolor="#666666"
-     pagecolor="#ffffff"
-     id="base"
-     inkscape:zoom="1.8528087"
-     inkscape:cx="-14.031974"
-     inkscape:cy="62.748306"
-     inkscape:window-x="24"
-     inkscape:window-y="91"
-     inkscape:current-layer="svg2"
-     showgrid="false"
-     fit-margin-top="0"
-     fit-margin-left="0"
-     fit-margin-right="0"
-     fit-margin-bottom="0"
-     inkscape:window-maximized="0" />
-  <defs
-     id="defs4">
-    <linearGradient
-       id="linearGradient7932"
-       osb:paint="solid">
-      <stop
-         style="stop-color:#a0a0a0;stop-opacity:1;"
-         offset="0"
-         id="stop7934" />
-    </linearGradient>
-    <linearGradient
-       id="linearGradient6481">
-      <stop
-         id="stop6483"
-         offset="0"
-         style="stop-color:#5a9fd4;stop-opacity:1" />
-      <stop
-         id="stop6485"
-         offset="1"
-         style="stop-color:#306998;stop-opacity:1" />
-    </linearGradient>
-    <marker
-       inkscape:stockid="Arrow2Mend"
-       orient="auto"
-       refY="0"
-       refX="0"
-       id="Arrow2Mend"
-       style="overflow:visible">
-      <path
-         id="path3908"
-         style="font-size:12px;fill-rule:evenodd;stroke-width:0.625;stroke-linejoin:round"
-         d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z"
-         transform="scale(-0.6,-0.6)"
-         inkscape:connector-curvature="0" />
-    </marker>
-    <marker
-       inkscape:stockid="Arrow1Send"
-       orient="auto"
-       refY="0"
-       refX="0"
-       id="Arrow1Send"
-       style="overflow:visible">
-      <path
-         id="path3896"
-         d="M 0,0 5,-5 -12.5,0 5,5 0,0 z"
-         style="fill-rule:evenodd;stroke:#000000;stroke-width:1pt;marker-start:none"
-         transform="matrix(-0.2,0,0,-0.2,-1.2,0)"
-         inkscape:connector-curvature="0" />
-    </marker>
-    <marker
-       inkscape:stockid="Arrow1Mend"
-       orient="auto"
-       refY="0"
-       refX="0"
-       id="Arrow1Mend"
-       style="overflow:visible">
-      <path
-         id="path3890"
-         d="M 0,0 5,-5 -12.5,0 5,5 0,0 z"
-         style="fill-rule:evenodd;stroke:#000000;stroke-width:1pt;marker-start:none"
-         transform="matrix(-0.4,0,0,-0.4,-4,0)"
-         inkscape:connector-curvature="0" />
-    </marker>
-    <marker
-       inkscape:stockid="Arrow2Lend"
-       orient="auto"
-       refY="0"
-       refX="0"
-       id="Arrow2Lend"
-       style="overflow:visible">
-      <path
-         id="path3902"
-         style="font-size:12px;fill-rule:evenodd;stroke-width:0.625;stroke-linejoin:round"
-         d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z"
-         transform="matrix(-1.1,0,0,-1.1,-1.1,0)"
-         inkscape:connector-curvature="0" />
-    </marker>
-    <linearGradient
-       id="linearGradient3812">
-      <stop
-         style="stop-color:#f0f0f0;stop-opacity:1;"
-         offset="0"
-         id="stop3814" />
-      <stop
-         style="stop-color:#ffffff;stop-opacity:1;"
-         offset="1"
-         id="stop3816" />
-    </linearGradient>
-    <linearGradient
-       id="linearGradient3802"
-       osb:paint="solid">
-      <stop
-         style="stop-color:#808080;stop-opacity:1;"
-         offset="0"
-         id="stop3804" />
-    </linearGradient>
-    <linearGradient
-       id="linearGradient3350">
-      <stop
-         style="stop-color:#00cb2b;stop-opacity:0.24793388;"
-         offset="0"
-         id="stop3352" />
-      <stop
-         style="stop-color:#00cb2b;stop-opacity:1;"
-         offset="1"
-         id="stop3354" />
-    </linearGradient>
-    <linearGradient
-       id="linearGradient3342">
-      <stop
-         style="stop-color:#005a85;stop-opacity:1;"
-         offset="0"
-         id="stop3344" />
-      <stop
-         style="stop-color:#005a85;stop-opacity:0.75206614;"
-         offset="1"
-         id="stop3346" />
-    </linearGradient>
-    <linearGradient
-       id="linearGradient3310">
-      <stop
-         id="stop3312"
-         offset="0"
-         style="stop-color:#ae0202;stop-opacity:1;" />
-      <stop
-         id="stop3314"
-         offset="1"
-         style="stop-color:#b47575;stop-opacity:1;" />
-    </linearGradient>
-    <inkscape:perspective
-       sodipodi:type="inkscape:persp3d"
-       inkscape:vp_x="0 : 71.887497 : 1"
-       inkscape:vp_y="0 : 1000 : 0"
-       inkscape:vp_z="486.04999 : 71.887497 : 1"
-       inkscape:persp3d-origin="243.02499 : 47.924998 : 1"
-       id="perspective47" />
-    <linearGradient
-       id="linearGradient2795">
-      <stop
-         style="stop-color:#b8b8b8;stop-opacity:0.49803922"
-         offset="0"
-         id="stop2797" />
-      <stop
-         style="stop-color:#7f7f7f;stop-opacity:0"
-         offset="1"
-         id="stop2799" />
-    </linearGradient>
-    <linearGradient
-       id="linearGradient2787">
-      <stop
-         style="stop-color:#7f7f7f;stop-opacity:0.5"
-         offset="0"
-         id="stop2789" />
-      <stop
-         style="stop-color:#7f7f7f;stop-opacity:0"
-         offset="1"
-         id="stop2791" />
-    </linearGradient>
-    <linearGradient
-       id="linearGradient3676">
-      <stop
-         style="stop-color:#b2b2b2;stop-opacity:0.5"
-         offset="0"
-         id="stop3678" />
-      <stop
-         style="stop-color:#b3b3b3;stop-opacity:0"
-         offset="1"
-         id="stop3680" />
-    </linearGradient>
-    <linearGradient
-       id="linearGradient3236">
-      <stop
-         style="stop-color:#f4f4f4;stop-opacity:1"
-         offset="0"
-         id="stop3244" />
-      <stop
-         style="stop-color:#ffffff;stop-opacity:1"
-         offset="1"
-         id="stop3240" />
-    </linearGradient>
-    <linearGradient
-       id="linearGradient4671">
-      <stop
-         style="stop-color:#ffd43b;stop-opacity:1"
-         offset="0"
-         id="stop4673" />
-      <stop
-         style="stop-color:#ffe873;stop-opacity:1"
-         offset="1"
-         id="stop4675" />
-    </linearGradient>
-    <linearGradient
-       id="linearGradient4689">
-      <stop
-         style="stop-color:#5a9fd4;stop-opacity:1"
-         offset="0"
-         id="stop4691" />
-      <stop
-         style="stop-color:#306998;stop-opacity:1"
-         offset="1"
-         id="stop4693" />
-    </linearGradient>
-    <linearGradient
-       x1="224.23996"
-       y1="144.75717"
-       x2="-65.308502"
-       y2="144.75717"
-       id="linearGradient2987"
-       xlink:href="#linearGradient4671"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="translate(100.2702,99.61116)" />
-    <linearGradient
-       x1="172.94208"
-       y1="77.475983"
-       x2="26.670298"
-       y2="76.313133"
-       id="linearGradient2990"
-       xlink:href="#linearGradient4689"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="translate(100.2702,99.61116)" />
-    <linearGradient
-       x1="172.94208"
-       y1="77.475983"
-       x2="26.670298"
-       y2="76.313133"
-       id="linearGradient2587"
-       xlink:href="#linearGradient4689"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="translate(100.2702,99.61116)" />
-    <linearGradient
-       x1="224.23996"
-       y1="144.75717"
-       x2="-65.308502"
-       y2="144.75717"
-       id="linearGradient2589"
-       xlink:href="#linearGradient4671"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="translate(100.2702,99.61116)" />
-    <linearGradient
-       x1="172.94208"
-       y1="77.475983"
-       x2="26.670298"
-       y2="76.313133"
-       id="linearGradient2248"
-       xlink:href="#linearGradient4689"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="translate(100.2702,99.61116)" />
-    <linearGradient
-       x1="224.23996"
-       y1="144.75717"
-       x2="-65.308502"
-       y2="144.75717"
-       id="linearGradient2250"
-       xlink:href="#linearGradient4671"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="translate(100.2702,99.61116)" />
-    <linearGradient
-       x1="224.23996"
-       y1="144.75717"
-       x2="-65.308502"
-       y2="144.75717"
-       id="linearGradient2255"
-       xlink:href="#linearGradient4671"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(0.562541,0,0,0.567972,-11.5974,-7.60954)" />
-    <linearGradient
-       x1="172.94208"
-       y1="76.176224"
-       x2="26.670298"
-       y2="76.313133"
-       id="linearGradient2258"
-       xlink:href="#linearGradient4689"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(0.562541,0,0,0.567972,-11.5974,-7.60954)" />
-    <radialGradient
-       cx="61.518883"
-       cy="132.28575"
-       r="29.036913"
-       fx="61.518883"
-       fy="132.28575"
-       id="radialGradient2801"
-       xlink:href="#linearGradient2795"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(1,0,0,0.177966,0,108.7434)" />
-    <linearGradient
-       x1="150.96111"
-       y1="192.35176"
-       x2="112.03144"
-       y2="137.27299"
-       id="linearGradient1475"
-       xlink:href="#linearGradient4671"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(0.562541,0,0,0.567972,-9.399749,-5.305317)" />
-    <linearGradient
-       x1="26.648937"
-       y1="20.603781"
-       x2="135.66525"
-       y2="114.39767"
-       id="linearGradient1478"
-       xlink:href="#linearGradient4689"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(0.562541,0,0,0.567972,-9.399749,-5.305317)" />
-    <radialGradient
-       cx="61.518883"
-       cy="132.28575"
-       r="29.036913"
-       fx="61.518883"
-       fy="132.28575"
-       id="radialGradient1480"
-       xlink:href="#linearGradient2795"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(2.382716e-8,-0.296405,1.43676,4.683673e-7,-128.544,150.5202)" />
-    <radialGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient2795"
-       id="radialGradient2421"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(1.7490565e-8,-0.239947,1.054668,3.7915457e-7,-78.109429,148.85906)"
-       cx="61.518883"
-       cy="132.28575"
-       fx="61.518883"
-       fy="132.28575"
-       r="29.036913" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient4671-8"
-       id="linearGradient3826-6"
-       x1="36.970898"
-       y1="54.646763"
-       x2="87.704681"
-       y2="54.646763"
-       gradientUnits="userSpaceOnUse" />
-    <linearGradient
-       id="linearGradient4671-8">
-      <stop
-         style="stop-color:#ffd43b;stop-opacity:1"
-         offset="0"
-         id="stop4673-8" />
-      <stop
-         style="stop-color:#ffe873;stop-opacity:1"
-         offset="1"
-         id="stop4675-2" />
-    </linearGradient>
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient3812"
-       id="linearGradient3818"
-       x1="78.012024"
-       y1="80.302933"
-       x2="124.67964"
-       y2="28.603327"
-       gradientUnits="userSpaceOnUse" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient4671-0"
-       id="linearGradient4097"
-       x1="-205.05431"
-       y1="55.606441"
-       x2="-64.806259"
-       y2="55.606441"
-       gradientUnits="userSpaceOnUse" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient4689-9"
-       id="linearGradient4377"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(0.562541,0,0,0.567972,-9.399749,-5.305317)"
-       x1="26.648937"
-       y1="20.603781"
-       x2="135.66525"
-       y2="114.39767" />
-    <linearGradient
-       id="linearGradient4689-9">
-      <stop
-         style="stop-color:#5a9fd4;stop-opacity:1"
-         offset="0"
-         id="stop4691-4" />
-      <stop
-         style="stop-color:#306998;stop-opacity:1"
-         offset="1"
-         id="stop4693-6" />
-    </linearGradient>
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient4671-0"
-       id="linearGradient4374"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(0.562541,0,0,0.567972,-9.399749,-5.305317)"
-       x1="150.96111"
-       y1="192.35176"
-       x2="112.03144"
-       y2="137.27299" />
-    <linearGradient
-       id="linearGradient4671-0">
-      <stop
-         style="stop-color:#ffd43b;stop-opacity:1"
-         offset="0"
-         id="stop4673-3" />
-      <stop
-         style="stop-color:#ffe873;stop-opacity:1"
-         offset="1"
-         id="stop4675-6" />
-    </linearGradient>
-    <radialGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient2795-2"
-       id="radialGradient4370"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(1.7490565e-8,-0.23994696,1.054668,3.7915457e-7,-78.109429,148.85906)"
-       cx="61.518883"
-       cy="132.28575"
-       fx="61.518883"
-       fy="132.28575"
-       r="29.036913" />
-    <linearGradient
-       id="linearGradient2795-2">
-      <stop
-         style="stop-color:#b8b8b8;stop-opacity:0.49803922"
-         offset="0"
-         id="stop2797-4" />
-      <stop
-         style="stop-color:#7f7f7f;stop-opacity:0"
-         offset="1"
-         id="stop2799-5" />
-    </linearGradient>
-    <radialGradient
-       r="29.036913"
-       fy="132.28575"
-       fx="61.518883"
-       cy="132.28575"
-       cx="61.518883"
-       gradientTransform="matrix(1.7490565e-8,-0.23994696,1.054668,3.7915457e-7,-78.109429,148.85906)"
-       gradientUnits="userSpaceOnUse"
-       id="radialGradient4416"
-       xlink:href="#linearGradient2795-2"
-       inkscape:collect="always" />
-    <radialGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient2795-2"
-       id="radialGradient4458"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(1.2864026e-8,-0.17647709,0.77569117,2.7886202e-7,-26.468105,126.78403)"
-       cx="61.518883"
-       cy="132.28575"
-       fx="61.518883"
-       fy="132.28575"
-       r="29.036913" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient6481"
-       id="linearGradient6479"
-       x1="-158.6674"
-       y1="46.147835"
-       x2="-78.777054"
-       y2="46.147835"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(2.0600988,0,0,2.0600988,293.35282,15.425527)" />
-  </defs>
-  <path
-     sodipodi:type="arc"
-     style="fill:url(#linearGradient4097);stroke:none;stroke-opacity:1;fill-opacity:1.0"
-     id="path4089"
-     sodipodi:cx="-134.93028"
-     sodipodi:cy="55.606441"
-     sodipodi:rx="69.624023"
-     sodipodi:ry="51.543369"
-     d="m -65.306259,55.606441 a 69.624023,51.543369 0 1 1 -139.248051,0 69.624023,51.543369 0 1 1 139.248051,0 z"
-     transform="translate(211.03096,8.635538)" />
-  <path
-     inkscape:connector-curvature="0"
-     d="m 76.316126,27.404597 c -9.167009,0.04257 -17.921288,0.824402 -25.624146,2.187424 -22.69166,4.00887 -26.811595,12.399787 -26.811595,27.874061 l 0,20.436814 53.623186,0 0,6.812269 -3.339702,33.912115 50.740901,-12.82264 c 4.93564,0.10584 11.42175,-6.328919 6.15952,-48.338558 0,-14.532187 -12.25955,-25.448698 -26.81161,-27.874061 C 95.041031,28.05862 85.483112,27.361995 76.316126,27.404597 z M 47.317113,43.841543 c 5.538896,0 10.062145,4.597138 10.062145,10.249652 0,5.632485 -4.523 [...]
-     style="fill:url(#linearGradient6479);fill-opacity:1;fill-rule:nonzero"
-     id="path1948"
-     sodipodi:nodetypes="scscccccccssssss" />
-  <path
-     style="font-size:medium;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-indent:0;text-align:start;text-decoration:none;line-height:normal;letter-spacing:normal;word-spacing:normal;text-transform:none;direction:ltr;block-progression:tb;writing-mode:lr-tb;text-anchor:start;baseline-shift:baseline;color:#000000;fill:#db945f;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:9.58500000000000090;marker:none;visibility:visible;display:inline;overfl [...]
-     d="m 77.306851,8.1694723 c -42.510551,0 -77.413721,20.0662467 -77.413721,53.2120357 0,8.286447 2.1477156,16.195516 6.0335163,23.397993 3.8858007,7.202478 9.5096867,13.698363 16.4620267,19.158439 6.952341,5.46008 15.233136,9.88436 24.432756,12.94361 9.199619,3.05926 42.526071,31.19983 53.153709,31.19983 5.313822,0 -21.121472,-14.05573 -18.222782,-20.92935 2.445252,-5.79838 20.364304,-8.74085 24.965674,-10.27048 9.20273,-3.05926 17.48768,-7.48353 24.44418,-12.94361 6.9565,-5.460076 12 [...]
-     id="path3032"
-     inkscape:connector-curvature="0"
-     sodipodi:nodetypes="ssssssssssssssssssss" />
-</svg>
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+   xmlns:osb="http://www.openswatchbook.org/uri/2009/osb"
+   xmlns:dc="http://purl.org/dc/elements/1.1/"
+   xmlns:cc="http://creativecommons.org/ns#"
+   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+   xmlns:svg="http://www.w3.org/2000/svg"
+   xmlns="http://www.w3.org/2000/svg"
+   xmlns:xlink="http://www.w3.org/1999/xlink"
+   xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+   version="1.0"
+   width="153.56583"
+   height="153.56583"
+   id="svg2"
+   sodipodi:version="0.32"
+   inkscape:version="0.48.2 r9819"
+   sodipodi:docname="guidata.svg"
+   inkscape:output_extension="org.inkscape.output.svg.inkscape"
+   inkscape:export-filename="D:\128.png"
+   inkscape:export-xdpi="28.091852"
+   inkscape:export-ydpi="28.091852">
+  <metadata
+     id="metadata2193">
+    <rdf:RDF>
+      <cc:Work
+         rdf:about="">
+        <dc:format>image/svg+xml</dc:format>
+        <dc:type
+           rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+        <dc:title></dc:title>
+      </cc:Work>
+    </rdf:RDF>
+  </metadata>
+  <sodipodi:namedview
+     inkscape:window-height="744"
+     inkscape:window-width="1280"
+     inkscape:pageshadow="2"
+     inkscape:pageopacity="0.0"
+     borderopacity="1.0"
+     bordercolor="#666666"
+     pagecolor="#ffffff"
+     id="base"
+     inkscape:zoom="1.8528087"
+     inkscape:cx="-14.031974"
+     inkscape:cy="62.748306"
+     inkscape:window-x="24"
+     inkscape:window-y="91"
+     inkscape:current-layer="svg2"
+     showgrid="false"
+     fit-margin-top="0"
+     fit-margin-left="0"
+     fit-margin-right="0"
+     fit-margin-bottom="0"
+     inkscape:window-maximized="0" />
+  <defs
+     id="defs4">
+    <linearGradient
+       id="linearGradient7932"
+       osb:paint="solid">
+      <stop
+         style="stop-color:#a0a0a0;stop-opacity:1;"
+         offset="0"
+         id="stop7934" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient6481">
+      <stop
+         id="stop6483"
+         offset="0"
+         style="stop-color:#5a9fd4;stop-opacity:1" />
+      <stop
+         id="stop6485"
+         offset="1"
+         style="stop-color:#306998;stop-opacity:1" />
+    </linearGradient>
+    <marker
+       inkscape:stockid="Arrow2Mend"
+       orient="auto"
+       refY="0"
+       refX="0"
+       id="Arrow2Mend"
+       style="overflow:visible">
+      <path
+         id="path3908"
+         style="font-size:12px;fill-rule:evenodd;stroke-width:0.625;stroke-linejoin:round"
+         d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z"
+         transform="scale(-0.6,-0.6)"
+         inkscape:connector-curvature="0" />
+    </marker>
+    <marker
+       inkscape:stockid="Arrow1Send"
+       orient="auto"
+       refY="0"
+       refX="0"
+       id="Arrow1Send"
+       style="overflow:visible">
+      <path
+         id="path3896"
+         d="M 0,0 5,-5 -12.5,0 5,5 0,0 z"
+         style="fill-rule:evenodd;stroke:#000000;stroke-width:1pt;marker-start:none"
+         transform="matrix(-0.2,0,0,-0.2,-1.2,0)"
+         inkscape:connector-curvature="0" />
+    </marker>
+    <marker
+       inkscape:stockid="Arrow1Mend"
+       orient="auto"
+       refY="0"
+       refX="0"
+       id="Arrow1Mend"
+       style="overflow:visible">
+      <path
+         id="path3890"
+         d="M 0,0 5,-5 -12.5,0 5,5 0,0 z"
+         style="fill-rule:evenodd;stroke:#000000;stroke-width:1pt;marker-start:none"
+         transform="matrix(-0.4,0,0,-0.4,-4,0)"
+         inkscape:connector-curvature="0" />
+    </marker>
+    <marker
+       inkscape:stockid="Arrow2Lend"
+       orient="auto"
+       refY="0"
+       refX="0"
+       id="Arrow2Lend"
+       style="overflow:visible">
+      <path
+         id="path3902"
+         style="font-size:12px;fill-rule:evenodd;stroke-width:0.625;stroke-linejoin:round"
+         d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z"
+         transform="matrix(-1.1,0,0,-1.1,-1.1,0)"
+         inkscape:connector-curvature="0" />
+    </marker>
+    <linearGradient
+       id="linearGradient3812">
+      <stop
+         style="stop-color:#f0f0f0;stop-opacity:1;"
+         offset="0"
+         id="stop3814" />
+      <stop
+         style="stop-color:#ffffff;stop-opacity:1;"
+         offset="1"
+         id="stop3816" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient3802"
+       osb:paint="solid">
+      <stop
+         style="stop-color:#808080;stop-opacity:1;"
+         offset="0"
+         id="stop3804" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient3350">
+      <stop
+         style="stop-color:#00cb2b;stop-opacity:0.24793388;"
+         offset="0"
+         id="stop3352" />
+      <stop
+         style="stop-color:#00cb2b;stop-opacity:1;"
+         offset="1"
+         id="stop3354" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient3342">
+      <stop
+         style="stop-color:#005a85;stop-opacity:1;"
+         offset="0"
+         id="stop3344" />
+      <stop
+         style="stop-color:#005a85;stop-opacity:0.75206614;"
+         offset="1"
+         id="stop3346" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient3310">
+      <stop
+         id="stop3312"
+         offset="0"
+         style="stop-color:#ae0202;stop-opacity:1;" />
+      <stop
+         id="stop3314"
+         offset="1"
+         style="stop-color:#b47575;stop-opacity:1;" />
+    </linearGradient>
+    <inkscape:perspective
+       sodipodi:type="inkscape:persp3d"
+       inkscape:vp_x="0 : 71.887497 : 1"
+       inkscape:vp_y="0 : 1000 : 0"
+       inkscape:vp_z="486.04999 : 71.887497 : 1"
+       inkscape:persp3d-origin="243.02499 : 47.924998 : 1"
+       id="perspective47" />
+    <linearGradient
+       id="linearGradient2795">
+      <stop
+         style="stop-color:#b8b8b8;stop-opacity:0.49803922"
+         offset="0"
+         id="stop2797" />
+      <stop
+         style="stop-color:#7f7f7f;stop-opacity:0"
+         offset="1"
+         id="stop2799" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient2787">
+      <stop
+         style="stop-color:#7f7f7f;stop-opacity:0.5"
+         offset="0"
+         id="stop2789" />
+      <stop
+         style="stop-color:#7f7f7f;stop-opacity:0"
+         offset="1"
+         id="stop2791" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient3676">
+      <stop
+         style="stop-color:#b2b2b2;stop-opacity:0.5"
+         offset="0"
+         id="stop3678" />
+      <stop
+         style="stop-color:#b3b3b3;stop-opacity:0"
+         offset="1"
+         id="stop3680" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient3236">
+      <stop
+         style="stop-color:#f4f4f4;stop-opacity:1"
+         offset="0"
+         id="stop3244" />
+      <stop
+         style="stop-color:#ffffff;stop-opacity:1"
+         offset="1"
+         id="stop3240" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient4671">
+      <stop
+         style="stop-color:#ffd43b;stop-opacity:1"
+         offset="0"
+         id="stop4673" />
+      <stop
+         style="stop-color:#ffe873;stop-opacity:1"
+         offset="1"
+         id="stop4675" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient4689">
+      <stop
+         style="stop-color:#5a9fd4;stop-opacity:1"
+         offset="0"
+         id="stop4691" />
+      <stop
+         style="stop-color:#306998;stop-opacity:1"
+         offset="1"
+         id="stop4693" />
+    </linearGradient>
+    <linearGradient
+       x1="224.23996"
+       y1="144.75717"
+       x2="-65.308502"
+       y2="144.75717"
+       id="linearGradient2987"
+       xlink:href="#linearGradient4671"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="translate(100.2702,99.61116)" />
+    <linearGradient
+       x1="172.94208"
+       y1="77.475983"
+       x2="26.670298"
+       y2="76.313133"
+       id="linearGradient2990"
+       xlink:href="#linearGradient4689"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="translate(100.2702,99.61116)" />
+    <linearGradient
+       x1="172.94208"
+       y1="77.475983"
+       x2="26.670298"
+       y2="76.313133"
+       id="linearGradient2587"
+       xlink:href="#linearGradient4689"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="translate(100.2702,99.61116)" />
+    <linearGradient
+       x1="224.23996"
+       y1="144.75717"
+       x2="-65.308502"
+       y2="144.75717"
+       id="linearGradient2589"
+       xlink:href="#linearGradient4671"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="translate(100.2702,99.61116)" />
+    <linearGradient
+       x1="172.94208"
+       y1="77.475983"
+       x2="26.670298"
+       y2="76.313133"
+       id="linearGradient2248"
+       xlink:href="#linearGradient4689"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="translate(100.2702,99.61116)" />
+    <linearGradient
+       x1="224.23996"
+       y1="144.75717"
+       x2="-65.308502"
+       y2="144.75717"
+       id="linearGradient2250"
+       xlink:href="#linearGradient4671"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="translate(100.2702,99.61116)" />
+    <linearGradient
+       x1="224.23996"
+       y1="144.75717"
+       x2="-65.308502"
+       y2="144.75717"
+       id="linearGradient2255"
+       xlink:href="#linearGradient4671"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.562541,0,0,0.567972,-11.5974,-7.60954)" />
+    <linearGradient
+       x1="172.94208"
+       y1="76.176224"
+       x2="26.670298"
+       y2="76.313133"
+       id="linearGradient2258"
+       xlink:href="#linearGradient4689"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.562541,0,0,0.567972,-11.5974,-7.60954)" />
+    <radialGradient
+       cx="61.518883"
+       cy="132.28575"
+       r="29.036913"
+       fx="61.518883"
+       fy="132.28575"
+       id="radialGradient2801"
+       xlink:href="#linearGradient2795"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1,0,0,0.177966,0,108.7434)" />
+    <linearGradient
+       x1="150.96111"
+       y1="192.35176"
+       x2="112.03144"
+       y2="137.27299"
+       id="linearGradient1475"
+       xlink:href="#linearGradient4671"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.562541,0,0,0.567972,-9.399749,-5.305317)" />
+    <linearGradient
+       x1="26.648937"
+       y1="20.603781"
+       x2="135.66525"
+       y2="114.39767"
+       id="linearGradient1478"
+       xlink:href="#linearGradient4689"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.562541,0,0,0.567972,-9.399749,-5.305317)" />
+    <radialGradient
+       cx="61.518883"
+       cy="132.28575"
+       r="29.036913"
+       fx="61.518883"
+       fy="132.28575"
+       id="radialGradient1480"
+       xlink:href="#linearGradient2795"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(2.382716e-8,-0.296405,1.43676,4.683673e-7,-128.544,150.5202)" />
+    <radialGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient2795"
+       id="radialGradient2421"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1.7490565e-8,-0.239947,1.054668,3.7915457e-7,-78.109429,148.85906)"
+       cx="61.518883"
+       cy="132.28575"
+       fx="61.518883"
+       fy="132.28575"
+       r="29.036913" />
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient4671-8"
+       id="linearGradient3826-6"
+       x1="36.970898"
+       y1="54.646763"
+       x2="87.704681"
+       y2="54.646763"
+       gradientUnits="userSpaceOnUse" />
+    <linearGradient
+       id="linearGradient4671-8">
+      <stop
+         style="stop-color:#ffd43b;stop-opacity:1"
+         offset="0"
+         id="stop4673-8" />
+      <stop
+         style="stop-color:#ffe873;stop-opacity:1"
+         offset="1"
+         id="stop4675-2" />
+    </linearGradient>
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient3812"
+       id="linearGradient3818"
+       x1="78.012024"
+       y1="80.302933"
+       x2="124.67964"
+       y2="28.603327"
+       gradientUnits="userSpaceOnUse" />
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient4671-0"
+       id="linearGradient4097"
+       x1="-205.05431"
+       y1="55.606441"
+       x2="-64.806259"
+       y2="55.606441"
+       gradientUnits="userSpaceOnUse" />
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient4689-9"
+       id="linearGradient4377"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.562541,0,0,0.567972,-9.399749,-5.305317)"
+       x1="26.648937"
+       y1="20.603781"
+       x2="135.66525"
+       y2="114.39767" />
+    <linearGradient
+       id="linearGradient4689-9">
+      <stop
+         style="stop-color:#5a9fd4;stop-opacity:1"
+         offset="0"
+         id="stop4691-4" />
+      <stop
+         style="stop-color:#306998;stop-opacity:1"
+         offset="1"
+         id="stop4693-6" />
+    </linearGradient>
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient4671-0"
+       id="linearGradient4374"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.562541,0,0,0.567972,-9.399749,-5.305317)"
+       x1="150.96111"
+       y1="192.35176"
+       x2="112.03144"
+       y2="137.27299" />
+    <linearGradient
+       id="linearGradient4671-0">
+      <stop
+         style="stop-color:#ffd43b;stop-opacity:1"
+         offset="0"
+         id="stop4673-3" />
+      <stop
+         style="stop-color:#ffe873;stop-opacity:1"
+         offset="1"
+         id="stop4675-6" />
+    </linearGradient>
+    <radialGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient2795-2"
+       id="radialGradient4370"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1.7490565e-8,-0.23994696,1.054668,3.7915457e-7,-78.109429,148.85906)"
+       cx="61.518883"
+       cy="132.28575"
+       fx="61.518883"
+       fy="132.28575"
+       r="29.036913" />
+    <linearGradient
+       id="linearGradient2795-2">
+      <stop
+         style="stop-color:#b8b8b8;stop-opacity:0.49803922"
+         offset="0"
+         id="stop2797-4" />
+      <stop
+         style="stop-color:#7f7f7f;stop-opacity:0"
+         offset="1"
+         id="stop2799-5" />
+    </linearGradient>
+    <radialGradient
+       r="29.036913"
+       fy="132.28575"
+       fx="61.518883"
+       cy="132.28575"
+       cx="61.518883"
+       gradientTransform="matrix(1.7490565e-8,-0.23994696,1.054668,3.7915457e-7,-78.109429,148.85906)"
+       gradientUnits="userSpaceOnUse"
+       id="radialGradient4416"
+       xlink:href="#linearGradient2795-2"
+       inkscape:collect="always" />
+    <radialGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient2795-2"
+       id="radialGradient4458"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1.2864026e-8,-0.17647709,0.77569117,2.7886202e-7,-26.468105,126.78403)"
+       cx="61.518883"
+       cy="132.28575"
+       fx="61.518883"
+       fy="132.28575"
+       r="29.036913" />
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient6481"
+       id="linearGradient6479"
+       x1="-158.6674"
+       y1="46.147835"
+       x2="-78.777054"
+       y2="46.147835"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(2.0600988,0,0,2.0600988,293.35282,15.425527)" />
+  </defs>
+  <path
+     sodipodi:type="arc"
+     style="fill:url(#linearGradient4097);stroke:none;stroke-opacity:1;fill-opacity:1.0"
+     id="path4089"
+     sodipodi:cx="-134.93028"
+     sodipodi:cy="55.606441"
+     sodipodi:rx="69.624023"
+     sodipodi:ry="51.543369"
+     d="m -65.306259,55.606441 a 69.624023,51.543369 0 1 1 -139.248051,0 69.624023,51.543369 0 1 1 139.248051,0 z"
+     transform="translate(211.03096,8.635538)" />
+  <path
+     inkscape:connector-curvature="0"
+     d="m 76.316126,27.404597 c -9.167009,0.04257 -17.921288,0.824402 -25.624146,2.187424 -22.69166,4.00887 -26.811595,12.399787 -26.811595,27.874061 l 0,20.436814 53.623186,0 0,6.812269 -3.339702,33.912115 50.740901,-12.82264 c 4.93564,0.10584 11.42175,-6.328919 6.15952,-48.338558 0,-14.532187 -12.25955,-25.448698 -26.81161,-27.874061 C 95.041031,28.05862 85.483112,27.361995 76.316126,27.404597 z M 47.317113,43.841543 c 5.538896,0 10.062145,4.597138 10.062145,10.249652 0,5.632485 -4.523 [...]
+     style="fill:url(#linearGradient6479);fill-opacity:1;fill-rule:nonzero"
+     id="path1948"
+     sodipodi:nodetypes="scscccccccssssss" />
+  <path
+     style="font-size:medium;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-indent:0;text-align:start;text-decoration:none;line-height:normal;letter-spacing:normal;word-spacing:normal;text-transform:none;direction:ltr;block-progression:tb;writing-mode:lr-tb;text-anchor:start;baseline-shift:baseline;color:#000000;fill:#db945f;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:9.58500000000000090;marker:none;visibility:visible;display:inline;overfl [...]
+     d="m 77.306851,8.1694723 c -42.510551,0 -77.413721,20.0662467 -77.413721,53.2120357 0,8.286447 2.1477156,16.195516 6.0335163,23.397993 3.8858007,7.202478 9.5096867,13.698363 16.4620267,19.158439 6.952341,5.46008 15.233136,9.88436 24.432756,12.94361 9.199619,3.05926 42.526071,31.19983 53.153709,31.19983 5.313822,0 -21.121472,-14.05573 -18.222782,-20.92935 2.445252,-5.79838 20.364304,-8.74085 24.965674,-10.27048 9.20273,-3.05926 17.48768,-7.48353 24.44418,-12.94361 6.9565,-5.460076 12 [...]
+     id="path3032"
+     inkscape:connector-curvature="0"
+     sodipodi:nodetypes="ssssssssssssssssssss" />
+</svg>
diff --git a/guidata/images/max.png b/guidata/images/max.png
index f55fad8..60bf1e3 100644
Binary files a/guidata/images/max.png and b/guidata/images/max.png differ
diff --git a/guidata/images/min.png b/guidata/images/min.png
index 202c449..11ba5f3 100644
Binary files a/guidata/images/min.png and b/guidata/images/min.png differ
diff --git a/guidata/images/none.png b/guidata/images/none.png
index c8be9a9..93c302e 100644
Binary files a/guidata/images/none.png and b/guidata/images/none.png differ
diff --git a/guidata/images/not_found.png b/guidata/images/not_found.png
index 691ddd9..4cece58 100644
Binary files a/guidata/images/not_found.png and b/guidata/images/not_found.png differ
diff --git a/guidata/images/python.png b/guidata/images/python.png
index 4cb0294..c792875 100644
Binary files a/guidata/images/python.png and b/guidata/images/python.png differ
diff --git a/guidata/images/quickview.png b/guidata/images/quickview.png
index cb4448b..75321f3 100644
Binary files a/guidata/images/quickview.png and b/guidata/images/quickview.png differ
diff --git a/guidata/images/save_all.png b/guidata/images/save_all.png
index eaf7d34..14e8a30 100644
Binary files a/guidata/images/save_all.png and b/guidata/images/save_all.png differ
diff --git a/guidata/images/selection.png b/guidata/images/selection.png
index ae46076..b4909e7 100644
Binary files a/guidata/images/selection.png and b/guidata/images/selection.png differ
diff --git a/guidata/images/settings.png b/guidata/images/settings.png
index 85ecfa1..c30eaf1 100644
Binary files a/guidata/images/settings.png and b/guidata/images/settings.png differ
diff --git a/guidata/images/shape.png b/guidata/images/shape.png
index 13d5376..b7ec27a 100644
Binary files a/guidata/images/shape.png and b/guidata/images/shape.png differ
diff --git a/guidata/images/xmax.png b/guidata/images/xmax.png
index 53a4f75..2e4a846 100644
Binary files a/guidata/images/xmax.png and b/guidata/images/xmax.png differ
diff --git a/guidata/images/xmin.png b/guidata/images/xmin.png
index 65a33a1..87deb93 100644
Binary files a/guidata/images/xmin.png and b/guidata/images/xmin.png differ
diff --git a/guidata/qt/QtCore.py b/guidata/qt/QtCore.py
index 652d471..6437d96 100644
--- a/guidata/qt/QtCore.py
+++ b/guidata/qt/QtCore.py
@@ -1,29 +1,29 @@
-# -*- coding: utf-8 -*-
-#
-# Copyright © 2011 Pierre Raybaut
-# Licensed under the terms of the MIT License
-# (copied from Spyder source code [spyderlib.qt])
-
-import os
-
-if os.environ['QT_API'] == 'pyqt5':
-    from PyQt5.QtCore import *                                # analysis:ignore
-    from PyQt5.QtCore import QCoreApplication
-    from PyQt5.QtCore import pyqtSignal as Signal
-    from PyQt5.QtCore import pyqtSlot as Slot
-    from PyQt5.QtCore import pyqtProperty as Property
-    from PyQt5.QtCore import QT_VERSION_STR as __version__
-elif os.environ['QT_API'] == 'pyqt':
-    from PyQt4.QtCore import *                                # analysis:ignore
-    from PyQt4.Qt import QCoreApplication                     # analysis:ignore
-    from PyQt4.Qt import Qt                                   # analysis:ignore
-    from PyQt4.QtCore import pyqtSignal as Signal             # analysis:ignore
-    from PyQt4.QtCore import pyqtSlot as Slot                 # analysis:ignore
-    from PyQt4.QtCore import pyqtProperty as Property         # analysis:ignore
-    from PyQt4.QtCore import QT_VERSION_STR as __version__    # analysis:ignore
-    # Forces new modules written by PyQt4 developers to be PyQt5-compatible
-    del SIGNAL, SLOT
-else:
-    import PySide.QtCore
-    __version__ = PySide.QtCore.__version__                   # analysis:ignore
-    from PySide.QtCore import *                               # analysis:ignore
+# -*- coding: utf-8 -*-
+#
+# Copyright © 2011 Pierre Raybaut
+# Licensed under the terms of the MIT License
+# (copied from Spyder source code [spyderlib.qt])
+
+import os
+
+if os.environ['QT_API'] == 'pyqt5':
+    from PyQt5.QtCore import *                                # analysis:ignore
+    from PyQt5.QtCore import QCoreApplication
+    from PyQt5.QtCore import pyqtSignal as Signal
+    from PyQt5.QtCore import pyqtSlot as Slot
+    from PyQt5.QtCore import pyqtProperty as Property
+    from PyQt5.QtCore import QT_VERSION_STR as __version__
+elif os.environ['QT_API'] == 'pyqt':
+    from PyQt4.QtCore import *                                # analysis:ignore
+    from PyQt4.Qt import QCoreApplication                     # analysis:ignore
+    from PyQt4.Qt import Qt                                   # analysis:ignore
+    from PyQt4.QtCore import pyqtSignal as Signal             # analysis:ignore
+    from PyQt4.QtCore import pyqtSlot as Slot                 # analysis:ignore
+    from PyQt4.QtCore import pyqtProperty as Property         # analysis:ignore
+    from PyQt4.QtCore import QT_VERSION_STR as __version__    # analysis:ignore
+    # Forces new modules written by PyQt4 developers to be PyQt5-compatible
+    del SIGNAL, SLOT
+else:
+    import PySide.QtCore
+    __version__ = PySide.QtCore.__version__                   # analysis:ignore
+    from PySide.QtCore import *                               # analysis:ignore
diff --git a/guidata/qt/QtDesigner.py b/guidata/qt/QtDesigner.py
index 1c53293..7a764c8 100644
--- a/guidata/qt/QtDesigner.py
+++ b/guidata/qt/QtDesigner.py
@@ -1,14 +1,14 @@
-# -*- coding: utf-8 -*-
-#
-# Copyright © 2012 Pierre Raybaut
-# Licensed under the terms of the MIT License
-# (see spyderlib/__init__.py for details)
-
-import os
-
-if os.environ['QT_API'] == 'pyqt5':
-    from PyQt5.QtDesigner import *  # analysis:ignore
-elif os.environ['QT_API'] == 'pyqt':
-    from PyQt4.QtDesigner import *  # analysis:ignore
-else:
-    from PySide.QtDesigner import *  # analysis:ignore
+# -*- coding: utf-8 -*-
+#
+# Copyright © 2012 Pierre Raybaut
+# Licensed under the terms of the MIT License
+# (see spyderlib/__init__.py for details)
+
+import os
+
+if os.environ['QT_API'] == 'pyqt5':
+    from PyQt5.QtDesigner import *  # analysis:ignore
+elif os.environ['QT_API'] == 'pyqt':
+    from PyQt4.QtDesigner import *  # analysis:ignore
+else:
+    from PySide.QtDesigner import *  # analysis:ignore
diff --git a/guidata/qt/QtGui.py b/guidata/qt/QtGui.py
index 2ac4bb5..7e6c18a 100644
--- a/guidata/qt/QtGui.py
+++ b/guidata/qt/QtGui.py
@@ -1,20 +1,20 @@
-# -*- coding: utf-8 -*-
-#
-# Copyright © 2011 Pierre Raybaut
-# Licensed under the terms of the MIT License
-# (copied from Spyder source code [spyderlib.qt])
-
-import os
-
-if os.environ['QT_API'] == 'pyqt5':
-    from PyQt5.QtCore import QSortFilterProxyModel            # analysis:ignore
-    from PyQt5.QtPrintSupport import (QPrinter, QPrintDialog, # analysis:ignore
-                                      QAbstractPrintDialog)
-    from PyQt5.QtPrintSupport import QPrintPreviewDialog      # analysis:ignore
-    from PyQt5.QtGui import *                                 # analysis:ignore
-    from PyQt5.QtWidgets import *                             # analysis:ignore
-elif os.environ['QT_API'] == 'pyqt':
-    from PyQt4.Qt import QKeySequence, QTextCursor            # analysis:ignore
-    from PyQt4.QtGui import *                                 # analysis:ignore
-else:
-    from PySide.QtGui import *                                # analysis:ignore
+# -*- coding: utf-8 -*-
+#
+# Copyright © 2011 Pierre Raybaut
+# Licensed under the terms of the MIT License
+# (copied from Spyder source code [spyderlib.qt])
+
+import os
+
+if os.environ['QT_API'] == 'pyqt5':
+    from PyQt5.QtCore import QSortFilterProxyModel            # analysis:ignore
+    from PyQt5.QtPrintSupport import (QPrinter, QPrintDialog, # analysis:ignore
+                                      QAbstractPrintDialog)
+    from PyQt5.QtPrintSupport import QPrintPreviewDialog      # analysis:ignore
+    from PyQt5.QtGui import *                                 # analysis:ignore
+    from PyQt5.QtWidgets import *                             # analysis:ignore
+elif os.environ['QT_API'] == 'pyqt':
+    from PyQt4.Qt import QKeySequence, QTextCursor            # analysis:ignore
+    from PyQt4.QtGui import *                                 # analysis:ignore
+else:
+    from PySide.QtGui import *                                # analysis:ignore
diff --git a/guidata/qt/QtSvg.py b/guidata/qt/QtSvg.py
index f4443b6..c86efa2 100644
--- a/guidata/qt/QtSvg.py
+++ b/guidata/qt/QtSvg.py
@@ -1,14 +1,14 @@
-# -*- coding: utf-8 -*-
-#
-# Copyright © 2012 Pierre Raybaut
-# Licensed under the terms of the MIT License
-# (see spyderlib/__init__.py for details)
-
-import os
-
-if os.environ['QT_API'] == 'pyqt5':
-    from PyQt5.QtSvg import *                                 # analysis:ignore
-elif os.environ['QT_API'] == 'pyqt':
-    from PyQt4.QtSvg import *                                 # analysis:ignore
-else:
-    from PySide.QtSvg import *                                # analysis:ignore
+# -*- coding: utf-8 -*-
+#
+# Copyright © 2012 Pierre Raybaut
+# Licensed under the terms of the MIT License
+# (see spyderlib/__init__.py for details)
+
+import os
+
+if os.environ['QT_API'] == 'pyqt5':
+    from PyQt5.QtSvg import *                                 # analysis:ignore
+elif os.environ['QT_API'] == 'pyqt':
+    from PyQt4.QtSvg import *                                 # analysis:ignore
+else:
+    from PySide.QtSvg import *                                # analysis:ignore
diff --git a/guidata/qt/QtWebKit.py b/guidata/qt/QtWebKit.py
index 60c6dca..06d90cf 100644
--- a/guidata/qt/QtWebKit.py
+++ b/guidata/qt/QtWebKit.py
@@ -1,16 +1,16 @@
-# -*- coding: utf-8 -*-
-#
-# Copyright © 2011 Pierre Raybaut
-# Licensed under the terms of the MIT License
-# (see spyderlib/__init__.py for details)
-
-import os
-
-if os.environ['QT_API'] == 'pyqt5':
-    from PyQt5.QtWebKitWidgets import QWebPage, QWebView      # analysis:ignore
-    from PyQt5.QtWebKit import QWebSettings                   # analysis:ignore
-elif os.environ['QT_API'] == 'pyqt':
-    from PyQt4.QtWebKit import (QWebPage, QWebView,           # analysis:ignore
-                                QWebSettings)
-else:
-    from PySide.QtWebKit import *                             # analysis:ignore
+# -*- coding: utf-8 -*-
+#
+# Copyright © 2011 Pierre Raybaut
+# Licensed under the terms of the MIT License
+# (see spyderlib/__init__.py for details)
+
+import os
+
+if os.environ['QT_API'] == 'pyqt5':
+    from PyQt5.QtWebKitWidgets import QWebPage, QWebView      # analysis:ignore
+    from PyQt5.QtWebKit import QWebSettings                   # analysis:ignore
+elif os.environ['QT_API'] == 'pyqt':
+    from PyQt4.QtWebKit import (QWebPage, QWebView,           # analysis:ignore
+                                QWebSettings)
+else:
+    from PySide.QtWebKit import *                             # analysis:ignore
diff --git a/guidata/qt/__init__.py b/guidata/qt/__init__.py
index d970de8..a5c91dc 100644
--- a/guidata/qt/__init__.py
+++ b/guidata/qt/__init__.py
@@ -1,65 +1,70 @@
-# -*- coding: utf-8 -*-
-#
-# Copyright © 2011-2012 Pierre Raybaut
-#           © 2012-2014 anatoly techtonik
-# Licensed under the terms of the MIT License
-# (see spyderlib/__init__.py for details)
-
-"""Transitional package (PyQt4 --> PySide)"""
-
-import os
-
-os.environ.setdefault('QT_API', 'pyqt')
-assert os.environ['QT_API'] in ('pyqt5', 'pyqt', 'pyside')
-
-API = os.environ['QT_API']
-API_NAME = {'pyqt5': 'PyQt5', 'pyqt': 'PyQt4', 'pyside': 'PySide'}[API]
-
-PYQT5 = False
-
-if API == 'pyqt5':
-    try:
-        from PyQt5.QtCore import PYQT_VERSION_STR as __version__
-        is_old_pyqt = False
-        is_pyqt46 = False
-        PYQT5 = True
-    except ImportError:
-        pass
-    from PyQt5 import uic  # analysis:ignore
-elif API == 'pyqt':
-    # Spyder 2.3 is compatible with both #1 and #2 PyQt API,
-    # but to avoid issues with IPython and other Qt plugins
-    # we choose to support only API #2 for 2.4+
-    import sip
-    try:
-        sip.setapi('QString', 2)
-        sip.setapi('QVariant', 2)
-    except AttributeError:
-        # PyQt < v4.6. The actual check is done by requirements.check_qt()
-        # call from spyder.py
-        pass
-
-    try:
-        from PyQt4.QtCore import PYQT_VERSION_STR as __version__ # analysis:ignore
-    except ImportError:
-        # Switching to PySide
-        API = os.environ['QT_API'] = 'pyside'
-        API_NAME = 'PySide'
-    else:
-        is_old_pyqt = __version__.startswith(('4.4', '4.5', '4.6', '4.7'))
-        is_pyqt46 = __version__.startswith('4.6')
-        import sip
-        try:
-            API_NAME += (" (API v%d)" % sip.getapi('QString'))
-        except AttributeError:
-            pass
-    from PyQt4 import uic  # analysis:ignore
-
-
-if API == 'pyside':
-    try:
-        from PySide import __version__  # analysis:ignore
-    except ImportError:
-        raise ImportError("Spyder requires PySide or PyQt to be installed")
-    else:
-        is_old_pyqt = is_pyqt46 = False
+# -*- coding: utf-8 -*-
+#
+# Copyright © 2011-2012 Pierre Raybaut
+#           © 2012-2014 anatoly techtonik
+# Licensed under the terms of the MIT License
+# (see spyderlib/__init__.py for details)
+
+"""Transitional package (PyQt4 --> PySide)"""
+
+import os
+
+os.environ.setdefault('QT_API', 'pyqt')
+assert os.environ['QT_API'] in ('pyqt5', 'pyqt', 'pyside')
+
+API = os.environ['QT_API']
+API_NAME = {'pyqt5': 'PyQt5', 'pyqt': 'PyQt4', 'pyside': 'PySide'}[API]
+
+PYQT5 = False
+
+if API == 'pyqt5':
+    try:
+        from PyQt5.QtCore import PYQT_VERSION_STR as __version__
+        is_old_pyqt = False
+        is_pyqt46 = False
+        PYQT5 = True
+    except ImportError:
+        pass
+    from PyQt5 import uic  # analysis:ignore
+elif API == 'pyqt':
+    # Spyder 2.3 is compatible with both #1 and #2 PyQt API,
+    # but to avoid issues with IPython and other Qt plugins
+    # we choose to support only API #2 for 2.4+
+    import sip
+    try:
+        sip.setapi('QString', 2)
+        sip.setapi('QVariant', 2)
+        sip.setapi('QDate', 2)
+        sip.setapi('QDateTime', 2)
+        sip.setapi('QTextStream', 2)
+        sip.setapi('QTime', 2)
+        sip.setapi('QUrl', 2)        
+    except AttributeError:
+        # PyQt < v4.6. The actual check is done by requirements.check_qt()
+        # call from spyder.py
+        pass
+
+    try:
+        from PyQt4.QtCore import PYQT_VERSION_STR as __version__ # analysis:ignore
+    except ImportError:
+        # Switching to PySide
+        API = os.environ['QT_API'] = 'pyside'
+        API_NAME = 'PySide'
+    else:
+        is_old_pyqt = __version__.startswith(('4.4', '4.5', '4.6', '4.7'))
+        is_pyqt46 = __version__.startswith('4.6')
+        import sip
+        try:
+            API_NAME += (" (API v%d)" % sip.getapi('QString'))
+        except AttributeError:
+            pass
+    from PyQt4 import uic  # analysis:ignore
+
+
+if API == 'pyside':
+    try:
+        from PySide import __version__  # analysis:ignore
+    except ImportError:
+        raise ImportError("Spyder requires PySide or PyQt to be installed")
+    else:
+        is_old_pyqt = is_pyqt46 = False
diff --git a/guidata/tests/all_features.py b/guidata/tests/all_features.py
index f8da196..83da6de 100644
--- a/guidata/tests/all_features.py
+++ b/guidata/tests/all_features.py
@@ -68,6 +68,7 @@ class TestParameters(DataSet):
                     help="Threshold current")
     fl2 = FloatItem("Float (col=1)", default=1., min=1, max=1,
                     help="Help on float item").set_pos(col=1)
+    fl3 = FloatItem("Not checked float").set_prop('data', check_value=False)
     bool1 = BoolItem("Boolean option without label")
     bool2 = BoolItem("Boolean option with label", "Label").set_pos(col=1,
                                                                    colspan=2)

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



More information about the debian-science-commits mailing list