2026-02-16
This commit is contained in:
@@ -83,7 +83,7 @@ def draw_upload_common(layout, props, asset_type, context):
|
||||
url = "" # paths.BLENDERKIT_NODEGROUP_UPLOAD_INSTRUCTIONS_URL
|
||||
if asset_type == "PRINTABLE":
|
||||
url = (
|
||||
paths.BLENDERKIT_MODEL_UPLOAD_INSTRUCTIONS_URL
|
||||
paths.BLENDERKIT_PRINTABLE_UPLOAD_INSTRUCTIONS_URL
|
||||
) # Reuse model instructions since prints are similar
|
||||
if asset_type == "ADDON":
|
||||
asset_type_text = asset_type
|
||||
@@ -1721,6 +1721,10 @@ class VIEW3D_PT_blenderkit_import_settings(Panel):
|
||||
layout.prop(preferences, "resolution")
|
||||
# layout.prop(props, 'unpack_files')
|
||||
|
||||
# general settings
|
||||
# show toggle for clipboard scan
|
||||
layout.prop(preferences, "use_clipboard_scan")
|
||||
|
||||
|
||||
def deferred_set_name(props, expected_obj_name):
|
||||
"""Deferred timer to set empty name of uploaded asset to active Object's name.
|
||||
@@ -2725,15 +2729,26 @@ class AssetPopupCard(bpy.types.Operator, ratings_utils.RatingProperties):
|
||||
is_free = self.asset_data.get("isFree")
|
||||
|
||||
# Get pricing info from extensions cache
|
||||
user_price = self.asset_data.get("userPrice")
|
||||
base_price = self.asset_data.get("basePrice")
|
||||
is_for_sale = self.asset_data.get("isForSale")
|
||||
|
||||
if self.asset_data["isPrivate"]:
|
||||
text = "Private"
|
||||
self.draw_property(box, "Access", text, icon="LOCKED")
|
||||
elif is_for_sale and not can_download and user_price and base_price:
|
||||
text = f"${user_price} (Not purchased)"
|
||||
icon = pcoll["for_sale"]
|
||||
self.draw_property(
|
||||
box,
|
||||
"Price",
|
||||
text,
|
||||
icon_value=icon.icon_id,
|
||||
tooltip="This addon is for sale but you haven't purchased it yet.\nPrice shown is your price / base price",
|
||||
)
|
||||
elif is_for_sale and not can_download and base_price:
|
||||
text = f"${base_price} (Not purchased)"
|
||||
icon = pcoll["full"]
|
||||
icon = pcoll["for_sale"]
|
||||
self.draw_property(
|
||||
box,
|
||||
"Price",
|
||||
@@ -2742,8 +2757,8 @@ class AssetPopupCard(bpy.types.Operator, ratings_utils.RatingProperties):
|
||||
tooltip="This addon is for sale but you haven't purchased it yet",
|
||||
)
|
||||
elif is_for_sale and can_download and base_price:
|
||||
text = f"${base_price} (Purchased)"
|
||||
icon = pcoll["full"]
|
||||
text = f"Purchased"
|
||||
icon = pcoll["for_sale"]
|
||||
self.draw_property(
|
||||
box,
|
||||
"Price",
|
||||
@@ -2752,7 +2767,7 @@ class AssetPopupCard(bpy.types.Operator, ratings_utils.RatingProperties):
|
||||
tooltip="You have purchased this addon",
|
||||
)
|
||||
elif not is_free and not is_for_sale:
|
||||
text = "Full plan required"
|
||||
text = "Full plan"
|
||||
icon = pcoll["full"]
|
||||
self.draw_property(
|
||||
box,
|
||||
@@ -2991,7 +3006,7 @@ class AssetPopupCard(bpy.types.Operator, ratings_utils.RatingProperties):
|
||||
)
|
||||
op.tooltip = "Search all assets by this author.\nShortcut: Hover over the asset in the asset bar and press 'A'." # type: ignore[attr-defined]
|
||||
op.esc = True # type: ignore[attr-defined]
|
||||
op.keywords = "" # type: ignore[attr-defined]
|
||||
op.keywords = "" # type: ignore[attr-defined] # must not be empty otherwise search will use previous keywords
|
||||
op.author_id = str(author_id) # type: ignore[attr-defined]
|
||||
|
||||
button_row = button_row.row(align=True)
|
||||
@@ -3222,7 +3237,7 @@ class AssetPopupCard(bpy.types.Operator, ratings_utils.RatingProperties):
|
||||
# name_row.label(text='>')
|
||||
|
||||
name_row.label(text=aname)
|
||||
push_op_left(name_row, strength=3)
|
||||
push_op_left(name_row, strength=1)
|
||||
op = name_row.operator("view3d.close_popup_button", text="", icon="CANCEL")
|
||||
|
||||
def draw_comment_response(self, context, layout, comment_id):
|
||||
@@ -3568,6 +3583,18 @@ class SetCategoryOperatorLastInPopupCard(SetCategoryOperatorOrigin):
|
||||
bl_idname = "view3d.blenderkit_set_category_in_popup_card_last"
|
||||
|
||||
|
||||
class ToggleClipboardScan(bpy.types.Operator):
|
||||
"""Toggle whether asset links are set from clipboard when copied."""
|
||||
|
||||
bl_idname = "wm.blenderkit_toggle_clipboard_scan"
|
||||
bl_label = "Toggle Clipboard Scan"
|
||||
|
||||
def execute(self, context):
|
||||
user_preferences = bpy.context.preferences.addons[__package__].preferences
|
||||
user_preferences.use_clipboard_scan = not user_preferences.use_clipboard_scan
|
||||
return {"FINISHED"}
|
||||
|
||||
|
||||
class ClearSearchKeywords(bpy.types.Operator):
|
||||
"""Clear search keywords"""
|
||||
|
||||
|
||||
Reference in New Issue
Block a user