* Merge feature branch for tab/terminal title editing from Haim Daniel

* Tweak the shortcuts
* Update the HTML manual
* Add a missing image
This commit is contained in:
Stephen Boddy 2015-11-07 03:31:41 +01:00
commit e2f7f429ac
12 changed files with 107 additions and 53 deletions

View File

@ -501,15 +501,15 @@ Or maybe for you it is with tabs.
In Terminator you can rename three things:
+----------+---------------------------+-------------------+
| Edit | Mouse | Default Shortcut |
+==========+===========================+===================+
| Window | N/A | ``Alt``\ +\ ``T`` |
+----------+---------------------------+-------------------+
| Titlebar | ``double-click`` titlebar | N/A (TBD) |
+----------+---------------------------+-------------------+
| Tab | ``double-click`` tab | N/A (TBD) |
+----------+---------------------------+-------------------+
+----------------+---------------------------+--------------------+
| Edit | Mouse | Default Shortcut |
+================+===========================+====================+
| Window title | N/A | ``Ctrl``\ +\ ``W`` |
+----------------+---------------------------+--------------------+
| Tab title | ``double-click`` tab | ``Ctrl``\ +\ ``A`` |
+----------------+---------------------------+--------------------+
| Terminal title | ``double-click`` titlebar | ``Ctrl``\ +\ ``X`` |
+----------------+---------------------------+--------------------+
Additionally all three can be saved/loaded from a :ref:`layout <layouts>`,
or the window title can be set using a

View File

@ -210,7 +210,17 @@
<li class="toctree-l2"><a class="reference internal" href="gettinginvolved.html#terminator-action-shots">Terminator action shots</a></li>
<li class="toctree-l2"><a class="reference internal" href="gettinginvolved.html#manual-updates">Manual updates</a></li>
<li class="toctree-l2"><a class="reference internal" href="gettinginvolved.html#testing">Testing</a></li>
<li class="toctree-l2"><a class="reference internal" href="gettinginvolved.html#bugs">Bugs</a></li>
<li class="toctree-l2"><a class="reference internal" href="gettinginvolved.html#bugs">Bugs</a><ul>
<li class="toctree-l3"><a class="reference internal" href="gettinginvolved.html#bug-handling">Bug handling</a><ul>
<li class="toctree-l4"><a class="reference internal" href="gettinginvolved.html#initial-new">Initial/New</a></li>
<li class="toctree-l4"><a class="reference internal" href="gettinginvolved.html#investigation">Investigation</a></li>
<li class="toctree-l4"><a class="reference internal" href="gettinginvolved.html#acceptance">Acceptance</a></li>
<li class="toctree-l4"><a class="reference internal" href="gettinginvolved.html#resolved">Resolved</a></li>
<li class="toctree-l4"><a class="reference internal" href="gettinginvolved.html#available">Available</a></li>
</ul>
</li>
</ul>
</li>
<li class="toctree-l2"><a class="reference internal" href="gettinginvolved.html#plugins">Plugins</a></li>
<li class="toctree-l2"><a class="reference internal" href="gettinginvolved.html#main-application-development">Main Application Development</a></li>
<li class="toctree-l2"><a class="reference internal" href="gettinginvolved.html#gtk3-port">GTK3 Port</a></li>
@ -897,9 +907,9 @@ Or maybe for you it is with tabs.</p>
<p>In Terminator you can rename three things:</p>
<table border="1" class="docutils">
<colgroup>
<col width="18%" />
<col width="48%" />
<col width="34%" />
<col width="25%" />
<col width="43%" />
<col width="32%" />
</colgroup>
<thead valign="bottom">
<tr class="row-odd"><th class="head">Edit</th>
@ -908,17 +918,17 @@ Or maybe for you it is with tabs.</p>
</tr>
</thead>
<tbody valign="top">
<tr class="row-even"><td>Window</td>
<tr class="row-even"><td>Window title</td>
<td>N/A</td>
<td><code class="docutils literal"><span class="pre">Alt</span></code>+<code class="docutils literal"><span class="pre">T</span></code></td>
<td><code class="docutils literal"><span class="pre">Ctrl</span></code>+<code class="docutils literal"><span class="pre">W</span></code></td>
</tr>
<tr class="row-odd"><td>Titlebar</td>
<td><code class="docutils literal"><span class="pre">double-click</span></code> titlebar</td>
<td>N/A (TBD)</td>
</tr>
<tr class="row-even"><td>Tab</td>
<tr class="row-odd"><td>Tab title</td>
<td><code class="docutils literal"><span class="pre">double-click</span></code> tab</td>
<td>N/A (TBD)</td>
<td><code class="docutils literal"><span class="pre">Ctrl</span></code>+<code class="docutils literal"><span class="pre">A</span></code></td>
</tr>
<tr class="row-even"><td>Terminal title</td>
<td><code class="docutils literal"><span class="pre">double-click</span></code> titlebar</td>
<td><code class="docutils literal"><span class="pre">Ctrl</span></code>+<code class="docutils literal"><span class="pre">X</span></code></td>
</tr>
</tbody>
</table>

File diff suppressed because one or more lines are too long

View File

@ -501,15 +501,15 @@ Or maybe for you it is with tabs.
In Terminator you can rename three things:
+----------+---------------------------+-------------------+
| Edit | Mouse | Default Shortcut |
+==========+===========================+===================+
| Window | N/A | ``Alt``\ +\ ``T`` |
+----------+---------------------------+-------------------+
| Titlebar | ``double-click`` titlebar | N/A (TBD) |
+----------+---------------------------+-------------------+
| Tab | ``double-click`` tab | N/A (TBD) |
+----------+---------------------------+-------------------+
+----------------+---------------------------+--------------------+
| Edit | Mouse | Default Shortcut |
+================+===========================+====================+
| Window title | N/A | ``Ctrl``\ +\ ``W`` |
+----------------+---------------------------+--------------------+
| Tab title | ``double-click`` tab | ``Ctrl``\ +\ ``A`` |
+----------------+---------------------------+--------------------+
| Terminal title | ``double-click`` titlebar | ``Ctrl``\ +\ ``X`` |
+----------------+---------------------------+--------------------+
Additionally all three can be saved/loaded from a :ref:`layout <layouts>`,
or the window title can be set using a

Binary file not shown.

After

Width:  |  Height:  |  Size: 94 KiB

View File

@ -221,8 +221,14 @@ Decrease font size. \fBNote:\fP This may require you to press shift, depending o
.B Ctrl+Zero (0)
Restore font size to original setting.
.TP
.B Alt+T
Rename titlebar.
.B Ctrl+W
Rename window title.
.TP
.B Ctrl+A
Rename tab title.
.TP
.B Ctrl+X
Rename terminal title.
.TP
.B Super+1
Insert terminal number, i.e. 1 to 12.

View File

@ -286,6 +286,18 @@ Note that <Alt><Shift>1 may need to be provided as <Alt>! or similar,
depending on your keyboard layout.
Default value: \fBUnbound\fR
.TP
.B edit_window_title
Edit the current active window's title
Default value: \fB<Ctrl>W\fR
.TP
.B edit_tab_title
Edit the currently active tab's title
Default value: \fB<Ctrl>A\fR
.TP
.B edit_terminal_title
Edit the currently active terminal's title
Default value: \fB<Ctrl>X\fR
.TP
.B full_screen
Toggle the window to a fullscreen window.
Default value: \fBF11\fR

View File

@ -190,7 +190,9 @@ DEFAULTS = {
'broadcast_all' : '<Alt>a',
'insert_number' : '<Super>1',
'insert_padded' : '<Super>0',
'edit_window_title': '<Alt>t',
'edit_window_title': '<Control>w',
'edit_tab_title' : '<Control>a',
'edit_terminal_title': '<Control>x',
'layout_launcher' : '<Alt>l',
'next_profile' : '',
'previous_profile' : '',

View File

@ -26,7 +26,8 @@ class EditableLabel(gtk.EventBox):
# pylint: disable-msg=R0904
"""
An eventbox that partialy emulate a gtk.Label
On double-click, the label is editable, entering an empty will revert back to automatic text
On double-click or key binding the label is editable, entering an empty
will revert back to automatic text
"""
_label = None
_ebox = None
@ -69,30 +70,34 @@ class EditableLabel(gtk.EventBox):
"""get the text from the label"""
return(self._label.get_text())
def edit(self):
""" Start editing the widget text """
self.remove(self._label)
self._entry = gtk.Entry()
self._entry.set_text(self._label.get_text())
self._entry.show()
self.add(self._entry)
sig = self._entry.connect("focus-out-event", self._entry_to_label)
self._entry_handler_id.append(sig)
sig = self._entry.connect("activate", self._on_entry_activated)
self._entry_handler_id.append(sig)
sig = self._entry.connect("key-press-event",
self._on_entry_keypress)
self._entry_handler_id.append(sig)
sig = self._entry.connect("button-press-event",
self._on_entry_buttonpress)
self._entry_handler_id.append(sig)
self._entry.grab_focus()
def _on_click_text(self, widget, event):
# pylint: disable-msg=W0613
"""event handling text edition"""
if event.button != 1:
return False
if event.type == gtk.gdk._2BUTTON_PRESS:
self.remove (self._label)
self._entry = gtk.Entry ()
self._entry.set_text (self._label.get_text ())
self._entry.show ()
self.add (self._entry)
sig = self._entry.connect ("focus-out-event", self._entry_to_label)
self._entry_handler_id.append(sig)
sig = self._entry.connect ("activate", self._on_entry_activated)
self._entry_handler_id.append(sig)
sig = self._entry.connect ("key-press-event",
self._on_entry_keypress)
self._entry_handler_id.append(sig)
sig = self._entry.connect("button-press-event",
self._on_entry_buttonpress)
self._entry_handler_id.append(sig)
self._entry.grab_focus ()
return(True)
return(False)
self.edit()
return True
return False
def _entry_to_label (self, widget, event):
# pylint: disable-msg=W0613

View File

@ -536,6 +536,9 @@ class TabLabel(gtk.HBox):
else:
return(None)
def edit(self):
self.label.edit()
def update_button(self):
"""Update the state of our close button"""
if not self.config['close_button_on_tab']:

View File

@ -148,6 +148,8 @@ class PrefsEditor:
'insert_number' : _('Insert terminal number'),
'insert_padded' : _('Insert padded terminal number'),
'edit_window_title': _('Edit window title'),
'edit_terminal_title': _('Edit terminal title'),
'edit_tab_title' : _('Edit tab title'),
'layout_launcher' : _('Open layout launcher window'),
'next_profile' : _('Switch to next profile'),
'previous_profile' : _('Switch to previous profile'),

View File

@ -1838,6 +1838,20 @@ class Terminal(gtk.VBox):
dialog.destroy()
return
def key_edit_tab_title(self):
window = self.get_toplevel()
if not window.is_child_notebook():
return
notebook = window.get_children()[0]
n_page = notebook.get_current_page()
page = notebook.get_nth_page(n_page)
label = notebook.get_tab_label(page)
label.edit()
def key_edit_terminal_title(self):
self.titlebar.label.edit()
def key_layout_launcher(self):
LAYOUTLAUNCHER=LayoutLauncher()