From 1cf755b441d54d6654b5efae439b20ae1185603a Mon Sep 17 00:00:00 2001 From: Ed Page Date: Mon, 7 Jun 2010 19:09:30 -0500 Subject: [PATCH] Fixing a bug where we did not always refresh the converted value --- src/gonvert_qt.py | 43 ++++++++++++++++++++++++++----------------- 1 file changed, 26 insertions(+), 17 deletions(-) diff --git a/src/gonvert_qt.py b/src/gonvert_qt.py index d47b1b8..b2adc92 100755 --- a/src/gonvert_qt.py +++ b/src/gonvert_qt.py @@ -770,6 +770,9 @@ class QuickConvert(object): currentIndex = self._inputView.model().index(i, 0, rootIndex) self._inputView.scrollTo(currentIndex) + if "" not in [self._categoryName, self._inputUnitName, self._outputUnitName]: + self._update_conversion() + def select_output(self, name): # Add the output to recent but don't make things weird by making it the most recent self._app.add_recent(self._categoryName, name) @@ -786,6 +789,9 @@ class QuickConvert(object): currentIndex = self._outputView.model().index(i, 0, rootIndex) self._outputView.scrollTo(currentIndex) + if "" not in [self._categoryName, self._inputUnitName, self._outputUnitName]: + self._update_conversion() + def _sanitize_value(self, userEntry): if self._categoryName == "Computer Numbers": if userEntry == '': @@ -799,6 +805,25 @@ class QuickConvert(object): value = float(userEntry) return value + def _update_conversion(self): + assert self._categoryName + assert self._inputUnitName + assert self._outputUnitName + + userInput = str(self._inputUnitValue.text()) + value = self._sanitize_value(userInput) + + unitData = unit_data.UNIT_DESCRIPTIONS[self._categoryName] + inputConversion, _, _ = unitData[self._inputUnitName] + outputConversion, _, _ = unitData[self._outputUnitName] + + func, arg = inputConversion + base = func.to_base(value, arg) + + func, arg = outputConversion + newValue = func.from_base(base, arg) + self._outputUnitValue.setText(str(newValue)) + def _update_favorites(self): if self._app.showFavoritesAction.isChecked(): assert self._categoryView.topLevelItemCount() == len(unit_data.UNIT_CATEGORIES) @@ -878,23 +903,7 @@ class QuickConvert(object): @misc_utils.log_exception(_moduleLogger) def _on_value_edited(self, *args): - assert self._categoryName - assert self._inputUnitName - assert self._outputUnitName - - userInput = str(self._inputUnitValue.text()) - value = self._sanitize_value(userInput) - - unitData = unit_data.UNIT_DESCRIPTIONS[self._categoryName] - inputConversion, _, _ = unitData[self._inputUnitName] - outputConversion, _, _ = unitData[self._outputUnitName] - - func, arg = inputConversion - base = func.to_base(value, arg) - - func, arg = outputConversion - newValue = func.from_base(base, arg) - self._outputUnitValue.setText(str(newValue)) + self._update_conversion() @misc_utils.log_exception(_moduleLogger) def _on_category_selection_changed(self, selected, deselected): -- 1.7.9.5