CondaInterface/CondaPackagesWidget.py

branch
conda
changeset 6731
c70eaa492741
parent 6728
ba077788a882
child 6738
a7f835b41606
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):

eric ide

mercurial