개정판 ff096d3a
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