Ignore:
Location:
Orange/OrangeCanvas
Files:
6 edited

Legend:

Unmodified
Added
Removed
  • Orange/OrangeCanvas/application/tests/test_canvastooldock.py

    r11120 r11309  
    1919    def test_dock(self): 
    2020        reg = global_registry() 
    21         reg = QtWidgetRegistry(reg) 
     21        reg = QtWidgetRegistry(reg, parent=self.app) 
    2222 
    2323        toolbox = WidgetToolBox() 
    2424        toolbox.setObjectName("widgets-toolbox") 
    2525        toolbox.setModel(reg.model()) 
     26 
    2627        text = QTextEdit() 
    2728        splitter = QSplitter() 
     
    4647    def test_canvas_tool_dock(self): 
    4748        reg = global_registry() 
    48         reg = QtWidgetRegistry(reg) 
     49        reg = QtWidgetRegistry(reg, parent=self.app) 
    4950 
    5051        dock = CanvasToolDock() 
     
    7576    def test_category_toolbar(self): 
    7677        reg = global_registry() 
    77         reg = QtWidgetRegistry(reg) 
     78        reg = QtWidgetRegistry(reg, parent=self.app) 
    7879 
    7980        w = QuickCategoryToolbar() 
     
    8182        w.show() 
    8283 
    83         def p(action): 
    84             print action.text() 
    85  
    8684        self.app.exec_() 
  • Orange/OrangeCanvas/application/widgettoolbox.py

    r11254 r11309  
    6161        """Set a model (`QStandardItemModel`) for the tool grid. The 
    6262        widget actions are children of the rootIndex. 
     63 
     64        .. warning:: The model should not be deleted before the 
     65                     `WidgetToolGrid` instance. 
    6366 
    6467        """ 
  • Orange/OrangeCanvas/document/schemeedit.py

    r11296 r11310  
    777777        name, ok = QInputDialog.getText( 
    778778                    self, self.tr("Rename"), 
    779                     unicode(self.tr("Enter a new name for the %r widget")) \ 
     779                    unicode(self.tr("Enter a new name for the '%s' widget")) \ 
    780780                    % node.title, 
    781781                    text=node.title 
  • Orange/OrangeCanvas/gui/utils.py

    r11232 r11311  
    8282        return False 
    8383    elif sys.platform == "darwin": 
    84         try: 
    85             # Test if Qt was build against X11. 
    86             from PyQt4.QtGui import QX11Info 
    87             return QX11Info.isCompositingManagerRunning() 
    88         except ImportError: 
    89             # Assuming Quartz compositor is running. 
     84        if has_x11(): 
     85            return is_x11_compositing_enabled() 
     86        else: 
     87            # Quartz compositor 
    9088            return True 
    9189    elif sys.platform.startswith("linux"): 
     
    9492    elif sys.platform.startswith("freebsd"): 
    9593        return is_x11_compositing_enabled() 
    96     elif os.name == "": 
    97         # Any other system (Win, OSX) is assumed to support it 
     94    elif has_x11(): 
     95        return is_x11_compositing_enabled() 
     96    else: 
     97        return False 
     98 
     99 
     100def has_x11(): 
     101    """ 
     102    Is Qt build against X11 server. 
     103    """ 
     104    try: 
     105        from PyQt4.QtGui import QX11Info 
    98106        return True 
     107    except ImportError: 
     108        return False 
    99109 
    100110 
     
    118128    try: 
    119129        DwmIsCompositionEnabled = ctypes.windll.dwmapi.DwmIsCompositionEnabled 
    120     except AttributeError: 
     130    except (AttributeError, WindowsError): 
    121131        # dwmapi or DwmIsCompositionEnabled is not present 
    122132        return False 
  • Orange/OrangeCanvas/preview/previewbrowser.py

    r11215 r11308  
    33 
    44""" 
     5 
     6from xml.sax.saxutils import escape 
    57 
    68from PyQt4.QtGui import ( 
     
    317319                description = "No description." 
    318320 
     321            description = escape(description) 
     322            description = description.replace("\n", "<br/>") 
     323 
    319324            name = unicode(index.data(Qt.DisplayRole).toString()) 
    320325            if not name: 
    321326                name = "Untitled" 
    322327 
     328            name = escape(name) 
    323329            path = unicode(index.data(Qt.StatusTipRole).toString()) 
    324330 
  • Orange/OrangeCanvas/scheme/readwrite.py

    r11305 r11307  
    33""" 
    44import sys 
    5 import StringIO 
    65import shutil 
    76 
    87from xml.etree.ElementTree import TreeBuilder, Element, ElementTree, parse 
    9 from xml.dom import minidom 
    108 
    119from collections import defaultdict 
     
    435433    """ 
    436434    tree = scheme_to_etree(scheme) 
    437     buffer = StringIO.StringIO() 
     435 
     436    if pretty: 
     437        indent(tree.getroot(), 0) 
    438438 
    439439    if sys.version_info < (2, 7): 
    440440        # in Python 2.6 the write does not have xml_declaration parameter. 
    441         tree.write(buffer, encoding="utf-8") 
     441        tree.write(stream, encoding="utf-8") 
    442442    else: 
    443         tree.write(buffer, encoding="utf-8", xml_declaration=True) 
    444  
    445     if pretty: 
    446         dom = minidom.parse(StringIO.StringIO(buffer.getvalue())) 
    447         pretty_xml = dom.toprettyxml(encoding="utf-8") 
    448         buffer = StringIO.StringIO(pretty_xml) 
    449     else: 
    450         buffer.seek(0) 
    451  
    452     shutil.copyfileobj(buffer, stream) 
     443        tree.write(stream, encoding="utf-8", xml_declaration=True) 
     444 
     445 
     446def indent(element, level=0, indent="\t"): 
     447    """ 
     448    Indent an instance of a :class:`Element`. Based on 
     449    `http://effbot.org/zone/element-lib.htm#prettyprint`_). 
     450 
     451    """ 
     452    def empty(text): 
     453        return not text or not text.strip() 
     454 
     455    def indent_(element, level, last): 
     456        child_count = len(element) 
     457 
     458        if child_count: 
     459            if empty(element.text): 
     460                element.text = "\n" + indent * (level + 1) 
     461 
     462            if empty(element.tail): 
     463                element.tail = "\n" + indent * (level + (-1 if last else 0)) 
     464 
     465            for i, child in enumerate(element): 
     466                indent_(child, level + 1, i == child_count - 1) 
     467 
     468        else: 
     469            if empty(element.tail): 
     470                element.tail = "\n" + indent * (level + (-1 if last else 0)) 
     471 
     472    return indent_(element, level, True) 
Note: See TracChangeset for help on using the changeset viewer.