Example #1
0
 def __init__(self, **kw):
     Terminal.__init__(self)
     self._fix_size()
     self._fix_events()
     self._connect_internal()
     self._init_matches()
     self.set_properties(**kw)
Example #2
0
 def __init__(self, **kw):
     Terminal.__init__(self)
     self._fix_size()
     self._fix_events()
     self._connect_internal()
     self._init_matches()
     self.set_properties(**kw)
Example #3
0
    def __init__(self, window):
        self.window = window

        self.bottom = window.get_bottom_panel()

        self.uri = window.get_active_document().get_uri_for_display()
        self.term = Terminal()
        self.term.set_emulation("xterm")
        self.term.set_audible_bell(False)
        self.term.set_scrollback_lines(150)
        self.term.set_size_request(10,100)
        self.term.fork_command('bash')

        self.term_scrollbar = gtk.VScrollbar()
        self.term_scrollbar.set_adjustment(self.term.get_adjustment())

        self.term_box = gtk.HBox()
        self.term_box.pack_start(self.term, True, True, 0)
        self.term_box.pack_end(self.term_scrollbar, False, False, 0)

        self.close_bt = gtk.Button("Close")
        self.close_bt.connect("clicked", self.close_bt_action, "Exit!")

        self.container = gtk.VBox(False)

       # self.term.connect("child-exited", lambda term: term.fork_command('irb'))
        self.term.connect("child-exited", self.close_term_action_child_exited)

        self.table = gtk.Table(2,1,False)
        self.table.attach(self.term_box,0,1,0,1)
        self.table.attach(self.close_bt,0,1,1,2,gtk.FILL|gtk.SHRINK,gtk.FILL|gtk.SHRINK, 0, 0)
        self.container.pack_start(self.table)
        self.close_bt.show()
        self.table.show()
        self.term_box.show_all()
Example #4
0
    def __init__(self, window):
        self.window = window

        self.bottom = window.get_bottom_panel()

        self.uri = window.get_active_document().get_uri_for_display()
        self.term = Terminal()
        self.term.set_emulation("xterm")
        self.term.set_audible_bell(False)
        self.term.set_scrollback_lines(150)
        self.term.set_size_request(10, 100)
        self.term.fork_command('bash')

        self.term_scrollbar = gtk.VScrollbar()
        self.term_scrollbar.set_adjustment(self.term.get_adjustment())

        self.term_box = gtk.HBox()
        self.term_box.pack_start(self.term, True, True, 0)
        self.term_box.pack_end(self.term_scrollbar, False, False, 0)

        self.close_bt = gtk.Button("Close")
        self.close_bt.connect("clicked", self.close_bt_action, "Exit!")

        self.container = gtk.VBox(False)

        # self.term.connect("child-exited", lambda term: term.fork_command('irb'))
        self.term.connect("child-exited", self.close_term_action_child_exited)

        self.table = gtk.Table(2, 1, False)
        self.table.attach(self.term_box, 0, 1, 0, 1)
        self.table.attach(self.close_bt, 0, 1, 1, 2, gtk.FILL | gtk.SHRINK,
                          gtk.FILL | gtk.SHRINK, 0, 0)
        self.container.pack_start(self.table)
        self.close_bt.show()
        self.table.show()
        self.term_box.show_all()
Example #5
0
	def initiate_terminal(self):
		self.terminal = Terminal()
		self.terminal.set_emulation("xterm")
		self.terminal.set_audible_bell(False)
		self.terminal.set_scrollback_lines(100)
		self.terminal.set_size_request(80,140)
		self.terminal.connect("child-exited", self.terminal_exited)
		self.terminal.fork_command()		

		self.scrollbar = gtk.VScrollbar()
		self.scrollbar.set_adjustment(self.terminal.get_adjustment())

		self.hbox = gtk.HBox()
		self.hbox.pack_start(self.terminal, True, True, 0)
		self.hbox.pack_end(self.scrollbar, False, False, 0)
				
		self.bar_table.attach(self.hbox, 1,2,1,2, gtk.EXPAND|gtk.FILL,gtk.EXPAND|gtk.FILL, 0, 0)
		self.editor.bottom_vbox.pack_end(self.bar_table, False, False, 0)
Example #6
0
class TerminaldWidget():
    def __init__(self, window):
        self.window = window

        self.bottom = window.get_bottom_panel()

        self.uri = window.get_active_document().get_uri_for_display()
        self.term = Terminal()
        self.term.set_emulation("xterm")
        self.term.set_audible_bell(False)
        self.term.set_scrollback_lines(150)
        self.term.set_size_request(10,100)
        self.term.fork_command('bash')

        self.term_scrollbar = gtk.VScrollbar()
        self.term_scrollbar.set_adjustment(self.term.get_adjustment())

        self.term_box = gtk.HBox()
        self.term_box.pack_start(self.term, True, True, 0)
        self.term_box.pack_end(self.term_scrollbar, False, False, 0)

        self.close_bt = gtk.Button("Close")
        self.close_bt.connect("clicked", self.close_bt_action, "Exit!")

        self.container = gtk.VBox(False)

       # self.term.connect("child-exited", lambda term: term.fork_command('irb'))
        self.term.connect("child-exited", self.close_term_action_child_exited)

        self.table = gtk.Table(2,1,False)
        self.table.attach(self.term_box,0,1,0,1)
        self.table.attach(self.close_bt,0,1,1,2,gtk.FILL|gtk.SHRINK,gtk.FILL|gtk.SHRINK, 0, 0)
        self.container.pack_start(self.table)
        self.close_bt.show()
        self.table.show()
        self.term_box.show_all()

    def close_bt_action(self, widget, data=None):
      self.close()

    def close_term_action_child_exited(self, term):
      self.close()

    def close(self):
        self.bottom.remove_item(self.container)
        self.bottom.hide()
        self.container.destroy()

    def run(self,command=''):
        self.rails_root = self.get_rails_root(self.uri)

        if self.rails_root=='':
             self.rails_root = self.get_filebrowser_root()

        if self.rails_root=='':
            os.popen("notify-send -t 1600 -i gtk-dialog-info 'Alert!' 'This is not a rails project file!'")
        elif command.strip()=='':
            os.popen("notify-send -t 1600 -i gtk-dialog-info 'Alert!' 'Hey, type something!'")
        else:
            self.term.feed_child("cd "+self.rails_root+" \n")
            self.term.feed_child(command+"\n")

            self.bottom.show()

            self.image = gtk.Image()
            self.image.set_from_icon_name('gnome-mime-application-x-shellscript', gtk.ICON_SIZE_MENU)

            self.bottom.add_item(self.container, _('Run Rails Command: '+command), self.image)
            self.window.set_data('RubyTerminalPluginInfo', self.container)
            self.bottom.activate_item(self.container)
            self.term.grab_focus()
        self.close_bt_action()

    def get_rails_root(self, uri):
        base_dir = os.path.dirname(uri)
        depth = 10
        rails_root = ''

        while depth > 0:
            depth -= 1
            app_dir = os.path.join(base_dir, 'app')
            config_dir = os.path.join(base_dir, 'config')
            if os.path.isdir(app_dir) and os.path.isdir(config_dir):
                rails_root = base_dir
                break
            else:
                base_dir = os.path.abspath(os.path.join(base_dir, '..'))
        return rails_root


    # FileBrowser Integration
    def get_filebrowser_root(self):
       base = u'/apps/gedit-2/plugins/filebrowser/on_load'
       client = gconf.client_get_default()
       client.add_dir(base, gconf.CLIENT_PRELOAD_NONE)
       path = os.path.join(base, u'virtual_root')
       val = client.get(path)
       if val is not None:
          return gnomevfs.get_local_path_from_uri(val.get_string())
       else:
          return ''
Example #7
0
class GitTerminalWidget():
    def __init__(self, window):
        self.window = window
        
        self.bottom = window.get_bottom_panel()
        
        self.uri = window.get_active_document().get_uri_for_display()
        self.term = Terminal()
        self.term.set_emulation("xterm")
        self.term.set_audible_bell(False)
        self.term.set_scrollback_lines(150)
        self.term.set_size_request(10,100)
        self.term.fork_command('bash')
   
        self.term_scrollbar = gtk.VScrollbar()
        self.term_scrollbar.set_adjustment(self.term.get_adjustment())      

        self.term_box = gtk.HBox()
        self.term_box.pack_start(self.term, True, True, 0)
        self.term_box.pack_end(self.term_scrollbar, False, False, 0)     

        self.close_bt = gtk.Button("Close")
        self.close_bt.connect("clicked", self.close_bt_action, "Exit!")
        
        self.container = gtk.VBox(False)

        self.term.connect("child-exited", self.close_term_action_child_exited)
        
        self.table = gtk.Table(2,1,False)
        self.table.attach(self.term_box,0,1,0,1)
        self.table.attach(self.close_bt,0,1,1,2,gtk.FILL|gtk.SHRINK,gtk.FILL|gtk.SHRINK, 0, 0)
        self.container.pack_start(self.table)
        self.close_bt.show()
        self.table.show()
        self.term_box.show_all()       

    def close_bt_action(self, widget, data=None):
      self.close()

    def close_term_action_child_exited(self, term):
      self.close()

    def close(self):
        self.bottom.remove_item(self.container)
        self.bottom.hide()
        self.container.destroy()
    
    def run(self,command=''):
        githelper = GitHelper()
        self.git_root = githelper.get_git_root(self.uri)    

        if self.git_root=='':
            os.popen("notify-send -t 1600 -i gtk-dialog-info 'Alert!' 'Open a git project file before'")
        elif command.strip()=='':
            os.popen("notify-send -t 1600 -i gtk-dialog-info 'Alert!' 'Hey, type something!'")
        else:    

            self.term.feed_child("cd "+self.git_root+" \n")
            self.term.feed_child(command+"\n")

            self.bottom.show()

            self.image = gtk.Image()
            self.image.set_from_icon_name('gnome-mime-application-x-shellscript', gtk.ICON_SIZE_MENU)

            self.bottom.add_item(self.container, _('Run Git Command: '+command), self.image)
            self.bottom.activate_item(self.container)
            self.term.grab_focus()
    def __init__(self):

        Terminal.__init__(self)
        self.fork_command()
        self.set_sensitive(False)
    def __init__(self):

        Terminal.__init__(self)
        self.set_sensitive(False)
Example #10
0
class TerminalPlugin(object):
	metadata = {
		"name" : "Terminal Plugin", 
		"authors" : ["Frank Hale <*****@*****.**>"],
		"website" : "http://github.com/frankhale/nyana",
		"version" : "0.1",
		"development status" : "alpha",
		"date" : "29 Oct 2006",
		"enabled" : True,
		"short description" : "A VTE based terminal plugin",
		"long description" : "Provides an embedded terminal inside the editor"
	}
	
	def __init__(self, editor):
		self.editor = editor
		self.visible = False

	def load(self):
		self.editor.accel_group.connect_group(116, gtk.gdk.CONTROL_MASK, gtk.ACCEL_LOCKED, self.show_cb)
		
		self.bar_table = gtk.Table(3, 3)
		self.bar_table.set_col_spacings(10)
		self.bar_table.set_row_spacings(10)		
	
		self.initiate_terminal()
						
	def initiate_terminal(self):
		self.terminal = Terminal()
		self.terminal.set_emulation("xterm")
		self.terminal.set_audible_bell(False)
		self.terminal.set_scrollback_lines(100)
		self.terminal.set_size_request(80,140)
		self.terminal.connect("child-exited", self.terminal_exited)
		self.terminal.fork_command()		

		self.scrollbar = gtk.VScrollbar()
		self.scrollbar.set_adjustment(self.terminal.get_adjustment())

		self.hbox = gtk.HBox()
		self.hbox.pack_start(self.terminal, True, True, 0)
		self.hbox.pack_end(self.scrollbar, False, False, 0)
				
		self.bar_table.attach(self.hbox, 1,2,1,2, gtk.EXPAND|gtk.FILL,gtk.EXPAND|gtk.FILL, 0, 0)
		self.editor.bottom_vbox.pack_end(self.bar_table, False, False, 0)
				
	def terminal_exited(self, term):
		term.feed("Terminal exited\r\n", "1;34")
Example #11
0
class TerminaldWidget():
    def __init__(self, window):
        self.window = window

        self.bottom = window.get_bottom_panel()

        self.uri = window.get_active_document().get_uri_for_display()
        self.term = Terminal()
        self.term.set_emulation("xterm")
        self.term.set_audible_bell(False)
        self.term.set_scrollback_lines(150)
        self.term.set_size_request(10, 100)
        self.term.fork_command('bash')

        self.term_scrollbar = gtk.VScrollbar()
        self.term_scrollbar.set_adjustment(self.term.get_adjustment())

        self.term_box = gtk.HBox()
        self.term_box.pack_start(self.term, True, True, 0)
        self.term_box.pack_end(self.term_scrollbar, False, False, 0)

        self.close_bt = gtk.Button("Close")
        self.close_bt.connect("clicked", self.close_bt_action, "Exit!")

        self.container = gtk.VBox(False)

        # self.term.connect("child-exited", lambda term: term.fork_command('irb'))
        self.term.connect("child-exited", self.close_term_action_child_exited)

        self.table = gtk.Table(2, 1, False)
        self.table.attach(self.term_box, 0, 1, 0, 1)
        self.table.attach(self.close_bt, 0, 1, 1, 2, gtk.FILL | gtk.SHRINK,
                          gtk.FILL | gtk.SHRINK, 0, 0)
        self.container.pack_start(self.table)
        self.close_bt.show()
        self.table.show()
        self.term_box.show_all()

    def close_bt_action(self, widget, data=None):
        self.close()

    def close_term_action_child_exited(self, term):
        self.close()

    def close(self):
        self.bottom.remove_item(self.container)
        self.bottom.hide()
        self.container.destroy()

    def run(self, command=''):
        self.rails_root = self.get_rails_root(self.uri)

        if self.rails_root == '':
            self.rails_root = self.get_filebrowser_root()

        if self.rails_root == '':
            os.popen(
                "notify-send -t 1600 -i gtk-dialog-info 'Alert!' 'This is not a rails project file!'"
            )
        elif command.strip() == '':
            os.popen(
                "notify-send -t 1600 -i gtk-dialog-info 'Alert!' 'Hey, type something!'"
            )
        else:
            self.term.feed_child("cd " + self.rails_root + " \n")
            self.term.feed_child(command + "\n")

            self.bottom.show()

            self.image = gtk.Image()
            self.image.set_from_icon_name(
                'gnome-mime-application-x-shellscript', gtk.ICON_SIZE_MENU)

            self.bottom.add_item(self.container,
                                 _('Run Rails Command: ' + command),
                                 self.image)
            self.window.set_data('RubyTerminalPluginInfo', self.container)
            self.bottom.activate_item(self.container)
            self.term.grab_focus()
        self.close_bt_action()

    def get_rails_root(self, uri):
        base_dir = os.path.dirname(uri)
        depth = 10
        rails_root = ''

        while depth > 0:
            depth -= 1
            app_dir = os.path.join(base_dir, 'app')
            config_dir = os.path.join(base_dir, 'config')
            if os.path.isdir(app_dir) and os.path.isdir(config_dir):
                rails_root = base_dir
                break
            else:
                base_dir = os.path.abspath(os.path.join(base_dir, '..'))
        return rails_root

    # FileBrowser Integration
    def get_filebrowser_root(self):
        base = u'/apps/gedit-2/plugins/filebrowser/on_load'
        client = gconf.client_get_default()
        client.add_dir(base, gconf.CLIENT_PRELOAD_NONE)
        path = os.path.join(base, u'virtual_root')
        val = client.get(path)
        if val is not None:
            return gnomevfs.get_local_path_from_uri(val.get_string())
        else:
            return ''
Example #12
0
class GitTerminalWidget():
    def __init__(self, window):
        self.window = window

        self.bottom = window.get_bottom_panel()

        self.uri = window.get_active_document().get_uri_for_display()
        self.term = Terminal()
        self.term.set_emulation("xterm")
        self.term.set_audible_bell(False)
        self.term.set_scrollback_lines(150)
        self.term.set_size_request(10,100)
        self.term.fork_command('bash')
   
        self.term_scrollbar = gtk.VScrollbar()
        self.term_scrollbar.set_adjustment(self.term.get_adjustment())      

        self.term_box = gtk.HBox()
        self.term_box.pack_start(self.term, True, True, 0)
        self.term_box.pack_end(self.term_scrollbar, False, False, 0)     

        self.close_bt = gtk.Button("Close")
        self.close_bt.connect("clicked", self.close_bt_action, "Exit!")
        
        self.container = gtk.VBox(False)

       # self.term.connect("child-exited", lambda term: term.fork_command('irb'))
        self.term.connect("child-exited", self.close_term_action_child_exited)
        
        self.table = gtk.Table(2,1,False)
        self.table.attach(self.term_box,0,1,0,1)
        self.table.attach(self.close_bt,0,1,1,2,gtk.FILL|gtk.SHRINK,gtk.FILL|gtk.SHRINK, 0, 0)
        self.container.pack_start(self.table)
        self.close_bt.show()
        self.table.show()
        self.term_box.show_all()       

    def close_bt_action(self, widget, data=None):
      self.close()

    def close_term_action_child_exited(self, term):
      self.close()

    def close(self):
        self.bottom.remove_item(self.container)
        self.bottom.hide()
        self.container.destroy()

    def get_branch(self):
        self.git_root = self.get_git_root(self.uri)
        f = open(os.path.join(self.git_root,".git", "HEAD"))
        return f.readlines()[0].split("/")[-1]
    
    def get_all_branchs(self):
        self.git_root = self.get_git_root(self.uri)
        diretorios = os.listdir(os.path.join(self.git_root,".git", "refs", "heads"))
        return diretorios
        
    
    def run(self,command=''):
        self.git_root = self.get_git_root(self.uri)
    
        if self.git_root=='':
            os.popen("notify-send -t 1600 -i gtk-dialog-info 'Alert!' 'Open a git project file before'")
        elif command.strip()=='':
            os.popen("notify-send -t 1600 -i gtk-dialog-info 'Alert!' 'Hey, type something!'")
        else:    
            self.git_root = self.get_git_root(self.uri)
            self.term.feed_child("cd "+self.git_root+" \n")
            self.term.feed_child(command+"\n")

            self.bottom.show()

            self.image = gtk.Image()
            self.image.set_from_icon_name('gnome-mime-application-x-shellscript', gtk.ICON_SIZE_MENU)

            self.bottom.add_item(self.container, _('Run Git Command: '+command), self.image)
            self.bottom.activate_item(self.container)
            self.term.grab_focus()

    def get_git_root(self, uri):
        base_dir = os.path.dirname(uri)
        depth = 10
        git_root = ''
        while depth > 0:
            depth -= 1
            app_dir = os.path.join(base_dir, '.git')
            if os.path.isdir(app_dir):
                git_root = base_dir
                break
            else:
                base_dir = os.path.abspath(os.path.join(base_dir, '..'))

        return git_root