프로젝트

일반

사용자정보

개정판 ff096d3a

IDff096d3a212cd458e1663a874c0a14e0891bcf05
상위 eed69765
하위 a2679d60, 0237f79c

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

issue #503: testing

Change-Id: Ib3eee53031c0556e2f9d7309563fb26e5410351f

차이점 보기:

DTI_PID/DTI_PID/AppDocData.py
2708 2708
            sql = "delete from Components where Drawings_UID = (select UID from Drawings where Name= '{}')".format(pidNo)
2709 2709
            cursor.execute(sql)
2710 2710

  
2711
            # delete Vendor Package
2712
            sql = "delete from VendorPackages where Drawings_UID = '{}'".format(pidNo)
2713
            cursor.execute(sql)
2714

  
2711 2715
            for item in items:
2712 2716
                sql = item.toSql()
2713 2717
                if type(sql) is list:
DTI_PID/DTI_PID/ItemPropertyTableWidget.py
115 115
        self.setRowCount(13)
116 116
        self.verticalHeader().hide()
117 117
        self.horizontalHeader().setStretchLastSection(True)
118
        self.setEditTriggers(QAbstractItemView.NoEditTriggers)
118
        #self.setEditTriggers(QAbstractItemView.NoEditTriggers)
119 119
        
120 120
    '''
121 121
        @brief      Slot to accept item click event
......
221 221
            self.setHorizontalHeaderLabels(['Name', 'Value'])
222 222
            self.horizontalHeaderItem(0).setSizeHint(QSize(25, 25))
223 223
            if issubclass(type(item), SymbolSvgItem):
224
                self.setRowCount(6)
224
                self.setRowCount(7)
225 225
                
226 226
                self.setItem(0, 0, QTableWidgetItem("UID"))
227 227
                self.setItem(1, 0, QTableWidgetItem("심볼명"))
......
229 229
                self.setItem(3, 0, QTableWidgetItem("각도"))
230 230
                self.setItem(4, 0, QTableWidgetItem("원점"))
231 231
                self.setItem(5, 0, QTableWidgetItem("OWNER"))
232
                self.setItem(6, 0, QTableWidgetItem("Supplied by"))
232 233
                if type(item) is QEngineeringSpecBreakItem:
233
                    self.setRowCount(7)
234
                    self.setItem(6, 0, QTableWidgetItem("Set Specs"))
234
                    self.setRowCount(8)
235
                    self.setItem(7, 0, QTableWidgetItem("Set Specs"))
235 236
                if type(item) is QEngineeringErrorItem:
236
                    self.setRowCount(7)
237
                    self.setItem(6, 0, QTableWidgetItem("Message"))
237
                    self.setRowCount(8)
238
                    self.setItem(7, 0, QTableWidgetItem("Message"))
238 239
            elif type(item) is QEngineeringNoteItem:
239 240
                self.setRowCount(1)
240 241
                self.setItem(0, 0, QTableWidgetItem("노트번호"))
......
316 317
                owner_item.setIcon(icon)
317 318
                self.setItem(5, 1, owner_item)
318 319

  
320
                suppliedItem = QTableWidgetItem(self.symData.supplied_by)
321
                icon = QtGui.QIcon()
322
                icon.addPixmap(QtGui.QPixmap(":/newPrefix/doubleclick.png"), QtGui.QIcon.Normal, QtGui.QIcon.Off)
323
                suppliedItem.setIcon(icon)
324
                self.setItem(6, 1, suppliedItem)
325

  
319 326
                if type(self.symData) is QEngineeringSpecBreakItem:
320 327
                    setSpecsItem = QTableWidgetItem('Open')
321 328
                    icon = QtGui.QIcon()
322 329
                    icon.addPixmap(QtGui.QPixmap(":/newPrefix/doubleclick.png"), QtGui.QIcon.Normal, QtGui.QIcon.Off)
323 330
                    setSpecsItem.setIcon(icon)
324
                    setSpecsItem.setFlags(Qt.ItemIsEnabled|Qt.ItemIsSelectable)
325
                    self.setItem(6, 1, setSpecsItem)
331
                    self.setItem(7, 1, setSpecsItem)
326 332

  
327 333
                if type(self.symData) is QEngineeringErrorItem:
328 334
                    errType = 'None'
......
332 338
                        errType = 'symbol'
333 339
                    self.setItem(2, 1, QTableWidgetItem(errType))
334 340
                    self.setItem(5, 1, QTableWidgetItem(self.symData.parent.uid))
335
                    self.setItem(6, 1, QTableWidgetItem(self.symData.msg))
341
                    self.setItem(7, 1, QTableWidgetItem(self.symData.msg))
336 342

  
337 343
                row = self.rowCount()
338 344
                attrs = self.symData.getAttributes()
......
386 392
                            '''
387 393
                            if key.Attribute == 'UpStream' or key.Attribute == 'DownStream':
388 394
                                UpDownItem = QTableWidgetItem('{}'.format('None' if value is None else value))
389
                                UpDownItem.setFlags(Qt.ItemIsEnabled|Qt.ItemIsSelectable)
390 395
                                icon = QtGui.QIcon()
391 396
                                icon.addPixmap(QtGui.QPixmap(":/newPrefix/doubleclick.png"), QtGui.QIcon.Normal, QtGui.QIcon.Off)
392 397
                                UpDownItem.setIcon(icon)
......
410 415
                    self.setItem(row, 0, item)
411 416

  
412 417
                    item = QTableWidgetItem('{}'.format('None' if connector.connectedItem is None else str(connector.connectedItem.uid)))
413
                    item.setFlags(Qt.ItemIsEnabled|Qt.ItemIsSelectable)
414 418
                    icon = QtGui.QIcon()
415 419
                    icon.addPixmap(QtGui.QPixmap(":/newPrefix/doubleclick.png"), QtGui.QIcon.Normal, QtGui.QIcon.Off)
416 420
                    item.setIcon(icon)
......
418 422
                    row = row + 1
419 423
                    count = count + 1
420 424
                # up to here
425
                for index in range(self.rowCount()):
426
                    item = self.item(index, 1)
427
                    if item is not None:
428
                        item.setFlags(Qt.ItemIsEnabled|Qt.ItemIsSelectable)
429
                suppliedItem.setFlags(Qt.ItemIsEnabled|Qt.ItemIsSelectable|Qt.ItemIsEditable)
421 430
            else:
422 431
                self.setRowCount(0)
423 432
        except Exception as ex:
......
630 639
    '''
631 640
    def cellChangedEvent(self, row, column):
632 641
        cell = self.item(row, 0)
642
        if cell.text() == 'Supplied by':
643
            items = self.mainWindow.graphicsView.scene.selectedItems()
644
            if items is not None and len(items) == 1 and self.item(row, 1) is not None:
645
                items[0].supplied_by = self.item(row, 1).text()
633 646
        if not hasattr(cell, 'tag'): return
634 647

  
635 648
        key = self.item(row, 0).tag
DTI_PID/DTI_PID/LineNoTracer.py
302 302

  
303 303
                    docData.tracerLineNos.append(trimLineNo)
304 304
            """
305
            # vendor package
306
            for vendor in self._vendor:
307
                print(str(vendor.uid))
308
                for symbol in self._symbols:
309
                    if vendor.includes(symbol):
310
                        print(str(symbol.uid))
311
            
312 305
            updateProgress.emit(maxValue)
313 306
        except Exception as ex:
314 307
            from App import App 
......
476 469
        for valve in valves:
477 470
            valve.connectAttribute(labels, clear=False)
478 471

  
472
        # vendor package
473
        for vendorItem in vendor:
474
            for symbol in symbols:
475
                if vendorItem.includes(symbol):
476
                    symbol.supplied_by = 'By Vendor'
479 477
        # up to here
480 478
    except Exception as ex:
481 479
        from App import App 
DTI_PID/DTI_PID/MainWindow.py
571 571
                            titleBlockItems.append(item)
572 572

  
573 573
            dbItems = [item for item in items if type(item) is QEngineeringInstrumentItem or type(item) is QEngineeringEquipmentItem or\
574
            type(item) is QEngineeringNoteItem or type(item) is SymbolSvgItem or type(item) is QEngineeringLineNoTextItem] + titleBlockItems
574
            type(item) is QEngineeringNoteItem or type(item) is SymbolSvgItem or type(item) is QEngineeringLineNoTextItem or type(item) is QEngineeringVendorItem] + titleBlockItems
575 575
            appDocData.saveToDatabase(dbItems)
576 576
        except Exception as ex:
577 577
            message = 'error occured({}) in {}:{}'.format(ex, sys.exc_info()[-1].tb_frame.f_code.co_filename, sys.exc_info()[-1].tb_lineno)
......
2468 2468

  
2469 2469
                self.progress.setValue(self.progress.value() + 1)
2470 2470

  
2471
            for vendor in root.find('VENDORS').iter('VENDOR'):
2472
                item = QEngineeringVendorItem.fromXml(vendor)
2473
                item.transfer.onRemoved.connect(self.itemRemoved)
2474
                self.graphicsView.scene.addItem(item)
2471
            if root.find('VENDORS') is not None:
2472
                for vendor in root.find('VENDORS').iter('VENDOR'):
2473
                    item = QEngineeringVendorItem.fromXml(vendor)
2474
                    item.transfer.onRemoved.connect(self.itemRemoved)
2475
                    self.graphicsView.scene.addItem(item)
2475 2476

  
2476 2477
            # up to here
2477 2478

  
DTI_PID/DTI_PID/Shapes/EngineeringVendorItem.py
61 61
        else:
62 62
            return False
63 63

  
64
    def toSql(self):
65
        """
66
        convert vendor package data to sql query
67
        """
68
        from AppDocData import AppDocData
69
        res = []
70

  
71
        appDocData = AppDocData.instance()
72

  
73
        cols = ['UID', 'Drawings_UID', 'PTS']
74
        values = ['?','?', '?']
75
        PTS = ''
76
        for point in self.points:
77
            PTS = PTS + str(point[0]) + ',' + str(point[1]) + QEngineeringVendorItem.DELIMITER
78
        PTS = PTS[:-len(QEngineeringVendorItem.DELIMITER)]
79
        param = [str(self.uid), appDocData.activeDrawing.name, PTS]
80

  
81
        sql = 'insert or replace into VendorPackages({}) values({})'.format(','.join(cols), ','.join(values))
82

  
83
        return (sql, tuple(param))
84

  
64 85
    @staticmethod 
65 86
    def fromXml(node):
66 87
        import uuid
DTI_PID/DTI_PID/Shapes/SymbolSvgItem.py
50 50
        self.flip = flip
51 51
        # attributeType uid
52 52
        self.attribute = ''
53
        self.supplied_by = ''
53 54
        
54 55
        self.setAcceptDrops(True)
55 56
        self.setAcceptHoverEvents(True)
......
799 800
            flipNode = Element('FLIP')
800 801
            flipNode.text = str(self.flip)
801 802
            node.append(flipNode)
802
            #print('a')
803
            
804
            suppliedNode = Element('SUPPLIED_BY')
805
            suppliedNode.text = self.supplied_by
806
            node.append(suppliedNode)
803 807

  
804 808
            attributesNode = Element('SYMBOLATTRIBUTES')
805 809
            _attrs = self.getAttributes()
......
874 878
            hasInstrumentLabel = hasInstrumentLabelNode.text if hasInstrumentLabelNode is not None else 'False'
875 879

  
876 880
            flipLabelNode = node.find('FLIP')
877
            flipLabel = int(flipLabelNode.text) if flipLabelNode is not None else None
881
            flipLabel = int(flipLabelNode.text) if flipLabelNode is not None else 0
882

  
883
            suppliedNode = node.find('SUPPLIED_BY')
884
            suppliedLabel = suppliedNode.text if suppliedNode is not None else ''
878 885

  
879 886
            appDocData = AppDocData.instance()
880 887
            project = appDocData.getCurrentProject()
......
883 890
                item[0] = SymbolSvgItem.createItem(_type, svgFilePath, uid, flip=flipLabel)
884 891
                item[0].setVisible(False)
885 892
                item[0].buildItem(name, _type, angle, pt, size, origin, connPts, baseSymbol, childSymbol, hasInstrumentLabel)
893
                item[0].supplied_by = suppliedLabel
886 894

  
887 895
                ## assign area
888 896
                areaNode = node.find('AREA')
DTI_PID/DTI_PID/UI/MainWindow.ui
391 391
             <item alignment="Qt::AlignRight">
392 392
              <widget class="QPushButton" name="pushButtonClearLog">
393 393
               <property name="enabled">
394
                <bool>false</bool>
394
                <bool>true</bool>
395 395
               </property>
396 396
               <property name="maximumSize">
397 397
                <size>

내보내기 Unified diff

클립보드 이미지 추가 (최대 크기: 500 MB)