Skip to content

Commit b53a578

Browse files
committed
Merge branch 'master' into pubmaster
2 parents d6899fb + 29842de commit b53a578

File tree

1 file changed

+36
-15
lines changed

1 file changed

+36
-15
lines changed

hooks/tk-multi-publish2/tk-maya/basic/publish_turntable.py

Lines changed: 36 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -258,20 +258,21 @@ def populate_unreal_versions(self, unreal_versions, current_version):
258258
:param unreal_versions: A list of :class:`SoftwareVersion` instances.
259259
:param current_version: An Unreal version number, as a string.
260260
"""
261+
# See if we can match with just a major.minor
262+
short_current_version = _short_version(current_version)
261263
for i, unreal_version in enumerate(unreal_versions):
262264
self.unreal_engine_versions_widget.addItem(
263265
unreal_version.display_name,
264266
userData=unreal_version,
265267
)
266-
if unreal_version.version == current_version:
268+
short_version = _short_version(unreal_version.version)
269+
if short_version == short_current_version:
267270
self.unreal_engine_versions_widget.setCurrentIndex(
268271
i,
269272
)
270273
sel = self.unreal_engine_versions_widget.currentIndex()
271274
if sel != -1:
272-
self.unreal_engine_widget.combo_box.lineEdit().setText(
273-
self.unreal_engine_versions_widget.itemData(sel).path
274-
)
275+
self._current_unreal_version_changed(sel)
275276

276277
def set_unreal_project_path_template(self, project_path_template):
277278
"""
@@ -566,6 +567,18 @@ def set_ui_settings(self, widget, settings):
566567
# We do not allow editing multiple items
567568
raise NotImplementedError
568569
cur_settings = settings[0]
570+
571+
# Set the paths first, they can be changed when matching UE versions below.
572+
widget.unreal_setup_widget.unreal_engine_widget.set_path(
573+
cur_settings["Unreal Engine Path"]
574+
)
575+
widget.unreal_setup_widget.set_unreal_project_path_template(
576+
cur_settings["Unreal Project Path Template"]
577+
)
578+
widget.unreal_setup_widget.unreal_project_widget.set_path(
579+
cur_settings["Unreal Project Path"]
580+
)
581+
569582
try:
570583
unreal_versions = self.get_unreal_versions()
571584
widget.unreal_setup_widget.populate_unreal_versions(
@@ -577,15 +590,6 @@ def set_ui_settings(self, widget, settings):
577590
"Unable to retrieve existing Unreal versions from an installed TK Unreal Engine"
578591
)
579592

580-
widget.unreal_setup_widget.unreal_engine_widget.set_path(
581-
cur_settings["Unreal Engine Path"]
582-
)
583-
widget.unreal_setup_widget.set_unreal_project_path_template(
584-
cur_settings["Unreal Project Path Template"]
585-
)
586-
widget.unreal_setup_widget.unreal_project_widget.set_path(
587-
cur_settings["Unreal Project Path"]
588-
)
589593
widget.unreal_turntable_map_widget.setText(cur_settings["Turntable Map Path"])
590594
widget.unreal_sequence_widget.setText(cur_settings["Sequence Path"])
591595
widget.unreal_turntable_asset_widget.setText(cur_settings["Turntable Assets Path"])
@@ -840,6 +844,8 @@ def get_unreal_exec_property(self, settings, item):
840844
# Validate the Unreal executable and project, stash in properties
841845
unreal_exec_path = settings["Unreal Engine Path"].value
842846
unreal_engine_version = settings["Unreal Engine Version"].value
847+
# See if we can match with just a major.minor
848+
short_engine_version = _short_version(unreal_engine_version)
843849
if not unreal_exec_path:
844850
# The path was not explicitely set, either from settings or the UI,
845851
# compute one from detected Unreal versions and the default version
@@ -853,9 +859,10 @@ def get_unreal_exec_property(self, settings, item):
853859
unreal_exec_path = None
854860

855861
for unreal_version in unreal_versions:
856-
if unreal_version.version == unreal_engine_version:
862+
short_version = _short_version(unreal_version.version)
863+
if short_version == short_engine_version:
857864
self.logger.info(
858-
"Found matching Unreal version %s for %s" % (unreal_version, unreal_engine_version)
865+
"Found matching Unreal version %s for %s" % (unreal_version, short_engine_version)
859866
)
860867
unreal_exec_path = unreal_version.path
861868
break
@@ -1580,6 +1587,20 @@ def _copy_work_to_publish(self, settings, item):
15801587
"""
15811588
pass
15821589

1590+
def _short_version(version):
1591+
"""
1592+
Return a short major.minor version for the given version.
1593+
1594+
Return the given version if a major and minor can't be extracted.
1595+
1596+
:param str version: A version, as string, e.g. 5.0.2.
1597+
:returns: A string.
1598+
"""
1599+
parts = version.split(".", 2)
1600+
if len(parts) > 2:
1601+
return ".".join(parts[:2])
1602+
return version
1603+
15831604

15841605
def _session_path():
15851606
"""

0 commit comments

Comments
 (0)