NovaBryan/EVE_Dump
Log | Files | 📦 下载最新源码 (.zip) | Refs | README

singleLineEditInteger.py (2391B)


      1 #Embedded file name: C:\BuildAgent\work\20d73f1b24eed06e\eve\release\V24.01\packages\carbonui\control\singlelineedits\singleLineEditInteger.py
      2 import numbers
      3 from carbon.common.script.util.commonutils import StripTags
      4 from carbonui import uiconst
      5 from carbonui.control.singlelineedits.baseSingleLineEditNumber import BaseSingleLineEditNumbers
      6 from carbonui.uicore import uicore
      7 from eve.common.lib import appConst
      8 from qtyTooltip.qtyConst import EDIT_INPUT_TYPE_INT
      9 from qtyTooltip.tooltip import LoadTooltipForNumber
     10 
     11 class SingleLineEditInteger(BaseSingleLineEditNumbers):
     12     default_name = 'SingleLineEditInteger'
     13     default_minValue = 0
     14     default_maxValue = appConst.maxInt
     15     default_legalCharacters = '-0123456789'
     16     default_dataType = int
     17 
     18     def SetText(self, text, format = True):
     19         if isinstance(text, numbers.Integral):
     20             text = u'{0:d}'.format(text)
     21         elif not isinstance(text, basestring):
     22             text = repr(self.dataType(text))
     23         if text.lower() == 'l':
     24             text = ''
     25         text = StripTags(text, stripOnly=['localized'])
     26         displayText = text
     27         if format:
     28             displayText = self.FormatNumeric(text)
     29             text = self.StripLeadingZeroesIfNecessary(text)
     30         displayText = self.SanitizeText(displayText)
     31         self.textLabel.SetText(displayText)
     32         self.text = text
     33 
     34     def LoadTooltipPanel(self, tooltipPanel, *args):
     35         if not self.text or self.text == '-':
     36             return
     37         return LoadTooltipForNumber(tooltipPanel, self.hint, self.dataType(self.text), EDIT_INPUT_TYPE_INT)
     38 
     39     def ChangeNumericValue(self, val):
     40         if uicore.uilib.Key(uiconst.VK_CONTROL):
     41             val *= 10
     42         if val > 0:
     43             val = max(1, self.dataType(val))
     44         else:
     45             val = min(-1, self.dataType(val))
     46         super(SingleLineEditInteger, self).ChangeNumericValue(val)
     47 
     48     def Paste(self, paste, deleteStart = None, deleteEnd = None, forceFocus = False):
     49         if '.' in paste:
     50             paste = self.dataType(round(float(paste.replace(self.GetLocalizedThousandSeparator(), ''))))
     51         super(SingleLineEditInteger, self).Paste(str(paste), deleteStart, deleteEnd, forceFocus)
     52 
     53     def SetMaxValue(self, newMaxValue):
     54         if type(newMaxValue) == long:
     55             self.dataType = long
     56         super(SingleLineEditInteger, self).SetMaxValue(newMaxValue)