Button and image scanning (#705)
* Update TextSourceElement.equals check to match TextSourceRange.equals * Force full query to be visible when scanning buttons or images with more text * Update style of query parser
This commit is contained in:
parent
bdcdf9b1f5
commit
1184320e3e
@ -20,6 +20,7 @@
|
||||
* FrameOffsetForwarder
|
||||
* PopupProxy
|
||||
* TextScanner
|
||||
* TextSourceElement
|
||||
* api
|
||||
* docSentenceExtract
|
||||
*/
|
||||
@ -423,27 +424,29 @@ class Frontend {
|
||||
const sentenceExtent = this._options.anki.sentenceExt;
|
||||
const layoutAwareScan = this._options.scanning.layoutAwareScan;
|
||||
const sentence = docSentenceExtract(textSource, sentenceExtent, layoutAwareScan);
|
||||
this._showPopupContent(
|
||||
textSource,
|
||||
optionsContext,
|
||||
{
|
||||
focus,
|
||||
history: false,
|
||||
params: {
|
||||
type,
|
||||
query: textSource.text(),
|
||||
wildcards: 'off'
|
||||
},
|
||||
state: {
|
||||
focusEntry: 0,
|
||||
sentence,
|
||||
url
|
||||
},
|
||||
content: {
|
||||
definitions
|
||||
}
|
||||
const query = textSource.text();
|
||||
const details = {
|
||||
focus,
|
||||
history: false,
|
||||
params: {
|
||||
type,
|
||||
query,
|
||||
wildcards: 'off'
|
||||
},
|
||||
state: {
|
||||
focusEntry: 0,
|
||||
sentence,
|
||||
url
|
||||
},
|
||||
content: {
|
||||
definitions
|
||||
}
|
||||
);
|
||||
};
|
||||
if (textSource instanceof TextSourceElement && textSource.fullContent !== query) {
|
||||
details.params.full = textSource.fullContent;
|
||||
details.params['full-visible'] = 'true';
|
||||
}
|
||||
this._showPopupContent(textSource, optionsContext, details);
|
||||
}
|
||||
|
||||
_showPopupContent(textSource, optionsContext, details=null) {
|
||||
|
@ -32,6 +32,14 @@ class TextSourceRange {
|
||||
this.imposterSourceElement = imposterSourceElement;
|
||||
}
|
||||
|
||||
get startOffset() {
|
||||
return this.range.startOffset;
|
||||
}
|
||||
|
||||
get endOffset() {
|
||||
return this.range.endOffset;
|
||||
}
|
||||
|
||||
clone() {
|
||||
return new TextSourceRange(this.range.cloneRange(), this.content, this.imposterContainer, this.imposterSourceElement);
|
||||
}
|
||||
@ -230,8 +238,7 @@ class TextSourceElement {
|
||||
other instanceof TextSourceElement &&
|
||||
this._element === other.element &&
|
||||
this._fullContent === other.fullContent &&
|
||||
this._startOffset === other.startOffset &&
|
||||
this._endOffset === other.endOffset
|
||||
this._startOffset === other.startOffset
|
||||
);
|
||||
}
|
||||
|
||||
|
@ -217,6 +217,12 @@ h2 {
|
||||
display: none;
|
||||
}
|
||||
|
||||
:root[data-yomichan-page=float] #query-parser-container {
|
||||
padding-left: 0.72em;
|
||||
padding-right: 0.72em;
|
||||
border-bottom: 0.07142857142857142em solid var(--light-border-color); /* 14px => 1px */
|
||||
}
|
||||
|
||||
|
||||
/*
|
||||
* Entries
|
||||
|
Loading…
Reference in New Issue
Block a user