Configurable broadcast group
This commit is contained in:
parent
72e605d30d
commit
ec649aaa31
|
@ -61,6 +61,10 @@ Defines where tabs are placed. Can be any of: top, left, right, bottom.
|
|||
If this is set to "hidden", the tab bar will not be shown. Note that hiding the tab bar is very confusing and not recommended.
|
||||
Default value: \fBtop\fR
|
||||
.TP
|
||||
.B broadcast_group
|
||||
Defines broadcast behavior. Can be any of: all, group, off.
|
||||
Default value: \fBgroup\fR
|
||||
.TP
|
||||
.B close_button_on_tab \fR(boolean)
|
||||
If set to True, tabs will have a close button on them.
|
||||
Default value: \fBTrue\fR
|
||||
|
|
|
@ -83,6 +83,7 @@ DEFAULTS = {
|
|||
'window_state' : 'normal',
|
||||
'borderless' : False,
|
||||
'tab_position' : 'top',
|
||||
'broadcast_group' : 'group',
|
||||
'close_button_on_tab' : True,
|
||||
'hide_tabbar' : False,
|
||||
'scroll_tabbar' : False,
|
||||
|
|
|
@ -256,6 +256,23 @@
|
|||
</row>
|
||||
</data>
|
||||
</object>
|
||||
<object class="GtkListStore" id="BroadcastGroupListStore">
|
||||
<columns>
|
||||
<!-- column-name position -->
|
||||
<column type="gchararray"/>
|
||||
</columns>
|
||||
<data>
|
||||
<row>
|
||||
<col id="0" translatable="yes">All</col>
|
||||
</row>
|
||||
<row>
|
||||
<col id="0" translatable="yes">Group</col>
|
||||
</row>
|
||||
<row>
|
||||
<col id="0" translatable="yes">None</col>
|
||||
</row>
|
||||
</data>
|
||||
</object>
|
||||
<object class="GtkListStore" id="WindowStateListStore">
|
||||
<columns>
|
||||
<!-- column-name state -->
|
||||
|
@ -530,6 +547,42 @@
|
|||
<property name="y_options">GTK_EXPAND</property>
|
||||
</packing>
|
||||
</child>
|
||||
<child>
|
||||
<object class="GtkLabel" id="label41">
|
||||
<property name="visible">True</property>
|
||||
<property name="can_focus">False</property>
|
||||
<property name="label" translatable="yes">Broadcast group</property>
|
||||
</object>
|
||||
<packing>
|
||||
<property name="top_attach">18</property>
|
||||
<property name="bottom_attach">19</property>
|
||||
<property name="x_options"></property>
|
||||
<property name="y_options"></property>
|
||||
</packing>
|
||||
</child>
|
||||
<child>
|
||||
<object class="GtkComboBox" id="broadcastgroup">
|
||||
<property name="visible">True</property>
|
||||
<property name="can_focus">False</property>
|
||||
<property name="model">BroadcastGroupListStore</property>
|
||||
<property name="active">0</property>
|
||||
<signal name="changed" handler="on_broadcastgroup_changed" swapped="no"/>
|
||||
<child>
|
||||
<object class="GtkCellRendererText" id="cellrenderertext18"/>
|
||||
<attributes>
|
||||
<attribute name="text">0</attribute>
|
||||
</attributes>
|
||||
</child>
|
||||
</object>
|
||||
<packing>
|
||||
<property name="left_attach">1</property>
|
||||
<property name="right_attach">2</property>
|
||||
<property name="top_attach">18</property>
|
||||
<property name="bottom_attach">19</property>
|
||||
<property name="x_options"></property>
|
||||
<property name="y_options">GTK_EXPAND</property>
|
||||
</packing>
|
||||
</child>
|
||||
<child>
|
||||
<object class="GtkLabel" id="label6">
|
||||
<property name="visible">True</property>
|
||||
|
|
|
@ -248,6 +248,16 @@ class PrefsEditor:
|
|||
else:
|
||||
active = 0
|
||||
widget.set_active(active)
|
||||
# Broadcast group
|
||||
option = self.config['broadcast_group']
|
||||
widget = guiget('broadcastgroup')
|
||||
if option == 'all':
|
||||
active = 0
|
||||
elif option == 'off':
|
||||
active = 2
|
||||
else:
|
||||
active = 1
|
||||
widget.set_active(active)
|
||||
# scroll_tabbar
|
||||
widget = guiget('scrolltabbarcheck')
|
||||
widget.set_active(self.config['scroll_tabbar'])
|
||||
|
@ -1007,6 +1017,18 @@ class PrefsEditor:
|
|||
self.config['tab_position'] = value
|
||||
self.config.save()
|
||||
|
||||
def on_broadcastgroup_changed(self, widget):
|
||||
"""Broadcast group changed"""
|
||||
selected = widget.get_active()
|
||||
if selected == 0:
|
||||
value = 'all'
|
||||
elif selected == 2:
|
||||
value = 'off'
|
||||
else:
|
||||
value = 'group'
|
||||
self.config['broadcast_group'] = value
|
||||
self.config.save()
|
||||
|
||||
def on_winstatecombo_changed(self, widget):
|
||||
"""Window state changed"""
|
||||
selected = widget.get_active()
|
||||
|
|
|
@ -56,10 +56,10 @@ class Terminator(Borg):
|
|||
self.terminals = []
|
||||
if not self.groups:
|
||||
self.groups = []
|
||||
if self.groupsend == None:
|
||||
self.groupsend = self.groupsend_type['off']
|
||||
if not self.config:
|
||||
self.config = Config()
|
||||
if self.groupsend == None:
|
||||
self.groupsend = self.groupsend_type[self.config['broadcast_group']]
|
||||
if not self.keybindings:
|
||||
self.keybindings = Keybindings()
|
||||
self.keybindings.configure(self.config['keybindings'])
|
||||
|
@ -370,6 +370,9 @@ class Terminator(Borg):
|
|||
if maker.isinstance(child, 'Notebook'):
|
||||
child.configure()
|
||||
|
||||
# Set broadcasting group
|
||||
self.groupsend = self.groupsend_type[self.config['broadcast_group']]
|
||||
|
||||
def create_group(self, name):
|
||||
"""Create a new group"""
|
||||
if name not in self.groups:
|
||||
|
|
Loading…
Reference in New Issue