1 from __future__
import division
, absolute_import
, unicode_literals
3 from qtpy
import QtWidgets
4 from qtpy
.QtCore
import Qt
10 from ..qtutils
import get
12 from . import completion
13 from . import standard
17 def new_create_tag(context
, name
='', ref
='', sign
=False,
18 settings
=None, parent
=None):
19 """Entry point for external callers."""
20 opts
= TagOptions(name
, ref
, sign
)
21 view
= CreateTag(context
, opts
, settings
=settings
, parent
=parent
)
25 def create_tag(context
, name
='', ref
='', sign
=False, settings
=None):
26 """Entry point for external callers."""
27 view
= new_create_tag(context
, name
=name
, ref
=ref
, sign
=sign
,
28 settings
=settings
, parent
=qtutils
.active_window())
34 class TagOptions(object):
35 """Simple data container for the CreateTag dialog."""
37 def __init__(self
, name
, ref
, sign
):
38 self
.name
= name
or ''
39 self
.ref
= ref
or 'HEAD'
43 class CreateTag(standard
.Dialog
):
45 def __init__(self
, context
, opts
, settings
=None, parent
=None):
46 standard
.Dialog
.__init
__(self
, parent
=parent
)
48 self
.context
= context
49 self
.model
= model
= context
.model
52 self
.setWindowTitle(N_('Create Tag'))
53 if parent
is not None:
54 self
.setWindowModality(Qt
.WindowModal
)
57 self
.tag_name_label
= QtWidgets
.QLabel(self
)
58 self
.tag_name_label
.setText(N_('Name'))
60 self
.tag_name
= text
.HintedLineEdit(context
, N_('vX.Y.Z'), parent
=self
)
61 self
.tag_name
.set_value(opts
.name
)
62 self
.tag_name
.setToolTip(N_('Specifies the tag name'))
64 qtutils
.add_completer(self
.tag_name
, model
.tags
)
67 self
.sign_label
= QtWidgets
.QLabel(self
)
68 self
.sign_label
.setText(N_('Sign Tag'))
70 tooltip
= N_('Whether to sign the tag (git tag -s)')
71 self
.sign_tag
= qtutils
.checkbox(checked
=True, tooltip
=tooltip
)
74 self
.tag_msg_label
= QtWidgets
.QLabel(self
)
75 self
.tag_msg_label
.setText(N_('Message'))
77 self
.tag_msg
= text
.HintedPlainTextEdit(
78 context
, N_('Tag message...'), self
)
79 self
.tag_msg
.setToolTip(N_('Specifies the tag message'))
81 self
.rev_label
= QtWidgets
.QLabel(self
)
82 self
.rev_label
.setText(N_('Revision'))
84 self
.revision
= completion
.GitRefLineEdit(context
)
85 self
.revision
.setText(self
.opts
.ref
)
86 self
.revision
.setToolTip(N_('Specifies the SHA-1 to tag'))
88 self
.create_button
= qtutils
.create_button(text
=N_('Create Tag'),
91 self
.close_button
= qtutils
.close_button()
93 # Form layout for inputs
94 self
.input_layout
= qtutils
.form(defs
.margin
, defs
.spacing
,
95 (self
.tag_name_label
, self
.tag_name
),
96 (self
.tag_msg_label
, self
.tag_msg
),
97 (self
.rev_label
, self
.revision
),
98 (self
.sign_label
, self
.sign_tag
))
100 self
.button_layout
= qtutils
.hbox(defs
.no_margin
, defs
.button_spacing
,
105 self
.main_layt
= qtutils
.vbox(defs
.margin
, defs
.spacing
,
106 self
.input_layout
, self
.button_layout
)
107 self
.setLayout(self
.main_layt
)
109 qtutils
.connect_button(self
.close_button
, self
.close
)
110 qtutils
.connect_button(self
.create_button
, self
.create_tag
)
112 self
.init_state(settings
, self
.resize
,
113 defs
.scale(720), defs
.scale(210))
115 def create_tag(self
):
116 """Verifies inputs and emits a notifier tag message."""
118 context
= self
.context
119 revision
= get(self
.revision
)
120 tag_name
= get(self
.tag_name
)
121 tag_msg
= get(self
.tag_msg
)
122 sign_tag
= get(self
.sign_tag
)
124 ok
= cmds
.do(cmds
.Tag
, context
, tag_name
, revision
,
125 sign
=sign_tag
, message
=tag_msg
)