2025-07-01
This commit is contained in:
@@ -0,0 +1,139 @@
|
||||
# #### BEGIN GPL LICENSE BLOCK #####
|
||||
#
|
||||
# This program is free software; you can redistribute it and/or
|
||||
# modify it under the terms of the GNU General Public License
|
||||
# as published by the Free Software Foundation; either version 2
|
||||
# of the License, or (at your option) any later version.
|
||||
#
|
||||
# This program is distributed in the hope that it will be useful,
|
||||
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
# GNU General Public License for more details.
|
||||
#
|
||||
# You should have received a copy of the GNU General Public License
|
||||
# along with this program; if not, write to the Free Software Foundation,
|
||||
# Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
|
||||
#
|
||||
# ##### END GPL LICENSE BLOCK #####
|
||||
|
||||
import bpy
|
||||
|
||||
from ..modules.poliigon_core.api_remote_control_params import (
|
||||
KEY_TAB_IMPORTED,
|
||||
KEY_TAB_MY_ASSETS,
|
||||
KEY_TAB_ONLINE)
|
||||
from ..modules.poliigon_core.multilingual import _t
|
||||
|
||||
|
||||
def _draw_unlimited_icon(cTB, *, row: bpy.types.UILayout) -> None:
|
||||
icon_value = cTB.ui_icons["LOGO_unlimited"].icon_id
|
||||
op_icon = row.operator(
|
||||
"poliigon.poliigon_setting", text="", emboss=True, icon_value=icon_value)
|
||||
op_icon.mode = "show_user"
|
||||
# TODO(Andreas): Tooltip???
|
||||
op_icon.tooltip = _t("Switch to your account details")
|
||||
|
||||
|
||||
def _draw_asset_balance(cTB, *, row: bpy.types.UILayout) -> None:
|
||||
if cTB.is_unlimited_user():
|
||||
_draw_unlimited_icon(cTB, row=row)
|
||||
return
|
||||
|
||||
# Asset balance
|
||||
credits = cTB.get_user_credits()
|
||||
balance_icon = cTB.ui_icons["ICON_asset_balance"].icon_id
|
||||
if cTB.is_paused_subscription() and credits <= 0:
|
||||
balance_icon = cTB.ui_icons["ICON_subscription_paused"].icon_id
|
||||
|
||||
op_credits = row.operator(
|
||||
"poliigon.poliigon_setting",
|
||||
text=str(credits),
|
||||
icon_value=balance_icon # TODO: use new asset icon
|
||||
)
|
||||
op_credits.tooltip = _t(
|
||||
"Your asset balance shows how many assets you can\n"
|
||||
"purchase. Free assets and downloading assets you\n"
|
||||
"already own doesn’t affect your balance")
|
||||
op_credits.mode = "show_user"
|
||||
|
||||
|
||||
def _add_asset_tab(cTB,
|
||||
row: bpy.types.UILayout,
|
||||
*,
|
||||
tab: str,
|
||||
mode: str,
|
||||
icon: str = "NONE",
|
||||
icon_value: int = 0,
|
||||
tooltip: str = ""
|
||||
) -> None:
|
||||
no_user = not cTB.settings["show_user"]
|
||||
no_settings = not cTB.settings["show_settings"]
|
||||
no_user_or_settings = no_user and no_settings
|
||||
|
||||
col = row.column(align=True)
|
||||
is_tab_active = cTB.settings["area"] == tab
|
||||
op = col.operator(
|
||||
"poliigon.poliigon_setting",
|
||||
text="",
|
||||
icon=icon,
|
||||
icon_value=icon_value,
|
||||
depress=is_tab_active and no_user_or_settings,
|
||||
)
|
||||
op.mode = mode
|
||||
op.tooltip = tooltip
|
||||
|
||||
|
||||
# @timer
|
||||
def build_areas(cTB):
|
||||
cTB.logger_ui.debug("build_areas")
|
||||
cTB.initial_view_screen()
|
||||
|
||||
row = cTB.vBase.row(align=True)
|
||||
row.scale_x = 1.1
|
||||
row.scale_y = 1.1
|
||||
|
||||
_add_asset_tab(
|
||||
cTB,
|
||||
row,
|
||||
tab=KEY_TAB_ONLINE,
|
||||
mode="area_poliigon",
|
||||
icon="HOME",
|
||||
tooltip=_t("Show Poliigon Assets"))
|
||||
_add_asset_tab(
|
||||
cTB,
|
||||
row,
|
||||
tab=KEY_TAB_MY_ASSETS,
|
||||
mode="area_my_assets",
|
||||
icon_value=cTB.ui_icons["ICON_myassets"].icon_id,
|
||||
tooltip=_t("Show My Assets"))
|
||||
_add_asset_tab(
|
||||
cTB,
|
||||
row,
|
||||
tab=KEY_TAB_IMPORTED,
|
||||
mode="area_imported",
|
||||
icon="OUTLINER_OB_GROUP_INSTANCE",
|
||||
tooltip=_t("Show Imported Assets"))
|
||||
|
||||
op = row.operator(
|
||||
"poliigon.poliigon_setting",
|
||||
text="",
|
||||
icon_value=cTB.ui_icons["ICON_poliigon"].icon_id,
|
||||
depress=cTB.settings["show_user"],
|
||||
)
|
||||
op.mode = "my_account"
|
||||
op.tooltip = _t("Show Your Account Details")
|
||||
|
||||
row.separator()
|
||||
|
||||
row_prefs = row.row(align=True)
|
||||
row_prefs.alignment = "RIGHT"
|
||||
|
||||
_draw_asset_balance(cTB, row=row_prefs)
|
||||
|
||||
_ = row_prefs.operator(
|
||||
"poliigon.open_preferences",
|
||||
text="",
|
||||
icon="PREFERENCES",
|
||||
).set_focus = "all"
|
||||
|
||||
cTB.vBase.separator()
|
||||
Reference in New Issue
Block a user