1 from qtpy
import QtWidgets
2 from qtpy
.QtCore
import Qt
8 from ..qtutils
import get
10 from . import completion
11 from . import standard
15 def new_create_tag(context
, name
='', ref
='', sign
=False, parent
=None):
16 """Entry point for external callers."""
17 opts
= TagOptions(name
, ref
, sign
)
18 view
= CreateTag(context
, opts
, parent
=parent
)
22 def create_tag(context
, name
='', ref
='', sign
=False):
23 """Entry point for external callers."""
24 view
= new_create_tag(
29 parent
=qtutils
.active_window(),
37 """Simple data container for the CreateTag dialog."""
39 def __init__(self
, name
, ref
, sign
):
40 self
.name
= name
or ''
41 self
.ref
= ref
or 'HEAD'
45 class CreateTag(standard
.Dialog
):
46 def __init__(self
, context
, opts
, parent
=None):
47 standard
.Dialog
.__init
__(self
, parent
=parent
)
49 self
.context
= context
50 self
.model
= model
= context
.model
53 self
.setWindowTitle(N_('Create Tag'))
54 if parent
is not None:
55 self
.setWindowModality(Qt
.WindowModal
)
58 self
.tag_name_label
= QtWidgets
.QLabel(self
)
59 self
.tag_name_label
.setText(N_('Name'))
61 self
.tag_name
= text
.HintedLineEdit(context
, N_('vX.Y.Z'), parent
=self
)
62 self
.tag_name
.set_value(opts
.name
)
63 self
.tag_name
.setToolTip(N_('Specifies the tag name'))
65 qtutils
.add_completer(self
.tag_name
, model
.tags
)
68 self
.sign_label
= QtWidgets
.QLabel(self
)
69 self
.sign_label
.setText(N_('Sign Tag'))
71 tooltip
= N_('Whether to sign the tag (git tag -s)')
72 self
.sign_tag
= qtutils
.checkbox(checked
=True, tooltip
=tooltip
)
75 self
.tag_msg_label
= QtWidgets
.QLabel(self
)
76 self
.tag_msg_label
.setText(N_('Message'))
78 self
.tag_msg
= text
.HintedPlainTextEdit(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(
89 text
=N_('Create Tag'), icon
=icons
.tag(), default
=True
91 self
.close_button
= qtutils
.close_button()
93 # Form layout for inputs
94 self
.input_layout
= qtutils
.form(
97 (self
.tag_name_label
, self
.tag_name
),
98 (self
.tag_msg_label
, self
.tag_msg
),
99 (self
.rev_label
, self
.revision
),
100 (self
.sign_label
, self
.sign_tag
),
103 self
.button_layout
= qtutils
.hbox(
111 self
.main_layt
= qtutils
.vbox(
112 defs
.margin
, defs
.spacing
, self
.input_layout
, self
.button_layout
114 self
.setLayout(self
.main_layt
)
116 qtutils
.connect_button(self
.close_button
, self
.close
)
117 qtutils
.connect_button(self
.create_button
, self
.create_tag
)
119 settings
= context
.settings
120 self
.init_state(settings
, self
.resize
, defs
.scale(720), defs
.scale(210))
122 def create_tag(self
):
123 """Verifies inputs and emits a notifier tag message."""
125 context
= self
.context
126 revision
= get(self
.revision
)
127 tag_name
= get(self
.tag_name
)
128 tag_msg
= get(self
.tag_msg
)
129 sign_tag
= get(self
.sign_tag
)
132 cmds
.Tag
, context
, tag_name
, revision
, sign
=sign_tag
, message
=tag_msg