Skip to content

Commit b64025d

Browse files
authored
Merge pull request #1649 from hansu/gmoccapy-gcode-view-2.8
Gmoccapy: fix gcode view issue (2.8)
2 parents 9b2b567 + 309462c commit b64025d

2 files changed

Lines changed: 16 additions & 3 deletions

File tree

lib/python/gladevcp/hal_sourceview.py

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -46,6 +46,7 @@ def __init__(self, *a, **kw):
4646
self.buf = gtksourceview.Buffer()
4747
self.buf.set_max_undo_levels(20)
4848
self.buf.connect('changed', self.update_iter)
49+
self.buf.connect('modified-changed', self.modified_changed)
4950
self.set_buffer(self.buf)
5051
self.lm = gtksourceview.LanguageManager()
5152
self.sm = gtksourceview.StyleSchemeManager()
@@ -206,6 +207,9 @@ def update_iter(self,widget=None):
206207
self.match_start = self.match_end = None
207208
start, end = self.buf.get_bounds()
208209
self.buf.remove_tag(self.found_text_tag, start, end)
210+
211+
def modified_changed(self,widget):
212+
self.update_iter()
209213
self.emit("changed")
210214

211215
# This will search the buffer for a specified text string.
@@ -331,6 +335,9 @@ def do_get_property(self, property):
331335

332336
class EMC_Action_SaveAs(EMC_Action_Save):
333337
__gtype_name__ = 'EMC_Action_SaveAs'
338+
__gsignals__ = {
339+
'saved-as': (gobject.SIGNAL_RUN_FIRST, gobject.TYPE_NONE, ()),
340+
}
334341

335342
def __init__(self, *a, **kw):
336343
_EMC_Action.__init__(self, *a, **kw)
@@ -353,3 +360,4 @@ def on_activate(self, w):
353360
if r == gtk.RESPONSE_OK:
354361
self.save(fn)
355362
self.currentfolder = os.path.dirname(fn)
363+
self.emit('saved-as')

src/emc/usr_intf/gmoccapy/gmoccapy.py

Lines changed: 8 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -210,6 +210,7 @@ def __init__(self, argv):
210210
self.gcodeerror = "" # we need this to avoid multiple messages of the same error
211211

212212
self.file_changed = False
213+
self.widgets.hal_action_saveas.connect("saved-as", self.saved_as)
213214

214215
self.lathe_mode = None # we need this to check if we have a lathe config
215216
self.backtool_lathe = False
@@ -4679,9 +4680,10 @@ def on_btn_edit_clicked(self, widget, data=None):
46794680
self.gcodeerror = ""
46804681
self.file_changed = False
46814682

4682-
def on_gcode_view_changed(self, state):
4683-
print("gcode view changed")
4684-
self.file_changed = True
4683+
def on_gcode_view_changed(self, widget):
4684+
buf_modified = self.widgets.gcode_view.buf.get_modified()
4685+
print("gcode view changed (modified: {})".format(buf_modified))
4686+
self.file_changed = buf_modified
46854687

46864688
# Search and replace handling in edit mode
46874689
# undo changes while in edit mode
@@ -4760,6 +4762,9 @@ def on_btn_new_clicked(self, widget, data=None):
47604762
self.widgets.gcode_view.grab_focus()
47614763
self.widgets.btn_save.set_sensitive(False)
47624764

4765+
def saved_as(self, widget):
4766+
self.widgets.btn_save.set_sensitive(True)
4767+
47634768
def on_tbtn_optional_blocks_toggled(self, widget, data=None):
47644769
opt_blocks = widget.get_active()
47654770
self.command.set_block_delete(opt_blocks)

0 commit comments

Comments
 (0)