프로젝트

일반

사용자정보

개정판 67f38d89

ID67f38d8965409910ce7321c0c2ba915bf310c946
상위 b7e65997
하위 49113215

함의성이(가) 약 6년 전에 추가함

issue #581: multi line no config applied

차이점 보기:

DTI_PID/DTI_PID/ConfigurationDialog.py
71 71
        configs = docData.getConfigs('Text Size', 'Max Text Size')
72 72
        self.ui.maxTextSizeSpinBox.setValue(int(configs[0].value)) if 1 == len(configs) else self.ui.maxTextSizeSpinBox.setValue(60)
73 73

  
74
        #configs = docData.getConfigs('Size', 'Delimiter')
75
        #self.ui.lineEditSizeDelimiter.setText(configs[0].value if 1 == len(configs) else 'X')
74
        configs = docData.getConfigs('Size', 'Delimiter')
75
        self.ui.lineEditSizeDelimiter.setText(configs[0].value if 1 == len(configs) else 'X')
76 76

  
77 77
        configs = docData.getConfigs('Filter', 'MinimumSize')
78 78
        self.ui.lineEditMinimumSize.setText(configs[0].value if 1 == len(configs) else '15')
......
101 101
        
102 102
        self.load_line_properties()
103 103

  
104
        #configs = docData.getConfigs('Line No', 'Size Unit')
105
        #if 1 == len(configs):
106
        #    self.ui.radioButtonMetric.setChecked(True) if 'Metric' == configs[0].value else self.ui.radioButtonInch.setChecked(True)
107
        #else:
108
        #    self.ui.radioButtonMetric.setChecked(True)
109

  
110
        #configs = docData.getConfigs('Line No', 'Delimiter')
111
        #if 1 == len(configs):
112
        #    self.ui.lineEdit.setText(configs[0].value)
113

  
114 104
        # line no setting (line no, size unit, delimiter)
115 105
        configs = docData.getConfigs('Line No', 'Size Unit')
116 106
        if 1 == len(configs):
DTI_PID/DTI_PID/Shapes/EngineeringLineNoTextItem.py
91 91
        _attrs = {}
92 92
        try:
93 93
            docData = AppDocData.instance()
94
            lineNoconfigs = docData.getConfigs('Line No', 'Configuration')
94

  
95 95
            from TextItemFactory import TextItemFactory
96
            item = TextItemFactory.instance().isLineNo(self.text())
96

  
97
            configs = docData.getConfigs('Line No', 'Delimiter')
98
            if 1 == len(configs):
99
                lineInsideDelimiters = configs[0].value.split(self.lineNoDelimiter)
100
            configs = docData.getConfigs('Line No', 'Configuration')
101
            if len(configs) == 1 and configs[0].value is not None:
102
                lineConfigs = configs[0].value.split(self.lineNoDelimiter)
103
                for index in range(len(lineConfigs)):
104
                    item = TextItemFactory.instance().isLineNo(self.text(), lineInsideDelimiters[index], lineConfigs[index])
105
                    if item[0]:
106
                        lineNoconfigs = lineConfigs[index]
107
                        break
108
            else:
109
                item = (False,)
110

  
97 111
            # Line No 부분
98 112
            if item[0]:
99 113
                attr = SymbolAttr()
......
103 117
                _attrs[attr] = self.text()
104 118

  
105 119
                result = item[1]
106
                configs = lineNoconfigs[0].value.split(self.delimiter)
120
                configs = lineNoconfigs.split(self.delimiter)
107 121
                props = docData.getLineProperties()
108 122
                for prop in props:
109 123
                    if prop.UID in configs:
DTI_PID/DTI_PID/Shapes/EngineeringTextItem.py
46 46
        self._savedColor = None        
47 47

  
48 48
        self.delimiter = '"'
49
        self.lineNoDelimiter = '!-!'
49 50

  
50 51
        self.attribute = ''
51 52

  
DTI_PID/DTI_PID/TextItemFactory.py
29 29
    """
30 30
    def __init__(self):
31 31
        self.delimiter = '"'
32
        self.lineNoDelimiter = '!-!'
32 33

  
33 34
    '''
34 35
        @history    2018.04.27  Jeongwoo    Add condition on elif-statement (delimiter != '' and lineNoConfig != '')
......
49 50
            configs = docData.getConfigs('Size', 'Delimiter')
50 51
            sizeDelimiter = configs[0].value.upper() if 1 == len(configs) else None
51 52

  
52
            result = (False,)
53
            result = self.isLineNo(text)
53
            configs = docData.getConfigs('Line No', 'Size Unit')
54
            if 1 == len(configs):
55
                sizeUnits = configs[0].value.split(self.lineNoDelimiter)
56
            configs = docData.getConfigs('Line No', 'Delimiter')
57
            if 1 == len(configs):
58
                lineInsideDelimiters = configs[0].value.split(self.lineNoDelimiter)
59
            configs = docData.getConfigs('Line No', 'Configuration')
60
            if len(configs) == 1 and configs[0].value is not None:
61
                lineConfigs = configs[0].value.split(self.lineNoDelimiter)
62
                for index in range(len(lineConfigs)):
63
                    result = self.isLineNo(text, lineInsideDelimiters[index], lineConfigs[index])
64
                    if result[0]:
65
                        sizeUnit = sizeUnits[index]
66
                        break
67
            else:
68
                result = (False,)
54 69

  
55 70
            if result[0]:
56 71
                item = QEngineeringLineNoTextItem()
......
88 103
                        value = values[index]
89 104
                        line_properties = docData.getLinePropertiesByUID(color_property)
90 105
                        if line_properties[0].Attribute.replace(' ','') == 'NominalDiameter':
91
                            configs = docData.getConfigs('Line No', 'Size Unit')
92
                            if configs and configs[0].value == "Inch":
106
                            if sizeUnit == "Inch":
93 107
                                value = docData.convertInchToMetric(value)
94 108

  
95 109
                        configs = docData.getConfigs(color_property, value)
......
131 145
                 kyouho 2018.07.04 edit logic
132 146
                 2018.11.15 add allowable
133 147
    '''
134
    def isLineNo(self, text):
148
    def isLineNo(self, text, delimiter, configs):
135 149
        try:
136 150
            docData = AppDocData.instance()
137
            # delimiter
138
            configs = docData.getConfigs('Line No', 'Delimiter')
139
            delimiter = configs[0].value if 1 == len(configs) else '-'
140
            # line config
141
            configs = docData.getConfigs('Line No', 'Configuration')
142
            if configs and configs[0].value:
143
                lineNoConfig = configs[0].value.split(self.delimiter)
151
            
152
            if True:
153
                lineNoConfig = configs.split(self.delimiter)
144 154

  
145 155
                res = []
146 156

  
......
148 158
                    return (False,)
149 159
            
150 160
                tokens = text.split(delimiter)
151
                patternText = configs[0].value.replace(self.delimiter, '').split(self.delimiter)
161
                patternText = configs.replace(self.delimiter, '').split(self.delimiter)
152 162
                #Line Number에 Delimiter가 있을 수 있음
153
                if configs[0].value != 'None' and len(tokens) >= len(patternText):
163
                if configs != 'None' and len(tokens) >= len(patternText):
154 164
                    loopText = text.replace(' ','')
155 165
                    
156 166
                    for propertyName in lineNoConfig:

내보내기 Unified diff