Skip to content

Commit b44e528

Browse files
committed
Add cut action
#47
1 parent d955e99 commit b44e528

File tree

2 files changed

+26
-0
lines changed

2 files changed

+26
-0
lines changed

queries/__init__.py

+3
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,7 @@
1717
from PythonVoiceCodingPlugin.queries.select_back import SelectBack
1818
from PythonVoiceCodingPlugin.queries.remember_here import RememberHere
1919
from PythonVoiceCodingPlugin.queries.copy_alternative import CopyAlternative
20+
from PythonVoiceCodingPlugin.queries.cut_alternative import CutAlternative
2021

2122

2223

@@ -36,6 +37,7 @@ def get_query(query_description):
3637
"argument": SelectArgument,
3738
"alternative": SelectAlternative,
3839
"copy_alternative": CopyAlternative,
40+
"cut_alternative": CutAlternative,
3941
"big_roi": SelectBigRoi,
4042
"paste_back": PasteBack,
4143

@@ -82,6 +84,7 @@ def get_secondary_query(query_description):
8284
"color":0,
8385
},
8486
"copy":dict(command="copy_alternative",format=1,color=0),
87+
"cut":dict(command="cut_alternative",format=1,color=0),
8588
}
8689
return h[query_description["operation"]]
8790

queries/cut_alternative.py

+23
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,23 @@
1+
from PythonVoiceCodingPlugin.library import make_flat
2+
from PythonVoiceCodingPlugin.queries.abstract import InsertionQuery, no_build_attempt
3+
from PythonVoiceCodingPlugin.queries.strategies import decode_item_selection,result_alternatives_sequence
4+
5+
6+
@no_build_attempt
7+
class CutAlternative(InsertionQuery):
8+
def handle_multiple(self,view_information,query_description,extra = {}):
9+
return self.handle_single(view_information,query_description,extra)
10+
11+
def handle_single(self,view_information,query_description,extra = {}):
12+
state = extra["state"]
13+
if state["mode"] != "single":
14+
return
15+
candidates = result_alternatives_sequence(state,text=True,location = True) # get only the text
16+
result = decode_item_selection(candidates,query_description,"individual","color",decrement=False)
17+
if result:
18+
location,text = result[0]
19+
self._register_for_external(clipboard = text)
20+
return [(location,"")]
21+
return None,None
22+
23+

0 commit comments

Comments
 (0)