Attract: added 'open project in browser' button

The button was added to the video sequence editor panel.
This commit is contained in:
Sybren A. Stüvel 2018-10-30 11:48:48 +01:00
parent 7204d4a24c
commit 57aadc1817

View File

@ -202,6 +202,7 @@ class ATTRACT_PT_tools(AttractPollMixin, Panel):
layout.operator('attract.shot_relink') layout.operator('attract.shot_relink')
else: else:
layout.operator(ATTRACT_OT_submit_all.bl_idname) layout.operator(ATTRACT_OT_submit_all.bl_idname)
layout.operator(ATTRACT_OT_project_open_in_browser.bl_idname, icon='WORLD')
def _draw_attractstrip_buttons(self, context, strip): def _draw_attractstrip_buttons(self, context, strip):
"""Draw buttons when selected strips are Attract shots.""" """Draw buttons when selected strips are Attract shots."""
@ -909,6 +910,37 @@ class ATTRACT_OT_copy_id_to_clipboard(AttractOperatorMixin, Operator):
return {'FINISHED'} return {'FINISHED'}
class ATTRACT_OT_project_open_in_browser(Operator):
bl_idname = 'attract.project_open_in_browser'
bl_label = 'Open Project in Browser'
bl_description = 'Opens a webbrowser to show the project in Attract'
project_id = bpy.props.StringProperty(name='Project ID', default='')
def execute(self, context):
import webbrowser
import urllib.parse
import pillarsdk
from ..pillar import sync_call
from ..blender import PILLAR_WEB_SERVER_URL, preferences
if not self.project_id:
self.project_id = preferences().project.project
project = sync_call(pillarsdk.Project.find, self.project_id, {'projection': {'url': True}})
if log.isEnabledFor(logging.DEBUG):
import pprint
log.debug('found project: %s', pprint.pformat(project.to_dict()))
url = urllib.parse.urljoin(PILLAR_WEB_SERVER_URL, f'attract/{project.url}')
webbrowser.open_new_tab(url)
self.report({'INFO'}, 'Opened a browser at %s' % url)
return {'FINISHED'}
def draw_strip_movie_meta(self, context): def draw_strip_movie_meta(self, context):
strip = active_strip(context) strip = active_strip(context)
if not strip: if not strip: