Add select operator (for panel activve element)
This commit is contained in:
parent
017f15bf98
commit
ea2c0fa883
@ -2,7 +2,7 @@ from .. import __package__ as base_package
|
|||||||
import bpy
|
import bpy
|
||||||
from bpy.types import Operator
|
from bpy.types import Operator
|
||||||
from bpy.props import StringProperty, BoolProperty, IntProperty
|
from bpy.props import StringProperty, BoolProperty, IntProperty
|
||||||
from .funcs import select_all, get_scene_workspaces, set_scene_workspaces, get_use_topbar, has_data, prefs, tag_redraw_topbar
|
from .funcs import select_all, set_active, get_scene_workspaces, set_scene_workspaces, get_use_topbar, has_data, prefs, tag_redraw_topbar
|
||||||
|
|
||||||
|
|
||||||
class SW_OT_switch(Operator):
|
class SW_OT_switch(Operator):
|
||||||
@ -32,6 +32,16 @@ class SW_OT_workspace(Operator):
|
|||||||
set_scene_workspaces(l)
|
set_scene_workspaces(l)
|
||||||
return {'FINISHED'}
|
return {'FINISHED'}
|
||||||
|
|
||||||
|
class SW_OT_select(Operator):
|
||||||
|
bl_idname = "sw.select"
|
||||||
|
bl_label = "Workspace"
|
||||||
|
bl_description = "Select this workspace to reorder, rename or unlink"
|
||||||
|
|
||||||
|
workspace: StringProperty(name="workspace")
|
||||||
|
|
||||||
|
def execute(self, context):
|
||||||
|
set_active(get_scene_workspaces().index(self.workspace))
|
||||||
|
return {'FINISHED'}
|
||||||
|
|
||||||
class SW_OT_link_all(Operator):
|
class SW_OT_link_all(Operator):
|
||||||
bl_idname = "sw.link_all"
|
bl_idname = "sw.link_all"
|
||||||
@ -64,11 +74,14 @@ class SW_OT_move(Operator):
|
|||||||
if self.valid(context):
|
if self.valid(context):
|
||||||
try:
|
try:
|
||||||
i = self.index if self.index != -1 else l.index(bpy.context.window.workspace.name)
|
i = self.index if self.index != -1 else l.index(bpy.context.window.workspace.name)
|
||||||
|
new_i = 0 if self.top else len(l)-1
|
||||||
if self.up == 0:
|
if self.up == 0:
|
||||||
l.insert(0 if self.top else len(l)-1, l.pop(i))
|
l.insert(new_i, l.pop(i))
|
||||||
else:
|
else:
|
||||||
l.insert(i-self.up, l.pop(i))
|
new_i = i-self.up
|
||||||
|
l.insert(new_i, l.pop(i))
|
||||||
|
|
||||||
|
set_active(new_i)
|
||||||
set_scene_workspaces(l)
|
set_scene_workspaces(l)
|
||||||
self.up = 0
|
self.up = 0
|
||||||
self.top = False
|
self.top = False
|
||||||
@ -150,6 +163,7 @@ class SW_OT_remove(Operator):
|
|||||||
l = get_scene_workspaces()
|
l = get_scene_workspaces()
|
||||||
l.pop(self.index)
|
l.pop(self.index)
|
||||||
set_scene_workspaces(l)
|
set_scene_workspaces(l)
|
||||||
|
set_active(max(0, self.index-1))
|
||||||
return {'FINISHED'}
|
return {'FINISHED'}
|
||||||
|
|
||||||
|
|
||||||
@ -178,10 +192,13 @@ class SW_OT_link_workspace(Operator):
|
|||||||
|
|
||||||
def execute(self, context):
|
def execute(self, context):
|
||||||
if not has_data():
|
if not has_data():
|
||||||
|
set_active()
|
||||||
set_scene_workspaces([])
|
set_scene_workspaces([])
|
||||||
if self.workspace in get_scene_workspaces():
|
if self.workspace in get_scene_workspaces():
|
||||||
set_scene_workspaces(
|
set_scene_workspaces(
|
||||||
[x for x in get_scene_workspaces() if x != self.workspace])
|
[x for x in get_scene_workspaces() if x != self.workspace])
|
||||||
|
set_active(len(get_scene_workspaces()) - 1)
|
||||||
else:
|
else:
|
||||||
set_scene_workspaces([*get_scene_workspaces(), self.workspace])
|
set_scene_workspaces([*get_scene_workspaces(), self.workspace])
|
||||||
|
set_active(len(get_scene_workspaces()) - 1)
|
||||||
return {'FINISHED'}
|
return {'FINISHED'}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user