コード例 #1
0
	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 )
コード例 #2
0
	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 )
コード例 #3
0
        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)
コード例 #4
0
		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 )

コード例 #5
0
ファイル: CollectionFieldEditor.py プロジェクト: pixpil/gii
			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 )

コード例 #6
0
        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)
コード例 #7
0
ファイル: CommonFieldEditors.py プロジェクト: tommo/gii

##----------------------------------------------------------------##
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 )

コード例 #8
0
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 )
コード例 #9
0
        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)
コード例 #10
0
                                  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)
コード例 #11
0
    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)
コード例 #12
0
    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)
コード例 #13
0
ファイル: ActionFieldEditor.py プロジェクト: pixpil/gii
		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 )

コード例 #14
0
			)
		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 )
コード例 #15
0
			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 )