self._mainWindow.select_category(self._recent[-1][0])
def request_category(self):
-
if self._condensedAction.isChecked():
if self._catWindow is not None:
self._catWindow.hide()
self._selectedUnitValue.textEdited.connect(self._on_value_edited)
maeqt.mark_numbers_preferred(self._selectedUnitValue)
self._selectedUnitSymbol = QtGui.QLabel()
+ self._updateDelayTimer = QtCore.QTimer()
+ self._updateDelayTimer.setInterval(100)
+ self._updateDelayTimer.setSingleShot(True)
+ self._updateDelayTimer.timeout.connect(self._on_value_edited_delayed)
self._selectedUnitLayout = QtGui.QHBoxLayout()
self._selectedUnitLayout.addWidget(self._selectedUnitName)
viewHeader.setStretchLastSection(False)
# Trying to make things faster by locking in the initial size of the immutable columns
- nameSize = min(viewHeader.sectionSize(UnitData.NAME_COLUMN), 150)
+ nameSize = min(viewHeader.sectionSize(UnitData.NAME_COLUMN), 300)
viewHeader.setResizeMode(UnitData.NAME_COLUMN, QtGui.QHeaderView.Fixed)
viewHeader.resizeSection(UnitData.NAME_COLUMN, nameSize)
unitSize = min(viewHeader.sectionSize(UnitData.UNIT_COLUMN), 150)
if self._favoritesWindow is not None:
yield self._favoritesWindow
+ def _select_unit(self, index):
+ unit = self._unitsModel.get_unit(index)
+ self._selectedUnitName.setText(unit.name)
+ self._selectedUnitValue.setText(str(unit.value))
+ self._selectedUnitSymbol.setText(unit.unit)
+
+ self._selectedIndex = index
+ self._app.add_recent(self._categoryName, self._unitsModel.get_unit(index).name)
+
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)
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)):
@misc_utils.log_exception(_moduleLogger)
def _on_previous_unit(self, checked = True):
- self._select_unit(self._selectedIndex - 1)
+ index = self._selectedIndex - 1
+ unitData = self._unitsModel.get_unit(index)
+ unitName = unitData.name
+
+ 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):
- self._select_unit(self._selectedIndex + 1)
+ index = self._selectedIndex + 1
+ unitData = self._unitsModel.get_unit(index)
+ unitName = unitData.name
+
+ 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):
@misc_utils.log_exception(_moduleLogger)
def _on_value_edited(self, *args):
+ if not self._updateDelayTimer.isActive():
+ self._updateDelayTimer.start()
+
+ @misc_utils.log_exception(_moduleLogger)
+ def _on_value_edited_delayed(self, *args):
userInput = str(self._selectedUnitValue.text())
orderChanged = self._unitsModel.update_values(self._selectedIndex, userInput)
if orderChanged:
self._update_favorites()
- def _select_unit(self, index):
- unit = self._unitsModel.get_unit(index)
- self._selectedUnitName.setText(unit.name)
- self._selectedUnitValue.setText(str(unit.value))
- self._selectedUnitSymbol.setText(unit.unit)
-
- self._selectedIndex = index
- self._app.add_recent(self._categoryName, self._unitsModel.get_unit(index).name)
-
def run_gonvert():
app = QtGui.QApplication([])