def addAction(self, objectName, icon, text, shortcut = "", slot = None, menuName = None):
    act = KAction(KIcon(icon), text, self)
    act.setObjectName(objectName)
    
    # Set shortcut
    if not act.objectName() in kate.configuration:
        kate.configuration[act.objectName()] = shortcut
    act.setShortcut(kate.configuration[act.objectName()])

    # Set slots
    if slot != None:
        act.triggered.connect( slot )
    kate.mainInterfaceWindow().window().actionCollection().addAction(act.objectName(), act)
    
    # Add to menu
    if menuName != None:
      menu = kate.mainInterfaceWindow().window().findChild(QMenu, menuName.lower())
      if menu == None:
        menu = kate.mainInterfaceWindow().window().menuBar().addMenu(menuName)
      menu.addAction(act)

    # Save changes to shortcut
    act.changed.connect( self.onActionChange )
    
    return act
Exemple #2
0
 def addHotKey(self, name, key):
     if not KGlobalAccel.isGlobalShortcutAvailable(key):
         actions = KGlobalAccel.getGlobalShortcutsByKey(key)
         if KGlobalAccel.promptStealShortcutSystemwide(None, actions, key):
             KGlobalAccel.stealShortcutSystemwide(key)
     action = KAction(None)
     action.setObjectName(name)
     action.setText(name)
     action.setGlobalShortcut(KShortcut(key), \
             KAction.ShortcutType(KAction.ActiveShortcut | KAction.DefaultShortcut),
             KAction.NoAutoloading)
     action.triggered.connect(self.catchGlobalKey)
     self.actions[self.nextId] = action
     self.nextId += 1
     return self.nextId - 1
Exemple #3
0
 def addHotKey(self, name, key):
     if not KGlobalAccel.isGlobalShortcutAvailable(key):
         actions = KGlobalAccel.getGlobalShortcutsByKey(key)
         if KGlobalAccel.promptStealShortcutSystemwide(None, actions, key):
             KGlobalAccel.stealShortcutSystemwide(key)
     action = KAction(None)
     action.setObjectName(name)
     action.setText(name)
     action.setGlobalShortcut(KShortcut(key), \
             KAction.ShortcutType(KAction.ActiveShortcut | KAction.DefaultShortcut),
             KAction.NoAutoloading)
     action.triggered.connect(self.catchGlobalKey)
     self.actions[self.nextId] = action
     self.nextId += 1
     return self.nextId - 1
Exemple #4
0
def create (parent, ac):
    """here be common actions for satyr skins"""
    actions= (
        ('queue',    Qt.CTRL+Qt.Key_Q, False, "Queue songs"),
        ('rename',   Qt.CTRL+Qt.Key_R, False, "Arrange songs"),
        ('toggleVA', Qt.CTRL+Qt.Key_V, False, "Toggle 'Various Artists' flag"),
        ('delete',   Qt.CTRL+Qt.Key_D, False, "Delete songs"),

        # globals
        ('player.prev',  KShortcut (Qt.Key_MediaPrevious),  True, "Previous song"),
        ('player.stop',  KShortcut (Qt.Key_MediaStop),      True, "Stop"),
        ('player.play',  KShortcut (Qt.Key_MediaPlay),      True, "Play"),
        ('player.pause', KShortcut (Qt.Key_Pause),     True, "Toggle Pause"),
        ('player.play_pause', KShortcut (Qt.Key_MediaPlay), True, "Switch between Play and Pause"),
        ('player.next',  KShortcut (Qt.Key_MediaNext),      True, "Next song"),
        ('player.toggleStopAfter', KShortcut (Qt.Key_Eject), True, "Stop after playing current song"),
        # TODO: S-Play/Pause -> cycle random
        # TODO: S-|<</>>| -> beginning/prev album, next album
        )

    for fqn, shortcut, globalSC, text in actions:
        try:
            obj, name= traverseObjects (parent, fqn)
        except AttributeError, e:
            logger.warning ("actions.create(): %s, shortcut for %s not set", e.args[0], fqn)
        else:
            fqn= "satyr."+fqn
            action= KAction (text, parent)
            action.setObjectName (fqn)
            if globalSC:
                action.setGlobalShortcut (shortcut)
            else:
                action.setShortcut (shortcut)
            ac.addAction (fqn, action)

            # the skin can decide to not implement an action!
            method= getattr (obj, name, None)
            if method is not None:
                action.triggered.connect (method)
            else:
                logger.warning ("actions.create(): no method %s, shortcut for %s not set", name, fqn)
Exemple #5
0
class KateReload(QObject):
  def __init__(self):
    QObject.__init__(self)
    
    self.window = kate.mainInterfaceWindow().window()
    
    kate.configuration.root.clear()
    
    self.act = KAction(KIcon("reload"), i18n("Auto Reload"), self)
    self.act.setObjectName("auto reload")
        
    self.window.actionCollection().addAction(self.act.objectName(), self.act)    
    self.window.findChild(QMenu, 'view').addAction(self.act)

    if not self.act.objectName() in kate.configuration:
        kate.configuration[self.act.objectName()] = "alt+r"
    self.act.setShortcut(kate.configuration[self.act.objectName()])

    self.act.setCheckable(True)
    self.act.setChecked(False)

    
    self.act.changed.connect(self.onActionChange)
    self.act.toggled.connect(self.toggle)
    
    kate.mainInterfaceWindow().viewChanged.connect(self.onViewChanged)
        
  def onViewChanged(self):
      try:
        doc = sip.cast(kate.activeDocument(), KateDocument)
      except kate.api.NoActiveView:
        return
    
      self.act.blockSignals(True)
      if doc.property('AutoReload'):
          self.act.setChecked(True)
      else:
          self.act.setChecked(False)
      self.act.blockSignals(False)
      

  def onActionChange(self):
      kate.configuration[self.sender().objectName()] = self.sender().shortcut().toString()
      kate.configuration.save()
  
  def toggle(self, state):
      doc = sip.cast(kate.activeDocument(), KateDocument)
      if state == True:
        self.enable(doc)
      else:
        self.disable(doc)
  
  def enable(self, doc):
      if doc.url() == '':
        self.act.blockSignals(True)
        showError(i18n('Can\'t auto-reload unsaved file'))
        self.act.setChecked(False)
        self.act.blockSignals(False)
        return

      doc.setModifiedOnDiskWarning(False)
      doc.modifiedOnDisk.connect(doc.documentReload)
      doc.setProperty('AutoReload', True)
      
      showOk(i18n('Auto-Reload enabled'))
      
  def disable(self, doc):
      if doc.property('AutoReload'):
        doc.setModifiedOnDiskWarning(True)
        doc.modifiedOnDisk.disconnect(doc.documentReload)
        doc.setProperty('AutoReload', False)
        showOk(i18n('Auto-Reload disabled'))
      else:
        print('Error disabled called on something with no auto-reload')
Exemple #6
0
class KateReload(QObject):
    def __init__(self):
        QObject.__init__(self)

        self.window = kate.mainInterfaceWindow().window()

        kate.configuration.root.clear()

        self.act = KAction(KIcon("reload"), i18n("Auto Reload"), self)
        self.act.setObjectName("auto reload")

        self.window.actionCollection().addAction(self.act.objectName(),
                                                 self.act)
        self.window.findChild(QMenu, 'view').addAction(self.act)

        if not self.act.objectName() in kate.configuration:
            kate.configuration[self.act.objectName()] = "alt+r"
        self.act.setShortcut(kate.configuration[self.act.objectName()])

        self.act.setCheckable(True)
        self.act.setChecked(False)

        self.act.changed.connect(self.onActionChange)
        self.act.toggled.connect(self.toggle)

        kate.mainInterfaceWindow().viewChanged.connect(self.onViewChanged)

    def onViewChanged(self):
        try:
            doc = sip.cast(kate.activeDocument(), KateDocument)
        except kate.api.NoActiveView:
            return

        self.act.blockSignals(True)
        if doc.property('AutoReload'):
            self.act.setChecked(True)
        else:
            self.act.setChecked(False)
        self.act.blockSignals(False)

    def onActionChange(self):
        kate.configuration[
            self.sender().objectName()] = self.sender().shortcut().toString()
        kate.configuration.save()

    def toggle(self, state):
        doc = sip.cast(kate.activeDocument(), KateDocument)
        if state == True:
            self.enable(doc)
        else:
            self.disable(doc)

    def enable(self, doc):
        if doc.url() == '':
            self.act.blockSignals(True)
            showError(i18n('Can\'t auto-reload unsaved file'))
            self.act.setChecked(False)
            self.act.blockSignals(False)
            return

        doc.setModifiedOnDiskWarning(False)
        doc.modifiedOnDisk.connect(doc.documentReload)
        doc.setProperty('AutoReload', True)

        showOk(i18n('Auto-Reload enabled'))

    def disable(self, doc):
        if doc.property('AutoReload'):
            doc.setModifiedOnDiskWarning(True)
            doc.modifiedOnDisk.disconnect(doc.documentReload)
            doc.setProperty('AutoReload', False)
            showOk(i18n('Auto-Reload disabled'))
        else:
            print('Error disabled called on something with no auto-reload')