Fixing a condensed view bug where you select units when no category is set
[gonvert] / src / gonvert_qt.py
index d177b9d..dd4845c 100755 (executable)
@@ -572,7 +572,7 @@ class QuickConvert(object):
 
                self._categoryView = QtGui.QTreeWidget()
                self._categoryView.setHeaderLabels(["Categories"])
-               self._categoryView.setHeaderHidden(True)
+               self._categoryView.setHeaderHidden(False)
                if not IS_MAEMO:
                        self._categoryView.setAlternatingRowColors(True)
                self._categoryView.setSelectionBehavior(QtGui.QAbstractItemView.SelectRows)
@@ -584,8 +584,8 @@ class QuickConvert(object):
                self._categorySelection.selectionChanged.connect(self._on_category_selection_changed)
 
                self._inputView = QtGui.QTreeWidget()
-               self._inputView.setHeaderLabels(["Input", "Name"])
-               self._inputView.setHeaderHidden(True)
+               self._inputView.setHeaderLabels(["From", "Name"])
+               self._inputView.setHeaderHidden(False)
                self._inputView.header().hideSection(1)
                if not IS_MAEMO:
                        self._inputView.setAlternatingRowColors(True)
@@ -595,8 +595,8 @@ class QuickConvert(object):
                self._inputSelection.selectionChanged.connect(self._on_input_selection_changed)
 
                self._outputView = QtGui.QTreeWidget()
-               self._outputView.setHeaderLabels(["Output", "Name"])
-               self._outputView.setHeaderHidden(True)
+               self._outputView.setHeaderLabels(["To", "Name"])
+               self._outputView.setHeaderHidden(False)
                self._outputView.header().hideSection(1)
                if not IS_MAEMO:
                        self._outputView.setAlternatingRowColors(True)
@@ -635,6 +635,7 @@ class QuickConvert(object):
                self._chooseUnitFavoritesAction = QtGui.QAction(None)
                self._chooseUnitFavoritesAction.setText("Select Units")
                self._chooseUnitFavoritesAction.triggered.connect(self._on_choose_unit_favorites)
+               self._chooseUnitFavoritesAction.setEnabled(False)
 
                self._app.showFavoritesAction.toggled.connect(self._on_show_favorites)
 
@@ -701,9 +702,13 @@ class QuickConvert(object):
 
        def select_category(self, categoryName):
                self._inputUnitValue.setText("")
+               self._inputUnitSymbol.setText("")
                self._inputView.clear()
+               self._outputUnitValue.setText("")
+               self._outputUnitSymbol.setText("")
                self._outputView.clear()
                self._categoryName = categoryName
+               self._chooseUnitFavoritesAction.setEnabled(True)
 
                unitData = unit_data.UNIT_DESCRIPTIONS[categoryName]
                self._unitNames = list(unit_data.get_units(categoryName))
@@ -1395,8 +1400,8 @@ class UnitModel(QtCore.QAbstractItemModel):
                        self._sortSettings is not None and
                        self._sortSettings[0]  in [UnitData.VALUE_COLUMN_0, UnitData.VALUE_COLUMN_1]
                ):
+                       # Sort takes care of marking everything as changed
                        self.sort(*self._sortSettings)
-                       self._all_changed()
                else:
                        self._values_changed()
 
@@ -1470,10 +1475,10 @@ class UnitWindow(object):
                viewHeader.setStretchLastSection(False)
 
                # Trying to make things faster by locking in the initial size of the immutable columns
-               nameSize = viewHeader.sectionSize(UnitData.NAME_COLUMN)
+               nameSize = min(viewHeader.sectionSize(UnitData.NAME_COLUMN), 125)
                viewHeader.setResizeMode(UnitData.NAME_COLUMN, QtGui.QHeaderView.Fixed)
                viewHeader.resizeSection(UnitData.NAME_COLUMN, nameSize)
-               unitSize = viewHeader.sectionSize(UnitData.UNIT_COLUMN)
+               unitSize = min(viewHeader.sectionSize(UnitData.UNIT_COLUMN), 125)
                viewHeader.setResizeMode(UnitData.UNIT_COLUMN, QtGui.QHeaderView.Fixed)
                viewHeader.resizeSection(UnitData.UNIT_COLUMN, unitSize)
 
@@ -1499,7 +1504,6 @@ class UnitWindow(object):
                        self.select_unit(defaultUnitName)
                else:
                        self._select_unit(0)
-               self._unitsModel.sort(UnitData.NAME_COLUMN)
 
                self._sortActionGroup = QtGui.QActionGroup(None)
                self._sortByNameAction = QtGui.QAction(self._sortActionGroup)
@@ -1518,7 +1522,10 @@ class UnitWindow(object):
                self._sortByUnitAction.setToolTip("Sort the units by unit")
                self._sortByUnitAction.setCheckable(True)
 
-               self._sortByValueAction.setChecked(True)
+               if UnitData.NAME_COLUMN != 0:
+                       # By default it sorts by he first column (name)
+                       self._unitsModel.sort(UnitData.NAME_COLUMN)
+               self._sortByNameAction.setChecked(True)
 
                self._chooseFavoritesAction = QtGui.QAction(None)
                self._chooseFavoritesAction.setText("Select Favorites")