diff -r 35576138c927 -r c70eaa492741 CondaInterface/CondaPackagesWidget.py --- a/CondaInterface/CondaPackagesWidget.py Tue Feb 12 19:37:50 2019 +0100 +++ b/CondaInterface/CondaPackagesWidget.py Tue Feb 12 19:38:52 2019 +0100 @@ -14,7 +14,7 @@ from PyQt5.QtCore import pyqtSlot, Qt from PyQt5.QtGui import QCursor from PyQt5.QtWidgets import QWidget, QToolButton, QMenu, QTreeWidgetItem, \ - QApplication, QLineEdit + QApplication, QLineEdit, QDialog from E5Gui import E5FileDialog, E5MessageBox, E5TextInputDialog from E5Gui.E5Application import e5App @@ -588,30 +588,51 @@ """ Private slot to clone a conda environment. """ + from .CondaNewEnvironmentDataDialog import \ + CondaNewEnvironmentDataDialog + prefix = self.environmentsComboBox.itemData( self.environmentsComboBox.currentIndex()) if prefix: - ok, envName = E5TextInputDialog.getText( - self, - self.tr("Clone Environment"), - self.tr("Enter name for the cloned environment:"), - QLineEdit.Normal) - if ok and envName.strip(): + dlg = CondaNewEnvironmentDataDialog(self.tr("Clone Environment"), + False, self) + if dlg.exec_() == QDialog.Accepted: + virtEnvName, envName, _ = dlg.getData() args = [ "--name", envName.strip(), "--clone", prefix, ] - self.__conda.createCondaEnvironment(args) - # TODO: add code to register the cloned env with the virt env manager + ok, prefix, interpreter = \ + self.__conda.createCondaEnvironment(args) + if ok: + e5App().getObject("VirtualEnvManager").addVirtualEnv( + virtEnvName, prefix, interpreter, isConda=True) @pyqtSlot() def __createEnvironment(self): """ Private slot to create a conda environment from a requirements file. """ - # TODO: implement this + from .CondaNewEnvironmentDataDialog import \ + CondaNewEnvironmentDataDialog + + dlg = CondaNewEnvironmentDataDialog(self.tr("Create Environment"), + True, self) + if dlg.exec_() == QDialog.Accepted: + virtEnvName, envName, requirements = dlg.getData() + args = [ + "--name", + envName.strip(), + "--file", + requirements, + ] + ok, prefix, interpreter = \ + self.__conda.createCondaEnvironment(args) + if ok: + e5App().getObject("VirtualEnvManager").addVirtualEnv( + virtEnvName, prefix, interpreter, isConda=True) @pyqtSlot() def __deleteEnvironment(self):