Fix Select/Remove buttons being usable on empty installs table

This commit is contained in:
David Vierra 2017-07-01 12:49:03 -10:00
parent 3cc6f3fa8f
commit 8b144d7f75

View File

@ -670,6 +670,8 @@ class MinecraftInstallsDialog(QtGui.QDialog, Ui_installsWidget):
self._addMMCInstall(path)
self.minecraftInstallsTable.cellChanged.connect(self.itemChanged)
self.minecraftInstallsTable.itemSelectionChanged.connect(self.itemSelectionChanged)
self.addButton.clicked.connect(self.addInstall)
self.removeButton.clicked.connect(self.removeInstall)
self.selectButton.clicked.connect(self.selectInstall)
@ -682,6 +684,12 @@ class MinecraftInstallsDialog(QtGui.QDialog, Ui_installsWidget):
self.addMMCButton.clicked.connect(self.addMMCInstall)
self.removeMMCButton.clicked.connect(self.removeMMCInstall)
def itemSelectionChanged(self):
row = self.minecraftInstallsTable.currentRow()
enabled = row != -1
self.removeButton.setEnabled(enabled)
self.selectButton.setEnabled(enabled)
def itemChanged(self, row, column):
install = GetInstalls().installs[row]
text = self.minecraftInstallsTable.item(row, column).text()
@ -760,13 +768,19 @@ class MinecraftInstallsDialog(QtGui.QDialog, Ui_installsWidget):
def removeInstall(self):
row = self.minecraftInstallsTable.currentRow()
path = self.minecraftInstallsTable.item(row, 2).data(Qt.EditRole)
item = self.minecraftInstallsTable.item(row, 2)
if item is None: return
path = item.data(Qt.EditRole)
GetInstalls().removeInstall(path)
self.minecraftInstallsTable.removeRow(row)
def selectInstall(self):
row = self.minecraftInstallsTable.currentRow()
path = self.minecraftInstallsTable.item(row, 2).data(Qt.EditRole)
item = self.minecraftInstallsTable.item(row, 2)
if item is None: return
path = item.data(Qt.EditRole)
currentInstallOption.setValue(path)
self._hiliteRow(row)