Files
2026-08-03 18:42:47 +08:00

50 lines
1.4 KiB
Python

from pymol.wizard import Wizard
from pymol import cmd
import pymol
import types
class Renaming(Wizard):
def __init__(self,old_name,mode='object',_self=cmd):
Wizard.__init__(self,_self)
self.prefix = 'Renaming \\999%s\\--- to: \\999'%old_name
self.old_name = old_name
self.new_name = old_name
self.mode = mode
def get_event_mask(self):
return Wizard.event_mask_key
def do_key(self,k,x,y,m):
if k in [8,127]:
self.new_name = self.new_name[:-1]
elif k==27:
cmd.set_wizard()
elif k==32:
self.new_name = self.new_name + "_"
elif k>32:
self.new_name= self.new_name + chr(k)
elif k==10 or k==13:
self.new_name = self.new_name.strip()
if self.mode=='object':
cmd.do("set_name %s,%s"%
(self.old_name,self.new_name),log=0)
elif self.mode=='scene':
cmd.do("scene %s,rename,new_key=%s"%
(self.old_name,self.new_name),log=0)
cmd.set_wizard()
cmd.refresh_wizard()
return 1
def get_prompt(self):
self.prompt = [ self.prefix + self.new_name + "_" ]
return self.prompt
def get_panel(self):
return [
[ 1, 'Renaming', '' ],
[ 2, 'Cancel', 'cmd.set_wizard()' ]
]