--- a/Plugins/VcsPlugins/vcsMercurial/HgUserConfigDialog.py Mon Mar 20 19:31:22 2017 +0100 +++ b/Plugins/VcsPlugins/vcsMercurial/HgUserConfigDialog.py Tue Mar 21 19:34:33 2017 +0100 @@ -23,6 +23,8 @@ from .HgUtilities import getConfigPath from .HgUserConfigHostFingerprintDialog import \ HgUserConfigHostFingerprintDialog +from .HgUserConfigHostMinimumProtocolDialog import \ + HgUserConfigHostMinimumProtocolDialog from .Ui_HgUserConfigDialog import Ui_HgUserConfigDialog @@ -457,9 +459,11 @@ self.proxyBypassEdit.clear() self.fingerprintsList.clear() + self.__finalizeFingerprintsColumns() self.__updateFingerprintsButtons() self.protocolsList.clear() + self.__finalizeProtocolsColumns() self.__updateProtocolsButtons() ####################################################################### @@ -535,6 +539,7 @@ self.fingerprintsList.takeTopLevelItem( self.fingerprintsList.indexOfTopLevelItem(itm)) del itm + self.__finalizeFingerprintsColumns() @pyqtSlot() def on_fpEditButton_clicked(self): @@ -614,26 +619,58 @@ @pyqtSlot() def on_protocolAddButton_clicked(self): """ - Slot documentation goes here. + Private slot to add a minimum protocol entry. """ - # TODO: not implemented yet - raise NotImplementedError + dlg = HgUserConfigHostMinimumProtocolDialog(self.__minimumProtocols, + self) + if dlg.exec_() == QDialog.Accepted: + host, protocol = dlg.getData() + itm = QTreeWidgetItem(self.protocolsList, [ + host, + self.__minimumProtocols[protocol] + ]) + itm.setData(1, Qt.UserRole, protocol) + self.__finalizeProtocolsColumns() + self.protocolsList.setCurrentItem(itm) + self.protocolsList.scrollToItem(itm) @pyqtSlot() def on_protocolDeleteButton_clicked(self): """ - Slot documentation goes here. + Private slot to delete the current minimum protocol item. """ - # TODO: not implemented yet - raise NotImplementedError + itm = self.protocolsList.currentItem() + if itm is not None: + host = itm.text(0) + yes = E5MessageBox.yesNo( + self, + self.tr("Delete Host Minimum Protocol"), + self.tr("""<p>Shall the minimum protocol entry for host""" + """ <b>{0}</b> really be deleted?</p>""").format(host)) + if yes: + self.protocolsList.takeTopLevelItem( + self.protocolsList.indexOfTopLevelItem(itm)) + del itm + self.__finalizeProtocolsColumns() @pyqtSlot() def on_protocolEditButton_clicked(self): """ - Slot documentation goes here. + Private slot to edit the current minimum protocol item. """ - # TODO: not implemented yet - raise NotImplementedError + itm = self.protocolsList.currentItem() + if itm is not None: + host = itm.text(0) + protocol = itm.data(1, Qt.UserRole) + dlg = HgUserConfigHostMinimumProtocolDialog( + self.__minimumProtocols, self, host, protocol) + if dlg.exec_() == QDialog.Accepted: + host, protocol = dlg.getData() + itm.setText(0, host) + itm.setText(1, self.__minimumProtocols[protocol]) + itm.setData(1, Qt.UserRole, protocol) + self.__finalizeProtocolsColumns() + self.protocolsList.scrollToItem(itm) def __finalizeProtocolsColumns(self): """