diff --git a/src/plugins/coreplugin/manhattanstyle.cpp b/src/plugins/coreplugin/manhattanstyle.cpp
index 47e13dec29784623c51aad89e8356e7f16092518..af361aacbb90e4c2d2177abb88fe4542b3d8ac34 100644
--- a/src/plugins/coreplugin/manhattanstyle.cpp
+++ b/src/plugins/coreplugin/manhattanstyle.cpp
@@ -388,15 +388,20 @@ QPixmap ManhattanStyle::standardPixmap(StandardPixmap standardPixmap, const QSty
 int ManhattanStyle::styleHint(StyleHint hint, const QStyleOption *option, const QWidget *widget,
                               QStyleHintReturn *returnData) const
 {
-    int ret = 0;
+    int ret = d->style->styleHint(hint, option, widget, returnData);
     switch (hint) {
+    // Make project explorer alternate rows all the way
+    case QStyle::SH_ItemView_PaintAlternatingRowColorsForEmptyArea:
+        if (widget && widget->property("AlternateEmpty").toBool())
+            ret = true;
+        break;
     case QStyle::SH_EtchDisabledText:
-        ret = false; // We really should only enforce this for panel widgets
+        if (panelWidget(widget))
+            ret = false;
         break;
     default:
-        ret =  d->style->styleHint(hint, option, widget, returnData);
+        break;
     }
-
     return ret;
 }
 
diff --git a/src/plugins/designer/README.txt b/src/plugins/designer/README.txt
index eeef2a6c1d81fa91d73ef1e6be41de7ebae8b76a..7665e29c98e28668a8cf33d814907c396acc8d18 100644
--- a/src/plugins/designer/README.txt
+++ b/src/plugins/designer/README.txt
@@ -5,6 +5,7 @@ Including cpp.pri in designer.pro enables them and defines
 CPP_ENABLED.
 
 Resource handling:
+------------------
 
 When the editor is opened for the ui file we remember the internal qrc list
 read from the ui file (m_originalUiQrcPaths). In next step (a call to
@@ -35,3 +36,11 @@ designer's internal file watcher updates the changes to qrc files silently.
 
 A call to setResourceEditingEnabled(false) removes the edit resources action
 form resource browser in designer
+
+Building
+--------
+
+The plugin accesses some private headers of Qt Designer 4.5.
+Copies of them are located in qt_private to achieve a clean build
+from a standard Qt distribution. The script syncqtheader.sh
+can be used to update them.
diff --git a/src/plugins/designer/formeditorw.cpp b/src/plugins/designer/formeditorw.cpp
index 54a143503133032ce9edddc7b7b3cff2795cdeda..4ab3c61694accbd89298c74d3eae5873326b4f00 100644
--- a/src/plugins/designer/formeditorw.cpp
+++ b/src/plugins/designer/formeditorw.cpp
@@ -48,11 +48,11 @@
 #include <utils/qtcassert.h>
 
 #include <QtDesigner/QDesignerFormEditorPluginInterface>
-#include <QtDesigner/private/pluginmanager_p.h>
+#include <qt_private/pluginmanager_p.h>
 
-#include <QtDesigner/private/iconloader_p.h>  // createIconSet
-#include <QtDesigner/private/qdesigner_formwindowmanager_p.h>
-#include <QtDesigner/private/formwindowbase_p.h>
+#include <qt_private/iconloader_p.h>  // createIconSet
+#include <qt_private/qdesigner_formwindowmanager_p.h>
+#include <qt_private/formwindowbase_p.h>
 #include <QtDesigner/QDesignerFormEditorInterface>
 #include <QtDesigner/QDesignerComponents>
 
diff --git a/src/plugins/designer/formtemplatewizardpage.cpp b/src/plugins/designer/formtemplatewizardpage.cpp
index aacda476a16ba72ac061e6ff974463d55e5301fc..221da1edfc927f6ed6612c353b7ff6a4fd80f0c6 100644
--- a/src/plugins/designer/formtemplatewizardpage.cpp
+++ b/src/plugins/designer/formtemplatewizardpage.cpp
@@ -34,7 +34,7 @@
 #include "formtemplatewizardpage.h"
 #include "formeditorw.h"
 
-#include <QtDesigner/private/abstractnewformwidget_p.h>
+#include <qt_private/abstractnewformwidget_p.h>
 
 #include <QtCore/QDebug>
 #include <QtCore/QXmlStreamReader>
diff --git a/src/plugins/designer/formwindoweditor.cpp b/src/plugins/designer/formwindoweditor.cpp
index 22a848321b7040327aee867f4f587604a4fca530..65eaf8aceb119820df4bc73102e989bf01903704 100644
--- a/src/plugins/designer/formwindoweditor.cpp
+++ b/src/plugins/designer/formwindoweditor.cpp
@@ -45,8 +45,8 @@
 #include <QtDesigner/QDesignerFormWindowInterface>
 #include <QtDesigner/QDesignerFormEditorInterface>
 #include <QtDesigner/QDesignerFormWindowManagerInterface>
-#include <QtDesigner/private/formwindowbase_p.h>
-#include <QtDesigner/private/qtresourcemodel_p.h>
+#include <qt_private/formwindowbase_p.h>
+#include <qt_private/qtresourcemodel_p.h>
 
 #include <QtCore/QFile>
 #include <QtCore/QDir>
diff --git a/src/plugins/designer/qt_private/abstractnewformwidget_p.h b/src/plugins/designer/qt_private/abstractnewformwidget_p.h
new file mode 100644
index 0000000000000000000000000000000000000000..2f176f74a2e5ef22a579d9f69fd777235deeb3ce
--- /dev/null
+++ b/src/plugins/designer/qt_private/abstractnewformwidget_p.h
@@ -0,0 +1,80 @@
+/***************************************************************************
+**
+** This file is part of Qt Creator
+**
+** Copyright (c) 2008-2009 Nokia Corporation and/or its subsidiary(-ies).
+**
+** Contact:  Qt Software Information (qt-info@nokia.com)
+**
+**
+** Non-Open Source Usage
+**
+** Licensees may use this file in accordance with the Qt Beta Version
+** License Agreement, Agreement version 2.2 provided with the Software or,
+** alternatively, in accordance with the terms contained in a written
+** agreement between you and Nokia.
+**
+** GNU General Public License Usage
+**
+** Alternatively, this file may be used under the terms of the GNU General
+** Public License versions 2.0 or 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 GNU
+** General Public Licensing requirements will be met:
+**
+** http://www.fsf.org/licensing/licenses/info/GPLv2.html and
+** http://www.gnu.org/copyleft/gpl.html.
+**
+** In addition, as a special exception, Nokia gives you certain additional
+** rights. These rights are described in the Nokia Qt GPL Exception
+** version 1.3, included in the file GPL_EXCEPTION.txt in this package.
+**
+***************************************************************************/
+
+//
+//  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 ABSTRACTNEWFORMWIDGET_H
+#define ABSTRACTNEWFORMWIDGET_H
+
+#include <QtDesigner/sdk_global.h>
+
+#include <QtGui/QWidget>
+
+QT_BEGIN_HEADER
+
+QT_BEGIN_NAMESPACE
+
+class QDesignerFormEditorInterface;
+
+class QDESIGNER_SDK_EXPORT QDesignerNewFormWidgetInterface : public QWidget
+{
+    Q_DISABLE_COPY(QDesignerNewFormWidgetInterface)
+    Q_OBJECT
+public:
+    explicit QDesignerNewFormWidgetInterface(QWidget *parent = 0);
+    virtual ~QDesignerNewFormWidgetInterface();
+
+    virtual bool hasCurrentTemplate() const = 0;
+    virtual QString currentTemplate(QString *errorMessage = 0) = 0;
+
+    static QDesignerNewFormWidgetInterface *createNewFormWidget(QDesignerFormEditorInterface *core, QWidget *parent = 0);
+
+Q_SIGNALS:
+    void templateActivated();
+    void currentTemplateChanged(bool templateSelected);
+};
+
+QT_END_NAMESPACE
+
+QT_END_HEADER
+
+#endif // ABSTRACTNEWFORMWIDGET_H
diff --git a/src/plugins/designer/qt_private/abstractoptionspage_p.h b/src/plugins/designer/qt_private/abstractoptionspage_p.h
new file mode 100644
index 0000000000000000000000000000000000000000..8455c87720f62b2e84435abc249f88cc0d068fa4
--- /dev/null
+++ b/src/plugins/designer/qt_private/abstractoptionspage_p.h
@@ -0,0 +1,71 @@
+/***************************************************************************
+**
+** This file is part of Qt Creator
+**
+** Copyright (c) 2008-2009 Nokia Corporation and/or its subsidiary(-ies).
+**
+** Contact:  Qt Software Information (qt-info@nokia.com)
+**
+**
+** Non-Open Source Usage
+**
+** Licensees may use this file in accordance with the Qt Beta Version
+** License Agreement, Agreement version 2.2 provided with the Software or,
+** alternatively, in accordance with the terms contained in a written
+** agreement between you and Nokia.
+**
+** GNU General Public License Usage
+**
+** Alternatively, this file may be used under the terms of the GNU General
+** Public License versions 2.0 or 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 GNU
+** General Public Licensing requirements will be met:
+**
+** http://www.fsf.org/licensing/licenses/info/GPLv2.html and
+** http://www.gnu.org/copyleft/gpl.html.
+**
+** In addition, as a special exception, Nokia gives you certain additional
+** rights. These rights are described in the Nokia Qt GPL Exception
+** version 1.3, included in the file GPL_EXCEPTION.txt in this package.
+**
+***************************************************************************/
+
+//
+//  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 ABSTRACTOPTIONSPAGE_P_H
+#define ABSTRACTOPTIONSPAGE_P_H
+
+#include <QtDesigner/sdk_global.h>
+
+QT_BEGIN_HEADER
+
+QT_BEGIN_NAMESPACE
+
+class QString;
+class QWidget;
+
+class QDESIGNER_SDK_EXPORT QDesignerOptionsPageInterface
+{
+public:
+    virtual ~QDesignerOptionsPageInterface() {}
+    virtual QString name() const = 0;
+    virtual QWidget *createPage(QWidget *parent) = 0;
+    virtual void apply() = 0;
+    virtual void finish() = 0;
+};
+
+QT_END_NAMESPACE
+
+QT_END_HEADER
+
+#endif // ABSTRACTOPTIONSPAGE_P_H
diff --git a/src/plugins/designer/qt_private/abstractsettings_p.h b/src/plugins/designer/qt_private/abstractsettings_p.h
new file mode 100644
index 0000000000000000000000000000000000000000..2d5bece0cdfc55dee4a2955534af21f0492a1715
--- /dev/null
+++ b/src/plugins/designer/qt_private/abstractsettings_p.h
@@ -0,0 +1,79 @@
+/***************************************************************************
+**
+** This file is part of Qt Creator
+**
+** Copyright (c) 2008-2009 Nokia Corporation and/or its subsidiary(-ies).
+**
+** Contact:  Qt Software Information (qt-info@nokia.com)
+**
+**
+** Non-Open Source Usage
+**
+** Licensees may use this file in accordance with the Qt Beta Version
+** License Agreement, Agreement version 2.2 provided with the Software or,
+** alternatively, in accordance with the terms contained in a written
+** agreement between you and Nokia.
+**
+** GNU General Public License Usage
+**
+** Alternatively, this file may be used under the terms of the GNU General
+** Public License versions 2.0 or 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 GNU
+** General Public Licensing requirements will be met:
+**
+** http://www.fsf.org/licensing/licenses/info/GPLv2.html and
+** http://www.gnu.org/copyleft/gpl.html.
+**
+** In addition, as a special exception, Nokia gives you certain additional
+** rights. These rights are described in the Nokia Qt GPL Exception
+** version 1.3, included in the file GPL_EXCEPTION.txt in this package.
+**
+***************************************************************************/
+
+//
+//  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 ABSTRACTSETTINGS_P_H
+#define ABSTRACTSETTINGS_P_H
+
+#include <QtDesigner/sdk_global.h>
+
+#include <QVariant>
+
+QT_BEGIN_HEADER
+
+QT_BEGIN_NAMESPACE
+
+class QString;
+
+/*!
+ To be implemented by IDEs that want to control the way designer retrieves/stores its settings.
+ */
+class QDESIGNER_SDK_EXPORT QDesignerSettingsInterface
+{
+public:
+    virtual ~QDesignerSettingsInterface() {}
+
+    virtual void beginGroup(const QString &prefix) = 0;
+    virtual void endGroup() = 0;
+
+    virtual bool contains(const QString &key) const = 0;
+    virtual void setValue(const QString &key, const QVariant &value) = 0;
+    virtual QVariant value(const QString &key, const QVariant &defaultValue = QVariant()) const = 0;
+    virtual void remove(const QString &key) = 0;
+};
+
+QT_END_NAMESPACE
+
+QT_END_HEADER
+
+#endif // ABSTRACTSETTINGS_P_H
diff --git a/src/plugins/designer/qt_private/formwindowbase_p.h b/src/plugins/designer/qt_private/formwindowbase_p.h
new file mode 100644
index 0000000000000000000000000000000000000000..23344c181940ea40ba694f8a114b0bd951e8b4ee
--- /dev/null
+++ b/src/plugins/designer/qt_private/formwindowbase_p.h
@@ -0,0 +1,194 @@
+/***************************************************************************
+**
+** This file is part of Qt Creator
+**
+** Copyright (c) 2008-2009 Nokia Corporation and/or its subsidiary(-ies).
+**
+** Contact:  Qt Software Information (qt-info@nokia.com)
+**
+**
+** Non-Open Source Usage
+**
+** Licensees may use this file in accordance with the Qt Beta Version
+** License Agreement, Agreement version 2.2 provided with the Software or,
+** alternatively, in accordance with the terms contained in a written
+** agreement between you and Nokia.
+**
+** GNU General Public License Usage
+**
+** Alternatively, this file may be used under the terms of the GNU General
+** Public License versions 2.0 or 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 GNU
+** General Public Licensing requirements will be met:
+**
+** http://www.fsf.org/licensing/licenses/info/GPLv2.html and
+** http://www.gnu.org/copyleft/gpl.html.
+**
+** In addition, as a special exception, Nokia gives you certain additional
+** rights. These rights are described in the Nokia Qt GPL Exception
+** version 1.3, included in the file GPL_EXCEPTION.txt in this package.
+**
+***************************************************************************/
+
+//
+//  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 FORMWINDOWBASE_H
+#define FORMWINDOWBASE_H
+
+#include "shared_global_p.h"
+
+#include <QtDesigner/QDesignerFormWindowInterface>
+
+#include <QtCore/QVariantMap>
+#include <QtCore/QList>
+
+QT_BEGIN_NAMESPACE
+
+class QDesignerDnDItemInterface;
+class QMenu;
+class QtResourceSet;
+class QDesignerPropertySheet;
+
+namespace qdesigner_internal {
+
+class QEditorFormBuilder;
+class DeviceProfile;
+class Grid;
+
+class DesignerPixmapCache;
+class DesignerIconCache;
+class FormWindowBasePrivate;
+
+class QDESIGNER_SHARED_EXPORT FormWindowBase: public QDesignerFormWindowInterface
+{
+    Q_OBJECT
+public:
+    enum HighlightMode  { Restore, Highlight };
+    enum SaveResourcesBehaviour  { SaveAll, SaveOnlyUsedQrcFiles, DontSaveQrcFiles };
+
+    explicit FormWindowBase(QDesignerFormEditorInterface *core, QWidget *parent = 0, Qt::WindowFlags flags = 0);
+    virtual ~FormWindowBase();
+
+    QVariantMap formData();
+    void setFormData(const QVariantMap &vm);
+
+    // Return the widget containing the form. This is used to
+    // apply embedded design settings to that are inherited (for example font).
+    // These are meant to be applied to the form only and not to the other editors
+    // in the widget stack.
+    virtual QWidget *formContainer() const = 0;
+
+    // Deprecated
+    virtual QPoint grid() const;
+
+    // Deprecated
+    virtual void setGrid(const QPoint &grid);
+
+    virtual bool hasFeature(Feature f) const;
+    virtual Feature features() const;
+    virtual void setFeatures(Feature f);
+
+    const Grid &designerGrid() const;
+    void setDesignerGrid(const  Grid& grid);
+
+    bool hasFormGrid() const;
+    void setHasFormGrid(bool b);
+
+    bool gridVisible() const;
+
+    SaveResourcesBehaviour saveResourcesBehaviour() const;
+    void setSaveResourcesBehaviour(SaveResourcesBehaviour behaviour);
+
+    static const Grid &defaultDesignerGrid();
+    static void setDefaultDesignerGrid(const Grid& grid);
+
+    // Overwrite to initialize and return a full popup menu for a managed widget
+    virtual QMenu *initializePopupMenu(QWidget *managedWidget);
+    // Helper to create a basic popup menu from task menu extensions (internal/public)
+    static QMenu *createExtensionTaskMenu(QDesignerFormWindowInterface *fw, QObject *o, bool trailingSeparator = true);
+
+    virtual bool dropWidgets(const QList<QDesignerDnDItemInterface*> &item_list, QWidget *target,
+                             const QPoint &global_mouse_pos) = 0;
+
+    // Helper to find the widget at the mouse position with some flags.
+    enum WidgetUnderMouseMode { FindSingleSelectionDropTarget, FindMultiSelectionDropTarget };
+    QWidget *widgetUnderMouse(const QPoint &formPos, WidgetUnderMouseMode m);
+
+    virtual QWidget *widgetAt(const QPoint &pos) = 0;
+    virtual QWidget *findContainer(QWidget *w, bool excludeLayout) const = 0;
+
+    void deleteWidgetList(const QWidgetList &widget_list);
+
+    virtual void highlightWidget(QWidget *w, const QPoint &pos, HighlightMode mode = Highlight) = 0;
+
+    enum PasteMode { PasteAll, PasteActionsOnly };
+    virtual void paste(PasteMode pasteMode) = 0;
+
+    // Factory method to create a form builder
+    virtual QEditorFormBuilder *createFormBuilder() = 0;
+
+    virtual bool blockSelectionChanged(bool blocked) = 0;
+    virtual void emitSelectionChanged() = 0;
+
+    DesignerPixmapCache *pixmapCache() const;
+    DesignerIconCache *iconCache() const;
+    QtResourceSet *resourceSet() const;
+    void setResourceSet(QtResourceSet *resourceSet);
+    void addReloadableProperty(QDesignerPropertySheet *sheet, int index);
+    void removeReloadableProperty(QDesignerPropertySheet *sheet, int index);
+    void addReloadablePropertySheet(QDesignerPropertySheet *sheet, QObject *object);
+    void removeReloadablePropertySheet(QDesignerPropertySheet *sheet);
+    void reloadProperties();
+
+    void emitWidgetRemoved(QWidget *w);
+    void emitObjectRemoved(QObject *o);
+
+    DeviceProfile deviceProfile() const;
+    QString styleName() const;
+    QString deviceProfileName() const;
+
+    enum LineTerminatorMode {
+        LFLineTerminator,
+        CRLFLineTerminator,
+        NativeLineTerminator =
+#if defined (Q_OS_WIN)
+            CRLFLineTerminator
+#else
+            LFLineTerminator
+#endif
+    };
+
+    void setLineTerminatorMode(LineTerminatorMode mode);
+    LineTerminatorMode lineTerminatorMode() const;
+
+    // Connect the 'activated' (doubleclicked) signal of the form window to a
+    // slot triggering the default action (of the task menu)
+    static void setupDefaultAction(QDesignerFormWindowInterface *fw);
+
+public slots:
+    void resourceSetActivated(QtResourceSet *resourceSet, bool resourceSetChanged);
+
+private slots:
+    void triggerDefaultAction(QWidget *w);
+
+private:
+    void syncGridFeature();
+
+    FormWindowBasePrivate *m_d;    
+};
+
+}  // namespace qdesigner_internal
+
+QT_END_NAMESPACE
+
+#endif // FORMWINDOWBASE_H
diff --git a/src/plugins/designer/qt_private/iconloader_p.h b/src/plugins/designer/qt_private/iconloader_p.h
new file mode 100644
index 0000000000000000000000000000000000000000..29c33ef5819e35ae88350c37ce58502c4ca20cd5
--- /dev/null
+++ b/src/plugins/designer/qt_private/iconloader_p.h
@@ -0,0 +1,64 @@
+/***************************************************************************
+**
+** This file is part of Qt Creator
+**
+** Copyright (c) 2008-2009 Nokia Corporation and/or its subsidiary(-ies).
+**
+** Contact:  Qt Software Information (qt-info@nokia.com)
+**
+**
+** Non-Open Source Usage
+**
+** Licensees may use this file in accordance with the Qt Beta Version
+** License Agreement, Agreement version 2.2 provided with the Software or,
+** alternatively, in accordance with the terms contained in a written
+** agreement between you and Nokia.
+**
+** GNU General Public License Usage
+**
+** Alternatively, this file may be used under the terms of the GNU General
+** Public License versions 2.0 or 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 GNU
+** General Public Licensing requirements will be met:
+**
+** http://www.fsf.org/licensing/licenses/info/GPLv2.html and
+** http://www.gnu.org/copyleft/gpl.html.
+**
+** In addition, as a special exception, Nokia gives you certain additional
+** rights. These rights are described in the Nokia Qt GPL Exception
+** version 1.3, included in the file GPL_EXCEPTION.txt in this package.
+**
+***************************************************************************/
+
+//
+//  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 ICONLOADER_H
+#define ICONLOADER_H
+
+#include "shared_global_p.h"
+
+QT_BEGIN_NAMESPACE
+
+class QString;
+class QIcon;
+
+namespace qdesigner_internal {
+
+QDESIGNER_SHARED_EXPORT QIcon createIconSet(const QString &name);
+QDESIGNER_SHARED_EXPORT QIcon emptyIcon();
+
+} // namespace qdesigner_internal
+
+QT_END_NAMESPACE
+
+#endif // ICONLOADER_H
diff --git a/src/plugins/designer/qt_private/pluginmanager_p.h b/src/plugins/designer/qt_private/pluginmanager_p.h
new file mode 100644
index 0000000000000000000000000000000000000000..1b0b58ced2820b64c588841164fb79a0fa31b4f2
--- /dev/null
+++ b/src/plugins/designer/qt_private/pluginmanager_p.h
@@ -0,0 +1,143 @@
+/***************************************************************************
+**
+** This file is part of Qt Creator
+**
+** Copyright (c) 2008-2009 Nokia Corporation and/or its subsidiary(-ies).
+**
+** Contact:  Qt Software Information (qt-info@nokia.com)
+**
+**
+** Non-Open Source Usage
+**
+** Licensees may use this file in accordance with the Qt Beta Version
+** License Agreement, Agreement version 2.2 provided with the Software or,
+** alternatively, in accordance with the terms contained in a written
+** agreement between you and Nokia.
+**
+** GNU General Public License Usage
+**
+** Alternatively, this file may be used under the terms of the GNU General
+** Public License versions 2.0 or 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 GNU
+** General Public Licensing requirements will be met:
+**
+** http://www.fsf.org/licensing/licenses/info/GPLv2.html and
+** http://www.gnu.org/copyleft/gpl.html.
+**
+** In addition, as a special exception, Nokia gives you certain additional
+** rights. These rights are described in the Nokia Qt GPL Exception
+** version 1.3, included in the file GPL_EXCEPTION.txt in this package.
+**
+***************************************************************************/
+
+//
+//  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 PLUGINMANAGER_H
+#define PLUGINMANAGER_H
+
+#include "shared_global_p.h"
+
+#include <QtCore/QSharedDataPointer>
+#include <QtCore/QMap>
+#include <QtCore/QStringList>
+
+QT_BEGIN_NAMESPACE
+
+class QDesignerFormEditorInterface;
+class QDesignerCustomWidgetInterface;
+class QDesignerPluginManagerPrivate;
+
+class QDesignerCustomWidgetSharedData;
+
+/* Information contained in the Dom XML of a custom widget. */
+class QDESIGNER_SHARED_EXPORT QDesignerCustomWidgetData {
+public:
+    explicit QDesignerCustomWidgetData(const QString &pluginPath = QString());
+
+    enum ParseResult { ParseOk, ParseWarning, ParseError };
+    ParseResult parseXml(const QString &xml, const QString &name, QString *errorMessage);
+
+    QDesignerCustomWidgetData(const QDesignerCustomWidgetData&);
+    QDesignerCustomWidgetData& operator=(const QDesignerCustomWidgetData&);
+    ~QDesignerCustomWidgetData();
+
+    bool isNull() const;
+
+    QString pluginPath() const;
+
+    // Data as parsed from the widget's domXML().
+    QString xmlClassName() const;
+    // Optional. The language the plugin is supposed to be used with.
+    QString xmlLanguage() const;
+    // Optional. method used to add pages to a container with a container extension
+    QString xmlAddPageMethod() const;
+    // Optional. Base class
+    QString xmlExtends() const;
+    // Optional. The name to be used in the widget box.
+    QString xmlDisplayName() const;
+
+private:
+    QSharedDataPointer<QDesignerCustomWidgetSharedData> m_d;
+};
+
+class QDESIGNER_SHARED_EXPORT QDesignerPluginManager: public QObject
+{
+    Q_OBJECT
+public:
+    typedef QList<QDesignerCustomWidgetInterface*> CustomWidgetList;
+
+    explicit QDesignerPluginManager(QDesignerFormEditorInterface *core);
+    virtual ~QDesignerPluginManager();
+
+    QDesignerFormEditorInterface *core() const;
+
+    QObject *instance(const QString &plugin) const;
+
+    QStringList registeredPlugins() const;
+
+    QStringList findPlugins(const QString &path);
+
+    QStringList pluginPaths() const;
+    void setPluginPaths(const QStringList &plugin_paths);
+
+    QStringList disabledPlugins() const;
+    void setDisabledPlugins(const QStringList &disabled_plugins);
+
+    QStringList failedPlugins() const;
+    QString failureReason(const QString &pluginName) const;
+
+    QObjectList instances() const;
+
+    CustomWidgetList registeredCustomWidgets() const;
+    QDesignerCustomWidgetData customWidgetData(QDesignerCustomWidgetInterface *w) const;
+
+    bool registerNewPlugins();
+
+public slots:
+    bool syncSettings();
+    void ensureInitialized();
+
+private:
+    void updateRegisteredPlugins();
+    void registerPath(const QString &path);
+    void registerPlugin(const QString &plugin);
+
+private:
+    static QStringList defaultPluginPaths();
+
+    QDesignerPluginManagerPrivate *m_d;
+};
+
+QT_END_NAMESPACE
+
+#endif // PLUGINMANAGER_H
diff --git a/src/plugins/designer/qt_private/qdesigner_formwindowmanager_p.h b/src/plugins/designer/qt_private/qdesigner_formwindowmanager_p.h
new file mode 100644
index 0000000000000000000000000000000000000000..fc4efe6535add6f46b267ace1f0f8b9fc3916a04
--- /dev/null
+++ b/src/plugins/designer/qt_private/qdesigner_formwindowmanager_p.h
@@ -0,0 +1,90 @@
+/***************************************************************************
+**
+** This file is part of Qt Creator
+**
+** Copyright (c) 2008-2009 Nokia Corporation and/or its subsidiary(-ies).
+**
+** Contact:  Qt Software Information (qt-info@nokia.com)
+**
+**
+** Non-Open Source Usage
+**
+** Licensees may use this file in accordance with the Qt Beta Version
+** License Agreement, Agreement version 2.2 provided with the Software or,
+** alternatively, in accordance with the terms contained in a written
+** agreement between you and Nokia.
+**
+** GNU General Public License Usage
+**
+** Alternatively, this file may be used under the terms of the GNU General
+** Public License versions 2.0 or 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 GNU
+** General Public Licensing requirements will be met:
+**
+** http://www.fsf.org/licensing/licenses/info/GPLv2.html and
+** http://www.gnu.org/copyleft/gpl.html.
+**
+** In addition, as a special exception, Nokia gives you certain additional
+** rights. These rights are described in the Nokia Qt GPL Exception
+** version 1.3, included in the file GPL_EXCEPTION.txt in this package.
+**
+***************************************************************************/
+
+//
+//  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 QDESIGNER_FORMWINDOMANAGER_H
+#define QDESIGNER_FORMWINDOMANAGER_H
+
+#include "shared_global_p.h"
+#include <QtDesigner/QDesignerFormWindowManagerInterface>
+
+QT_BEGIN_NAMESPACE
+
+namespace qdesigner_internal {
+
+class PreviewManager;
+
+//
+// Convenience methods to manage form previews (ultimately forwarded to PreviewManager).
+//
+class QDESIGNER_SHARED_EXPORT QDesignerFormWindowManager
+    : public QDesignerFormWindowManagerInterface
+{
+    Q_OBJECT
+public:
+    explicit QDesignerFormWindowManager(QObject *parent = 0);
+    virtual ~QDesignerFormWindowManager();
+
+    virtual QAction *actionDefaultPreview() const;
+    virtual QActionGroup *actionGroupPreviewInStyle() const;
+    virtual QAction *actionShowFormWindowSettingsDialog() const;
+
+    virtual QPixmap createPreviewPixmap(QString *errorMessage) = 0;
+
+    virtual PreviewManager *previewManager() const = 0;
+
+Q_SIGNALS:
+    void formWindowSettingsChanged(QDesignerFormWindowInterface *fw);
+
+public Q_SLOTS:
+    virtual void closeAllPreviews() = 0;
+
+private:
+    void *m_unused;
+};
+
+} // namespace qdesigner_internal
+
+QT_END_NAMESPACE
+
+#endif // QDESIGNER_FORMWINDOMANAGER_H
diff --git a/src/plugins/designer/qt_private/qdesigner_integration_p.h b/src/plugins/designer/qt_private/qdesigner_integration_p.h
new file mode 100644
index 0000000000000000000000000000000000000000..b301a1ce827a82a026d0fdd574d98cde301ea5d9
--- /dev/null
+++ b/src/plugins/designer/qt_private/qdesigner_integration_p.h
@@ -0,0 +1,142 @@
+/***************************************************************************
+**
+** This file is part of Qt Creator
+**
+** Copyright (c) 2008-2009 Nokia Corporation and/or its subsidiary(-ies).
+**
+** Contact:  Qt Software Information (qt-info@nokia.com)
+**
+**
+** Non-Open Source Usage
+**
+** Licensees may use this file in accordance with the Qt Beta Version
+** License Agreement, Agreement version 2.2 provided with the Software or,
+** alternatively, in accordance with the terms contained in a written
+** agreement between you and Nokia.
+**
+** GNU General Public License Usage
+**
+** Alternatively, this file may be used under the terms of the GNU General
+** Public License versions 2.0 or 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 GNU
+** General Public Licensing requirements will be met:
+**
+** http://www.fsf.org/licensing/licenses/info/GPLv2.html and
+** http://www.gnu.org/copyleft/gpl.html.
+**
+** In addition, as a special exception, Nokia gives you certain additional
+** rights. These rights are described in the Nokia Qt GPL Exception
+** version 1.3, included in the file GPL_EXCEPTION.txt in this package.
+**
+***************************************************************************/
+
+//
+//  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 QDESIGNER_INTEGRATION_H
+#define QDESIGNER_INTEGRATION_H
+
+#include "shared_global_p.h"
+#include <QtDesigner/QDesignerIntegrationInterface>
+
+#include <QtCore/QObject>
+
+QT_BEGIN_NAMESPACE
+
+class QDesignerFormEditorInterface;
+class QDesignerFormWindowInterface;
+class QDesignerResourceBrowserInterface;
+
+class QVariant;
+class QWidget;
+
+namespace qdesigner_internal {
+
+struct Selection;
+class QDesignerIntegrationPrivate;
+
+class QDESIGNER_SHARED_EXPORT QDesignerIntegration: public QDesignerIntegrationInterface
+{
+    Q_OBJECT
+public:
+    explicit QDesignerIntegration(QDesignerFormEditorInterface *core, QObject *parent = 0);
+    virtual ~QDesignerIntegration();
+
+    static void requestHelp(const QDesignerFormEditorInterface *core, const QString &manual, const QString &document);
+
+    virtual QWidget *containerWindow(QWidget *widget) const;
+
+    // Load plugins into widget database and factory.
+    static void initializePlugins(QDesignerFormEditorInterface *formEditor);
+    void emitObjectNameChanged(QDesignerFormWindowInterface *formWindow, QObject *object,
+                               const QString &newName, const QString &oldName);
+    void emitNavigateToSlot(const QString &objectName, const QString &signalSignature, const QStringList &parameterNames);
+    void emitNavigateToSlot(const QString &slotSignature);
+
+    // Create a resource browser specific to integration. Language integration takes precedence
+    virtual QDesignerResourceBrowserInterface *createResourceBrowser(QWidget *parent = 0);
+
+    enum ResourceFileWatcherBehaviour {
+        NoWatcher,
+        ReloadSilently,
+        PromptAndReload
+    };
+
+    ResourceFileWatcherBehaviour resourceFileWatcherBehaviour() const;
+    bool isResourceEditingEnabled() const;
+    bool isSlotNavigationEnabled() const;
+
+protected:
+
+    void setResourceFileWatcherBehaviour(ResourceFileWatcherBehaviour behaviour); // PromptAndReload by default
+    void setResourceEditingEnabled(bool enable); // true by default
+    void setSlotNavigationEnabled(bool enable); // false by default
+
+signals:
+    void propertyChanged(QDesignerFormWindowInterface *formWindow, const QString &name, const QVariant &value);
+    void objectNameChanged(QDesignerFormWindowInterface *formWindow, QObject *object, const QString &newName, const QString &oldName);
+    void helpRequested(const QString &manual, const QString &document);
+
+    void navigateToSlot(const QString &objectName, const QString &signalSignature, const QStringList &parameterNames);
+    void navigateToSlot(const QString &slotSignature);
+
+public slots:
+    virtual void updateProperty(const QString &name, const QVariant &value, bool enableSubPropertyHandling);
+    // Additional signals of designer property editor
+    virtual void resetProperty(const QString &name);
+    virtual void addDynamicProperty(const QString &name, const QVariant &value);
+    virtual void removeDynamicProperty(const QString &name);
+
+    virtual void updateActiveFormWindow(QDesignerFormWindowInterface *formWindow);
+    virtual void setupFormWindow(QDesignerFormWindowInterface *formWindow);
+    virtual void updateSelection();
+    virtual void updateGeometry();
+    virtual void activateWidget(QWidget *widget);
+
+    void updateCustomWidgetPlugins();
+
+private slots:
+    void updatePropertyPrivate(const QString &name, const QVariant &value);
+
+private:
+    void initialize();
+    void getSelection(Selection &s);
+    QObject *propertyEditorObject();
+
+    QDesignerIntegrationPrivate *m_d;
+};
+
+} // namespace qdesigner_internal
+
+QT_END_NAMESPACE
+
+#endif // QDESIGNER_INTEGRATION_H
diff --git a/src/plugins/designer/qt_private/qtresourcemodel_p.h b/src/plugins/designer/qt_private/qtresourcemodel_p.h
new file mode 100644
index 0000000000000000000000000000000000000000..51743be926efddb30f93ae4ddc0ca051b56d3649
--- /dev/null
+++ b/src/plugins/designer/qt_private/qtresourcemodel_p.h
@@ -0,0 +1,136 @@
+/***************************************************************************
+**
+** This file is part of Qt Creator
+**
+** Copyright (c) 2008-2009 Nokia Corporation and/or its subsidiary(-ies).
+**
+** Contact:  Qt Software Information (qt-info@nokia.com)
+**
+**
+** Non-Open Source Usage
+**
+** Licensees may use this file in accordance with the Qt Beta Version
+** License Agreement, Agreement version 2.2 provided with the Software or,
+** alternatively, in accordance with the terms contained in a written
+** agreement between you and Nokia.
+**
+** GNU General Public License Usage
+**
+** Alternatively, this file may be used under the terms of the GNU General
+** Public License versions 2.0 or 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 GNU
+** General Public Licensing requirements will be met:
+**
+** http://www.fsf.org/licensing/licenses/info/GPLv2.html and
+** http://www.gnu.org/copyleft/gpl.html.
+**
+** In addition, as a special exception, Nokia gives you certain additional
+** rights. These rights are described in the Nokia Qt GPL Exception
+** version 1.3, included in the file GPL_EXCEPTION.txt in this package.
+**
+***************************************************************************/
+
+//
+//  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 QTRESOURCEMODEL_H
+#define QTRESOURCEMODEL_H
+
+#include "shared_global_p.h"
+#include <QtCore/QMap>
+#include <QtCore/QObject>
+
+QT_BEGIN_NAMESPACE
+
+class QtResourceModel;
+
+class QDESIGNER_SHARED_EXPORT QtResourceSet // one instance per one form
+{
+public:
+    QStringList activeQrcPaths() const;
+
+    // activateQrcPaths(): if this QtResourceSet is active it emits resourceSetActivated();
+    // otherwise only in case if active QtResource set contains one of
+    // paths which was marked as modified by this resource set, the signal
+    // is emitted (with reload = true);
+    // If new path appears on the list it is automatically added to
+    // loaded list of QtResourceModel. In addition it is marked as modified in case
+    // QtResourceModel didn't contain the path.
+    // If some path is removed from that list (and is not used in any other
+    // resource set) it is automatically unloaded. The removed file can also be
+    // marked as modified (later when another resource set which contains
+    // removed path is activated will be reloaded)
+    void activateQrcPaths(const QStringList &paths, int *errorCount = 0, QString *errorMessages = 0);
+
+    bool isModified(const QString &path) const; // for all paths in resource model (redundant here, maybe it should be removed from here)
+    void setModified(const QString &path);      // for all paths in resource model (redundant here, maybe it should be removed from here)
+private:
+    QtResourceSet();
+    QtResourceSet(QtResourceModel *model);
+    ~QtResourceSet();
+    friend class QtResourceModel;
+
+    class QtResourceSetPrivate *d_ptr;
+    Q_DECLARE_PRIVATE(QtResourceSet)
+    Q_DISABLE_COPY(QtResourceSet)
+};
+
+class QDESIGNER_SHARED_EXPORT QtResourceModel : public QObject // one instance per whole designer
+{
+    Q_OBJECT
+public:
+    QtResourceModel(QObject *parent = 0);
+    ~QtResourceModel();
+
+    QStringList loadedQrcFiles() const;
+    bool isModified(const QString &path) const; // only for paths which are on loadedQrcFiles() list
+    void setModified(const QString &path);      // only for paths which are on loadedQrcPaths() list
+
+    QList<QtResourceSet *> resourceSets() const;
+
+    QtResourceSet *currentResourceSet() const;
+    void setCurrentResourceSet(QtResourceSet *resourceSet, int *errorCount = 0, QString *errorMessages = 0);
+
+    QtResourceSet *addResourceSet(const QStringList &paths);
+    void removeResourceSet(QtResourceSet *resourceSet);
+
+    void reload(const QString &path, int *errorCount = 0, QString *errorMessages = 0);
+    void reload(int *errorCount = 0, QString *errorMessages = 0);
+
+    // Contents of the current resource set (content file to qrc path)
+    QMap<QString, QString> contents() const;
+    // Find the qrc file belonging to the contained file (from current resource set)
+    QString qrcPath(const QString &file) const;
+
+    void setWatcherEnabled(bool enable);
+    bool isWatcherEnabled() const;
+
+    void setWatcherEnabled(const QString &path, bool enable);
+    bool isWatcherEnabled(const QString &path);
+
+signals:
+    void resourceSetActivated(QtResourceSet *resourceSet, bool resourceSetChanged); // resourceSetChanged since last time it was activated!
+    void qrcFileModifiedExternally(const QString &path);
+
+private:
+    friend class QtResourceSet;
+
+    class QtResourceModelPrivate *d_ptr;
+    Q_DECLARE_PRIVATE(QtResourceModel)
+    Q_DISABLE_COPY(QtResourceModel)
+
+    Q_PRIVATE_SLOT(d_func(), void slotFileChanged(const QString &))
+};
+
+QT_END_NAMESPACE
+
+#endif
diff --git a/src/plugins/designer/qt_private/shared_global_p.h b/src/plugins/designer/qt_private/shared_global_p.h
new file mode 100644
index 0000000000000000000000000000000000000000..0df946fb90e242a2e74edafdab33199389d751ae
--- /dev/null
+++ b/src/plugins/designer/qt_private/shared_global_p.h
@@ -0,0 +1,68 @@
+/***************************************************************************
+**
+** This file is part of Qt Creator
+**
+** Copyright (c) 2008-2009 Nokia Corporation and/or its subsidiary(-ies).
+**
+** Contact:  Qt Software Information (qt-info@nokia.com)
+**
+**
+** Non-Open Source Usage
+**
+** Licensees may use this file in accordance with the Qt Beta Version
+** License Agreement, Agreement version 2.2 provided with the Software or,
+** alternatively, in accordance with the terms contained in a written
+** agreement between you and Nokia.
+**
+** GNU General Public License Usage
+**
+** Alternatively, this file may be used under the terms of the GNU General
+** Public License versions 2.0 or 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 GNU
+** General Public Licensing requirements will be met:
+**
+** http://www.fsf.org/licensing/licenses/info/GPLv2.html and
+** http://www.gnu.org/copyleft/gpl.html.
+**
+** In addition, as a special exception, Nokia gives you certain additional
+** rights. These rights are described in the Nokia Qt GPL Exception
+** version 1.3, included in the file GPL_EXCEPTION.txt in this package.
+**
+***************************************************************************/
+
+//
+//  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 SHARED_GLOBAL_H
+#define SHARED_GLOBAL_H
+
+#include <QtCore/qglobal.h>
+
+#ifdef QT_DESIGNER_STATIC
+#define QDESIGNER_SHARED_EXTERN
+#define QDESIGNER_SHARED_IMPORT
+#else
+#define QDESIGNER_SHARED_EXTERN Q_DECL_EXPORT
+#define QDESIGNER_SHARED_IMPORT Q_DECL_IMPORT
+#endif
+
+#ifndef QT_NO_SHARED_EXPORT
+#  ifdef QDESIGNER_SHARED_LIBRARY
+#    define QDESIGNER_SHARED_EXPORT QDESIGNER_SHARED_EXTERN
+#  else
+#    define QDESIGNER_SHARED_EXPORT QDESIGNER_SHARED_IMPORT
+#  endif
+#else
+#  define QDESIGNER_SHARED_EXPORT
+#endif
+
+#endif // SHARED_GLOBAL_H
diff --git a/src/plugins/designer/settingsmanager.h b/src/plugins/designer/settingsmanager.h
index ba6c89e133a8bad20e851a95f4ddd1686e6b2556..196d5f1ca53b997b4810b1731a98aff758776800 100644
--- a/src/plugins/designer/settingsmanager.h
+++ b/src/plugins/designer/settingsmanager.h
@@ -34,7 +34,7 @@
 #ifndef SETTINGSMANAGER_H
 #define SETTINGSMANAGER_H
 
-#include <QtDesigner/private/abstractsettings_p.h>
+#include <qt_private/abstractsettings_p.h>
 #include <QtCore/QSettings>
 
 namespace Designer {
diff --git a/src/plugins/designer/settingspage.cpp b/src/plugins/designer/settingspage.cpp
index 8de4cad5dc21b0fde740d940c62305f6f0d50fb3..9b2c773890abc2f6f90e40db268289fd4480b062 100644
--- a/src/plugins/designer/settingspage.cpp
+++ b/src/plugins/designer/settingspage.cpp
@@ -34,7 +34,7 @@
 #include "settingspage.h"
 
 #include <extensionsystem/pluginmanager.h>
-#include <QtDesigner/private/abstractoptionspage_p.h>
+#include <qt_private/abstractoptionspage_p.h>
 
 using namespace Designer::Internal;
 
diff --git a/src/plugins/designer/syncqtheader.sh b/src/plugins/designer/syncqtheader.sh
new file mode 100755
index 0000000000000000000000000000000000000000..b114a8f6b4bcbda41bce91cbdb7ccfd424ca893d
--- /dev/null
+++ b/src/plugins/designer/syncqtheader.sh
@@ -0,0 +1,69 @@
+#!/bin/sh
+
+#  **************************************************************************
+#
+#  This file is part of Qt Creator
+#
+#  Copyright (c) 2008-2009 Nokia Corporation and/or its subsidiary(-ies).
+#
+#  Contact:  Qt Software Information (qt-info@nokia.com)
+#
+#
+#  Non-Open Source Usage
+#
+#  Licensees may use this file in accordance with the Qt Beta Version
+#  License Agreement, Agreement version 2.2 provided with the Software or,
+#  alternatively, in accordance with the terms contained in a written
+#  agreement between you and Nokia.
+#
+#  GNU General Public License Usage
+#
+#  Alternatively, this file may be used under the terms of the GNU General
+#  Public License versions 2.0 or 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 GNU
+#  General Public Licensing requirements will be met:
+#
+#  http://www.fsf.org/licensing/licenses/info/GPLv2.html and
+#  http://www.gnu.org/copyleft/gpl.html.
+#
+#  In addition, as a special exception, Nokia gives you certain additional
+#  rights. These rights are described in the Nokia Qt GPL Exception
+#  version 1.3, included in the file GPL_EXCEPTION.txt in this package.
+#
+# ***************************************************************************/
+
+# Internal utility script that synchronizes the Qt Designer private headers
+# used by the Qt Designer plugin (located in the qt_private) directory
+# with the Qt source tree pointed to by the environment variable QTDIR.
+
+REQUIRED_HEADERS="pluginmanager_p.h iconloader_p.h qdesigner_formwindowmanager_p.h formwindowbase_p.h
+abstractnewformwidget_p.h qtresourcemodel_p.h abstractoptionspage_p.h
+shared_global_p.h abstractsettings_p.h qdesigner_integration_p.h"
+
+echo Using $QTDIR
+
+syncHeader()
+{
+  HDR=$1
+  # Locate the Designer header: look in lib/shared or SDK
+  QTHDR=$QTDIR/tools/designer/src/lib/shared/$HDR
+  if [ ! -f $QTHDR ]
+  then
+    QTHDR=$QTDIR/tools/designer/src/lib/sdk/$HDR
+  fi
+  echo Syncing $QTHDR
+
+  [ -f $QTHDR ] || { echo "$HDR does not exist" ; exit 1 ; }
+
+  TARGET=qt_private/$HDR
+
+  # Exchange license header
+  head -n 32 formwindowfile.h > $TARGET || exit 1
+  tail -n +11 $QTHDR >> $TARGET || exit 1
+}
+
+for H in $REQUIRED_HEADERS
+do
+  syncHeader $H
+done
diff --git a/src/plugins/designer/workbenchintegration.h b/src/plugins/designer/workbenchintegration.h
index 55acd931ec668c992ce405901d3c3ba46fad54e3..707b50a8d78ec8ffb4d710695595df030a8778b9 100644
--- a/src/plugins/designer/workbenchintegration.h
+++ b/src/plugins/designer/workbenchintegration.h
@@ -36,7 +36,7 @@
 
 #include <cpptools/cppmodelmanagerinterface.h>
 
-#include <QtDesigner/private/qdesigner_integration_p.h>
+#include <qt_private/qdesigner_integration_p.h>
 
 namespace Designer {
 namespace Internal {
diff --git a/src/plugins/projectexplorer/projecttreewidget.cpp b/src/plugins/projectexplorer/projecttreewidget.cpp
index 3329f80788a7f31a44f6fd632ae9dc98651842c0..f08885ab6b9ca2ecf51f076bbab2bb45d7e9d150 100644
--- a/src/plugins/projectexplorer/projecttreewidget.cpp
+++ b/src/plugins/projectexplorer/projecttreewidget.cpp
@@ -73,6 +73,8 @@ public:
         setContextMenuPolicy(Qt::CustomContextMenu);
         setUniformRowHeights(true);
         setTextElideMode(Qt::ElideNone);
+        setAlternatingRowColors(true);
+        setProperty("AlternateEmpty", true); // Let Manhattan to override style default
 //        setExpandsOnDoubleClick(false);
     }