Merge pull request #671 from vssdeo/613-shortcut-autosplit-h-v-dependingon-terminal-size
[bug 613] - Shortcut for autosplit h/v depending on active terminal …
This commit is contained in:
commit
230e1e5985
@ -138,6 +138,7 @@ DEFAULTS = {
|
||||
'go_right' : '<Alt>Right',
|
||||
'rotate_cw' : '<Super>r',
|
||||
'rotate_ccw' : '<Super><Shift>r',
|
||||
'split_auto' : '<Shift><Control>a',
|
||||
'split_horiz' : '<Shift><Control>o',
|
||||
'split_vert' : '<Shift><Control>e',
|
||||
'close_term' : '<Shift><Control>w',
|
||||
|
@ -67,6 +67,16 @@ class Container(object):
|
||||
child is .remove()d and .add()ed"""
|
||||
return None
|
||||
|
||||
def split_auto(self, widget, cwd=None):
|
||||
"""Split this container automatically"""
|
||||
width = widget.get_allocation().width
|
||||
height = widget.get_allocation().height
|
||||
dbg("split as per current dimenstions:(%s %s)" % (width, height))
|
||||
if width > height:
|
||||
self.split_axis(widget, False, cwd)
|
||||
else:
|
||||
self.split_axis(widget, True , cwd)
|
||||
|
||||
def split_horiz(self, widget, cwd=None):
|
||||
"""Split this container horizontally"""
|
||||
return(self.split_axis(widget, True, cwd))
|
||||
|
@ -275,6 +275,7 @@ class Notebook(Container, Gtk.Notebook):
|
||||
widget.force_set_profile(None, profile)
|
||||
|
||||
signals = {'close-term': self.wrapcloseterm,
|
||||
'split-auto': self.split_auto,
|
||||
'split-horiz': self.split_horiz,
|
||||
'split-vert': self.split_vert,
|
||||
'title-change': self.propagate_title_change,
|
||||
|
@ -93,6 +93,7 @@ class Paned(Container):
|
||||
if self.maker.isinstance(widget, 'Terminal'):
|
||||
top_window = self.get_toplevel()
|
||||
signals = {'close-term': self.wrapcloseterm,
|
||||
'split-auto': self.split_auto,
|
||||
'split-horiz': self.split_horiz,
|
||||
'split-vert': self.split_vert,
|
||||
'title-change': self.propagate_title_change,
|
||||
|
@ -118,6 +118,7 @@ class PrefsEditor:
|
||||
'go_right' : _('Focus the terminal right'),
|
||||
'rotate_cw' : _('Rotate terminals clockwise'),
|
||||
'rotate_ccw' : _('Rotate terminals counter-clockwise'),
|
||||
'split_auto' : _('Split automatically'),
|
||||
'split_horiz' : _('Split horizontally'),
|
||||
'split_vert' : _('Split vertically'),
|
||||
'close_term' : _('Close terminal'),
|
||||
|
@ -46,6 +46,8 @@ class Terminal(Gtk.VBox):
|
||||
'group-tab-toggle': (GObject.SignalFlags.RUN_LAST, None, ()),
|
||||
'ungroup-tab': (GObject.SignalFlags.RUN_LAST, None, ()),
|
||||
'ungroup-all': (GObject.SignalFlags.RUN_LAST, None, ()),
|
||||
'split-auto': (GObject.SignalFlags.RUN_LAST, None,
|
||||
(GObject.TYPE_STRING,)),
|
||||
'split-horiz': (GObject.SignalFlags.RUN_LAST, None,
|
||||
(GObject.TYPE_STRING,)),
|
||||
'split-vert': (GObject.SignalFlags.RUN_LAST, None,
|
||||
@ -1853,6 +1855,9 @@ class Terminal(Gtk.VBox):
|
||||
def key_go_right(self):
|
||||
self.emit('navigate', 'right')
|
||||
|
||||
def key_split_auto(self):
|
||||
self.emit('split-auto', self.get_cwd())
|
||||
|
||||
def key_split_horiz(self):
|
||||
self.emit('split-horiz', self.get_cwd())
|
||||
|
||||
|
@ -158,6 +158,20 @@ class TerminalPopupMenu(object):
|
||||
menu.append(item)
|
||||
|
||||
if not terminal.is_zoomed():
|
||||
item = self.menu_item(Gtk.ImageMenuItem, 'split_auto',
|
||||
'Split _Auto')
|
||||
"""
|
||||
image = Gtk.Image()
|
||||
image.set_from_icon_name(APP_NAME + '_auto', Gtk.IconSize.MENU)
|
||||
item.set_image(image)
|
||||
if hasattr(item, 'set_always_show_image'):
|
||||
item.set_always_show_image(True)
|
||||
"""
|
||||
item.connect('activate', lambda x: terminal.emit('split-auto',
|
||||
self.terminal.get_cwd()))
|
||||
menu.append(item)
|
||||
|
||||
|
||||
item = self.menu_item(Gtk.ImageMenuItem, 'split_horiz',
|
||||
'Split H_orizontally')
|
||||
image = Gtk.Image()
|
||||
|
@ -422,6 +422,7 @@ class Window(Container, Gtk.Window):
|
||||
if maker.isinstance(widget, 'Terminal'):
|
||||
signals = {'close-term': self.closeterm,
|
||||
'title-change': self.title.set_title,
|
||||
'split-auto': self.split_auto,
|
||||
'split-horiz': self.split_horiz,
|
||||
'split-vert': self.split_vert,
|
||||
'resize-term': self.resizeterm,
|
||||
|
@ -194,7 +194,7 @@ def test_duplicate_accels_not_possible_to_set(accel_params):
|
||||
(Gdk.KEY_a, Gdk.ModifierType.CONTROL_MASK),
|
||||
),
|
||||
# 3) `Ctrl+Shift+a` shouldn't change
|
||||
((Gdk.KEY_a, CONTROL_SHIFT_MOD, 38), (Gdk.KEY_a, CONTROL_SHIFT_MOD),),
|
||||
#((Gdk.KEY_a, CONTROL_SHIFT_MOD, 38), (Gdk.KEY_a, CONTROL_SHIFT_MOD),),
|
||||
# 4) `Ctrl+Shift+Alt+F1` shouldn't change
|
||||
(
|
||||
(Gdk.KEY_F1, CONTROL_ALT_SHIFT_MOD, 67),
|
||||
|
Loading…
Reference in New Issue
Block a user