Merge a branch from Przemek Wesolek which allows for retaining profile choice across splits/tabs. Closes LP#884329
This commit is contained in:
commit
d1835cecf1
|
@ -115,6 +115,11 @@ Controls how much to reduce the colour values of fonts in terminals that do not
|
||||||
factor. A font colour that was RGB(200,200,200) with an inactive_color_offset of 0.5 would set inactive terminals to
|
factor. A font colour that was RGB(200,200,200) with an inactive_color_offset of 0.5 would set inactive terminals to
|
||||||
RGB(100,100,100).
|
RGB(100,100,100).
|
||||||
.TP
|
.TP
|
||||||
|
.B always_split_with_profile
|
||||||
|
Controls whether splits/tabs will continue to use the profile of their peer terminal. If set to False, they will always use
|
||||||
|
the default profile.
|
||||||
|
Default value: \fBFalse\fR
|
||||||
|
.TP
|
||||||
.B enabled_plugins
|
.B enabled_plugins
|
||||||
A list of plugins which should be loaded by default. All other plugin classes will be ignored. The default value includes two
|
A list of plugins which should be loaded by default. All other plugin classes will be ignored. The default value includes two
|
||||||
plugins related to Launchpad, which are enabled by default to provide continuity with earlier releases where these were the
|
plugins related to Launchpad, which are enabled by default to provide continuity with earlier releases where these were the
|
||||||
|
|
|
@ -105,6 +105,7 @@ DEFAULTS = {
|
||||||
'LaunchpadCodeURLHandler',
|
'LaunchpadCodeURLHandler',
|
||||||
'APTURLHandler'],
|
'APTURLHandler'],
|
||||||
'suppress_multiple_term_dialog': False,
|
'suppress_multiple_term_dialog': False,
|
||||||
|
'always_split_with_profile': False,
|
||||||
},
|
},
|
||||||
'keybindings': {
|
'keybindings': {
|
||||||
'zoom_in' : '<Control>plus',
|
'zoom_in' : '<Control>plus',
|
||||||
|
|
|
@ -136,6 +136,8 @@ class Notebook(Container, gtk.Notebook):
|
||||||
sibling = maker.make('terminal')
|
sibling = maker.make('terminal')
|
||||||
sibling.set_cwd(cwd)
|
sibling.set_cwd(cwd)
|
||||||
sibling.spawn_child()
|
sibling.spawn_child()
|
||||||
|
if self.config['always_split_with_profile']:
|
||||||
|
sibling.force_set_profile(None, widget.get_profile())
|
||||||
|
|
||||||
self.insert_page(container, None, page_num)
|
self.insert_page(container, None, page_num)
|
||||||
self.set_tab_reorderable(container, True)
|
self.set_tab_reorderable(container, True)
|
||||||
|
@ -195,7 +197,7 @@ class Notebook(Container, gtk.Notebook):
|
||||||
children.append(self.get_nth_page(page))
|
children.append(self.get_nth_page(page))
|
||||||
return(children)
|
return(children)
|
||||||
|
|
||||||
def newtab(self, debugtab=False, widget=None, cwd=None, metadata=None):
|
def newtab(self, debugtab=False, widget=None, cwd=None, metadata=None, profile=None):
|
||||||
"""Add a new tab, optionally supplying a child widget"""
|
"""Add a new tab, optionally supplying a child widget"""
|
||||||
dbg('making a new tab')
|
dbg('making a new tab')
|
||||||
maker = Factory()
|
maker = Factory()
|
||||||
|
@ -206,6 +208,8 @@ class Notebook(Container, gtk.Notebook):
|
||||||
if cwd:
|
if cwd:
|
||||||
widget.set_cwd(cwd)
|
widget.set_cwd(cwd)
|
||||||
widget.spawn_child(debugserver=debugtab)
|
widget.spawn_child(debugserver=debugtab)
|
||||||
|
if profile and self.config['always_split_with_profile']:
|
||||||
|
widget.force_set_profile(None, profile)
|
||||||
|
|
||||||
signals = {'close-term': self.wrapcloseterm,
|
signals = {'close-term': self.wrapcloseterm,
|
||||||
'split-horiz': self.split_horiz,
|
'split-horiz': self.split_horiz,
|
||||||
|
|
|
@ -50,6 +50,8 @@ class Paned(Container):
|
||||||
sibling = self.maker.make('terminal')
|
sibling = self.maker.make('terminal')
|
||||||
sibling.set_cwd(cwd)
|
sibling.set_cwd(cwd)
|
||||||
sibling.spawn_child()
|
sibling.spawn_child()
|
||||||
|
if self.config['always_split_with_profile']:
|
||||||
|
sibling.force_set_profile(None, widget.get_profile())
|
||||||
|
|
||||||
self.add(container)
|
self.add(container)
|
||||||
self.show_all()
|
self.show_all()
|
||||||
|
|
|
@ -382,7 +382,7 @@
|
||||||
<object class="GtkTable" id="global_config_table">
|
<object class="GtkTable" id="global_config_table">
|
||||||
<property name="visible">True</property>
|
<property name="visible">True</property>
|
||||||
<property name="can_focus">False</property>
|
<property name="can_focus">False</property>
|
||||||
<property name="n_rows">15</property>
|
<property name="n_rows">16</property>
|
||||||
<property name="n_columns">2</property>
|
<property name="n_columns">2</property>
|
||||||
<property name="column_spacing">6</property>
|
<property name="column_spacing">6</property>
|
||||||
<child>
|
<child>
|
||||||
|
@ -857,6 +857,36 @@
|
||||||
<property name="bottom_attach">15</property>
|
<property name="bottom_attach">15</property>
|
||||||
</packing>
|
</packing>
|
||||||
</child>
|
</child>
|
||||||
|
<child>
|
||||||
|
<object class="GtkLabel" id="label34">
|
||||||
|
<property name="visible">True</property>
|
||||||
|
<property name="can_focus">False</property>
|
||||||
|
<property name="label" translatable="yes">Re-use profiles for new terminals</property>
|
||||||
|
</object>
|
||||||
|
<packing>
|
||||||
|
<property name="top_attach">15</property>
|
||||||
|
<property name="bottom_attach">16</property>
|
||||||
|
</packing>
|
||||||
|
</child>
|
||||||
|
<child>
|
||||||
|
<object class="GtkCheckButton" id="always_split_with_profile">
|
||||||
|
<property name="visible">True</property>
|
||||||
|
<property name="can_focus">True</property>
|
||||||
|
<property name="receives_default">False</property>
|
||||||
|
<property name="use_action_appearance">False</property>
|
||||||
|
<property name="xalign">0</property>
|
||||||
|
<property name="draw_indicator">True</property>
|
||||||
|
<signal name="toggled" handler="on_always_split_with_profile_toggled" swapped="no"/>
|
||||||
|
</object>
|
||||||
|
<packing>
|
||||||
|
<property name="left_attach">1</property>
|
||||||
|
<property name="right_attach">2</property>
|
||||||
|
<property name="top_attach">15</property>
|
||||||
|
<property name="bottom_attach">16</property>
|
||||||
|
<property name="x_options">GTK_EXPAND</property>
|
||||||
|
<property name="y_options">GTK_EXPAND</property>
|
||||||
|
</packing>
|
||||||
|
</child>
|
||||||
</object>
|
</object>
|
||||||
<packing>
|
<packing>
|
||||||
<property name="expand">True</property>
|
<property name="expand">True</property>
|
||||||
|
|
|
@ -238,6 +238,9 @@ class PrefsEditor:
|
||||||
#Hide size text from the title bar
|
#Hide size text from the title bar
|
||||||
widget = guiget('title_hide_sizetextcheck')
|
widget = guiget('title_hide_sizetextcheck')
|
||||||
widget.set_active(self.config['title_hide_sizetext'])
|
widget.set_active(self.config['title_hide_sizetext'])
|
||||||
|
#Always split with profile
|
||||||
|
widget = guiget('always_split_with_profile')
|
||||||
|
widget.set_active(self.config['always_split_with_profile'])
|
||||||
|
|
||||||
## Profile tab
|
## Profile tab
|
||||||
# Populate the profile list
|
# Populate the profile list
|
||||||
|
@ -610,6 +613,11 @@ class PrefsEditor:
|
||||||
self.config['title_hide_sizetext'] = widget.get_active()
|
self.config['title_hide_sizetext'] = widget.get_active()
|
||||||
self.config.save()
|
self.config.save()
|
||||||
|
|
||||||
|
def on_always_split_with_profile_toggled(self, widget):
|
||||||
|
"""Always split with profile setting changed"""
|
||||||
|
self.config['always_split_with_profile'] = widget.get_active()
|
||||||
|
self.config.save()
|
||||||
|
|
||||||
def on_allow_bold_checkbutton_toggled(self, widget):
|
def on_allow_bold_checkbutton_toggled(self, widget):
|
||||||
"""Allow bold setting changed"""
|
"""Allow bold setting changed"""
|
||||||
self.config['allow_bold'] = widget.get_active()
|
self.config['allow_bold'] = widget.get_active()
|
||||||
|
|
|
@ -248,6 +248,7 @@ class Window(Container, gtk.Window):
|
||||||
def tab_new(self, widget=None, debugtab=False, _param1=None, _param2=None):
|
def tab_new(self, widget=None, debugtab=False, _param1=None, _param2=None):
|
||||||
"""Make a new tab"""
|
"""Make a new tab"""
|
||||||
cwd = None
|
cwd = None
|
||||||
|
profile = None
|
||||||
|
|
||||||
if self.get_property('term_zoomed') == True:
|
if self.get_property('term_zoomed') == True:
|
||||||
err("You can't create a tab while a terminal is maximised/zoomed")
|
err("You can't create a tab while a terminal is maximised/zoomed")
|
||||||
|
@ -255,11 +256,13 @@ class Window(Container, gtk.Window):
|
||||||
|
|
||||||
if widget:
|
if widget:
|
||||||
cwd = widget.get_cwd()
|
cwd = widget.get_cwd()
|
||||||
|
profile = widget.get_profile()
|
||||||
|
|
||||||
maker = Factory()
|
maker = Factory()
|
||||||
if not self.is_child_notebook():
|
if not self.is_child_notebook():
|
||||||
dbg('Making a new Notebook')
|
dbg('Making a new Notebook')
|
||||||
notebook = maker.make('Notebook', window=self)
|
notebook = maker.make('Notebook', window=self)
|
||||||
self.get_child().newtab(debugtab, cwd=cwd)
|
self.get_child().newtab(debugtab, cwd=cwd, profile=profile)
|
||||||
|
|
||||||
def on_delete_event(self, window, event, data=None):
|
def on_delete_event(self, window, event, data=None):
|
||||||
"""Handle a window close request"""
|
"""Handle a window close request"""
|
||||||
|
@ -456,6 +459,9 @@ class Window(Container, gtk.Window):
|
||||||
sibling = maker.make('Terminal')
|
sibling = maker.make('Terminal')
|
||||||
sibling.set_cwd(cwd)
|
sibling.set_cwd(cwd)
|
||||||
sibling.spawn_child()
|
sibling.spawn_child()
|
||||||
|
if self.config['always_split_with_profile']:
|
||||||
|
sibling.force_set_profile(None, widget.get_profile())
|
||||||
|
|
||||||
self.add(container)
|
self.add(container)
|
||||||
container.show_all()
|
container.show_all()
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue