<?xml version="1.0" encoding="UTF-8"?>
<ui version="4.0">
 <class>DeepLearningServerEditor</class>
 <widget class="QWidget" name="DeepLearningServerEditor">
  <property name="geometry">
   <rect>
    <x>0</x>
    <y>0</y>
    <width>720</width>
    <height>400</height>
   </rect>
  </property>
  <property name="minimumSize">
   <size>
    <width>720</width>
    <height>400</height>
   </size>
  </property>
  <property name="windowTitle">
   <string>Dialog</string>
  </property>
  <property name="styleSheet">
   <string notr="true"/>
  </property>
  <layout class="QVBoxLayout" name="verticalLayout">
   <property name="leftMargin">
    <number>12</number>
   </property>
   <item>
    <widget class="QWidget" name="grpHeader" native="true">
     <layout class="QGridLayout" name="gridLayout_5" columnstretch="0,0,0" columnminimumwidth="140,0,0">
      <property name="leftMargin">
       <number>0</number>
      </property>
      <property name="topMargin">
       <number>0</number>
      </property>
      <property name="rightMargin">
       <number>0</number>
      </property>
      <property name="bottomMargin">
       <number>0</number>
      </property>
      <property name="horizontalSpacing">
       <number>6</number>
      </property>
      <property name="verticalSpacing">
       <number>3</number>
      </property>
      <item row="0" column="1">
       <widget class="QLineEdit" name="inNickname">
        <property name="minimumSize">
         <size>
          <width>300</width>
          <height>0</height>
         </size>
        </property>
        <property name="maximumSize">
         <size>
          <width>300</width>
          <height>16777215</height>
         </size>
        </property>
       </widget>
      </item>
      <item row="0" column="0">
       <widget class="QLabel" name="label_9">
        <property name="minimumSize">
         <size>
          <width>140</width>
          <height>0</height>
         </size>
        </property>
        <property name="text">
         <string>Nickname:</string>
        </property>
        <property name="alignment">
         <set>Qt::AlignmentFlag::AlignRight|Qt::AlignmentFlag::AlignTrailing|Qt::AlignmentFlag::AlignVCenter</set>
        </property>
       </widget>
      </item>
      <item row="1" column="0">
       <widget class="QLabel" name="label_15">
        <property name="minimumSize">
         <size>
          <width>140</width>
          <height>0</height>
         </size>
        </property>
        <property name="text">
         <string>Connection Type:</string>
        </property>
        <property name="alignment">
         <set>Qt::AlignmentFlag::AlignRight|Qt::AlignmentFlag::AlignTrailing|Qt::AlignmentFlag::AlignVCenter</set>
        </property>
       </widget>
      </item>
      <item row="1" column="1">
       <widget class="QRadioButton" name="radioConnLocal">
        <property name="text">
         <string>Local computer (NVidia GPU required)</string>
        </property>
       </widget>
      </item>
      <item row="2" column="1">
       <widget class="QRadioButton" name="radioConnRemote">
        <property name="text">
         <string>Network connection to GPU server</string>
        </property>
       </widget>
      </item>
      <item row="0" column="2">
       <spacer name="horizontalSpacer_4">
        <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>
    </widget>
   </item>
   <item>
    <widget class="QStackedWidget" name="stackMode">
     <property name="currentIndex">
      <number>0</number>
     </property>
     <widget class="QWidget" name="pageRemote">
      <layout class="QVBoxLayout" name="verticalLayout_2">
       <property name="spacing">
        <number>0</number>
       </property>
       <property name="leftMargin">
        <number>0</number>
       </property>
       <property name="topMargin">
        <number>0</number>
       </property>
       <property name="rightMargin">
        <number>0</number>
       </property>
       <property name="bottomMargin">
        <number>0</number>
       </property>
       <item>
        <widget class="QWidget" name="grpRemote" native="true">
         <layout class="QVBoxLayout" name="verticalLayout_4">
          <property name="spacing">
           <number>12</number>
          </property>
          <property name="leftMargin">
           <number>0</number>
          </property>
          <property name="topMargin">
           <number>0</number>
          </property>
          <property name="rightMargin">
           <number>0</number>
          </property>
          <property name="bottomMargin">
           <number>0</number>
          </property>
          <item>
           <widget class="QWidget" name="grpRemoteMain" native="true">
            <layout class="QGridLayout" name="gridLayout">
             <property name="leftMargin">
              <number>0</number>
             </property>
             <property name="topMargin">
              <number>0</number>
             </property>
             <property name="rightMargin">
              <number>0</number>
             </property>
             <property name="bottomMargin">
              <number>0</number>
             </property>
             <property name="horizontalSpacing">
              <number>6</number>
             </property>
             <property name="verticalSpacing">
              <number>3</number>
             </property>
             <item row="0" column="3">
              <widget class="QSpinBox" name="inPort">
               <property name="minimumSize">
                <size>
                 <width>100</width>
                 <height>0</height>
                </size>
               </property>
               <property name="maximumSize">
                <size>
                 <width>100</width>
                 <height>16777215</height>
                </size>
               </property>
               <property name="maximum">
                <number>99999</number>
               </property>
              </widget>
             </item>
             <item row="2" column="1">
              <spacer name="verticalSpacer_5">
               <property name="orientation">
                <enum>Qt::Orientation::Vertical</enum>
               </property>
               <property name="sizeType">
                <enum>QSizePolicy::Policy::Fixed</enum>
               </property>
               <property name="sizeHint" stdset="0">
                <size>
                 <width>20</width>
                 <height>6</height>
                </size>
               </property>
              </spacer>
             </item>
             <item row="1" column="1">
              <widget class="QLabel" name="outURL">
               <property name="styleSheet">
                <string notr="true">font-size:11px;
color:rgb(96, 96, 96);</string>
               </property>
               <property name="text">
                <string>URL</string>
               </property>
               <property name="openExternalLinks">
                <bool>true</bool>
               </property>
              </widget>
             </item>
             <item row="0" column="1">
              <widget class="QLineEdit" name="inHostname">
               <property name="minimumSize">
                <size>
                 <width>300</width>
                 <height>0</height>
                </size>
               </property>
               <property name="maximumSize">
                <size>
                 <width>300</width>
                 <height>16777215</height>
                </size>
               </property>
              </widget>
             </item>
             <item row="0" column="2">
              <widget class="QLabel" name="lblPort">
               <property name="minimumSize">
                <size>
                 <width>80</width>
                 <height>0</height>
                </size>
               </property>
               <property name="maximumSize">
                <size>
                 <width>80</width>
                 <height>16777215</height>
                </size>
               </property>
               <property name="styleSheet">
                <string notr="true">font-weight:bold;</string>
               </property>
               <property name="text">
                <string>Port:</string>
               </property>
               <property name="alignment">
                <set>Qt::AlignmentFlag::AlignRight|Qt::AlignmentFlag::AlignTrailing|Qt::AlignmentFlag::AlignVCenter</set>
               </property>
              </widget>
             </item>
             <item row="3" column="1" colspan="3">
              <widget class="QCheckBox" name="chkTunnel">
               <property name="text">
                <string>Connect using secure shell (SSH) tunnel</string>
               </property>
              </widget>
             </item>
             <item row="0" column="0">
              <widget class="QLabel" name="lblHostname">
               <property name="minimumSize">
                <size>
                 <width>140</width>
                 <height>0</height>
                </size>
               </property>
               <property name="styleSheet">
                <string notr="true">font-weight:bold;</string>
               </property>
               <property name="text">
                <string>Server:</string>
               </property>
               <property name="alignment">
                <set>Qt::AlignmentFlag::AlignRight|Qt::AlignmentFlag::AlignTrailing|Qt::AlignmentFlag::AlignVCenter</set>
               </property>
              </widget>
             </item>
             <item row="0" column="4">
              <spacer name="horizontalSpacer_6">
               <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>
           </widget>
          </item>
          <item>
           <widget class="QWidget" name="grpSSH" native="true">
            <property name="styleSheet">
             <string notr="true"/>
            </property>
            <layout class="QGridLayout" name="gridLayout_2" columnstretch="0,0,0">
             <property name="leftMargin">
              <number>0</number>
             </property>
             <property name="topMargin">
              <number>0</number>
             </property>
             <property name="rightMargin">
              <number>0</number>
             </property>
             <property name="bottomMargin">
              <number>0</number>
             </property>
             <property name="spacing">
              <number>6</number>
             </property>
             <item row="2" column="1" colspan="2">
              <widget class="QLineEdit" name="inSSHPrivateKey">
               <property name="enabled">
                <bool>false</bool>
               </property>
              </widget>
             </item>
             <item row="2" column="0">
              <widget class="QLabel" name="lblSSHPrivateKey">
               <property name="minimumSize">
                <size>
                 <width>140</width>
                 <height>0</height>
                </size>
               </property>
               <property name="text">
                <string>SSH Private Key:</string>
               </property>
               <property name="alignment">
                <set>Qt::AlignmentFlag::AlignRight|Qt::AlignmentFlag::AlignTrailing|Qt::AlignmentFlag::AlignVCenter</set>
               </property>
              </widget>
             </item>
             <item row="1" column="0">
              <widget class="QLabel" name="lblSSHUsername">
               <property name="minimumSize">
                <size>
                 <width>140</width>
                 <height>0</height>
                </size>
               </property>
               <property name="styleSheet">
                <string notr="true">font-weight:bold;</string>
               </property>
               <property name="text">
                <string>SSH Username:</string>
               </property>
               <property name="alignment">
                <set>Qt::AlignmentFlag::AlignRight|Qt::AlignmentFlag::AlignTrailing|Qt::AlignmentFlag::AlignVCenter</set>
               </property>
              </widget>
             </item>
             <item row="1" column="1">
              <widget class="QLineEdit" name="inSSHUsername">
               <property name="minimumSize">
                <size>
                 <width>300</width>
                 <height>0</height>
                </size>
               </property>
               <property name="maximumSize">
                <size>
                 <width>300</width>
                 <height>16777215</height>
                </size>
               </property>
              </widget>
             </item>
             <item row="1" column="2">
              <spacer name="horizontalSpacer_5">
               <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>
           </widget>
          </item>
          <item>
           <spacer name="verticalSpacer_2">
            <property name="orientation">
             <enum>Qt::Orientation::Vertical</enum>
            </property>
            <property name="sizeHint" stdset="0">
             <size>
              <width>20</width>
              <height>40</height>
             </size>
            </property>
           </spacer>
          </item>
         </layout>
        </widget>
       </item>
      </layout>
     </widget>
     <widget class="QWidget" name="pageLocal">
      <layout class="QVBoxLayout" name="verticalLayout_3">
       <property name="spacing">
        <number>0</number>
       </property>
       <property name="leftMargin">
        <number>0</number>
       </property>
       <property name="topMargin">
        <number>0</number>
       </property>
       <property name="rightMargin">
        <number>0</number>
       </property>
       <property name="bottomMargin">
        <number>0</number>
       </property>
       <item>
        <widget class="QWidget" name="grpLocal" native="true">
         <layout class="QGridLayout" name="gridLayout_4" rowstretch="0,0,0,0,0,0,0,0,0" columnstretch="0,0,0,0,0,0,0">
          <property name="leftMargin">
           <number>0</number>
          </property>
          <property name="topMargin">
           <number>0</number>
          </property>
          <property name="rightMargin">
           <number>0</number>
          </property>
          <property name="bottomMargin">
           <number>0</number>
          </property>
          <property name="horizontalSpacing">
           <number>6</number>
          </property>
          <property name="verticalSpacing">
           <number>3</number>
          </property>
          <item row="6" column="1" colspan="6">
           <widget class="QWidget" name="widget" native="true">
            <layout class="QHBoxLayout" name="horizontalLayout">
             <property name="topMargin">
              <number>6</number>
             </property>
             <property name="bottomMargin">
              <number>6</number>
             </property>
             <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>
             <item>
              <widget class="QPushButton" name="btnConfigurePackages">
               <property name="toolTip">
                <string>This will install (or re-install) the Python packages needed to run the ITK-SNAP deep learning extensions server locally.</string>
               </property>
               <property name="text">
                <string>Setup Python Packages ...</string>
               </property>
              </widget>
             </item>
            </layout>
           </widget>
          </item>
          <item row="2" column="6">
           <widget class="QToolButton" name="btnResetVEnvFolderToDefault">
            <property name="maximumSize">
             <size>
              <width>21</width>
              <height>21</height>
             </size>
            </property>
            <property name="toolTip">
             <string>Use the default location for installing Python packages needed to run the ITK-SNAP deep learning extension server.</string>
            </property>
            <property name="text">
             <string>...</string>
            </property>
            <property name="icon">
             <iconset>
              <normalon>:/root/icons8_reset_16.png</normalon>
             </iconset>
            </property>
           </widget>
          </item>
          <item row="1" column="0" rowspan="2">
           <widget class="QLabel" name="lblPythonVEnv">
            <property name="minimumSize">
             <size>
              <width>140</width>
              <height>0</height>
             </size>
            </property>
            <property name="maximumSize">
             <size>
              <width>140</width>
              <height>16777215</height>
             </size>
            </property>
            <property name="text">
             <string>Package directory:</string>
            </property>
            <property name="alignment">
             <set>Qt::AlignmentFlag::AlignBottom|Qt::AlignmentFlag::AlignRight|Qt::AlignmentFlag::AlignTrailing</set>
            </property>
            <property name="wordWrap">
             <bool>false</bool>
            </property>
           </widget>
          </item>
          <item row="5" column="1">
           <widget class="QCheckBox" name="chkNoSSLVerify">
            <property name="toolTip">
             <string>This will allow the local ITK-SNAP deep learning extension server to download trained models from huggingface.co without SSL certificate verification. Turn on this option if you encounter errors related to invalid or missing SSL certificates.</string>
            </property>
            <property name="text">
             <string>Disable SSL certificate verification</string>
            </property>
           </widget>
          </item>
          <item row="2" column="5">
           <widget class="QToolButton" name="btnFindVEnvFolder">
            <property name="maximumSize">
             <size>
              <width>21</width>
              <height>21</height>
             </size>
            </property>
            <property name="toolTip">
             <string>Select the location where Python packages needed to run the ITK-SNAP deep learning extension server will be installed.</string>
            </property>
            <property name="text">
             <string>...</string>
            </property>
            <property name="icon">
             <iconset>
              <normalon>:/root/icons8_opened_folder_16.png</normalon>
             </iconset>
            </property>
           </widget>
          </item>
          <item row="3" column="1" colspan="5">
           <widget class="QLabel" name="lblPythonVEnvStatus">
            <property name="styleSheet">
             <string notr="true">font-size:11pt;
color: rgb(64, 64, 64);</string>
            </property>
            <property name="text">
             <string>No existing virtual environment found in this folder</string>
            </property>
           </widget>
          </item>
          <item row="0" column="0">
           <widget class="QLabel" name="lblPythonVEnv_2">
            <property name="minimumSize">
             <size>
              <width>140</width>
              <height>0</height>
             </size>
            </property>
            <property name="text">
             <string>Python executable:</string>
            </property>
            <property name="alignment">
             <set>Qt::AlignmentFlag::AlignRight|Qt::AlignmentFlag::AlignTrailing|Qt::AlignmentFlag::AlignVCenter</set>
            </property>
            <property name="wordWrap">
             <bool>true</bool>
            </property>
           </widget>
          </item>
          <item row="0" column="5">
           <widget class="QToolButton" name="btnFindPythonExe">
            <property name="maximumSize">
             <size>
              <width>21</width>
              <height>21</height>
             </size>
            </property>
            <property name="toolTip">
             <string>Select the Python interpreter from a custom location.</string>
            </property>
            <property name="text">
             <string>...</string>
            </property>
            <property name="icon">
             <iconset>
              <normalon>:/root/icons8_opened_folder_16.png</normalon>
             </iconset>
            </property>
           </widget>
          </item>
          <item row="0" column="1" colspan="4">
           <widget class="QComboBox" name="inPythonExe">
            <property name="toolTip">
             <string>Select the Python interpreter that will be used to run the local ITK-SNAP deep learning extensions server.</string>
            </property>
           </widget>
          </item>
          <item row="2" column="1" colspan="4">
           <widget class="QLineEdit" name="inPythonVEnv">
            <property name="toolTip">
             <string>This is the location where Python packages needed to run the ITK-SNAP deep learning extension server will be installed.</string>
            </property>
           </widget>
          </item>
          <item row="4" column="0">
           <spacer name="verticalSpacer_3">
            <property name="orientation">
             <enum>Qt::Orientation::Vertical</enum>
            </property>
            <property name="sizeType">
             <enum>QSizePolicy::Policy::Fixed</enum>
            </property>
            <property name="sizeHint" stdset="0">
             <size>
              <width>20</width>
              <height>10</height>
             </size>
            </property>
           </spacer>
          </item>
          <item row="7" column="0" colspan="7">
           <widget class="QProcessOutputTextWidget" name="txtInstallLog"/>
          </item>
          <item row="8" column="0">
           <spacer name="verticalSpacer">
            <property name="orientation">
             <enum>Qt::Orientation::Vertical</enum>
            </property>
            <property name="sizeHint" stdset="0">
             <size>
              <width>20</width>
              <height>40</height>
             </size>
            </property>
           </spacer>
          </item>
         </layout>
        </widget>
       </item>
      </layout>
     </widget>
    </widget>
   </item>
   <item>
    <spacer name="verticalSpacer_4">
     <property name="orientation">
      <enum>Qt::Orientation::Vertical</enum>
     </property>
     <property name="sizeType">
      <enum>QSizePolicy::Policy::Fixed</enum>
     </property>
     <property name="sizeHint" stdset="0">
      <size>
       <width>20</width>
       <height>2</height>
      </size>
     </property>
    </spacer>
   </item>
  </layout>
 </widget>
 <customwidgets>
  <customwidget>
   <class>QProcessOutputTextWidget</class>
   <extends>QTextEdit</extends>
   <header>QProcessOutputTextWidget.h</header>
  </customwidget>
 </customwidgets>
 <tabstops>
  <tabstop>inSSHUsername</tabstop>
  <tabstop>inSSHPrivateKey</tabstop>
  <tabstop>inPythonExe</tabstop>
  <tabstop>inPythonVEnv</tabstop>
  <tabstop>chkNoSSLVerify</tabstop>
  <tabstop>btnConfigurePackages</tabstop>
  <tabstop>txtInstallLog</tabstop>
 </tabstops>
 <resources/>
 <connections/>
</ui>
