Ignore:
Timestamp:
04/21/12 23:49:28 (2 years ago)
Author:
mitar
Branch:
default
Message:

Support also add-ons in Python eggs.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • Orange/OrangeCanvas/orngCanvas.pyw

    r10827 r10838  
    1111     
    1212import sys, os, cPickle, orngRegistry, OWGUI 
     13import pkg_resources 
    1314import orngTabs, orngDoc, orngDlgs, orngOutput, orngHelp, OWReport 
    1415import user, orngMisc 
     
    10381039        for num in [16, 32, 40, 48, 60]: 
    10391040            names.append("%s_%d%s" % (name, num, ext)) 
    1040              
    1041         widgetDir = str(widgetInfo.directory)  #os.path.split(self.getFileName())[0] 
     1041         
     1042        if widgetInfo.module: 
     1043            widgetDir = '' 
     1044        else: 
     1045            widgetDir = str(widgetInfo.directory)  #os.path.split(self.getFileName())[0] 
    10421046        fullPaths = [] 
    10431047        for paths in [(self.widgetDir, widgetInfo.category), (self.widgetDir,), (self.picsDir,), tuple(), (widgetDir,), (widgetDir, "icons")]: 
    10441048            for name in names + [iconName]: 
    10451049                fname = os.path.join(*paths + (name,)) 
    1046                 if os.path.exists(fname): 
     1050                if widgetInfo.module: 
     1051                    if pkg_resources.resource_exists(widgetInfo.module, fname): 
     1052                        # TODO: Optimize, we should not be required to extract the icon 
     1053                        fullPaths.append(pkg_resources.resource_filename(widgetInfo.module, fname)) 
     1054                elif os.path.exists(fname): 
    10471055                    fullPaths.append(fname) 
    10481056            if len(fullPaths) > 1 and fullPaths[-1].endswith(iconName): 
     
    10531061     
    10541062    def getFullIconBackgroundName(self, widgetInfo): 
    1055         widgetDir = str(widgetInfo.directory) 
     1063        if widgetInfo.module: 
     1064            widgetDir = '' 
     1065        else: 
     1066            widgetDir = str(widgetInfo.directory) 
    10561067        fullPaths = [] 
    10571068        for paths in [(widgetDir, "icons"), (self.widgetDir, widgetInfo.category, "icons"), (self.widgetDir, "icons"), (self.picsDir,), tuple(), (widgetDir,), (widgetDir, "icons")]: 
    10581069            for name in ["background_%d.png" % num for num in [16, 32, 40, 48, 60]]: 
    10591070                fname = os.path.join(*paths + (name,)) 
    1060 #                print fname 
    1061                 if os.path.exists(fname): 
     1071                if widgetInfo.module: 
     1072                    if pkg_resources.resource_exists(widgetInfo.module, fname): 
     1073                        # TODO: Optimize, we should not be required to extract the icon 
     1074                        fullPaths.append(pkg_resources.resource_filename(widgetInfo.module, fname)) 
     1075                elif os.path.exists(fname): 
    10621076                    fullPaths.append(fname) 
    10631077            if fullPaths != []: 
Note: See TracChangeset for help on using the changeset viewer.