Skip to content

Instantly share code, notes, and snippets.

@hyagni
Created February 23, 2011 14:24
Show Gist options
  • Save hyagni/840480 to your computer and use it in GitHub Desktop.
Save hyagni/840480 to your computer and use it in GitHub Desktop.
This patch makes brief gReader-like.
diff -Naur old/content/brief-overlay.xul new/content/brief-overlay.xul
--- old/content/brief-overlay.xul 2010-12-19 04:37:16.000000000 +0900
+++ new/content/brief-overlay.xul 2011-02-23 22:38:31.000000000 +0900
@@ -12,21 +12,21 @@
<key id="Brief_open" key="d" modifiers="accel alt"
oncommand="Brief.open()"/>
- <key id="Brief_selectNextEntry" key="j"
- oncommand="Brief.doCommand('selectNextEntry')"/>
- <key id="Brief_selectPreviousEntry" key="k"
- oncommand="Brief.doCommand('selectPrevEntry')"/>
+ <key id="Brief_scrollDown" key="j"
+ oncommand="Brief.doCommand('scrollDownByLine')"/>
+ <key id="Brief_scrollUp" key="k"
+ oncommand="Brief.doCommand('scrollUpByLine')"/>
<key id="Brief_skipDown" key="u"
oncommand="Brief.doCommand('skipDown')"/>
<key id="Brief_skipUp" key="i"
oncommand="Brief.doCommand('skipUp')"/>
-
+ <key id="Brief_selectNextFeed" key="n"
+ oncommand="Brief.doCommand('selectNextFeed')"/>
+ <key id="Brief_selectPrevFeed" key="p"
+ oncommand="Brief.doCommand('selectPrevFeed')"/>
+
<key id="Brief_toggleSelectedEntryRead" key="m"
oncommand="Brief.doCommand('toggleSelectedEntryRead')"/>
- <key id="Brief_markVisibleEntriesRead" key="n"
- oncommand="Brief.doCommand('markVisibleEntriesRead')"/>
- <key id="Brief_markCurrentViewRead" key="n" modifiers="alt"
- oncommand="Brief.doCommand('markViewRead')"/>
<key id="Brief_deleteOrRestoreSelectedEntry" key="t"
oncommand="Brief.doCommand('deleteOrRestoreSelectedEntry')"/>
<key id="Brief_toggleSelectedEntryStarred" key="b"
diff -Naur old/content/brief.js new/content/brief.js
--- old/content/brief.js 2011-01-19 17:39:48.000000000 +0900
+++ new/content/brief.js 2011-02-23 23:06:24.041695001 +0900
@@ -89,6 +89,31 @@
var Commands = {
+ scrollUpByLine: function cmd_scrollUpByLine(){
+ gCurrentView.scrollUpByLine();
+ },
+ scrollDownByLine: function cmd_scrollDownByLine(){
+ gCurrentView.scrollDownByLine();
+ },
+
+ selectNextFeed: function cmd_selectNextFeed() {
+ var newEvent = document.createEvent('KeyboardEvent');
+ newEvent.initKeyEvent('keypress',
+ true, true, null,
+ false, false, false, false,
+ KeyEvent.DOM_VK_DOWN, 0);
+ FeedList.tree.dispatchEvent(newEvent);
+ },
+
+ selectPrevFeed: function cmd_selectPrevFeed() {
+ var newEvent = document.createEvent('KeyboardEvent');
+ newEvent.initKeyEvent('keypress',
+ true, true, null,
+ false, false, false, false,
+ KeyEvent.DOM_VK_UP, 0);
+ FeedList.tree.dispatchEvent(newEvent);
+ },
+
hideSidebar: function cmd_hideSidebar() {
getElement('sidebar').hidden = true;
getElement('sidebar-splitter').hidden = true;
@@ -414,6 +439,7 @@
filterUnread: 'feedview.filterUnread',
filterStarred: 'feedview.filterStarred',
sortUnreadViewOldestFirst: 'feedview.sortUnreadViewOldestFirst',
+ hideReadFeed: 'feedlist.hideReadFeeds',
showFavicons: 'showFavicons',
homeFolder: 'homeFolder'
},
@@ -463,6 +489,10 @@
case 'feedview.showHeadlinesOnly':
gCurrentView.toggleHeadlinesView();
break;
+
+ case 'feedlist.hideReadFeeds':
+ FeedList.rebuild();
+ break;
}
}
diff -Naur old/content/feedlist.js new/content/feedlist.js
--- old/content/feedlist.js 2011-01-19 17:39:48.000000000 +0900
+++ new/content/feedlist.js 2011-02-23 23:01:52.785695001 +0900
@@ -448,6 +448,8 @@
else {
label = aFeed.title;
this.removeProperty(treecell, 'unread');
+ if (PrefCache.hideReadFeed)
+ treecell.parentNode.parentNode.setAttribute('hidden',true);
}
treecell.setAttribute('label', label);
diff -Naur old/content/feedview.js new/content/feedview.js
--- old/content/feedview.js 2011-02-10 22:43:52.000000000 +0900
+++ new/content/feedview.js 2011-02-23 23:11:44.789695000 +0900
@@ -212,6 +212,9 @@
if (entry) {
this.selectedElement.setAttribute('selected', true);
+ if (PrefCache.autoMarkRead){
+ Commands.markEntryRead(entry, true);
+ }
if (aScroll)
this.scrollToEntry(entry, true, aScrollSmoothly);
@@ -316,6 +319,15 @@
}
},
+ scrollUpByLine: function cmd_scrollUpByLine(){
+ var win = this.window;
+ win.scrollByLines(-4);
+ },
+ scrollDownByLine: function cmd_scrollDownByLine(){
+ var win = this.window;
+ win.scrollByLines(4);
+ },
+
_scrollSmoothly: function FeedView__scrollSmoothly(aTargetPosition) {
if (this._scrolling)
return;
@@ -381,7 +393,8 @@
},
_autoMarkRead: function FeedView__autoMarkRead() {
- if (PrefCache.autoMarkRead && !PrefCache.showHeadlinesOnly && this.query.read !== false) {
+ if (PrefCache.autoMarkRead && !PrefCache.showHeadlinesOnly &&
+ this.query.read !== false && !PrefCache.entrySelectionEnabled) {
clearTimeout(this._markVisibleTimeout);
this._markVisibleTimeout = async(this.markVisibleEntriesRead, 1000, this);
}
@@ -644,13 +657,6 @@
if (!this.active)
return;
- if (this.query.read === false) {
- if (aNewState)
- this._onEntriesRemoved(aEntryList.IDs, true, true);
- else
- this._onEntriesAdded(aEntryList.IDs);
- }
-
intersect(this._loadedEntries, aEntryList.IDs).forEach(function(entry) {
let entryElement = this.document.getElementById(entry);
let markReadButton = entryElement.getElementsByClassName('mark-read')[0];
diff -Naur old/content/options/options.xul new/content/options/options.xul
--- old/content/options/options.xul 2010-12-20 23:28:38.000000000 +0900
+++ new/content/options/options.xul 2011-02-23 22:57:35.377694999 +0900
@@ -56,6 +56,9 @@
<preference id="extensions.brief.feedview.autoMarkRead"
name="extensions.brief.feedview.autoMarkRead"
type="bool"/>
+ <preference id="extensions.brief.feedlist.hideReadFeeds"
+ name="extensions.brief.feedlist.hideReadFeeds"
+ type="bool"/>
<preference id="extensions.brief.showStatusbarIcon"
name="extensions.brief.showStatusbarIcon"
type="bool"/>
@@ -115,6 +118,9 @@
label="&enableItemHightlight.label;"
accesskey="&enableItemHightlight.accesskey;"
preference="extensions.brief.feedview.entrySelectionEnabled"/>
+ <checkbox id="hide-read-feeds"
+ label="Hide read feeds"
+ preference="extensions.brief.feedlist.hideReadFeeds"/>
</groupbox>
<groupbox>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment