Ignore:
Timestamp:
11/02/12 17:25:23 (18 months ago)
Author:
Ales Erjavec <ales.erjavec@…>
Branch:
default
Message:

Added 'Output' window showing redirected stdout/stderr.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • Orange/OrangeCanvas/application/canvasmain.py

    r11166 r11167  
    1414    QMainWindow, QWidget, QAction, QActionGroup, QMenu, QMenuBar, QDialog, 
    1515    QFileDialog, QMessageBox, QVBoxLayout, QSizePolicy, QColor, QKeySequence, 
    16     QIcon, QToolBar, QDockWidget, QDesktopServices, QUndoGroup 
     16    QIcon, QToolBar, QDockWidget, QDesktopServices, QUndoGroup, QApplication 
    1717) 
    1818 
    1919from PyQt4.QtCore import ( 
    20     Qt, QEvent, QSize, QUrl, QSettings 
     20    Qt, QEvent, QSize, QUrl, QSettings, QTimer 
    2121) 
    2222 
     
    3030from .aboutdialog import AboutDialog 
    3131from .schemeinfo import SchemeInfoDialog 
     32from .outputview import OutputText 
    3233from ..document.schemeedit import SchemeEditWidget 
    3334 
     
    175176 
    176177class CanvasMainWindow(QMainWindow): 
    177     SETTINGS_VERSION = 1 
     178    SETTINGS_VERSION = 2 
    178179 
    179180    def __init__(self, *args): 
     
    216217        self.addToolBar(Qt.BottomToolBarArea, self.__dummy_bottom_toolbar) 
    217218 
     219        self.setCorner(Qt.BottomLeftCorner, Qt.LeftDockWidgetArea) 
     220        self.setCorner(Qt.BottomRightCorner, Qt.RightDockWidgetArea) 
     221 
    218222        # Create an empty initial scheme inside a container with fixed 
    219223        # margins. 
     
    248252        self.dock_widget.setFeatures(QDockWidget.DockWidgetMovable | \ 
    249253                                     QDockWidget.DockWidgetClosable) 
     254        self.dock_widget.setAllowedAreas(Qt.LeftDockWidgetArea | \ 
     255                                         Qt.RightDockWidgetArea) 
    250256 
    251257        # Main canvas tool dock (with widget toolbox, common actions. 
     
    334340            self._on_dock_location_changed 
    335341        ) 
     342 
     343        self.output_dock = QDockWidget(self.tr("Output"), 
     344                                       objectName="output-dock") 
     345        self.output_dock.setAllowedAreas(Qt.BottomDockWidgetArea) 
     346 
     347        self.addDockWidget(Qt.BottomDockWidgetArea, self.output_dock) 
     348        self.output_dock.setFloating(True) 
     349 
     350        self.output_dock.hide() 
     351 
     352        output_view = OutputText() 
     353        self.output_dock.setWidget(output_view) 
    336354 
    337355        self.setMinimumSize(600, 500) 
     
    491509                    menuRole=QAction.PreferencesRole, 
    492510                    shortcut=QKeySequence.Preferences 
     511                    ) 
     512 
     513        self.show_output_action = \ 
     514            QAction(self.tr("Show Output View"), self, 
     515                    toolTip=self.tr("Show application output."), 
     516                    triggered=self.show_output_view, 
    493517                    ) 
    494518 
     
    677701        # Options menu 
    678702        self.options_menu = QMenu(self.tr("&Options"), self) 
    679         self.options_menu.addAction(self.tr("Show Output")) 
     703        self.options_menu.addAction(self.show_output_action) 
    680704#        self.options_menu.addAction("Add-ons") 
    681705#        self.options_menu.addAction("Developers") 
     
    12341258        pass 
    12351259 
     1260    def show_output_view(self): 
     1261        """Show a window with application output. 
     1262        """ 
     1263        self.output_dock.show() 
     1264 
     1265    def output_view(self): 
     1266        """Return the output text widget. 
     1267        """ 
     1268        return self.output_dock.widget() 
     1269 
    12361270    def open_about(self): 
    12371271        """Open the about dialog. 
     
    13531387 
    13541388        event.accept() 
     1389 
     1390        # Close any windows left. 
     1391        application = QApplication.instance() 
     1392        QTimer.singleShot(0, application.closeAllWindows) 
    13551393 
    13561394    def showEvent(self, event): 
Note: See TracChangeset for help on using the changeset viewer.