90
90
</template >
91
91
</q-select >
92
92
</div >
93
+ <div class =" col q-pa-sm q-gutter-sm" >
94
+ <q-toggle
95
+ v-model =" privateMode"
96
+ :label =" getLocale('PrivateMode')"
97
+ >
98
+ <q-tooltip class =" bg-accent" >{{ getLocale('PrivateModeTooltip') }}</q-tooltip >
99
+ </q-toggle >
100
+ </div >
93
101
<div class =" col q-pa-sm q-gutter-sm text-right" >
94
102
<q-btn size =" sm" round color =" secondary" icon =" open_in_new" @click =" openFilteredBookmarks" accesskey =" o" >
95
103
<q-tooltip class =" bg-accent" >{{ getLocale('OpenAllBookmarks') }}</q-tooltip >
119
127
<template v-if =" props .row .name " >
120
128
<q-td key =" name" :props =" props" @click =" openUrl(props.row.url)" class =" click" >
121
129
<div >
122
- <div class =" column-name" tabindex =" 2" :accesskey =" props.rowIndex + 1" @keyup.enter =" openUrl(props.row.url)" >{{ truncateText( props.row.name, 40 ) }}</div >
130
+ <a class =" column-name" :href = " props.row.url " @click = " openUrl(props.row.url, $event) " tabindex =" 2" :accesskey =" props.rowIndex + 1" @keyup.enter =" openUrl(props.row.url)" >{{ truncateText( props.row.name, 40 ) }}</a >
123
131
<q-tooltip >
124
132
<div class =" column-name" v-if =" props.row.name" >{{ props.row.name }}</div >
125
133
<div >{{ props.row.url }}</div >
137
145
<template v-else >
138
146
<q-td colspan =" 2" key =" url" :props =" props" @click =" openUrl(props.row.url)" class =" click" >
139
147
<div >
140
- <a class =" column-name" tabindex =" 2" :href =" props.row.url" @click =" $event.stopPropagation(); openUrl(props.row.url)" :accesskey =" props.rowIndex + 1" :title =" props.row.url" >{{ truncateText( props.row.url, 80 ) }}</a >
148
+ <a class =" column-name" tabindex =" 2" :href =" props.row.url" @click =" openUrl(props.row.url, $event )" :accesskey =" props.rowIndex + 1" :title =" props.row.url" >{{ truncateText( props.row.url, 80 ) }}</a >
141
149
</div >
142
150
</q-td >
143
151
</template >
166
174
167
175
<script >
168
176
import {computed , defineComponent , nextTick , onMounted , reactive , ref , watch } from ' vue'
169
- import { getLocale , openUrl , truncateText } from ' ../helpers/utils'
177
+ import { getLocale , openPrivateUrl , truncateText } from ' ../helpers/utils'
170
178
import { QWebSocket } from ' ../services/qwebsocket'
171
179
import InputTokenDialog from ' ../components/InputTokenDialog.vue'
172
180
import AddBookmarkDialog from " components/AddBookmarkDialog.vue" ;
@@ -186,6 +194,7 @@ export default defineComponent({
186
194
setup () {
187
195
const $q = useQuasar ();
188
196
const leftDrawerOpen = ref (false )
197
+ const privateMode = ref (false )
189
198
let bookmarks = ref ([]);
190
199
let loadingBookmarks = ref (false );
191
200
let search = ref (' ' );
@@ -338,11 +347,25 @@ export default defineComponent({
338
347
});
339
348
}
340
349
350
+ const openUrl = (url , event ) => {
351
+ if (event ) {
352
+ event .stopPropagation ();
353
+ event .preventDefault ();
354
+ }
355
+
356
+ if (privateMode .value ) {
357
+ openPrivateUrl (url);
358
+ } else {
359
+ chrome .tabs .create ({url});
360
+ }
361
+ }
362
+
341
363
const searchInput = ref (null );
342
364
343
365
onMounted (() => {
344
366
chrome .storage .sync .get ((data ) => {
345
- search .value = data .search ;
367
+ search .value = data .search || ' ' ;
368
+ privateMode .value = data .privateMode || false ;
346
369
347
370
// Select the text in the search input field after it was updated by the data from the storage
348
371
nextTick (() => searchInput .value .select ());
@@ -449,6 +472,10 @@ export default defineComponent({
449
472
console .log (" selectedTags stored" , newSelectedTags);
450
473
});
451
474
475
+ watch (privateMode, (newPrivateMode , oldPrivateMode ) => {
476
+ chrome .storage .sync .set ({ privateMode: newPrivateMode });
477
+ });
478
+
452
479
const loadBookmarks = () => {
453
480
loadingBookmarks .value = true ;
454
481
@@ -469,6 +496,7 @@ export default defineComponent({
469
496
// Return the variables that you want to use in the template
470
497
return {
471
498
leftDrawerOpen,
499
+ privateMode,
472
500
toggleLeftDrawer,
473
501
columns,
474
502
bookmarks,
@@ -555,6 +583,7 @@ export default defineComponent({
555
583
556
584
.column-name {
557
585
font-weight : bold ;
586
+ text-decoration : none ;
558
587
}
559
588
560
589
.column-description {
0 commit comments