Skip to content

Commit

Permalink
GTK gui can reload serial ports, not only present the ones at boot
Browse files Browse the repository at this point in the history
  • Loading branch information
kxtells committed Nov 29, 2017
1 parent b29dd1a commit 9674356
Show file tree
Hide file tree
Showing 2 changed files with 27 additions and 5 deletions.
1 change: 1 addition & 0 deletions .gitignore
@@ -0,0 +1 @@
*.pyc
31 changes: 26 additions & 5 deletions gtkIndicator.py
Expand Up @@ -50,6 +50,7 @@ def serial_ports():
class gtkController():
def __init__(self):
self.serialPort = "No Port"
self.serialMenu = None
self.T = None
self.itemSet = []
pass
Expand Down Expand Up @@ -82,14 +83,34 @@ def portSelected(self, source):

self.item_connectedPort.set_label(self.serialPort)

def build_serial_submenu(self):
serialMenu = gtk.Menu()
def build_serial_submenu(self, source):
"""
Build the serialSubmenu assuming that it is un runtime (remove,
existing entries and call show in all new entries)
"""
if not self.serialMenu:
self.serialMenu = gtk.Menu()

for entry in self.serialMenu.get_children():
self.serialMenu.remove(entry)

for serialPort in serial_ports():
menuEntry = gtk.MenuItem(serialPort)
menuEntry.connect('activate', self.portSelected)
serialMenu.append(menuEntry)
self.serialMenu.append(menuEntry)
menuEntry.show()

sep = gtk.SeparatorMenuItem()
self.serialMenu.append(sep)
sep.show()

menuEntry = gtk.MenuItem("Reload")
menuEntry.connect('activate', self.build_serial_submenu)
self.serialMenu.append(menuEntry)
menuEntry.show()


return serialMenu
return self.serialMenu


def setItemSetStatus(self, onOff):
Expand All @@ -99,7 +120,7 @@ def setItemSetStatus(self, onOff):
[i.set_sensitive(False) for i in self.itemSet]

def build_gtk_menu(self):
serialMenu = self.build_serial_submenu()
serialMenu = self.build_serial_submenu(None)

menu = gtk.Menu()

Expand Down

0 comments on commit 9674356

Please sign in to comment.