def setReadonly( self, readonly ): self.editor.setReadOnly( readonly ) def initEditor( self, container ) : self.editor = VecEditorWidget( self.getDimension(), container ) # self.editor.setMinimumSize( 50, 16 ) minValue = self.getOption( 'min', -16777215.0 ) maxValue = self.getOption( 'max', 16777215.0 ) for field in self.editor.fields: field.valueChanged.connect( self.onValueChanged ) field.setRange( minValue, maxValue ) field.setSingleStep( self.getOption( 'step', 1 ) ) field.setDecimals( self.getOption( 'decimals', 4 ) ) return self.editor ##----------------------------------------------------------------## class Vec2FieldEdtior( GenericVecFieldEdtior ): def getDimension( self ): return 2 registerSimpleFieldEditorFactory( 'vec2', Vec2FieldEdtior ) ##----------------------------------------------------------------## class Vec3FieldEdtior( GenericVecFieldEdtior ): def getDimension( self ): return 3 registerSimpleFieldEditorFactory( 'vec3', Vec3FieldEdtior )
def onChange( self, color ): self.setColor( color ) def onChanged( self, color ): self.setColor( color ) self.setFocus() ##----------------------------------------------------------------## class ColorFieldEditor( FieldEditor ): def get( self ): return unpackQColor( self.colorBlock.getColor() ) def set( self, value ): self.colorBlock.setColor( QColorF( *value ) ) def onColorChanged( self, state ): return self.notifyChanged( self.get() ) def initEditor( self, container ): self.colorBlock = ColorBlock( container ) self.colorBlock.colorChanged.connect( self.onColorChanged ) if self.getOption( 'readonly', False ): self.colorBlock.setEnabled( False ) return self.colorBlock ##----------------------------------------------------------------## registerSimpleFieldEditorFactory( 'color', ColorFieldEditor )
self.set(v + delta * self.step) ##----------------------------------------------------------------## class BoolFieldEditor(FieldEditor): def get(self): return self.checkBox.isChecked() def set(self, value): self.checkBox.setChecked(bool(value)) def setReadonly(self, readonly): self.checkBox.setEnabled(not readonly) def onStateChanged(self, state): return self.notifyChanged(bool(self.get())) def initEditor(self, container): self.checkBox = QtGui.QCheckBox(container) self.checkBox.stateChanged.connect(self.onStateChanged) return self.checkBox ##----------------------------------------------------------------## registerSimpleFieldEditorFactory(str, StringFieldEditor) registerSimpleFieldEditorFactory(unicode, StringFieldEditor) registerSimpleFieldEditorFactory(int, NumberFieldEditor) registerSimpleFieldEditorFactory(float, NumberFieldEditor) registerSimpleFieldEditorFactory(bool, BoolFieldEditor)
button = self.getRefButton() if asset: button.setProperty( 'dragover', 'ok' ) else: button.setProperty( 'dragover', 'bad' ) repolishWidget( button ) ev.acceptProposedAction() def dropEvent( self, ev ): button = self.getRefButton() button.setProperty( 'dragover', False ) repolishWidget( button ) mime = ev.mimeData() asset = self.findMatchedAssetFromMime( mime ) if not asset: return False self.setValue( asset ) ev.acceptProposedAction() def dragLeaveEvent( self, ev ): button = self.getRefButton() button.setProperty( 'dragover', False ) repolishWidget( button ) def isDropAllowed( self ): return True ##----------------------------------------------------------------## registerSimpleFieldEditorFactory( AssetRefType, AssetRefFieldEditor )
QtGui.QSizePolicy.Expanding ) self.button.setText( '[]' ) if self.getOption( 'readonly', False ): self.button.setEnabled( False ) self.button.clicked.connect( self.openSearchView ) return self.button def openSearchView( self ): requestSearchView( context = 'scene', type = self.targetType, multiple_selection = True, on_selection = self.onSearchSelection, on_cancel = self.onSearchCancel, initial = self.value ) def onSearchSelection( self, value ): self.setValue( value ) self.setFocus() def onSearchCancel( self ): self.setFocus() def setFocus( self ): self.button.setFocus() registerSimpleFieldEditorFactory( CollectionType, CollectionFieldEditor )
self.button.setText('[]') if self.getOption('readonly', False): self.button.setEnabled(False) self.button.clicked.connect(self.openArrayView) return self.button def openArrayView(self): requestArrayView( context='scene', type=self.targetType, on_save=self.onSave, initial=self.value, ) def onSave(self, value): formatted = [] frm = luaTypeToPyType(self.targetType) for v in value: data = frm(v) formatted.append(data) self.setValue(formatted) self.setFocus() def setFocus(self): self.button.setFocus() ##----------------------------------------------------------------## registerSimpleFieldEditorFactory(ArrayType, ArrayFieldEditor)
##----------------------------------------------------------------## class BoolFieldEditor( FieldEditor ): def get( self ): return self.checkBox.isChecked() def set( self, value ): self.checkBox.setChecked( bool(value) ) def setReadonly( self, readonly ): self.checkBox.setEnabled( not readonly ) def onStateChanged( self, state ): return self.notifyChanged( bool( self.get() ) ) def initEditor( self, container ): self.checkBox = QtGui.QCheckBox( container ) self.checkBox.stateChanged.connect( self.onStateChanged ) return self.checkBox ##----------------------------------------------------------------## registerSimpleFieldEditorFactory( str, StringFieldEditor ) registerSimpleFieldEditorFactory( unicode, StringFieldEditor ) registerSimpleFieldEditorFactory( int, NumberFieldEditor ) registerSimpleFieldEditorFactory( float, NumberFieldEditor ) registerSimpleFieldEditorFactory( bool, BoolFieldEditor )
from gii.core import * from gii.core.model import * from PropertyEditor import FieldEditor, registerSimpleFieldEditorFactory from SearchFieldEditor import SearchFieldEditorBase ##----------------------------------------------------------------## class ReferenceFieldEditor( SearchFieldEditorBase ): def getSearchContext( self ): return "scene" def gotoObject( self ): signals.emit( 'selection.hint', self.target ) ##----------------------------------------------------------------## registerSimpleFieldEditorFactory( ReferenceType, ReferenceFieldEditor )
button = self.getRefButton() if asset: button.setProperty('dragover', 'ok') else: button.setProperty('dragover', 'bad') repolishWidget(button) ev.acceptProposedAction() def dropEvent(self, ev): button = self.getRefButton() button.setProperty('dragover', False) repolishWidget(button) mime = ev.mimeData() asset = self.findMatchedAssetFromMime(mime) if not asset: return False self.setValue(asset) ev.acceptProposedAction() def dragLeaveEvent(self, ev): button = self.getRefButton() button.setProperty('dragover', False) repolishWidget(button) def isDropAllowed(self): return True ##----------------------------------------------------------------## registerSimpleFieldEditorFactory(AssetRefType, AssetRefFieldEditor)
QtGui.QSizePolicy.Expanding) self.button.setText('[]') if self.getOption('readonly', False): self.button.setEnabled(False) self.button.clicked.connect(self.openSearchView) return self.button def openSearchView(self): print("openSearchView", self.targetType, self.value) requestSearchView(context='scene', type=self.targetType, multiple_selection=True, on_selection=self.onSearchSelection, on_cancel=self.onSearchCancel, initial=self.value) def onSearchSelection(self, value): self.setValue(value) self.setFocus() def onSearchCancel(self): self.setFocus() def setFocus(self): self.button.setFocus() ##----------------------------------------------------------------## registerSimpleFieldEditorFactory(CollectionType, CollectionFieldEditor)
def onChange(self, color): self.setColor(color) def onChanged(self, color): self.setColor(color) self.setFocus() ##----------------------------------------------------------------## class ColorFieldEditor(FieldEditor): def get(self): return unpackQColor(self.colorBlock.getColor()) def set(self, value): self.colorBlock.setColor(QColorF(*value)) def onColorChanged(self, state): return self.notifyChanged(self.get()) def initEditor(self, container): self.colorBlock = ColorBlock(container) self.colorBlock.colorChanged.connect(self.onColorChanged) if self.getOption('readonly', False): self.colorBlock.setEnabled(False) return self.colorBlock ##----------------------------------------------------------------## registerSimpleFieldEditorFactory('color', ColorFieldEditor)
def initLabel(self, label, container): self.label = label self.labelWidget = QtGui.QLabel(container) self.labelWidget.setText('') self.labelWidget.setMinimumSize(50, 16) self.labelWidget.setSizePolicy(QtGui.QSizePolicy.Expanding, QtGui.QSizePolicy.Expanding) return self.labelWidget def initEditor(self, container): self.button = ActionFieldButton(container) self.button.setSizePolicy(QtGui.QSizePolicy.Expanding, QtGui.QSizePolicy.Expanding) self.button.setToolButtonStyle(Qt.ToolButtonTextBesideIcon) self.button.setText(self.label) icon = self.getOption('icon', 'play') self.button.setIcon(getIcon(icon)) self.button.clicked.connect(self.doAction) return self.button def doAction(self): self.notifyChanged(True) self.notifyObjectChanged() def setFocus(self): self.button.setFocus() registerSimpleFieldEditorFactory(ActionType, ActionFieldEditor)
self.labelWidget.setText( '' ) self.labelWidget.setMinimumSize( 50, 16 ) self.labelWidget.setSizePolicy( QtGui.QSizePolicy.Expanding, QtGui.QSizePolicy.Expanding ) return self.labelWidget def initEditor( self, container ): self.button = ActionFieldButton( container ) self.button.setSizePolicy( QtGui.QSizePolicy.Expanding, QtGui.QSizePolicy.Expanding ) self.button.setToolButtonStyle( Qt.ToolButtonTextBesideIcon ) self.button.setText( self.label ) icon = self.getOption( 'icon', 'play' ) self.button.setIcon( getIcon(icon) ) self.button.clicked.connect( self.doAction ) return self.button def doAction( self ): self.notifyChanged( True ) self.notifyObjectChanged() def setFocus( self ): self.button.setFocus() registerSimpleFieldEditorFactory( ActionType, ActionFieldEditor )
) self.button.setText( '[]' ) if self.getOption( 'readonly', False ): self.button.setEnabled( False ) self.button.clicked.connect( self.openArrayView ) return self.button def openArrayView( self ): requestArrayView( context = 'scene', type = self.targetType, on_save = self.onSave, initial = self.value, ) def onSave( self, value ): formatted = [] frm = luaTypeToPyType(self.targetType) for v in value: data = frm(v) formatted.append(data) self.setValue( formatted ) self.setFocus() def setFocus( self ): self.button.setFocus() ##----------------------------------------------------------------## registerSimpleFieldEditorFactory( ArrayType, ArrayFieldEditor )
type = None, multiple_selection = False, on_selection = self.onSearchSelection, on_cancel = self.onSearchCancel, on_search = self.onSearch, initial = self.value ) def onSearchSelection( self, value ): self.setValue( value ) self.setFocus() def onSearchCancel( self ): self.setFocus() def onSearch( self, typeId, context, option ): entries = [] for item in self.getEnumItems(): itemName, itemValue = item entry = ( itemValue, itemName, '', None ) entries.append( entry ) return entries def setFocus( self ): self.button.setFocus() def setReadonly( self, readonly ): self.button.setEnabled( not readonly ) registerSimpleFieldEditorFactory( EnumType, EnumFieldEditor )