- added a new menu category in the MenuBar named 'Objects'. It will hold the objects found in the Project tab. Useful when working in FullScreen

This commit is contained in:
Marius Stanciu
2019-10-04 17:18:07 +03:00
parent 6d2ed26e0e
commit 55fdd59b94
4 changed files with 140 additions and 9 deletions

View File

@@ -425,17 +425,17 @@ class ObjectCollection(QtCore.QAbstractItemModel):
# rename the object
obj.options["name"] = deepcopy(data)
self.app.object_status_changed.emit(obj, 'rename', old_name)
# update the SHELL auto-completer model data
try:
self.app.myKeywords.remove(old_name)
self.app.myKeywords.append(new_name)
self.app.shell._edit.set_model_data(self.app.myKeywords)
self.app.ui.code_editor.set_model_data(self.app.myKeywords)
except Exception as e:
log.debug(
"setData() --> Could not remove the old object name from auto-completer model list. %s" %
str(e))
# obj.build_ui()
self.app.inform.emit(_("Object renamed from <b>{old}</b> to <b>{new}</b>").format(old=old_name,
new=new_name))
@@ -504,7 +504,7 @@ class ObjectCollection(QtCore.QAbstractItemModel):
self.app.should_we_save = True
self.app.object_status_changed.emit(obj, 'append')
self.app.object_status_changed.emit(obj, 'append', name)
# decide if to show or hide the Notebook side of the screen
if self.app.defaults["global_project_autohide"] is True:
@@ -601,14 +601,16 @@ class ObjectCollection(QtCore.QAbstractItemModel):
log.debug(
"delete_active() --> Could not remove the old object name from auto-completer model list. %s" % str(e))
self.app.object_status_changed.emit(active.obj, 'delete', name)
# ############ OBJECT DELETION FROM MODEL STARTS HERE ####################
self.beginRemoveRows(self.index(group.row(), 0, QtCore.QModelIndex()), active.row(), active.row())
group.remove_child(active)
# after deletion of object store the current list of objects into the self.app.all_objects_list
self.app.all_objects_list = self.get_list()
self.endRemoveRows()
# ############ OBJECT DELETION FROM MODEL STOPS HERE ####################
if self.app.is_legacy is False:
self.app.plotcanvas.redraw()
@@ -626,6 +628,9 @@ class ObjectCollection(QtCore.QAbstractItemModel):
def delete_all(self):
FlatCAMApp.App.log.debug(str(inspect.stack()[1][3]) + "--> OC.delete_all()")
self.app.object_status_changed.emit(None, 'delete_all', '')
try:
self.app.all_objects_list.clear()
@@ -709,6 +714,16 @@ class ObjectCollection(QtCore.QAbstractItemModel):
log.error("[ERROR] Cause: %s" % str(e))
raise
def set_exclusive_active(self, name):
"""
Make the object with the name in parameters the only selected object
:param name: name of object to be selected and made the only active object
:return: None
"""
self.set_all_inactive()
self.set_active(name)
def set_inactive(self, name):
"""
Unselect object by name from the project list. This triggers the