Final part of the GUI rework for the group stuff.
This commit is contained in:
parent
0bc670ac1d
commit
f405a2c87f
|
@ -1244,34 +1244,124 @@ text/plain
|
||||||
return (widget_x, menu_y, 1)
|
return (widget_x, menu_y, 1)
|
||||||
|
|
||||||
def create_group (self, item):
|
def create_group (self, item):
|
||||||
|
self.groupingscope = 0
|
||||||
|
grplist=self.terminator.groupings[:]
|
||||||
|
grplist.sort()
|
||||||
|
|
||||||
win = gtk.Window ()
|
win = gtk.Window ()
|
||||||
vbox = gtk.VBox ()
|
vbox = gtk.VBox (False, 6)
|
||||||
hbox = gtk.HBox ()
|
vbox.set_border_width(5)
|
||||||
entrybox = gtk.HBox ()
|
|
||||||
win.add (vbox)
|
win.add (vbox)
|
||||||
label = gtk.Label (_("Group name:"))
|
|
||||||
entry = gtk.Entry ()
|
# Populate the "Assign..." Section
|
||||||
|
contentvbox = gtk.VBox (False, 6)
|
||||||
|
selframe = gtk.Frame()
|
||||||
|
selframe_label = gtk.Label()
|
||||||
|
selframe_label.set_markup(_("<b>Assign...</b>"))
|
||||||
|
selframe.set_shadow_type(gtk.SHADOW_NONE)
|
||||||
|
selframe.set_label_widget(selframe_label)
|
||||||
|
selframe_align = gtk.Alignment(0, 0, 1, 1)
|
||||||
|
selframe_align.set_padding(0, 0, 12, 0)
|
||||||
|
selframevbox = gtk.VBox ()
|
||||||
|
selframehbox = gtk.HBox ()
|
||||||
|
|
||||||
|
# Populate the Combo with existing group names (None at the top)
|
||||||
|
sel_combo = gtk.combo_box_new_text()
|
||||||
|
sel_combo.append_text("*No Group*")
|
||||||
|
for grp in grplist:
|
||||||
|
sel_combo.append_text(grp)
|
||||||
|
sel_combo.set_sensitive(False)
|
||||||
|
|
||||||
|
# Here are the radio buttons
|
||||||
|
groupitem = None
|
||||||
|
|
||||||
|
groupitem = gtk.RadioButton (groupitem, _("Terminal"))
|
||||||
|
groupitem.set_active (True)
|
||||||
|
groupitem.connect ("toggled", self.set_groupingscope, 0, sel_combo)
|
||||||
|
selframehbox.pack_start (groupitem)
|
||||||
|
|
||||||
|
groupitem = gtk.RadioButton (groupitem, _("Group"))
|
||||||
|
groupitem.connect ("toggled", self.set_groupingscope, 1, sel_combo)
|
||||||
|
selframehbox.pack_start (groupitem)
|
||||||
|
|
||||||
|
groupitem = gtk.RadioButton (groupitem, _("All"))
|
||||||
|
groupitem.connect ("toggled", self.set_groupingscope, 2, sel_combo)
|
||||||
|
selframehbox.pack_start (groupitem)
|
||||||
|
|
||||||
|
selframevbox.pack_start(selframehbox, True, True)
|
||||||
|
selframevbox.pack_start(sel_combo, True, True)
|
||||||
|
selframe_align.add(selframevbox)
|
||||||
|
selframe.add(selframe_align)
|
||||||
|
contentvbox.pack_start(selframe)
|
||||||
|
|
||||||
|
# Populate the "To..." Section
|
||||||
|
tgtframe = gtk.Frame()
|
||||||
|
tgtframe_label = gtk.Label()
|
||||||
|
tgtframe_label.set_markup(_("<b>To...</b>"))
|
||||||
|
tgtframe.set_shadow_type(gtk.SHADOW_NONE)
|
||||||
|
tgtframe.set_label_widget(tgtframe_label)
|
||||||
|
tgtframe_align = gtk.Alignment(0, 0, 1, 1)
|
||||||
|
tgtframe_align.set_padding(0, 0, 12, 0)
|
||||||
|
tgtframevbox = gtk.VBox ()
|
||||||
|
|
||||||
|
# Populate the Combo with existing group names (None not needed)
|
||||||
|
tgt_comboentry = gtk.combo_box_entry_new_text()
|
||||||
|
for grp in grplist:
|
||||||
|
tgt_comboentry.append_text(grp)
|
||||||
|
|
||||||
|
tgtframevbox.pack_start(tgt_comboentry, True, True)
|
||||||
|
|
||||||
|
tgtframe_align.add(tgtframevbox)
|
||||||
|
tgtframe.add(tgtframe_align)
|
||||||
|
contentvbox.pack_start(tgtframe)
|
||||||
|
|
||||||
okbut = gtk.Button (stock=gtk.STOCK_OK)
|
okbut = gtk.Button (stock=gtk.STOCK_OK)
|
||||||
canbut = gtk.Button (stock=gtk.STOCK_CANCEL)
|
canbut = gtk.Button (stock=gtk.STOCK_CANCEL)
|
||||||
|
hbuttonbox = gtk.HButtonBox()
|
||||||
|
hbuttonbox.set_layout(gtk.BUTTONBOX_END)
|
||||||
|
hbuttonbox.pack_start (canbut, True, True)
|
||||||
|
hbuttonbox.pack_start (okbut, True, True)
|
||||||
|
|
||||||
entrybox.pack_start (label, False, True)
|
vbox.pack_start (contentvbox, False, True)
|
||||||
entrybox.pack_start (entry, True, True)
|
vbox.pack_end (hbuttonbox, False, True)
|
||||||
hbox.pack_end (okbut, False, False)
|
|
||||||
hbox.pack_end (canbut, False, False)
|
|
||||||
vbox.pack_start (entrybox, False, True)
|
|
||||||
vbox.pack_start (hbox, False, True)
|
|
||||||
|
|
||||||
canbut.connect ("clicked", lambda kill: win.destroy())
|
canbut.connect ("clicked", lambda kill: win.destroy())
|
||||||
okbut.connect ("clicked", self.do_create_group, win, entry)
|
okbut.connect ("clicked", self.do_create_group, win, sel_combo, tgt_comboentry)
|
||||||
entry.connect ("activate", self.do_create_group, win, entry)
|
tgt_comboentry.child.connect ("activate", self.do_create_group, win, sel_combo, tgt_comboentry)
|
||||||
|
|
||||||
|
tgt_comboentry.grab_focus()
|
||||||
win.show_all ()
|
win.show_all ()
|
||||||
|
|
||||||
def do_create_group (self, widget, window, entry):
|
def set_groupingscope(self, widget, scope=None, sel_combo=None):
|
||||||
name = entry.get_text ()
|
if widget.get_active():
|
||||||
if name not in self.terminator.groupings:
|
self.groupingscope = scope
|
||||||
self.terminator.groupings.append (name)
|
if self.groupingscope == 1:
|
||||||
self.set_group (None, name)
|
sel_combo.set_sensitive(True)
|
||||||
|
else:
|
||||||
|
sel_combo.set_sensitive(False)
|
||||||
|
|
||||||
|
def do_create_group (self, widget, window, src, tgt):
|
||||||
|
tgt_name = tgt.child.get_text()
|
||||||
|
try:
|
||||||
|
src_name = src.get_active_text()
|
||||||
|
except:
|
||||||
|
src_name = None
|
||||||
|
|
||||||
|
if tgt_name == "" or (self.groupingscope == 1 and src_name == None):
|
||||||
|
return False
|
||||||
|
|
||||||
|
if tgt_name not in self.terminator.groupings:
|
||||||
|
self.terminator.groupings.append (tgt_name)
|
||||||
|
|
||||||
|
if self.groupingscope == 2:
|
||||||
|
for term in self.terminator.term_list:
|
||||||
|
term.set_group (None, tgt_name)
|
||||||
|
elif self.groupingscope == 1:
|
||||||
|
for term in self.terminator.term_list:
|
||||||
|
if term._group == src_name or (src_name == "*No Group*" and term._group == None):
|
||||||
|
term.set_group (None, tgt_name)
|
||||||
|
else:
|
||||||
|
self.set_group (None, tgt_name)
|
||||||
|
|
||||||
window.destroy ()
|
window.destroy ()
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue