Пример #1
0
 def script_speechHelp(self, gesture):
     if self.lanzador == "zl":
         varGlobal.mensaje(
             _("Use flechas derecha e izquierda para moverse por las categorías, flechas arriba y abajo para seleccionar item, enter para activarlo o escape para salir"
               ))
     elif self.lanzador == "zn":
         varGlobal.mensaje(
             _("Use flechas derecha e izquierda para moverse por las categorías, flechas arriba y abajo para seleccionar item, F1 para escuchar el contenido de la nota, F2 para copiar al portapapeles, F3 para pegar en el foco o escape para salir"
               ))
Пример #2
0
    def znotaClick(self, event):
        if self.doblePulsacion == False:
            if varGlobal.IS_WinON == False:
                self._MainWindows = HiloComplemento(2)
                self._MainWindows.start()
            else:
                msg = \
            _("""Ya hay una instancia de zUtilidades abierta.

No es posible tener dos instancias a la vez.""")
                varGlobal.mensaje(msg)
        else:
            pass
Пример #3
0
 def script_previousCategory(self, gesture):
     if self.lanzador == "zl":
         self.catIndexzl = self.catIndexzl - 1 if self.catIndexzl > 0 else len(
             self.categorias) - 1
         self.leerArchivosDAT(self.catIndexzl)
         varGlobal.mensaje(self.categorias[self.catIndexzl])
         self.itemIndexzl = -1
     elif self.lanzador == "zn":
         self.catIndexzn = self.catIndexzn - 1 if self.catIndexzn > 0 else len(
             self.categorias) - 1
         self.leerArchivosDAT(self.catIndexzn)
         varGlobal.mensaje(self.categorias[self.catIndexzn])
         self.itemIndexzn = -1
Пример #4
0
    def script_copyPP(self, gesture):
        if self.itemIndexzn < 0:
            varGlobal.mensaje(
                _("Use flechas derecha e izquierda para moverse por las categorías, flechas arriba y abajo para seleccionar item, F1 para escuchar el contenido de la nota, F2 para copiar al portapapeles, F3 para pegar en el foco o escape para salir"
                  ))
            return

        if len(self.temporal) == 0:
            varGlobal.mensaje(_("Esta categoría no tiene notas"))
            return
        else:
            valor = self.itemIndexzn
            self.dataObj = wx.TextDataObject()
            self.dataObj.SetText(self.temporal[valor][2])
            if wx.TheClipboard.Open():
                wx.TheClipboard.SetData(self.dataObj)
                wx.TheClipboard.Flush()
                varGlobal.mensaje(
                    _("Se ha copiado la nota {} al portapapeles").format(
                        self.temporal[valor][1]))
            else:
                varGlobal.mensaje(
                    _("No se pudo copiar la nota {} al portapapeles").format(
                        self.temporal[valor][1]))
            self.script_exit(None)
            self.finish()
Пример #5
0
    def script_nextCategory(self, gesture):
        if self.lanzador == "zl":
            self.catIndexzl = self.catIndexzl + 1 if self.catIndexzl < len(
                self.categorias) - 1 else 0
            self.leerArchivosDAT(self.catIndexzl)
            varGlobal.mensaje(self.categorias[self.catIndexzl])
            self.itemIndexzl = -1
        elif self.lanzador == "zn":
            self.catIndexzn = self.catIndexzn + 1 if self.catIndexzn < len(
                self.categorias) - 1 else 0

            self.leerArchivosDAT(self.catIndexzn)
            varGlobal.mensaje(self.categorias[self.catIndexzn])
            self.itemIndexzn = -1
Пример #6
0
    def znotaDobleClick(self, event):
        if self.doblePulsacion == True:
            if varGlobal.IS_WinON == False:
                self.lanzador = "zn"
                self.script_activarMenu(event)
                self.doblePulsacion = False
            else:
                msg = \
            _("""Ya hay una instancia de zUtilidades abierta.

No es posible tener dos instancias a la vez.""")
                varGlobal.mensaje(msg)
                self.doblePulsacion = False
        else:
            self.doblePulsacion = False
            pass
Пример #7
0
 def script_skipToCategory(self, gesture):
     if self.lanzador == "zl":
         categories = (self.categorias[self.catIndexzl + 1:]
                       if self.catIndexzl + 1 < len(self.categorias) else
                       []) + (self.categorias[:self.catIndexzl])
         try:
             self.catIndexzl = self.categorias.index(
                 filter(lambda i: i[0].lower() == gesture.mainKeyName,
                        categories).__next__()) - 1
         except AttributeError:
             try:
                 self.catIndexzl = self.categorias.index(
                     filter(lambda i: i[0].lower() == gesture.mainKeyName,
                            categories)[0]) - 1
                 self.script_nextCategory(None)
             except IndexError:
                 if self.categorias[
                         self.catIndexzl][0].lower() == gesture.mainKeyName:
                     varGlobal.mensaje(self.categorias[self.catIndexzl])
                 else:
                     tones.beep(200, 30)
         except StopIteration:
             if self.categorias[
                     self.catIndexzl][0].lower() == gesture.mainKeyName:
                 varGlobal.mensaje(self.categorias[self.catIndexzl])
             else:
                 tones.beep(200, 30)
         else:
             self.script_nextCategory(None)
     elif self.lanzador == "zn":
         categories = (self.categorias[self.catIndexzn + 1:]
                       if self.catIndexzn + 1 < len(self.categorias) else
                       []) + (self.categorias[:self.catIndexzn])
         try:
             self.catIndexzn = self.categorias.index(
                 filter(lambda i: i[0].lower() == gesture.mainKeyName,
                        categories).__next__()) - 1
         except AttributeError:
             try:
                 self.catIndexzn = self.categorias.index(
                     filter(lambda i: i[0].lower() == gesture.mainKeyName,
                            categories)[0]) - 1
                 self.script_nextCategory(None)
             except IndexError:
                 if self.categorias[
                         self.catIndexzn][0].lower() == gesture.mainKeyName:
                     varGlobal.mensaje(self.categorias[self.catIndexzn])
                 else:
                     tones.beep(200, 30)
         except StopIteration:
             if self.categorias[
                     self.catIndexzn][0].lower() == gesture.mainKeyName:
                 varGlobal.mensaje(self.categorias[self.catIndexzn])
             else:
                 tones.beep(200, 30)
         else:
             self.script_nextCategory(None)
Пример #8
0
 def script_previousItem(self, gesture):
     try:
         if self.lanzador == "zl":
             self.itemIndexzl = self.itemIndexzl - 1 if self.itemIndexzl > 0 else len(
                 self.nombreAccion) - 1
             varGlobal.mensaje(self.nombreAccion[self.itemIndexzl])
         elif self.lanzador == "zn":
             self.itemIndexzn = self.itemIndexzn - 1 if self.itemIndexzn > 0 else len(
                 self.nombreAccion) - 1
             varGlobal.mensaje(self.nombreAccion[self.itemIndexzn])
     except:
         if self.lanzador == "zl":
             varGlobal.mensaje(_("Sin acción"))
         if self.lanzador == "zn":
             varGlobal.mensaje(_("Sin notas"))
Пример #9
0
 def script_nextItem(self, gesture):
     try:
         if self.lanzador == "zl":
             self.itemIndexzl = self.itemIndexzl + 1 if self.itemIndexzl < len(
                 self.nombreAccion) - 1 else 0
             varGlobal.mensaje(self.nombreAccion[self.itemIndexzl])
         elif self.lanzador == "zn":
             self.itemIndexzn = self.itemIndexzn + 1 if self.itemIndexzn < len(
                 self.nombreAccion) - 1 else 0
             varGlobal.mensaje(self.nombreAccion[self.itemIndexzn])
     except:
         if self.lanzador == "zl":
             varGlobal.mensaje(_("Sin acción"))
         if self.lanzador == "zn":
             varGlobal.mensaje(_("Sin notas"))
Пример #10
0
    def newNote(self, event):
        if self.doblePulsacion == True:
            if varGlobal.IS_WinON == False:
                self.lanzador = "zn"
                indiceNotes = varGlobal.dbDatos(
                    os.path.join(zn.ajustes.dbDir,
                                 "index.dat")).CargaDatosIndex()
                self.NewCategorias = varGlobal.AnalizaDatos(
                    indiceNotes).GetCategoria()
                self.newArchivoCategorias = varGlobal.AnalizaDatos(
                    indiceNotes).GetArchivosCat()
                if len(self.NewCategorias) == 0:
                    msg = \
               _("""No hay categorías para añadir una nota rápida.

Agregue una categoría antes para poder crear una nota rápida.""")
                    varGlobal.mensaje(msg)
                    self.doblePulsacion = False
                    return
                self.windowsApp = AñadirNotaCopia(gui.mainFrame,
                                                  self.NewCategorias,
                                                  self.newArchivoCategorias,
                                                  None, 1)
                url = self.getURL()
                if url: self.windowsApp.textoNota.SetValue(url)
                gui.mainFrame.prePopup()
                self.windowsApp.Show()
                self.doblePulsacion = False
            else:
                msg = \
            _("""Ya hay una instancia de zUtilidades abierta.

No es posible tener dos instancias a la vez.""")
                varGlobal.mensaje(msg)
                self.doblePulsacion = False
        else:
            self.doblePulsacion = False
            pass
Пример #11
0
    def script_viewNote(self, gesture):
        if self.itemIndexzn < 0:
            varGlobal.mensaje(
                _("Use flechas derecha e izquierda para moverse por las categorías, flechas arriba y abajo para seleccionar item, F1 para escuchar el contenido de la nota, F2 para copiar al portapapeles, F3 para pegar en el foco o escape para salir"
                  ))
            return

        if len(self.temporal) == 0:
            varGlobal.mensaje(_("Esta categoría no tiene notas"))
            return
        else:
            valor = self.itemIndexzn
            if self.temporal[valor][0] == "txt":
                varGlobal.mensaje(self.temporal[valor][2])
Пример #12
0
    def script_pastePP(self, gesture):
        if self.itemIndexzn < 0:
            varGlobal.mensaje(
                _("Use flechas derecha e izquierda para moverse por las categorías, flechas arriba y abajo para seleccionar item, F1 para escuchar el contenido de la nota, F2 para copiar al portapapeles, F3 para pegar en el foco o escape para salir"
                  ))
            return

        if len(self.temporal) == 0:
            varGlobal.mensaje(_("Esta categoría no tiene notas"))
            return
        else:
            valor = self.itemIndexzn
            if self.temporal[valor][0] == "txt":
                self.script_exit(None)
                self.finish()
                paste = self.temporal[valor][2]
                # Source code taken from: frequentText add-on for NVDA. Written by Rui Fontes and Ângelo Abrantes
                try:
                    clipboardBackup = api.getClipData()
                except:
                    pass

                api.copyToClip(paste)
                time.sleep(0.1)
                api.processPendingEvents(False)
                focus = api.getFocusObject()
                if focus.windowClassName == "ConsoleWindowClass":
                    # Windows console window - Control+V doesn't work here, so using an alternative method here
                    WM_COMMAND = 0x0111
                    watchdog.cancellableSendMessage(focus.windowHandle,
                                                    WM_COMMAND, 0xfff1, 0)
                else:
                    time.sleep(0.1)
                    try:
                        KeyboardInputGesture.fromName("Control+v").send()
                    except:
                        # Solución para teclados con caracteres cirilicos.
                        KeyboardInputGesture.fromName("shift+insert").send()

                varGlobal.mensaje(_("Nota pegada en el foco"))
                try:
                    core.callLater(300,
                                   lambda: api.copyToClip(clipboardBackup))
                except:
                    pass
Пример #13
0
 def script_exit(self, gesture):
     varGlobal.mensaje(_("Saliendo del menú"))
Пример #14
0
    def script_executeCommand(self, gesture):
        if self.itemIndexzl < 0:
            varGlobal.mensaje(
                _("Use flechas derecha e izquierda para moverse por las categorías, flechas arriba y abajo para seleccionar item, enter para activarlo o escape para salir"
                  ))
            return

        if len(self.temporal) == 0:
            varGlobal.mensaje(_("Esta categoría no tiene acciones"))
            return
        else:
            varGlobal.mensaje(_("Ejecutando acción"))
            self.script_exit(None)
            valor = self.itemIndexzl
            if self.temporal[valor][0] == "app":
                if os.path.isfile(self.temporal[valor][2]):
                    self.finish()
                    if self.temporal[valor][5] == False:
                        if self.temporal[valor][3] == False:
                            varGlobal.ejecutar(
                                None, "open", self.temporal[valor][2], None,
                                os.path.dirname(self.temporal[valor][2]), 10)
                        else:
                            varGlobal.ejecutar(
                                None, "open", self.temporal[valor][2],
                                self.temporal[valor][4],
                                os.path.dirname(self.temporal[valor][2]), 10)
                    else:
                        if self.temporal[valor][3] == False:
                            varGlobal.ejecutar(
                                None, "runas", self.temporal[valor][2], None,
                                os.path.dirname(self.temporal[valor][2]), 10)
                        else:
                            varGlobal.ejecutar(
                                None, "runas", self.temporal[valor][2],
                                self.temporal[valor][4],
                                os.path.dirname(self.temporal[valor][2]), 10)
                else:
                    msg = \
               _("""La ruta a la aplicación {}, no se encontró.

Ejecute el lanzador de aplicaciones en modo grafico para editar la acción.""").format(self.temporal[valor][1])
                    varGlobal.mensaje(msg)
                    self.finish()

            elif self.temporal[valor][0] == "cmd":
                self.finish()
                if self.temporal[valor][4] == False:
                    if self.temporal[valor][3] == False:
                        varGlobal.ejecutar(None, "open", "cmd.exe",
                                           "/c" + self.temporal[valor][2],
                                           None, 10)
                    else:
                        varGlobal.ejecutar(
                            None, "open", "cmd.exe",
                            "/c" + self.temporal[valor][2] + "&pause", None,
                            10)
                else:
                    if self.temporal[valor][3] == False:
                        varGlobal.ejecutar(None, "runas", "cmd.exe",
                                           "/c" + self.temporal[valor][2],
                                           None, 10)
                    else:
                        varGlobal.ejecutar(
                            None, "runas", "cmd.exe",
                            "/c" + self.temporal[valor][2] + "&pause", None,
                            10)

            elif self.temporal[valor][0] == "fol":
                if os.path.isdir(self.temporal[valor][2]):
                    self.finish()
                    varGlobal.ejecutar(None, "explore",
                                       self.temporal[valor][2], None, None, 10)
                else:
                    msg = \
               _("""La ruta a la carpeta no se encontró.

{}

Ejecute el lanzador de aplicaciones en modo grafico para editar la acción.""").format(self.temporal[valor][2])
                    varGlobal.mensaje(msg)
                    self.finish()

            elif self.temporal[valor][0] == "adr":
                if os.path.isfile(self.temporal[valor][2]):
                    self.finish()
                    if self.temporal[valor][3] == False:
                        varGlobal.ejecutar(None, "open",
                                           self.temporal[valor][2], None, None,
                                           10)
                    else:
                        varGlobal.ejecutar(None, "runas",
                                           self.temporal[valor][2], None, None,
                                           10)
                else:
                    msg = \
               _("""La ruta al acceso directo no se encontró.

{}

Ejecute el lanzador de aplicaciones en modo grafico para editar la acción.""").format(self.temporal[valor][2])
                    varGlobal.mensaje(msg)
                    self.finish()

            elif self.temporal[valor][0] == "sap":
                self.finish()
                if self.temporal[valor][3] == False:
                    varGlobal.ejecutar(
                        None, "open", "explorer.exe",
                        "shell:appsfolder\{}".format(self.temporal[valor][2]),
                        None, 10)
                else:
                    varGlobal.ejecutar(
                        None, "runas", "explorer.exe",
                        "shell:appsfolder\{}".format(self.temporal[valor][2]),
                        None, 10)
Пример #15
0
    def script_activarMenu(self, gesture):
        # Prevents the helper was launched when the keyboard is locked by the InputLock addon
        if inputCore.manager._captureFunc and not inputCore.manager._captureFunc(
                gesture):
            return

        if varGlobal.IS_WinON == True:
            msg = \
         _("""Ya hay una instancia de zUtilidades abierta.

No es posible tener dos instancias a la vez.""")
            varGlobal.mensaje(msg)
            return

        self.leerCategoriaDAT()
        if len(self.categorias) == 0:
            varGlobal.mensaje(_("No hay categorías"))
            return

        varGlobal.IS_WinON = True
        if self.lanzador == "zl":
            catTotalTemporal = self.catTotalzl
        elif self.lanzador == "zn":
            catTotalTemporal = self.catTotalzn
        if catTotalTemporal == len(self.categorias):
            pass
        else:
            if self.lanzador == "zl":
                self.catIndexzl = 0
                self.itemIndexzl = -1
            elif self.lanzador == "zn":
                self.catIndexzn = 0
                self.itemIndexzn = -1
            if len(self.categorias) == 0:
                varGlobal.mensaje(_("No hay categorías"))
                varGlobal.IS_WinON = False
                return

        if self.toggling:
            self.script_exit(gesture)
            self.finish()
            return
        for k in ("upArrow", "downArrow", "leftArrow", "rightArrow", "enter",
                  "shift+enter", "control+enter", "numpadEnter",
                  "shift+numpadEnter", "control+numpadEnter", "escape",
                  "backspace", "F1", "F12", "numpad2", "numpad4", "numpad5",
                  "numpad6", "numpad8", "numpadPlus", "numpadMinus",
                  "numpadDelete"):
            try:
                script = KeyboardInputGesture.fromName(k).script
            except KeyError:
                script = None
            if script and self != script.__self__:
                try:
                    script.__self__.removeGestureBinding("kb:" + k)
                except KeyError:
                    pass
                else:
                    self.oldGestureBindings["kb:" + k] = script

        if self.lanzador == "zl":
            self.bindGestures(self.__zlmenuGestures)
        elif self.lanzador == "zn":
            self.bindGestures(self.__znmenuGestures)

        for c in ascii_uppercase:
            self.bindGesture("kb:" + c, "skipToCategory")

        if self.lanzador == "zn":
            self.bindGesture("kb:F1", "viewNote")
            self.bindGesture("kb:F2", "copyPP")
            self.bindGesture("kb:F3", "pastePP")

        self.toggling = True
        varGlobal.mensaje(_("Menú activado"))

        if self.lanzador == "zl":
            firstTimeTemporal = self.firstTimezl
        if self.lanzador == "zn":
            firstTimeTemporal = self.firstTimezn
        if firstTimeTemporal:
            self.script_speechHelp(None)
            if self.lanzador == "zl":
                self.firstTimezl = False
            elif self.lanzador == "zn":
                self.firstTimezn = False
            self.leerArchivosDAT(0)
            varGlobal.mensaje(self.categorias[0])
            if self.lanzador == "zl":
                self.catTotalzl = len(self.categorias)
            elif self.lanzador == "zn":
                self.catTotalzn = len(self.categorias)
        else:
            if self.lanzador == "zl":
                try:
                    varGlobal.mensaje(self.categorias[self.catIndexzl])
                except:
                    varGlobal.mensaje(self.categorias[0])
            elif self.lanzador == "zn":
                try:
                    varGlobal.mensaje(self.categorias[self.catIndexzn])
                except:
                    varGlobal.mensaje(self.categorias[0])
Пример #16
0
    def selectNewNote(self, event):
        if self.doblePulsacion == False:
            if varGlobal.IS_WinON == False:
                # Inicio código obtenido de Buscador de definiciones de la RAE (DLEChecker) de Antonio Cascales
                obj = api.getFocusObject()
                selectedText = ""
                if hasattr(obj.treeInterceptor,
                           'TextInfo') and not obj.treeInterceptor.passThrough:
                    try:
                        info = obj.treeInterceptor.makeTextInfo(
                            textInfos.POSITION_SELECTION)
                    except (RuntimeError, NotImplementedError):
                        info = None

                    if not info or info.isCollapsed:
                        varGlobal.mensaje(
                            _("Seleccione un texto para poder agregar a una nota rápida"
                              ))
                        return
                    else:
                        selectedText = info.text
                else:
                    try:
                        selectedText = obj.selection.text
                    except (RuntimeError, NotImplementedError):
                        varGlobal.mensaje(
                            _("Seleccione un texto para poder agregar a una nota rápida"
                              ))
                        return
                    if obj.selection.text == "":
                        varGlobal.mensaje(
                            _("Seleccione un texto para poder agregar a una nota rápida"
                              ))
                        return
                # Fin código obtenido de Buscador de definiciones de la RAE (DLEChecker) de Antonio Cascales
                if varGlobal.urlCaptura:
                    url = self.getURL()
                    selectedText = "\n\n".join([selectedText, url
                                                ]) if url else selectedText
                self.lanzador = "zn"
                indiceNotes = varGlobal.dbDatos(
                    os.path.join(zn.ajustes.dbDir,
                                 "index.dat")).CargaDatosIndex()
                self.NewCategorias = varGlobal.AnalizaDatos(
                    indiceNotes).GetCategoria()
                self.newArchivoCategorias = varGlobal.AnalizaDatos(
                    indiceNotes).GetArchivosCat()
                if len(self.NewCategorias) == 0:
                    msg = \
               _("""No hay categorías para añadir una nota rápida.

Agregue una categoría antes para poder copiar un texto a una nota rápida.""")
                    varGlobal.mensaje(msg)
                    return

                self.windowsApp = AñadirNotaCopia(gui.mainFrame,
                                                  self.NewCategorias,
                                                  self.newArchivoCategorias,
                                                  selectedText, 0)
                gui.mainFrame.prePopup()
                self.windowsApp.Show()
            else:
                msg = \
            _("""Ya hay una instancia de zUtilidades abierta.

No es posible tener dos instancias a la vez.""")
                varGlobal.mensaje(msg)
        else:
            pass