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:
toasted-nutbread 2020-08-02 18:59:35 -04:00 committed by GitHub
parent bdcdf9b1f5
commit 1184320e3e
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
3 changed files with 38 additions and 22 deletions

View File

@ -20,6 +20,7 @@
* FrameOffsetForwarder * FrameOffsetForwarder
* PopupProxy * PopupProxy
* TextScanner * TextScanner
* TextSourceElement
* api * api
* docSentenceExtract * docSentenceExtract
*/ */
@ -423,27 +424,29 @@ class Frontend {
const sentenceExtent = this._options.anki.sentenceExt; const sentenceExtent = this._options.anki.sentenceExt;
const layoutAwareScan = this._options.scanning.layoutAwareScan; const layoutAwareScan = this._options.scanning.layoutAwareScan;
const sentence = docSentenceExtract(textSource, sentenceExtent, layoutAwareScan); const sentence = docSentenceExtract(textSource, sentenceExtent, layoutAwareScan);
this._showPopupContent( const query = textSource.text();
textSource, const details = {
optionsContext, focus,
{ history: false,
focus, params: {
history: false, type,
params: { query,
type, wildcards: 'off'
query: textSource.text(), },
wildcards: 'off' state: {
}, focusEntry: 0,
state: { sentence,
focusEntry: 0, url
sentence, },
url content: {
}, definitions
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) { _showPopupContent(textSource, optionsContext, details=null) {

View File

@ -32,6 +32,14 @@ class TextSourceRange {
this.imposterSourceElement = imposterSourceElement; this.imposterSourceElement = imposterSourceElement;
} }
get startOffset() {
return this.range.startOffset;
}
get endOffset() {
return this.range.endOffset;
}
clone() { clone() {
return new TextSourceRange(this.range.cloneRange(), this.content, this.imposterContainer, this.imposterSourceElement); return new TextSourceRange(this.range.cloneRange(), this.content, this.imposterContainer, this.imposterSourceElement);
} }
@ -230,8 +238,7 @@ class TextSourceElement {
other instanceof TextSourceElement && other instanceof TextSourceElement &&
this._element === other.element && this._element === other.element &&
this._fullContent === other.fullContent && this._fullContent === other.fullContent &&
this._startOffset === other.startOffset && this._startOffset === other.startOffset
this._endOffset === other.endOffset
); );
} }

View File

@ -217,6 +217,12 @@ h2 {
display: none; 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 * Entries