Beispiel #1
0
 def __init__(self, parent=None):
     super(TabbedTerminal, self).__init__(parent)
     self.proc_info = ProcessInfo()
     self.setTabPosition(QTabWidget.South)
     self._terms = []
     self.tabCloseRequested[int].connect(self._on_close_request)
     self.currentChanged[int].connect(self._on_current_changed)
     QtCore.QTimer.singleShot(0, self.new_terminal)  # create lazy on idle
     self.startTimer(1000)
Beispiel #2
0
 def __init__(self, parent=None):
     super(TabbedTerminal, self).__init__(parent)
     self.proc_info = ProcessInfo()
     self.setTabPosition(QTabWidget.South)
     #self._new_button = QPushButton(self)
     #self._new_button.setText("New")
     #self._new_button.clicked.connect(self.new_terminal)
     #self.setCornerWidget(self._new_button)
     #self.setTabsClosable(True)
     #self.setMovable(True)
     self.setWindowTitle("Terminal")
     self.resize(800, 600)
     self._terms = []
     self.tabCloseRequested[int].connect(self._on_close_request)
     self.currentChanged[int].connect(self._on_current_changed)
     QTimer.singleShot(0, self.new_terminal)  # create lazy on idle
     self.startTimer(1000)
Beispiel #3
0
    def __init__(self, args, parent=None):
        super(MainApp, self).__init__(parent)

        self.Backend = args[0]
        self.Env = args[1]
        self.Widget = args[2]
        self.AppName = args[3]
        self.External = args[4]

        self.proc_info = ProcessInfo()
        self.setTabPosition(QTabWidget.South)
        self.Widget.SetWindowTitle(res.get('@string/app_name'))
        self.Widget.Resize(self, 800, 600)
        self.Widget.SetWindowIcon(QIcon(res.get(res.etc('commento', 'logo'))))
        self._terms = []
        self.tabCloseRequested[int].connect(self._on_close_request)
        self.currentChanged[int].connect(self._on_current_changed)
        QTimer.singleShot(0, self.new_terminal)  # create lazy on idle
        self.startTimer(0)
Beispiel #4
0
 def __init__(self, parent=None):
     super(TabbedTerminal, self).__init__(parent)
     self.proc_info = ProcessInfo()
     self.setTabPosition(QTabWidget.South)
     self._new_button = QPushButton(self)
     self._new_button.setText("New")
     self._new_button.clicked.connect(self.new_terminal)
     self.setCornerWidget(self._new_button)
     self.setTabsClosable(True)
     self.setMovable(True)
     self.setWindowTitle("Terminal")
     self.resize(800, 600)
     self._terms = []
     self.tabCloseRequested[int].connect(self._on_close_request)
     self.currentChanged[int].connect(self._on_current_changed)
     QTimer.singleShot(0, self.new_terminal)  # create lazy on idle
     self.startTimer(1000)
Beispiel #5
0
class TabbedTerminal(QTabWidget):

    def __init__(self, parent=None):
        super(TabbedTerminal, self).__init__(parent)
        self.proc_info = ProcessInfo()
        self.setTabPosition(QTabWidget.South)
        self._new_button = QPushButton(self)
        self._new_button.setText("New")
        self._new_button.clicked.connect(self.new_terminal)
        self.setCornerWidget(self._new_button)
        self.setTabsClosable(True)
        self.setMovable(True)
        self.setWindowTitle("Terminal")
        self.resize(800, 600)
        self._terms = []
        self.tabCloseRequested[int].connect(self._on_close_request)
        self.currentChanged[int].connect(self._on_current_changed)
        QTimer.singleShot(0, self.new_terminal)  # create lazy on idle
        self.startTimer(1000)

    def _on_close_request(self, idx):
        term = self.widget(idx)
        term.stop()

    def _on_current_changed(self, idx):
        term = self.widget(idx)
        self._update_title(term)

    def new_terminal(self):
        term = TerminalWidget(self)
        term.session_closed.connect(self._on_session_closed)
        self.addTab(term, "Terminal")
        self._terms.append(term)
        self.setCurrentWidget(term)
        term.setFocus()

    def timerEvent(self, event):
        self._update_title(self.currentWidget())

    def _update_title(self, term):
        if term is None:
            self.setWindowTitle("Terminal")
            return
        idx = self.indexOf(term)
        pid = term.pid()
        self.proc_info.update()
        child_pids = [pid] + self.proc_info.all_children(pid)
        for pid in reversed(child_pids):
            cwd = self.proc_info.cwd(pid)
            if cwd:
                break
        try:
            cmd = self.proc_info.commands[pid]
            title = "%s: %s" % (os.path.basename(cwd), cmd)
        except:
            title = "Terminal"
        self.setTabText(idx, title)
        self.setWindowTitle(title)

    def _on_session_closed(self):
        term = self.sender()
        try:
            self._terms.remove(term)
        except:
            pass
        self.removeTab(self.indexOf(term))
        widget = self.currentWidget()
        if widget:
            widget.setFocus()
        if self.count() == 0:
            self.new_terminal()
class TabbedTerminal(QTabWidget):

    def __init__(self,params, parent=None):
        super(TabbedTerminal, self).__init__(parent)
        self.proc_info = ProcessInfo()
        self.gdbparams = params
        self.setTabPosition(QTabWidget.South)
        self._new_button = QPushButton(self)
        self._new_button.setText("New")
        self._new_button.clicked.connect(self.new_terminal)
        self.setCornerWidget(self._new_button)
        self.setTabsClosable(True)
        self.setMovable(True)
        self.setWindowTitle("Terminal")
        self.resize(800, 600)
        self._terms = []
        self.tabCloseRequested[int].connect(self._on_close_request)
        self.currentChanged[int].connect(self._on_current_changed)
        QTimer.singleShot(0, self.new_terminal)  # create lazy on idle
        self.startTimer(1000)

    def _on_close_request(self, idx):
        term = self.widget(idx)
        term.stop()

    def _on_current_changed(self, idx):
        term = self.widget(idx)
        self.term = term
        self._update_title(term)

    def new_terminal(self):
        term = TerminalWidget(self)
        term.session_closed.connect(self._on_session_closed)
        self.addTab(term, "Terminal")
        self._terms.append(term)
        self.setCurrentWidget(term)
        term.setFocus()
        self.terminal = term
        filename = str(self.gdbparams[2])
        print filename
        extension = os.path.splitext(filename)[1]
        print extension
        if extension == ".lzo":
           print "the core is lzo"
           call(["lzop", "-fd", filename, "-o","test.core"])
       
        
        term.send("rm -f bt.txt \n")
        gdbpath = str("/usr/bin/mips-csr3.0-gdb -x bt.txt") + str(" \n")  
        #gdbpath = str(self.gdbparams[0]) + "/usr/bin/gdb "
        print gdbpath
        #cmd = str(gdbpath + str(self.gdbparams[1]) + " test.core \n")
        #print cmd
        ## start gdb 
        term.send(gdbpath)
        term.send("set logging on bt.txt \n")
        solibpathcmd = str("set solib-absolute-prefix ") + str(self.gdbparams[0]) + str(" \n")
        term.send(solibpathcmd)
        sysrootpathcmd = str("set sysroot ") + str(self.gdbparams[0]) + str(" \n")
        term.send(sysrootpathcmd)
        filepathcmd = str("file ") + str(self.gdbparams[1]) + str(" \n")
        term.send(filepathcmd)
        corefilecmd = str("core-file ") + "test.core" + str(" \n")
        term.send(corefilecmd)
        #term.send(cmd)
        term.send("bt full  \n")
        msgBox = QMessageBox()
        workingDir = os.getcwd() 
        btMsg = str("Check the backtrace stored in bt.txt at ") + str(workingDir) 
        msgBox.setText(btMsg)
        msgBox.setStandardButtons(QMessageBox.Ok)
        ret = msgBox.exec_();
        #self.term.send("ls -l ")
        #print (self.gdbparams[1])
        #term.send(self.gdbparams[0])
        #term.send(self.gdbparams[1])

    def timerEvent(self, event):
        self._update_title(self.currentWidget())

    def _update_title(self, term):
        if term is None:
            self.setWindowTitle("Terminal")
            return
        idx = self.indexOf(term)
        pid = term.pid()
        self.proc_info.update()
        child_pids = [pid] + self.proc_info.all_children(pid)
        for pid in reversed(child_pids):
            cwd = self.proc_info.cwd(pid)
            if cwd:
                break
        try:
            cmd = self.proc_info.commands[pid]
            title = "%s: %s" % (os.path.basename(cwd), cmd)
        except:
            title = "Terminal"
        self.setTabText(idx, title)
        self.setWindowTitle(title)

    def _on_session_closed(self):
        term = self.sender()
        try:
            self._terms.remove(term)
        except:
            pass
        self.removeTab(self.indexOf(term))
        widget = self.currentWidget()
        if widget:
            widget.setFocus()
        if self.count() == 0:
            self.new_terminal()
Beispiel #7
0
class TabbedTerminal(QTabWidget):

    def __init__(self, parent=None):
        super(TabbedTerminal, self).__init__(parent)
        self.proc_info = ProcessInfo()
        self.setTabPosition(QTabWidget.South)
        #self._new_button = QPushButton(self)
        #self._new_button.setText("New")
        #self._new_button.clicked.connect(self.new_terminal)
        #self.setCornerWidget(self._new_button)
        #self.setTabsClosable(True)
        #self.setMovable(True)
        self.setWindowTitle("Terminal")
        self.resize(800, 600)
        self._terms = []
        self.tabCloseRequested[int].connect(self._on_close_request)
        self.currentChanged[int].connect(self._on_current_changed)
        QTimer.singleShot(0, self.new_terminal)  # create lazy on idle
        self.startTimer(1000)

    def _on_close_request(self, idx):
        term = self.widget(idx)
        term.stop()

    def _on_current_changed(self, idx):
        term = self.widget(idx)
        self._update_title(term)

    def new_terminal(self):
        term = TerminalWidget(self)
        term.session_closed.connect(self._on_session_closed)
        self.addTab(term, "Terminal")
        self._terms.append(term)
        self.setCurrentWidget(term)
        term.setFocus()

    def timerEvent(self, event):
        self._update_title(self.currentWidget())

    def _update_title(self, term):
        if term is None:
            self.setWindowTitle("Terminal")
            return
        idx = self.indexOf(term)
        pid = term.pid()
        self.proc_info.update()
        child_pids = [pid] + self.proc_info.all_children(pid)
        for pid in reversed(child_pids):
            cwd = self.proc_info.cwd(pid)
            if cwd:
                break
        try:
            cmd = self.proc_info.commands[pid]
            title = "%s: %s" % (os.path.basename(cwd), cmd)
        except:
            title = "Terminal"
        self.setTabText(idx, title)
        self.setWindowTitle(title)

    def _on_session_closed(self):
        term = self.sender()
        try:
            self._terms.remove(term)
        except:
            pass
        self.removeTab(self.indexOf(term))
        widget = self.currentWidget()
        if widget:
            widget.setFocus()
        if self.count() == 0:
            self.new_terminal()
Beispiel #8
0
class MainApp(QTabWidget):
    def __init__(self, args, parent=None):
        super(MainApp, self).__init__(parent)

        self.Backend = args[0]
        self.Env = args[1]
        self.Widget = args[2]
        self.AppName = args[3]
        self.External = args[4]

        self.proc_info = ProcessInfo()
        self.setTabPosition(QTabWidget.South)
        self.Widget.SetWindowTitle(res.get('@string/app_name'))
        self.Widget.Resize(self, 800, 600)
        self.Widget.SetWindowIcon(QIcon(res.get(res.etc('commento', 'logo'))))
        self._terms = []
        self.tabCloseRequested[int].connect(self._on_close_request)
        self.currentChanged[int].connect(self._on_current_changed)
        QTimer.singleShot(0, self.new_terminal)  # create lazy on idle
        self.startTimer(0)

    def _on_close_request(self, idx):
        term = self.widget(idx)
        term.stop()

    def _on_current_changed(self, idx):
        term = self.widget(idx)
        self._update_title(term)

    def new_terminal(self):
        files.write('/proc/info/su', self.Env.username)
        term = TerminalWidget(self)
        term.session_closed.connect(self._on_session_closed)
        self.addTab(term, res.get('@string/app_name'))
        self._terms.append(term)
        self.setCurrentWidget(term)
        term.setFocus()

    def timerEvent(self, event):
        self._update_title(self.currentWidget())

    def _update_title(self, term):
        if term is None:
            self.Widget.setWindowTitle(res.get('@string/app_name'))
            return
        idx = self.indexOf(term)
        pid = term.pid()
        self.proc_info.update()
        child_pids = [pid] + self.proc_info.all_children(pid)
        for pid in reversed(child_pids):
            cwd = self.proc_info.cwd(pid)
            if cwd:
                break
        try:
            user = self.Env.username
            hostname = files.readall('/proc/info/host')
            title = user + "@" + hostname
        except:
            title = res.get('@string/app_name')
        self.setTabText(idx, title)
        self.setWindowTitle(title)

    def _on_session_closed(self):
        term = self.sender()
        try:
            self._terms.remove(term)
        except:
            pass
        self.removeTab(self.indexOf(term))
        widget = self.currentWidget()
        if widget:
            widget.setFocus()
        if self.count() == 0:
            self.new_terminal()
Beispiel #9
0
class TabbedTerminal(QTabWidget):
    def __init__(self, params, parent=None):
        super(TabbedTerminal, self).__init__(parent)
        self.proc_info = ProcessInfo()
        self.gdbparams = params
        self.setTabPosition(QTabWidget.South)
        self._new_button = QPushButton(self)
        self._new_button.setText("New")
        self._new_button.clicked.connect(self.new_terminal)
        self.setCornerWidget(self._new_button)
        self.setTabsClosable(True)
        self.setMovable(True)
        self.setWindowTitle("Terminal")
        self.resize(800, 600)
        self._terms = []
        self.tabCloseRequested[int].connect(self._on_close_request)
        self.currentChanged[int].connect(self._on_current_changed)
        QTimer.singleShot(0, self.new_terminal)  # create lazy on idle
        self.startTimer(1000)

    def _on_close_request(self, idx):
        term = self.widget(idx)
        term.stop()

    def _on_current_changed(self, idx):
        term = self.widget(idx)
        self.term = term
        self._update_title(term)

    def new_terminal(self):
        term = TerminalWidget(self)
        term.session_closed.connect(self._on_session_closed)
        self.addTab(term, "Terminal")
        self._terms.append(term)
        self.setCurrentWidget(term)
        term.setFocus()
        self.terminal = term
        filename = str(self.gdbparams[2])
        print filename
        extension = os.path.splitext(filename)[1]
        print extension
        if extension == ".lzo":
            print "the core is lzo"
            call(["lzop", "-fd", filename, "-o", "test.core"])

        term.send("rm -f bt.txt \n")
        gdbpath = str("/usr/bin/mips-csr3.0-gdb -x bt.txt") + str(" \n")
        #gdbpath = str(self.gdbparams[0]) + "/usr/bin/gdb "
        print gdbpath
        #cmd = str(gdbpath + str(self.gdbparams[1]) + " test.core \n")
        #print cmd
        ## start gdb
        term.send(gdbpath)
        term.send("set logging on bt.txt \n")
        solibpathcmd = str("set solib-absolute-prefix ") + str(
            self.gdbparams[0]) + str(" \n")
        term.send(solibpathcmd)
        sysrootpathcmd = str("set sysroot ") + str(
            self.gdbparams[0]) + str(" \n")
        term.send(sysrootpathcmd)
        filepathcmd = str("file ") + str(self.gdbparams[1]) + str(" \n")
        term.send(filepathcmd)
        corefilecmd = str("core-file ") + "test.core" + str(" \n")
        term.send(corefilecmd)
        #term.send(cmd)
        term.send("bt full  \n")
        msgBox = QMessageBox()
        workingDir = os.getcwd()
        btMsg = str("Check the backtrace stored in bt.txt at ") + str(
            workingDir)
        msgBox.setText(btMsg)
        msgBox.setStandardButtons(QMessageBox.Ok)
        ret = msgBox.exec_()
        #self.term.send("ls -l ")
        #print (self.gdbparams[1])
        #term.send(self.gdbparams[0])
        #term.send(self.gdbparams[1])

    def timerEvent(self, event):
        self._update_title(self.currentWidget())

    def _update_title(self, term):
        if term is None:
            self.setWindowTitle("Terminal")
            return
        idx = self.indexOf(term)
        pid = term.pid()
        self.proc_info.update()
        child_pids = [pid] + self.proc_info.all_children(pid)
        for pid in reversed(child_pids):
            cwd = self.proc_info.cwd(pid)
            if cwd:
                break
        try:
            cmd = self.proc_info.commands[pid]
            title = "%s: %s" % (os.path.basename(cwd), cmd)
        except:
            title = "Terminal"
        self.setTabText(idx, title)
        self.setWindowTitle(title)

    def _on_session_closed(self):
        term = self.sender()
        try:
            self._terms.remove(term)
        except:
            pass
        self.removeTab(self.indexOf(term))
        widget = self.currentWidget()
        if widget:
            widget.setFocus()
        if self.count() == 0:
            self.new_terminal()