Make Ctrl+Click on group button automatically create groups
This commit is contained in:
parent
1aa437d6e3
commit
c84821e36a
|
@ -879,7 +879,13 @@ class Terminal(Gtk.VBox):
|
||||||
focused=self.get_toplevel().get_focussed_terminal()
|
focused=self.get_toplevel().get_focussed_terminal()
|
||||||
if focused in targets: targets.remove(focused)
|
if focused in targets: targets.remove(focused)
|
||||||
if self != focused:
|
if self != focused:
|
||||||
if self.group == focused.group:
|
if focused.group is None and self.group is None:
|
||||||
|
# Create a new group and assign currently focused
|
||||||
|
# terminal to this group
|
||||||
|
new_group = self.terminator.new_random_group()
|
||||||
|
focused.set_group(None, new_group)
|
||||||
|
focused.titlebar.update()
|
||||||
|
elif self.group == focused.group:
|
||||||
new_group = None
|
new_group = None
|
||||||
else:
|
else:
|
||||||
new_group = focused.group
|
new_group = focused.group
|
||||||
|
|
|
@ -8,6 +8,8 @@ import gi
|
||||||
gi.require_version('Vte', '2.91')
|
gi.require_version('Vte', '2.91')
|
||||||
from gi.repository import Gtk, Gdk, Vte
|
from gi.repository import Gtk, Gdk, Vte
|
||||||
from gi.repository.GLib import GError
|
from gi.repository.GLib import GError
|
||||||
|
import itertools
|
||||||
|
import random
|
||||||
|
|
||||||
from . import borg
|
from . import borg
|
||||||
from .borg import Borg
|
from .borg import Borg
|
||||||
|
@ -16,6 +18,7 @@ from .keybindings import Keybindings
|
||||||
from .util import dbg, err, enumerate_descendants
|
from .util import dbg, err, enumerate_descendants
|
||||||
from .factory import Factory
|
from .factory import Factory
|
||||||
from .version import APP_NAME, APP_VERSION
|
from .version import APP_NAME, APP_VERSION
|
||||||
|
from .translation import _
|
||||||
|
|
||||||
try:
|
try:
|
||||||
from gi.repository import GdkX11
|
from gi.repository import GdkX11
|
||||||
|
@ -638,4 +641,18 @@ class Terminator(Borg):
|
||||||
def zoom_orig_all(self):
|
def zoom_orig_all(self):
|
||||||
for term in self.terminals:
|
for term in self.terminals:
|
||||||
term.zoom_orig()
|
term.zoom_orig()
|
||||||
|
|
||||||
|
def new_random_group(self):
|
||||||
|
defaultmembers=[_('Alpha'),_('Beta'),_('Gamma'),_('Delta'),_('Epsilon'),_('Zeta'),_('Eta'),
|
||||||
|
_('Theta'),_('Iota'),_('Kappa'),_('Lambda'),_('Mu'),_('Nu'),_('Xi'),
|
||||||
|
_('Omicron'),_('Pi'),_('Rho'),_('Sigma'),_('Tau'),_('Upsilon'),_('Phi'),
|
||||||
|
_('Chi'),_('Psi'),_('Omega')]
|
||||||
|
currentgroups=set(self.groups)
|
||||||
|
for i in range(1,4):
|
||||||
|
defaultgroups=set(map(''.join, list(itertools.product(defaultmembers,repeat=i))))
|
||||||
|
freegroups = list(defaultgroups-currentgroups)
|
||||||
|
if freegroups:
|
||||||
|
return random.choice(freegroups)
|
||||||
|
return ''
|
||||||
|
|
||||||
# vim: set expandtab ts=4 sw=4:
|
# vim: set expandtab ts=4 sw=4:
|
||||||
|
|
|
@ -5,8 +5,6 @@
|
||||||
from gi.repository import Gtk, Gdk
|
from gi.repository import Gtk, Gdk
|
||||||
from gi.repository import GObject
|
from gi.repository import GObject
|
||||||
from gi.repository import Pango
|
from gi.repository import Pango
|
||||||
import random
|
|
||||||
import itertools
|
|
||||||
|
|
||||||
from .version import APP_NAME
|
from .version import APP_NAME
|
||||||
from .util import dbg
|
from .util import dbg
|
||||||
|
@ -255,19 +253,7 @@ class Titlebar(Gtk.EventBox):
|
||||||
if self.terminal.group:
|
if self.terminal.group:
|
||||||
self.groupentry.set_text(self.terminal.group)
|
self.groupentry.set_text(self.terminal.group)
|
||||||
else:
|
else:
|
||||||
defaultmembers=[_('Alpha'),_('Beta'),_('Gamma'),_('Delta'),_('Epsilon'),_('Zeta'),_('Eta'),
|
self.groupentry.set_text(self.terminator.new_random_group())
|
||||||
_('Theta'),_('Iota'),_('Kappa'),_('Lambda'),_('Mu'),_('Nu'),_('Xi'),
|
|
||||||
_('Omicron'),_('Pi'),_('Rho'),_('Sigma'),_('Tau'),_('Upsilon'),_('Phi'),
|
|
||||||
_('Chi'),_('Psi'),_('Omega')]
|
|
||||||
currentgroups=set(self.terminator.groups)
|
|
||||||
for i in range(1,4):
|
|
||||||
defaultgroups=set(map(''.join, list(itertools.product(defaultmembers,repeat=i))))
|
|
||||||
freegroups = list(defaultgroups-currentgroups)
|
|
||||||
if freegroups:
|
|
||||||
self.groupentry.set_text(random.choice(freegroups))
|
|
||||||
break
|
|
||||||
else:
|
|
||||||
self.groupentry.set_text('')
|
|
||||||
self.groupentry.show()
|
self.groupentry.show()
|
||||||
self.grouplabel.hide()
|
self.grouplabel.hide()
|
||||||
self.groupentry.grab_focus()
|
self.groupentry.grab_focus()
|
||||||
|
|
Loading…
Reference in New Issue