| ... |
... |
@@ -50,51 +50,51 @@ class XMLConsoleWindow(Gtk.Window): |
|
50
|
50
|
self.incoming = True
|
|
51
|
51
|
self.outgoing = True
|
|
52
|
52
|
self.filter_dialog = None
|
|
|
53
|
+ self.last_stanza = None
|
|
53
|
54
|
|
|
54
|
|
- glade_objects = ['textview', 'input', 'scrolled_input', 'headerbar',
|
|
55
|
|
- 'scrolled', 'actionbar', 'paned', 'box', 'menubutton']
|
|
56
|
|
- self.builder = get_builder('xml_console_window.ui')
|
|
57
|
|
- for obj in glade_objects:
|
|
58
|
|
- setattr(self, obj, self.builder.get_object(obj))
|
|
59
|
|
-
|
|
60
|
|
- self.set_titlebar(self.headerbar)
|
|
|
55
|
+ self._ui = get_builder('xml_console_window.ui')
|
|
|
56
|
+ self.set_titlebar(self._ui.headerbar)
|
|
61
|
57
|
jid = app.get_jid_from_account(account)
|
|
62
|
|
- self.headerbar.set_subtitle(jid)
|
|
|
58
|
+ self._ui.headerbar.set_subtitle(jid)
|
|
63
|
59
|
self.set_default_size(600, 600)
|
|
64
|
|
- self.add(self.box)
|
|
|
60
|
+ self.add(self._ui.box)
|
|
65
|
61
|
|
|
66
|
|
- self.paned.set_position(self.paned.get_property('max-position'))
|
|
|
62
|
+ self._ui.paned.set_position(self._ui.paned.get_property('max-position'))
|
|
67
|
63
|
|
|
68
|
64
|
button = get_image_button(
|
|
69
|
65
|
'edit-clear-all-symbolic', _('Clear'))
|
|
70
|
66
|
button.connect('clicked', self.on_clear)
|
|
71
|
|
- self.actionbar.pack_start(button)
|
|
|
67
|
+ self._ui.actionbar.pack_start(button)
|
|
72
|
68
|
|
|
73
|
69
|
button = get_image_button(
|
|
74
|
70
|
'applications-system-symbolic', _('Filter'))
|
|
75
|
71
|
button.connect('clicked', self.on_filter_options)
|
|
76
|
|
- self.actionbar.pack_start(button)
|
|
|
72
|
+ self._ui.actionbar.pack_start(button)
|
|
77
|
73
|
|
|
78
|
74
|
button = get_image_button(
|
|
79
|
75
|
'document-edit-symbolic', _('XML Input'), toggle=True)
|
|
80
|
76
|
button.connect('toggled', self.on_input)
|
|
81
|
|
- self.actionbar.pack_start(button)
|
|
|
77
|
+ self._ui.actionbar.pack_start(button)
|
|
|
78
|
+
|
|
|
79
|
+ button = get_image_button('insert-text-symbolic', _('Paste Last Input'))
|
|
|
80
|
+ button.connect('clicked', self.on_paste_last)
|
|
|
81
|
+ self._ui.actionbar.pack_start(button)
|
|
82
|
82
|
|
|
83
|
|
- button = get_image_button('emblem-ok-symbolic', _('Send'))
|
|
|
83
|
+ button = get_image_button('mail-send-symbolic', _('Send'))
|
|
84
|
84
|
button.connect('clicked', self.on_send)
|
|
85
|
|
- self.actionbar.pack_end(button)
|
|
|
85
|
+ self._ui.actionbar.pack_end(button)
|
|
86
|
86
|
|
|
87
|
|
- self.actionbar.pack_start(self.menubutton)
|
|
|
87
|
+ self._ui.actionbar.pack_start(self._ui.menubutton)
|
|
88
|
88
|
|
|
89
|
89
|
self.create_tags()
|
|
90
|
90
|
self.show_all()
|
|
91
|
91
|
|
|
92
|
|
- self.scrolled_input.hide()
|
|
93
|
|
- self.menubutton.hide()
|
|
|
92
|
+ self._ui.scrolled_input.hide()
|
|
|
93
|
+ self._ui.menubutton.hide()
|
|
94
|
94
|
|
|
95
|
95
|
self.connect("destroy", self.on_destroy)
|
|
96
|
96
|
self.connect('key_press_event', self.on_key_press_event)
|
|
97
|
|
- self.builder.connect_signals(self)
|
|
|
97
|
+ self._ui.connect_signals(self)
|
|
98
|
98
|
|
|
99
|
99
|
app.ged.register_event_handler(
|
|
100
|
100
|
'stanza-received', ged.GUI1, self._nec_stanza_received)
|
| ... |
... |
@@ -102,7 +102,7 @@ class XMLConsoleWindow(Gtk.Window): |
|
102
|
102
|
'stanza-sent', ged.GUI1, self._nec_stanza_sent)
|
|
103
|
103
|
|
|
104
|
104
|
def create_tags(self):
|
|
105
|
|
- buffer_ = self.textview.get_buffer()
|
|
|
105
|
+ buffer_ = self._ui.textview.get_buffer()
|
|
106
|
106
|
in_color = app.css_config.get_value(
|
|
107
|
107
|
'.gajim-incoming-nickname', StyleAttr.COLOR)
|
|
108
|
108
|
out_color = app.css_config.get_value(
|
| ... |
... |
@@ -144,9 +144,9 @@ class XMLConsoleWindow(Gtk.Window): |
|
144
|
144
|
'</iq>')
|
|
145
|
145
|
|
|
146
|
146
|
if input_text is not None:
|
|
147
|
|
- buffer_ = self.input.get_buffer()
|
|
|
147
|
+ buffer_ = self._ui.input_entry.get_buffer()
|
|
148
|
148
|
buffer_.set_text(input_text)
|
|
149
|
|
- self.input.grab_focus()
|
|
|
149
|
+ self._ui.input_entry.grab_focus()
|
|
150
|
150
|
|
|
151
|
151
|
def on_send(self, *args):
|
|
152
|
152
|
if app.connections[self.account].connected <= 1:
|
| ... |
... |
@@ -156,7 +156,7 @@ class XMLConsoleWindow(Gtk.Window): |
|
156
|
156
|
_('Please make sure you are connected with "%s".') %
|
|
157
|
157
|
self.account)
|
|
158
|
158
|
return
|
|
159
|
|
- buffer_ = self.input.get_buffer()
|
|
|
159
|
+ buffer_ = self._ui.input_entry.get_buffer()
|
|
160
|
160
|
begin_iter, end_iter = buffer_.get_bounds()
|
|
161
|
161
|
stanza = buffer_.get_text(begin_iter, end_iter, True)
|
|
162
|
162
|
if stanza:
|
| ... |
... |
@@ -168,16 +168,23 @@ class XMLConsoleWindow(Gtk.Window): |
|
168
|
168
|
ErrorDialog(_('Invalid Node'), str(error))
|
|
169
|
169
|
return
|
|
170
|
170
|
app.connections[self.account].connection.send(node)
|
|
|
171
|
+ self.last_stanza = stanza
|
|
171
|
172
|
buffer_.set_text('')
|
|
172
|
173
|
|
|
|
174
|
+ def on_paste_last(self, button):
|
|
|
175
|
+ buffer_ = self._ui.input_entry.get_buffer()
|
|
|
176
|
+ if buffer_ is not None and self.last_stanza is not None:
|
|
|
177
|
+ buffer_.set_text(self.last_stanza)
|
|
|
178
|
+ self._ui.input_entry.grab_focus()
|
|
|
179
|
+
|
|
173
|
180
|
def on_input(self, button, *args):
|
|
174
|
181
|
if button.get_active():
|
|
175
|
|
- self.paned.get_child2().show()
|
|
176
|
|
- self.menubutton.show()
|
|
177
|
|
- self.input.grab_focus()
|
|
|
182
|
+ self._ui.paned.get_child2().show()
|
|
|
183
|
+ self._ui.menubutton.show()
|
|
|
184
|
+ self._ui.input_entry.grab_focus()
|
|
178
|
185
|
else:
|
|
179
|
|
- self.paned.get_child2().hide()
|
|
180
|
|
- self.menubutton.hide()
|
|
|
186
|
+ self._ui.paned.get_child2().hide()
|
|
|
187
|
+ self._ui.menubutton.hide()
|
|
181
|
188
|
|
|
182
|
189
|
def on_filter_options(self, *args):
|
|
183
|
190
|
if self.filter_dialog:
|
| ... |
... |
@@ -215,7 +222,7 @@ class XMLConsoleWindow(Gtk.Window): |
|
215
|
222
|
self.filter_dialog = None
|
|
216
|
223
|
|
|
217
|
224
|
def on_clear(self, *args):
|
|
218
|
|
- self.textview.get_buffer().set_text('')
|
|
|
225
|
+ self._ui.textview.get_buffer().set_text('')
|
|
219
|
226
|
|
|
220
|
227
|
def on_destroy(self, *args):
|
|
221
|
228
|
del app.interface.instances[self.account]['xml_console']
|
| ... |
... |
@@ -230,7 +237,7 @@ class XMLConsoleWindow(Gtk.Window): |
|
230
|
237
|
def on_option(self, value, data):
|
|
231
|
238
|
setattr(self, data, value)
|
|
232
|
239
|
value = not value
|
|
233
|
|
- table = self.textview.get_buffer().get_tag_table()
|
|
|
240
|
+ table = self._ui.textview.get_buffer().get_tag_table()
|
|
234
|
241
|
tag = table.lookup(data)
|
|
235
|
242
|
if data in ('incoming', 'outgoing'):
|
|
236
|
243
|
if value:
|
| ... |
... |
@@ -256,9 +263,9 @@ class XMLConsoleWindow(Gtk.Window): |
|
256
|
263
|
if not stanza:
|
|
257
|
264
|
return
|
|
258
|
265
|
|
|
259
|
|
- at_the_end = util.at_the_end(self.scrolled)
|
|
|
266
|
+ at_the_end = util.at_the_end(self._ui.scrolled)
|
|
260
|
267
|
|
|
261
|
|
- buffer_ = self.textview.get_buffer()
|
|
|
268
|
+ buffer_ = self._ui.textview.get_buffer()
|
|
262
|
269
|
end_iter = buffer_.get_end_iter()
|
|
263
|
270
|
|
|
264
|
271
|
type_ = kind
|
| ... |
... |
@@ -278,4 +285,4 @@ class XMLConsoleWindow(Gtk.Window): |
|
278
|
285
|
buffer_.insert_with_tags_by_name(end_iter, stanza, type_, kind)
|
|
279
|
286
|
|
|
280
|
287
|
if at_the_end:
|
|
281
|
|
- GLib.idle_add(util.scroll_to_end, self.scrolled)
|
|
|
288
|
+ GLib.idle_add(util.scroll_to_end, self._ui.scrolled)
|