50 lines
1.4 KiB
Python
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()' ]
|
|
]
|