GUI: demonstrate that blender has recieved results of the request
This commit is contained in:
14
__init__.py
14
__init__.py
@@ -10,17 +10,18 @@ class PackageSettings(bpy.types.PropertyGroup):
|
||||
url = bpy.props.StringProperty(name="URL")
|
||||
|
||||
# class PackageManager:
|
||||
# # For some reason accessing 'settings' PointerProperty via wm.package_manager.settings gives a value error
|
||||
# # but accessing it when not stored in this class (wm.package_manager_settings) is fine?
|
||||
# # settings = bpy.props.PointerProperty(type=PackageSettings)
|
||||
# pipes = []
|
||||
# # For some reason accessing *Property objects stored in this class gives a TypeError:
|
||||
# # UILayout.prop(): error with argument 1, "data" - Function.data expected a AnyType type, not tuple
|
||||
# # But accessing them when not stored in a class or dict is fine?
|
||||
# settings = bpy.props.PointerProperty(type=PackageSettings)
|
||||
# last_response_code = bpy.props.PointerProperty(type=bpy.types.StringProperty)
|
||||
|
||||
def register():
|
||||
from . import (pkg_ops, pkg_ui)
|
||||
|
||||
bpy.utils.register_class(PackageSettings)
|
||||
# bpy.types.WindowManager.package_manager = PackageManager()
|
||||
bpy.types.WindowManager.package_manager_settings = bpy.props.PointerProperty(type=PackageSettings)
|
||||
# bpy.types.WindowManager.pm_last_response_code = bpy.props.StringProperty(name="pm_last_response_code")
|
||||
pkg_ops.register()
|
||||
pkg_ui.register()
|
||||
|
||||
@@ -30,5 +31,6 @@ def unregister():
|
||||
pkg_ops.unregister()
|
||||
pkg_ui.unregister();
|
||||
bpy.utils.unregister_class(PackageSettings)
|
||||
del bpy.types.WindowManager.package_manager
|
||||
del bpy.types.WindowManager.package_manager_settings
|
||||
# del bpy.types.WindowManager.pm_last_response_code
|
||||
|
||||
|
@@ -42,6 +42,7 @@ class SubprocessOperatorMixin:
|
||||
else:
|
||||
newdata = None
|
||||
except EOFError:
|
||||
print("done polling")
|
||||
return {'FINISHED'}
|
||||
|
||||
if newdata is not None:
|
||||
@@ -52,13 +53,16 @@ class PACKAGE_OT_fetch(SubprocessOperatorMixin, bpy.types.Operator):
|
||||
bl_idname = "package.fetch"
|
||||
bl_label = "Update package list(s)"
|
||||
|
||||
last_response = None
|
||||
|
||||
def __init__(self):
|
||||
SubprocessOperatorMixin.__init__(self)
|
||||
settings = bpy.context.window_manager.package_manager_settings
|
||||
self.subprocess = Process(target=blenderpack.fetch, args=(settings.url, self.pipe))
|
||||
|
||||
def handle_response(self, resp):
|
||||
print("your response:", resp)
|
||||
self.__class__.last_response = resp
|
||||
self.report({'INFO'}, "Request returned %s" % self.__class__.last_response)
|
||||
|
||||
def execute(self, context):
|
||||
return {'FINISHED'}
|
||||
|
11
pkg_ui.py
11
pkg_ui.py
@@ -13,12 +13,21 @@ class USERPREF_PT_packages(bpy.types.Panel):
|
||||
return (userpref.active_section == 'PACKAGES')
|
||||
|
||||
def draw(self, context):
|
||||
wm = context.window_manager
|
||||
# pm = wm.package_manager
|
||||
# see comment in __init__.py
|
||||
pm_settings = wm.package_manager_settings
|
||||
# pm_last_code = wm.pm_last_response_code
|
||||
layout = self.layout
|
||||
|
||||
row = layout.row()
|
||||
row.prop(context.window_manager.package_manager_settings, "url")
|
||||
row.prop(pm_settings, "url")
|
||||
row.operator(pkg_ops.PACKAGE_OT_fetch.bl_idname, text="Fetch")
|
||||
|
||||
row = layout.row()
|
||||
# just a demonstration
|
||||
row.label(text="Last response: %s" % pkg_ops.PACKAGE_OT_fetch.last_response)
|
||||
|
||||
def register():
|
||||
bpy.utils.register_class(USERPREF_PT_packages)
|
||||
|
||||
|
Reference in New Issue
Block a user