Small fixes with networking, and disabling inspection for the cookie database movement.
This commit is contained in:
@@ -159,7 +159,7 @@ class EntitiesDB:
|
||||
returnValue = self.database.nodes[uid]
|
||||
except KeyError:
|
||||
self.messageHandler.warning(
|
||||
"Tried to get entity with nonexistent UID.")
|
||||
"Tried to get entity with nonexistent UID: " + uid)
|
||||
finally:
|
||||
self.dbLock.release()
|
||||
return returnValue
|
||||
@@ -394,9 +394,11 @@ class EntitiesDB:
|
||||
)
|
||||
])
|
||||
if differenceGraph.number_of_nodes() > 0:
|
||||
for node in differenceGraph.nodes:
|
||||
self.mainWindow.populateEntitiesWidget(differenceGraph.nodes[node], add=True)
|
||||
self.database = nx.compose(self.database, differenceGraph)
|
||||
# Some nodes given by differenceGraph may be empty dicts, with an existing node's uid as the key.
|
||||
for node in differenceGraph.nodes:
|
||||
self.mainWindow.populateEntitiesWidget(self.database.nodes[node], add=True)
|
||||
|
||||
if not fromServer:
|
||||
if self.mainWindow.FCOM.isConnected():
|
||||
# diffNew = nx.DiGraph()
|
||||
|
||||
@@ -55,7 +55,8 @@ class CommunicationsHandler(QtCore.QObject):
|
||||
open_project_canvas_signal = QtCore.Signal(str)
|
||||
close_project_canvas_signal = QtCore.Signal(str)
|
||||
receive_project_database_update = QtCore.Signal(dict, bool)
|
||||
receive_project_canvas_update = QtCore.Signal(str, str)
|
||||
receive_project_canvas_update_node = QtCore.Signal(str, str)
|
||||
receive_project_canvas_update_link = QtCore.Signal(str, tuple)
|
||||
receive_sync_database = QtCore.Signal(dict, dict)
|
||||
status_message_signal = QtCore.Signal(str, bool)
|
||||
receive_project_file_list = QtCore.Signal(list)
|
||||
@@ -88,7 +89,8 @@ class CommunicationsHandler(QtCore.QObject):
|
||||
self.close_project_signal.connect(self.mainWindow.closeCurrentServerProject)
|
||||
self.close_project_canvas_signal.connect(self.mainWindow.closeServerCanvasListener)
|
||||
self.receive_project_database_update.connect(self.mainWindow.receiveServerDatabaseUpdate)
|
||||
self.receive_project_canvas_update.connect(self.mainWindow.receiveServerCanvasUpdate)
|
||||
self.receive_project_canvas_update_node.connect(self.mainWindow.receiveServerCanvasUpdate)
|
||||
self.receive_project_canvas_update_link.connect(self.mainWindow.receiveServerCanvasUpdate)
|
||||
self.receive_sync_database.connect(self.mainWindow.receiveSyncDatabaseListener)
|
||||
self.receive_project_file_list.connect(self.mainWindow.receiveFileListListener)
|
||||
self.file_upload_finished_signal.connect(self.mainWindow.fileUploadFinishedListener)
|
||||
@@ -444,8 +446,11 @@ class CommunicationsHandler(QtCore.QObject):
|
||||
"add": add}}
|
||||
self.transmitMessage(message)
|
||||
|
||||
def receiveCanvasUpdateEvent(self, canvas_name: str, entity_or_link_uid: str):
|
||||
self.receive_project_canvas_update.emit(canvas_name, entity_or_link_uid)
|
||||
def receiveCanvasUpdateEvent(self, canvas_name: str, entity_or_link_uid: Union[str, tuple]):
|
||||
if isinstance(entity_or_link_uid, str):
|
||||
self.receive_project_canvas_update_node.emit(canvas_name, entity_or_link_uid)
|
||||
else:
|
||||
self.receive_project_canvas_update_link.emit(canvas_name, entity_or_link_uid)
|
||||
|
||||
def sendCanvasUpdateEvent(self, project_name: str, canvas_name: str, entity_or_link_uid: Union[str, tuple]):
|
||||
message = {"Operation": "Update Canvas Entities",
|
||||
|
||||
@@ -441,6 +441,9 @@ class TabbedPane(QtWidgets.QTabWidget):
|
||||
|
||||
nodeJSON = self.entityDB.getEntity(uid)
|
||||
|
||||
# This is more efficient for large canvases than syncing afterwards.
|
||||
self.mainWindow.sendLocalCanvasUpdateToServer(canvas, uid)
|
||||
|
||||
picture = nodeJSON.get('Icon')
|
||||
scene.sceneGraph.add_node(uid)
|
||||
|
||||
|
||||
@@ -848,7 +848,7 @@ class MenuBar(QtWidgets.QMenuBar):
|
||||
progress.setValue(4)
|
||||
|
||||
def cookieFileHashHelper(self, filePath):
|
||||
cookieHash = hashlib.md5()
|
||||
cookieHash = hashlib.md5() # nosec
|
||||
with open(filePath, 'rb') as cookieFile:
|
||||
for chunk in iter(lambda: cookieFile.read(4096), b""):
|
||||
cookieHash.update(chunk)
|
||||
|
||||
60
LinkScope.py
60
LinkScope.py
@@ -1131,16 +1131,18 @@ class MainWindow(QtWidgets.QMainWindow):
|
||||
def receiveServerCanvasUpdate(self, canvas_name: str, entity_or_link_uid: Union[str, tuple]) -> None:
|
||||
scene = self.centralWidget().tabbedPane.getSceneByName(canvas_name)
|
||||
if scene is not None:
|
||||
if isinstance(entity_or_link_uid, str):
|
||||
# Add Entity
|
||||
if entity_or_link_uid not in scene.nodesDict:
|
||||
scene.addNodeProgrammatic(entity_or_link_uid, fromServer=True)
|
||||
scene.rearrangeGraph()
|
||||
else:
|
||||
# Add Link
|
||||
if entity_or_link_uid not in scene.linksDict:
|
||||
scene.addLinkProgrammatic(entity_or_link_uid, fromServer=True)
|
||||
scene.rearrangeGraph()
|
||||
# Check that the argument in the update is not empty.
|
||||
if entity_or_link_uid:
|
||||
if isinstance(entity_or_link_uid, str):
|
||||
# Add Entity
|
||||
if entity_or_link_uid not in scene.nodesDict:
|
||||
scene.addNodeProgrammatic(entity_or_link_uid, fromServer=True)
|
||||
scene.rearrangeGraph()
|
||||
else:
|
||||
# Add Link
|
||||
if entity_or_link_uid not in scene.linksDict:
|
||||
scene.addLinkProgrammatic(entity_or_link_uid, fromServer=True)
|
||||
scene.rearrangeGraph()
|
||||
|
||||
self.MESSAGEHANDLER.debug('Received update to canvas: ' + canvas_name + ' for entity / link: ' +
|
||||
str(entity_or_link_uid))
|
||||
@@ -1159,25 +1161,27 @@ class MainWindow(QtWidgets.QMainWindow):
|
||||
str(add))
|
||||
|
||||
def receiveServerDatabaseUpdate(self, entityJson, add) -> None:
|
||||
uid = entityJson['uid']
|
||||
if add:
|
||||
# Add item
|
||||
if isinstance(uid, str):
|
||||
# Add Entity
|
||||
self.LENTDB.addEntity(entityJson, fromServer=True)
|
||||
# Check that the JSON received is not empty.
|
||||
if entityJson:
|
||||
uid = entityJson['uid']
|
||||
if add:
|
||||
# Add item
|
||||
if isinstance(uid, str):
|
||||
# Add Entity
|
||||
self.LENTDB.addEntity(entityJson, fromServer=True)
|
||||
else:
|
||||
# Add Link
|
||||
self.centralWidget().tabbedPane.serverLinkAddHelper(entityJson)
|
||||
else:
|
||||
# Add Link
|
||||
self.centralWidget().tabbedPane.serverLinkAddHelper(entityJson)
|
||||
else:
|
||||
# Remove item
|
||||
if isinstance(uid, str):
|
||||
# Remove Entity
|
||||
self.centralWidget().tabbedPane.nodeRemoveAllHelper(uid)
|
||||
self.LENTDB.removeEntity(uid, fromServer=True)
|
||||
else:
|
||||
# Remove Link
|
||||
self.centralWidget().tabbedPane.linkRemoveAllHelper(uid)
|
||||
self.LENTDB.removeLink(uid, fromServer=True)
|
||||
# Remove item
|
||||
if isinstance(uid, str):
|
||||
# Remove Entity
|
||||
self.centralWidget().tabbedPane.nodeRemoveAllHelper(uid)
|
||||
self.LENTDB.removeEntity(uid, fromServer=True)
|
||||
else:
|
||||
# Remove Link
|
||||
self.centralWidget().tabbedPane.linkRemoveAllHelper(uid)
|
||||
self.LENTDB.removeLink(uid, fromServer=True)
|
||||
|
||||
self.MESSAGEHANDLER.debug('Received database update from server: ' + str(entityJson) + ' - Operation: ' +
|
||||
str(add))
|
||||
|
||||
Reference in New Issue
Block a user