self._new_notebook_page(scrolled_window, '_Text dump')
self.show_all()
+ TRACKER.add(self)
def __destroy(self, widget):
if do_diff():
CODEC_TREE[card][codec].revert()
print "Settings for all codecs were reverted..."
- gtk.main_quit()
+ TRACKER.close(self)
def simple_dialog(self, type, msg):
dialog = gtk.MessageDialog(self,
self.queue_draw()
def node_win_destroy(self, widget, node):
+ TRACKER.close(node.win)
node.win = None
def open_node(self, widget, node):
win.connect("destroy", self.node_win_destroy, node)
win.show_all()
node.win = win
+ TRACKER.add(win)
else:
node.win.present()
hScrollbar.set_adjustment(hAdjust)
self.show_all()
GRAPH_WINDOWS[codec] = self
+ TRACKER.add(self)
def __destroy(self, widget):
del GRAPH_WINDOWS[self.codec]
+ TRACKER.close(self)
def create_graph(codec):
if codec in GRAPH_WINDOWS:
vbox.pack_start(self.__build_card_info(card), False, False)
mframe.add(vbox)
self.add_with_viewport(mframe)
+
+class TrackWindows:
+
+ def __init__(self):
+ self.windows = []
+
+ def add(self, win):
+ if not win in self.windows:
+ self.windows.append(win)
+
+ def close(self, win):
+ if win in self.windows:
+ self.windows.remove(win)
+ if not self.windows:
+ gtk.main_quit()
+
+TRACKER = TrackWindows()