583 |
583 |
""" convert Components data to sql query """
|
584 |
584 |
from AppDocData import AppDocData
|
585 |
585 |
|
|
586 |
scaleX = round(self.transform().m11() * 100)
|
|
587 |
scaleY = round(self.transform().m22() * 100)
|
|
588 |
scale = str(scaleX / 100.0) + ',' + str(scaleY / 100.0)
|
|
589 |
|
586 |
590 |
cols = ['UID', 'Drawings_UID', 'Symbol_UID', 'X', 'Y', 'Width', 'Height', 'Rotation', 'Area', 'Owner',
|
587 |
591 |
'Connected', '[Supplied By]', \
|
588 |
592 |
'SpecialItemTypes_UID', 'OriginIndex', '[From]', '[To]', '[Freeze]', '[Connected Item]', '[Flip]',
|
... | ... | |
598 |
602 |
self.currentPointModeIndex, \
|
599 |
603 |
None, None, self.prop('Freeze') if self.prop('Freeze') else 0,
|
600 |
604 |
str(self.prop('Connected Item')) if self.prop('Connected Item') else None,
|
601 |
|
self.flip, '{},{}'.format(origin.x(), origin.y()), str(self.scale()))]
|
|
605 |
self.flip, '{},{}'.format(origin.x(), origin.y()), scale)]
|
602 |
606 |
sql = 'insert into Components({}) values({})'.format(','.join(cols), ','.join(values))
|
603 |
607 |
|
604 |
608 |
return (sql, tuple(param))
|
... | ... | |
705 |
709 |
'''
|
706 |
710 |
|
707 |
711 |
def buildItem(self, name, _type, angle: float, loc, size, origin, connPts, parentSymbol, childSymbol, hasInstrumentLabel,
|
708 |
|
dbUid=None, scale=1.0):
|
|
712 |
dbUid=None, scale=[1.0, 1.0]):
|
709 |
713 |
"""
|
710 |
714 |
build symbol item
|
711 |
715 |
:param name:
|
... | ... | |
746 |
750 |
if convertOriginalPoint:
|
747 |
751 |
convertOriginalPoint = convertOriginalPoint.split(',')
|
748 |
752 |
self.symbolConvertingOrigin = [float(convertOriginalPoint[0]), float(convertOriginalPoint[1])]
|
749 |
|
self.setScale(scale)
|
|
753 |
#self.setScale(scale)
|
|
754 |
#'''
|
|
755 |
transform = QTransform().translate(self.symbolOrigin[0], self.symbolOrigin[1])
|
|
756 |
transform.scale(scale[0], scale[1])
|
|
757 |
transform.translate(-self.symbolOrigin[0], -self.symbolOrigin[1])
|
|
758 |
self.setTransform(transform)
|
|
759 |
#'''
|
750 |
760 |
|
751 |
761 |
# setting connectors
|
752 |
762 |
connectionPoints = symbolInfo.getConnectionPoint().split('/')
|
... | ... | |
1110 |
1120 |
self.rotate(self._angle)
|
1111 |
1121 |
|
1112 |
1122 |
if hasattr(self, '_scale'):
|
|
1123 |
pass
|
|
1124 |
'''
|
1113 |
1125 |
dx = event.scenePos().x() - self._scale_x
|
1114 |
1126 |
step = 8
|
1115 |
1127 |
quotient = int(dx / step)
|
1116 |
1128 |
scale = 0.1 * quotient
|
1117 |
1129 |
|
1118 |
1130 |
self.setScale(self._scale + scale if self._scale + scale > 0.3 else 0.3)
|
|
1131 |
'''
|
1119 |
1132 |
|
1120 |
1133 |
super().mouseMoveEvent(event)
|
1121 |
1134 |
|
... | ... | |
1237 |
1250 |
from EngineeringEndBreakItem import QEngineeringEndBreakItem
|
1238 |
1251 |
from RotateCommand import RotateCommand
|
1239 |
1252 |
|
|
1253 |
modifiers = QApplication.keyboardModifiers()
|
|
1254 |
|
1240 |
1255 |
if not self.isSelected():
|
1241 |
1256 |
return
|
1242 |
1257 |
elif event.key() == Qt.Key_A:
|
1243 |
1258 |
self.contextSelectAll()
|
1244 |
1259 |
elif event.key() == Qt.Key_N:
|
1245 |
|
modifiers = QApplication.keyboardModifiers()
|
1246 |
1260 |
delta = 40 if modifiers == Qt.ControlModifier else 10
|
1247 |
1261 |
self.move_near_main_line(delta)
|
1248 |
1262 |
elif event.key() == Qt.Key_B:
|
... | ... | |
1272 |
1286 |
self.rotate(math.radians(self._rotating))
|
1273 |
1287 |
del self._rotating
|
1274 |
1288 |
if hasattr(self, '_scale'):
|
|
1289 |
pass
|
|
1290 |
'''
|
1275 |
1291 |
self.ungrabMouse()
|
1276 |
1292 |
|
1277 |
1293 |
self.setScale(self._scale)
|
1278 |
1294 |
del self._scale
|
1279 |
1295 |
del self._scale_x
|
|
1296 |
'''
|
1280 |
1297 |
elif event.key() == Qt.Key_Up: # translate up/down/left/right symbol
|
1281 |
|
modifiers = QApplication.keyboardModifiers()
|
1282 |
1298 |
delta = 10 if modifiers == Qt.ControlModifier else 1
|
1283 |
1299 |
|
1284 |
1300 |
#self.loc[1] = self.loc[1] - delta
|
1285 |
1301 |
#self.origin[1] = self.origin[1] - delta
|
1286 |
1302 |
self.moveBy(0, -delta)
|
1287 |
1303 |
elif event.key() == Qt.Key_Down:
|
1288 |
|
modifiers = QApplication.keyboardModifiers()
|
1289 |
1304 |
delta = 10 if modifiers == Qt.ControlModifier else 1
|
1290 |
1305 |
|
1291 |
1306 |
#self.loc[1] = self.loc[1] + delta
|
1292 |
1307 |
#self.origin[1] = self.origin[1] + delta
|
1293 |
1308 |
self.moveBy(0, delta)
|
1294 |
1309 |
elif event.key() == Qt.Key_Left:
|
1295 |
|
modifiers = QApplication.keyboardModifiers()
|
1296 |
1310 |
delta = 10 if modifiers == Qt.ControlModifier else 1
|
1297 |
1311 |
|
1298 |
1312 |
#self.loc[0] = self.loc[0] - delta
|
1299 |
1313 |
#self.origin[0] = self.origin[0] - delta
|
1300 |
1314 |
self.moveBy(-delta, 0)
|
1301 |
1315 |
elif event.key() == Qt.Key_Right:
|
1302 |
|
modifiers = QApplication.keyboardModifiers()
|
1303 |
1316 |
delta = 10 if modifiers == Qt.ControlModifier else 1
|
1304 |
1317 |
|
1305 |
1318 |
#self.loc[0] = self.loc[0] + delta
|
1306 |
1319 |
#self.origin[0] = self.origin[0] + delta
|
1307 |
1320 |
self.moveBy(delta, 0)
|
1308 |
1321 |
elif event.key() == Qt.Key_Plus or event.key() == 61:
|
1309 |
|
self.setScale(self.scale() + 0.1)
|
1310 |
|
'''
|
1311 |
|
transform = QTransform()
|
1312 |
|
transform.scale(self.transform().m11() + 0.1, 1.0)
|
1313 |
|
#transform.translate(-2 * self.symbolOrigin[0], 0)
|
1314 |
|
|
|
1322 |
#self.setScale(self.scale() + 0.1)
|
|
1323 |
#'''
|
|
1324 |
transform = QTransform().translate(self.symbolOrigin[0], self.symbolOrigin[1])
|
|
1325 |
if modifiers == Qt.ControlModifier:
|
|
1326 |
transform.scale(self.transform().m11() + 0.1, self.transform().m22())
|
|
1327 |
elif modifiers == Qt.AltModifier:
|
|
1328 |
transform.scale(self.transform().m11(), self.transform().m22() + 0.1)
|
|
1329 |
else:
|
|
1330 |
transform.scale(self.transform().m11() + 0.1, self.transform().m22() + 0.1)
|
|
1331 |
transform.translate(-self.symbolOrigin[0], -self.symbolOrigin[1])
|
1315 |
1332 |
self.setTransform(transform)
|
1316 |
|
'''
|
|
1333 |
#'''
|
1317 |
1334 |
elif event.key() == Qt.Key_Minus:
|
1318 |
|
self.setScale(self.scale() - 0.1 if self.scale() - 0.1 > 0.3 else 0.3)
|
|
1335 |
#self.setScale(self.scale() - 0.1 if self.scale() - 0.1 > 0.3 else 0.3)
|
|
1336 |
#'''
|
|
1337 |
transform = QTransform().translate(self.symbolOrigin[0], self.symbolOrigin[1])
|
|
1338 |
if modifiers == Qt.ControlModifier:
|
|
1339 |
transform.scale(self.transform().m11() - 0.1 if self.transform().m11() - 0.1 > 0.3 else 0.3, self.transform().m22())
|
|
1340 |
elif modifiers == Qt.AltModifier:
|
|
1341 |
transform.scale(self.transform().m11(), self.transform().m22() - 0.1 if self.transform().m22() - 0.1 > 0.3 else 0.3)
|
|
1342 |
else:
|
|
1343 |
transform.scale(self.transform().m11() - 0.1 if self.transform().m11() - 0.1 > 0.3 else 0.3, self.transform().m22() - 0.1 if self.transform().m22() - 0.1 > 0.3 else 0.3)
|
|
1344 |
transform.translate(-self.symbolOrigin[0], -self.symbolOrigin[1])
|
|
1345 |
self.setTransform(transform)
|
|
1346 |
#'''
|
1319 |
1347 |
elif event.key() == Qt.Key_I or event.key() == Qt.Key_J or event.key() == Qt.Key_Q or event.key() == Qt.Key_Insert or event.key() == Qt.Key_M: #or event.key() == Qt.Key_X
|
1320 |
1348 |
from App import App
|
1321 |
1349 |
|
... | ... | |
1911 |
1939 |
node.append(angleNode)
|
1912 |
1940 |
|
1913 |
1941 |
scaleNode = Element('SCALE')
|
1914 |
|
scaleNode.text = str(round(self.scale(), 2))
|
|
1942 |
scaleX = round(self.transform().m11() * 100)
|
|
1943 |
scaleY = round(self.transform().m22() * 100)
|
|
1944 |
scaleNode.text = str(scaleX / 100.0) + ',' + str(scaleY / 100.0)
|
|
1945 |
#scaleNode.text = str(round(self.scale(), 2))
|
1915 |
1946 |
node.append(scaleNode)
|
1916 |
1947 |
|
1917 |
1948 |
parentSymbolNode = Element('PARENT')
|
... | ... | |
2001 |
2032 |
name = dbData.sName
|
2002 |
2033 |
_type = dbData.sType
|
2003 |
2034 |
angle = float(component['Rotation'])
|
2004 |
|
scale = float(component['Value']) if component['Value'] else 1.0
|
|
2035 |
scale = [1.0, 1.0]
|
|
2036 |
if component['Value']:
|
|
2037 |
if ',' in component['Value']:
|
|
2038 |
scale = [float(component['Value'].split(',')[0]), float(component['Value'].split(',')[1])]
|
|
2039 |
else:
|
|
2040 |
scale = [float(component['Value']), float(component['Value'])]
|
2005 |
2041 |
|
2006 |
2042 |
origin = [float(x) for x in component['SceneOriginPoint'].split(',')] if component['SceneOriginPoint'] is not None else pt
|
2007 |
2043 |
if grid == 1:
|
... | ... | |
2205 |
2241 |
hit_ratio = float(ratioNode.text) if ratioNode is not None else None
|
2206 |
2242 |
|
2207 |
2243 |
scaleNode = node.find('SCALE')
|
2208 |
|
scale = float(scaleNode.text) if scaleNode is not None else 1.0
|
|
2244 |
scale = [1.0, 1.0]
|
|
2245 |
if scaleNode is not None and scaleNode.text:
|
|
2246 |
if ',' in scaleNode.text:
|
|
2247 |
scale = [float(scaleNode.text.split(',')[0]), float(scaleNode.text.split(',')[1])]
|
|
2248 |
else:
|
|
2249 |
scale = [float(scaleNode.text), float(scaleNode.text)]
|
2209 |
2250 |
|
2210 |
2251 |
project = appDocData.getCurrentProject()
|
2211 |
2252 |
svgFilePath = os.path.join(project.getSvgFilePath(), _type, name + '.svg')
|
... | ... | |
2688 |
2729 |
"""rotate symbol by given angle in radian"""
|
2689 |
2730 |
import math
|
2690 |
2731 |
self.setRotation(math.degrees(angle))
|
|
2732 |
'''
|
|
2733 |
transform = QTransform().translate(self.symbolOrigin[0], self.symbolOrigin[1])
|
|
2734 |
transform.rotate(math.degrees(angle))
|
|
2735 |
transform.translate(-self.symbolOrigin[0], -self.symbolOrigin[1])
|
|
2736 |
self.setTransform(transform)
|
|
2737 |
'''
|
2691 |
2738 |
|
2692 |
2739 |
'''
|
2693 |
2740 |
@brief change Conn point
|