class ShortcutManager:
    def __init__(self, iface):
        self._iface = iface
        
        QgsMessageLog.logMessage(
            "Shortcuts manager. Load shortcuts from settings.", 
            None, QgsMessageLog.INFO)
        
        self._shortcuts = shortcutsFromSettings()
        
        # create actions
        self._actions = []
        for shortcut in self._shortcuts:
            self._actions.append(ShorcutAction(self._iface, shortcut))
            
        #create manager dialoog
        #self.dialog = ShortcutManagerDialog(None, self.createShortcut)
        self.dialog = ShortcutManagerDialog(None, weakref.proxy(self))
        for shortcut in self._shortcuts:
            self.dialog.addShortcut(ShortcutWidget(None,shortcut))

    def createShortcut(self, name, uri, icon):
        shortcut = Shorcut(name, uri, icon)
        
        self._shortcuts.append(shortcut)
        self._actions.append(ShorcutAction(self._iface, shortcut))
        self.dialog.addShortcut(ShortcutWidget(None,shortcut))
    
    #TODO bad decision
    def unload(self): 
        for action in self._actions:
            self._iface.removeToolBarIcon(action)
 def __init__(self, iface):
     self._iface = iface
     
     QgsMessageLog.logMessage(
         "Shortcuts manager. Load shortcuts from settings.", 
         None, QgsMessageLog.INFO)
     
     self._shortcuts = shortcutsFromSettings()
     
     # create actions
     self._actions = []
     for shortcut in self._shortcuts:
         self._actions.append(ShorcutAction(self._iface, shortcut))
         
     #create manager dialoog
     #self.dialog = ShortcutManagerDialog(None, self.createShortcut)
     self.dialog = ShortcutManagerDialog(None, weakref.proxy(self))
     for shortcut in self._shortcuts:
         self.dialog.addShortcut(ShortcutWidget(None,shortcut))