diff --git a/GUI/CMakeLists.txt b/GUI/CMakeLists.txt
index 3864b9b3c97ce74af8925dc86e58ef9e93933a7c..1b0921d59dc067ab2039dad63dd18173c30e1afd 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 04cc758c97b9359ddfc3bbdd02356e587103cac9..438e0defb66102b425af924fc14b74f9a26815a3 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 636712fc4f4ea80597ae8ff82e9518b9a89c30d5..62ec776f27fa0e104fe7d13790f10a7d3e923ae9 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 66a4bb29e2d6761d5249cc904955172ce68b42b7..a85f1147b015cb034b1baa40be9516a2d292baa7 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 437965204dfcd2304542a5d51779f164f85c7052..0000000000000000000000000000000000000000
--- 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 57b89ea00cce07549920ed97c75ab680a33dc9ba..47089db41d381b0304bd73676b8d6d06bf185f00 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 0000000000000000000000000000000000000000..b2c584bce7123a0dc257b593bc279237040667b0
--- /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
Binary files /dev/null and b/GUI/externals/qtpropertybrowser/images/cursor-arrow.png differ
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
Binary files /dev/null and b/GUI/externals/qtpropertybrowser/images/cursor-busy.png differ
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
Binary files /dev/null and b/GUI/externals/qtpropertybrowser/images/cursor-closedhand.png differ
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
Binary files /dev/null and b/GUI/externals/qtpropertybrowser/images/cursor-cross.png differ
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
Binary files /dev/null and b/GUI/externals/qtpropertybrowser/images/cursor-forbidden.png differ
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
Binary files /dev/null and b/GUI/externals/qtpropertybrowser/images/cursor-hand.png differ
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
Binary files /dev/null and b/GUI/externals/qtpropertybrowser/images/cursor-hsplit.png differ
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
Binary files /dev/null and b/GUI/externals/qtpropertybrowser/images/cursor-ibeam.png differ
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
Binary files /dev/null and b/GUI/externals/qtpropertybrowser/images/cursor-openhand.png differ
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
Binary files /dev/null and b/GUI/externals/qtpropertybrowser/images/cursor-sizeall.png differ
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
Binary files /dev/null and b/GUI/externals/qtpropertybrowser/images/cursor-sizeb.png differ
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
Binary files /dev/null and b/GUI/externals/qtpropertybrowser/images/cursor-sizef.png differ
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
Binary files /dev/null and b/GUI/externals/qtpropertybrowser/images/cursor-sizeh.png differ
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
Binary files /dev/null and b/GUI/externals/qtpropertybrowser/images/cursor-sizev.png differ
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
Binary files /dev/null and b/GUI/externals/qtpropertybrowser/images/cursor-uparrow.png differ
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
Binary files /dev/null and b/GUI/externals/qtpropertybrowser/images/cursor-vsplit.png differ
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
Binary files /dev/null and b/GUI/externals/qtpropertybrowser/images/cursor-wait.png differ
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
Binary files /dev/null and b/GUI/externals/qtpropertybrowser/images/cursor-whatsthis.png differ
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 dc79c6db5442c2dc3843a71f0df0d54c8b9ab945..293fbf6bfdb63d38ed9f7448f29104ec976e721b 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 2dcf6a010dfc0255af22e0b028496018fbb79f69..c9a371dadd45571870dc66cd3ad7058ff3680db5 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 37204ce056f3b8e1fa87928148e81d4335150544..cbb2077d22990085b5390c0e7c2480be82cc3f5e 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 0000000000000000000000000000000000000000..2797827872d6c4086f5118bc0c05ea6138488f7d
--- /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 cfc54efef0d1dc21538689590cac749c3e06dda2..e50cafc452e141af270322427c13d775d8769537 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 6eff26eea9e36b96bd5eaff578d6a47d712a7b22..d6b94ccf1e4a888dea39d83e1e5c1033bc220985 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 d2c02e998f3cb81d174d0b3496bdf22ff0d59b24..d7fe11192c0c8374ee651701aa34070f7a35291a 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 41b28a6136a2bd1eae49918d9ed5c0ea289bc94f..2c09fe9eba6770d69b2614b93bfc5d63047644d0 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)