3 from ugit
import qtutils
4 from ugit
.qobserver
import QObserver
5 from ugit
.views
import MergeView
7 def abort_merge(model
, parent
):
8 txt
= parent
.tr("Abort merge?\n"
9 "Aborting the current merge will cause "
10 "*ALL* uncommitted changes to be lost.\n\n"
11 "Continue with aborting the current merge?")
12 answer
= qtutils
.question(parent
, parent
.tr('Abort Merge?'), txt
)
16 def local_merge(model
, parent
):
18 model
.create(revision
='', revision_list
=[])
19 view
= MergeView(parent
)
20 ctl
= MergeController(model
, view
)
23 class MergeController(QObserver
):
24 def init(self
, model
, view
):
25 # Set the current branch label
26 branch
= self
.model
.get_currentbranch()
27 title
= unicode(self
.tr('Merge Into %s')) % branch
28 self
.view
.label
.setText(title
)
29 self
.add_observables('revision', 'revision_list')
31 radio_local
= self
.radio_callback
,
32 radio_remote
= self
.radio_callback
,
33 radio_tag
= self
.radio_callback
,
34 revision_list
= self
.revision_selected
,
35 button_viz
= self
.viz_revision
,
36 button_merge
= self
.merge_revision
,
38 self
.model
.set_revision_list(
39 self
.model
.get_local_branches())
40 self
.view
.radio_local
.setChecked(True)
42 def get_revision_list(self
):
43 if self
.view
.radio_local
.isChecked():
44 return self
.model
.get_local_branches()
45 elif self
.view
.radio_remote
.isChecked():
46 return self
.model
.get_remote_branches()
47 elif self
.view
.radio_tag
.isChecked():
48 return self
.model
.get_tags()
51 def revision_selected(self
, *args
):
52 revlist
= self
.get_revision_list()
53 widget
= self
.view
.revision_list
54 row
, selected
= qtutils
.get_selected_row(widget
)
55 if selected
and row
< len(revlist
):
56 revision
= revlist
[row
]
57 self
.model
.set_revision(revision
)
59 def radio_callback(self
):
60 revlist
= self
.get_revision_list()
61 self
.model
.set_revision_list(revlist
)
63 def merge_revision(self
):
64 revision
= self
.model
.get_revision()
68 "No Revision Specified",
69 "You must specify a revision to merge")
72 squash
= self
.view
.checkbox_squash
.isChecked()
73 msg
= self
.model
.get_merge_message()
86 def viz_revision(self
):
87 revision
= self
.model
.get_revision()
88 browser
= self
.model
.get_global_ugit_historybrowser()
89 utils
.fork(browser
, revision
)