def refreshContexts(self): def contexts_success(contexts_list): telepat = QtCore.QCoreApplication.instance().telepat_instance telepat.on_update_context = self.on_update_context telepat.on_add_context = self.on_add_context application = self.applications[self.appsCombobox.currentIndex()] self.contexts_model.setHorizontalHeaderLabels(["Contexts"]) self.actionRefresh.setEnabled(True) for ctx in contexts_list: item = ContextItem(ctx) item.setEditable(False) for key in application.schema: subitem = ModelItem(key, Model(application.schema[key].to_json())) subitem.setEditable(False) item.appendRow(subitem) self.contexts_model.appendRow(item) def contexts_failed(err_code, msg): self.actionRefresh.setEnabled(True) QtWidgets.QMessageBox.critical(self, "Contexts retrieving error", "Error {0}: {1}".format(err_code, msg)) self.actionRefresh.setEnabled(False) self.contexts_model.clear() self.contexts_worker = ContextsWorker(self) self.contexts_worker.success.connect(contexts_success) self.contexts_worker.failed.connect(contexts_failed) self.contexts_worker.log.connect(console.log) self.contexts_worker.start()