Add default icons for FileAttachment annotations (bug 1230933)
*Please note:* This "borrows" the icons from Thunderbird. According to the PDF specification, see https://web.archive.org/web/20220309040754if_/https://www.adobe.com/content/dam/acom/en/devnet/pdf/pdfs/PDF32000_2008.pdf#G11.2096626, we should be providing default icons for FileAttachment annotations without appearances.
This commit is contained in:
		
							parent
							
								
									4f1b6f345b
								
							
						
					
					
						commit
						aa5b678f94
					
				| @ -4274,10 +4274,15 @@ class FileAttachmentAnnotation extends MarkupAnnotation { | |||||||
|   constructor(params) { |   constructor(params) { | ||||||
|     super(params); |     super(params); | ||||||
| 
 | 
 | ||||||
|     const file = new FileSpec(params.dict.get("FS"), params.xref); |     const { dict, xref } = params; | ||||||
|  |     const file = new FileSpec(dict.get("FS"), xref); | ||||||
| 
 | 
 | ||||||
|     this.data.annotationType = AnnotationType.FILEATTACHMENT; |     this.data.annotationType = AnnotationType.FILEATTACHMENT; | ||||||
|     this.data.file = file.serializable; |     this.data.file = file.serializable; | ||||||
|  | 
 | ||||||
|  |     const name = dict.get("Name"); | ||||||
|  |     this.data.name = | ||||||
|  |       name instanceof Name ? stringToPDFString(name.name) : "PushPin"; | ||||||
|   } |   } | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
|  | |||||||
| @ -2509,7 +2509,20 @@ class FileAttachmentAnnotationElement extends AnnotationElement { | |||||||
|   render() { |   render() { | ||||||
|     this.container.className = "fileAttachmentAnnotation"; |     this.container.className = "fileAttachmentAnnotation"; | ||||||
| 
 | 
 | ||||||
|     const trigger = document.createElement("div"); |     let trigger; | ||||||
|  |     if (this.data.hasAppearance) { | ||||||
|  |       trigger = document.createElement("div"); | ||||||
|  |     } else { | ||||||
|  |       // Unfortunately it seems that it's not clearly specified exactly what
 | ||||||
|  |       // names are actually valid, since Table 184 contains:
 | ||||||
|  |       //   Conforming readers shall provide predefined icon appearances for at
 | ||||||
|  |       //   least the following standard names: GraphPushPin, PaperclipTag.
 | ||||||
|  |       //   Additional names may be supported as well. Default value: PushPin.
 | ||||||
|  |       trigger = document.createElement("img"); | ||||||
|  |       trigger.src = `${this.imageResourcesPath}annotation-${ | ||||||
|  |         /paperclip/i.test(this.data.name) ? "paperclip" : "pushpin" | ||||||
|  |       }.svg`;
 | ||||||
|  |     } | ||||||
|     trigger.className = "popupTriggerArea"; |     trigger.className = "popupTriggerArea"; | ||||||
|     trigger.addEventListener("dblclick", this._download.bind(this)); |     trigger.addEventListener("dblclick", this._download.bind(this)); | ||||||
| 
 | 
 | ||||||
|  | |||||||
							
								
								
									
										1
									
								
								test/pdfs/bug1230933.pdf.link
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										1
									
								
								test/pdfs/bug1230933.pdf.link
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1 @@ | |||||||
|  | https://bugzilla.mozilla.org/attachment.cgi?id=8696459 | ||||||
| @ -6064,6 +6064,14 @@ | |||||||
|        "type": "eq", |        "type": "eq", | ||||||
|        "annotations": true |        "annotations": true | ||||||
|     }, |     }, | ||||||
|  |     {  "id": "bug1230933", | ||||||
|  |        "file": "pdfs/bug1230933.pdf", | ||||||
|  |        "md5": "d8e7dce9ce79aa5a6121b21be8935429", | ||||||
|  |        "link": true, | ||||||
|  |        "rounds": 1, | ||||||
|  |        "type": "eq", | ||||||
|  |        "annotations": true | ||||||
|  |     }, | ||||||
|     {  "id": "issue14117", |     {  "id": "issue14117", | ||||||
|        "file": "pdfs/issue14117.pdf", |        "file": "pdfs/issue14117.pdf", | ||||||
|        "md5": "9b1c33ad2f59f4e723c258e863149abf", |        "md5": "9b1c33ad2f59f4e723c258e863149abf", | ||||||
|  | |||||||
							
								
								
									
										6
									
								
								web/images/annotation-paperclip.svg
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										6
									
								
								web/images/annotation-paperclip.svg
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,6 @@ | |||||||
|  | <!-- This Source Code Form is subject to the terms of the Mozilla Public | ||||||
|  |    - License, v. 2.0. If a copy of the MPL was not distributed with this | ||||||
|  |    - file, You can obtain one at http://mozilla.org/MPL/2.0/. --> | ||||||
|  | <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 16 16" height="40" width="40"> | ||||||
|  |   <path d="M9 3.5a1.5 1.5 0 0 0-3-.001v7.95C6 12.83 7.12 14 8.5 14s2.5-1.17 2.5-2.55V5.5a.5.5 0 0 1 1 0v6.03C11.955 13.427 10.405 15 8.5 15S5.044 13.426 5 11.53V3.5a2.5 2.5 0 0 1 5 0v7.003a1.5 1.5 0 0 1-3-.003v-5a.5.5 0 0 1 1 0v5a.5.5 0 0 0 1 0Z"/> | ||||||
|  | </svg> | ||||||
| After Width: | Height: | Size: 552 B | 
							
								
								
									
										7
									
								
								web/images/annotation-pushpin.svg
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										7
									
								
								web/images/annotation-pushpin.svg
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,7 @@ | |||||||
|  | <!-- This Source Code Form is subject to the terms of the Mozilla Public | ||||||
|  |    - License, v. 2.0. If a copy of the MPL was not distributed with this | ||||||
|  |    - file, You can obtain one at http://mozilla.org/MPL/2.0/. --> | ||||||
|  | <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 16 16" height="40" width="40"> | ||||||
|  |   <path d="M8.156 12.5a.99.99 0 0 0 .707-.294l.523-2.574L10.5 8.499l1.058-1.04 2.65-.601a.996.996 0 0 0 0-1.414l-3.657-3.658a.996.996 0 0 0-1.414 0l-.523 2.576L7.5 5.499 6.442 6.535l-2.65.6a.996.996 0 0 0 0 1.413l3.657 3.658a.999.999 0 0 0 .707.295z"/> | ||||||
|  |   <path d="M9.842.996c-.386 0-.77.146-1.06.44a.5.5 0 0 0-.136.251l-.492 2.43-1.008 1.03-.953.933-2.511.566a.5.5 0 0 0-.243.133 1.505 1.505 0 0 0-.002 2.123l1.477 1.477-2.768 2.767a.5.5 0 0 0 0 .707.5.5 0 0 0 .708 0l2.767-2.767 1.475 1.474a1.494 1.494 0 0 0 2.123-.002.5.5 0 0 0 .135-.254l.492-2.427 1.008-1.024.953-.937 2.511-.57a.5.5 0 0 0 .243-.132c.586-.58.583-1.543.002-2.125l-3.659-3.656A1.501 1.501 0 0 0 9.842.996Zm.05 1.025a.394.394 0 0 1 .305.12l3.658 3.657c.18.18.141.432.002.627l-2.41.545a.5.5 0 0 0-.24.131L10.15 8.142a.5.5 0 0 0-.007.006L9.029 9.283a.5.5 0 0 0-.133.25l-.48 2.36c-.082.053-.165.109-.26.109a.492.492 0 0 1-.353-.149L4.145 8.195c-.18-.18-.141-.432-.002-.627l2.41-.545a.5.5 0 0 0 .238-.13L7.85 5.857a.5.5 0 0 0 .007-.008l1.114-1.138a.5.5 0 0 0 .133-.25l.472-2.323a.619.619 0 0 1 .317-.117Z"/> | ||||||
|  | </svg> | ||||||
| After Width: | Height: | Size: 1.3 KiB | 
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user