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.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • 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.