forked from qt-creator/qt-creator
Merge remote-tracking branch 'origin/2.7'
Conflicts: src/plugins/qmldesigner/components/formeditor/abstractcustomtool.cpp Change-Id: I4e0a85795e7f4bfcdc21d106517517b527f85104
This commit is contained in:
@@ -137,9 +137,9 @@ QImage GraphicalNodeInstance::renderImage() const
|
||||
{
|
||||
updateDirtyNodeRecursive(quickItem());
|
||||
|
||||
QRectF boundingRect = boundingRectWithStepChilds(quickItem());
|
||||
QRectF renderBoundingRect = boundingRect();
|
||||
|
||||
QImage renderImage = designerSupport()->renderImageForItem(quickItem(), boundingRect, boundingRect.size().toSize());
|
||||
QImage renderImage = designerSupport()->renderImageForItem(quickItem(), renderBoundingRect, renderBoundingRect.size().toSize());
|
||||
|
||||
renderImage = renderImage.convertToFormat(QImage::Format_ARGB32_Premultiplied);
|
||||
|
||||
@@ -238,13 +238,13 @@ static inline bool isRectangleSane(const QRectF &rect)
|
||||
return rect.isValid() && (rect.width() < 10000) && (rect.height() < 10000);
|
||||
}
|
||||
|
||||
QRectF GraphicalNodeInstance::boundingRectWithStepChilds(QQuickItem *parentItem) const
|
||||
QRectF GraphicalNodeInstance::boundingRectWithStepChilds(QQuickItem *item) const
|
||||
{
|
||||
QRectF boundingRect = parentItem->boundingRect();
|
||||
QRectF boundingRect = item->boundingRect();
|
||||
|
||||
foreach (QQuickItem *childItem, parentItem->childItems()) {
|
||||
foreach (QQuickItem *childItem, item->childItems()) {
|
||||
if (!nodeInstanceServer()->hasInstanceForObject(childItem)) {
|
||||
QRectF transformedRect = childItem->mapRectToItem(parentItem, boundingRectWithStepChilds(childItem));
|
||||
QRectF transformedRect = childItem->mapRectToItem(item, boundingRectWithStepChilds(childItem));
|
||||
if (isRectangleSane(transformedRect))
|
||||
boundingRect = boundingRect.united(transformedRect);
|
||||
}
|
||||
|
||||
@@ -42,7 +42,7 @@
|
||||
#include <QFileSystemWatcher>
|
||||
#include <QPixmapCache>
|
||||
#include <QQuickItem>
|
||||
|
||||
#include <QQmlParserStatus>
|
||||
#include <QTextDocument>
|
||||
#include <QLibraryInfo>
|
||||
|
||||
@@ -1250,7 +1250,9 @@ bool ObjectNodeInstance::resetStateProperty(const ObjectNodeInstance::Pointer &/
|
||||
|
||||
void ObjectNodeInstance::doComponentComplete()
|
||||
{
|
||||
|
||||
QQmlParserStatus *qmlParserStatus = dynamic_cast< QQmlParserStatus*>(object());
|
||||
if (qmlParserStatus)
|
||||
qmlParserStatus->componentComplete();
|
||||
}
|
||||
|
||||
bool ObjectNodeInstance::isRootNodeInstance() const
|
||||
|
||||
+21
-22
@@ -85,6 +85,26 @@ void Qt5InformationNodeInstanceServer::token(const TokenCommand &command)
|
||||
startRenderTimer();
|
||||
}
|
||||
|
||||
bool Qt5InformationNodeInstanceServer::isDirtyRecursiveForNonInstanceItems(QQuickItem *item) const
|
||||
{
|
||||
static DesignerSupport::DirtyType informationsDirty = DesignerSupport::DirtyType(DesignerSupport::TransformUpdateMask
|
||||
| DesignerSupport::ContentUpdateMask
|
||||
| DesignerSupport::Visible
|
||||
| DesignerSupport::ZValue
|
||||
| DesignerSupport::OpacityValue);
|
||||
|
||||
if (DesignerSupport::isDirty(item, informationsDirty))
|
||||
return true;
|
||||
|
||||
foreach (QQuickItem *childItem, item->childItems()) {
|
||||
if (!hasInstanceForObject(childItem) && DesignerSupport::isDirty(childItem, informationsDirty))
|
||||
return true;
|
||||
}
|
||||
|
||||
return false;
|
||||
|
||||
}
|
||||
|
||||
void Qt5InformationNodeInstanceServer::collectItemChangesAndSendChangeCommands()
|
||||
{
|
||||
static bool inFunction = false;
|
||||
@@ -95,19 +115,13 @@ void Qt5InformationNodeInstanceServer::collectItemChangesAndSendChangeCommands()
|
||||
|
||||
QSet<ServerNodeInstance> informationChangedInstanceSet;
|
||||
QVector<InstancePropertyPair> propertyChangedList;
|
||||
bool adjustSceneRect = false;
|
||||
|
||||
if (quickView()) {
|
||||
foreach (QQuickItem *item, allItems()) {
|
||||
if (item && hasInstanceForObject(item)) {
|
||||
ServerNodeInstance instance = instanceForObject(item);
|
||||
|
||||
DesignerSupport::DirtyType informationsDirty = DesignerSupport::DirtyType(DesignerSupport::TransformUpdateMask
|
||||
| DesignerSupport::ContentUpdateMask
|
||||
| DesignerSupport::Visible
|
||||
| DesignerSupport::ZValue
|
||||
| DesignerSupport::OpacityValue);
|
||||
if (DesignerSupport::isDirty(item, informationsDirty))
|
||||
if (isDirtyRecursiveForNonInstanceItems(item))
|
||||
informationChangedInstanceSet.insert(instance);
|
||||
|
||||
|
||||
@@ -115,11 +129,6 @@ void Qt5InformationNodeInstanceServer::collectItemChangesAndSendChangeCommands()
|
||||
m_parentChangedSet.insert(instance);
|
||||
informationChangedInstanceSet.insert(instance);
|
||||
}
|
||||
// if (d->geometryChanged) {
|
||||
// if (instance.isRootNodeInstance())
|
||||
// declarativeView()->scene()->setSceneRect(item->boundingRect());
|
||||
// }
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
@@ -128,9 +137,6 @@ void Qt5InformationNodeInstanceServer::collectItemChangesAndSendChangeCommands()
|
||||
const QString propertyName = property.second;
|
||||
|
||||
if (instance.isValid()) {
|
||||
if (instance.isRootNodeInstance() && (propertyName == "width" || propertyName == "height"))
|
||||
adjustSceneRect = true;
|
||||
|
||||
if (propertyName.contains("anchors"))
|
||||
informationChangedInstanceSet.insert(instance);
|
||||
|
||||
@@ -154,13 +160,6 @@ void Qt5InformationNodeInstanceServer::collectItemChangesAndSendChangeCommands()
|
||||
m_parentChangedSet.clear();
|
||||
}
|
||||
|
||||
// if (adjustSceneRect) {
|
||||
// QRectF boundingRect = rootNodeInstance().boundingRect();
|
||||
// if (boundingRect.isValid()) {
|
||||
// declarativeView()->setSceneRect(boundingRect);
|
||||
// }
|
||||
// }
|
||||
|
||||
if (!m_completedComponentList.isEmpty()) {
|
||||
nodeInstanceClient()->componentCompleted(createComponentCompletedCommand(m_completedComponentList));
|
||||
m_completedComponentList.clear();
|
||||
|
||||
+1
-1
@@ -52,7 +52,7 @@ protected:
|
||||
void collectItemChangesAndSendChangeCommands() Q_DECL_OVERRIDE;
|
||||
void sendChildrenChangedCommand(const QList<ServerNodeInstance> childList);
|
||||
void sendTokenBack();
|
||||
|
||||
bool isDirtyRecursiveForNonInstanceItems(QQuickItem *item) const;
|
||||
|
||||
private:
|
||||
QSet<ServerNodeInstance> m_parentChangedSet;
|
||||
|
||||
Reference in New Issue
Block a user