Changeset 11508:5f54d6c68d9e in orange


Ignore:
Timestamp:
05/13/13 11:33:59 (12 months ago)
Author:
Ales Erjavec <ales.erjavec@…>
Branch:
default
Message:

Moved gradient functions into gui.utils.

Location:
Orange/OrangeCanvas
Files:
4 edited

Legend:

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

    r11372 r11508  
    2222from PyQt4.QtCore import  pyqtSignal as Signal, pyqtProperty as Property 
    2323 
    24 from ..gui.toolbox import ToolBox, create_tab_gradient 
     24from ..gui.toolbox import ToolBox 
    2525from ..gui.toolgrid import ToolGrid 
    2626from ..gui.quickhelp import StatusTipPromoter 
     27from ..gui.utils import create_gradient 
    2728from ..registry.qt import QtWidgetRegistry 
    2829 
     
    390391 
    391392        if not brush.gradient(): 
    392             gradient = create_tab_gradient(brush.color()) 
     393            gradient = create_gradient(brush.color()) 
    393394            brush = QBrush(gradient) 
    394395 
  • Orange/OrangeCanvas/document/quickmenu.py

    r11507 r11508  
    3636from ..gui.lineedit import LineEdit 
    3737from ..gui.tooltree import ToolTree, FlattenedTreeItemModel 
    38 from ..gui.toolgrid import ToolButtonEventListener 
    39 from ..gui.toolbox import create_tab_gradient 
    40 from ..gui.utils import StyledWidget_paintEvent 
     38from ..gui.utils import StyledWidget_paintEvent, create_css_gradient 
    4139 
    4240from ..registry.qt import QtWidgetRegistry 
     
    13211319 
    13221320        self.move(x, y) 
    1323  
    1324  
    1325 def create_css_gradient(base_color): 
    1326     """ 
    1327     Create a Qt css linear gradient fragment based on the `base_color`. 
    1328     """ 
    1329     grad = create_tab_gradient(base_color) 
    1330     stops = grad.stops() 
    1331     stops = "\n".join("    stop: {0:f} {1}".format(stop, color.name()) 
    1332                       for stop, color in stops) 
    1333     return ("qlineargradient(\n" 
    1334             "    x1: 0, y1: 0, x2: 0, y2: 1,\n" 
    1335             "{0})").format(stops) 
  • Orange/OrangeCanvas/gui/toolbox.py

    r11441 r11508  
    1515    QWidget, QFrame, QSizePolicy, QIcon, QFontMetrics, QPainter, QStyle, 
    1616    QStyleOptionToolButton, QStyleOptionToolBoxV2, QPalette, QBrush, QPen, 
    17     QLinearGradient, QColor, QScrollArea, QVBoxLayout, QToolButton, 
    18     QAction, QActionGroup 
     17    QColor, QScrollArea, QVBoxLayout, QToolButton, QAction, QActionGroup 
    1918) 
    2019 
     
    3736 
    3837FOCUS_OUTLINE_COLOR = "#609ED7" 
    39  
    40  
    41 def create_tab_gradient(base_color): 
    42     """ 
    43     Create a default background gradient for a tab button from a single 
    44     color. 
    45  
    46     """ 
    47     grad = QLinearGradient(0, 0, 0, 1) 
    48     grad.setStops([(0.0, base_color), 
    49                    (0.5, base_color), 
    50                    (0.8, base_color.darker(105)), 
    51                    (1.0, base_color.darker(110)), 
    52                    ]) 
    53     grad.setCoordinateMode(QLinearGradient.ObjectBoundingMode) 
    54     return grad 
    5538 
    5639 
  • Orange/OrangeCanvas/gui/utils.py

    r11311 r11508  
    33 
    44""" 
    5 import os 
     5 
    66import sys 
    77import traceback 
     
    1313    QPainter, QStyleOption, QStyle 
    1414) 
     15 
     16from PyQt4.QtCore import QPointF 
    1517 
    1618import sip 
     
    177179 
    178180 
     181def create_gradient(base_color, stop=QPointF(0, 0), 
     182                    finalStop=QPointF(0, 1)): 
     183    """ 
     184    Create a default linear gradient using `base_color` . 
     185 
     186    """ 
     187    grad = QLinearGradient(stop, finalStop) 
     188    grad.setStops([(0.0, base_color), 
     189                   (0.5, base_color), 
     190                   (0.8, base_color.darker(105)), 
     191                   (1.0, base_color.darker(110)), 
     192                   ]) 
     193    grad.setCoordinateMode(QLinearGradient.ObjectBoundingMode) 
     194    return grad 
     195 
     196 
     197def create_css_gradient(base_color, stop=QPointF(0, 0), 
     198                        finalStop=QPointF(0, 1)): 
     199    """ 
     200    Create a Qt css linear gradient fragment based on the `base_color`. 
     201    """ 
     202    gradient = create_gradient(base_color, stop, finalStop) 
     203    return css_gradient(gradient) 
     204 
     205 
     206def css_gradient(gradient): 
     207    """ 
     208    Given an instance of a `QLinearGradient` return an equivalent qt css 
     209    gradient fragment. 
     210 
     211    """ 
     212    stop, finalStop = gradient.start(), gradient.finalStop() 
     213    x1, y1, x2, y2 = stop.x(), stop.y(), finalStop.x(), finalStop.y() 
     214    stops = gradient.stops() 
     215    stops = "\n".join("    stop: {0:f} {1}".format(stop, color.name()) 
     216                      for stop, color in stops) 
     217    return ("qlineargradient(\n" 
     218            "    x1: {x1}, y1: {y1}, x2: {x1}, y2: {y2},\n" 
     219            "{stops})").format(x1=x1, y1=y1, x2=x2, y2=y2, stops=stops) 
     220 
     221 
    179222def message_critical(text, title=None, informative_text=None, details=None, 
    180223                     buttons=None, default_button=None, exc_info=False, 
Note: See TracChangeset for help on using the changeset viewer.