def _bring_add(self, launch_type, key): # Add current program or highlighted text to bring me if launch_type == "program": path = utilities.get_active_window_path() if not path: # dragonfly.get_engine().speak("program not detected") printer.out("Program path for bring me not found ") elif launch_type == 'file': files = utilities.get_selected_files(folders=False) path = files[0] if files else None # or allow adding multiple files elif launch_type == 'folder': files = utilities.get_selected_files(folders=True) path = files[ 0] if files else None # or allow adding multiple folders else: Key("a-d/5").execute() fail, path = context.read_selected_without_altering_clipboard() if fail == 2: # FIXME: A better solution would be to specify a number of retries and the time interval. time.sleep(0.1) _, path = context.read_selected_without_altering_clipboard() if not path: printer.out("Selection for bring me not found ") Key("escape").execute() if not path: # logger.warn('Cannot add %s as %s to bringme: cannot get path', launch, key) return config_copy = self._config.get_copy() config_copy[launch_type][str(key)] = path self._refresh(config_copy)
def _execute(self, data=None): executable = utilities.get_active_window_path().split("\\")[-1] is_executable = executable in self.executables if (is_executable and not self.negate) or (self.negate and not is_executable): self.action.execute()