@@ -41,13 +41,16 @@ function onError(error) {
4141}
4242
4343class Custom_option {
44- constructor ( url , background , color , shadowActivated , shadowColor , shadowBlur ) {
44+ constructor ( url , background , color , shadowActivated , shadowColor , shadowBlur , decorationActivated , decorationType , decorationColor ) {
4545 this . url = url ;
4646 this . color = color ;
4747 this . background = background ;
4848 this . shadowActivated = shadowActivated ;
4949 this . shadowColor = shadowColor ;
5050 this . shadowBlur = shadowBlur ;
51+ this . decorationActivated = decorationActivated ;
52+ this . decorationType = decorationType ;
53+ this . decorationColor = decorationColor ;
5154 }
5255} ;
5356
@@ -56,7 +59,7 @@ function addCustom() {
5659 getting . then ( result => {
5760 var custom_url = document . querySelector ( "#add_url" ) . value ; // Get new custom url
5861 document . querySelector ( "#add_url" ) . value = "" ;
59- var customSettings = new Custom_option ( custom_url , document . querySelector ( "#background_color" ) . value || "#007EF3" , document . querySelector ( "#color" ) . value || "white" , document . querySelector ( "input#activate_textShadow" ) . checked || false , document . querySelector ( "#shadow-color" ) . value || "none" , document . querySelector ( "#shadow-blur" ) . value || "0" ) ; // Create new element with currently displayed settings
62+ var customSettings = new Custom_option ( custom_url , document . querySelector ( "#background_color" ) . value || "#007EF3" , document . querySelector ( "#color" ) . value || "white" , document . querySelector ( "input#activate_textShadow" ) . checked || false , document . querySelector ( "#shadow-color" ) . value || "none" , document . querySelector ( "#shadow-blur" ) . value || "0" , document . querySelector ( "input#activate_textDecoration" ) . checked || false , document . querySelector ( "#decoration_select" ) . value || "none" , document . querySelector ( "#decoration-color" ) . value || "#007EF3FF" ) ; // Create new element with currently displayed settings
6063 var customs = result . customOptions || [ ] ; // Get current saved settings; if there are none, initialize an empty list
6164 customs . push ( customSettings ) ; // Add new custom settings to the list
6265 browser . storage . local . set ( { // Store the new list in the storage
@@ -95,18 +98,30 @@ function removeCustom() {
9598 document . querySelector ( "#shadow-color" ) . jscolor . fromString ( result . shadowColor || "#ffffff" ) ;
9699 document . querySelector ( "#shadow-blur" ) . value = result . shadowBlur || "0px" ;
97100 document . querySelector ( "input#activate_textShadow" ) . checked = result . shadowActivated ;
101+ document . querySelector ( "input#activate_textDecoration" ) . checked = result . decorationActivated ;
102+ document . querySelector ( "#decoration_select" ) . value = result . decorationType ;
103+ document . querySelector ( "#decoration-color" ) . jscolor . fromString ( result . decorationColor || "#007EF3FF" ) ;
98104 if ( result . shadowActivated ) {
99105 document . querySelector ( 'div#textShadowOptions' ) . style . display = "flex" ;
100106 } else {
101107 document . querySelector ( 'div#textShadowOptions' ) . style . display = "none" ;
102108 }
109+
110+ if ( result . decorationActivated ) {
111+ document . querySelector ( 'div#textDecorationOptions' ) . style . display = "flex" ;
112+ } else {
113+ document . querySelector ( 'div#textDecorationOptions' ) . style . display = "none" ;
114+ } ;
103115 chrome . tabs . query ( { active : true , currentWindow : true } , async tabs => {
104116 var activeTab = tabs [ 0 ] ;
105117 var activeTabURL = new URL ( activeTab . url ) ;
106118 let urlField = document . querySelector ( "#add_url" ) ;
107119 urlField . value = activeTabURL . host ;
108120 } ) ;
109121 updatePreview ( ) ; // Update preview
122+ browser . runtime . sendMessage ( { // Send message to background script asking to update the action icon
123+ request : "inject-css-all"
124+ } ) ;
110125 browser . runtime . sendMessage ( { // Send message to background script asking to update the action icon
111126 request : "update-action-icon"
112127 } ) ;
@@ -123,6 +138,9 @@ function saveOptions(e) { // Function called when user clicks on "Save" button
123138 shadowActivated : document . querySelector ( "input#activate_textShadow" ) . checked || false ,
124139 shadowColor : document . querySelector ( "#shadow-color" ) . value || "none" ,
125140 shadowBlur : document . querySelector ( "#shadow-blur" ) . value || "0" ,
141+ decorationActivated : document . querySelector ( "input#activate_textDecoration" ) . checked || false ,
142+ decorationType : document . querySelector ( "#decoration_select" ) . value || "none" ,
143+ decorationColor : document . querySelector ( "#decoration-color" ) . value || "none" ,
126144 witness : true
127145 } ) ;
128146 preferencesSave . then ( saveSuccess , saveError ) ; // Display notifications
@@ -137,6 +155,9 @@ function saveOptions(e) { // Function called when user clicks on "Save" button
137155 shadowActivated : document . querySelector ( "input#activate_textShadow" ) . checked || false ,
138156 shadowColor : document . querySelector ( "#shadow-color" ) . value || "none" ,
139157 shadowBlur : document . querySelector ( "#shadow-blur" ) . value || "0" ,
158+ decorationActivated : document . querySelector ( "input#activate_textDecoration" ) . checked || false ,
159+ decorationType : document . querySelector ( "#decoration_select" ) . value || "none" ,
160+ decorationColor : document . querySelector ( "#decoration-color" ) . value || "none" ,
140161 url : document . querySelector ( "#change_url" ) . value
141162 } ;
142163 var preferencesSave = browser . storage . local . set ( { // Update custom settings
@@ -161,6 +182,11 @@ function updatePreview() { // Function called when input values are changed
161182 } else {
162183 document . querySelector ( "#preview" ) . style . textShadow = "" ;
163184 }
185+ if ( document . querySelector ( "input#activate_textDecoration" ) . checked ) {
186+ document . querySelector ( "#preview" ) . style . textDecoration = document . querySelector ( "#decoration_select" ) . value + " " + document . querySelector ( "#decoration-color" ) . value ;
187+ } else {
188+ document . querySelector ( "#preview" ) . style . textDecoration = "" ;
189+ }
164190} ;
165191
166192function restoreOptions ( ) {
@@ -210,6 +236,14 @@ function updateShadowColorDisplay() {
210236 }
211237} ;
212238
239+ function updateDecorationDisplay ( ) {
240+ if ( document . querySelector ( "input#activate_textDecoration" ) . checked ) {
241+ document . querySelector ( 'div#textDecorationOptions' ) . style . display = "flex"
242+ } else {
243+ document . querySelector ( 'div#textDecorationOptions' ) . style . display = "none"
244+ }
245+ } ;
246+
213247function changeCustomDisplay ( event ) { // Function called when select changes
214248 var selectIndex = document . querySelector ( "#custom_select" ) . selectedIndex ;
215249 if ( selectIndex != 0 ) { // If selected option is not default settings
@@ -226,11 +260,19 @@ function changeCustomDisplay(event) { // Function called when select changes
226260 document . querySelector ( "#shadow-color" ) . jscolor . fromString ( customs [ selectIndex - 1 ] . shadowColor || "#ffffff" ) ;
227261 document . querySelector ( "#shadow-blur" ) . value = customs [ selectIndex - 1 ] . shadowBlur || "0px" ;
228262 document . querySelector ( "input#activate_textShadow" ) . checked = customs [ selectIndex - 1 ] . shadowActivated ;
263+ document . querySelector ( "input#activate_textDecoration" ) . checked = customs [ selectIndex - 1 ] . decorationActivated ;
264+ document . querySelector ( "#decoration_select" ) . value = customs [ selectIndex - 1 ] . decorationType ;
265+ document . querySelector ( "#decoration-color" ) . jscolor . fromString ( customs [ selectIndex - 1 ] . decorationColor || "#007EF3FF" ) ;
229266 if ( customs [ selectIndex - 1 ] . shadowActivated ) {
230267 document . querySelector ( 'div#textShadowOptions' ) . style . display = "flex" ;
231268 } else {
232269 document . querySelector ( 'div#textShadowOptions' ) . style . display = "none" ;
233270 } ;
271+ if ( customs [ selectIndex - 1 ] . decorationActivated ) {
272+ document . querySelector ( 'div#textDecorationOptions' ) . style . display = "flex" ;
273+ } else {
274+ document . querySelector ( 'div#textDecorationOptions' ) . style . display = "none" ;
275+ } ;
234276 updatePreview ( ) ; // Update preview
235277 } , onError ) ;
236278 } else {
@@ -244,11 +286,19 @@ function changeCustomDisplay(event) { // Function called when select changes
244286 document . querySelector ( "#shadow-color" ) . jscolor . fromString ( result . shadowColor || "#ffffff" ) ;
245287 document . querySelector ( "#shadow-blur" ) . value = result . shadowBlur || "0px" ;
246288 document . querySelector ( "input#activate_textShadow" ) . checked = result . shadowActivated ;
289+ document . querySelector ( "input#activate_textDecoration" ) . checked = result . decorationActivated ;
290+ document . querySelector ( "#decoration_select" ) . value = result . decorationType ;
291+ document . querySelector ( "#decoration-color" ) . jscolor . fromString ( result . decorationColor || "#007EF3FF" ) ;
247292 if ( result . shadowActivated ) {
248293 document . querySelector ( 'div#textShadowOptions' ) . style . display = "flex" ;
249294 } else {
250295 document . querySelector ( 'div#textShadowOptions' ) . style . display = "none" ;
251296 }
297+ if ( result . decorationActivated ) {
298+ document . querySelector ( 'div#textDecorationOptions' ) . style . display = "flex" ;
299+ } else {
300+ document . querySelector ( 'div#textDecorationOptions' ) . style . display = "none" ;
301+ } ;
252302 updatePreview ( ) ; // Update preview
253303 } , onError ) ;
254304 } ;
@@ -301,3 +351,4 @@ document.querySelector("#remove_custom").addEventListener("click", removeCustom)
301351document . querySelector ( "input#activate_textShadow" ) . addEventListener ( "change" , updatePreview ) ;
302352document . querySelector ( "select#custom_select" ) . addEventListener ( "change" , changeCustomDisplay ) ;
303353document . querySelector ( "input#activate_textShadow" ) . addEventListener ( "change" , updateShadowColorDisplay ) ;
354+ document . querySelector ( "input#activate_textDecoration" ) . addEventListener ( "change" , updateDecorationDisplay ) ;
0 commit comments