From 6214696541191eeeb94f4e636616f9335ebd6875 Mon Sep 17 00:00:00 2001
From: Gennady Pospelov <g.pospelov@fz-juelich.de>
Date: Thu, 30 Jan 2014 16:03:48 +0100
Subject: [PATCH] qtproperty browser is relocated to 'external' directory, code
 is updated from qt-solutions's git

---
 GUI/CMakeLists.txt                            |   1 +
 GUI/coregui/CMakeLists.txt                    |  16 +-
 .../Models/PythonScriptSampleBuilder.cpp      |   2 -
 .../Models/PythonScriptSampleBuilder.h        |   3 +
 .../Components/widgetbox/filterwidget_p.h     | 157 ------------------
 .../qt-root-gui-factory/CMakeLists.txt        |   3 +-
 .../qtpropertybrowser/CMakeLists.txt          |  39 +++++
 .../QtAbstractEditorFactoryBase               |   0
 .../QtAbstractPropertyBrowser                 |   0
 .../QtAbstractPropertyManager                 |   0
 .../qtpropertybrowser/QtBoolPropertyManager   |   0
 .../qtpropertybrowser/QtBrowserItem           |   0
 .../qtpropertybrowser/QtButtonPropertyBrowser |   0
 .../qtpropertybrowser/QtCharEditorFactory     |   0
 .../qtpropertybrowser/QtCharPropertyManager   |   0
 .../qtpropertybrowser/QtCheckBoxFactory       |   0
 .../qtpropertybrowser/QtColorEditorFactory    |   0
 .../qtpropertybrowser/QtColorPropertyManager  |   0
 .../qtpropertybrowser/QtCursorEditorFactory   |   0
 .../qtpropertybrowser/QtCursorPropertyManager |   0
 .../qtpropertybrowser/QtDateEditFactory       |   0
 .../qtpropertybrowser/QtDatePropertyManager   |   0
 .../qtpropertybrowser/QtDateTimeEditFactory   |   0
 .../QtDateTimePropertyManager                 |   0
 .../qtpropertybrowser/QtDoublePropertyManager |   0
 .../qtpropertybrowser/QtDoubleSpinBoxFactory  |   0
 .../qtpropertybrowser/QtEnumEditorFactory     |   0
 .../qtpropertybrowser/QtEnumPropertyManager   |   0
 .../qtpropertybrowser/QtFlagPropertyManager   |   0
 .../qtpropertybrowser/QtFontEditorFactory     |   0
 .../qtpropertybrowser/QtFontPropertyManager   |   0
 .../QtGroupBoxPropertyBrowser                 |   0
 .../qtpropertybrowser/QtGroupPropertyManager  |   0
 .../qtpropertybrowser/QtIntPropertyManager    |   0
 .../QtKeySequenceEditorFactory                |   0
 .../QtKeySequencePropertyManager              |   0
 .../qtpropertybrowser/QtLineEditFactory       |   0
 .../qtpropertybrowser/QtLocalePropertyManager |   0
 .../qtpropertybrowser/QtPointFPropertyManager |   0
 .../qtpropertybrowser/QtPointPropertyManager  |   0
 .../qtpropertybrowser/QtProperty              |   0
 .../qtpropertybrowser/QtRectFPropertyManager  |   0
 .../qtpropertybrowser/QtRectPropertyManager   |   0
 .../qtpropertybrowser/QtScrollBarFactory      |   0
 .../qtpropertybrowser/QtSizeFPropertyManager  |   0
 .../QtSizePolicyPropertyManager               |   0
 .../qtpropertybrowser/QtSizePropertyManager   |   0
 .../qtpropertybrowser/QtSliderFactory         |   0
 .../qtpropertybrowser/QtSpinBoxFactory        |   0
 .../qtpropertybrowser/QtStringPropertyManager |   0
 .../qtpropertybrowser/QtTimeEditFactory       |   0
 .../qtpropertybrowser/QtTimePropertyManager   |   0
 .../qtpropertybrowser/QtTreePropertyBrowser   |   0
 .../qtpropertybrowser/QtVariantEditorFactory  |   0
 .../qtpropertybrowser/QtVariantProperty       |   0
 .../QtVariantPropertyManager                  |   0
 .../qtpropertybrowser/images/cursor-arrow.png | Bin 0 -> 171 bytes
 .../qtpropertybrowser/images/cursor-busy.png  | Bin 0 -> 201 bytes
 .../images/cursor-closedhand.png              | Bin 0 -> 147 bytes
 .../qtpropertybrowser/images/cursor-cross.png | Bin 0 -> 130 bytes
 .../images/cursor-forbidden.png               | Bin 0 -> 199 bytes
 .../qtpropertybrowser/images/cursor-hand.png  | Bin 0 -> 159 bytes
 .../images/cursor-hsplit.png                  | Bin 0 -> 155 bytes
 .../qtpropertybrowser/images/cursor-ibeam.png | Bin 0 -> 124 bytes
 .../images/cursor-openhand.png                | Bin 0 -> 160 bytes
 .../images/cursor-sizeall.png                 | Bin 0 -> 174 bytes
 .../qtpropertybrowser/images/cursor-sizeb.png | Bin 0 -> 161 bytes
 .../qtpropertybrowser/images/cursor-sizef.png | Bin 0 -> 161 bytes
 .../qtpropertybrowser/images/cursor-sizeh.png | Bin 0 -> 145 bytes
 .../qtpropertybrowser/images/cursor-sizev.png | Bin 0 -> 141 bytes
 .../images/cursor-uparrow.png                 | Bin 0 -> 132 bytes
 .../images/cursor-vsplit.png                  | Bin 0 -> 161 bytes
 .../qtpropertybrowser/images/cursor-wait.png  | Bin 0 -> 172 bytes
 .../images/cursor-whatsthis.png               | Bin 0 -> 191 bytes
 .../qtbuttonpropertybrowser.cpp               |   1 -
 .../qtbuttonpropertybrowser.h                 |   0
 .../qtpropertybrowser/qteditorfactory.cpp     |  23 ++-
 .../qtpropertybrowser/qteditorfactory.h       |   1 +
 .../qtgroupboxpropertybrowser.cpp             |   0
 .../qtgroupboxpropertybrowser.h               |   0
 .../qtpropertybrowser/qtpropertybrowser.cpp   |   0
 .../qtpropertybrowser/qtpropertybrowser.h     |   0
 .../qtpropertybrowser/qtpropertybrowser.pri   |  32 ++++
 .../qtpropertybrowser/qtpropertybrowser.qrc   |   0
 .../qtpropertybrowserutils.cpp                |   0
 .../qtpropertybrowserutils_p.h                |   0
 .../qtpropertybrowser/qtpropertymanager.cpp   |  68 ++++++--
 .../qtpropertybrowser/qtpropertymanager.h     |   3 +
 .../qttreepropertybrowser.cpp                 |   0
 .../qtpropertybrowser/qttreepropertybrowser.h |   0
 .../qtpropertybrowser/qtvariantproperty.cpp   |  26 ++-
 .../qtpropertybrowser/qtvariantproperty.h     |   1 +
 92 files changed, 192 insertions(+), 184 deletions(-)
 delete mode 100644 GUI/coregui/Views/Components/widgetbox/filterwidget_p.h
 create mode 100644 GUI/externals/qtpropertybrowser/CMakeLists.txt
 rename GUI/{coregui/qttools => externals}/qtpropertybrowser/QtAbstractEditorFactoryBase (100%)
 rename GUI/{coregui/qttools => externals}/qtpropertybrowser/QtAbstractPropertyBrowser (100%)
 rename GUI/{coregui/qttools => externals}/qtpropertybrowser/QtAbstractPropertyManager (100%)
 rename GUI/{coregui/qttools => externals}/qtpropertybrowser/QtBoolPropertyManager (100%)
 rename GUI/{coregui/qttools => externals}/qtpropertybrowser/QtBrowserItem (100%)
 rename GUI/{coregui/qttools => externals}/qtpropertybrowser/QtButtonPropertyBrowser (100%)
 rename GUI/{coregui/qttools => externals}/qtpropertybrowser/QtCharEditorFactory (100%)
 rename GUI/{coregui/qttools => externals}/qtpropertybrowser/QtCharPropertyManager (100%)
 rename GUI/{coregui/qttools => externals}/qtpropertybrowser/QtCheckBoxFactory (100%)
 rename GUI/{coregui/qttools => externals}/qtpropertybrowser/QtColorEditorFactory (100%)
 rename GUI/{coregui/qttools => externals}/qtpropertybrowser/QtColorPropertyManager (100%)
 rename GUI/{coregui/qttools => externals}/qtpropertybrowser/QtCursorEditorFactory (100%)
 rename GUI/{coregui/qttools => externals}/qtpropertybrowser/QtCursorPropertyManager (100%)
 rename GUI/{coregui/qttools => externals}/qtpropertybrowser/QtDateEditFactory (100%)
 rename GUI/{coregui/qttools => externals}/qtpropertybrowser/QtDatePropertyManager (100%)
 rename GUI/{coregui/qttools => externals}/qtpropertybrowser/QtDateTimeEditFactory (100%)
 rename GUI/{coregui/qttools => externals}/qtpropertybrowser/QtDateTimePropertyManager (100%)
 rename GUI/{coregui/qttools => externals}/qtpropertybrowser/QtDoublePropertyManager (100%)
 rename GUI/{coregui/qttools => externals}/qtpropertybrowser/QtDoubleSpinBoxFactory (100%)
 rename GUI/{coregui/qttools => externals}/qtpropertybrowser/QtEnumEditorFactory (100%)
 rename GUI/{coregui/qttools => externals}/qtpropertybrowser/QtEnumPropertyManager (100%)
 rename GUI/{coregui/qttools => externals}/qtpropertybrowser/QtFlagPropertyManager (100%)
 rename GUI/{coregui/qttools => externals}/qtpropertybrowser/QtFontEditorFactory (100%)
 rename GUI/{coregui/qttools => externals}/qtpropertybrowser/QtFontPropertyManager (100%)
 rename GUI/{coregui/qttools => externals}/qtpropertybrowser/QtGroupBoxPropertyBrowser (100%)
 rename GUI/{coregui/qttools => externals}/qtpropertybrowser/QtGroupPropertyManager (100%)
 rename GUI/{coregui/qttools => externals}/qtpropertybrowser/QtIntPropertyManager (100%)
 rename GUI/{coregui/qttools => externals}/qtpropertybrowser/QtKeySequenceEditorFactory (100%)
 rename GUI/{coregui/qttools => externals}/qtpropertybrowser/QtKeySequencePropertyManager (100%)
 rename GUI/{coregui/qttools => externals}/qtpropertybrowser/QtLineEditFactory (100%)
 rename GUI/{coregui/qttools => externals}/qtpropertybrowser/QtLocalePropertyManager (100%)
 rename GUI/{coregui/qttools => externals}/qtpropertybrowser/QtPointFPropertyManager (100%)
 rename GUI/{coregui/qttools => externals}/qtpropertybrowser/QtPointPropertyManager (100%)
 rename GUI/{coregui/qttools => externals}/qtpropertybrowser/QtProperty (100%)
 rename GUI/{coregui/qttools => externals}/qtpropertybrowser/QtRectFPropertyManager (100%)
 rename GUI/{coregui/qttools => externals}/qtpropertybrowser/QtRectPropertyManager (100%)
 rename GUI/{coregui/qttools => externals}/qtpropertybrowser/QtScrollBarFactory (100%)
 rename GUI/{coregui/qttools => externals}/qtpropertybrowser/QtSizeFPropertyManager (100%)
 rename GUI/{coregui/qttools => externals}/qtpropertybrowser/QtSizePolicyPropertyManager (100%)
 rename GUI/{coregui/qttools => externals}/qtpropertybrowser/QtSizePropertyManager (100%)
 rename GUI/{coregui/qttools => externals}/qtpropertybrowser/QtSliderFactory (100%)
 rename GUI/{coregui/qttools => externals}/qtpropertybrowser/QtSpinBoxFactory (100%)
 rename GUI/{coregui/qttools => externals}/qtpropertybrowser/QtStringPropertyManager (100%)
 rename GUI/{coregui/qttools => externals}/qtpropertybrowser/QtTimeEditFactory (100%)
 rename GUI/{coregui/qttools => externals}/qtpropertybrowser/QtTimePropertyManager (100%)
 rename GUI/{coregui/qttools => externals}/qtpropertybrowser/QtTreePropertyBrowser (100%)
 rename GUI/{coregui/qttools => externals}/qtpropertybrowser/QtVariantEditorFactory (100%)
 rename GUI/{coregui/qttools => externals}/qtpropertybrowser/QtVariantProperty (100%)
 rename GUI/{coregui/qttools => externals}/qtpropertybrowser/QtVariantPropertyManager (100%)
 create mode 100644 GUI/externals/qtpropertybrowser/images/cursor-arrow.png
 create mode 100644 GUI/externals/qtpropertybrowser/images/cursor-busy.png
 create mode 100644 GUI/externals/qtpropertybrowser/images/cursor-closedhand.png
 create mode 100644 GUI/externals/qtpropertybrowser/images/cursor-cross.png
 create mode 100644 GUI/externals/qtpropertybrowser/images/cursor-forbidden.png
 create mode 100644 GUI/externals/qtpropertybrowser/images/cursor-hand.png
 create mode 100644 GUI/externals/qtpropertybrowser/images/cursor-hsplit.png
 create mode 100644 GUI/externals/qtpropertybrowser/images/cursor-ibeam.png
 create mode 100644 GUI/externals/qtpropertybrowser/images/cursor-openhand.png
 create mode 100644 GUI/externals/qtpropertybrowser/images/cursor-sizeall.png
 create mode 100644 GUI/externals/qtpropertybrowser/images/cursor-sizeb.png
 create mode 100644 GUI/externals/qtpropertybrowser/images/cursor-sizef.png
 create mode 100644 GUI/externals/qtpropertybrowser/images/cursor-sizeh.png
 create mode 100644 GUI/externals/qtpropertybrowser/images/cursor-sizev.png
 create mode 100644 GUI/externals/qtpropertybrowser/images/cursor-uparrow.png
 create mode 100644 GUI/externals/qtpropertybrowser/images/cursor-vsplit.png
 create mode 100644 GUI/externals/qtpropertybrowser/images/cursor-wait.png
 create mode 100644 GUI/externals/qtpropertybrowser/images/cursor-whatsthis.png
 rename GUI/{coregui/qttools => externals}/qtpropertybrowser/qtbuttonpropertybrowser.cpp (99%)
 rename GUI/{coregui/qttools => externals}/qtpropertybrowser/qtbuttonpropertybrowser.h (100%)
 rename GUI/{coregui/qttools => externals}/qtpropertybrowser/qteditorfactory.cpp (98%)
 rename GUI/{coregui/qttools => externals}/qtpropertybrowser/qteditorfactory.h (99%)
 rename GUI/{coregui/qttools => externals}/qtpropertybrowser/qtgroupboxpropertybrowser.cpp (100%)
 rename GUI/{coregui/qttools => externals}/qtpropertybrowser/qtgroupboxpropertybrowser.h (100%)
 rename GUI/{coregui/qttools => externals}/qtpropertybrowser/qtpropertybrowser.cpp (100%)
 rename GUI/{coregui/qttools => externals}/qtpropertybrowser/qtpropertybrowser.h (100%)
 create mode 100644 GUI/externals/qtpropertybrowser/qtpropertybrowser.pri
 rename GUI/{coregui/qttools => externals}/qtpropertybrowser/qtpropertybrowser.qrc (100%)
 rename GUI/{coregui/qttools => externals}/qtpropertybrowser/qtpropertybrowserutils.cpp (100%)
 rename GUI/{coregui/qttools => externals}/qtpropertybrowser/qtpropertybrowserutils_p.h (100%)
 rename GUI/{coregui/qttools => externals}/qtpropertybrowser/qtpropertymanager.cpp (99%)
 rename GUI/{coregui/qttools => externals}/qtpropertybrowser/qtpropertymanager.h (99%)
 rename GUI/{coregui/qttools => externals}/qtpropertybrowser/qttreepropertybrowser.cpp (100%)
 rename GUI/{coregui/qttools => externals}/qtpropertybrowser/qttreepropertybrowser.h (100%)
 rename GUI/{coregui/qttools => externals}/qtpropertybrowser/qtvariantproperty.cpp (98%)
 rename GUI/{coregui/qttools => externals}/qtpropertybrowser/qtvariantproperty.h (99%)

diff --git a/GUI/CMakeLists.txt b/GUI/CMakeLists.txt
index 3864b9b3c97..1b0921d59dc 100644
--- a/GUI/CMakeLists.txt
+++ b/GUI/CMakeLists.txt
@@ -14,6 +14,7 @@ add_subdirectory(externals/qt-manhattan-style)
 add_subdirectory(externals/qcustomplot)
 add_subdirectory(externals/qt-root)
 add_subdirectory(externals/qt-root-gui-factory)
+add_subdirectory(externals/qtpropertybrowser)
 add_subdirectory(coregui)
 
 
diff --git a/GUI/coregui/CMakeLists.txt b/GUI/coregui/CMakeLists.txt
index 04cc758c97b..438e0defb66 100644
--- a/GUI/coregui/CMakeLists.txt
+++ b/GUI/coregui/CMakeLists.txt
@@ -18,10 +18,10 @@ set(include_dirs
     ${CMAKE_CURRENT_SOURCE_DIR}/Views
     ${CMAKE_CURRENT_SOURCE_DIR}/Views/Components/widgetbox
     ${CMAKE_CURRENT_SOURCE_DIR}/Views/Components/SampleDesigner
-    ${CMAKE_CURRENT_SOURCE_DIR}/qttools/qtpropertybrowser
+#    ${CMAKE_CURRENT_SOURCE_DIR}/qttools/qtpropertybrowser
 )
 include_directories(${include_dirs})
-include_directories(${CMAKE_CURRENT_BINARY_DIR}) # qtpropertybrowser needs some moc files
+#include_directories(${CMAKE_CURRENT_BINARY_DIR}) # qtpropertybrowser needs some moc files
 
 file(GLOB source_files
     "mainwindow/*.cpp"
@@ -30,7 +30,7 @@ file(GLOB source_files
     "Views/*.cpp"
 #    "Views/Components/widgetbox/*.cpp"
     "Views/Components/SampleDesigner/*.cpp"
-    "qttools/qtpropertybrowser/*.cpp"
+#    "qttools/qtpropertybrowser/*.cpp"
 )
 
 set(source_widgetbox
@@ -48,7 +48,7 @@ file(GLOB include_files
     "Views/*.h"
 #    "Views/Components/widgetbox/*.h"
     "Views/Components/SampleDesigner/*.h"
-    "qttools/qtpropertybrowser/*.h"
+#    "qttools/qtpropertybrowser/*.h"
 )
 
 set(include_widgetbox
@@ -63,7 +63,7 @@ list(APPEND include_files ${include_widgetbox})
 
 set(resource_files
     "coregui.qrc"
-    "qttools/qtpropertybrowser/qtpropertybrowser.qrc"
+#    "qttools/qtpropertybrowser/qtpropertybrowser.qrc"
     "Views/Components/SampleDesigner/SampleDesigner.qrc"
     "Views/Components/widgetbox/widgetbox.qrc"
 )
@@ -74,11 +74,10 @@ add_definitions(-DQT_DISABLE_DEPRECATED_BEFORE=0x040900)
 
 add_executable(${executable_name} ${source_files} ${RC_SRCS} ${include_files})
 
-message("YYY ${qcustomplot_INCLUDE_DIRS}}")
-
 # --- dependencies ---
 include_directories(
     ${qcustomplot_INCLUDE_DIRS}
+    ${qtpropertybrowser_INCLUDE_DIRS}
     ${GQt_INCLUDE_DIRS}
     ${QtRoot_INCLUDE_DIRS}
     ${Boost_INCLUDE_DIRS}
@@ -89,13 +88,12 @@ include_directories(
     ${EIGEN3_INCLUDE_DIR}
     ${PYTHON_INCLUDE_DIRS}
 )
-target_link_libraries(${executable_name}
-)
 
 #core gui script webkit webkitwidgets designer designercomponents
 
 target_link_libraries(${executable_name} 
     ${qcustomplot_LIBRARY}
+    ${qtpropertybrowser_LIBRARY}
     ${GQt_LIBRARY}
     ${QtRoot_LIBRARY}
     ${Qt5Widgets_LIBRARIES}
diff --git a/GUI/coregui/Models/PythonScriptSampleBuilder.cpp b/GUI/coregui/Models/PythonScriptSampleBuilder.cpp
index 636712fc4f4..62ec776f27f 100644
--- a/GUI/coregui/Models/PythonScriptSampleBuilder.cpp
+++ b/GUI/coregui/Models/PythonScriptSampleBuilder.cpp
@@ -1,7 +1,5 @@
 #include "PythonScriptSampleBuilder.h"
 
-#include <Python.h>
-#include <boost/python.hpp>
 #include <cstring>
 #include <QByteArray>
 
diff --git a/GUI/coregui/Models/PythonScriptSampleBuilder.h b/GUI/coregui/Models/PythonScriptSampleBuilder.h
index 66a4bb29e2d..a85f1147b01 100644
--- a/GUI/coregui/Models/PythonScriptSampleBuilder.h
+++ b/GUI/coregui/Models/PythonScriptSampleBuilder.h
@@ -1,6 +1,9 @@
 #ifndef PYTHONSCRIPTSAMPLEBUILDER_H
 #define PYTHONSCRIPTSAMPLEBUILDER_H
 
+#include <Python.h>
+#include <boost/python.hpp>
+
 #include "ISampleBuilder.h"
 
 #include <QFileInfo>
diff --git a/GUI/coregui/Views/Components/widgetbox/filterwidget_p.h b/GUI/coregui/Views/Components/widgetbox/filterwidget_p.h
deleted file mode 100644
index 437965204df..00000000000
--- a/GUI/coregui/Views/Components/widgetbox/filterwidget_p.h
+++ /dev/null
@@ -1,157 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2012 Digia Plc and/or its subsidiary(-ies).
-** Contact: http://www.qt-project.org/legal
-**
-** This file is part of the Qt Designer of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and Digia.  For licensing terms and
-** conditions see http://qt.digia.com/licensing.  For further information
-** use the contact form at http://qt.digia.com/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 2.1 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPL included in the
-** packaging of this file.  Please review the following information to
-** ensure the GNU Lesser General Public License version 2.1 requirements
-** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
-**
-** In addition, as a special exception, Digia gives you certain additional
-** rights.  These rights are described in the Digia Qt LGPL Exception
-** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 3.0 as published by the Free Software
-** Foundation and appearing in the file LICENSE.GPL included in the
-** packaging of this file.  Please review the following information to
-** ensure the GNU General Public License version 3.0 requirements will be
-** met: http://www.gnu.org/copyleft/gpl.html.
-**
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-//
-//  W A R N I N G
-//  -------------
-//
-// This file is not part of the Qt API.  It exists for the convenience
-// of Qt Designer.  This header
-// file may change from version to version without notice, or even be removed.
-//
-// We mean it.
-//
-
-#ifndef FILTERWIDGET_H
-#define FILTERWIDGET_H
-
-#include "shared_global_p.h"
-
-//#include <QtWidgets/QWidget>
-//#include <QtWidgets/QLineEdit>
-//#include <QtGui/QColor>
-//#include <QtWidgets/QToolButton>
-
-#include <QWidget>
-#include <QLineEdit>
-#include <QColor>
-#include <QToolButton>
-
-
-QT_BEGIN_NAMESPACE
-
-class QToolButton;
-
-namespace qdesigner_internal {
-
-/* This widget should never have initial focus
- * (ie, be the first widget of a dialog, else, the hint cannot be displayed.
- * For situations, where it is the only focusable control (widget box),
- * there is a special "refuseFocus()" mode, in which it clears the focus
- * policy and focusses explicitly on click (note that setting Qt::ClickFocus
- * is not sufficient for that as an ActivationFocus will occur). */
-
-#define ICONBUTTON_SIZE 16
-
-class QDESIGNER_SHARED_EXPORT HintLineEdit : public QLineEdit {
-    Q_OBJECT
-public:
-    explicit HintLineEdit(QWidget *parent = 0);
-
-    bool refuseFocus() const;
-    void setRefuseFocus(bool v);
-
-protected:
-    virtual void mousePressEvent(QMouseEvent *event);
-    virtual void focusInEvent(QFocusEvent *e);
-
-private:
-    const Qt::FocusPolicy m_defaultFocusPolicy;
-    bool m_refuseFocus;
-};
-
-// IconButton: This is a simple helper class that represents clickable icons
-
-class IconButton: public QToolButton
-{
-    Q_OBJECT
-    Q_PROPERTY(float fader READ fader WRITE setFader)
-public:
-    IconButton(QWidget *parent);
-    void paintEvent(QPaintEvent *event);
-    float fader() { return m_fader; }
-    void setFader(float value) { m_fader = value; update(); }
-    void animateShow(bool visible);
-
-private:
-    float m_fader;
-};
-
-// FilterWidget: For filtering item views, with reset button Uses HintLineEdit.
-
-class  QDESIGNER_SHARED_EXPORT FilterWidget : public QWidget
-{
-    Q_OBJECT
-public:
-    enum LayoutMode {
-        // For use in toolbars: Expand to the right
-        LayoutAlignRight,
-        // No special alignment
-        LayoutAlignNone
-    };
-
-    explicit FilterWidget(QWidget *parent = 0, LayoutMode lm = LayoutAlignRight);
-
-    QString text() const;
-    void resizeEvent(QResizeEvent *);
-    bool refuseFocus() const; // see HintLineEdit
-    void setRefuseFocus(bool v);
-
-signals:
-    void filterChanged(const QString &);
-
-public slots:
-    void reset();
-
-private slots:
-    void checkButton(const QString &text);
-
-private:
-    HintLineEdit *m_editor;
-    IconButton *m_button;
-    int m_buttonwidth;
-    QString m_oldText;
-};
-} // namespace qdesigner_internal
-
-QT_END_NAMESPACE
-
-#endif
diff --git a/GUI/externals/qt-root-gui-factory/CMakeLists.txt b/GUI/externals/qt-root-gui-factory/CMakeLists.txt
index 57b89ea00cc..47089db41d3 100644
--- a/GUI/externals/qt-root-gui-factory/CMakeLists.txt
+++ b/GUI/externals/qt-root-gui-factory/CMakeLists.txt
@@ -32,8 +32,7 @@ set(${library_name}_INCLUDE_DIRS ${include_dirs} PARENT_SCOPE)
 set(${library_name}_LIBRARY ${library_name} PARENT_SCOPE)
 
 # --- dependencies ---
-message("XXX ${GQt_LIBRARY}")
-message("XXX ${ROOT_LIBRARIES} ")
+
 include_directories(
     ${GQt_INCLUDE_DIRS}
     ${ROOT_INCLUDE_DIR}
diff --git a/GUI/externals/qtpropertybrowser/CMakeLists.txt b/GUI/externals/qtpropertybrowser/CMakeLists.txt
new file mode 100644
index 00000000000..b2c584bce71
--- /dev/null
+++ b/GUI/externals/qtpropertybrowser/CMakeLists.txt
@@ -0,0 +1,39 @@
+cmake_minimum_required(VERSION 2.8.9)
+
+set(library_name qtpropertybrowser)
+
+
+file(GLOB source_files "*.cpp")
+file(GLOB include_files "*.h")
+
+set(include_dirs
+    ${CMAKE_CURRENT_SOURCE_DIR}
+    ${CMAKE_CURRENT_BINARY_DIR} # qtpropertybrowser needs some moc files
+)
+
+include_directories(${include_dirs})
+
+
+set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wno-overloaded-virtual")
+
+set(resource_files
+    "qtpropertybrowser.qrc"
+)
+
+set(CMAKE_AUTOMOC ON)
+qt5_add_resources(RC_SRCS ${resource_files})
+add_definitions(-DQT_DISABLE_DEPRECATED_BEFORE=0x040900)
+
+add_library(
+    ${library_name}
+    STATIC
+    ${source_files} ${include_files} ${RC_SRCS} ${mocfiles}
+)
+set(${library_name}_INCLUDE_DIRS ${CMAKE_CURRENT_SOURCE_DIR} PARENT_SCOPE)
+set(${library_name}_LIBRARY ${library_name} PARENT_SCOPE)
+
+target_link_libraries(${library_name} ${Qt5Widgets_LIBRARIES})
+
+qt5_use_modules(${library_name} Widgets)
+
+
diff --git a/GUI/coregui/qttools/qtpropertybrowser/QtAbstractEditorFactoryBase b/GUI/externals/qtpropertybrowser/QtAbstractEditorFactoryBase
similarity index 100%
rename from GUI/coregui/qttools/qtpropertybrowser/QtAbstractEditorFactoryBase
rename to GUI/externals/qtpropertybrowser/QtAbstractEditorFactoryBase
diff --git a/GUI/coregui/qttools/qtpropertybrowser/QtAbstractPropertyBrowser b/GUI/externals/qtpropertybrowser/QtAbstractPropertyBrowser
similarity index 100%
rename from GUI/coregui/qttools/qtpropertybrowser/QtAbstractPropertyBrowser
rename to GUI/externals/qtpropertybrowser/QtAbstractPropertyBrowser
diff --git a/GUI/coregui/qttools/qtpropertybrowser/QtAbstractPropertyManager b/GUI/externals/qtpropertybrowser/QtAbstractPropertyManager
similarity index 100%
rename from GUI/coregui/qttools/qtpropertybrowser/QtAbstractPropertyManager
rename to GUI/externals/qtpropertybrowser/QtAbstractPropertyManager
diff --git a/GUI/coregui/qttools/qtpropertybrowser/QtBoolPropertyManager b/GUI/externals/qtpropertybrowser/QtBoolPropertyManager
similarity index 100%
rename from GUI/coregui/qttools/qtpropertybrowser/QtBoolPropertyManager
rename to GUI/externals/qtpropertybrowser/QtBoolPropertyManager
diff --git a/GUI/coregui/qttools/qtpropertybrowser/QtBrowserItem b/GUI/externals/qtpropertybrowser/QtBrowserItem
similarity index 100%
rename from GUI/coregui/qttools/qtpropertybrowser/QtBrowserItem
rename to GUI/externals/qtpropertybrowser/QtBrowserItem
diff --git a/GUI/coregui/qttools/qtpropertybrowser/QtButtonPropertyBrowser b/GUI/externals/qtpropertybrowser/QtButtonPropertyBrowser
similarity index 100%
rename from GUI/coregui/qttools/qtpropertybrowser/QtButtonPropertyBrowser
rename to GUI/externals/qtpropertybrowser/QtButtonPropertyBrowser
diff --git a/GUI/coregui/qttools/qtpropertybrowser/QtCharEditorFactory b/GUI/externals/qtpropertybrowser/QtCharEditorFactory
similarity index 100%
rename from GUI/coregui/qttools/qtpropertybrowser/QtCharEditorFactory
rename to GUI/externals/qtpropertybrowser/QtCharEditorFactory
diff --git a/GUI/coregui/qttools/qtpropertybrowser/QtCharPropertyManager b/GUI/externals/qtpropertybrowser/QtCharPropertyManager
similarity index 100%
rename from GUI/coregui/qttools/qtpropertybrowser/QtCharPropertyManager
rename to GUI/externals/qtpropertybrowser/QtCharPropertyManager
diff --git a/GUI/coregui/qttools/qtpropertybrowser/QtCheckBoxFactory b/GUI/externals/qtpropertybrowser/QtCheckBoxFactory
similarity index 100%
rename from GUI/coregui/qttools/qtpropertybrowser/QtCheckBoxFactory
rename to GUI/externals/qtpropertybrowser/QtCheckBoxFactory
diff --git a/GUI/coregui/qttools/qtpropertybrowser/QtColorEditorFactory b/GUI/externals/qtpropertybrowser/QtColorEditorFactory
similarity index 100%
rename from GUI/coregui/qttools/qtpropertybrowser/QtColorEditorFactory
rename to GUI/externals/qtpropertybrowser/QtColorEditorFactory
diff --git a/GUI/coregui/qttools/qtpropertybrowser/QtColorPropertyManager b/GUI/externals/qtpropertybrowser/QtColorPropertyManager
similarity index 100%
rename from GUI/coregui/qttools/qtpropertybrowser/QtColorPropertyManager
rename to GUI/externals/qtpropertybrowser/QtColorPropertyManager
diff --git a/GUI/coregui/qttools/qtpropertybrowser/QtCursorEditorFactory b/GUI/externals/qtpropertybrowser/QtCursorEditorFactory
similarity index 100%
rename from GUI/coregui/qttools/qtpropertybrowser/QtCursorEditorFactory
rename to GUI/externals/qtpropertybrowser/QtCursorEditorFactory
diff --git a/GUI/coregui/qttools/qtpropertybrowser/QtCursorPropertyManager b/GUI/externals/qtpropertybrowser/QtCursorPropertyManager
similarity index 100%
rename from GUI/coregui/qttools/qtpropertybrowser/QtCursorPropertyManager
rename to GUI/externals/qtpropertybrowser/QtCursorPropertyManager
diff --git a/GUI/coregui/qttools/qtpropertybrowser/QtDateEditFactory b/GUI/externals/qtpropertybrowser/QtDateEditFactory
similarity index 100%
rename from GUI/coregui/qttools/qtpropertybrowser/QtDateEditFactory
rename to GUI/externals/qtpropertybrowser/QtDateEditFactory
diff --git a/GUI/coregui/qttools/qtpropertybrowser/QtDatePropertyManager b/GUI/externals/qtpropertybrowser/QtDatePropertyManager
similarity index 100%
rename from GUI/coregui/qttools/qtpropertybrowser/QtDatePropertyManager
rename to GUI/externals/qtpropertybrowser/QtDatePropertyManager
diff --git a/GUI/coregui/qttools/qtpropertybrowser/QtDateTimeEditFactory b/GUI/externals/qtpropertybrowser/QtDateTimeEditFactory
similarity index 100%
rename from GUI/coregui/qttools/qtpropertybrowser/QtDateTimeEditFactory
rename to GUI/externals/qtpropertybrowser/QtDateTimeEditFactory
diff --git a/GUI/coregui/qttools/qtpropertybrowser/QtDateTimePropertyManager b/GUI/externals/qtpropertybrowser/QtDateTimePropertyManager
similarity index 100%
rename from GUI/coregui/qttools/qtpropertybrowser/QtDateTimePropertyManager
rename to GUI/externals/qtpropertybrowser/QtDateTimePropertyManager
diff --git a/GUI/coregui/qttools/qtpropertybrowser/QtDoublePropertyManager b/GUI/externals/qtpropertybrowser/QtDoublePropertyManager
similarity index 100%
rename from GUI/coregui/qttools/qtpropertybrowser/QtDoublePropertyManager
rename to GUI/externals/qtpropertybrowser/QtDoublePropertyManager
diff --git a/GUI/coregui/qttools/qtpropertybrowser/QtDoubleSpinBoxFactory b/GUI/externals/qtpropertybrowser/QtDoubleSpinBoxFactory
similarity index 100%
rename from GUI/coregui/qttools/qtpropertybrowser/QtDoubleSpinBoxFactory
rename to GUI/externals/qtpropertybrowser/QtDoubleSpinBoxFactory
diff --git a/GUI/coregui/qttools/qtpropertybrowser/QtEnumEditorFactory b/GUI/externals/qtpropertybrowser/QtEnumEditorFactory
similarity index 100%
rename from GUI/coregui/qttools/qtpropertybrowser/QtEnumEditorFactory
rename to GUI/externals/qtpropertybrowser/QtEnumEditorFactory
diff --git a/GUI/coregui/qttools/qtpropertybrowser/QtEnumPropertyManager b/GUI/externals/qtpropertybrowser/QtEnumPropertyManager
similarity index 100%
rename from GUI/coregui/qttools/qtpropertybrowser/QtEnumPropertyManager
rename to GUI/externals/qtpropertybrowser/QtEnumPropertyManager
diff --git a/GUI/coregui/qttools/qtpropertybrowser/QtFlagPropertyManager b/GUI/externals/qtpropertybrowser/QtFlagPropertyManager
similarity index 100%
rename from GUI/coregui/qttools/qtpropertybrowser/QtFlagPropertyManager
rename to GUI/externals/qtpropertybrowser/QtFlagPropertyManager
diff --git a/GUI/coregui/qttools/qtpropertybrowser/QtFontEditorFactory b/GUI/externals/qtpropertybrowser/QtFontEditorFactory
similarity index 100%
rename from GUI/coregui/qttools/qtpropertybrowser/QtFontEditorFactory
rename to GUI/externals/qtpropertybrowser/QtFontEditorFactory
diff --git a/GUI/coregui/qttools/qtpropertybrowser/QtFontPropertyManager b/GUI/externals/qtpropertybrowser/QtFontPropertyManager
similarity index 100%
rename from GUI/coregui/qttools/qtpropertybrowser/QtFontPropertyManager
rename to GUI/externals/qtpropertybrowser/QtFontPropertyManager
diff --git a/GUI/coregui/qttools/qtpropertybrowser/QtGroupBoxPropertyBrowser b/GUI/externals/qtpropertybrowser/QtGroupBoxPropertyBrowser
similarity index 100%
rename from GUI/coregui/qttools/qtpropertybrowser/QtGroupBoxPropertyBrowser
rename to GUI/externals/qtpropertybrowser/QtGroupBoxPropertyBrowser
diff --git a/GUI/coregui/qttools/qtpropertybrowser/QtGroupPropertyManager b/GUI/externals/qtpropertybrowser/QtGroupPropertyManager
similarity index 100%
rename from GUI/coregui/qttools/qtpropertybrowser/QtGroupPropertyManager
rename to GUI/externals/qtpropertybrowser/QtGroupPropertyManager
diff --git a/GUI/coregui/qttools/qtpropertybrowser/QtIntPropertyManager b/GUI/externals/qtpropertybrowser/QtIntPropertyManager
similarity index 100%
rename from GUI/coregui/qttools/qtpropertybrowser/QtIntPropertyManager
rename to GUI/externals/qtpropertybrowser/QtIntPropertyManager
diff --git a/GUI/coregui/qttools/qtpropertybrowser/QtKeySequenceEditorFactory b/GUI/externals/qtpropertybrowser/QtKeySequenceEditorFactory
similarity index 100%
rename from GUI/coregui/qttools/qtpropertybrowser/QtKeySequenceEditorFactory
rename to GUI/externals/qtpropertybrowser/QtKeySequenceEditorFactory
diff --git a/GUI/coregui/qttools/qtpropertybrowser/QtKeySequencePropertyManager b/GUI/externals/qtpropertybrowser/QtKeySequencePropertyManager
similarity index 100%
rename from GUI/coregui/qttools/qtpropertybrowser/QtKeySequencePropertyManager
rename to GUI/externals/qtpropertybrowser/QtKeySequencePropertyManager
diff --git a/GUI/coregui/qttools/qtpropertybrowser/QtLineEditFactory b/GUI/externals/qtpropertybrowser/QtLineEditFactory
similarity index 100%
rename from GUI/coregui/qttools/qtpropertybrowser/QtLineEditFactory
rename to GUI/externals/qtpropertybrowser/QtLineEditFactory
diff --git a/GUI/coregui/qttools/qtpropertybrowser/QtLocalePropertyManager b/GUI/externals/qtpropertybrowser/QtLocalePropertyManager
similarity index 100%
rename from GUI/coregui/qttools/qtpropertybrowser/QtLocalePropertyManager
rename to GUI/externals/qtpropertybrowser/QtLocalePropertyManager
diff --git a/GUI/coregui/qttools/qtpropertybrowser/QtPointFPropertyManager b/GUI/externals/qtpropertybrowser/QtPointFPropertyManager
similarity index 100%
rename from GUI/coregui/qttools/qtpropertybrowser/QtPointFPropertyManager
rename to GUI/externals/qtpropertybrowser/QtPointFPropertyManager
diff --git a/GUI/coregui/qttools/qtpropertybrowser/QtPointPropertyManager b/GUI/externals/qtpropertybrowser/QtPointPropertyManager
similarity index 100%
rename from GUI/coregui/qttools/qtpropertybrowser/QtPointPropertyManager
rename to GUI/externals/qtpropertybrowser/QtPointPropertyManager
diff --git a/GUI/coregui/qttools/qtpropertybrowser/QtProperty b/GUI/externals/qtpropertybrowser/QtProperty
similarity index 100%
rename from GUI/coregui/qttools/qtpropertybrowser/QtProperty
rename to GUI/externals/qtpropertybrowser/QtProperty
diff --git a/GUI/coregui/qttools/qtpropertybrowser/QtRectFPropertyManager b/GUI/externals/qtpropertybrowser/QtRectFPropertyManager
similarity index 100%
rename from GUI/coregui/qttools/qtpropertybrowser/QtRectFPropertyManager
rename to GUI/externals/qtpropertybrowser/QtRectFPropertyManager
diff --git a/GUI/coregui/qttools/qtpropertybrowser/QtRectPropertyManager b/GUI/externals/qtpropertybrowser/QtRectPropertyManager
similarity index 100%
rename from GUI/coregui/qttools/qtpropertybrowser/QtRectPropertyManager
rename to GUI/externals/qtpropertybrowser/QtRectPropertyManager
diff --git a/GUI/coregui/qttools/qtpropertybrowser/QtScrollBarFactory b/GUI/externals/qtpropertybrowser/QtScrollBarFactory
similarity index 100%
rename from GUI/coregui/qttools/qtpropertybrowser/QtScrollBarFactory
rename to GUI/externals/qtpropertybrowser/QtScrollBarFactory
diff --git a/GUI/coregui/qttools/qtpropertybrowser/QtSizeFPropertyManager b/GUI/externals/qtpropertybrowser/QtSizeFPropertyManager
similarity index 100%
rename from GUI/coregui/qttools/qtpropertybrowser/QtSizeFPropertyManager
rename to GUI/externals/qtpropertybrowser/QtSizeFPropertyManager
diff --git a/GUI/coregui/qttools/qtpropertybrowser/QtSizePolicyPropertyManager b/GUI/externals/qtpropertybrowser/QtSizePolicyPropertyManager
similarity index 100%
rename from GUI/coregui/qttools/qtpropertybrowser/QtSizePolicyPropertyManager
rename to GUI/externals/qtpropertybrowser/QtSizePolicyPropertyManager
diff --git a/GUI/coregui/qttools/qtpropertybrowser/QtSizePropertyManager b/GUI/externals/qtpropertybrowser/QtSizePropertyManager
similarity index 100%
rename from GUI/coregui/qttools/qtpropertybrowser/QtSizePropertyManager
rename to GUI/externals/qtpropertybrowser/QtSizePropertyManager
diff --git a/GUI/coregui/qttools/qtpropertybrowser/QtSliderFactory b/GUI/externals/qtpropertybrowser/QtSliderFactory
similarity index 100%
rename from GUI/coregui/qttools/qtpropertybrowser/QtSliderFactory
rename to GUI/externals/qtpropertybrowser/QtSliderFactory
diff --git a/GUI/coregui/qttools/qtpropertybrowser/QtSpinBoxFactory b/GUI/externals/qtpropertybrowser/QtSpinBoxFactory
similarity index 100%
rename from GUI/coregui/qttools/qtpropertybrowser/QtSpinBoxFactory
rename to GUI/externals/qtpropertybrowser/QtSpinBoxFactory
diff --git a/GUI/coregui/qttools/qtpropertybrowser/QtStringPropertyManager b/GUI/externals/qtpropertybrowser/QtStringPropertyManager
similarity index 100%
rename from GUI/coregui/qttools/qtpropertybrowser/QtStringPropertyManager
rename to GUI/externals/qtpropertybrowser/QtStringPropertyManager
diff --git a/GUI/coregui/qttools/qtpropertybrowser/QtTimeEditFactory b/GUI/externals/qtpropertybrowser/QtTimeEditFactory
similarity index 100%
rename from GUI/coregui/qttools/qtpropertybrowser/QtTimeEditFactory
rename to GUI/externals/qtpropertybrowser/QtTimeEditFactory
diff --git a/GUI/coregui/qttools/qtpropertybrowser/QtTimePropertyManager b/GUI/externals/qtpropertybrowser/QtTimePropertyManager
similarity index 100%
rename from GUI/coregui/qttools/qtpropertybrowser/QtTimePropertyManager
rename to GUI/externals/qtpropertybrowser/QtTimePropertyManager
diff --git a/GUI/coregui/qttools/qtpropertybrowser/QtTreePropertyBrowser b/GUI/externals/qtpropertybrowser/QtTreePropertyBrowser
similarity index 100%
rename from GUI/coregui/qttools/qtpropertybrowser/QtTreePropertyBrowser
rename to GUI/externals/qtpropertybrowser/QtTreePropertyBrowser
diff --git a/GUI/coregui/qttools/qtpropertybrowser/QtVariantEditorFactory b/GUI/externals/qtpropertybrowser/QtVariantEditorFactory
similarity index 100%
rename from GUI/coregui/qttools/qtpropertybrowser/QtVariantEditorFactory
rename to GUI/externals/qtpropertybrowser/QtVariantEditorFactory
diff --git a/GUI/coregui/qttools/qtpropertybrowser/QtVariantProperty b/GUI/externals/qtpropertybrowser/QtVariantProperty
similarity index 100%
rename from GUI/coregui/qttools/qtpropertybrowser/QtVariantProperty
rename to GUI/externals/qtpropertybrowser/QtVariantProperty
diff --git a/GUI/coregui/qttools/qtpropertybrowser/QtVariantPropertyManager b/GUI/externals/qtpropertybrowser/QtVariantPropertyManager
similarity index 100%
rename from GUI/coregui/qttools/qtpropertybrowser/QtVariantPropertyManager
rename to GUI/externals/qtpropertybrowser/QtVariantPropertyManager
diff --git a/GUI/externals/qtpropertybrowser/images/cursor-arrow.png b/GUI/externals/qtpropertybrowser/images/cursor-arrow.png
new file mode 100644
index 0000000000000000000000000000000000000000..a69ef4eb6158503c7c67c916aea86e65fdc81f72
GIT binary patch
literal 171
zcmeAS@N?(olHy`uVBq!ia0vp^k|4~)3?z59=Y9ZEoB=)|uK&RR$m{!Z_zjR^ED7=p
zW^j0RBMrz2@N{tusfe>Zw~@EOfQR+sk_Oou&-fjcEVpj<&$!X3+c~E>J1*JV{%`IM
zZgwlFFx}G*?uS>UO1?P#t>x;u4TbmfTg6u$kN3O$qTon=<h7Q#SWm%S{H0M-fo3y!
My85}Sb4q9e0NTPoy#N3J

literal 0
HcmV?d00001

diff --git a/GUI/externals/qtpropertybrowser/images/cursor-busy.png b/GUI/externals/qtpropertybrowser/images/cursor-busy.png
new file mode 100644
index 0000000000000000000000000000000000000000..53717e49928a5d0e791baf971e95adc0bbe318d2
GIT binary patch
literal 201
zcmeAS@N?(olHy`uVBq!ia0vp^3LwnH3?%tPCZz)@&H$ef*Z=?j1DQaw?tQ;Mki}RM
z<QL4~@a#q!kdx=>;uum9xAyEt-c|zv=78lpdFvQ2-{H`#GwYbpmwD+D`;ru|4Sly6
z!u|DfH10id;EhPQ?!aC0$4imznq|kzoDQ|k!q4v~%5Ey$Ds|~#XU>6Rfw7|8GuZ2t
ub<aMVuv*yjsRF}0iyudSRGZv?&bDTU+{d@2COtr#89ZJ6T-G@yGywpHHA>|G

literal 0
HcmV?d00001

diff --git a/GUI/externals/qtpropertybrowser/images/cursor-closedhand.png b/GUI/externals/qtpropertybrowser/images/cursor-closedhand.png
new file mode 100644
index 0000000000000000000000000000000000000000..b78dd1dac5a827fa698f1993718f22c282019505
GIT binary patch
literal 147
zcmeAS@N?(olHy`uVBq!ia0vp^0wB!60wlNoGJgf6I14-?iy0WWJ3*My{N(AiKtWee
z7sn8d^J_1j=3-FbaJl&N|NMQrDg{-+lDl3uEOL6iyxxIhJsV5IbqBU04WsP|EmPEI
sG+%tqc!TF=!@MiLH_pW!e7ccq3Qxekuk)up2O7xW>FVdQ&MBb@057mJumAu6

literal 0
HcmV?d00001

diff --git a/GUI/externals/qtpropertybrowser/images/cursor-cross.png b/GUI/externals/qtpropertybrowser/images/cursor-cross.png
new file mode 100644
index 0000000000000000000000000000000000000000..fe38e744805f61abefcc555e07d399725c3fd7e6
GIT binary patch
literal 130
zcmeAS@N?(olHy`uVBq!ia0vp^k|4~)3?z59=Y9ZEoB=)|uK&RR$m{!Z_zjR^ED7=p
zW^j0RBMrz=_jGX#;h346aDZ1vLF6&ZrWY3kt_3XM>{%UFuy$6%gUPvacWfgV8N9#n
V_FPj?S`E~~;OXk;vd$@?2>`R9Dxv@Y

literal 0
HcmV?d00001

diff --git a/GUI/externals/qtpropertybrowser/images/cursor-forbidden.png b/GUI/externals/qtpropertybrowser/images/cursor-forbidden.png
new file mode 100644
index 0000000000000000000000000000000000000000..2b08c4e2a3cafc992459a8f484e6c8e6c3e74857
GIT binary patch
literal 199
zcmeAS@N?(olHy`uVBq!ia0vp^k|4~)3?z59=Y9ZEoB=)|uK&RR$m{!Z_zjR^ED7=p
zW^j0RBMr#O@pN$vsfa5*w~^P`kb@;)w}Ny_<s9CaC(9F>&ztDY@kvlRIOU`3qAsV;
zTo+`Y{*UQrTXjS>sKxPHd$OYcrG25=M&E9}?0tT1Yy7oqDMB$hU$uYoMqOpDnka4~
qy<fe^>gb6(Z%*F(qx}EZO#W7L6_Nk?#pi+cGI+ZBxvX<aXaWE_%TIm)

literal 0
HcmV?d00001

diff --git a/GUI/externals/qtpropertybrowser/images/cursor-hand.png b/GUI/externals/qtpropertybrowser/images/cursor-hand.png
new file mode 100644
index 0000000000000000000000000000000000000000..d2004aefa7337edc3e15327992e1d69fda5b1831
GIT binary patch
literal 159
zcmeAS@N?(olHy`uVBq!ia0vp^k|4~)3?z59=Y9ZEoB=)|uK&RR$m{!Z_zjR^ED7=p
zW^j0RBMr!L@pN$v;fPL7NDxSDXz<an?Tx5noYI%oaABgPf>&}>iqs75rOW+zd6_S+
yS|~6}xHpZ9x7T5r<gzxk1s7I_=^pS}%)nrNO)6A%?oA1xc?_PeelF{r5}E+3q%#Kq

literal 0
HcmV?d00001

diff --git a/GUI/externals/qtpropertybrowser/images/cursor-hsplit.png b/GUI/externals/qtpropertybrowser/images/cursor-hsplit.png
new file mode 100644
index 0000000000000000000000000000000000000000..a5667e3ffba185fd0138ddfca3d4d88049928812
GIT binary patch
literal 155
zcmeAS@N?(olHy`uVBq!ia0vp^k|4~)3?z59=Y9ZEoB=)|uK)l42Qq<V-TQujAd9gi
z$S;_|;n|HeAjiSe#W93qW^zIUvz{Ku+Ece2xXvy-b&F-u)sRSQN2bdSB}~lB!4ebt
x5)vNp@TT(eI)6y~RPfc{?~+^G<@yo~3~K^}w_U%p>Lt)D22WQ%mvv4FO#t=)GwlEX

literal 0
HcmV?d00001

diff --git a/GUI/externals/qtpropertybrowser/images/cursor-ibeam.png b/GUI/externals/qtpropertybrowser/images/cursor-ibeam.png
new file mode 100644
index 0000000000000000000000000000000000000000..097fc5fa7287da71ffd907b3a11adbda4516aca6
GIT binary patch
literal 124
zcmeAS@N?(olHy`uVBq!ia0vp^k|4~)3?z59=Y9ZEoB=)|uK)l42Qq<V-TQujAd9gi
z$S;_|;n|HeAV<;D#W93qW^%#-2BjXpgjo|=wFDfbXBqdHd^Pxf;7&UeL)=_8k&rv$
QAX6DUUHx3vIVCg!01_o6XaE2J

literal 0
HcmV?d00001

diff --git a/GUI/externals/qtpropertybrowser/images/cursor-openhand.png b/GUI/externals/qtpropertybrowser/images/cursor-openhand.png
new file mode 100644
index 0000000000000000000000000000000000000000..9181c859edaf9aa2c16bc7dbc753609beddd8351
GIT binary patch
literal 160
zcmeAS@N?(olHy`uVBq!ia0vp^0wB!60wlNoGJgf6I14-?iy0WWJ3*My{N(AiK*1nS
z7sn8d^Q{*i@&Q%1UVQ&I{@1U@lJIG2v-zZ4_*!21iA*SY%@&uqUj2N6zp|zB(=e@$
zx^-U#58Mw=Oi(|itMZAp-iRS3-nPN(&1&mQ4R&G`1|_rB%dJWRn$F<q>gTe~DWM4f
DkdQT7

literal 0
HcmV?d00001

diff --git a/GUI/externals/qtpropertybrowser/images/cursor-sizeall.png b/GUI/externals/qtpropertybrowser/images/cursor-sizeall.png
new file mode 100644
index 0000000000000000000000000000000000000000..69f13eb347a6c299e06844729a14f657b282fe8f
GIT binary patch
literal 174
zcmeAS@N?(olHy`uVBq!ia0vp^k|4~)3?z59=Y9ZEoB=)|uK)l42Qq<V-TQujAd9gi
z$S;_|;n|HeASc+<#W92<IyvD0LkzdVmNd4OI4Ra;GnTcPHoUwLV6gV!iv^5}rW;s!
zG`1`^u<Bq`-Qgr5>(Z!J(8lD*)YR5__{zaA2hTRn<lfAlrhiA)pgfV4;dY7W;Z@K5
RB7nv-c)I$ztaD0e0st`?JB$DT

literal 0
HcmV?d00001

diff --git a/GUI/externals/qtpropertybrowser/images/cursor-sizeb.png b/GUI/externals/qtpropertybrowser/images/cursor-sizeb.png
new file mode 100644
index 0000000000000000000000000000000000000000..f37d7b91e8cde73243fa78df45c7808aba1c5fa0
GIT binary patch
literal 161
zcmeAS@N?(olHy`uVBq!ia0vp^k|4~)3?z59=Y9ZEoB=)|uK)l42Qq<V-TQujAd9gi
z$S;_|;n|HeAji$q#W93qW^#f8PuSWlhReauid(d%JZrhs6EI8Et9zBx3jsfYy$yy9
zoG#}RN*TKSgj;7=nX-7XJG|u3kUiFrBz>mr4+Dcjj*u+}&-pB%i42~uelF{r5}E+x
CJu-a&

literal 0
HcmV?d00001

diff --git a/GUI/externals/qtpropertybrowser/images/cursor-sizef.png b/GUI/externals/qtpropertybrowser/images/cursor-sizef.png
new file mode 100644
index 0000000000000000000000000000000000000000..3b127a05d34b48a2f4f9b9cc77b681c6b43afcdd
GIT binary patch
literal 161
zcmeAS@N?(olHy`uVBq!ia0vp^k|4~)3?z59=Y9ZEoB=)|uK)l42Qq<V-TQujAd9gi
z$S;_|;n|HeAji$q#W95AdUApSOW4{hhReau3ri$iYO+|S@HJdg6sVe|(K7GgD~4s_
z25bh7C2a*x8G)f3XSqx#3VIbgWnK*kkxtY*z|NqeBV>D?iBlbDB7>)^pUXO@geCxo
C3NS_h

literal 0
HcmV?d00001

diff --git a/GUI/externals/qtpropertybrowser/images/cursor-sizeh.png b/GUI/externals/qtpropertybrowser/images/cursor-sizeh.png
new file mode 100644
index 0000000000000000000000000000000000000000..a9f40cbc3d77c566c11c32c0631b4f94f44dd441
GIT binary patch
literal 145
zcmeAS@N?(olHy`uVBq!ia0vp^k|4~)3?z59=Y9ZEoB=)|uK)l42Qq<V-TQujAd9gi
z$S;_|;n|HeAjizp#W92<Iyqs1NQQwyLE{Tm9-bUt9v+`y35f`ChNDgmC2Y*h=^6qq
l3K=sjd}Mv(@5p>&V7RQzr9bPir8&?922WQ%mvv4FO#sHOC(Zx>

literal 0
HcmV?d00001

diff --git a/GUI/externals/qtpropertybrowser/images/cursor-sizev.png b/GUI/externals/qtpropertybrowser/images/cursor-sizev.png
new file mode 100644
index 0000000000000000000000000000000000000000..1edbab27a5b05555aaf515931f69ad6bf7e417f0
GIT binary patch
literal 141
zcmeAS@N?(olHy`uVBq!ia0vp^k|4~)3?z59=Y9ZEoB=)|uK)l42Qq<V-TQujAd9gi
z$S;_|;n|HeAjinl#W92<IyvD0gO9d?Nw`SMHJ)sS%ihl74KG(N<P_*+;Bd{AO0zp-
iH{-9t_XBs@nHWrd@&=bpobe8*o59o7&t;ucLK6Vos4RW}

literal 0
HcmV?d00001

diff --git a/GUI/externals/qtpropertybrowser/images/cursor-uparrow.png b/GUI/externals/qtpropertybrowser/images/cursor-uparrow.png
new file mode 100644
index 0000000000000000000000000000000000000000..d3e70ef4c2413c6f81c7cfffa32be7228b2b27b9
GIT binary patch
literal 132
zcmeAS@N?(olHy`uVBq!ia0vp^k|4~)3?z59=Y9ZEoB=)|uK)l42Qq<V-TQujAd9gi
z$S;_|;n|HeAV<^F#W92<IyvD0gO9d?Nw`SMHJ)sS%ihl74KG(N<P_*+Xlq<3Zjivl
Yu=Y8Zlli4OBcLV*Pgg&ebxsLQ05a|-;s5{u

literal 0
HcmV?d00001

diff --git a/GUI/externals/qtpropertybrowser/images/cursor-vsplit.png b/GUI/externals/qtpropertybrowser/images/cursor-vsplit.png
new file mode 100644
index 0000000000000000000000000000000000000000..1beda2570e4328382ea43512acfe23d386214f37
GIT binary patch
literal 161
zcmeAS@N?(olHy`uVBq!ia0vp^k|4~)3?z59=Y9ZEoB=)|uK)l42Qq<V-TQujAd9gi
z$S;_|;n|HeAji$q#W92<IyvD0ugHQgJRC<w*cMtkOCQ*hmBBRQ*(}zF#vBbC%R*PD
zt&L(0VrAkjkdjT9$o|@W2D`C*n*5o%8PyNoF*7oRv5T-y*|r^IJcFmJpUXO@geCx*
C>M`U1

literal 0
HcmV?d00001

diff --git a/GUI/externals/qtpropertybrowser/images/cursor-wait.png b/GUI/externals/qtpropertybrowser/images/cursor-wait.png
new file mode 100644
index 0000000000000000000000000000000000000000..69056c479e9b2f009e366dfd71999a7c74f97620
GIT binary patch
literal 172
zcmeAS@N?(olHy`uVBq!ia0vp^k|4~)3?z59=Y9ZEoB=)|uK&RR$m{!Z_zjR^ED7=p
zW^j0RBMrz2^mK6y;h346;J_ZVI&3Y=<%J7po~YS&;ev>WRgqc?pLgqp;N^OZ7kj)9
zt2OYRn)8&w&_Fn;AZ-e>OWiG&j$ap41wJoZG>h5TTvwNMesusN!}2q-U)D!*O8^aL
N@O1TaS?83{1OR$JJ0<`C

literal 0
HcmV?d00001

diff --git a/GUI/externals/qtpropertybrowser/images/cursor-whatsthis.png b/GUI/externals/qtpropertybrowser/images/cursor-whatsthis.png
new file mode 100644
index 0000000000000000000000000000000000000000..b47601c3780eec780fdae43bab7481bbfebdddae
GIT binary patch
literal 191
zcmeAS@N?(olHy`uVBq!ia0vp^3LwnH3?%tPCZz)@&H$ef*Z*Ju<n?_y{02xdmIV0)
zGdMiEkp|?Xc)B=-NQ5V6Bs4U!^6)HFR5-@Nb}Ureu_u!!CwQ|=L(fXyAYp|b771mh
zV;s$fPSLUlcP(pE+n~#6yeQ1WmtnT>L59RLGuTpf8VsdEq+OT~Tw87C;38om{D5bL
fNHFu^21W*zFY<T8`}GTf_Az+6`njxgN@xNA6kIvA

literal 0
HcmV?d00001

diff --git a/GUI/coregui/qttools/qtpropertybrowser/qtbuttonpropertybrowser.cpp b/GUI/externals/qtpropertybrowser/qtbuttonpropertybrowser.cpp
similarity index 99%
rename from GUI/coregui/qttools/qtpropertybrowser/qtbuttonpropertybrowser.cpp
rename to GUI/externals/qtpropertybrowser/qtbuttonpropertybrowser.cpp
index dc79c6db544..293fbf6bfdb 100644
--- a/GUI/coregui/qttools/qtpropertybrowser/qtbuttonpropertybrowser.cpp
+++ b/GUI/externals/qtpropertybrowser/qtbuttonpropertybrowser.cpp
@@ -624,5 +624,4 @@ bool QtButtonPropertyBrowser::isExpanded(QtBrowserItem *item) const
 QT_END_NAMESPACE
 #endif
 
-//XXX
 #include "moc_qtbuttonpropertybrowser.cpp"
diff --git a/GUI/coregui/qttools/qtpropertybrowser/qtbuttonpropertybrowser.h b/GUI/externals/qtpropertybrowser/qtbuttonpropertybrowser.h
similarity index 100%
rename from GUI/coregui/qttools/qtpropertybrowser/qtbuttonpropertybrowser.h
rename to GUI/externals/qtpropertybrowser/qtbuttonpropertybrowser.h
diff --git a/GUI/coregui/qttools/qtpropertybrowser/qteditorfactory.cpp b/GUI/externals/qtpropertybrowser/qteditorfactory.cpp
similarity index 98%
rename from GUI/coregui/qttools/qtpropertybrowser/qteditorfactory.cpp
rename to GUI/externals/qtpropertybrowser/qteditorfactory.cpp
index 2dcf6a010df..c9a371dadd4 100644
--- a/GUI/coregui/qttools/qtpropertybrowser/qteditorfactory.cpp
+++ b/GUI/externals/qtpropertybrowser/qteditorfactory.cpp
@@ -631,6 +631,7 @@ class QtCheckBoxFactoryPrivate : public EditorFactoryPrivate<QtBoolEdit>
     Q_DECLARE_PUBLIC(QtCheckBoxFactory)
 public:
     void slotPropertyChanged(QtProperty *property, bool value);
+    void slotTextVisibleChanged(QtProperty *property, bool textVisible);
     void slotSetValue(bool value);
 };
 
@@ -648,6 +649,22 @@ void QtCheckBoxFactoryPrivate::slotPropertyChanged(QtProperty *property, bool va
     }
 }
 
+void QtCheckBoxFactoryPrivate::slotTextVisibleChanged(QtProperty *property, bool textVisible)
+{
+    if (!m_createdEditors.contains(property))
+        return;
+
+    QtBoolPropertyManager *manager = q_ptr->propertyManager(property);
+    if (!manager)
+        return;
+
+    QListIterator<QtBoolEdit *> itEditor(m_createdEditors[property]);
+    while (itEditor.hasNext()) {
+        QtBoolEdit *editor = itEditor.next();
+        editor->setTextVisible(textVisible);
+    }
+}
+
 void QtCheckBoxFactoryPrivate::slotSetValue(bool value)
 {
     QObject *object = q_ptr->sender();
@@ -702,6 +719,8 @@ void QtCheckBoxFactory::connectPropertyManager(QtBoolPropertyManager *manager)
 {
     connect(manager, SIGNAL(valueChanged(QtProperty *, bool)),
                 this, SLOT(slotPropertyChanged(QtProperty *, bool)));
+    connect(manager, SIGNAL(textVisibleChanged(QtProperty *, bool)),
+                this, SLOT(slotTextVisibleChanged(QtProperty *, bool)));
 }
 
 /*!
@@ -714,6 +733,7 @@ QWidget *QtCheckBoxFactory::createEditor(QtBoolPropertyManager *manager, QtPrope
 {
     QtBoolEdit *editor = d_ptr->createEditor(property, parent);
     editor->setChecked(manager->value(property));
+    editor->setTextVisible(manager->textVisible(property));
 
     connect(editor, SIGNAL(toggled(bool)), this, SLOT(slotSetValue(bool)));
     connect(editor, SIGNAL(destroyed(QObject *)),
@@ -730,6 +750,8 @@ void QtCheckBoxFactory::disconnectPropertyManager(QtBoolPropertyManager *manager
 {
     disconnect(manager, SIGNAL(valueChanged(QtProperty *, bool)),
                 this, SLOT(slotPropertyChanged(QtProperty *, bool)));
+    disconnect(manager, SIGNAL(textVisibleChanged(QtProperty *, bool)),
+                this, SLOT(slotTextVisibleChanged(QtProperty *, bool)));
 }
 
 // QtDoubleSpinBoxFactory
@@ -2678,6 +2700,5 @@ void QtFontEditorFactory::disconnectPropertyManager(QtFontPropertyManager *manag
 QT_END_NAMESPACE
 #endif
 
-//XXX
 #include "moc_qteditorfactory.cpp"
 #include "qteditorfactory.moc"
diff --git a/GUI/coregui/qttools/qtpropertybrowser/qteditorfactory.h b/GUI/externals/qtpropertybrowser/qteditorfactory.h
similarity index 99%
rename from GUI/coregui/qttools/qtpropertybrowser/qteditorfactory.h
rename to GUI/externals/qtpropertybrowser/qteditorfactory.h
index 37204ce056f..cbb2077d229 100644
--- a/GUI/coregui/qttools/qtpropertybrowser/qteditorfactory.h
+++ b/GUI/externals/qtpropertybrowser/qteditorfactory.h
@@ -139,6 +139,7 @@ private:
     Q_DECLARE_PRIVATE(QtCheckBoxFactory)
     Q_DISABLE_COPY(QtCheckBoxFactory)
     Q_PRIVATE_SLOT(d_func(), void slotPropertyChanged(QtProperty *, bool))
+    Q_PRIVATE_SLOT(d_func(), void slotTextVisibleChanged(QtProperty *, bool))
     Q_PRIVATE_SLOT(d_func(), void slotSetValue(bool))
     Q_PRIVATE_SLOT(d_func(), void slotEditorDestroyed(QObject *))
 };
diff --git a/GUI/coregui/qttools/qtpropertybrowser/qtgroupboxpropertybrowser.cpp b/GUI/externals/qtpropertybrowser/qtgroupboxpropertybrowser.cpp
similarity index 100%
rename from GUI/coregui/qttools/qtpropertybrowser/qtgroupboxpropertybrowser.cpp
rename to GUI/externals/qtpropertybrowser/qtgroupboxpropertybrowser.cpp
diff --git a/GUI/coregui/qttools/qtpropertybrowser/qtgroupboxpropertybrowser.h b/GUI/externals/qtpropertybrowser/qtgroupboxpropertybrowser.h
similarity index 100%
rename from GUI/coregui/qttools/qtpropertybrowser/qtgroupboxpropertybrowser.h
rename to GUI/externals/qtpropertybrowser/qtgroupboxpropertybrowser.h
diff --git a/GUI/coregui/qttools/qtpropertybrowser/qtpropertybrowser.cpp b/GUI/externals/qtpropertybrowser/qtpropertybrowser.cpp
similarity index 100%
rename from GUI/coregui/qttools/qtpropertybrowser/qtpropertybrowser.cpp
rename to GUI/externals/qtpropertybrowser/qtpropertybrowser.cpp
diff --git a/GUI/coregui/qttools/qtpropertybrowser/qtpropertybrowser.h b/GUI/externals/qtpropertybrowser/qtpropertybrowser.h
similarity index 100%
rename from GUI/coregui/qttools/qtpropertybrowser/qtpropertybrowser.h
rename to GUI/externals/qtpropertybrowser/qtpropertybrowser.h
diff --git a/GUI/externals/qtpropertybrowser/qtpropertybrowser.pri b/GUI/externals/qtpropertybrowser/qtpropertybrowser.pri
new file mode 100644
index 00000000000..2797827872d
--- /dev/null
+++ b/GUI/externals/qtpropertybrowser/qtpropertybrowser.pri
@@ -0,0 +1,32 @@
+include(../common.pri)
+greaterThan(QT_MAJOR_VERSION, 4): QT *= widgets
+INCLUDEPATH += $$PWD
+DEPENDPATH += $$PWD
+
+qtpropertybrowser-uselib:!qtpropertybrowser-buildlib {
+    LIBS += -L$$QTPROPERTYBROWSER_LIBDIR -l$$QTPROPERTYBROWSER_LIBNAME
+} else {
+    DEFINES += QT_DISABLE_DEPRECATED_BEFORE=0
+    SOURCES += $$PWD/qtpropertybrowser.cpp \
+            $$PWD/qtpropertymanager.cpp \
+            $$PWD/qteditorfactory.cpp \
+            $$PWD/qtvariantproperty.cpp \
+            $$PWD/qttreepropertybrowser.cpp \
+            $$PWD/qtbuttonpropertybrowser.cpp \
+            $$PWD/qtgroupboxpropertybrowser.cpp \
+            $$PWD/qtpropertybrowserutils.cpp
+    HEADERS += $$PWD/qtpropertybrowser.h \
+            $$PWD/qtpropertymanager.h \
+            $$PWD/qteditorfactory.h \
+            $$PWD/qtvariantproperty.h \
+            $$PWD/qttreepropertybrowser.h \
+            $$PWD/qtbuttonpropertybrowser.h \
+            $$PWD/qtgroupboxpropertybrowser.h \
+            $$PWD/qtpropertybrowserutils_p.h
+    RESOURCES += $$PWD/qtpropertybrowser.qrc
+}
+
+win32 {
+    contains(TEMPLATE, lib):contains(CONFIG, shared):DEFINES += QT_QTPROPERTYBROWSER_EXPORT
+    else:qtpropertybrowser-uselib:DEFINES += QT_QTPROPERTYBROWSER_IMPORT
+}
diff --git a/GUI/coregui/qttools/qtpropertybrowser/qtpropertybrowser.qrc b/GUI/externals/qtpropertybrowser/qtpropertybrowser.qrc
similarity index 100%
rename from GUI/coregui/qttools/qtpropertybrowser/qtpropertybrowser.qrc
rename to GUI/externals/qtpropertybrowser/qtpropertybrowser.qrc
diff --git a/GUI/coregui/qttools/qtpropertybrowser/qtpropertybrowserutils.cpp b/GUI/externals/qtpropertybrowser/qtpropertybrowserutils.cpp
similarity index 100%
rename from GUI/coregui/qttools/qtpropertybrowser/qtpropertybrowserutils.cpp
rename to GUI/externals/qtpropertybrowser/qtpropertybrowserutils.cpp
diff --git a/GUI/coregui/qttools/qtpropertybrowser/qtpropertybrowserutils_p.h b/GUI/externals/qtpropertybrowser/qtpropertybrowserutils_p.h
similarity index 100%
rename from GUI/coregui/qttools/qtpropertybrowser/qtpropertybrowserutils_p.h
rename to GUI/externals/qtpropertybrowser/qtpropertybrowserutils_p.h
diff --git a/GUI/coregui/qttools/qtpropertybrowser/qtpropertymanager.cpp b/GUI/externals/qtpropertybrowser/qtpropertymanager.cpp
similarity index 99%
rename from GUI/coregui/qttools/qtpropertybrowser/qtpropertymanager.cpp
rename to GUI/externals/qtpropertybrowser/qtpropertymanager.cpp
index cfc54efef0d..e50cafc452e 100644
--- a/GUI/coregui/qttools/qtpropertybrowser/qtpropertymanager.cpp
+++ b/GUI/externals/qtpropertybrowser/qtpropertymanager.cpp
@@ -1600,7 +1600,16 @@ class QtBoolPropertyManagerPrivate
 public:
     QtBoolPropertyManagerPrivate();
 
-    QMap<const QtProperty *, bool> m_values;
+    struct Data
+    {
+        Data() : val(false), textVisible(true) {}
+        bool val;
+        bool textVisible;
+    };
+
+    typedef QMap<const QtProperty *, Data> PropertyValueMap;
+    PropertyValueMap m_values;
+
     const QIcon m_checkedIcon;
     const QIcon m_uncheckedIcon;
 };
@@ -1663,7 +1672,12 @@ QtBoolPropertyManager::~QtBoolPropertyManager()
 */
 bool QtBoolPropertyManager::value(const QtProperty *property) const
 {
-    return d_ptr->m_values.value(property, false);
+    return getValue<bool>(d_ptr->m_values, property, false);
+}
+
+bool QtBoolPropertyManager::textVisible(const QtProperty *property) const
+{
+    return getData<bool>(d_ptr->m_values, &QtBoolPropertyManagerPrivate::Data::textVisible, property, false);
 }
 
 /*!
@@ -1671,13 +1685,17 @@ bool QtBoolPropertyManager::value(const QtProperty *property) const
 */
 QString QtBoolPropertyManager::valueText(const QtProperty *property) const
 {
-    const QMap<const QtProperty *, bool>::const_iterator it = d_ptr->m_values.constFind(property);
+    const QtBoolPropertyManagerPrivate::PropertyValueMap::const_iterator it = d_ptr->m_values.constFind(property);
     if (it == d_ptr->m_values.constEnd())
         return QString();
 
+    const QtBoolPropertyManagerPrivate::Data &data = it.value();
+    if (!data.textVisible)
+        return QString();
+
     static const QString trueText = tr("True");
     static const QString falseText = tr("False");
-    return it.value() ? trueText : falseText;
+    return data.val ? trueText : falseText;
 }
 
 /*!
@@ -1685,11 +1703,11 @@ QString QtBoolPropertyManager::valueText(const QtProperty *property) const
 */
 QIcon QtBoolPropertyManager::valueIcon(const QtProperty *property) const
 {
-    const QMap<const QtProperty *, bool>::const_iterator it = d_ptr->m_values.constFind(property);
+    const QtBoolPropertyManagerPrivate::PropertyValueMap::const_iterator it = d_ptr->m_values.constFind(property);
     if (it == d_ptr->m_values.constEnd())
         return QIcon();
 
-    return it.value() ? d_ptr->m_checkedIcon : d_ptr->m_uncheckedIcon;
+    return it.value().val ? d_ptr->m_checkedIcon : d_ptr->m_uncheckedIcon;
 }
 
 /*!
@@ -1701,10 +1719,38 @@ QIcon QtBoolPropertyManager::valueIcon(const QtProperty *property) const
 */
 void QtBoolPropertyManager::setValue(QtProperty *property, bool val)
 {
-    setSimpleValue<bool, bool, QtBoolPropertyManager>(d_ptr->m_values, this,
-                &QtBoolPropertyManager::propertyChanged,
-                &QtBoolPropertyManager::valueChanged,
-                property, val);
+    const QtBoolPropertyManagerPrivate::PropertyValueMap::iterator it = d_ptr->m_values.find(property);
+    if (it == d_ptr->m_values.end())
+        return;
+
+    QtBoolPropertyManagerPrivate::Data data = it.value();
+
+    if (data.val == val)
+        return;
+
+    data.val = val;
+    it.value() = data;
+
+    emit propertyChanged(property);
+    emit valueChanged(property, data.val);
+}
+
+void QtBoolPropertyManager::setTextVisible(QtProperty *property, bool textVisible)
+{
+    const QtBoolPropertyManagerPrivate::PropertyValueMap::iterator it = d_ptr->m_values.find(property);
+    if (it == d_ptr->m_values.end())
+        return;
+
+    QtBoolPropertyManagerPrivate::Data data = it.value();
+
+    if (data.textVisible == textVisible)
+        return;
+
+    data.textVisible = textVisible;
+    it.value() = data;
+
+    emit propertyChanged(property);
+    emit textVisibleChanged(property, data.textVisible);
 }
 
 /*!
@@ -1712,7 +1758,7 @@ void QtBoolPropertyManager::setValue(QtProperty *property, bool val)
 */
 void QtBoolPropertyManager::initializeProperty(QtProperty *property)
 {
-    d_ptr->m_values[property] = false;
+    d_ptr->m_values[property] = QtBoolPropertyManagerPrivate::Data();
 }
 
 /*!
diff --git a/GUI/coregui/qttools/qtpropertybrowser/qtpropertymanager.h b/GUI/externals/qtpropertybrowser/qtpropertymanager.h
similarity index 99%
rename from GUI/coregui/qttools/qtpropertybrowser/qtpropertymanager.h
rename to GUI/externals/qtpropertybrowser/qtpropertymanager.h
index 6eff26eea9e..d6b94ccf1e4 100644
--- a/GUI/coregui/qttools/qtpropertybrowser/qtpropertymanager.h
+++ b/GUI/externals/qtpropertybrowser/qtpropertymanager.h
@@ -115,11 +115,14 @@ public:
     ~QtBoolPropertyManager();
 
     bool value(const QtProperty *property) const;
+    bool textVisible(const QtProperty *property) const;
 
 public Q_SLOTS:
     void setValue(QtProperty *property, bool val);
+    void setTextVisible(QtProperty *property, bool textVisible);
 Q_SIGNALS:
     void valueChanged(QtProperty *property, bool val);
+    void textVisibleChanged(QtProperty *property, bool);
 protected:
     QString valueText(const QtProperty *property) const;
     QIcon valueIcon(const QtProperty *property) const;
diff --git a/GUI/coregui/qttools/qtpropertybrowser/qttreepropertybrowser.cpp b/GUI/externals/qtpropertybrowser/qttreepropertybrowser.cpp
similarity index 100%
rename from GUI/coregui/qttools/qtpropertybrowser/qttreepropertybrowser.cpp
rename to GUI/externals/qtpropertybrowser/qttreepropertybrowser.cpp
diff --git a/GUI/coregui/qttools/qtpropertybrowser/qttreepropertybrowser.h b/GUI/externals/qtpropertybrowser/qttreepropertybrowser.h
similarity index 100%
rename from GUI/coregui/qttools/qtpropertybrowser/qttreepropertybrowser.h
rename to GUI/externals/qtpropertybrowser/qttreepropertybrowser.h
diff --git a/GUI/coregui/qttools/qtpropertybrowser/qtvariantproperty.cpp b/GUI/externals/qtpropertybrowser/qtvariantproperty.cpp
similarity index 98%
rename from GUI/coregui/qttools/qtpropertybrowser/qtvariantproperty.cpp
rename to GUI/externals/qtpropertybrowser/qtvariantproperty.cpp
index d2c02e998f3..d7fe11192c0 100644
--- a/GUI/coregui/qttools/qtpropertybrowser/qtvariantproperty.cpp
+++ b/GUI/externals/qtpropertybrowser/qtvariantproperty.cpp
@@ -344,6 +344,7 @@ public:
     void slotFlagChanged(QtProperty *property, int val);
     void slotFlagNamesChanged(QtProperty *property, const QStringList &flagNames);
     void slotReadOnlyChanged(QtProperty *property, bool readOnly);
+    void slotTextVisibleChanged(QtProperty *property, bool textVisible);
     void slotPropertyInserted(QtProperty *property, QtProperty *parent, QtProperty *after);
     void slotPropertyRemoved(QtProperty *property, QtProperty *parent);
 
@@ -375,6 +376,7 @@ public:
     const QString m_regExpAttribute;
     const QString m_echoModeAttribute;
     const QString m_readOnlyAttribute;
+    const QString m_textVisibleAttribute;
 };
 
 QtVariantPropertyManagerPrivate::QtVariantPropertyManagerPrivate() :
@@ -388,7 +390,8 @@ QtVariantPropertyManagerPrivate::QtVariantPropertyManagerPrivate() :
     m_minimumAttribute(QLatin1String("minimum")),
     m_regExpAttribute(QLatin1String("regExp")),
     m_echoModeAttribute(QLatin1String("echoMode")),
-    m_readOnlyAttribute(QLatin1String("readOnly"))
+    m_readOnlyAttribute(QLatin1String("readOnly")),
+    m_textVisibleAttribute(QLatin1String("textVisible"))
 {
 }
 
@@ -556,6 +559,12 @@ void QtVariantPropertyManagerPrivate::slotReadOnlyChanged(QtProperty *property,
         emit q_ptr->attributeChanged(varProp, m_readOnlyAttribute, QVariant(readOnly));
 }
 
+void QtVariantPropertyManagerPrivate::slotTextVisibleChanged(QtProperty *property, bool textVisible)
+{
+    if (QtVariantProperty *varProp = m_internalToProperty.value(property, 0))
+        emit q_ptr->attributeChanged(varProp, m_textVisibleAttribute, QVariant(textVisible));
+}
+
 void QtVariantPropertyManagerPrivate::slotValueChanged(QtProperty *property, const QDate &val)
 {
     valueChanged(property, QVariant(val));
@@ -839,6 +848,10 @@ void QtVariantPropertyManagerPrivate::slotFlagNamesChanged(QtProperty *property,
         \o
         \o decimals
         \o QVariant::Int
+    \row
+        \o \c bool
+        \o textVisible
+        \o QVariant::Bool
     \row
         \o QString
         \o regExp
@@ -993,9 +1006,12 @@ QtVariantPropertyManager::QtVariantPropertyManager(QObject *parent)
     // BoolPropertyManager
     QtBoolPropertyManager *boolPropertyManager = new QtBoolPropertyManager(this);
     d_ptr->m_typeToPropertyManager[QVariant::Bool] = boolPropertyManager;
+    d_ptr->m_typeToAttributeToAttributeType[QVariant::Bool][d_ptr->m_textVisibleAttribute] = QVariant::Bool;
     d_ptr->m_typeToValueType[QVariant::Bool] = QVariant::Bool;
     connect(boolPropertyManager, SIGNAL(valueChanged(QtProperty *, bool)),
                 this, SLOT(slotValueChanged(QtProperty *, bool)));
+    connect(boolPropertyManager, SIGNAL(textVisibleChanged(QtProperty*, bool)),
+                this, SLOT(slotTextVisibleChanged(QtProperty*, bool)));
     // StringPropertyManager
     QtStringPropertyManager *stringPropertyManager = new QtStringPropertyManager(this);
     d_ptr->m_typeToPropertyManager[QVariant::String] = stringPropertyManager;
@@ -1502,6 +1518,10 @@ QVariant QtVariantPropertyManager::attributeValue(const QtProperty *property, co
         if (attribute == d_ptr->m_readOnlyAttribute)
             return doubleManager->isReadOnly(internProp);
         return QVariant();
+    } else if (QtBoolPropertyManager *boolManager = qobject_cast<QtBoolPropertyManager *>(manager)) {
+        if (attribute == d_ptr->m_textVisibleAttribute)
+            return boolManager->textVisible(internProp);
+        return QVariant();
     } else if (QtStringPropertyManager *stringManager = qobject_cast<QtStringPropertyManager *>(manager)) {
         if (attribute == d_ptr->m_regExpAttribute)
             return stringManager->regExp(internProp);
@@ -1753,6 +1773,10 @@ void QtVariantPropertyManager::setAttribute(QtProperty *property,
         if (attribute == d_ptr->m_readOnlyAttribute)
             doubleManager->setReadOnly(internProp, qVariantValue<bool>(value));
         return;
+    } else if (QtBoolPropertyManager *boolManager = qobject_cast<QtBoolPropertyManager *>(manager)) {
+        if (attribute == d_ptr->m_textVisibleAttribute)
+            boolManager->setTextVisible(internProp, qVariantValue<bool>(value));
+        return;
     } else if (QtStringPropertyManager *stringManager = qobject_cast<QtStringPropertyManager *>(manager)) {
         if (attribute == d_ptr->m_regExpAttribute)
             stringManager->setRegExp(internProp, qVariantValue<QRegExp>(value));
diff --git a/GUI/coregui/qttools/qtpropertybrowser/qtvariantproperty.h b/GUI/externals/qtpropertybrowser/qtvariantproperty.h
similarity index 99%
rename from GUI/coregui/qttools/qtpropertybrowser/qtvariantproperty.h
rename to GUI/externals/qtpropertybrowser/qtvariantproperty.h
index 41b28a6136a..2c09fe9eba6 100644
--- a/GUI/coregui/qttools/qtpropertybrowser/qtvariantproperty.h
+++ b/GUI/externals/qtpropertybrowser/qtvariantproperty.h
@@ -153,6 +153,7 @@ private:
     Q_PRIVATE_SLOT(d_func(), void slotValueChanged(QtProperty *, const QCursor &))
     Q_PRIVATE_SLOT(d_func(), void slotFlagNamesChanged(QtProperty *, const QStringList &))
     Q_PRIVATE_SLOT(d_func(), void slotReadOnlyChanged(QtProperty *, bool))
+    Q_PRIVATE_SLOT(d_func(), void slotTextVisibleChanged(QtProperty *, bool))
     Q_PRIVATE_SLOT(d_func(), void slotPropertyInserted(QtProperty *, QtProperty *, QtProperty *))
     Q_PRIVATE_SLOT(d_func(), void slotPropertyRemoved(QtProperty *, QtProperty *))
     Q_DECLARE_PRIVATE(QtVariantPropertyManager)
-- 
GitLab