Virtual Environments eric7

Wed, 14 May 2025 18:18:06 +0200

author
Detlev Offenbach <detlev@die-offenbachs.de>
date
Wed, 14 May 2025 18:18:06 +0200
branch
eric7
changeset 11286
f0a76bd2a9d3
parent 11285
ef8675deb106
child 11287
8be7ac142194

Virtual Environments
- Added the capability to set an environment to unavailable.

docs/changelog.md file | annotate | diff | comparison | revisions
src/eric7/APIs/Python3/eric7.api file | annotate | diff | comparison | revisions
src/eric7/Documentation/Help/source.qch file | annotate | diff | comparison | revisions
src/eric7/Documentation/Help/source.qhp file | annotate | diff | comparison | revisions
src/eric7/Documentation/Source/eric7.VirtualEnv.VirtualenvManager.html file | annotate | diff | comparison | revisions
src/eric7/Documentation/Source/eric7.VirtualEnv.VirtualenvMeta.html file | annotate | diff | comparison | revisions
src/eric7/VirtualEnv/Ui_VirtualenvAddEditDialog.py file | annotate | diff | comparison | revisions
src/eric7/VirtualEnv/VirtualenvAddEditDialog.py file | annotate | diff | comparison | revisions
src/eric7/VirtualEnv/VirtualenvAddEditDialog.ui file | annotate | diff | comparison | revisions
src/eric7/VirtualEnv/VirtualenvManager.py file | annotate | diff | comparison | revisions
src/eric7/VirtualEnv/VirtualenvManagerWidgets.py file | annotate | diff | comparison | revisions
src/eric7/VirtualEnv/VirtualenvMeta.py file | annotate | diff | comparison | revisions
src/eric7/i18n/eric7_cs.ts file | annotate | diff | comparison | revisions
src/eric7/i18n/eric7_de.qm file | annotate | diff | comparison | revisions
src/eric7/i18n/eric7_de.ts file | annotate | diff | comparison | revisions
src/eric7/i18n/eric7_empty.ts file | annotate | diff | comparison | revisions
src/eric7/i18n/eric7_en.ts file | annotate | diff | comparison | revisions
src/eric7/i18n/eric7_es.ts file | annotate | diff | comparison | revisions
src/eric7/i18n/eric7_fr.ts file | annotate | diff | comparison | revisions
src/eric7/i18n/eric7_it.ts file | annotate | diff | comparison | revisions
src/eric7/i18n/eric7_pt.ts file | annotate | diff | comparison | revisions
src/eric7/i18n/eric7_ru.ts file | annotate | diff | comparison | revisions
src/eric7/i18n/eric7_tr.ts file | annotate | diff | comparison | revisions
src/eric7/i18n/eric7_zh_CN.ts file | annotate | diff | comparison | revisions
--- a/docs/changelog.md	Tue May 13 16:46:34 2025 +0200
+++ b/docs/changelog.md	Wed May 14 18:18:06 2025 +0200
@@ -12,6 +12,8 @@
     - Changed the interface to work with newer CycloneDX releases.
 - MicroPython
     - Added support for IPv6 for WiFi and Ethernet enabled devices (MPy ≥ 1.24.0).
+- Virtual Environments
+    - Added the capability to set an environment to unavailable.
 
 ### Version 25.5
 - bug fixes
--- a/src/eric7/APIs/Python3/eric7.api	Tue May 13 16:46:34 2025 +0200
+++ b/src/eric7/APIs/Python3/eric7.api	Wed May 14 18:18:06 2025 +0200
@@ -11414,6 +11414,7 @@
 eric7.VirtualEnv.VirtualenvManager.VirtualenvManager.getVirtualenvExecPath?4(venvName)
 eric7.VirtualEnv.VirtualenvManager.VirtualenvManager.getVirtualenvInterpreter?4(venvName)
 eric7.VirtualEnv.VirtualenvManager.VirtualenvManager.getVirtualenvNames?4(noGlobals=False, filterList=("all", ))
+eric7.VirtualEnv.VirtualenvManager.VirtualenvManager.isAvailableEnvironment?4(venvName)
 eric7.VirtualEnv.VirtualenvManager.VirtualenvManager.isEricServerEnvironment?4(venvName, host="")
 eric7.VirtualEnv.VirtualenvManager.VirtualenvManager.isGlobalEnvironment?4(venvName)
 eric7.VirtualEnv.VirtualenvManager.VirtualenvManager.isUnique?4(venvName)
@@ -11450,6 +11451,7 @@
 eric7.VirtualEnv.VirtualenvManagerWidgets.VirtualenvManagerWidget?1(manager, parent=None)
 eric7.VirtualEnv.VirtualenvManagerWidgets.VirtualenvManagerWindow?1(parent=None)
 eric7.VirtualEnv.VirtualenvMeta.VirtualenvMetaData.as_dict?4()
+eric7.VirtualEnv.VirtualenvMeta.VirtualenvMetaData.available?7
 eric7.VirtualEnv.VirtualenvMeta.VirtualenvMetaData.description?7
 eric7.VirtualEnv.VirtualenvMeta.VirtualenvMetaData.environment_type?7
 eric7.VirtualEnv.VirtualenvMeta.VirtualenvMetaData.eric_server?7
Binary file src/eric7/Documentation/Help/source.qch has changed
--- a/src/eric7/Documentation/Help/source.qhp	Tue May 13 16:46:34 2025 +0200
+++ b/src/eric7/Documentation/Help/source.qhp	Wed May 14 18:18:06 2025 +0200
@@ -18554,6 +18554,7 @@
       <keyword name="VirtualenvManager" id="VirtualenvManager" ref="eric7.VirtualEnv.VirtualenvManager.html#VirtualenvManager" />
       <keyword name="VirtualenvManager (Constructor)" id="VirtualenvManager (Constructor)" ref="eric7.VirtualEnv.VirtualenvManager.html#VirtualenvManager.__init__" />
       <keyword name="VirtualenvManager (Module)" id="VirtualenvManager (Module)" ref="eric7.VirtualEnv.VirtualenvManager.html" />
+      <keyword name="VirtualenvManager.__checkEnvironmentInterpretersExist" id="VirtualenvManager.__checkEnvironmentInterpretersExist" ref="eric7.VirtualEnv.VirtualenvManager.html#VirtualenvManager.__checkEnvironmentInterpretersExist" />
       <keyword name="VirtualenvManager.__cleanEnvironments" id="VirtualenvManager.__cleanEnvironments" ref="eric7.VirtualEnv.VirtualenvManager.html#VirtualenvManager.__cleanEnvironments" />
       <keyword name="VirtualenvManager.__createStandardVirtualEnv" id="VirtualenvManager.__createStandardVirtualEnv" ref="eric7.VirtualEnv.VirtualenvManager.html#VirtualenvManager.__createStandardVirtualEnv" />
       <keyword name="VirtualenvManager.__deleteStandardVirtualEnv" id="VirtualenvManager.__deleteStandardVirtualEnv" ref="eric7.VirtualEnv.VirtualenvManager.html#VirtualenvManager.__deleteStandardVirtualEnv" />
@@ -18574,6 +18575,7 @@
       <keyword name="VirtualenvManager.getVirtualenvExecPath" id="VirtualenvManager.getVirtualenvExecPath" ref="eric7.VirtualEnv.VirtualenvManager.html#VirtualenvManager.getVirtualenvExecPath" />
       <keyword name="VirtualenvManager.getVirtualenvInterpreter" id="VirtualenvManager.getVirtualenvInterpreter" ref="eric7.VirtualEnv.VirtualenvManager.html#VirtualenvManager.getVirtualenvInterpreter" />
       <keyword name="VirtualenvManager.getVirtualenvNames" id="VirtualenvManager.getVirtualenvNames" ref="eric7.VirtualEnv.VirtualenvManager.html#VirtualenvManager.getVirtualenvNames" />
+      <keyword name="VirtualenvManager.isAvailableEnvironment" id="VirtualenvManager.isAvailableEnvironment" ref="eric7.VirtualEnv.VirtualenvManager.html#VirtualenvManager.isAvailableEnvironment" />
       <keyword name="VirtualenvManager.isEricServerEnvironment" id="VirtualenvManager.isEricServerEnvironment" ref="eric7.VirtualEnv.VirtualenvManager.html#VirtualenvManager.isEricServerEnvironment" />
       <keyword name="VirtualenvManager.isGlobalEnvironment" id="VirtualenvManager.isGlobalEnvironment" ref="eric7.VirtualEnv.VirtualenvManager.html#VirtualenvManager.isGlobalEnvironment" />
       <keyword name="VirtualenvManager.isUnique" id="VirtualenvManager.isUnique" ref="eric7.VirtualEnv.VirtualenvManager.html#VirtualenvManager.isUnique" />
--- a/src/eric7/Documentation/Source/eric7.VirtualEnv.VirtualenvManager.html	Tue May 13 16:46:34 2025 +0200
+++ b/src/eric7/Documentation/Source/eric7.VirtualEnv.VirtualenvManager.html	Wed May 14 18:18:06 2025 +0200
@@ -81,6 +81,10 @@
 <td>Constructor</td>
 </tr>
 <tr>
+<td><a href="#VirtualenvManager.__checkEnvironmentInterpretersExist">__checkEnvironmentInterpretersExist</a></td>
+<td>Private method to set all environments with non-existent interpreters to the disabled state.</td>
+</tr>
+<tr>
 <td><a href="#VirtualenvManager.__cleanEnvironments">__cleanEnvironments</a></td>
 <td>Private method to delete all non-existent local or eric-ide server environments.</td>
 </tr>
@@ -161,6 +165,10 @@
 <td>Public method to get a list of defined virtual environments.</td>
 </tr>
 <tr>
+<td><a href="#VirtualenvManager.isAvailableEnvironment">isAvailableEnvironment</a></td>
+<td>Public method to test, if a given environment is available.</td>
+</tr>
+<tr>
 <td><a href="#VirtualenvManager.isEricServerEnvironment">isEricServerEnvironment</a></td>
 <td>Public method to test, if a given environment is an environment accessed through an eric-ide server.</td>
 </tr>
@@ -238,6 +246,14 @@
 reference to the parent object
 </dd>
 </dl>
+<a NAME="VirtualenvManager.__checkEnvironmentInterpretersExist" ID="VirtualenvManager.__checkEnvironmentInterpretersExist"></a>
+<h4>VirtualenvManager.__checkEnvironmentInterpretersExist</h4>
+<b>__checkEnvironmentInterpretersExist</b>(<i></i>)
+<p>
+        Private method to set all environments with non-existent interpreters to
+        the disabled state.
+</p>
+
 <a NAME="VirtualenvManager.__cleanEnvironments" ID="VirtualenvManager.__cleanEnvironments"></a>
 <h4>VirtualenvManager.__cleanEnvironments</h4>
 <b>__cleanEnvironments</b>(<i></i>)
@@ -634,6 +650,32 @@
 list of str
 </dd>
 </dl>
+<a NAME="VirtualenvManager.isAvailableEnvironment" ID="VirtualenvManager.isAvailableEnvironment"></a>
+<h4>VirtualenvManager.isAvailableEnvironment</h4>
+<b>isAvailableEnvironment</b>(<i>venvName</i>)
+<p>
+        Public method to test, if a given environment is available.
+</p>
+
+<dl>
+
+<dt><i>venvName</i> (str)</dt>
+<dd>
+logical name of the virtual environment
+</dd>
+</dl>
+<dl>
+<dt>Return:</dt>
+<dd>
+flag indicating an available environment
+</dd>
+</dl>
+<dl>
+<dt>Return Type:</dt>
+<dd>
+bool
+</dd>
+</dl>
 <a NAME="VirtualenvManager.isEricServerEnvironment" ID="VirtualenvManager.isEricServerEnvironment"></a>
 <h4>VirtualenvManager.isEricServerEnvironment</h4>
 <b>isEricServerEnvironment</b>(<i>venvName, host=""</i>)
--- a/src/eric7/Documentation/Source/eric7.VirtualEnv.VirtualenvMeta.html	Tue May 13 16:46:34 2025 +0200
+++ b/src/eric7/Documentation/Source/eric7.VirtualEnv.VirtualenvMeta.html	Wed May 14 18:18:06 2025 +0200
@@ -41,6 +41,7 @@
 None
 <h3>Class Attributes</h3>
 <table>
+<tr><td>available</td></tr>
 <tr><td>description</td></tr>
 <tr><td>environment_type</td></tr>
 <tr><td>eric_server</td></tr>
--- a/src/eric7/VirtualEnv/Ui_VirtualenvAddEditDialog.py	Tue May 13 16:46:34 2025 +0200
+++ b/src/eric7/VirtualEnv/Ui_VirtualenvAddEditDialog.py	Wed May 14 18:18:06 2025 +0200
@@ -41,9 +41,18 @@
         self.ericServerInfoLabel.setObjectName("ericServerInfoLabel")
         self.horizontalLayout.addWidget(self.ericServerInfoLabel)
         self.verticalLayout.addLayout(self.horizontalLayout)
+        self.horizontalLayout_2 = QtWidgets.QHBoxLayout()
+        self.horizontalLayout_2.setObjectName("horizontalLayout_2")
         self.globalCheckBox = QtWidgets.QCheckBox(parent=self.groupBox)
         self.globalCheckBox.setObjectName("globalCheckBox")
-        self.verticalLayout.addWidget(self.globalCheckBox)
+        self.horizontalLayout_2.addWidget(self.globalCheckBox)
+        self.availableCheckBox = QtWidgets.QCheckBox(parent=self.groupBox)
+        self.availableCheckBox.setChecked(True)
+        self.availableCheckBox.setObjectName("availableCheckBox")
+        self.horizontalLayout_2.addWidget(self.availableCheckBox)
+        spacerItem = QtWidgets.QSpacerItem(40, 20, QtWidgets.QSizePolicy.Policy.Expanding, QtWidgets.QSizePolicy.Policy.Minimum)
+        self.horizontalLayout_2.addItem(spacerItem)
+        self.verticalLayout.addLayout(self.horizontalLayout_2)
         self.gridLayout.addWidget(self.groupBox, 1, 0, 1, 2)
         self.label_2 = QtWidgets.QLabel(parent=VirtualenvAddEditDialog)
         self.label_2.setObjectName("label_2")
@@ -102,7 +111,8 @@
         QtCore.QMetaObject.connectSlotsByName(VirtualenvAddEditDialog)
         VirtualenvAddEditDialog.setTabOrder(self.nameEdit, self.environmentTypeComboBox)
         VirtualenvAddEditDialog.setTabOrder(self.environmentTypeComboBox, self.globalCheckBox)
-        VirtualenvAddEditDialog.setTabOrder(self.globalCheckBox, self.targetDirectoryPicker)
+        VirtualenvAddEditDialog.setTabOrder(self.globalCheckBox, self.availableCheckBox)
+        VirtualenvAddEditDialog.setTabOrder(self.availableCheckBox, self.targetDirectoryPicker)
         VirtualenvAddEditDialog.setTabOrder(self.targetDirectoryPicker, self.pythonExecPicker)
         VirtualenvAddEditDialog.setTabOrder(self.pythonExecPicker, self.execPathEdit)
         VirtualenvAddEditDialog.setTabOrder(self.execPathEdit, self.descriptionEdit)
@@ -118,6 +128,8 @@
         self.globalCheckBox.setWhatsThis(_translate("VirtualenvAddEditDialog", "<b>Global Environment</b>\n"
 "<p>Setting this indicates, that the environment is defined globally, i.e. not user specific. Usually such environments cannot be deleted by a standard user. The respective button of the Virtual Environment Manager dialog will be disabled for these entries.</p>"))
         self.globalCheckBox.setText(_translate("VirtualenvAddEditDialog", "Global Environment"))
+        self.availableCheckBox.setToolTip(_translate("VirtualenvAddEditDialog", "Select to indicate the availability of the environment"))
+        self.availableCheckBox.setText(_translate("VirtualenvAddEditDialog", "Environment Available"))
         self.label_2.setText(_translate("VirtualenvAddEditDialog", "Directory:"))
         self.targetDirectoryPicker.setToolTip(_translate("VirtualenvAddEditDialog", "Enter the directory of the virtual environment"))
         self.label_3.setText(_translate("VirtualenvAddEditDialog", "Python Interpreter:"))
--- a/src/eric7/VirtualEnv/VirtualenvAddEditDialog.py	Tue May 13 16:46:34 2025 +0200
+++ b/src/eric7/VirtualEnv/VirtualenvAddEditDialog.py	Wed May 14 18:18:06 2025 +0200
@@ -141,6 +141,7 @@
             self.targetDirectoryPicker.setText(self.__envBaseDir, toNative=True)
 
         self.globalCheckBox.setChecked(metadata.is_global if metadata else False)
+        self.availableCheckBox.setChecked(metadata.available if metadata else True)
         itemIndex = self.environmentTypeComboBox.findData(
             metadata.environment_type if metadata else "standard"
         )
@@ -360,4 +361,5 @@
             exec_path=self.execPathEdit.text(),
             description=self.descriptionEdit.toPlainText(),
             eric_server=self.serverLineEdit.text(),
+            available=self.availableCheckBox.isChecked(),
         )
--- a/src/eric7/VirtualEnv/VirtualenvAddEditDialog.ui	Tue May 13 16:46:34 2025 +0200
+++ b/src/eric7/VirtualEnv/VirtualenvAddEditDialog.ui	Wed May 14 18:18:06 2025 +0200
@@ -59,18 +59,48 @@
        </layout>
       </item>
       <item>
-       <widget class="QCheckBox" name="globalCheckBox">
-        <property name="toolTip">
-         <string>Select,if this is a global environment (i.e. no virtual environment directory to be given)</string>
-        </property>
-        <property name="whatsThis">
-         <string>&lt;b&gt;Global Environment&lt;/b&gt;
+       <layout class="QHBoxLayout" name="horizontalLayout_2">
+        <item>
+         <widget class="QCheckBox" name="globalCheckBox">
+          <property name="toolTip">
+           <string>Select,if this is a global environment (i.e. no virtual environment directory to be given)</string>
+          </property>
+          <property name="whatsThis">
+           <string>&lt;b&gt;Global Environment&lt;/b&gt;
 &lt;p&gt;Setting this indicates, that the environment is defined globally, i.e. not user specific. Usually such environments cannot be deleted by a standard user. The respective button of the Virtual Environment Manager dialog will be disabled for these entries.&lt;/p&gt;</string>
-        </property>
-        <property name="text">
-         <string>Global Environment</string>
-        </property>
-       </widget>
+          </property>
+          <property name="text">
+           <string>Global Environment</string>
+          </property>
+         </widget>
+        </item>
+        <item>
+         <widget class="QCheckBox" name="availableCheckBox">
+          <property name="toolTip">
+           <string>Select to indicate the availability of the environment</string>
+          </property>
+          <property name="text">
+           <string>Environment Available</string>
+          </property>
+          <property name="checked">
+           <bool>true</bool>
+          </property>
+         </widget>
+        </item>
+        <item>
+         <spacer name="horizontalSpacer">
+          <property name="orientation">
+           <enum>Qt::Orientation::Horizontal</enum>
+          </property>
+          <property name="sizeHint" stdset="0">
+           <size>
+            <width>40</width>
+            <height>20</height>
+           </size>
+          </property>
+         </spacer>
+        </item>
+       </layout>
       </item>
      </layout>
     </widget>
@@ -189,6 +219,7 @@
   <tabstop>nameEdit</tabstop>
   <tabstop>environmentTypeComboBox</tabstop>
   <tabstop>globalCheckBox</tabstop>
+  <tabstop>availableCheckBox</tabstop>
   <tabstop>targetDirectoryPicker</tabstop>
   <tabstop>pythonExecPicker</tabstop>
   <tabstop>execPathEdit</tabstop>
--- a/src/eric7/VirtualEnv/VirtualenvManager.py	Tue May 13 16:46:34 2025 +0200
+++ b/src/eric7/VirtualEnv/VirtualenvManager.py	Wed May 14 18:18:06 2025 +0200
@@ -137,6 +137,7 @@
                 )
 
         self.__cleanEnvironments()
+        self.__checkEnvironmentInterpretersExist()
 
         self.__saveSettings()
 
@@ -194,11 +195,51 @@
                         if not os.path.exists(venvPath):
                             del self.__virtualEnvironments[venvName]
                             removed = True
+
         if removed:
-            self.__saveSettings()
             self.virtualEnvironmentRemoved.emit()
             self.virtualEnvironmentsListChanged.emit()
 
+    def __checkEnvironmentInterpretersExist(self):
+        """
+        Private method to set all environments with non-existent interpreters to
+        the disabled state.
+        """
+        changed = False
+
+        for venvName in self.__virtualEnvironments:
+            venvItem = self.__virtualEnvironments[venvName]
+            if venvItem.environment_type != "remote":
+                venvInterpreter = venvItem.interpreter
+                if venvInterpreter:
+                    if venvItem.environment_type == "eric_server":
+                        with contextlib.suppress(KeyError):
+                            # It is an eric-ide server environment; check it has
+                            # an existing interpreter.
+                            ericServer = ericApp().getObject("EricServer")
+                            if (
+                                ericServer.isServerConnected()
+                                and ericServer.getHost() == venvItem.eric_server
+                                and not ericServer.getServiceInterface(
+                                    "FileSystem"
+                                ).exists(venvInterpreter)
+                            ):
+                                venvItem.available = False
+                                changed = True
+                    else:
+                        # It is a local environment; check it has an existing
+                        # interpreter.
+                        if not os.path.exists(venvInterpreter):
+                            venvItem.available = False
+                            changed = True
+                else:
+                    # no interpreter defined
+                    venvItem.available = False
+                    changed = True
+
+        if changed:
+            self.virtualEnvironmentsListChanged.emit()
+
     def getDefaultEnvironment(self):
         """
         Public method to get the default virtual environment.
@@ -232,8 +273,12 @@
         """
         py = FileSystemUtilities.normcaseabspath(interpreter.replace("w.exe", ".exe"))
         for venvName in self.__virtualEnvironments:
-            if py == FileSystemUtilities.normcaseabspath(
-                self.__virtualEnvironments[venvName].interpreter
+            if (
+                py
+                == FileSystemUtilities.normcaseabspath(
+                    self.__virtualEnvironments[venvName].interpreter
+                )
+                and self.__virtualEnvironments[venvName].available
             ):
                 return (venvName, copy.copy(self.__virtualEnvironments[venvName]))
 
@@ -606,7 +651,10 @@
         @return interpreter path
         @rtype str
         """
-        if venvName in self.__virtualEnvironments:
+        if (
+            venvName in self.__virtualEnvironments
+            and self.__virtualEnvironments[venvName].available
+        ):
             return self.__virtualEnvironments[venvName].interpreter.replace(
                 "w.exe", ".exe"
             )
@@ -626,6 +674,9 @@
         """
         if venvName in self.__virtualEnvironments:
             self.__virtualEnvironments[venvName].interpreter = venvInterpreter
+            self.__virtualEnvironments[venvName].available = os.path.exists(
+                venvInterpreter
+            )
             self.__saveSettings()
 
             self.virtualEnvironmentChanged.emit(venvName)
@@ -659,7 +710,11 @@
         @return list of defined virtual environments
         @rtype list of str
         """
-        environments = list(self.__virtualEnvironments)
+        environments = [
+            name
+            for name in self.__virtualEnvironments
+            if self.isAvailableEnvironment(name)
+        ]
         if noGlobals:
             environments = [
                 name for name in environments if not self.isGlobalEnvironment(name)
@@ -684,6 +739,20 @@
 
         return environments
 
+    def isAvailableEnvironment(self, venvName):
+        """
+        Public method to test, if a given environment is available.
+
+        @param venvName logical name of the virtual environment
+        @type str
+        @return flag indicating an available environment
+        @rtype bool
+        """
+        try:
+            return self.__virtualEnvironments[venvName].available
+        except KeyError:
+            return False
+
     def isGlobalEnvironment(self, venvName):
         """
         Public method to test, if a given environment is a global one.
--- a/src/eric7/VirtualEnv/VirtualenvManagerWidgets.py	Tue May 13 16:46:34 2025 +0200
+++ b/src/eric7/VirtualEnv/VirtualenvManagerWidgets.py	Wed May 14 18:18:06 2025 +0200
@@ -377,6 +377,13 @@
             )
             itm.setData(0, VirtualenvManagerWidget.MetadataRole, environment)
 
+            # show unavailable environments with strikeout font
+            if not environment.available:
+                font = itm.font(0)
+                font.setStrikeOut(True)
+                for column in range(itm.columnCount()):
+                    itm.setFont(column, font)
+
         self.__resizeSections()
 
     def __resizeSections(self):
--- a/src/eric7/VirtualEnv/VirtualenvMeta.py	Tue May 13 16:46:34 2025 +0200
+++ b/src/eric7/VirtualEnv/VirtualenvMeta.py	Wed May 14 18:18:06 2025 +0200
@@ -24,6 +24,7 @@
     exec_path: str = ""  # string to be prefixed to the PATH environment setting
     description: str = ""  # description of the environment
     eric_server: str = ""  # server name the environment belongs to
+    available: bool = True  # flag indicating an available virtual environment
     meta_version: int = 2  # version number of the meta data structure
 
     def as_dict(self):
@@ -65,4 +66,5 @@
             exec_path=data.get("exec_path", ""),
             description=data.get("description", ""),
             eric_server=data.get("eric_server", ""),
+            available=data.get("available", True),
         )
--- a/src/eric7/i18n/eric7_cs.ts	Tue May 13 16:46:34 2025 +0200
+++ b/src/eric7/i18n/eric7_cs.ts	Wed May 14 18:18:06 2025 +0200
@@ -95871,7 +95871,7 @@
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../VirtualEnv/VirtualenvAddEditDialog.py" line="309" />
+      <location filename="../VirtualEnv/VirtualenvAddEditDialog.py" line="310" />
       <source>eric-ide Server is not available</source>
       <translation type="unfinished" />
     </message>
@@ -95913,6 +95913,16 @@
     </message>
     <message>
       <location filename="../VirtualEnv/VirtualenvAddEditDialog.ui" line="0" />
+      <source>Select to indicate the availability of the environment</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../VirtualEnv/VirtualenvAddEditDialog.ui" line="0" />
+      <source>Environment Available</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../VirtualEnv/VirtualenvAddEditDialog.ui" line="0" />
       <source>Directory:</source>
       <translation type="unfinished" />
     </message>
@@ -96389,64 +96399,64 @@
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../VirtualEnv/VirtualenvManager.py" line="262" />
+      <location filename="../VirtualEnv/VirtualenvManager.py" line="305" />
       <source>Create Virtual Environment</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../VirtualEnv/VirtualenvManager.py" line="263" />
+      <location filename="../VirtualEnv/VirtualenvManager.py" line="306" />
       <source>Select the virtual environment type:</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../VirtualEnv/VirtualenvManager.py" line="338" />
+      <location filename="../VirtualEnv/VirtualenvManager.py" line="381" />
       <source>Add Virtual Environment</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../VirtualEnv/VirtualenvManager.py" line="339" />
+      <location filename="../VirtualEnv/VirtualenvManager.py" line="382" />
       <source>A virtual environment named &lt;b&gt;{0}&lt;/b&gt; exists already. Shall it be replaced?</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../VirtualEnv/VirtualenvManager.py" line="378" />
+      <location filename="../VirtualEnv/VirtualenvManager.py" line="421" />
       <source>Change Virtual Environment</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../VirtualEnv/VirtualenvManager.py" line="411" />
-      <location filename="../VirtualEnv/VirtualenvManager.py" line="379" />
+      <location filename="../VirtualEnv/VirtualenvManager.py" line="454" />
+      <location filename="../VirtualEnv/VirtualenvManager.py" line="422" />
       <source>A virtual environment named &lt;b&gt;{0}&lt;/b&gt; does not exist. Aborting!</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../VirtualEnv/VirtualenvManager.py" line="410" />
+      <location filename="../VirtualEnv/VirtualenvManager.py" line="453" />
       <source>Rename Virtual Environment</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../VirtualEnv/VirtualenvManager.py" line="511" />
-      <location filename="../VirtualEnv/VirtualenvManager.py" line="435" />
+      <location filename="../VirtualEnv/VirtualenvManager.py" line="554" />
+      <location filename="../VirtualEnv/VirtualenvManager.py" line="478" />
       <source>{0} - {1}</source>
       <translation type="unfinished">{0} - {1}</translation>
     </message>
     <message>
-      <location filename="../VirtualEnv/VirtualenvManager.py" line="442" />
+      <location filename="../VirtualEnv/VirtualenvManager.py" line="485" />
       <source>Delete Virtual Environments</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../VirtualEnv/VirtualenvManager.py" line="443" />
+      <location filename="../VirtualEnv/VirtualenvManager.py" line="486" />
       <source>Do you really want to delete these virtual environments?</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../VirtualEnv/VirtualenvManager.py" line="518" />
+      <location filename="../VirtualEnv/VirtualenvManager.py" line="561" />
       <source>Remove Virtual Environments</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../VirtualEnv/VirtualenvManager.py" line="519" />
+      <location filename="../VirtualEnv/VirtualenvManager.py" line="562" />
       <source>Do you really want to remove these virtual environments?</source>
       <translation type="unfinished" />
     </message>
@@ -96454,7 +96464,7 @@
   <context>
     <name>VirtualenvManagerDialog</name>
     <message>
-      <location filename="../VirtualEnv/VirtualenvManagerWidgets.py" line="428" />
+      <location filename="../VirtualEnv/VirtualenvManagerWidgets.py" line="435" />
       <source>Manage Virtual Environments</source>
       <translation type="unfinished" />
     </message>
@@ -96591,7 +96601,7 @@
   <context>
     <name>VirtualenvManagerWindow</name>
     <message>
-      <location filename="../VirtualEnv/VirtualenvManagerWidgets.py" line="475" />
+      <location filename="../VirtualEnv/VirtualenvManagerWidgets.py" line="482" />
       <source>Manage Virtual Environments</source>
       <translation type="unfinished" />
     </message>
Binary file src/eric7/i18n/eric7_de.qm has changed
--- a/src/eric7/i18n/eric7_de.ts	Tue May 13 16:46:34 2025 +0200
+++ b/src/eric7/i18n/eric7_de.ts	Wed May 14 18:18:06 2025 +0200
@@ -95745,7 +95745,7 @@
       <translation>Gib den Suchpfad ein, der der PATH Umgebungsvariablen vorangestellt werden soll. Verwende '{0}' als Trenner.</translation>
     </message>
     <message>
-      <location filename="../VirtualEnv/VirtualenvAddEditDialog.py" line="309" />
+      <location filename="../VirtualEnv/VirtualenvAddEditDialog.py" line="310" />
       <source>eric-ide Server is not available</source>
       <translation>eric-ide Server ist nicht verfügbar</translation>
     </message>
@@ -95788,6 +95788,16 @@
     </message>
     <message>
       <location filename="../VirtualEnv/VirtualenvAddEditDialog.ui" line="0" />
+      <source>Select to indicate the availability of the environment</source>
+      <translation>Auswählen, um die Verfügbarkeit der Umgebung anzuzeigen</translation>
+    </message>
+    <message>
+      <location filename="../VirtualEnv/VirtualenvAddEditDialog.ui" line="0" />
+      <source>Environment Available</source>
+      <translation>Umgebung verfügbar</translation>
+    </message>
+    <message>
+      <location filename="../VirtualEnv/VirtualenvAddEditDialog.ui" line="0" />
       <source>Directory:</source>
       <translation>Verzeichnis:</translation>
     </message>
@@ -96270,64 +96280,64 @@
       <translation>eric-ide Server</translation>
     </message>
     <message>
-      <location filename="../VirtualEnv/VirtualenvManager.py" line="262" />
+      <location filename="../VirtualEnv/VirtualenvManager.py" line="305" />
       <source>Create Virtual Environment</source>
       <translation>Virtuelle Umgebung erzeugen</translation>
     </message>
     <message>
-      <location filename="../VirtualEnv/VirtualenvManager.py" line="263" />
+      <location filename="../VirtualEnv/VirtualenvManager.py" line="306" />
       <source>Select the virtual environment type:</source>
       <translation>Wähle den Typ der virtuellen Umgebung:</translation>
     </message>
     <message>
-      <location filename="../VirtualEnv/VirtualenvManager.py" line="338" />
+      <location filename="../VirtualEnv/VirtualenvManager.py" line="381" />
       <source>Add Virtual Environment</source>
       <translation>Virtuelle Umgebung hinzufügen</translation>
     </message>
     <message>
-      <location filename="../VirtualEnv/VirtualenvManager.py" line="339" />
+      <location filename="../VirtualEnv/VirtualenvManager.py" line="382" />
       <source>A virtual environment named &lt;b&gt;{0}&lt;/b&gt; exists already. Shall it be replaced?</source>
       <translation>Eine virtuelle Umgebung mit Namen &lt;b&gt;{0}&lt;/b&gt; existiert bereits. Soll sie ersetzt werden?</translation>
     </message>
     <message>
-      <location filename="../VirtualEnv/VirtualenvManager.py" line="378" />
+      <location filename="../VirtualEnv/VirtualenvManager.py" line="421" />
       <source>Change Virtual Environment</source>
       <translation>Virtuelle Umgebung ändern</translation>
     </message>
     <message>
-      <location filename="../VirtualEnv/VirtualenvManager.py" line="411" />
-      <location filename="../VirtualEnv/VirtualenvManager.py" line="379" />
+      <location filename="../VirtualEnv/VirtualenvManager.py" line="454" />
+      <location filename="../VirtualEnv/VirtualenvManager.py" line="422" />
       <source>A virtual environment named &lt;b&gt;{0}&lt;/b&gt; does not exist. Aborting!</source>
       <translation>Eine virtuelle Umgebung mit Namen &lt;b&gt;{0}&lt;/b&gt; existiert nicht. Abbruch!</translation>
     </message>
     <message>
-      <location filename="../VirtualEnv/VirtualenvManager.py" line="410" />
+      <location filename="../VirtualEnv/VirtualenvManager.py" line="453" />
       <source>Rename Virtual Environment</source>
       <translation>Virtuelle Umgebung umbenennen</translation>
     </message>
     <message>
-      <location filename="../VirtualEnv/VirtualenvManager.py" line="511" />
-      <location filename="../VirtualEnv/VirtualenvManager.py" line="435" />
+      <location filename="../VirtualEnv/VirtualenvManager.py" line="554" />
+      <location filename="../VirtualEnv/VirtualenvManager.py" line="478" />
       <source>{0} - {1}</source>
       <translation>{0} – {1}</translation>
     </message>
     <message>
-      <location filename="../VirtualEnv/VirtualenvManager.py" line="442" />
+      <location filename="../VirtualEnv/VirtualenvManager.py" line="485" />
       <source>Delete Virtual Environments</source>
       <translation>Virtuelle Umgebung löschen</translation>
     </message>
     <message>
-      <location filename="../VirtualEnv/VirtualenvManager.py" line="443" />
+      <location filename="../VirtualEnv/VirtualenvManager.py" line="486" />
       <source>Do you really want to delete these virtual environments?</source>
       <translation>Sollen diese virtuellen Umgebungen wirklich gelöscht werden?</translation>
     </message>
     <message>
-      <location filename="../VirtualEnv/VirtualenvManager.py" line="518" />
+      <location filename="../VirtualEnv/VirtualenvManager.py" line="561" />
       <source>Remove Virtual Environments</source>
       <translation>Virtuelle Umgebung entfernen</translation>
     </message>
     <message>
-      <location filename="../VirtualEnv/VirtualenvManager.py" line="519" />
+      <location filename="../VirtualEnv/VirtualenvManager.py" line="562" />
       <source>Do you really want to remove these virtual environments?</source>
       <translation>Sollen diese virtuellen Umgebungen wirklich entfernt werden?</translation>
     </message>
@@ -96335,7 +96345,7 @@
   <context>
     <name>VirtualenvManagerDialog</name>
     <message>
-      <location filename="../VirtualEnv/VirtualenvManagerWidgets.py" line="428" />
+      <location filename="../VirtualEnv/VirtualenvManagerWidgets.py" line="435" />
       <source>Manage Virtual Environments</source>
       <translation>Virtuelle Umgebungen verwalten</translation>
     </message>
@@ -96469,7 +96479,7 @@
   <context>
     <name>VirtualenvManagerWindow</name>
     <message>
-      <location filename="../VirtualEnv/VirtualenvManagerWidgets.py" line="475" />
+      <location filename="../VirtualEnv/VirtualenvManagerWidgets.py" line="482" />
       <source>Manage Virtual Environments</source>
       <translation>Virtuelle Umgebungen verwalten</translation>
     </message>
--- a/src/eric7/i18n/eric7_empty.ts	Tue May 13 16:46:34 2025 +0200
+++ b/src/eric7/i18n/eric7_empty.ts	Wed May 14 18:18:06 2025 +0200
@@ -95165,7 +95165,7 @@
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../VirtualEnv/VirtualenvAddEditDialog.py" line="309" />
+      <location filename="../VirtualEnv/VirtualenvAddEditDialog.py" line="310" />
       <source>eric-ide Server is not available</source>
       <translation type="unfinished" />
     </message>
@@ -95207,6 +95207,16 @@
     </message>
     <message>
       <location filename="../VirtualEnv/VirtualenvAddEditDialog.ui" line="0" />
+      <source>Select to indicate the availability of the environment</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../VirtualEnv/VirtualenvAddEditDialog.ui" line="0" />
+      <source>Environment Available</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../VirtualEnv/VirtualenvAddEditDialog.ui" line="0" />
       <source>Directory:</source>
       <translation type="unfinished" />
     </message>
@@ -95667,64 +95677,64 @@
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../VirtualEnv/VirtualenvManager.py" line="262" />
+      <location filename="../VirtualEnv/VirtualenvManager.py" line="305" />
       <source>Create Virtual Environment</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../VirtualEnv/VirtualenvManager.py" line="263" />
+      <location filename="../VirtualEnv/VirtualenvManager.py" line="306" />
       <source>Select the virtual environment type:</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../VirtualEnv/VirtualenvManager.py" line="338" />
+      <location filename="../VirtualEnv/VirtualenvManager.py" line="381" />
       <source>Add Virtual Environment</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../VirtualEnv/VirtualenvManager.py" line="339" />
+      <location filename="../VirtualEnv/VirtualenvManager.py" line="382" />
       <source>A virtual environment named &lt;b&gt;{0}&lt;/b&gt; exists already. Shall it be replaced?</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../VirtualEnv/VirtualenvManager.py" line="378" />
+      <location filename="../VirtualEnv/VirtualenvManager.py" line="421" />
       <source>Change Virtual Environment</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../VirtualEnv/VirtualenvManager.py" line="411" />
-      <location filename="../VirtualEnv/VirtualenvManager.py" line="379" />
+      <location filename="../VirtualEnv/VirtualenvManager.py" line="454" />
+      <location filename="../VirtualEnv/VirtualenvManager.py" line="422" />
       <source>A virtual environment named &lt;b&gt;{0}&lt;/b&gt; does not exist. Aborting!</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../VirtualEnv/VirtualenvManager.py" line="410" />
+      <location filename="../VirtualEnv/VirtualenvManager.py" line="453" />
       <source>Rename Virtual Environment</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../VirtualEnv/VirtualenvManager.py" line="511" />
-      <location filename="../VirtualEnv/VirtualenvManager.py" line="435" />
+      <location filename="../VirtualEnv/VirtualenvManager.py" line="554" />
+      <location filename="../VirtualEnv/VirtualenvManager.py" line="478" />
       <source>{0} - {1}</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../VirtualEnv/VirtualenvManager.py" line="442" />
+      <location filename="../VirtualEnv/VirtualenvManager.py" line="485" />
       <source>Delete Virtual Environments</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../VirtualEnv/VirtualenvManager.py" line="443" />
+      <location filename="../VirtualEnv/VirtualenvManager.py" line="486" />
       <source>Do you really want to delete these virtual environments?</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../VirtualEnv/VirtualenvManager.py" line="518" />
+      <location filename="../VirtualEnv/VirtualenvManager.py" line="561" />
       <source>Remove Virtual Environments</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../VirtualEnv/VirtualenvManager.py" line="519" />
+      <location filename="../VirtualEnv/VirtualenvManager.py" line="562" />
       <source>Do you really want to remove these virtual environments?</source>
       <translation type="unfinished" />
     </message>
@@ -95732,7 +95742,7 @@
   <context>
     <name>VirtualenvManagerDialog</name>
     <message>
-      <location filename="../VirtualEnv/VirtualenvManagerWidgets.py" line="428" />
+      <location filename="../VirtualEnv/VirtualenvManagerWidgets.py" line="435" />
       <source>Manage Virtual Environments</source>
       <translation type="unfinished" />
     </message>
@@ -95865,7 +95875,7 @@
   <context>
     <name>VirtualenvManagerWindow</name>
     <message>
-      <location filename="../VirtualEnv/VirtualenvManagerWidgets.py" line="475" />
+      <location filename="../VirtualEnv/VirtualenvManagerWidgets.py" line="482" />
       <source>Manage Virtual Environments</source>
       <translation type="unfinished" />
     </message>
--- a/src/eric7/i18n/eric7_en.ts	Tue May 13 16:46:34 2025 +0200
+++ b/src/eric7/i18n/eric7_en.ts	Wed May 14 18:18:06 2025 +0200
@@ -95218,7 +95218,7 @@
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../VirtualEnv/VirtualenvAddEditDialog.py" line="309" />
+      <location filename="../VirtualEnv/VirtualenvAddEditDialog.py" line="310" />
       <source>eric-ide Server is not available</source>
       <translation type="unfinished" />
     </message>
@@ -95260,6 +95260,16 @@
     </message>
     <message>
       <location filename="../VirtualEnv/VirtualenvAddEditDialog.ui" line="0" />
+      <source>Select to indicate the availability of the environment</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../VirtualEnv/VirtualenvAddEditDialog.ui" line="0" />
+      <source>Environment Available</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../VirtualEnv/VirtualenvAddEditDialog.ui" line="0" />
       <source>Directory:</source>
       <translation type="unfinished" />
     </message>
@@ -95720,64 +95730,64 @@
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../VirtualEnv/VirtualenvManager.py" line="262" />
+      <location filename="../VirtualEnv/VirtualenvManager.py" line="305" />
       <source>Create Virtual Environment</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../VirtualEnv/VirtualenvManager.py" line="263" />
+      <location filename="../VirtualEnv/VirtualenvManager.py" line="306" />
       <source>Select the virtual environment type:</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../VirtualEnv/VirtualenvManager.py" line="338" />
+      <location filename="../VirtualEnv/VirtualenvManager.py" line="381" />
       <source>Add Virtual Environment</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../VirtualEnv/VirtualenvManager.py" line="339" />
+      <location filename="../VirtualEnv/VirtualenvManager.py" line="382" />
       <source>A virtual environment named &lt;b&gt;{0}&lt;/b&gt; exists already. Shall it be replaced?</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../VirtualEnv/VirtualenvManager.py" line="378" />
+      <location filename="../VirtualEnv/VirtualenvManager.py" line="421" />
       <source>Change Virtual Environment</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../VirtualEnv/VirtualenvManager.py" line="411" />
-      <location filename="../VirtualEnv/VirtualenvManager.py" line="379" />
+      <location filename="../VirtualEnv/VirtualenvManager.py" line="454" />
+      <location filename="../VirtualEnv/VirtualenvManager.py" line="422" />
       <source>A virtual environment named &lt;b&gt;{0}&lt;/b&gt; does not exist. Aborting!</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../VirtualEnv/VirtualenvManager.py" line="410" />
+      <location filename="../VirtualEnv/VirtualenvManager.py" line="453" />
       <source>Rename Virtual Environment</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../VirtualEnv/VirtualenvManager.py" line="511" />
-      <location filename="../VirtualEnv/VirtualenvManager.py" line="435" />
+      <location filename="../VirtualEnv/VirtualenvManager.py" line="554" />
+      <location filename="../VirtualEnv/VirtualenvManager.py" line="478" />
       <source>{0} - {1}</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../VirtualEnv/VirtualenvManager.py" line="442" />
+      <location filename="../VirtualEnv/VirtualenvManager.py" line="485" />
       <source>Delete Virtual Environments</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../VirtualEnv/VirtualenvManager.py" line="443" />
+      <location filename="../VirtualEnv/VirtualenvManager.py" line="486" />
       <source>Do you really want to delete these virtual environments?</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../VirtualEnv/VirtualenvManager.py" line="518" />
+      <location filename="../VirtualEnv/VirtualenvManager.py" line="561" />
       <source>Remove Virtual Environments</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../VirtualEnv/VirtualenvManager.py" line="519" />
+      <location filename="../VirtualEnv/VirtualenvManager.py" line="562" />
       <source>Do you really want to remove these virtual environments?</source>
       <translation type="unfinished" />
     </message>
@@ -95785,7 +95795,7 @@
   <context>
     <name>VirtualenvManagerDialog</name>
     <message>
-      <location filename="../VirtualEnv/VirtualenvManagerWidgets.py" line="428" />
+      <location filename="../VirtualEnv/VirtualenvManagerWidgets.py" line="435" />
       <source>Manage Virtual Environments</source>
       <translation type="unfinished" />
     </message>
@@ -95918,7 +95928,7 @@
   <context>
     <name>VirtualenvManagerWindow</name>
     <message>
-      <location filename="../VirtualEnv/VirtualenvManagerWidgets.py" line="475" />
+      <location filename="../VirtualEnv/VirtualenvManagerWidgets.py" line="482" />
       <source>Manage Virtual Environments</source>
       <translation type="unfinished" />
     </message>
--- a/src/eric7/i18n/eric7_es.ts	Tue May 13 16:46:34 2025 +0200
+++ b/src/eric7/i18n/eric7_es.ts	Wed May 14 18:18:06 2025 +0200
@@ -97108,7 +97108,7 @@
       <translation>Introducir la ruta de búsqueda del ejecutable a anteponer a la variable de entorno PATH. Usar '{0}' como separador.</translation>
     </message>
     <message>
-      <location filename="../VirtualEnv/VirtualenvAddEditDialog.py" line="309" />
+      <location filename="../VirtualEnv/VirtualenvAddEditDialog.py" line="310" />
       <source>eric-ide Server is not available</source>
       <translation>El Servidor de eric-ide no está disponible</translation>
     </message>
@@ -97151,6 +97151,16 @@
     </message>
     <message>
       <location filename="../VirtualEnv/VirtualenvAddEditDialog.ui" line="0" />
+      <source>Select to indicate the availability of the environment</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../VirtualEnv/VirtualenvAddEditDialog.ui" line="0" />
+      <source>Environment Available</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../VirtualEnv/VirtualenvAddEditDialog.ui" line="0" />
       <source>Directory:</source>
       <translation>Directorio:</translation>
     </message>
@@ -97633,64 +97643,64 @@
       <translation>Servidor de eric-ide</translation>
     </message>
     <message>
-      <location filename="../VirtualEnv/VirtualenvManager.py" line="262" />
+      <location filename="../VirtualEnv/VirtualenvManager.py" line="305" />
       <source>Create Virtual Environment</source>
       <translation>Crear Entorno Virtual</translation>
     </message>
     <message>
-      <location filename="../VirtualEnv/VirtualenvManager.py" line="263" />
+      <location filename="../VirtualEnv/VirtualenvManager.py" line="306" />
       <source>Select the virtual environment type:</source>
       <translation>Seleccionar el tipo de entorno virtual:</translation>
     </message>
     <message>
-      <location filename="../VirtualEnv/VirtualenvManager.py" line="338" />
+      <location filename="../VirtualEnv/VirtualenvManager.py" line="381" />
       <source>Add Virtual Environment</source>
       <translation>Añadir Entorno Virtual</translation>
     </message>
     <message>
-      <location filename="../VirtualEnv/VirtualenvManager.py" line="339" />
+      <location filename="../VirtualEnv/VirtualenvManager.py" line="382" />
       <source>A virtual environment named &lt;b&gt;{0}&lt;/b&gt; exists already. Shall it be replaced?</source>
       <translation>Un entorno virtual llamado &lt;b&gt;{0}&lt;/b&gt; ya existe. ¿Desea reemplazarlo?</translation>
     </message>
     <message>
-      <location filename="../VirtualEnv/VirtualenvManager.py" line="378" />
+      <location filename="../VirtualEnv/VirtualenvManager.py" line="421" />
       <source>Change Virtual Environment</source>
       <translation>Cambiar Entorno Virtual</translation>
     </message>
     <message>
-      <location filename="../VirtualEnv/VirtualenvManager.py" line="411" />
-      <location filename="../VirtualEnv/VirtualenvManager.py" line="379" />
+      <location filename="../VirtualEnv/VirtualenvManager.py" line="454" />
+      <location filename="../VirtualEnv/VirtualenvManager.py" line="422" />
       <source>A virtual environment named &lt;b&gt;{0}&lt;/b&gt; does not exist. Aborting!</source>
       <translation>Un entorno virtual llamado &lt;b&gt;{0}&lt;/b&gt; no existe. ¡Abortando!</translation>
     </message>
     <message>
-      <location filename="../VirtualEnv/VirtualenvManager.py" line="410" />
+      <location filename="../VirtualEnv/VirtualenvManager.py" line="453" />
       <source>Rename Virtual Environment</source>
       <translation>Renombrar Entorno Virtual</translation>
     </message>
     <message>
-      <location filename="../VirtualEnv/VirtualenvManager.py" line="511" />
-      <location filename="../VirtualEnv/VirtualenvManager.py" line="435" />
+      <location filename="../VirtualEnv/VirtualenvManager.py" line="554" />
+      <location filename="../VirtualEnv/VirtualenvManager.py" line="478" />
       <source>{0} - {1}</source>
       <translation>{0} - {1}</translation>
     </message>
     <message>
-      <location filename="../VirtualEnv/VirtualenvManager.py" line="442" />
+      <location filename="../VirtualEnv/VirtualenvManager.py" line="485" />
       <source>Delete Virtual Environments</source>
       <translation>Borrar Entornos Virtuales</translation>
     </message>
     <message>
-      <location filename="../VirtualEnv/VirtualenvManager.py" line="443" />
+      <location filename="../VirtualEnv/VirtualenvManager.py" line="486" />
       <source>Do you really want to delete these virtual environments?</source>
       <translation>¿Desea borrar estos entornos virtuales?</translation>
     </message>
     <message>
-      <location filename="../VirtualEnv/VirtualenvManager.py" line="518" />
+      <location filename="../VirtualEnv/VirtualenvManager.py" line="561" />
       <source>Remove Virtual Environments</source>
       <translation>Eliminar Entornos Virtuales</translation>
     </message>
     <message>
-      <location filename="../VirtualEnv/VirtualenvManager.py" line="519" />
+      <location filename="../VirtualEnv/VirtualenvManager.py" line="562" />
       <source>Do you really want to remove these virtual environments?</source>
       <translation>¿Desea eliminar estos entornos virtuales?</translation>
     </message>
@@ -97698,7 +97708,7 @@
   <context>
     <name>VirtualenvManagerDialog</name>
     <message>
-      <location filename="../VirtualEnv/VirtualenvManagerWidgets.py" line="428" />
+      <location filename="../VirtualEnv/VirtualenvManagerWidgets.py" line="435" />
       <source>Manage Virtual Environments</source>
       <translation>Gestionar Entornos Virtuales</translation>
     </message>
@@ -97832,7 +97842,7 @@
   <context>
     <name>VirtualenvManagerWindow</name>
     <message>
-      <location filename="../VirtualEnv/VirtualenvManagerWidgets.py" line="475" />
+      <location filename="../VirtualEnv/VirtualenvManagerWidgets.py" line="482" />
       <source>Manage Virtual Environments</source>
       <translation>Gestionar Entornos Virtuales</translation>
     </message>
--- a/src/eric7/i18n/eric7_fr.ts	Tue May 13 16:46:34 2025 +0200
+++ b/src/eric7/i18n/eric7_fr.ts	Wed May 14 18:18:06 2025 +0200
@@ -96386,7 +96386,7 @@
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../VirtualEnv/VirtualenvAddEditDialog.py" line="309" />
+      <location filename="../VirtualEnv/VirtualenvAddEditDialog.py" line="310" />
       <source>eric-ide Server is not available</source>
       <translation type="unfinished" />
     </message>
@@ -96428,6 +96428,16 @@
     </message>
     <message>
       <location filename="../VirtualEnv/VirtualenvAddEditDialog.ui" line="0" />
+      <source>Select to indicate the availability of the environment</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../VirtualEnv/VirtualenvAddEditDialog.ui" line="0" />
+      <source>Environment Available</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../VirtualEnv/VirtualenvAddEditDialog.ui" line="0" />
       <source>Directory:</source>
       <translation>Répertoire :</translation>
     </message>
@@ -96964,64 +96974,64 @@
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../VirtualEnv/VirtualenvManager.py" line="262" />
+      <location filename="../VirtualEnv/VirtualenvManager.py" line="305" />
       <source>Create Virtual Environment</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../VirtualEnv/VirtualenvManager.py" line="263" />
+      <location filename="../VirtualEnv/VirtualenvManager.py" line="306" />
       <source>Select the virtual environment type:</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../VirtualEnv/VirtualenvManager.py" line="338" />
+      <location filename="../VirtualEnv/VirtualenvManager.py" line="381" />
       <source>Add Virtual Environment</source>
       <translation>Ajouter environnement virtuel</translation>
     </message>
     <message>
-      <location filename="../VirtualEnv/VirtualenvManager.py" line="339" />
+      <location filename="../VirtualEnv/VirtualenvManager.py" line="382" />
       <source>A virtual environment named &lt;b&gt;{0}&lt;/b&gt; exists already. Shall it be replaced?</source>
       <translation>Un environnement virtuel nommé &lt;b&gt;{0}&lt;/b&gt; existe déjà. Faut il le remplacer ?</translation>
     </message>
     <message>
-      <location filename="../VirtualEnv/VirtualenvManager.py" line="378" />
+      <location filename="../VirtualEnv/VirtualenvManager.py" line="421" />
       <source>Change Virtual Environment</source>
       <translation>Modifier l'environnement virtuel</translation>
     </message>
     <message>
-      <location filename="../VirtualEnv/VirtualenvManager.py" line="411" />
-      <location filename="../VirtualEnv/VirtualenvManager.py" line="379" />
+      <location filename="../VirtualEnv/VirtualenvManager.py" line="454" />
+      <location filename="../VirtualEnv/VirtualenvManager.py" line="422" />
       <source>A virtual environment named &lt;b&gt;{0}&lt;/b&gt; does not exist. Aborting!</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../VirtualEnv/VirtualenvManager.py" line="410" />
+      <location filename="../VirtualEnv/VirtualenvManager.py" line="453" />
       <source>Rename Virtual Environment</source>
       <translation>Renommer l'environnement virtuel</translation>
     </message>
     <message>
-      <location filename="../VirtualEnv/VirtualenvManager.py" line="511" />
-      <location filename="../VirtualEnv/VirtualenvManager.py" line="435" />
+      <location filename="../VirtualEnv/VirtualenvManager.py" line="554" />
+      <location filename="../VirtualEnv/VirtualenvManager.py" line="478" />
       <source>{0} - {1}</source>
       <translation>{0} - {1}</translation>
     </message>
     <message>
-      <location filename="../VirtualEnv/VirtualenvManager.py" line="442" />
+      <location filename="../VirtualEnv/VirtualenvManager.py" line="485" />
       <source>Delete Virtual Environments</source>
       <translation>Supprimer les environnements virtuels</translation>
     </message>
     <message>
-      <location filename="../VirtualEnv/VirtualenvManager.py" line="443" />
+      <location filename="../VirtualEnv/VirtualenvManager.py" line="486" />
       <source>Do you really want to delete these virtual environments?</source>
       <translation>Voulez-vous vraiment supprimer ces environnements virtuels ?</translation>
     </message>
     <message>
-      <location filename="../VirtualEnv/VirtualenvManager.py" line="518" />
+      <location filename="../VirtualEnv/VirtualenvManager.py" line="561" />
       <source>Remove Virtual Environments</source>
       <translation>Supprimer les environnements virtuels</translation>
     </message>
     <message>
-      <location filename="../VirtualEnv/VirtualenvManager.py" line="519" />
+      <location filename="../VirtualEnv/VirtualenvManager.py" line="562" />
       <source>Do you really want to remove these virtual environments?</source>
       <translation>Voulez-vous vraiment supprimer ces environnements virtuels ?</translation>
     </message>
@@ -97029,7 +97039,7 @@
   <context>
     <name>VirtualenvManagerDialog</name>
     <message>
-      <location filename="../VirtualEnv/VirtualenvManagerWidgets.py" line="428" />
+      <location filename="../VirtualEnv/VirtualenvManagerWidgets.py" line="435" />
       <source>Manage Virtual Environments</source>
       <translation>Gérer les environnements virtuels</translation>
     </message>
@@ -97170,7 +97180,7 @@
   <context>
     <name>VirtualenvManagerWindow</name>
     <message>
-      <location filename="../VirtualEnv/VirtualenvManagerWidgets.py" line="475" />
+      <location filename="../VirtualEnv/VirtualenvManagerWidgets.py" line="482" />
       <source>Manage Virtual Environments</source>
       <translation type="unfinished">Gérer les environnements virtuels</translation>
     </message>
--- a/src/eric7/i18n/eric7_it.ts	Tue May 13 16:46:34 2025 +0200
+++ b/src/eric7/i18n/eric7_it.ts	Wed May 14 18:18:06 2025 +0200
@@ -95977,7 +95977,7 @@
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../VirtualEnv/VirtualenvAddEditDialog.py" line="309" />
+      <location filename="../VirtualEnv/VirtualenvAddEditDialog.py" line="310" />
       <source>eric-ide Server is not available</source>
       <translation type="unfinished" />
     </message>
@@ -96019,6 +96019,16 @@
     </message>
     <message>
       <location filename="../VirtualEnv/VirtualenvAddEditDialog.ui" line="0" />
+      <source>Select to indicate the availability of the environment</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../VirtualEnv/VirtualenvAddEditDialog.ui" line="0" />
+      <source>Environment Available</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../VirtualEnv/VirtualenvAddEditDialog.ui" line="0" />
       <source>Directory:</source>
       <translation type="unfinished" />
     </message>
@@ -96495,64 +96505,64 @@
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../VirtualEnv/VirtualenvManager.py" line="262" />
+      <location filename="../VirtualEnv/VirtualenvManager.py" line="305" />
       <source>Create Virtual Environment</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../VirtualEnv/VirtualenvManager.py" line="263" />
+      <location filename="../VirtualEnv/VirtualenvManager.py" line="306" />
       <source>Select the virtual environment type:</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../VirtualEnv/VirtualenvManager.py" line="338" />
+      <location filename="../VirtualEnv/VirtualenvManager.py" line="381" />
       <source>Add Virtual Environment</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../VirtualEnv/VirtualenvManager.py" line="339" />
+      <location filename="../VirtualEnv/VirtualenvManager.py" line="382" />
       <source>A virtual environment named &lt;b&gt;{0}&lt;/b&gt; exists already. Shall it be replaced?</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../VirtualEnv/VirtualenvManager.py" line="378" />
+      <location filename="../VirtualEnv/VirtualenvManager.py" line="421" />
       <source>Change Virtual Environment</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../VirtualEnv/VirtualenvManager.py" line="411" />
-      <location filename="../VirtualEnv/VirtualenvManager.py" line="379" />
+      <location filename="../VirtualEnv/VirtualenvManager.py" line="454" />
+      <location filename="../VirtualEnv/VirtualenvManager.py" line="422" />
       <source>A virtual environment named &lt;b&gt;{0}&lt;/b&gt; does not exist. Aborting!</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../VirtualEnv/VirtualenvManager.py" line="410" />
+      <location filename="../VirtualEnv/VirtualenvManager.py" line="453" />
       <source>Rename Virtual Environment</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../VirtualEnv/VirtualenvManager.py" line="511" />
-      <location filename="../VirtualEnv/VirtualenvManager.py" line="435" />
+      <location filename="../VirtualEnv/VirtualenvManager.py" line="554" />
+      <location filename="../VirtualEnv/VirtualenvManager.py" line="478" />
       <source>{0} - {1}</source>
       <translation type="unfinished">{0} - {1}</translation>
     </message>
     <message>
-      <location filename="../VirtualEnv/VirtualenvManager.py" line="442" />
+      <location filename="../VirtualEnv/VirtualenvManager.py" line="485" />
       <source>Delete Virtual Environments</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../VirtualEnv/VirtualenvManager.py" line="443" />
+      <location filename="../VirtualEnv/VirtualenvManager.py" line="486" />
       <source>Do you really want to delete these virtual environments?</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../VirtualEnv/VirtualenvManager.py" line="518" />
+      <location filename="../VirtualEnv/VirtualenvManager.py" line="561" />
       <source>Remove Virtual Environments</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../VirtualEnv/VirtualenvManager.py" line="519" />
+      <location filename="../VirtualEnv/VirtualenvManager.py" line="562" />
       <source>Do you really want to remove these virtual environments?</source>
       <translation type="unfinished" />
     </message>
@@ -96560,7 +96570,7 @@
   <context>
     <name>VirtualenvManagerDialog</name>
     <message>
-      <location filename="../VirtualEnv/VirtualenvManagerWidgets.py" line="428" />
+      <location filename="../VirtualEnv/VirtualenvManagerWidgets.py" line="435" />
       <source>Manage Virtual Environments</source>
       <translation type="unfinished" />
     </message>
@@ -96697,7 +96707,7 @@
   <context>
     <name>VirtualenvManagerWindow</name>
     <message>
-      <location filename="../VirtualEnv/VirtualenvManagerWidgets.py" line="475" />
+      <location filename="../VirtualEnv/VirtualenvManagerWidgets.py" line="482" />
       <source>Manage Virtual Environments</source>
       <translation type="unfinished" />
     </message>
--- a/src/eric7/i18n/eric7_pt.ts	Tue May 13 16:46:34 2025 +0200
+++ b/src/eric7/i18n/eric7_pt.ts	Wed May 14 18:18:06 2025 +0200
@@ -95841,7 +95841,7 @@
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../VirtualEnv/VirtualenvAddEditDialog.py" line="309" />
+      <location filename="../VirtualEnv/VirtualenvAddEditDialog.py" line="310" />
       <source>eric-ide Server is not available</source>
       <translation type="unfinished" />
     </message>
@@ -95883,6 +95883,16 @@
     </message>
     <message>
       <location filename="../VirtualEnv/VirtualenvAddEditDialog.ui" line="0" />
+      <source>Select to indicate the availability of the environment</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../VirtualEnv/VirtualenvAddEditDialog.ui" line="0" />
+      <source>Environment Available</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../VirtualEnv/VirtualenvAddEditDialog.ui" line="0" />
       <source>Directory:</source>
       <translation type="unfinished">Diretório:</translation>
     </message>
@@ -96359,64 +96369,64 @@
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../VirtualEnv/VirtualenvManager.py" line="262" />
+      <location filename="../VirtualEnv/VirtualenvManager.py" line="305" />
       <source>Create Virtual Environment</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../VirtualEnv/VirtualenvManager.py" line="263" />
+      <location filename="../VirtualEnv/VirtualenvManager.py" line="306" />
       <source>Select the virtual environment type:</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../VirtualEnv/VirtualenvManager.py" line="338" />
+      <location filename="../VirtualEnv/VirtualenvManager.py" line="381" />
       <source>Add Virtual Environment</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../VirtualEnv/VirtualenvManager.py" line="339" />
+      <location filename="../VirtualEnv/VirtualenvManager.py" line="382" />
       <source>A virtual environment named &lt;b&gt;{0}&lt;/b&gt; exists already. Shall it be replaced?</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../VirtualEnv/VirtualenvManager.py" line="378" />
+      <location filename="../VirtualEnv/VirtualenvManager.py" line="421" />
       <source>Change Virtual Environment</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../VirtualEnv/VirtualenvManager.py" line="411" />
-      <location filename="../VirtualEnv/VirtualenvManager.py" line="379" />
+      <location filename="../VirtualEnv/VirtualenvManager.py" line="454" />
+      <location filename="../VirtualEnv/VirtualenvManager.py" line="422" />
       <source>A virtual environment named &lt;b&gt;{0}&lt;/b&gt; does not exist. Aborting!</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../VirtualEnv/VirtualenvManager.py" line="410" />
+      <location filename="../VirtualEnv/VirtualenvManager.py" line="453" />
       <source>Rename Virtual Environment</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../VirtualEnv/VirtualenvManager.py" line="511" />
-      <location filename="../VirtualEnv/VirtualenvManager.py" line="435" />
+      <location filename="../VirtualEnv/VirtualenvManager.py" line="554" />
+      <location filename="../VirtualEnv/VirtualenvManager.py" line="478" />
       <source>{0} - {1}</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../VirtualEnv/VirtualenvManager.py" line="442" />
+      <location filename="../VirtualEnv/VirtualenvManager.py" line="485" />
       <source>Delete Virtual Environments</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../VirtualEnv/VirtualenvManager.py" line="443" />
+      <location filename="../VirtualEnv/VirtualenvManager.py" line="486" />
       <source>Do you really want to delete these virtual environments?</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../VirtualEnv/VirtualenvManager.py" line="518" />
+      <location filename="../VirtualEnv/VirtualenvManager.py" line="561" />
       <source>Remove Virtual Environments</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../VirtualEnv/VirtualenvManager.py" line="519" />
+      <location filename="../VirtualEnv/VirtualenvManager.py" line="562" />
       <source>Do you really want to remove these virtual environments?</source>
       <translation type="unfinished" />
     </message>
@@ -96424,7 +96434,7 @@
   <context>
     <name>VirtualenvManagerDialog</name>
     <message>
-      <location filename="../VirtualEnv/VirtualenvManagerWidgets.py" line="428" />
+      <location filename="../VirtualEnv/VirtualenvManagerWidgets.py" line="435" />
       <source>Manage Virtual Environments</source>
       <translation type="unfinished" />
     </message>
@@ -96561,7 +96571,7 @@
   <context>
     <name>VirtualenvManagerWindow</name>
     <message>
-      <location filename="../VirtualEnv/VirtualenvManagerWidgets.py" line="475" />
+      <location filename="../VirtualEnv/VirtualenvManagerWidgets.py" line="482" />
       <source>Manage Virtual Environments</source>
       <translation type="unfinished" />
     </message>
--- a/src/eric7/i18n/eric7_ru.ts	Tue May 13 16:46:34 2025 +0200
+++ b/src/eric7/i18n/eric7_ru.ts	Wed May 14 18:18:06 2025 +0200
@@ -97328,7 +97328,7 @@
       <translation>Задайте путь поиска исполняемого файла, который будет добавлен к переменной среды окружения PATH. Используйте '{0}' в качестве разделителя.</translation>
     </message>
     <message>
-      <location filename="../VirtualEnv/VirtualenvAddEditDialog.py" line="309" />
+      <location filename="../VirtualEnv/VirtualenvAddEditDialog.py" line="310" />
       <source>eric-ide Server is not available</source>
       <translation>Cервер eric-ide недоступен</translation>
     </message>
@@ -97372,6 +97372,16 @@
     </message>
     <message>
       <location filename="../VirtualEnv/VirtualenvAddEditDialog.ui" line="0" />
+      <source>Select to indicate the availability of the environment</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../VirtualEnv/VirtualenvAddEditDialog.ui" line="0" />
+      <source>Environment Available</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../VirtualEnv/VirtualenvAddEditDialog.ui" line="0" />
       <source>Directory:</source>
       <translation>Директория:</translation>
     </message>
@@ -97855,64 +97865,64 @@
       <translation>eric-ide сервер</translation>
     </message>
     <message>
-      <location filename="../VirtualEnv/VirtualenvManager.py" line="262" />
+      <location filename="../VirtualEnv/VirtualenvManager.py" line="305" />
       <source>Create Virtual Environment</source>
       <translation>Создание виртуальной среды</translation>
     </message>
     <message>
-      <location filename="../VirtualEnv/VirtualenvManager.py" line="263" />
+      <location filename="../VirtualEnv/VirtualenvManager.py" line="306" />
       <source>Select the virtual environment type:</source>
       <translation>Выберите тип виртуальной среды:</translation>
     </message>
     <message>
-      <location filename="../VirtualEnv/VirtualenvManager.py" line="338" />
+      <location filename="../VirtualEnv/VirtualenvManager.py" line="381" />
       <source>Add Virtual Environment</source>
       <translation>Добавить виртуальное окружение</translation>
     </message>
     <message>
-      <location filename="../VirtualEnv/VirtualenvManager.py" line="339" />
+      <location filename="../VirtualEnv/VirtualenvManager.py" line="382" />
       <source>A virtual environment named &lt;b&gt;{0}&lt;/b&gt; exists already. Shall it be replaced?</source>
       <translation>Виртуальное окружение с именем &lt;b&gt;{0}&lt;/b&gt; уже существует.Заменить его?</translation>
     </message>
     <message>
-      <location filename="../VirtualEnv/VirtualenvManager.py" line="378" />
+      <location filename="../VirtualEnv/VirtualenvManager.py" line="421" />
       <source>Change Virtual Environment</source>
       <translation>Изменить виртуальное окружение</translation>
     </message>
     <message>
-      <location filename="../VirtualEnv/VirtualenvManager.py" line="411" />
-      <location filename="../VirtualEnv/VirtualenvManager.py" line="379" />
+      <location filename="../VirtualEnv/VirtualenvManager.py" line="454" />
+      <location filename="../VirtualEnv/VirtualenvManager.py" line="422" />
       <source>A virtual environment named &lt;b&gt;{0}&lt;/b&gt; does not exist. Aborting!</source>
       <translation>Виртуальное окружение с именем &lt;b&gt;{0}&lt;/b&gt; не существует. Прерывание!</translation>
     </message>
     <message>
-      <location filename="../VirtualEnv/VirtualenvManager.py" line="410" />
+      <location filename="../VirtualEnv/VirtualenvManager.py" line="453" />
       <source>Rename Virtual Environment</source>
       <translation>Переименовать виртуальное окружение</translation>
     </message>
     <message>
-      <location filename="../VirtualEnv/VirtualenvManager.py" line="511" />
-      <location filename="../VirtualEnv/VirtualenvManager.py" line="435" />
+      <location filename="../VirtualEnv/VirtualenvManager.py" line="554" />
+      <location filename="../VirtualEnv/VirtualenvManager.py" line="478" />
       <source>{0} - {1}</source>
       <translation>{0} - {1}</translation>
     </message>
     <message>
-      <location filename="../VirtualEnv/VirtualenvManager.py" line="442" />
+      <location filename="../VirtualEnv/VirtualenvManager.py" line="485" />
       <source>Delete Virtual Environments</source>
       <translation>Удалить виртуальные окружения</translation>
     </message>
     <message>
-      <location filename="../VirtualEnv/VirtualenvManager.py" line="443" />
+      <location filename="../VirtualEnv/VirtualenvManager.py" line="486" />
       <source>Do you really want to delete these virtual environments?</source>
       <translation>Вы действительно хотите удалить эти виртуальные окружения?</translation>
     </message>
     <message>
-      <location filename="../VirtualEnv/VirtualenvManager.py" line="518" />
+      <location filename="../VirtualEnv/VirtualenvManager.py" line="561" />
       <source>Remove Virtual Environments</source>
       <translation>Убрать виртуальные окружения из списка</translation>
     </message>
     <message>
-      <location filename="../VirtualEnv/VirtualenvManager.py" line="519" />
+      <location filename="../VirtualEnv/VirtualenvManager.py" line="562" />
       <source>Do you really want to remove these virtual environments?</source>
       <translation>Вы действительно хотите убрать эти виртуальные окружения из списка?</translation>
     </message>
@@ -97920,7 +97930,7 @@
   <context>
     <name>VirtualenvManagerDialog</name>
     <message>
-      <location filename="../VirtualEnv/VirtualenvManagerWidgets.py" line="428" />
+      <location filename="../VirtualEnv/VirtualenvManagerWidgets.py" line="435" />
       <source>Manage Virtual Environments</source>
       <translation>Управление виртуальными окружениями</translation>
     </message>
@@ -98054,7 +98064,7 @@
   <context>
     <name>VirtualenvManagerWindow</name>
     <message>
-      <location filename="../VirtualEnv/VirtualenvManagerWidgets.py" line="475" />
+      <location filename="../VirtualEnv/VirtualenvManagerWidgets.py" line="482" />
       <source>Manage Virtual Environments</source>
       <translation>Управление виртуальными окружениями</translation>
     </message>
--- a/src/eric7/i18n/eric7_tr.ts	Tue May 13 16:46:34 2025 +0200
+++ b/src/eric7/i18n/eric7_tr.ts	Wed May 14 18:18:06 2025 +0200
@@ -95744,7 +95744,7 @@
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../VirtualEnv/VirtualenvAddEditDialog.py" line="309" />
+      <location filename="../VirtualEnv/VirtualenvAddEditDialog.py" line="310" />
       <source>eric-ide Server is not available</source>
       <translation type="unfinished" />
     </message>
@@ -95786,6 +95786,16 @@
     </message>
     <message>
       <location filename="../VirtualEnv/VirtualenvAddEditDialog.ui" line="0" />
+      <source>Select to indicate the availability of the environment</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../VirtualEnv/VirtualenvAddEditDialog.ui" line="0" />
+      <source>Environment Available</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../VirtualEnv/VirtualenvAddEditDialog.ui" line="0" />
       <source>Directory:</source>
       <translation type="unfinished" />
     </message>
@@ -96262,64 +96272,64 @@
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../VirtualEnv/VirtualenvManager.py" line="262" />
+      <location filename="../VirtualEnv/VirtualenvManager.py" line="305" />
       <source>Create Virtual Environment</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../VirtualEnv/VirtualenvManager.py" line="263" />
+      <location filename="../VirtualEnv/VirtualenvManager.py" line="306" />
       <source>Select the virtual environment type:</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../VirtualEnv/VirtualenvManager.py" line="338" />
+      <location filename="../VirtualEnv/VirtualenvManager.py" line="381" />
       <source>Add Virtual Environment</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../VirtualEnv/VirtualenvManager.py" line="339" />
+      <location filename="../VirtualEnv/VirtualenvManager.py" line="382" />
       <source>A virtual environment named &lt;b&gt;{0}&lt;/b&gt; exists already. Shall it be replaced?</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../VirtualEnv/VirtualenvManager.py" line="378" />
+      <location filename="../VirtualEnv/VirtualenvManager.py" line="421" />
       <source>Change Virtual Environment</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../VirtualEnv/VirtualenvManager.py" line="411" />
-      <location filename="../VirtualEnv/VirtualenvManager.py" line="379" />
+      <location filename="../VirtualEnv/VirtualenvManager.py" line="454" />
+      <location filename="../VirtualEnv/VirtualenvManager.py" line="422" />
       <source>A virtual environment named &lt;b&gt;{0}&lt;/b&gt; does not exist. Aborting!</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../VirtualEnv/VirtualenvManager.py" line="410" />
+      <location filename="../VirtualEnv/VirtualenvManager.py" line="453" />
       <source>Rename Virtual Environment</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../VirtualEnv/VirtualenvManager.py" line="511" />
-      <location filename="../VirtualEnv/VirtualenvManager.py" line="435" />
+      <location filename="../VirtualEnv/VirtualenvManager.py" line="554" />
+      <location filename="../VirtualEnv/VirtualenvManager.py" line="478" />
       <source>{0} - {1}</source>
       <translation type="unfinished">{0} - {1}</translation>
     </message>
     <message>
-      <location filename="../VirtualEnv/VirtualenvManager.py" line="442" />
+      <location filename="../VirtualEnv/VirtualenvManager.py" line="485" />
       <source>Delete Virtual Environments</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../VirtualEnv/VirtualenvManager.py" line="443" />
+      <location filename="../VirtualEnv/VirtualenvManager.py" line="486" />
       <source>Do you really want to delete these virtual environments?</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../VirtualEnv/VirtualenvManager.py" line="518" />
+      <location filename="../VirtualEnv/VirtualenvManager.py" line="561" />
       <source>Remove Virtual Environments</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../VirtualEnv/VirtualenvManager.py" line="519" />
+      <location filename="../VirtualEnv/VirtualenvManager.py" line="562" />
       <source>Do you really want to remove these virtual environments?</source>
       <translation type="unfinished" />
     </message>
@@ -96327,7 +96337,7 @@
   <context>
     <name>VirtualenvManagerDialog</name>
     <message>
-      <location filename="../VirtualEnv/VirtualenvManagerWidgets.py" line="428" />
+      <location filename="../VirtualEnv/VirtualenvManagerWidgets.py" line="435" />
       <source>Manage Virtual Environments</source>
       <translation type="unfinished" />
     </message>
@@ -96464,7 +96474,7 @@
   <context>
     <name>VirtualenvManagerWindow</name>
     <message>
-      <location filename="../VirtualEnv/VirtualenvManagerWidgets.py" line="475" />
+      <location filename="../VirtualEnv/VirtualenvManagerWidgets.py" line="482" />
       <source>Manage Virtual Environments</source>
       <translation type="unfinished" />
     </message>
--- a/src/eric7/i18n/eric7_zh_CN.ts	Tue May 13 16:46:34 2025 +0200
+++ b/src/eric7/i18n/eric7_zh_CN.ts	Wed May 14 18:18:06 2025 +0200
@@ -96140,7 +96140,7 @@
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../VirtualEnv/VirtualenvAddEditDialog.py" line="309" />
+      <location filename="../VirtualEnv/VirtualenvAddEditDialog.py" line="310" />
       <source>eric-ide Server is not available</source>
       <translation type="unfinished" />
     </message>
@@ -96182,6 +96182,16 @@
     </message>
     <message>
       <location filename="../VirtualEnv/VirtualenvAddEditDialog.ui" line="0" />
+      <source>Select to indicate the availability of the environment</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../VirtualEnv/VirtualenvAddEditDialog.ui" line="0" />
+      <source>Environment Available</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../VirtualEnv/VirtualenvAddEditDialog.ui" line="0" />
       <source>Directory:</source>
       <translation type="unfinished" />
     </message>
@@ -96658,64 +96668,64 @@
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../VirtualEnv/VirtualenvManager.py" line="262" />
+      <location filename="../VirtualEnv/VirtualenvManager.py" line="305" />
       <source>Create Virtual Environment</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../VirtualEnv/VirtualenvManager.py" line="263" />
+      <location filename="../VirtualEnv/VirtualenvManager.py" line="306" />
       <source>Select the virtual environment type:</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../VirtualEnv/VirtualenvManager.py" line="338" />
+      <location filename="../VirtualEnv/VirtualenvManager.py" line="381" />
       <source>Add Virtual Environment</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../VirtualEnv/VirtualenvManager.py" line="339" />
+      <location filename="../VirtualEnv/VirtualenvManager.py" line="382" />
       <source>A virtual environment named &lt;b&gt;{0}&lt;/b&gt; exists already. Shall it be replaced?</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../VirtualEnv/VirtualenvManager.py" line="378" />
+      <location filename="../VirtualEnv/VirtualenvManager.py" line="421" />
       <source>Change Virtual Environment</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../VirtualEnv/VirtualenvManager.py" line="411" />
-      <location filename="../VirtualEnv/VirtualenvManager.py" line="379" />
+      <location filename="../VirtualEnv/VirtualenvManager.py" line="454" />
+      <location filename="../VirtualEnv/VirtualenvManager.py" line="422" />
       <source>A virtual environment named &lt;b&gt;{0}&lt;/b&gt; does not exist. Aborting!</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../VirtualEnv/VirtualenvManager.py" line="410" />
+      <location filename="../VirtualEnv/VirtualenvManager.py" line="453" />
       <source>Rename Virtual Environment</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../VirtualEnv/VirtualenvManager.py" line="511" />
-      <location filename="../VirtualEnv/VirtualenvManager.py" line="435" />
+      <location filename="../VirtualEnv/VirtualenvManager.py" line="554" />
+      <location filename="../VirtualEnv/VirtualenvManager.py" line="478" />
       <source>{0} - {1}</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../VirtualEnv/VirtualenvManager.py" line="442" />
+      <location filename="../VirtualEnv/VirtualenvManager.py" line="485" />
       <source>Delete Virtual Environments</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../VirtualEnv/VirtualenvManager.py" line="443" />
+      <location filename="../VirtualEnv/VirtualenvManager.py" line="486" />
       <source>Do you really want to delete these virtual environments?</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../VirtualEnv/VirtualenvManager.py" line="518" />
+      <location filename="../VirtualEnv/VirtualenvManager.py" line="561" />
       <source>Remove Virtual Environments</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../VirtualEnv/VirtualenvManager.py" line="519" />
+      <location filename="../VirtualEnv/VirtualenvManager.py" line="562" />
       <source>Do you really want to remove these virtual environments?</source>
       <translation type="unfinished" />
     </message>
@@ -96723,7 +96733,7 @@
   <context>
     <name>VirtualenvManagerDialog</name>
     <message>
-      <location filename="../VirtualEnv/VirtualenvManagerWidgets.py" line="428" />
+      <location filename="../VirtualEnv/VirtualenvManagerWidgets.py" line="435" />
       <source>Manage Virtual Environments</source>
       <translation type="unfinished" />
     </message>
@@ -96860,7 +96870,7 @@
   <context>
     <name>VirtualenvManagerWindow</name>
     <message>
-      <location filename="../VirtualEnv/VirtualenvManagerWidgets.py" line="475" />
+      <location filename="../VirtualEnv/VirtualenvManagerWidgets.py" line="482" />
       <source>Manage Virtual Environments</source>
       <translation type="unfinished" />
     </message>

eric ide

mercurial