Merge "Merge remote-tracking branch 'origin/8.0'"

This commit is contained in:
The Qt Project
2022-08-04 06:48:30 +00:00
13 changed files with 129 additions and 12 deletions

View File

@@ -59,6 +59,7 @@ public:
SelectBackgroundColor, SelectBackgroundColor,
SelectGridColor, SelectGridColor,
ResetBackgroundColor, ResetBackgroundColor,
SyncBackgroundColor,
GetModelAtPos GetModelAtPos
}; };

View File

@@ -48,6 +48,7 @@ Item {
property color backgroundGradientColorStart: "#222222" property color backgroundGradientColorStart: "#222222"
property color backgroundGradientColorEnd: "#999999" property color backgroundGradientColorEnd: "#999999"
property color gridColor: "#aaaaaa" property color gridColor: "#aaaaaa"
property bool syncBackgroundColor: false
enum SelectionMode { Item, Group } enum SelectionMode { Item, Group }
enum TransformMode { Move, Rotate, Scale } enum TransformMode { Move, Rotate, Scale }
@@ -72,15 +73,16 @@ Item {
signal changeObjectProperty(var objects, var propNames) signal changeObjectProperty(var objects, var propNames)
signal notifyActiveSceneChange() signal notifyActiveSceneChange()
onUsePerspectiveChanged: _generalHelper.storeToolState(sceneId, "usePerspective", usePerspective) onUsePerspectiveChanged: _generalHelper.storeToolState(sceneId, "usePerspective", usePerspective)
onShowEditLightChanged: _generalHelper.storeToolState(sceneId, "showEditLight", showEditLight) onShowEditLightChanged: _generalHelper.storeToolState(sceneId, "showEditLight", showEditLight)
onGlobalOrientationChanged: _generalHelper.storeToolState(sceneId, "globalOrientation", globalOrientation) onGlobalOrientationChanged: _generalHelper.storeToolState(sceneId, "globalOrientation", globalOrientation)
onShowGridChanged: _generalHelper.storeToolState(sceneId, "showGrid", showGrid); onShowGridChanged: _generalHelper.storeToolState(sceneId, "showGrid", showGrid);
onShowSelectionBoxChanged: _generalHelper.storeToolState(sceneId, "showSelectionBox", showSelectionBox); onSyncBackgroundColorChanged: _generalHelper.storeToolState(sceneId, "syncBackgroundColor", syncBackgroundColor);
onShowIconGizmoChanged: _generalHelper.storeToolState(sceneId, "showIconGizmo", showIconGizmo); onShowSelectionBoxChanged: _generalHelper.storeToolState(sceneId, "showSelectionBox", showSelectionBox);
onShowCameraFrustumChanged: _generalHelper.storeToolState(sceneId, "showCameraFrustum", showCameraFrustum); onShowIconGizmoChanged: _generalHelper.storeToolState(sceneId, "showIconGizmo", showIconGizmo);
onSelectionModeChanged: _generalHelper.storeToolState(sceneId, "selectionMode", selectionMode); onShowCameraFrustumChanged: _generalHelper.storeToolState(sceneId, "showCameraFrustum", showCameraFrustum);
onTransformModeChanged: _generalHelper.storeToolState(sceneId, "transformMode", transformMode); onSelectionModeChanged: _generalHelper.storeToolState(sceneId, "selectionMode", selectionMode);
onTransformModeChanged: _generalHelper.storeToolState(sceneId, "transformMode", transformMode);
onActiveSceneChanged: updateActiveScene() onActiveSceneChanged: updateActiveScene()
@@ -249,6 +251,16 @@ Item {
else if (resetToDefault) else if (resetToDefault)
showGrid = true; showGrid = true;
if ("syncBackgroundColor" in toolStates) {
syncBackgroundColor = toolStates.syncBackgroundColor;
if (syncBackgroundColor) {
var color = _generalHelper.sceneEnvironmentColor(sceneId);
updateViewStates({"selectBackgroundColor": color})
}
} else if (resetToDefault) {
syncBackgroundColor = false;
}
if ("showSelectionBox" in toolStates) if ("showSelectionBox" in toolStates)
showSelectionBox = toolStates.showSelectionBox; showSelectionBox = toolStates.showSelectionBox;
else if (resetToDefault) else if (resetToDefault)
@@ -294,6 +306,7 @@ Item {
{ {
_generalHelper.storeToolState(sceneId, "showEditLight", showEditLight) _generalHelper.storeToolState(sceneId, "showEditLight", showEditLight)
_generalHelper.storeToolState(sceneId, "showGrid", showGrid) _generalHelper.storeToolState(sceneId, "showGrid", showGrid)
_generalHelper.storeToolState(sceneId, "syncBackgroundColor", syncBackgroundColor)
_generalHelper.storeToolState(sceneId, "showSelectionBox", showSelectionBox) _generalHelper.storeToolState(sceneId, "showSelectionBox", showSelectionBox)
_generalHelper.storeToolState(sceneId, "showIconGizmo", showIconGizmo) _generalHelper.storeToolState(sceneId, "showIconGizmo", showIconGizmo)
_generalHelper.storeToolState(sceneId, "showCameraFrustum", showCameraFrustum) _generalHelper.storeToolState(sceneId, "showCameraFrustum", showCameraFrustum)

View File

@@ -49,6 +49,7 @@ Item {
property color backgroundGradientColorStart: "#222222" property color backgroundGradientColorStart: "#222222"
property color backgroundGradientColorEnd: "#999999" property color backgroundGradientColorEnd: "#999999"
property color gridColor: "#aaaaaa" property color gridColor: "#aaaaaa"
property bool syncBackgroundColor: false
enum SelectionMode { Item, Group } enum SelectionMode { Item, Group }
enum TransformMode { Move, Rotate, Scale } enum TransformMode { Move, Rotate, Scale }
@@ -79,6 +80,7 @@ Item {
onShowEditLightChanged: _generalHelper.storeToolState(sceneId, "showEditLight", showEditLight) onShowEditLightChanged: _generalHelper.storeToolState(sceneId, "showEditLight", showEditLight)
onGlobalOrientationChanged: _generalHelper.storeToolState(sceneId, "globalOrientation", globalOrientation) onGlobalOrientationChanged: _generalHelper.storeToolState(sceneId, "globalOrientation", globalOrientation)
onShowGridChanged: _generalHelper.storeToolState(sceneId, "showGrid", showGrid); onShowGridChanged: _generalHelper.storeToolState(sceneId, "showGrid", showGrid);
onSyncBackgroundColorChanged: _generalHelper.storeToolState(sceneId, "syncBackgroundColor", syncBackgroundColor);
onShowSelectionBoxChanged: _generalHelper.storeToolState(sceneId, "showSelectionBox", showSelectionBox); onShowSelectionBoxChanged: _generalHelper.storeToolState(sceneId, "showSelectionBox", showSelectionBox);
onShowIconGizmoChanged: _generalHelper.storeToolState(sceneId, "showIconGizmo", showIconGizmo); onShowIconGizmoChanged: _generalHelper.storeToolState(sceneId, "showIconGizmo", showIconGizmo);
onShowCameraFrustumChanged: _generalHelper.storeToolState(sceneId, "showCameraFrustum", showCameraFrustum); onShowCameraFrustumChanged: _generalHelper.storeToolState(sceneId, "showCameraFrustum", showCameraFrustum);
@@ -243,6 +245,16 @@ Item {
else if (resetToDefault) else if (resetToDefault)
showGrid = true; showGrid = true;
if ("syncBackgroundColor" in toolStates) {
syncBackgroundColor = toolStates.syncBackgroundColor;
if (syncBackgroundColor) {
var color = _generalHelper.sceneEnvironmentColor(sceneId);
updateViewStates({"selectBackgroundColor": color})
}
} else if (resetToDefault) {
syncBackgroundColor = false;
}
if ("showSelectionBox" in toolStates) if ("showSelectionBox" in toolStates)
showSelectionBox = toolStates.showSelectionBox; showSelectionBox = toolStates.showSelectionBox;
else if (resetToDefault) else if (resetToDefault)
@@ -293,6 +305,7 @@ Item {
{ {
_generalHelper.storeToolState(sceneId, "showEditLight", showEditLight) _generalHelper.storeToolState(sceneId, "showEditLight", showEditLight)
_generalHelper.storeToolState(sceneId, "showGrid", showGrid) _generalHelper.storeToolState(sceneId, "showGrid", showGrid)
_generalHelper.storeToolState(sceneId, "syncBackgroundColor", syncBackgroundColor)
_generalHelper.storeToolState(sceneId, "showSelectionBox", showSelectionBox) _generalHelper.storeToolState(sceneId, "showSelectionBox", showSelectionBox)
_generalHelper.storeToolState(sceneId, "showIconGizmo", showIconGizmo) _generalHelper.storeToolState(sceneId, "showIconGizmo", showIconGizmo)
_generalHelper.storeToolState(sceneId, "showCameraFrustum", showCameraFrustum) _generalHelper.storeToolState(sceneId, "showCameraFrustum", showCameraFrustum)

View File

@@ -549,6 +549,16 @@ void GeneralHelper::storeToolState(const QString &sceneId, const QString &tool,
} }
} }
void GeneralHelper::setSceneEnvironmentColor(const QString &sceneId, const QColor &color)
{
m_sceneEnvironmentColor[sceneId] = color;
}
QColor GeneralHelper::sceneEnvironmentColor(const QString &sceneId) const
{
return m_sceneEnvironmentColor[sceneId];
}
void GeneralHelper::initToolStates(const QString &sceneId, const QVariantMap &toolStates) void GeneralHelper::initToolStates(const QString &sceneId, const QVariantMap &toolStates)
{ {
m_toolStates[sceneId] = toolStates; m_toolStates[sceneId] = toolStates;

View File

@@ -113,6 +113,9 @@ public:
Q_INVOKABLE void scaleMultiSelection(bool commit); Q_INVOKABLE void scaleMultiSelection(bool commit);
Q_INVOKABLE void rotateMultiSelection(bool commit); Q_INVOKABLE void rotateMultiSelection(bool commit);
void setSceneEnvironmentColor(const QString &sceneId, const QColor &color);
Q_INVOKABLE QColor sceneEnvironmentColor(const QString &sceneId) const;
bool isMacOS() const; bool isMacOS() const;
void addRotationBlocks(const QSet<QQuick3DNode *> &nodes); void addRotationBlocks(const QSet<QQuick3DNode *> &nodes);
@@ -136,6 +139,7 @@ private:
QTimer m_toolStateUpdateTimer; QTimer m_toolStateUpdateTimer;
QHash<QString, QVariantMap> m_toolStates; QHash<QString, QVariantMap> m_toolStates;
QHash<QString, QVariantMap> m_toolStatesPending; QHash<QString, QVariantMap> m_toolStatesPending;
QHash<QString, QColor> m_sceneEnvironmentColor;
QSet<QQuick3DNode *> m_rotationBlockedNodes; QSet<QQuick3DNode *> m_rotationBlockedNodes;
struct MultiSelData { struct MultiSelData {

View File

@@ -861,8 +861,19 @@ void Qt5InformationNodeInstanceServer::updateActiveSceneToEditView3D([[maybe_unu
updateView3DRect(m_active3DView); updateView3DRect(m_active3DView);
auto helper = qobject_cast<QmlDesigner::Internal::GeneralHelper *>(m_3dHelper); auto helper = qobject_cast<QmlDesigner::Internal::GeneralHelper *>(m_3dHelper);
if (helper) if (helper) {
helper->storeToolState(helper->globalStateId(), helper->lastSceneIdKey(), QVariant(sceneId), 0); helper->storeToolState(helper->globalStateId(), helper->lastSceneIdKey(), QVariant(sceneId), 0);
QVariantMap toolStates = helper->getToolStates(sceneId);
if (toolStates.contains("syncBackgroundColor")) {
bool sync = toolStates["syncBackgroundColor"].toBool();
if (sync) {
QColor color = helper->sceneEnvironmentColor(sceneId);
View3DActionCommand cmd(View3DActionCommand::SelectBackgroundColor,
QVariant::fromValue(color));
view3DAction(cmd);
}
}
}
#endif #endif
} }
@@ -2163,6 +2174,44 @@ void Qt5InformationNodeInstanceServer::changeSelection(const ChangeSelectionComm
render3DEditView(2); render3DEditView(2);
} }
void Qt5InformationNodeInstanceServer::setSceneEnvironmentColor(const PropertyValueContainer &container)
{
#ifdef QUICK3D_MODULE
auto helper = qobject_cast<QmlDesigner::Internal::GeneralHelper *>(m_3dHelper);
if (!helper || !hasInstanceForId(container.instanceId()) || !m_active3DView)
return;
ServerNodeInstance sceneEnvInstance = instanceForId(container.instanceId());
if (!sceneEnvInstance.isSubclassOf("QQuick3DSceneEnvironment"))
return;
auto activeView = qobject_cast<QQuick3DViewport *>(m_active3DView);
if (!activeView)
return;
QQuick3DSceneEnvironment *activeEnv = activeView->environment();
if (activeEnv != sceneEnvInstance.internalObject())
return;
ServerNodeInstance activeSceneInstance = active3DSceneInstance();
const QString sceneId = activeSceneInstance.id();
QColor color = container.value().value<QColor>();
helper->setSceneEnvironmentColor(sceneId, color);
QVariantMap toolStates = helper->getToolStates(sceneId);
if (toolStates.contains("syncBackgroundColor")) {
bool sync = toolStates["syncBackgroundColor"].toBool();
if (sync) {
View3DActionCommand cmd(View3DActionCommand::SelectBackgroundColor, QVariant::fromValue(color));
view3DAction(cmd);
}
}
#else
Q_UNUSED(container)
#endif
}
void Qt5InformationNodeInstanceServer::changePropertyValues(const ChangeValuesCommand &command) void Qt5InformationNodeInstanceServer::changePropertyValues(const ChangeValuesCommand &command)
{ {
bool hasDynamicProperties = false; bool hasDynamicProperties = false;
@@ -2170,6 +2219,10 @@ void Qt5InformationNodeInstanceServer::changePropertyValues(const ChangeValuesCo
for (const PropertyValueContainer &container : values) { for (const PropertyValueContainer &container : values) {
if (!container.isReflected()) { if (!container.isReflected()) {
hasDynamicProperties |= container.isDynamic(); hasDynamicProperties |= container.isDynamic();
if (container.name() == "clearColor")
setSceneEnvironmentColor(container);
setInstancePropertyVariant(container); setInstancePropertyVariant(container);
} }
} }
@@ -2268,6 +2321,9 @@ void Qt5InformationNodeInstanceServer::view3DAction(const View3DActionCommand &c
case View3DActionCommand::ShowCameraFrustum: case View3DActionCommand::ShowCameraFrustum:
updatedToolState.insert("showCameraFrustum", command.isEnabled()); updatedToolState.insert("showCameraFrustum", command.isEnabled());
break; break;
case View3DActionCommand::SyncBackgroundColor:
updatedToolState.insert("syncBackgroundColor", command.isEnabled());
break;
case View3DActionCommand::SelectBackgroundColor: case View3DActionCommand::SelectBackgroundColor:
updatedViewState.insert("selectBackgroundColor", command.value()); updatedViewState.insert("selectBackgroundColor", command.value());
break; break;

View File

@@ -154,6 +154,7 @@ private:
void resetParticleSystem(); void resetParticleSystem();
void handleParticleSystemDeselected(); void handleParticleSystemDeselected();
#endif #endif
void setSceneEnvironmentColor(const PropertyValueContainer &container);
RenderViewData m_editView3DData; RenderViewData m_editView3DData;
RenderViewData m_modelNode3DImageViewData; RenderViewData m_modelNode3DImageViewData;

View File

@@ -122,7 +122,7 @@ QString GerritServer::url(UrlType urlType) const
case Https: protocol = "https"; break; case Https: protocol = "https"; break;
} }
QString res = protocol + "://"; QString res = protocol + "://";
if (type == Ssh || urlType != DefaultUrl) if (type == Ssh || urlType == UrlWithHttpUser)
res += hostArgument(); res += hostArgument();
else else
res += host; res += host;

View File

@@ -255,6 +255,7 @@ LanguageClientOutlineWidget::LanguageClientOutlineWidget(Client *client,
if (m_sync) if (m_sync)
updateSelectionInTree(m_editor->textCursor()); updateSelectionInTree(m_editor->textCursor());
}); });
setFocusProxy(&m_view);
} }
QList<QAction *> LanguageClientOutlineWidget::filterMenuActions() const QList<QAction *> LanguageClientOutlineWidget::filterMenuActions() const

View File

@@ -928,7 +928,7 @@ QList<Interpreter> PythonSettings::detectPythonVenvs(const FilePath &path)
dir.cdUp(); dir.cdUp();
} }
} }
} while (dir.cdUp()); } while (dir.cdUp() && !(dir.isRoot() && Utils::HostOsInfo::isAnyUnixHost()));
} }
return result; return result;
} }

View File

@@ -332,6 +332,21 @@ Edit3DAction *Edit3DView::createResetColorAction()
tooltip); tooltip);
} }
Edit3DAction *Edit3DView::createSyncBackgroundColorAction()
{
QString description = QCoreApplication::translate("SyncEdit3DColorAction",
"Use Scene Environment Color");
QString tooltip = QCoreApplication::translate("SyncEdit3DColorAction",
"Sets the 3D Editor to use the Scene Environment "
"color as background color.");
return new Edit3DAction(
QmlDesigner::Constants::EDIT3D_EDIT_SYNC_BACKGROUND_COLOR, View3DActionCommand::SyncBackgroundColor,
description,
{}, true, false, {}, {}, {},
tooltip);
}
void Edit3DView::createEdit3DActions() void Edit3DView::createEdit3DActions()
{ {
m_selectionModeAction m_selectionModeAction
@@ -563,6 +578,7 @@ void Edit3DView::createEdit3DActions()
m_backgroundColorActions << createSelectBackgrounColorAction(); m_backgroundColorActions << createSelectBackgrounColorAction();
m_backgroundColorActions << createGridColorSelectionAction(); m_backgroundColorActions << createGridColorSelectionAction();
m_backgroundColorActions << createSyncBackgroundColorAction();
m_backgroundColorActions << createResetColorAction(); m_backgroundColorActions << createResetColorAction();
} }

View File

@@ -88,6 +88,7 @@ private:
Edit3DAction *createSelectBackgrounColorAction(); Edit3DAction *createSelectBackgrounColorAction();
Edit3DAction *createGridColorSelectionAction(); Edit3DAction *createGridColorSelectionAction();
Edit3DAction *createResetColorAction(); Edit3DAction *createResetColorAction();
Edit3DAction *createSyncBackgroundColorAction();
QPointer<Edit3DWidget> m_edit3DWidget; QPointer<Edit3DWidget> m_edit3DWidget;
QVector<Edit3DAction *> m_leftActions; QVector<Edit3DAction *> m_leftActions;

View File

@@ -68,6 +68,7 @@ const char EDIT3D_EDIT_SHOW_GRID[] = "QmlDesigner.Editor3D.ToggleGrid";
const char EDIT3D_EDIT_SELECT_BACKGROUND_COLOR[] = "QmlDesigner.Editor3D.SelectBackgroundColor"; const char EDIT3D_EDIT_SELECT_BACKGROUND_COLOR[] = "QmlDesigner.Editor3D.SelectBackgroundColor";
const char EDIT3D_EDIT_SELECT_GRID_COLOR[] = "QmlDesigner.Editor3D.SelectGridColor"; const char EDIT3D_EDIT_SELECT_GRID_COLOR[] = "QmlDesigner.Editor3D.SelectGridColor";
const char EDIT3D_EDIT_RESET_BACKGROUND_COLOR[] = "QmlDesigner.Editor3D.ResetBackgroundColor"; const char EDIT3D_EDIT_RESET_BACKGROUND_COLOR[] = "QmlDesigner.Editor3D.ResetBackgroundColor";
const char EDIT3D_EDIT_SYNC_BACKGROUND_COLOR[] = "QmlDesigner.Editor3D.SyncBackgroundColor";
const char EDIT3D_EDIT_SHOW_SELECTION_BOX[] = "QmlDesigner.Editor3D.ToggleSelectionBox"; const char EDIT3D_EDIT_SHOW_SELECTION_BOX[] = "QmlDesigner.Editor3D.ToggleSelectionBox";
const char EDIT3D_EDIT_SHOW_ICON_GIZMO[] = "QmlDesigner.Editor3D.ToggleIconGizmo"; const char EDIT3D_EDIT_SHOW_ICON_GIZMO[] = "QmlDesigner.Editor3D.ToggleIconGizmo";
const char EDIT3D_EDIT_SHOW_CAMERA_FRUSTUM[] = "QmlDesigner.Editor3D.ToggleCameraFrustum"; const char EDIT3D_EDIT_SHOW_CAMERA_FRUSTUM[] = "QmlDesigner.Editor3D.ToggleCameraFrustum";