Changeset 19809
- Timestamp:
- 09/24/08 17:12:55 (5 years ago)
- Files:
-
- 1 modified
Legend:
- Unmodified
- Added
- Removed
-
lang/javascript/vimperator-plugins/trunk/moreqmarks.js
r19807 r19809 5 5 * @description-ja QuickMarksに機能追加(位置の記憶、qmarksとは別のスタックとキュー追加) 6 6 * @author hogelog 7 * @version 0.0 47 * @version 0.05 8 8 * ==/VimperatorPlugin== 9 9 * … … 34 34 35 35 // TODO: move to a storage module 36 var defaultMarks = liberator.options.getPref("extensions.vimperator.quickmarks", "").split("\n");37 36 var savedMarks = liberator.options.getPref("extensions.vimperator.moreqmarks", "").split("\n"); 38 37 var savedMarkStack = liberator.options.getPref("extensions.vimperator.moreqmarkstack", "").split("\n"); … … 41 40 // load the saved quickmarks -- TODO: change to sqlite 42 41 if(use_default_data) { 42 var defaultMarks = liberator.options.getPref("extensions.vimperator.quickmarks", "").split("\n"); 43 43 for (var i = 0; i < defaultMarks.length - 1; i += 2) { 44 44 var url = defaultMarks[i+1]; … … 76 76 qmark_queue.unshift(item); 77 77 break; 78 case "mark": 78 79 default: 79 80 qmarks[qmark] = item; … … 84 85 switch(target) { 85 86 case "stack": 86 return qmark_stack .pop();87 return qmark_stack[qmark_stack.length-1]; 87 88 case "queue": 88 return qmark_queue.pop(); 89 return item = qmark_queue[qmark_queue.length-1]; 90 case "mark": 89 91 default: 90 92 return qmarks[qmark]; … … 103 105 list = qmark_queue; 104 106 break; 107 case "mark": 105 108 default: 106 109 list = qmarks; … … 208 211 liberator.options.setPref("extensions.vimperator.moreqmarkqueue", savedQuickMarkQueue); 209 212 break; 213 case "mark": 210 214 default: 211 215 var savedQuickMarks = ""; … … 217 221 } 218 222 liberator.options.setPref("extensions.vimperator.moreqmarks", savedQuickMarks); 223 if(use_default_data) { 224 var savedQuickMarks = ""; 225 for (var mark in qmarks) { 226 savedQuickMarks += mark + "\n"; 227 savedQuickMarks += qmarks[mark].url + "\n"; 228 } 229 liberator.options.setPref("extensions.vimperator.quickmarks", savedQuickMarks); 230 } 219 231 break; 220 232 } … … 249 261 return witchWindow.getBrowser().selectedTab; 250 262 263 case "mark": 251 264 default: 252 265 liberator.echoerr("Exxx: Invalid 'where' directive in liberator.plugins.moreqmarks openurls(...)"); … … 285 298 { 286 299 var where = /\bquickmark\b/.test(liberator.options["activate"]) ? liberator.NEW_TAB : liberator.NEW_BACKGROUND_TAB; 287 liberator.quickmarks.jumpTo("", where, true, "stack"); 300 if(liberator.quickmarks.jumpTo("", where, true, "stack")) { 301 liberator.quickmarks.remove("", "", "stack"); 302 } 288 303 }); 289 304 … … 299 314 { 300 315 var where = /\bquickmark\b/.test(liberator.options["activate"]) ? liberator.NEW_TAB : liberator.NEW_BACKGROUND_TAB; 301 liberator.quickmarks.jumpTo("", where, true, "queue"); 316 if(liberator.quickmarks.jumpTo("", where, true, "queue")) { 317 liberator.quickmarks.remove("", "", "queue"); 318 } 302 319 }); 303 320 … … 364 381 }, 365 382 366 remove: function (filter, url) 367 { 368 if(url) { 369 for(var mark in qmarks) { 370 if(url == qmarks[mark].url) { 371 delete qmarks[mark]; 372 liberator.commandline.echo("delete qmark "+mark, liberator.commandline.HL_INFOMSG); 373 return; 383 remove: function (filter, url, target) 384 { 385 var item; 386 switch(target) { 387 case "stack": 388 if(item = qmark_stack.pop()) { 389 liberator.commandline.echo("pop "+item.url, liberator.commandline.HL_INFOMSG); 390 save_qmarks("stack"); 391 } else { 392 liberator.echoerr('No QuickStack set'); 374 393 } 375 } 376 liberator.echoerr('No QuickMark set to '+url); 377 } else { 378 var pattern = new RegExp("[" + filter.replace(/\s+/g, "") + "]"); 379 380 for (var qmark in qmarks) { 381 if (pattern.test(qmark)) { 382 delete qmarks[qmark]; 383 liberator.commandline.echo("delete qmark "+qmark, liberator.commandline.HL_INFOMSG); 384 return; 394 break; 395 case "queue": 396 var item; 397 if(item = qmark_queue.pop()) { 398 liberator.commandline.echo("dequeue "+item.url, liberator.commandline.HL_INFOMSG); 399 save_qmarks("queue"); 400 } else { 401 liberator.echoerr('No QuickQueue set'); 385 402 } 386 } 387 liberator.echoerr('No QuickMark match '+filter); 403 break; 404 case "mark": 405 default: 406 if(url) { 407 for(var mark in qmarks) { 408 if(url == qmarks[mark].url) { 409 delete qmarks[mark]; 410 liberator.commandline.echo("delete qmark "+mark, liberator.commandline.HL_INFOMSG); 411 save_qmarks("mark"); 412 return; 413 } 414 } 415 liberator.echoerr('No QuickMark set to '+url); 416 } else { 417 var pattern = new RegExp("[" + filter.replace(/\s+/g, "") + "]"); 418 419 for (var qmark in qmarks) { 420 if (pattern.test(qmark)) { 421 delete qmarks[qmark]; 422 liberator.commandline.echo("delete qmark "+qmark, liberator.commandline.HL_INFOMSG); 423 save_qmarks("mark"); 424 return; 425 } 426 } 427 liberator.echoerr('No QuickMark match '+filter); 428 } 388 429 } 389 430 }, … … 405 446 liberator.echoerr("E20: QuickMarkQueue is empty"); 406 447 break; 448 case "mark": 407 449 default: 408 450 liberator.echoerr("E20: QuickMark not set"); 409 451 break; 410 452 } 411 } 453 return false; 454 } 455 return true; 412 456 }, 413 457 … … 424 468 liberator.echoerr("No QuickMarkQueue set"); 425 469 break; 470 case "mark": 426 471 default: 427 472 liberator.echoerr("No QuickMarks set"); … … 451 496 // save_qmarks("stack"); 452 497 // save_qmarks("queue"); 453 // save_qmarks(" list");498 // save_qmarks("mark"); 454 499 } 455 500 };
![(please configure the [header_logo] section in trac.ini)](/share/chrome/site/your_project_logo.png)