def load_project_content(self): self.r2Static = Static(self.tab.binary_path, self.plugin_pois) if DS.getProject(self.project_run_id) is None: return for poi in DS.getAllPois(self.project_run_id): if poi.type.lower() == "function": _poi = Function(poi.name) for _projectpoi in poi.data: _var = Var(_projectpoi.name, _projectpoi.type) _var.content['value'] = _projectpoi.data _poi.content['parameters'].append(_var) _poi.content['calls'] = poi.calls _return = Var() _return.importFromDatabase(poi.returnV) _poi.content['return'] = _return self.r2Static.content['Function'].append(_poi) elif poi.type.lower() == "string": _poi = String(poi.name) _poi.importFromDatabase(poi) self.r2Static.content['String'].append(_poi) else: continue self.poiList.addItems(self.r2Static.getPOINames()) for i in range(len(self.r2Static.getPOINames())): list_item = self.poiList.item(i) item = self.r2Static.getPOI(list_item.text()) if type(item) == Function: if item.check: list_item.setCheckState(Qt.Checked) else: list_item.setCheckState(Qt.Unchecked)
def save_poi(self, ppoi): self.pois.append(ppoi.name) item = QtWidgets.QListWidgetItem(ppoi.name) self.poiList.addItem(item) project = DS.getProject(self.project_run_id) project.projectPOI.append(ppoi) project.save()
def static_finished(self): self.setDisabled(False) self.r2Static.message.disconnect(self.write) self.r2Static.finished.disconnect(self.static_finished) self.r2Static.add_poi.disconnect(self.save_poi) self.r2Static.add_function.disconnect(self.save_function) self.runsMenu.currentIndexChanged.connect(self.load_project_run) self.pluginMenu.currentIndexChanged.connect(self.load_plugin_data) self.pluginMenu.currentIndexChanged.connect(self.load_project_run) self.daRunButton.setDisabled(False) for poi in self.r2Static.content['Function']: _poi_data = poi.toProjectPoi() poi_data = DS.getPOI(poi.content['name']) if poi_data != None: ProjectPOI.transferPOI(poi_data, _poi_data) DS.getProject(self.project_run_id).save()
def save_function(self, fpoi): self.pois.append(fpoi.name) item = QtWidgets.QListWidgetItem(fpoi.name) item.setCheckState(Qt.Checked) self.poiList.addItem(item) project = DS.getProject(self.project_run_id) project.projectFunctions.append(fpoi) project.save()
def select_project(self, item): self.project_name_edit.setReadOnly(True) title = 'BEAT - ' + item.text() self.window_name.emit(title) self.parent().setWindowTitle(title) self.show_detailed_view() self.project_path_button.hide() self.project_name_edit.setText(item.text()) self.project_name_edit.setDisabled(True) project = dbHandler.getProject(item.text()) self.project_desc_edit.setPlainText(project.description) self.project_path_edit.setText(project.path) properties = project.properties for index in range(len(properties)): item = QtWidgets.QTableWidgetItem() item.setFlags(QtCore.Qt.ItemIsEnabled) item.setText(properties[index]) self.project_prop_table.setItem(index, 1, item) self.project_save_button.setDisabled(True)