Upload files to 'studio'
This commit is contained in:
parent
c4b23f24c3
commit
185e3c177d
9 changed files with 1276 additions and 52 deletions
|
@ -451,7 +451,7 @@ def draw(outlayer, win, path, back="story_editor"):
|
|||
# Sub-Task 2
|
||||
|
||||
# We get:
|
||||
# ["Task", "Sub-Task", "Sub-Task 2"]
|
||||
# [" Task", " Sub-Task", " Sub-Task 2"]
|
||||
|
||||
schedulepath = schedulep.copy()
|
||||
schedulepath.append(" "+task["string"])
|
||||
|
@ -527,7 +527,7 @@ def draw(outlayer, win, path, back="story_editor"):
|
|||
# So here we set up the grab tool and creating a little variable.
|
||||
# This variable (moving_task_now) will consist of 2 parts on release.
|
||||
|
||||
# 1. The entire task ( will subtasks ) using pop. Which is not simply
|
||||
# 1. The entire task ( with subtasks ) using pop. Which is not simply
|
||||
# a copy. But also removing the task from the checklist's list.
|
||||
|
||||
# 2. The current frame of poping. So to offset insertion for 1 frame.
|
||||
|
|
|
@ -84,6 +84,7 @@ def record(win, filename, task, checklist=[] ):
|
|||
t = "scenes"
|
||||
item = filename.replace("/rnd", "")
|
||||
filename = filename[filename.rfind("/"):]
|
||||
item = item[:item.rfind(filename)]
|
||||
|
||||
elif filename.startswith("/ast") or filename.startswith("/dev"):
|
||||
t = "assets"
|
||||
|
@ -263,8 +264,21 @@ def draw(outlayer, win):
|
|||
# This is our individual items. I want to create a folder
|
||||
# with USERS inside it. So you could see who done what.
|
||||
|
||||
if win.cur and win.cur != item:
|
||||
continue
|
||||
|
||||
|
||||
if win.cur.count("/") > 1:
|
||||
tmp = win.cur.replace("/","",1).split("/")
|
||||
acur, name = tmp[0], tmp[1]
|
||||
else:
|
||||
name = win.cur[win.cur.rfind("/")+1:]
|
||||
acur = ""
|
||||
|
||||
if win.cur not in item and win.cur:
|
||||
continue
|
||||
|
||||
|
||||
name = item[item.rfind("/")+1:]
|
||||
acur = item.replace(name, "").replace("/", "")
|
||||
|
||||
found = {}
|
||||
|
||||
|
@ -287,14 +301,12 @@ def draw(outlayer, win):
|
|||
50,
|
||||
10)
|
||||
|
||||
name = item[item.rfind("/")+1:]
|
||||
acur = item.replace(name, "").replace("/", "")
|
||||
|
||||
|
||||
# ICON
|
||||
if i == "scenes" and not win.cur:
|
||||
UI_elements.image(layer, win,
|
||||
"settings/themes/"+win.settings["Theme"]+"/icons/vse.png",
|
||||
"settings/themes/"+win.settings["Theme"]+"/icons/scene.png",
|
||||
5, win.scroll["history"] + current_Y+5, 40, 40)
|
||||
elif i == "assets" and not win.cur:
|
||||
|
||||
|
|
|
@ -84,7 +84,7 @@ def filter(project, dates):
|
|||
path = project+"/dev"+url+path
|
||||
|
||||
|
||||
elif os.path.exists(project+"rnd/"+url+path):
|
||||
elif os.path.exists(project+"/rnd"+url+path):
|
||||
path = project+"/rnd"+url+path
|
||||
|
||||
elif os.path.exists(project+"/set/"+path):
|
||||
|
@ -274,7 +274,7 @@ def draw(outlayer, win):
|
|||
continue
|
||||
|
||||
for item in schedules[date]:
|
||||
if win.cur == item or not win.cur:
|
||||
if win.cur in item or not win.cur:
|
||||
|
||||
slist.append([date, item, schedules[date][item]])
|
||||
|
||||
|
@ -299,6 +299,15 @@ def draw(outlayer, win):
|
|||
# Parsing the cur to get name and type
|
||||
name = entry[1][entry[1].rfind("/")+1:]
|
||||
acur = entry[1].replace(name, "").replace("/", "")
|
||||
|
||||
if entry[1].count("/") > 1:
|
||||
tmp = entry[1].replace("/","",1).split("/")
|
||||
acur, name = tmp[0], tmp[1]
|
||||
else:
|
||||
name = entry[1][entry[1].rfind("/")+1:]
|
||||
acur = ""
|
||||
|
||||
|
||||
fullurl = ""
|
||||
for e in thing[0][4][:-1]:
|
||||
fullurl = fullurl+e+" > "
|
||||
|
@ -396,6 +405,8 @@ def draw(outlayer, win):
|
|||
dev = ""
|
||||
if itemtype == "assets":
|
||||
dev = "/dev"
|
||||
if itemtype == "scenes":
|
||||
dev = "/rnd"
|
||||
|
||||
win.current["tool"] = "schedule"
|
||||
win.current["grab_data"] = [dev+entry[1]+thing[0][2], win.url, entry[1], pop[4], pop[-1]]
|
||||
|
@ -552,7 +563,7 @@ def draw(outlayer, win):
|
|||
else:
|
||||
# ICON
|
||||
UI_elements.image(layer, win,
|
||||
"settings/themes/"+win.settings["Theme"]+"/icons/vse.png",
|
||||
"settings/themes/"+win.settings["Theme"]+"/icons/scene.png",
|
||||
25, win.scroll["schedule"] + current_Y+5, 40, 40)
|
||||
|
||||
goto = "script"
|
||||
|
|
|
@ -182,7 +182,7 @@ def layer(win):
|
|||
|
||||
# Icon
|
||||
UI_elements.image(layer, win, "settings/themes/"\
|
||||
+win.settings["Theme"]+"/icons/vse.png",
|
||||
+win.settings["Theme"]+"/icons/scene.png",
|
||||
win.current["w"]/4+10,
|
||||
95,
|
||||
40,
|
||||
|
@ -387,7 +387,7 @@ def layer(win):
|
|||
win.current["analytics_middle_graph_switch"] = {
|
||||
"project":[True,"analytics", "progress_active"],
|
||||
"checklist":[True,"checklist", "darker_parts"],
|
||||
"rnd":[True,"vse", "node_videofile"],
|
||||
"rnd":[True,"scene", "node_videofile"],
|
||||
"chr":[True,"chr", "node_asset"],
|
||||
"veh":[True,"veh", "node_imagefile"], # Name in data : [ Active, Icon name, color ]
|
||||
"loc":[True,"loc", "node_blendfile"],
|
||||
|
@ -792,7 +792,7 @@ def layer(win):
|
|||
|
||||
if cur not in win.analytics["dates"][theday][itemtype]:
|
||||
win.analytics["dates"][theday][itemtype][cur] = []
|
||||
|
||||
#print("test 1")
|
||||
win.analytics["dates"][theday][itemtype][cur].append(
|
||||
["00:00:00",
|
||||
"schedule",
|
||||
|
@ -801,7 +801,7 @@ def layer(win):
|
|||
schedulepath,
|
||||
username]
|
||||
)
|
||||
|
||||
#print("test 2")
|
||||
# RETURNING BACK TO NORMAL
|
||||
|
||||
win.url = back
|
||||
|
@ -809,6 +809,7 @@ def layer(win):
|
|||
analytics.save(win.project, win.analytics)
|
||||
win.analytics = analytics.load(win.project)
|
||||
win.checklists = {}
|
||||
#print("test 3")
|
||||
|
||||
else:
|
||||
win.current["date"] = theday
|
||||
|
@ -832,11 +833,14 @@ def layer(win):
|
|||
sch = []
|
||||
if theday in win.analytics["dates"]:
|
||||
date = win.analytics["dates"][theday]
|
||||
|
||||
print(date)
|
||||
for i in ["files", "assets", "scenes"]:
|
||||
if i in date:
|
||||
for item in date[i]:
|
||||
for stuff in date[i][item]:
|
||||
if stuff[1] == "schedule":
|
||||
|
||||
if not win.current["schedule_analytics_settings"]["multiuser"]:
|
||||
if win.settings["Username"] != stuff[-1]:
|
||||
continue
|
||||
|
@ -933,6 +937,8 @@ def layer(win):
|
|||
|
||||
path, back, cur, schedulepath, username = win.current["grab_data"].copy()
|
||||
|
||||
|
||||
|
||||
checklist.draw(layer, win, path, back)
|
||||
|
||||
UI_color.set(layer, win, "node_background")
|
||||
|
|
|
@ -725,14 +725,14 @@ def layer(win):
|
|||
# the legacy organizer. But who are we deceiving? This is way cooler then
|
||||
# the legacy organizer.
|
||||
|
||||
leftpanellist = ["vse", "schedule", "history"] # Using the names of the icons.
|
||||
leftpanellist = ["scene", "schedule", "history"] # Using the names of the icons.
|
||||
|
||||
# We need to choose the correct category based smartly on the project's
|
||||
# current progress. Or at least on the current progress of this asset.
|
||||
|
||||
if "asset_left_panel" not in win.current:
|
||||
if fraction == 1.0: # If the asset is done
|
||||
win.current["asset_left_panel"] = "vse" # Then list scenes
|
||||
win.current["asset_left_panel"] = "scene" # Then list scenes
|
||||
else: # Other
|
||||
win.current["asset_left_panel"] = "schedule" # List schedules
|
||||
|
||||
|
@ -803,7 +803,7 @@ def layer(win):
|
|||
if 65307 in win.current["keys"] and not win.textactive:
|
||||
do()
|
||||
|
||||
if win.current["asset_left_panel"] == "vse":
|
||||
if win.current["asset_left_panel"] == "scene":
|
||||
|
||||
# Here I want to parse the story data in pusuit of all the scenes that
|
||||
# have the asset. I think I'm going to make it per shot based. Like
|
||||
|
@ -841,15 +841,18 @@ def layer(win):
|
|||
|
||||
foundinscene = []
|
||||
|
||||
for block in shots:
|
||||
for num, block in enumerate(shots):
|
||||
|
||||
si = 1
|
||||
if block == "shot_block":
|
||||
if block[0] == "shot_block":
|
||||
si = 2
|
||||
|
||||
found = []
|
||||
|
||||
for n, stuff in enumerate(block[si]):
|
||||
|
||||
# DIRECT LINK
|
||||
#print(block, si)
|
||||
if stuff[0] == "link" and stuff[1] == win.cur:
|
||||
|
||||
start = ""
|
||||
|
@ -866,10 +869,29 @@ def layer(win):
|
|||
|
||||
found = [start, part, end]
|
||||
if si == 2:
|
||||
foundinscene.append([block[1],found])
|
||||
foundinscene.append([block[1],found,num,n])
|
||||
else:
|
||||
foundinscene.append(["",found])
|
||||
|
||||
foundinscene.append(["",found,num,n])
|
||||
|
||||
# FRASE LINK
|
||||
|
||||
if stuff[0] == "frase" and stuff[1][0] == "link" and stuff[1][1] == win.cur:
|
||||
|
||||
start = ""
|
||||
part = stuff[1][-1]
|
||||
end = ""
|
||||
|
||||
|
||||
if n < len(block[si])-1:
|
||||
end = " : "+stuff[-1]
|
||||
|
||||
|
||||
found = [start, part, end]
|
||||
if si == 2:
|
||||
foundinscene.append([block[1],found,num ,n])
|
||||
else:
|
||||
foundinscene.append(["",found,num ,n])
|
||||
|
||||
if foundinscene:
|
||||
|
||||
UI_color.set(layer, win, "node_background")
|
||||
|
@ -882,7 +904,7 @@ def layer(win):
|
|||
|
||||
# ICON
|
||||
UI_elements.image(layer, win,
|
||||
"settings/themes/"+win.settings["Theme"]+"/icons/vse.png",
|
||||
"settings/themes/"+win.settings["Theme"]+"/icons/scene.png",
|
||||
20, y+win.scroll["asset_scenes"] + current_Y_scenes+5, 40, 40)
|
||||
|
||||
# SELECTION
|
||||
|
@ -949,7 +971,7 @@ def layer(win):
|
|||
# If it's a shot let's mark in the different color.
|
||||
|
||||
if block[0]:
|
||||
UI_color.set(layer, win, "node_background")
|
||||
UI_color.set(layer, win, "node_badfile")
|
||||
else:
|
||||
UI_color.set(layer, win, "dark_overdrop")
|
||||
UI_elements.roundrect(layer, win,
|
||||
|
@ -959,6 +981,25 @@ def layer(win):
|
|||
30,
|
||||
10)
|
||||
|
||||
# GET TO THE SCENE BUTTON
|
||||
def do():
|
||||
win.current["script_find"] = [block[2],block[3]]
|
||||
|
||||
win.url = "script"
|
||||
print(scene)
|
||||
win.cur = "/"+scene+"/"+block[0]
|
||||
print(win.cur)
|
||||
|
||||
UI_elements.roundrect(layer, win,
|
||||
x,
|
||||
y+win.scroll["asset_scenes"]+current_Y_scenes,
|
||||
width,
|
||||
30,
|
||||
10,
|
||||
button=do,
|
||||
fill=False)
|
||||
layer.stroke()
|
||||
|
||||
start = block[1][0]
|
||||
name = block[1][1]
|
||||
end = block[1][2]
|
||||
|
@ -978,19 +1019,28 @@ def layer(win):
|
|||
sp = np - len(start)*12
|
||||
|
||||
# BEFORE NAME
|
||||
UI_color.set(layer, win, "button_active")
|
||||
UI_color.set(layer, win, "text_normal")
|
||||
layer.set_font_size(20)
|
||||
layer.move_to( sp, y+win.scroll["asset_scenes"] + current_Y_scenes+20)
|
||||
layer.show_text(start)
|
||||
|
||||
|
||||
# NAME AS MENTIONED IN THE SCRIPT
|
||||
UI_color.set(layer, win, "node_asset")
|
||||
UI_elements.roundrect(layer, win,
|
||||
np-6,
|
||||
y+win.scroll["asset_scenes"]+current_Y_scenes+2,
|
||||
len(name)*12+12,
|
||||
26,
|
||||
10)
|
||||
|
||||
UI_color.set(layer, win, "text_normal")
|
||||
layer.set_font_size(20)
|
||||
layer.move_to(np, y+win.scroll["asset_scenes"] + current_Y_scenes+20)
|
||||
layer.show_text(name)
|
||||
|
||||
# AFTER NAME
|
||||
UI_color.set(layer, win, "button_active")
|
||||
UI_color.set(layer, win, "text_normal")
|
||||
layer.set_font_size(20)
|
||||
layer.move_to( ep, y+win.scroll["asset_scenes"] + current_Y_scenes+20)
|
||||
layer.show_text(end)
|
||||
|
|
|
@ -16,15 +16,16 @@ import datetime
|
|||
from settings import settings
|
||||
from settings import talk
|
||||
from project_manager import pm_project
|
||||
from studio import studio_storyLayer
|
||||
from studio import studio_settingsLayer
|
||||
from studio import studio_assetLayer
|
||||
from studio import studio_analyticsLayer
|
||||
|
||||
# Studio
|
||||
from studio import analytics
|
||||
from studio import story
|
||||
from studio import studio_storyDeletionLayer
|
||||
from studio import studio_storyLayer
|
||||
from studio import studio_settingsLayer
|
||||
from studio import studio_assetLayer
|
||||
from studio import studio_analyticsLayer
|
||||
from studio import studio_scriptLayer
|
||||
|
||||
# UI modules
|
||||
from UI import UI_testing
|
||||
|
@ -120,6 +121,10 @@ def run(project, win):
|
|||
win.current["tool"] = "selection"
|
||||
win.current["draw_dot"] = "end"
|
||||
win.current["calls"] = {} # Calls. See sutdio/studio_dialogs.py
|
||||
win.current["script_find"] = [0,0]
|
||||
|
||||
if "pointers" not in win.story:
|
||||
win.story["pointers"] = {} # List of text pointers per scene
|
||||
|
||||
new_date_format = "%Y/%m/%d"
|
||||
today = datetime.datetime.strftime(datetime.datetime.today(), new_date_format)
|
||||
|
@ -254,7 +259,8 @@ def pmdrawing(pmdrawing, main_layer, win):
|
|||
elif win.url == "assets":
|
||||
Layers.append([studio_assetLayer.layer(win),"assets"])
|
||||
|
||||
|
||||
elif win.url == "script":
|
||||
Layers.append([studio_scriptLayer.layer(win), "script"])
|
||||
|
||||
# Call layers. See studio/studio_dialogs.py for explanation. It's wild.
|
||||
|
||||
|
|
|
@ -365,7 +365,9 @@ def scene_node(outlayer, win, x, y, width, height, name="Unknown", fraction=0.0)
|
|||
and int(win.current["mx"]) == int(win.previous["LMB"][0])\
|
||||
and int(win.current["my"]) == int(win.previous["LMB"][1]):
|
||||
|
||||
win.url = "scene"
|
||||
win.url = "script"
|
||||
win.cur = "/"+name
|
||||
win.current["tool"] = "selection"
|
||||
|
||||
if win.current["LMB"] and win.current["tool"] == "selection":
|
||||
|
||||
|
|
1136
studio/studio_scriptLayer.py
Normal file
1136
studio/studio_scriptLayer.py
Normal file
File diff suppressed because it is too large
Load diff
|
@ -319,7 +319,7 @@ def layer(win):
|
|||
40,
|
||||
10,
|
||||
do,
|
||||
"node",
|
||||
"scene_new",
|
||||
talk.text("new_scene_tooltip")+"\n[N]",
|
||||
url="story_editor")
|
||||
|
||||
|
@ -826,25 +826,26 @@ def layer(win):
|
|||
|
||||
|
||||
# SCENES
|
||||
|
||||
for scene in win.story["scenes"]:
|
||||
|
||||
# Loaction
|
||||
sx, sy = win.story["scenes"][scene]["position"]
|
||||
sx = sx + cx
|
||||
sy = sy + cy
|
||||
|
||||
|
||||
# Scale
|
||||
ssx, ssy = win.story["scenes"][scene]["size"]
|
||||
|
||||
#Fraction
|
||||
sf = win.story["scenes"][scene]["fraction"]
|
||||
|
||||
|
||||
#Draw
|
||||
studio_nodes.scene_node(layer, win, sx, sy, ssx, ssy, name=scene, fraction=sf)
|
||||
|
||||
try:
|
||||
for scene in win.story["scenes"]:
|
||||
|
||||
# Loaction
|
||||
sx, sy = win.story["scenes"][scene]["position"]
|
||||
sx = sx + cx
|
||||
sy = sy + cy
|
||||
|
||||
|
||||
# Scale
|
||||
ssx, ssy = win.story["scenes"][scene]["size"]
|
||||
|
||||
#Fraction
|
||||
sf = win.story["scenes"][scene]["fraction"]
|
||||
|
||||
|
||||
#Draw
|
||||
studio_nodes.scene_node(layer, win, sx, sy, ssx, ssy, name=scene, fraction=sf)
|
||||
except:
|
||||
pass
|
||||
|
||||
########### TIMES RECORDING FOR PERFONMANCE MEASURING #############
|
||||
fif = datetime.datetime.now()
|
||||
|
|
Loading…
Add table
Reference in a new issue