Support for icon assignment based on introspection
This commit is contained in:
parent
163271fc17
commit
a84731da30
|
@ -13,7 +13,7 @@ import gnome
|
|||
import gnome.ui
|
||||
import scipy
|
||||
import pango
|
||||
import project, workflow, dataset, view, navigator, dialogs, selections, main
|
||||
import project, workflow, dataset, view, navigator, dialogs, selections, plots, main
|
||||
from logger import logger, LogView
|
||||
|
||||
|
||||
|
@ -22,6 +22,10 @@ VERSION = '0.1.0'
|
|||
DATADIR = os.path.dirname(sys.modules['fluents'].__file__)
|
||||
ICONDIR = os.path.join(DATADIR,"..","icons")
|
||||
GLADEFILENAME = os.path.join(DATADIR, 'fluents.glade')
|
||||
_icon_mapper = {dataset.Dataset: 'dataset',
|
||||
dataset.CategoryDataset: 'category_dataset',
|
||||
dataset.GraphDataset: 'graph_dataset',
|
||||
plots.Plot: 'line_plot'}
|
||||
|
||||
class IconFactory:
|
||||
"""Factory for icons that ensures that each icon is only loaded once."""
|
||||
|
@ -33,7 +37,13 @@ class IconFactory:
|
|||
def get(self, iconname):
|
||||
"""Returns the gdk loaded PixBuf for the given icon.
|
||||
Reads the icon from file if necessary."""
|
||||
|
||||
|
||||
# if iconname isnt a string, try to autoconvert
|
||||
if not isinstance(iconname, str):
|
||||
for cls in _icon_mapper.keys():
|
||||
if isinstance(iconname, cls):
|
||||
iconname = _icon_mapper[cls]
|
||||
|
||||
if self._icons.has_key(iconname):
|
||||
return self._icons[iconname]
|
||||
|
||||
|
|
Reference in New Issue