From c7907cf7bc4d764ee6c2794a97ba0b7ac42b70dc Mon Sep 17 00:00:00 2001 From: Ed Page Date: Tue, 15 Jun 2010 18:42:43 -0500 Subject: [PATCH] Fixing Units Window when only showing favorites --- src/gonvert_qt.py | 32 ++++++++++++++++++++++++-------- support/builddeb.py | 1 + 2 files changed, 25 insertions(+), 8 deletions(-) diff --git a/src/gonvert_qt.py b/src/gonvert_qt.py index f6cdce4..bdce5ae 100755 --- a/src/gonvert_qt.py +++ b/src/gonvert_qt.py @@ -1770,8 +1770,9 @@ class UnitWindow(object): def _update_favorites(self, force = False): if self._app.showFavoritesAction.isChecked(): unitNames = list(self._unitsModel.get_unit_names()) + hiddenUnits = self._app.get_hidden_units(self._categoryName) for i, unitName in enumerate(unitNames): - if unitName in self._app.get_hidden_units(self._categoryName): + if unitName in hiddenUnits: self._unitsView.setRowHidden(i, self._unitsView.rootIndex(), True) else: self._unitsView.setRowHidden(i, self._unitsView.rootIndex(), False) @@ -1784,8 +1785,9 @@ class UnitWindow(object): def _on_show_favorites(self, checked = True): if checked: unitNames = list(self._unitsModel.get_unit_names()) + hiddenUnits = self._app.get_hidden_units(self._categoryName) for i, unitName in enumerate(unitNames): - if unitName in self._app.get_hidden_units(self._categoryName): + if unitName in hiddenUnits: self._unitsView.setRowHidden(i, self._unitsView.rootIndex(), True) else: for i in xrange(len(self._unitsModel)): @@ -1811,18 +1813,32 @@ class UnitWindow(object): @misc_utils.log_exception(_moduleLogger) def _on_previous_unit(self, checked = True): index = self._selectedIndex - 1 - self._select_unit(index) + unitData = self._unitsModel.get_unit(index) + unitName = unitData.name - qindex = self._unitsModel.createIndex(index, 0, self._unitsModel.get_unit(index)) - self._unitsView.scrollTo(qindex) + if self._app.showFavoritesAction.isChecked(): + hiddenUnits = self._app.get_hidden_units(self._categoryName) + while unitName in hiddenUnits: + index -= 1 + unitData = self._unitsModel.get_unit(index) + unitName = unitData.name + + self.select_unit(unitName) @misc_utils.log_exception(_moduleLogger) def _on_next_unit(self, checked = True): index = self._selectedIndex + 1 - self._select_unit(index) + unitData = self._unitsModel.get_unit(index) + unitName = unitData.name - qindex = self._unitsModel.createIndex(index, 0, self._unitsModel.get_unit(index)) - self._unitsView.scrollTo(qindex) + if self._app.showFavoritesAction.isChecked(): + hiddenUnits = self._app.get_hidden_units(self._categoryName) + while unitName in hiddenUnits: + index += 1 + unitData = self._unitsModel.get_unit(index) + unitName = unitData.name + + self.select_unit(unitName) @misc_utils.log_exception(_moduleLogger) def _on_close_window(self, checked = True): diff --git a/support/builddeb.py b/support/builddeb.py index bc9ab3c..d5fd249 100755 --- a/support/builddeb.py +++ b/support/builddeb.py @@ -20,6 +20,7 @@ __version__ = constants.__version__ __build__ = constants.__build__ __changelog__ = """ * Adding back in scrolling when using arrow keys in Units Window +* Fixing Units Window arrow keys when only showing favorites """.strip() -- 1.7.9.5