Changeset 11270:487bf7bfdcf6 in orange


Ignore:
Timestamp:
01/23/13 14:49:09 (15 months ago)
Author:
Ales Erjavec <ales.erjavec@…>
Branch:
default
Message:

Fixed default output dock size when first shown/undocked.

Location:
Orange/OrangeCanvas/application
Files:
2 edited

Legend:

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

    r11264 r11270  
    273273        self.output_dock = QDockWidget(self.tr("Output"), 
    274274                                       objectName="output-dock") 
    275  
    276275        self.output_dock.setAllowedAreas(Qt.BottomDockWidgetArea) 
    277  
     276        output_view = OutputView() 
     277        # Set widget before calling addDockWidget, otherwise the dock 
     278        # does not resize properly on first undock 
     279        self.output_dock.setWidget(output_view) 
    278280        self.addDockWidget(Qt.BottomDockWidgetArea, self.output_dock) 
     281 
    279282        self.output_dock.setFloating(True) 
    280  
    281283        self.output_dock.hide() 
    282  
    283         output_view = OutputView() 
    284         self.output_dock.setWidget(output_view) 
    285284 
    286285        self.help_dock = QDockWidget(self.tr("Help"), 
    287286                                     objectName="help-dock") 
    288         self.addDockWidget(Qt.LeftDockWidgetArea, self.help_dock) 
    289         self.help_dock.setFloating(True) 
    290287        self.help_dock.setAllowedAreas(Qt.NoDockWidgetArea) 
    291  
    292         self.help_dock.hide() 
    293  
    294288        self.help_view = QWebView() 
    295289        self.help_dock.setWidget(self.help_view) 
     290        self.addDockWidget(Qt.LeftDockWidgetArea, self.help_dock) 
     291 
     292        self.help_dock.setFloating(True) 
     293        self.help_dock.hide() 
    296294 
    297295        self.setMinimumSize(600, 500) 
  • Orange/OrangeCanvas/application/outputview.py

    r11268 r11270  
    77from PyQt4.QtGui import ( 
    88    QWidget, QPlainTextEdit, QVBoxLayout, QTextCursor, QTextCharFormat, 
    9     QFont, QFontMetrics 
     9    QFont, QSizePolicy 
    1010) 
    1111 
    12 from PyQt4.QtCore import Qt, QObject, QEvent, QCoreApplication, QThread 
     12from PyQt4.QtCore import Qt, QObject, QEvent, QCoreApplication, QThread, QSize 
    1313from PyQt4.QtCore import pyqtSignal as Signal 
     14 
     15 
     16class TerminalView(QPlainTextEdit): 
     17    def __init__(self, *args, **kwargs): 
     18        QPlainTextEdit.__init__(self, *args, **kwargs) 
     19        self.setFrameStyle(QPlainTextEdit.NoFrame) 
     20        self.setTextInteractionFlags(Qt.TextBrowserInteraction) 
     21        self.setVerticalScrollBarPolicy(Qt.ScrollBarAlwaysOn) 
     22        self.setSizePolicy(QSizePolicy.Preferred, QSizePolicy.Preferred) 
     23 
     24        font = self.font() 
     25        font.setStyleHint(QFont.Monospace) 
     26        font.setFamily("Monaco") 
     27        font.setPointSize(12) 
     28        self.setFont(font) 
     29 
     30    def sizeHint(self): 
     31        metrics = self.fontMetrics() 
     32        width = metrics.boundingRect("_" * 81).width() 
     33        height = metrics.lineSpacing() 
     34        scroll_width = self.verticalScrollBar().width() 
     35        size = QSize(width + scroll_width, height * 25) 
     36        return size 
    1437 
    1538 
     
    2346        self.layout().setContentsMargins(0, 0, 0, 0) 
    2447 
    25         self.__text = QPlainTextEdit() 
    26         self.__text.setTextInteractionFlags(Qt.TextBrowserInteraction) 
    27         self.__text.setMaximumBlockCount(self.__lines) 
    28         font = self.__text.font() 
    29         font.setFamily("Monaco") 
    30         self.__text.setFont(font) 
     48        self.__text = TerminalView() 
    3149 
    3250        self.__currentCharFormat = self.__text.currentCharFormat() 
    3351 
    3452        self.layout().addWidget(self.__text) 
    35  
    36         metrics = QFontMetrics(font) 
    37         width = metrics.boundingRect("X").width() 
    38         self.resize(width * 80, width * 30) 
    3953 
    4054    def setMaximumLines(self, lines): 
Note: See TracChangeset for help on using the changeset viewer.