Skip to content

Commit ca4c58f

Browse files
committed
filediff: Move save confirmation dialog to resource loading
1 parent 79140ba commit ca4c58f

4 files changed

Lines changed: 109 additions & 101 deletions

File tree

data/ui/filediff.ui

Lines changed: 0 additions & 96 deletions
Original file line numberDiff line numberDiff line change
@@ -179,102 +179,6 @@
179179
</object>
180180
</child>
181181
</object>
182-
<object class="GtkMessageDialog" id="check_save_dialog">
183-
<property name="can_focus">False</property>
184-
<property name="type_hint">dialog</property>
185-
<property name="skip_taskbar_hint">True</property>
186-
<property name="message_type">warning</property>
187-
<property name="text" translatable="yes">Save changes to documents before closing?</property>
188-
<property name="secondary_text" translatable="yes">If you don’t save, changes will be permanently lost.</property>
189-
<child internal-child="vbox">
190-
<object class="GtkBox" id="dialog-vbox1">
191-
<property name="visible">True</property>
192-
<property name="can_focus">False</property>
193-
<property name="orientation">vertical</property>
194-
<property name="spacing">6</property>
195-
<child internal-child="action_area">
196-
<object class="GtkButtonBox" id="dialog-action_area1">
197-
<property name="visible">True</property>
198-
<property name="can_focus">False</property>
199-
<property name="layout_style">expand</property>
200-
<child>
201-
<object class="GtkButton" id="close_button">
202-
<property name="label" translatable="yes">Close _without Saving</property>
203-
<property name="visible">True</property>
204-
<property name="can_focus">True</property>
205-
<property name="receives_default">True</property>
206-
<property name="use_underline">True</property>
207-
</object>
208-
<packing>
209-
<property name="expand">False</property>
210-
<property name="fill">True</property>
211-
<property name="position">0</property>
212-
</packing>
213-
</child>
214-
<child>
215-
<object class="GtkButton" id="cancel_button">
216-
<property name="label" translatable="yes">_Cancel</property>
217-
<property name="visible">True</property>
218-
<property name="can_focus">True</property>
219-
<property name="receives_default">True</property>
220-
<property name="use_underline">True</property>
221-
</object>
222-
<packing>
223-
<property name="expand">False</property>
224-
<property name="fill">True</property>
225-
<property name="position">1</property>
226-
</packing>
227-
</child>
228-
<child>
229-
<object class="GtkButton" id="save_button">
230-
<property name="label" translatable="yes">_Save</property>
231-
<property name="visible">True</property>
232-
<property name="can_focus">True</property>
233-
<property name="receives_default">True</property>
234-
<property name="use_underline">True</property>
235-
</object>
236-
<packing>
237-
<property name="expand">False</property>
238-
<property name="fill">True</property>
239-
<property name="position">2</property>
240-
</packing>
241-
</child>
242-
</object>
243-
<packing>
244-
<property name="expand">False</property>
245-
<property name="fill">True</property>
246-
<property name="pack_type">end</property>
247-
<property name="position">0</property>
248-
</packing>
249-
</child>
250-
<child>
251-
<object class="GtkVBox" id="extra_vbox">
252-
<property name="visible">True</property>
253-
<property name="can_focus">False</property>
254-
<child>
255-
<placeholder/>
256-
</child>
257-
<child>
258-
<placeholder/>
259-
</child>
260-
<child>
261-
<placeholder/>
262-
</child>
263-
</object>
264-
<packing>
265-
<property name="expand">True</property>
266-
<property name="fill">True</property>
267-
<property name="position">3</property>
268-
</packing>
269-
</child>
270-
</object>
271-
</child>
272-
<action-widgets>
273-
<action-widget response="-7">close_button</action-widget>
274-
<action-widget response="-6">cancel_button</action-widget>
275-
<action-widget response="-5">save_button</action-widget>
276-
</action-widgets>
277-
</object>
278182
<object class="GtkWindow" id="container">
279183
<property name="visible">True</property>
280184
<property name="can_focus">False</property>

meld/filediff.py

Lines changed: 8 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -850,9 +850,12 @@ def check_save_modified(self, buffers=None):
850850
modified = [b.get_modified() for b in buffers]
851851
labels = [b.data.label for b in buffers]
852852
if any(modified):
853-
dialog = Component("filediff.ui", "check_save_dialog")
854-
dialog.widget.set_transient_for(self.widget.get_toplevel())
855-
message_area = dialog.widget.get_message_area()
853+
builder = Gtk.Builder.new_from_resource(
854+
'/org/gnome/meld/ui/save-confirm-dialog.ui')
855+
dialog = builder.get_object('save-confirm-dialog')
856+
dialog.set_transient_for(self.widget.get_toplevel())
857+
message_area = dialog.get_message_area()
858+
856859
buttons = []
857860
for label, should_save in zip(labels, modified):
858861
button = Gtk.CheckButton.new_with_label(label)
@@ -862,9 +865,9 @@ def check_save_modified(self, buffers=None):
862865
button, expand=False, fill=True, padding=0)
863866
buttons.append(button)
864867
message_area.show_all()
865-
response = dialog.widget.run()
868+
response = dialog.run()
866869
try_save = [b.get_active() for b in buttons]
867-
dialog.widget.destroy()
870+
dialog.destroy()
868871
if response == Gtk.ResponseType.OK and any(try_save):
869872
for i in range(self.num_panes):
870873
if try_save[i]:

meld/resources/meld.gresource.xml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -13,5 +13,6 @@
1313
<file>ui/patch-dialog.ui</file>
1414
<file>ui/push-dialog.ui</file>
1515
<file>ui/revert-dialog.ui</file>
16+
<file>ui/save-confirm-dialog.ui</file>
1617
</gresource>
1718
</gresources>
Lines changed: 100 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,100 @@
1+
<?xml version="1.0" encoding="UTF-8"?>
2+
<interface>
3+
<requires lib="gtk+" version="3.20"/>
4+
<object class="GtkMessageDialog" id="save-confirm-dialog">
5+
<property name="can_focus">False</property>
6+
<property name="type_hint">dialog</property>
7+
<property name="skip_taskbar_hint">True</property>
8+
<property name="message_type">warning</property>
9+
<property name="text" translatable="yes">Save changes to documents before closing?</property>
10+
<property name="secondary_text" translatable="yes">If you don’t save, changes will be permanently lost.</property>
11+
<child internal-child="vbox">
12+
<object class="GtkBox" id="dialog-vbox1">
13+
<property name="visible">True</property>
14+
<property name="can_focus">False</property>
15+
<property name="orientation">vertical</property>
16+
<property name="spacing">6</property>
17+
<child internal-child="action_area">
18+
<object class="GtkButtonBox" id="dialog-action_area1">
19+
<property name="visible">True</property>
20+
<property name="can_focus">False</property>
21+
<property name="layout_style">expand</property>
22+
<child>
23+
<object class="GtkButton" id="close_button">
24+
<property name="label" translatable="yes">Close _without Saving</property>
25+
<property name="visible">True</property>
26+
<property name="can_focus">True</property>
27+
<property name="receives_default">True</property>
28+
<property name="use_underline">True</property>
29+
</object>
30+
<packing>
31+
<property name="expand">False</property>
32+
<property name="fill">True</property>
33+
<property name="position">0</property>
34+
</packing>
35+
</child>
36+
<child>
37+
<object class="GtkButton" id="cancel_button">
38+
<property name="label" translatable="yes">_Cancel</property>
39+
<property name="visible">True</property>
40+
<property name="can_focus">True</property>
41+
<property name="receives_default">True</property>
42+
<property name="use_underline">True</property>
43+
</object>
44+
<packing>
45+
<property name="expand">False</property>
46+
<property name="fill">True</property>
47+
<property name="position">1</property>
48+
</packing>
49+
</child>
50+
<child>
51+
<object class="GtkButton" id="save_button">
52+
<property name="label" translatable="yes">_Save</property>
53+
<property name="visible">True</property>
54+
<property name="can_focus">True</property>
55+
<property name="receives_default">True</property>
56+
<property name="use_underline">True</property>
57+
</object>
58+
<packing>
59+
<property name="expand">False</property>
60+
<property name="fill">True</property>
61+
<property name="position">2</property>
62+
</packing>
63+
</child>
64+
</object>
65+
<packing>
66+
<property name="expand">False</property>
67+
<property name="fill">True</property>
68+
<property name="pack_type">end</property>
69+
<property name="position">0</property>
70+
</packing>
71+
</child>
72+
<child>
73+
<object class="GtkVBox" id="extra_vbox">
74+
<property name="visible">True</property>
75+
<property name="can_focus">False</property>
76+
<child>
77+
<placeholder/>
78+
</child>
79+
<child>
80+
<placeholder/>
81+
</child>
82+
<child>
83+
<placeholder/>
84+
</child>
85+
</object>
86+
<packing>
87+
<property name="expand">True</property>
88+
<property name="fill">True</property>
89+
<property name="position">3</property>
90+
</packing>
91+
</child>
92+
</object>
93+
</child>
94+
<action-widgets>
95+
<action-widget response="-7">close_button</action-widget>
96+
<action-widget response="-6">cancel_button</action-widget>
97+
<action-widget response="-5">save_button</action-widget>
98+
</action-widgets>
99+
</object>
100+
</interface>

0 commit comments

Comments
 (0)