From 06c4f98bacb681f2de37e538d63f065e6590f013 Mon Sep 17 00:00:00 2001 From: Your Name Date: Thu, 7 May 2015 21:20:14 -0500 Subject: [PATCH 1/8] x mode --- src/screenControl.py | 44 +++++++++++++++++++++++++++++++++++++++++--- 1 file changed, 41 insertions(+), 3 deletions(-) diff --git a/src/screenControl.py b/src/screenControl.py index df70f5df..066d1ef5 100755 --- a/src/screenControl.py +++ b/src/screenControl.py @@ -29,6 +29,7 @@ SELECT_MODE = 'SELECT' COMMAND_MODE = 'COMMAND_MODE' +X_MODE = 'X_MODE' SHORT_NAV_USAGE = '[f|A] selection, [down|j|up|k|space|b] navigation, [enter] open, [c] command mode' SHORT_COMMAND_USAGE = 'command examples: | git add | git checkout HEAD~1 -- | mv $F ../here/ |' @@ -334,11 +335,42 @@ def jumpToIndex(self, newIndex): self.dirtyHoverIndex() self.updateScrollOffset() + def printXMode(self) : + if self.mode == X_MODE : + self.mode = X_MODE + (maxy, maxx) = self.scrollBar.screenControl.getScreenDimensions() + topY = maxy - 2 + minY = self.scrollBar.getMinY() + lbls = "ABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890~!@#$%^&*()_+<>?{}|;'" + lblcnt = 0 + for i in range(minY,topY+1) : + self.stdscr.addstr(i, 1, lbls[lblcnt]) + lblcnt += 1 + + def selectXMode(self, key): + lblIndex = "ABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890~!@#$%^&*()_+<>?{}|;'".index(key) + if self.scrollOffset == 0: + lineno = lblIndex + 1 + else : + lineno = lblIndex + 1 + (-1 * self.scrollOffset) + l = self.lineObjs[lineno] + if hasattr(l,"toggleSelect") : + matchIndex = self.lineMatches.index(l) + self.dirtyIndexes.append(matchIndex) + self.lineMatches[matchIndex].toggleSelect() + def processInput(self, key): if key == 'UP' or key == 'k': self.moveIndex(-1) elif key == 'DOWN' or key == 'j': self.moveIndex(1) + elif key == 'x': + if self.mode != X_MODE: + self.mode = X_MODE + self.printXMode() + else: + self.mode = SELECT_MODE + self.printAll() elif key == 'c': self.beginEnterCommand() elif key == ' ' or key == 'PAGE_DOWN': @@ -347,11 +379,11 @@ def processInput(self, key): self.pageUp() elif key == 'g': self.jumpToIndex(0) - elif key == 'G': + elif key == 'G' and not self.mode == X_MODE: self.jumpToIndex(self.numMatches - 1) elif key == 'f': self.toggleSelect() - elif key == 'A': + elif key == 'A' and not self.mode == X_MODE: self.toggleSelectAll() elif key == 'ENTER': self.onEnter() @@ -361,6 +393,8 @@ def processInput(self, key): # before exiting the program self.getFilesToUse() sys.exit(0) + elif self.mode == X_MODE and key in "ABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890~!@#$%^&*()_+<>?{}|;'" : + self.selectXMode(key) pass def getFilesToUse(self): @@ -479,11 +513,15 @@ def printAll(self): self.stdscr.clear() self.printLines() self.printScroll() + self.printXMode() self.printChrome() def printLines(self): for key, lineObj in self.lineObjs.items(): - lineObj.output(self.stdscr) + if(X_MODE) : + lineObj.output(self.stdscr) + else : + lineObj.output(self.stdscr) def printScroll(self): self.scrollBar.output() From cfdf364611414510109a474a0728477693facb84 Mon Sep 17 00:00:00 2001 From: Xavier Beynon Date: Thu, 7 May 2015 22:13:53 -0500 Subject: [PATCH 2/8] Refactoring --- src/screenControl.py | 66 +++++++++++++++++++------------------------- 1 file changed, 29 insertions(+), 37 deletions(-) diff --git a/src/screenControl.py b/src/screenControl.py index 066d1ef5..22c1c20a 100755 --- a/src/screenControl.py +++ b/src/screenControl.py @@ -31,6 +31,8 @@ COMMAND_MODE = 'COMMAND_MODE' X_MODE = 'X_MODE' +lbls = "ABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890~!@#$%^&*()_+<>?{}|;'" + SHORT_NAV_USAGE = '[f|A] selection, [down|j|up|k|space|b] navigation, [enter] open, [c] command mode' SHORT_COMMAND_USAGE = 'command examples: | git add | git checkout HEAD~1 -- | mv $F ../here/ |' SHORT_COMMAND_PROMPT = 'Type a command below! Files will be appended or replace $F' @@ -231,7 +233,7 @@ def getScreenDimensions(self): def getChromeBoundaries(self): (maxy, maxx) = self.stdscr.getmaxyx() - minx = CHROME_MIN_X if self.scrollBar.getIsActivated() else 0 + minx = CHROME_MIN_X if self.scrollBar.getIsActivated() or self.mode == X_MODE else 0 maxy = self.helperChrome.reduceMaxY(maxy) maxx = self.helperChrome.reduceMaxX(maxx) # format of (MINX, MINY, MAXX, MAXY) @@ -335,42 +337,13 @@ def jumpToIndex(self, newIndex): self.dirtyHoverIndex() self.updateScrollOffset() - def printXMode(self) : - if self.mode == X_MODE : - self.mode = X_MODE - (maxy, maxx) = self.scrollBar.screenControl.getScreenDimensions() - topY = maxy - 2 - minY = self.scrollBar.getMinY() - lbls = "ABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890~!@#$%^&*()_+<>?{}|;'" - lblcnt = 0 - for i in range(minY,topY+1) : - self.stdscr.addstr(i, 1, lbls[lblcnt]) - lblcnt += 1 - - def selectXMode(self, key): - lblIndex = "ABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890~!@#$%^&*()_+<>?{}|;'".index(key) - if self.scrollOffset == 0: - lineno = lblIndex + 1 - else : - lineno = lblIndex + 1 + (-1 * self.scrollOffset) - l = self.lineObjs[lineno] - if hasattr(l,"toggleSelect") : - matchIndex = self.lineMatches.index(l) - self.dirtyIndexes.append(matchIndex) - self.lineMatches[matchIndex].toggleSelect() - def processInput(self, key): if key == 'UP' or key == 'k': self.moveIndex(-1) elif key == 'DOWN' or key == 'j': self.moveIndex(1) elif key == 'x': - if self.mode != X_MODE: - self.mode = X_MODE - self.printXMode() - else: - self.mode = SELECT_MODE - self.printAll() + self.toggleXMode() elif key == 'c': self.beginEnterCommand() elif key == ' ' or key == 'PAGE_DOWN': @@ -493,8 +466,8 @@ def resetDirty(self): self.linesDirty = False self.dirtyIndexes = [] - def dirtyHoverIndex(self): - self.dirtyIndexes.append(self.hoverIndex) + def dirtyHoverIndex(self, idx=-1): + self.dirtyIndexes.append(idx if idx > 0 else self.hoverIndex) def dirtyLines(self): self.linesDirty = True @@ -518,10 +491,7 @@ def printAll(self): def printLines(self): for key, lineObj in self.lineObjs.items(): - if(X_MODE) : - lineObj.output(self.stdscr) - else : - lineObj.output(self.stdscr) + lineObj.output(self.stdscr) def printScroll(self): self.scrollBar.output() @@ -542,3 +512,25 @@ def getKey(self): except KeyError: return '' return char + + def toggleXMode(self): + if self.mode != X_MODE: + self.mode = X_MODE + else: + self.mode = SELECT_MODE + self.printAll() + + def printXMode(self): + if self.mode == X_MODE: + (maxy, _) = self.scrollBar.screenControl.getScreenDimensions() + topY = maxy - 2 + minY = self.scrollBar.getMinY() + for i in range(minY, topY+1): + self.stdscr.addstr(i, 1, lbls[i - minY]) + + def selectXMode(self, key): + lineObj = self.lineObjs[lbls.index(key) + 1 + - self.scrollOffset] + if hasattr(lineObj, "toggleSelect"): + lineMatchIndex = self.lineMatches.index(lineObj) + self.dirtyHoverIndex(lineMatchIndex) + self.lineMatches[lineMatchIndex].toggleSelect() \ No newline at end of file From b0e49d7ff80ffe76789b6c5d5efe65f8c6f5f098 Mon Sep 17 00:00:00 2001 From: Xavier Beynon Date: Thu, 7 May 2015 22:25:49 -0500 Subject: [PATCH 3/8] Refactor, added key to usage msg --- src/screenControl.py | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/src/screenControl.py b/src/screenControl.py index 22c1c20a..e9fddc6c 100755 --- a/src/screenControl.py +++ b/src/screenControl.py @@ -33,7 +33,7 @@ lbls = "ABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890~!@#$%^&*()_+<>?{}|;'" -SHORT_NAV_USAGE = '[f|A] selection, [down|j|up|k|space|b] navigation, [enter] open, [c] command mode' +SHORT_NAV_USAGE = '[f|A] selection, [down|j|up|k|space|b] navigation, [enter] open, [x] quick select mode, [c] command mode' SHORT_COMMAND_USAGE = 'command examples: | git add | git checkout HEAD~1 -- | mv $F ../here/ |' SHORT_COMMAND_PROMPT = 'Type a command below! Files will be appended or replace $F' SHORT_COMMAND_PROMPT2 = 'Enter a blank line to go back to the selection process' @@ -109,7 +109,7 @@ def outputBottom(self): (maxy, maxx) = self.screenControl.getScreenDimensions() borderY = maxy - 2 # first output text since we might throw an exception during border - usageStr = SHORT_NAV_USAGE if self.mode == SELECT_MODE else SHORT_COMMAND_USAGE + usageStr = SHORT_NAV_USAGE if self.mode == SELECT_MODE or X_MODE else SHORT_COMMAND_USAGE borderStr = '_' * (maxx - self.getMinX() - 0) self.stdscr.addstr(borderY, self.getMinX(), borderStr) self.stdscr.addstr(borderY + 1, self.getMinX(), usageStr) @@ -366,7 +366,7 @@ def processInput(self, key): # before exiting the program self.getFilesToUse() sys.exit(0) - elif self.mode == X_MODE and key in "ABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890~!@#$%^&*()_+<>?{}|;'" : + elif self.mode == X_MODE and key in lbls: self.selectXMode(key) pass @@ -525,7 +525,7 @@ def printXMode(self): (maxy, _) = self.scrollBar.screenControl.getScreenDimensions() topY = maxy - 2 minY = self.scrollBar.getMinY() - for i in range(minY, topY+1): + for i in range(minY, topY + 1): self.stdscr.addstr(i, 1, lbls[i - minY]) def selectXMode(self, key): @@ -533,4 +533,4 @@ def selectXMode(self, key): if hasattr(lineObj, "toggleSelect"): lineMatchIndex = self.lineMatches.index(lineObj) self.dirtyHoverIndex(lineMatchIndex) - self.lineMatches[lineMatchIndex].toggleSelect() \ No newline at end of file + self.lineMatches[lineMatchIndex].toggleSelect() From c57f556a414f9bdf182fac1a22673e8e42fefe4c Mon Sep 17 00:00:00 2001 From: Xavier Beynon Date: Thu, 7 May 2015 23:05:17 -0500 Subject: [PATCH 4/8] Fixed bug (starting offset for X mode wrong w/o scrollbar --- src/screenControl.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/screenControl.py b/src/screenControl.py index e9fddc6c..779b4ecb 100755 --- a/src/screenControl.py +++ b/src/screenControl.py @@ -524,7 +524,7 @@ def printXMode(self): if self.mode == X_MODE: (maxy, _) = self.scrollBar.screenControl.getScreenDimensions() topY = maxy - 2 - minY = self.scrollBar.getMinY() + minY = self.scrollBar.getMinY() - (1 if not self.scrollBar.activated else 0) for i in range(minY, topY + 1): self.stdscr.addstr(i, 1, lbls[i - minY]) From 31e47d0f64132878d939f42bd4e6fc50953f9934 Mon Sep 17 00:00:00 2001 From: Xavier Beynon Date: Sat, 23 May 2015 10:28:17 -0500 Subject: [PATCH 5/8] Working --- src/screenControl.py | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/screenControl.py b/src/screenControl.py index e161590f..e23c17ce 100755 --- a/src/screenControl.py +++ b/src/screenControl.py @@ -591,4 +591,5 @@ def selectXMode(self, key): lineObj = self.lineObjs[lbls.index(key) + int(self.scrollBar.activated) - self.scrollOffset] if hasattr(lineObj, "toggleSelect"): lineMatchIndex = self.lineMatches.index(lineObj) - self.dirtyHoverIndex(lineMatchIndex) + self.hoverIndex = lineMatchIndex + self.toggleSelect() \ No newline at end of file From dd4af2c3dbe253d3861f153528d9b6de5b63c00e Mon Sep 17 00:00:00 2001 From: Xavier Beynon Date: Sat, 23 May 2015 11:03:34 -0500 Subject: [PATCH 6/8] Fixed X_MODE nits --- src/screenControl.py | 15 ++++++++------- 1 file changed, 8 insertions(+), 7 deletions(-) diff --git a/src/screenControl.py b/src/screenControl.py index e23c17ce..521b64aa 100755 --- a/src/screenControl.py +++ b/src/screenControl.py @@ -14,6 +14,7 @@ import usageStrings import output import logger +import format from charCodeMapping import CODE_TO_CHAR from colorPrinter import ColorPrinter @@ -112,7 +113,11 @@ def outputBottom(self): (maxy, maxx) = self.screenControl.getScreenDimensions() borderY = maxy - 2 # first output text since we might throw an exception during border - usageStr = SHORT_NAV_USAGE if self.mode == SELECT_MODE or X_MODE else SHORT_COMMAND_USAGE + usageStr = { + SELECT_MODE: SHORT_NAV_USAGE, + X_MODE: SHORT_NAV_USAGE, + COMMAND_MODE: SHORT_COMMAND_USAGE + }[self.mode] borderStr = '_' * (maxx - self.getMinX() - 0) self.printer.addstr(borderY, self.getMinX(), borderStr) self.printer.addstr(borderY + 1, self.getMinX(), usageStr) @@ -571,12 +576,8 @@ def getKey(self): charCode = self.stdscr.getch() return CODE_TO_CHAR.get(charCode, '') - def toggleXMode(self): - if self.mode != X_MODE: - self.mode = X_MODE - else: - self.mode = SELECT_MODE + self.mode = X_MODE if self.mode != X_MODE else SELECT_MODE self.printAll() def printXMode(self): @@ -589,7 +590,7 @@ def printXMode(self): def selectXMode(self, key): lineObj = self.lineObjs[lbls.index(key) + int(self.scrollBar.activated) - self.scrollOffset] - if hasattr(lineObj, "toggleSelect"): + if type(lineObj) == format.LineMatch: lineMatchIndex = self.lineMatches.index(lineObj) self.hoverIndex = lineMatchIndex self.toggleSelect() \ No newline at end of file From 4411668a7f14509fa7fbea4583cb7afcc0aeeaec Mon Sep 17 00:00:00 2001 From: Xavier Beynon Date: Sun, 24 May 2015 11:35:06 -0500 Subject: [PATCH 7/8] Nits and test updates --- src/__tests__/expected/gitDiffWithPageDown.txt | 2 +- .../expected/gitDiffWithPageDownColor.txt | 2 +- src/__tests__/expected/gitDiffWithScroll.txt | 2 +- src/__tests__/expected/gitDiffWithScrollUp.txt | 2 +- .../expected/gitDiffWithValidation.txt | 2 +- .../selectCommandWithPassedCommand.txt | 2 +- src/__tests__/expected/selectDownSelect.txt | 2 +- .../expected/selectDownSelectInverse.txt | 2 +- src/__tests__/expected/selectFirst.txt | 2 +- src/__tests__/expected/simpleLoadAndQuit.txt | 2 +- .../expected/simpleSelectWithAttributes.txt | 2 +- .../expected/simpleSelectWithColor.txt | 2 +- .../expected/simpleWithAttributes.txt | 2 +- src/__tests__/expected/tallLoadAndQuit.txt | 2 +- src/screenControl.py | 18 ++++++++++-------- 15 files changed, 24 insertions(+), 22 deletions(-) diff --git a/src/__tests__/expected/gitDiffWithPageDown.txt b/src/__tests__/expected/gitDiffWithPageDown.txt index ecfd20f7..a15d148d 100644 --- a/src/__tests__/expected/gitDiffWithPageDown.txt +++ b/src/__tests__/expected/gitDiffWithPageDown.txt @@ -27,4 +27,4 @@ . . . ___________________________________________________________________________ -=== [f|A] selection, [down|j|up|k|space|b] navigation, [enter] open, [c] comman \ No newline at end of file +=== [f|A] selection, [down|j|up|k|space|b] navigation, [enter] open, [x] quick \ No newline at end of file diff --git a/src/__tests__/expected/gitDiffWithPageDownColor.txt b/src/__tests__/expected/gitDiffWithPageDownColor.txt index 56c9fa2a..db04b017 100644 --- a/src/__tests__/expected/gitDiffWithPageDownColor.txt +++ b/src/__tests__/expected/gitDiffWithPageDownColor.txt @@ -56,5 +56,5 @@ . ___________________________________________________________________________ -=== [f|A] selection, [down|j|up|k|space|b] navigation, [enter] open, [c] comman +=== [f|A] selection, [down|j|up|k|space|b] navigation, [enter] open, [x] quick \ No newline at end of file diff --git a/src/__tests__/expected/gitDiffWithScroll.txt b/src/__tests__/expected/gitDiffWithScroll.txt index fc5a1dea..bba49c32 100644 --- a/src/__tests__/expected/gitDiffWithScroll.txt +++ b/src/__tests__/expected/gitDiffWithScroll.txt @@ -27,4 +27,4 @@ . . . ___________________________________________________________________________ -=== [f|A] selection, [down|j|up|k|space|b] navigation, [enter] open, [c] comman \ No newline at end of file +=== [f|A] selection, [down|j|up|k|space|b] navigation, [enter] open, [x] quick \ No newline at end of file diff --git a/src/__tests__/expected/gitDiffWithScrollUp.txt b/src/__tests__/expected/gitDiffWithScrollUp.txt index 2307fae0..1ad2ce8e 100644 --- a/src/__tests__/expected/gitDiffWithScrollUp.txt +++ b/src/__tests__/expected/gitDiffWithScrollUp.txt @@ -27,4 +27,4 @@ /-\ \-/ . ___________________________________________________________________________ -=== [f|A] selection, [down|j|up|k|space|b] navigation, [enter] open, [c] comman \ No newline at end of file +=== [f|A] selection, [down|j|up|k|space|b] navigation, [enter] open, [x] quick \ No newline at end of file diff --git a/src/__tests__/expected/gitDiffWithValidation.txt b/src/__tests__/expected/gitDiffWithValidation.txt index ead80561..d6f83eea 100644 --- a/src/__tests__/expected/gitDiffWithValidation.txt +++ b/src/__tests__/expected/gitDiffWithValidation.txt @@ -56,5 +56,5 @@ ___________________ ________________________________________________________________________________ -[f|A] selection, [down|j|up|k|space|b] navigation, [enter] open, [c] command mod +[f|A] selection, [down|j|up|k|space|b] navigation, [enter] open, [x] quick selec \ No newline at end of file diff --git a/src/__tests__/expected/selectCommandWithPassedCommand.txt b/src/__tests__/expected/selectCommandWithPassedCommand.txt index efae22c4..09b43120 100644 --- a/src/__tests__/expected/selectCommandWithPassedCommand.txt +++ b/src/__tests__/expected/selectCommandWithPassedCommand.txt @@ -27,4 +27,4 @@ Press any key to go back to selecting files. ________________________________________________________________________________ -[f|A] selection, [down|j|up|k|space|b] navigation, [enter] open, [c] command mod \ No newline at end of file +[f|A] selection, [down|j|up|k|space|b] navigation, [enter] open, [x] quick selec \ No newline at end of file diff --git a/src/__tests__/expected/selectDownSelect.txt b/src/__tests__/expected/selectDownSelect.txt index ca996007..60a06091 100644 --- a/src/__tests__/expected/selectDownSelect.txt +++ b/src/__tests__/expected/selectDownSelect.txt @@ -27,4 +27,4 @@ ________________________________________________________________________________ -[f|A] selection, [down|j|up|k|space|b] navigation, [enter] open, [c] command mod \ No newline at end of file +[f|A] selection, [down|j|up|k|space|b] navigation, [enter] open, [x] quick selec \ No newline at end of file diff --git a/src/__tests__/expected/selectDownSelectInverse.txt b/src/__tests__/expected/selectDownSelectInverse.txt index 1f5e23d9..badbad47 100644 --- a/src/__tests__/expected/selectDownSelectInverse.txt +++ b/src/__tests__/expected/selectDownSelectInverse.txt @@ -27,4 +27,4 @@ ________________________________________________________________________________ -[f|A] selection, [down|j|up|k|space|b] navigation, [enter] open, [c] command mod \ No newline at end of file +[f|A] selection, [down|j|up|k|space|b] navigation, [enter] open, [x] quick selec \ No newline at end of file diff --git a/src/__tests__/expected/selectFirst.txt b/src/__tests__/expected/selectFirst.txt index 8d6a6899..42429eb0 100644 --- a/src/__tests__/expected/selectFirst.txt +++ b/src/__tests__/expected/selectFirst.txt @@ -27,4 +27,4 @@ ________________________________________________________________________________ -[f|A] selection, [down|j|up|k|space|b] navigation, [enter] open, [c] command mod \ No newline at end of file +[f|A] selection, [down|j|up|k|space|b] navigation, [enter] open, [x] quick selec \ No newline at end of file diff --git a/src/__tests__/expected/simpleLoadAndQuit.txt b/src/__tests__/expected/simpleLoadAndQuit.txt index e66bb6c6..bc4b3207 100644 --- a/src/__tests__/expected/simpleLoadAndQuit.txt +++ b/src/__tests__/expected/simpleLoadAndQuit.txt @@ -27,4 +27,4 @@ ________________________________________________________________________________ -[f|A] selection, [down|j|up|k|space|b] navigation, [enter] open, [c] command mod \ No newline at end of file +[f|A] selection, [down|j|up|k|space|b] navigation, [enter] open, [x] quick selec \ No newline at end of file diff --git a/src/__tests__/expected/simpleSelectWithAttributes.txt b/src/__tests__/expected/simpleSelectWithAttributes.txt index e1cb9850..27d3217d 100644 --- a/src/__tests__/expected/simpleSelectWithAttributes.txt +++ b/src/__tests__/expected/simpleSelectWithAttributes.txt @@ -56,5 +56,5 @@ ________________________________________________________________________________ -[f|A] selection, [down|j|up|k|space|b] navigation, [enter] open, [c] command mod +[f|A] selection, [down|j|up|k|space|b] navigation, [enter] open, [x] quick selec \ No newline at end of file diff --git a/src/__tests__/expected/simpleSelectWithColor.txt b/src/__tests__/expected/simpleSelectWithColor.txt index f4180221..5005399e 100644 --- a/src/__tests__/expected/simpleSelectWithColor.txt +++ b/src/__tests__/expected/simpleSelectWithColor.txt @@ -76,5 +76,5 @@ ________________________________________________________________________________________________________________________________________________________________________________________________________ -[f|A] selection, [down|j|up|k|space|b] navigation, [enter] open, [c] command mode +[f|A] selection, [down|j|up|k|space|b] navigation, [enter] open, [x] quick select mode, [c] command mode \ No newline at end of file diff --git a/src/__tests__/expected/simpleWithAttributes.txt b/src/__tests__/expected/simpleWithAttributes.txt index 76c93f87..5ea6db8e 100644 --- a/src/__tests__/expected/simpleWithAttributes.txt +++ b/src/__tests__/expected/simpleWithAttributes.txt @@ -56,5 +56,5 @@ ________________________________________________________________________________ -[f|A] selection, [down|j|up|k|space|b] navigation, [enter] open, [c] command mod +[f|A] selection, [down|j|up|k|space|b] navigation, [enter] open, [x] quick selec \ No newline at end of file diff --git a/src/__tests__/expected/tallLoadAndQuit.txt b/src/__tests__/expected/tallLoadAndQuit.txt index 88487f0e..a93c9798 100644 --- a/src/__tests__/expected/tallLoadAndQuit.txt +++ b/src/__tests__/expected/tallLoadAndQuit.txt @@ -57,4 +57,4 @@ ____________________________________________________________________________________________________________________________________________ -[f|A] selection, [down|j|up|k|space|b] navigation, [enter] open, [c] command mode \ No newline at end of file +[f|A] selection, [down|j|up|k|space|b] navigation, [enter] open, [x] quick select mode, [c] command mode \ No newline at end of file diff --git a/src/screenControl.py b/src/screenControl.py index 521b64aa..460e1404 100755 --- a/src/screenControl.py +++ b/src/screenControl.py @@ -114,9 +114,9 @@ def outputBottom(self): borderY = maxy - 2 # first output text since we might throw an exception during border usageStr = { - SELECT_MODE: SHORT_NAV_USAGE, - X_MODE: SHORT_NAV_USAGE, - COMMAND_MODE: SHORT_COMMAND_USAGE + SELECT_MODE: SHORT_NAV_USAGE, + X_MODE: SHORT_NAV_USAGE, + COMMAND_MODE: SHORT_COMMAND_USAGE }[self.mode] borderStr = '_' * (maxx - self.getMinX() - 0) self.printer.addstr(borderY, self.getMinX(), borderStr) @@ -253,7 +253,8 @@ def getScreenDimensions(self): def getChromeBoundaries(self): (maxy, maxx) = self.stdscr.getmaxyx() - minx = CHROME_MIN_X if self.scrollBar.getIsActivated() or self.mode == X_MODE else 0 + minx = CHROME_MIN_X if self.scrollBar.getIsActivated( + ) or self.mode == X_MODE else 0 maxy = self.helperChrome.reduceMaxY(maxy) maxx = self.helperChrome.reduceMaxX(maxx) # format of (MINX, MINY, MAXX, MAXY) @@ -502,7 +503,6 @@ def resetDirty(self): self.dirty = False self.dirtyIndexes = [] - def dirtyLine(self, index): self.dirtyIndexes.append(index) @@ -584,13 +584,15 @@ def printXMode(self): if self.mode == X_MODE: (maxy, _) = self.scrollBar.screenControl.getScreenDimensions() topY = maxy - 2 - minY = self.scrollBar.getMinY() - (1 if not self.scrollBar.activated else 0) + minY = self.scrollBar.getMinY() - \ + (1 if not self.scrollBar.activated else 0) for i in range(minY, topY + 1): self.stdscr.addstr(i, 1, lbls[i - minY]) def selectXMode(self, key): - lineObj = self.lineObjs[lbls.index(key) + int(self.scrollBar.activated) - self.scrollOffset] + lineObj = self.lineObjs[ + lbls.index(key) + int(self.scrollBar.activated) - self.scrollOffset] if type(lineObj) == format.LineMatch: lineMatchIndex = self.lineMatches.index(lineObj) self.hoverIndex = lineMatchIndex - self.toggleSelect() \ No newline at end of file + self.toggleSelect() From f095482a62321830b8e5cb5cf85b9c4fb2da1305 Mon Sep 17 00:00:00 2001 From: Xavier Beynon Date: Sun, 24 May 2015 15:17:56 -0500 Subject: [PATCH 8/8] Scroll bug - can't select 1st item b/c of bumper --- src/screenControl.py | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/src/screenControl.py b/src/screenControl.py index 460e1404..b7ae25a9 100755 --- a/src/screenControl.py +++ b/src/screenControl.py @@ -584,14 +584,13 @@ def printXMode(self): if self.mode == X_MODE: (maxy, _) = self.scrollBar.screenControl.getScreenDimensions() topY = maxy - 2 - minY = self.scrollBar.getMinY() - \ - (1 if not self.scrollBar.activated else 0) + minY = self.scrollBar.getMinY() - 1 for i in range(minY, topY + 1): self.stdscr.addstr(i, 1, lbls[i - minY]) def selectXMode(self, key): lineObj = self.lineObjs[ - lbls.index(key) + int(self.scrollBar.activated) - self.scrollOffset] + lbls.index(key) - self.scrollOffset] if type(lineObj) == format.LineMatch: lineMatchIndex = self.lineMatches.index(lineObj) self.hoverIndex = lineMatchIndex