diff --git a/src/blenderbim/blenderbim/bim/module/ifcgit/__init__.py b/src/blenderbim/blenderbim/bim/module/ifcgit/__init__.py index f40fcab3ab..30325f789f 100644 --- a/src/blenderbim/blenderbim/bim/module/ifcgit/__init__.py +++ b/src/blenderbim/blenderbim/bim/module/ifcgit/__init__.py @@ -25,6 +25,7 @@ classes = ( operator.CloneRepo, operator.CommitChanges, operator.CreateRepo, + operator.DeleteTag, operator.DiscardUncommitted, operator.DisplayRevision, operator.DisplayUncommitted, diff --git a/src/blenderbim/blenderbim/bim/module/ifcgit/operator.py b/src/blenderbim/blenderbim/bim/module/ifcgit/operator.py index 4f25e79b71..b60bbd163f 100644 --- a/src/blenderbim/blenderbim/bim/module/ifcgit/operator.py +++ b/src/blenderbim/blenderbim/bim/module/ifcgit/operator.py @@ -161,6 +161,23 @@ class AddTag(bpy.types.Operator): return {"FINISHED"} +class DeleteTag(bpy.types.Operator): + """Delete a tag""" + + bl_label = "Delete tag" + bl_idname = "ifcgit.delete_tag" + bl_options = {"REGISTER"} + tag_name: bpy.props.StringProperty() + + def execute(self, context): + + repo = IfcGitData.data["repo"] + core.delete_tag(tool.IfcGit, repo, self.tag_name) + bpy.ops.ifcgit.refresh() + refresh() + return {"FINISHED"} + + class RefreshGit(bpy.types.Operator): """Refresh revision list""" diff --git a/src/blenderbim/blenderbim/bim/module/ifcgit/ui.py b/src/blenderbim/blenderbim/bim/module/ifcgit/ui.py index 6a4eb7b8d6..0c3a32d961 100644 --- a/src/blenderbim/blenderbim/bim/module/ifcgit/ui.py +++ b/src/blenderbim/blenderbim/bim/module/ifcgit/ui.py @@ -148,11 +148,10 @@ class IFCGIT_PT_panel(bpy.types.Panel): column = item.column(align=True) row = column.row() row.label(text=tag.name) + row.operator("ifcgit.delete_tag", icon="PANEL_CLOSE").tag_name = tag.name if tag.message: row = column.row() row.label(text=tag.message) - # TODO - # item.operator("ifcgit.delete_tag", icon="PANEL_CLOSE") box = layout.box() row = box.row() diff --git a/src/blenderbim/blenderbim/core/ifcgit.py b/src/blenderbim/blenderbim/core/ifcgit.py index 945c77cb58..e886d6b65b 100644 --- a/src/blenderbim/blenderbim/core/ifcgit.py +++ b/src/blenderbim/blenderbim/core/ifcgit.py @@ -38,6 +38,10 @@ def add_tag(ifcgit, repo): ifcgit.add_tag(repo) +def delete_tag(ifcgit, repo, tag_name): + ifcgit.delete_tag(repo, tag_name) + + def refresh_revision_list(ifcgit, repo, ifc): ifcgit.refresh_revision_list(ifc.get_path()) diff --git a/src/blenderbim/blenderbim/tool/ifcgit.py b/src/blenderbim/blenderbim/tool/ifcgit.py index 14ecf52002..287253ac95 100644 --- a/src/blenderbim/blenderbim/tool/ifcgit.py +++ b/src/blenderbim/blenderbim/tool/ifcgit.py @@ -97,6 +97,11 @@ class IfcGit: props.new_tag_name = "" props.new_tag_message = "" + @classmethod + def delete_tag(cls, repo, tag_name): + if tag_name in repo.tags: + repo.delete_tag(tag_name) + @classmethod def create_new_branch(cls): props = bpy.context.scene.IfcGitProperties