Show More
@@ -516,9 +516,10 b' class IPShellWidget(wx.Panel):' | |||||
516 | #---------------------- IPython Thread Management ------------------------ |
|
516 | #---------------------- IPython Thread Management ------------------------ | |
517 | def stateDoExecuteLine(self): |
|
517 | def stateDoExecuteLine(self): | |
518 | #print >>sys.__stdout__,"command:",self.getCurrentLine() |
|
518 | #print >>sys.__stdout__,"command:",self.getCurrentLine() | |
519 | line=self.text_ctrl.getCurrentLine() |
|
519 | lines=self.text_ctrl.getCurrentLine() | |
520 | self.text_ctrl.write('\n') |
|
520 | self.text_ctrl.write('\n') | |
521 | self.IP.doExecute((line.replace('\t',' '*4)).encode('cp1252')) |
|
521 | for line in lines.split('\n'): | |
|
522 | self.IP.doExecute((line.replace('\t',' '*4)).encode('cp1252')) | |||
522 | self.updateHistoryTracker(self.text_ctrl.getCurrentLine()) |
|
523 | self.updateHistoryTracker(self.text_ctrl.getCurrentLine()) | |
523 | self.setCurrentState('WAIT_END_OF_EXECUTION') |
|
524 | self.setCurrentState('WAIT_END_OF_EXECUTION') | |
524 |
|
525 | |||
@@ -527,12 +528,12 b' class IPShellWidget(wx.Panel):' | |||||
527 | self.help = self.IP.getHelpText() |
|
528 | self.help = self.IP.getHelpText() | |
528 | if self.doc: |
|
529 | if self.doc: | |
529 | self.pager_lines = self.doc[7:].split('\n') |
|
530 | self.pager_lines = self.doc[7:].split('\n') | |
530 |
|
|
531 | self.pager_state = 'INIT' | |
531 | self.setCurrentState('SHOW_DOC') |
|
532 | self.setCurrentState('SHOW_DOC') | |
532 | self.pager(self.doc) |
|
533 | self.pager(self.doc) | |
533 | elif self.help: |
|
534 | elif self.help: | |
534 | self.pager_lines = self.help.split('\n') |
|
535 | self.pager_lines = self.help.split('\n') | |
535 |
|
|
536 | self.pager_state = 'INIT' | |
536 | self.setCurrentState('SHOW_DOC') |
|
537 | self.setCurrentState('SHOW_DOC') | |
537 | self.pager(self.help) |
|
538 | self.pager(self.help) | |
538 | else: |
|
539 | else: | |
@@ -563,43 +564,43 b' class IPShellWidget(wx.Panel):' | |||||
563 | def pager(self,text): |
|
564 | def pager(self,text): | |
564 |
|
565 | |||
565 | if self.pager_state == 'INIT': |
|
566 | if self.pager_state == 'INIT': | |
566 |
|
|
567 | #print >>sys.__stdout__,"PAGER state:",self.pager_state | |
567 | self.pager_nb_lines = len(self.pager_lines) |
|
568 | self.pager_nb_lines = len(self.pager_lines) | |
568 |
|
|
569 | self.pager_index = 0 | |
569 |
|
|
570 | self.pager_do_remove = False | |
570 |
|
|
571 | self.text_ctrl.write('\n') | |
571 |
|
|
572 | self.pager_state = 'PROCESS_LINES' | |
572 |
|
573 | |||
573 |
|
|
574 | if self.pager_state == 'PROCESS_LINES': | |
574 |
|
|
575 | #print >>sys.__stdout__,"PAGER state:",self.pager_state | |
575 |
|
|
576 | if self.pager_do_remove == True: | |
576 |
|
|
577 | self.text_ctrl.removeCurrentLine() | |
577 |
|
|
578 | self.pager_do_remove = False | |
578 |
|
579 | |||
579 |
|
|
580 | if self.pager_nb_lines > 10: | |
580 |
|
|
581 | #print >>sys.__stdout__,"PAGER processing 10 lines" | |
581 |
|
|
582 | if self.pager_index > 0: | |
582 |
|
|
583 | self.text_ctrl.write(">\x01\x1b[1;36m\x02"+self.pager_lines[self.pager_index]+'\n') | |
583 | else: |
|
584 | else: | |
584 |
|
|
585 | self.text_ctrl.write("\x01\x1b[1;36m\x02 "+self.pager_lines[self.pager_index]+'\n') | |
585 |
|
586 | |||
586 |
|
|
587 | for line in self.pager_lines[self.pager_index+1:self.pager_index+9]: | |
587 |
|
|
588 | self.text_ctrl.write("\x01\x1b[1;36m\x02 "+line+'\n') | |
588 |
|
|
589 | self.pager_index += 10 | |
589 |
|
|
590 | self.pager_nb_lines -= 10 | |
590 |
|
|
591 | self.text_ctrl.write("--- Push Enter to continue or 'Q' to quit---") | |
591 |
|
|
592 | self.pager_do_remove = True | |
592 |
|
|
593 | self.pager_state = 'WAITING' | |
593 | return |
|
594 | return | |
594 |
|
|
595 | else: | |
595 |
|
|
596 | #print >>sys.__stdout__,"PAGER processing last lines" | |
596 |
|
|
597 | if self.pager_nb_lines > 0: | |
597 | if self.pager_index > 0: |
|
598 | if self.pager_index > 0: | |
598 |
|
|
599 | self.text_ctrl.write(">\x01\x1b[1;36m\x02"+self.pager_lines[self.pager_index]+'\n') | |
599 | else: |
|
600 | else: | |
600 |
|
|
601 | self.text_ctrl.write("\x01\x1b[1;36m\x02 "+self.pager_lines[self.pager_index]+'\n') | |
601 |
|
602 | |||
602 | self.pager_index += 1 |
|
603 | self.pager_index += 1 | |
603 | self.pager_nb_lines -= 1 |
|
604 | self.pager_nb_lines -= 1 | |
604 | if self.pager_nb_lines > 0: |
|
605 | if self.pager_nb_lines > 0: | |
605 | for line in self.pager_lines[self.pager_index:]: |
|
606 | for line in self.pager_lines[self.pager_index:]: | |
@@ -642,6 +643,7 b' class IPShellWidget(wx.Panel):' | |||||
642 | if event.GetKeyCode() in [ord('q'),ord('Q')]: |
|
643 | if event.GetKeyCode() in [ord('q'),ord('Q')]: | |
643 | if self.pager_state == 'WAITING': |
|
644 | if self.pager_state == 'WAITING': | |
644 | self.pager_state = 'DONE' |
|
645 | self.pager_state = 'DONE' | |
|
646 | self.text_ctrl.write('\n') | |||
645 | self.stateShowPrompt() |
|
647 | self.stateShowPrompt() | |
646 | return |
|
648 | return | |
647 |
|
649 |
General Comments 0
You need to be logged in to leave comments.
Login now