Skip to content

Commit 2f062f6

Browse files
githubtestpostcomAndrey Vorobyov
authored andcommitted
Added Terminal bottom-window
1 parent 815a4a6 commit 2f062f6

File tree

5 files changed

+35
-14
lines changed

5 files changed

+35
-14
lines changed

.gitignore

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,3 +2,5 @@
22
*~
33
screenshots/
44
*.pyc
5+
.idea/
6+
env/

requirements.txt

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,2 @@
1+
pygobject
2+
vte

ui/umte.glade

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -260,6 +260,16 @@
260260
<signal name="toggled" handler="on_linenumber_item_toggled" swapped="no"/>
261261
</object>
262262
</child>
263+
<child>
264+
<object class="GtkCheckMenuItem" id="terminal_item">
265+
<property name="use_action_appearance">False</property>
266+
<property name="visible">True</property>
267+
<property name="can_focus">False</property>
268+
<property name="label" translatable="yes">Terminal</property>
269+
<property name="use_underline">True</property>
270+
<signal name="toggled" handler="on_terminal_item_toggled" swapped="no"/>
271+
</object>
272+
</child>
263273
</object>
264274
</child>
265275
</object>

umte.py

Lines changed: 20 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -31,6 +31,7 @@
3131
import time
3232
from gi.repository import Gtk, GtkSource, Gdk
3333
from umtelibs import config
34+
from terminal import Term
3435

3536

3637
class umte(object):
@@ -73,11 +74,13 @@ def __init__(self):
7374
"on_change_case_item_activate" : self.on_change_case_item_activate,
7475
"on_find_rep_item_activate" : self.on_find_rep_item_activate,
7576
"on_linenumber_item_toggled" : self.on_linenumber_item_toggled,
76-
"on_about_item_activate" : self.on_about_item_activate
77+
"on_about_item_activate" : self.on_about_item_activate,
78+
"on_terminal_item_toggled" : self.on_terminal_item_toggled
7779
}
7880
self.builder.connect_signals(handler)
7981

8082
self.add_text_area()
83+
self.add_terminal_area()
8184
self.create_clipboard()
8285

8386
# References widgets from the glade file for later usage.
@@ -105,6 +108,7 @@ def __init__(self):
105108
# Show the window and its children
106109
self.win = self.builder.get_object("window1")
107110
self.win.show_all()
111+
self.terminal_area.hide()
108112
self.set_title(self.title)
109113

110114
#self.menubar.hide()
@@ -125,6 +129,14 @@ def add_text_area(self):
125129
# Reposition self.scroll1 so it's above the statusbar.
126130
self.main_box.reorder_child(self.scroll1, 1)
127131

132+
def add_terminal_area(self):
133+
"""Add a ScrolledWindow for terminal to the window."""
134+
self.terminal_area = Gtk.ScrolledWindow()
135+
self.terminal = Term("/bin/bash")
136+
self.terminal_area.add(self.terminal)
137+
self.main_box.pack_start(self.terminal_area, True, True, 0)
138+
self.main_box.reorder_child(self.terminal_area, 2)
139+
128140
def statusbar_syntax_combobox(self):
129141
"""
130142
Add a combobox that contains all the available languages that
@@ -529,7 +541,13 @@ def on_linenumber_item_toggled(self, widget, data=None):
529541
self.text_area.set_show_line_numbers(False)
530542
# Write this change to the config
531543
self.config.write_config("view", "linenumbers", "no")
532-
544+
545+
def on_terminal_item_toggled(self, widget, data=None):
546+
if widget.get_active():
547+
self.terminal_area.show()
548+
else:
549+
self.terminal_area.hide()
550+
533551
def on_language_combobox_changed(self, widget, data=None):
534552
"""
535553
When it is changed, get the chosen language and tell self.buff

umtelibs/terminal.py

Lines changed: 1 addition & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -20,23 +20,12 @@
2020
class Term(Vte.Terminal):
2121
def __init__(self, program, *args, **kwds):
2222
super(Term, self).__init__(*args, **kwds)
23-
self.fork_command_full(
23+
self.spawn_sync(
2424
Vte.PtyFlags.DEFAULT,
2525
os.environ['HOME'],
2626
[program],
2727
[],
2828
GLib.SpawnFlags.DO_NOT_REAP_CHILD,
2929
None,
3030
None)
31-
_color = Gdk.RGBA(1, 1, 55, 100)
32-
self.set_color_foreground_rgba(_color)
3331
self.set_allow_bold(True)
34-
35-
terminal = Term("/bin/bash")
36-
37-
win = Gtk.Window()
38-
win.connect('delete-event', Gtk.main_quit)
39-
win.add(terminal)
40-
win.show_all()
41-
Gtk.main()
42-

0 commit comments

Comments
 (0)