Changeset f66423f


Ignore:
Timestamp:
Apr 15, 2013 10:35:21 AM (15 months ago)
Author:
Kris Moore <kris@…>
Branches:
master, 9.1-release, 9.2-release, releng/10.0, releng/10.0.1, releng/10.0.2
Children:
9bf0d71
Parents:
90a056e
Message:
  • Number of changes to Warden GUI to work with updated backend
    • Allow IP & IPV6 address to be set during creation
    • Enable option to disable boot-strapping PKGNG / PCBSD-Utils
    • Fix up main dialog to understand new "jails" format
Location:
src-qt4
Files:
6 deleted
6 edited

Legend:

Unmodified
Added
Removed
  • src-qt4/warden-gui/dialogwarden.cpp

    r0cfe72f rf66423f  
    4343   listJails->setAllColumnsShowFocus(TRUE); 
    4444 
     45   // Run this a single time, just to be sure we did any jail import / migration 
     46   // from legacy jails 
     47   system("warden list"); 
     48 
    4549   // Hide the identifier column / host column 
    4650   listJails->setColumnHidden(0, true); 
     
    130134void dialogWarden::refreshJails() 
    131135{ 
    132    QString jType, jIPs, jZFS; 
     136   QString jType, jName, jZFS; 
    133137   QStringList jD; 
    134138   QStringList mountOut; 
     
    166170 
    167171       qDebug() << "Checking:" << d[i]; 
     172 
     173       jName = d[i].replace(".meta", "").remove(0, 1); 
    168174            
    169        // Check for the IP of this jail 
    170        QFile fileIP( JailDir + "/" + d[i] + "/ip" ); 
    171        if ( ! fileIP.exists() ) 
    172           continue; 
    173        if ( ! fileIP.open( QIODevice::ReadOnly ) ) 
    174           continue; 
    175        QTextStream streamip( &fileIP ); 
    176        QString jIP; 
    177        while ( !streamip.atEnd() ) 
    178           jIP = streamip.readLine(); // line of text excluding '\n' 
    179        fileIP.close(); 
    180  
    181175       // Check if this jail is created on ZFS 
    182176       jZFS="NO"; 
    183177       for (int z = 0; z < mountOut.size(); ++z) 
    184           if ( mountOut.at(z).indexOf("on " + JailDir + "/" + jIP) != -1 && mountOut.at(z).indexOf("(zfs,") != -1 ) 
     178          if ( mountOut.at(z).indexOf("on " + JailDir + "/" + jName) != -1 && mountOut.at(z).indexOf("(zfs,") != -1 ) 
    185179             jZFS="YES"; 
    186  
    187180 
    188181       // Check for the hostname of this jail 
     
    198191       file.close(); 
    199192             
    200        // Check for additional IPs in this jail 
    201        jIPs = ""; 
    202        QFile fileip(JailDir + "/" + d[i] + "/ip-extra" ); 
    203        if ( fileip.exists() ) { 
    204          if (fileip.open( QIODevice::ReadOnly ) ) { 
    205             QTextStream stream2( &fileip ); 
    206             while ( !stream2.atEnd() ) 
    207               jIPs = jIPs + stream2.readLine().simplified() + " "; // line of text excluding '\n' 
    208          } 
    209          fileip.close(); 
     193       // Build list of IPs for this jail 
     194       QString jIPs = ""; 
     195       QStringList ipFiles; 
     196       ipFiles << "ipv4" << "ipv6"; 
     197       for (int f = 0; f < ipFiles.size(); ++f) { 
     198         QFile fileip(JailDir + "/" + d[i] + "/" + ipFiles.at(f) ); 
     199         if ( fileip.exists() ) { 
     200           if (fileip.open( QIODevice::ReadOnly ) ) { 
     201              QTextStream stream2( &fileip ); 
     202              while ( !stream2.atEnd() ) 
     203                jIPs = jIPs + stream2.readLine().simplified() + " "; // line of text excluding '\n' 
     204           } 
     205           fileip.close(); 
     206         } 
    210207       } 
     208       qDebug() << jIPs; 
    211209 
    212210       // Check the type of jail 
     
    221219       // Display the jail in the tree widget now 
    222220       QStringList cols; 
    223        cols << jIP << jIP << host; 
     221       cols << jName << host; 
    224222 
    225223       QTreeWidgetItem *curItem = new QTreeWidgetItem( listJails, cols ); 
     
    228226 
    229227       // Save additional jail details into list 
    230        jD << jIP << "Pending" << jType << jIPs << "" << "" << "" << jZFS; 
     228       jD << jName << "Pending" << jType << jIPs << "" << "" << "" << jZFS; 
    231229       jailDetails << jD; 
    232230    
     
    305303    } 
    306304 
    307     // Check for additional IPs in this jail 
    308     QString jIPs; 
    309     QFile fileip(JailDir + "/." + currentDetailsWorkingJail + ".meta/ip-extra" ); 
    310     if ( fileip.exists() ) { 
    311       if (fileip.open( QIODevice::ReadOnly ) ) { 
    312          QTextStream stream2( &fileip ); 
    313          while ( !stream2.atEnd() ) 
    314            jIPs = jIPs + stream2.readLine().simplified() + " "; // line of text excluding '\n' 
     305    // Build list of IPs for this jail 
     306    QString jIPs = ""; 
     307    QStringList ipFiles; 
     308    ipFiles << "ipv4" << "ipv6"; 
     309    for (int f = 0; f < ipFiles.size(); ++f) { 
     310       QFile fileip(JailDir + "/." + currentDetailsWorkingJail + ".meta/" + ipFiles.at(f) ); 
     311       if ( fileip.exists() ) { 
     312         if (fileip.open( QIODevice::ReadOnly ) ) { 
     313            QTextStream stream2( &fileip ); 
     314            while ( !stream2.atEnd() ) 
     315             jIPs = jIPs + stream2.readLine().simplified() + " "; // line of text excluding '\n' 
     316         } 
    315317         fileip.close(); 
    316       } 
    317     } 
     318       } 
     319    } 
     320    qDebug() << "Found IPS:" << jIPs; 
    318321 
    319322    // Save the new jail IPs 
     
    582585                running = true; 
    583586                (*it)->setIcon(1, QIcon(":running.png")); 
    584                 (*it)->setText(3, "Running"); 
     587                (*it)->setText(2, "Running"); 
    585588            } else { 
    586589                running = false; 
    587590                (*it)->setIcon(1, QIcon(":stopped.png")); 
    588                 (*it)->setText(3, "Not Running"); 
     591                (*it)->setText(2, "Not Running"); 
    589592            } 
    590593 
     
    625628    if ( listJails->currentItem()) { 
    626629          popupip = listJails->currentItem()->text(0); 
    627           Status = listJails->currentItem()->text(3); 
    628           Updates = listJails->currentItem()->text(4); 
     630          Status = listJails->currentItem()->text(2); 
     631          Updates = listJails->currentItem()->text(3); 
    629632          popup = new QMenu(); 
    630633          if ( Status == "Running" ) 
     
    687690 
    688691        // If jail is running, lets stop it 
    689         if ( listJails->currentItem()->text(3) == "Running" ) { 
     692        if ( listJails->currentItem()->text(2) == "Running" ) { 
    690693           slotStopJail(); 
    691694           return; 
     
    898901      newJailWizard->setHostIPUsed(uH, uI); 
    899902       
    900       connect( newJailWizard, SIGNAL(create(const QString &, const QString &, bool, const QString &, bool, bool, bool, bool, const QString &)), this, SLOT(slotCreateNewJail(const QString &, const QString &, bool, const QString &, bool, bool, bool, bool, const QString &) ) ); 
     903      connect( newJailWizard, SIGNAL(create(const QString &, const QString &, const QString &, bool, bool, const QString &, bool, bool, bool, bool, const QString &)), this, SLOT(slotCreateNewJail(const QString &, const QString &, const QString &, bool, bool, const QString &, bool, bool, bool, bool, const QString &) ) ); 
    901904      newJailWizard->show(); 
    902905} 
    903906 
    904907 
    905 void dialogWarden::slotCreateNewJail( const QString &IP, const QString &host, bool tradjail, const QString &rootpw, bool src, bool ports, bool autostart, bool linuxJail, const QString &linuxScript ) 
     908void dialogWarden::slotCreateNewJail( const QString &IP, const QString &IP6, const QString &host, bool tradjail, bool PCUtils, const QString &rootpw, bool src, bool ports, bool autostart, bool linuxJail, const QString &linuxScript ) 
    906909{ 
    907910    if ( tradjail || linuxJail ) 
     
    910913      newRootPW=""; 
    911914     
    912     newIP=IP; 
     915    newHost=host; 
    913916 
    914917    /*********************************************************************************************************************** 
     
    927930      QString program = "warden"; 
    928931      QStringList args; 
    929       args << "create" << IP << host; 
     932      args << "create" << host; 
    930933 
    931934      // Set our optional flags 
     935      if ( ! IP.isEmpty() ) { 
     936        args << "--ipv4"; 
     937        args << IP; 
     938      } 
     939 
     940      if ( ! IP6.isEmpty() ) { 
     941        args << "--ipv6"; 
     942        args << IP6; 
     943      } 
     944 
     945      if ( tradjail && ! PCUtils ) 
     946        args << "--vanilla"; 
     947 
    932948      if ( ! tradjail && ! linuxJail ) 
    933949        args << "--portjail"; 
     
    944960      if ( autostart ) 
    945961        args << "--startauto"; 
    946        
     962 
    947963      // Connect the exited signal and start the process  
    948964      createJailProc->setProcessChannelMode(QProcess::MergedChannels); 
     
    976992    QString program = ProgDir + "/scripts/backend/setupusers.sh"; 
    977993    QStringList args; 
    978     args << newIP << newRootPW; 
     994    args << newHost << newRootPW; 
    979995       
    980996    // Connect the exited signal and start the process  
     
    13641380   //pushStart->setEnabled(false); 
    13651381 
    1366    if ( listJails->currentItem()->text(3) == "Running" ) { 
     1382   if ( listJails->currentItem()->text(2) == "Running" ) { 
    13671383     //pushStart->setEnabled(true); 
    13681384     pushTerminal->setEnabled(true); 
     
    13711387     pushStart->setToolTip(tr("Stop the selected jail")); 
    13721388   } 
    1373    if ( listJails->currentItem()->text(3) == "Not Running" ) { 
     1389   if ( listJails->currentItem()->text(2) == "Not Running" ) { 
    13741390     //pushStart->setEnabled(true); 
    13751391     pushTerminal->setEnabled(false); 
  • src-qt4/warden-gui/dialogwarden.h

    r0cfe72f rf66423f  
    5454    void slotReadPkgsOutput(); 
    5555    void slotClickedNewJail(); 
    56     void slotCreateNewJail( const QString &, const QString &, bool, const QString &, bool, bool, bool, bool, const QString & ); 
     56    void slotCreateNewJail( const QString &, const QString &, const QString &, bool, bool, const QString &, bool, bool, bool, bool, const QString & ); 
    5757    void slotReadCreateOutput(); 
    5858    void slotFinishedJailCreate(); 
     
    124124    wizardNewJail *newJailWizard; 
    125125    QProcess *createJailProc; 
    126     QString newIP; 
    127126    QString newHost; 
    128127    bool newSrc; 
  • src-qt4/warden-gui/dialogwarden.ui

    r1f0939e rf66423f  
    166166                   <widget class="QLabel" name="label_7"> 
    167167                    <property name="text"> 
    168                      <string>Additional IPs:</string> 
     168                     <string>IPs:</string> 
    169169                    </property> 
    170170                   </widget> 
     
    867867          <property name="text"> 
    868868           <string notr="true">Jail</string> 
    869           </property> 
    870          </column> 
    871          <column> 
    872           <property name="text"> 
    873            <string notr="true">Hostname</string> 
    874869          </property> 
    875870         </column> 
  • src-qt4/warden-gui/wizardNewJail.cpp

    r0cfe72f rf66423f  
    2222    connect(lineRoot2, SIGNAL(textChanged ( const QString & )), this, SLOT(slotCheckComplete() ) ); 
    2323    connect(lineIP, SIGNAL(textChanged ( const QString & )), this, SLOT(slotCheckComplete() ) ); 
     24    connect(lineIP6, SIGNAL(textChanged ( const QString & )), this, SLOT(slotCheckComplete() ) ); 
     25    connect(checkIPv4, SIGNAL(clicked()), this, SLOT(slotCheckChecks())); 
     26    connect(checkIPv6, SIGNAL(clicked()), this, SLOT(slotCheckChecks())); 
    2427    connect(lineHost, SIGNAL(textChanged ( const QString & )), this, SLOT(slotCheckComplete() ) ); 
    2528    connect(lineLinuxScript, SIGNAL(textChanged ( const QString & )), this, SLOT(slotCheckComplete() ) ); 
    2629    connect(pushLinuxScript, SIGNAL(clicked()), this, SLOT(slotSelectLinuxScript()) ); 
    2730    connect(this, SIGNAL(currentIdChanged(int)), this, SLOT(slotCheckComplete()) ); 
     31} 
     32 
     33void wizardNewJail::slotCheckChecks() 
     34{ 
     35   if ( checkIPv4->isChecked() ) 
     36      lineIP->setEnabled(true); 
     37   else 
     38      lineIP->setEnabled(false); 
     39 
     40   if ( checkIPv6->isChecked() ) 
     41      lineIP6->setEnabled(true); 
     42   else 
     43      lineIP6->setEnabled(false); 
     44 
     45   slotCheckComplete(); 
    2846} 
    2947 
     
    3654void wizardNewJail::accept() 
    3755{ 
     56    QString ip4, ip6; 
     57    if ( checkIPv4->isChecked() ) 
     58       ip4 = lineIP->text(); 
     59    if ( checkIPv6->isChecked() ) 
     60       ip6 = lineIP6->text(); 
    3861     
    39     emit create(lineIP->text(), lineHost->text(), radioTraditionalJail->isChecked(), 
     62    emit create(ip4, ip6, lineHost->text(), radioTraditionalJail->isChecked(), checkPCBSDUtils->isChecked(), 
    4063                lineRoot->text(), checkSystemSource->isChecked(), checkPortsTree->isChecked(), 
    4164                checkAutostart->isChecked(), radioLinuxJail->isChecked(), lineLinuxScript->text()); 
     
    6689     case Page_IP: 
    6790         // Make sure items are not empty 
    68          if ( lineIP->text().isEmpty() ) { 
     91         if ( checkIPv4->isChecked() && lineIP->text().isEmpty() ) { 
     92            button(QWizard::NextButton)->setEnabled(false); 
     93            return false; 
     94         } 
     95         if ( checkIPv6->isChecked() && lineIP6->text().isEmpty() ) { 
    6996            button(QWizard::NextButton)->setEnabled(false); 
    7097            return false; 
  • src-qt4/warden-gui/wizardNewJail.h

    r1f0939e rf66423f  
    2525    void slotClose(); 
    2626    void slotCheckComplete(); 
     27    void slotCheckChecks(); 
    2728    void slotSelectLinuxScript(); 
    2829 
     
    3334 
    3435signals: 
    35      void create(const QString &, const QString &, bool, const QString &,  bool, bool, bool, bool, const QString &); 
     36     void create(const QString &, const QString &, const QString &, bool, bool, const QString &,  bool, bool, bool, bool, const QString &); 
    3637} ; 
    3738#endif // WIZARDCREATEJAIL_H 
  • src-qt4/warden-gui/wizardNewJail.ui

    r1f0939e rf66423f  
    1515  </property> 
    1616  <widget class="QWizardPage" name="Page_IP"> 
    17    <layout class="QGridLayout" name="gridLayout_2"> 
    18     <item row="3" column="1"> 
    19      <layout class="QGridLayout" name="gridLayout"> 
    20       <item row="0" column="0"> 
    21        <spacer name="horizontalSpacer"> 
    22         <property name="orientation"> 
    23          <enum>Qt::Horizontal</enum> 
    24         </property> 
    25         <property name="sizeType"> 
    26          <enum>QSizePolicy::Minimum</enum> 
    27         </property> 
    28         <property name="sizeHint" stdset="0"> 
    29          <size> 
    30           <width>40</width> 
    31           <height>58</height> 
    32          </size> 
    33         </property> 
    34        </spacer> 
    35       </item> 
    36       <item row="1" column="1"> 
    37        <spacer name="verticalSpacer_4"> 
     17   <layout class="QGridLayout" name="gridLayout_9"> 
     18    <item row="0" column="0" rowspan="6"> 
     19     <layout class="QVBoxLayout" name="verticalLayout_3"> 
     20      <item> 
     21       <widget class="QLabel" name="label_2"> 
     22        <property name="sizePolicy"> 
     23         <sizepolicy hsizetype="Fixed" vsizetype="Fixed"> 
     24          <horstretch>0</horstretch> 
     25          <verstretch>0</verstretch> 
     26         </sizepolicy> 
     27        </property> 
     28        <property name="maximumSize"> 
     29         <size> 
     30          <width>55</width> 
     31          <height>55</height> 
     32         </size> 
     33        </property> 
     34        <property name="text"> 
     35         <string/> 
     36        </property> 
     37        <property name="pixmap"> 
     38         <pixmap resource="warden.qrc">:/cell.png</pixmap> 
     39        </property> 
     40        <property name="scaledContents"> 
     41         <bool>true</bool> 
     42        </property> 
     43        <property name="alignment"> 
     44         <set>Qt::AlignCenter</set> 
     45        </property> 
     46       </widget> 
     47      </item> 
     48      <item> 
     49       <spacer name="verticalSpacer_10"> 
    3850        <property name="orientation"> 
    3951         <enum>Qt::Vertical</enum> 
     
    4759       </spacer> 
    4860      </item> 
    49       <item row="0" column="1"> 
    50        <layout class="QVBoxLayout" name="verticalLayout"> 
    51         <item> 
    52          <widget class="QLabel" name="textLabel1"> 
    53           <property name="text"> 
    54            <string>IP Address</string> 
    55           </property> 
    56           <property name="alignment"> 
    57            <set>Qt::AlignCenter</set> 
    58           </property> 
    59           <property name="wordWrap"> 
    60            <bool>false</bool> 
    61           </property> 
    62          </widget> 
    63         </item> 
    64         <item> 
    65          <widget class="QLineEdit" name="lineIP"> 
    66           <property name="inputMask"> 
    67            <string notr="true"/> 
    68           </property> 
    69           <property name="alignment"> 
    70            <set>Qt::AlignHCenter</set> 
    71           </property> 
    72          </widget> 
    73         </item> 
    74         <item> 
    75          <widget class="QLabel" name="textLabel1_2"> 
    76           <property name="text"> 
    77            <string>Hostname</string> 
    78           </property> 
    79           <property name="alignment"> 
    80            <set>Qt::AlignCenter</set> 
    81           </property> 
    82           <property name="wordWrap"> 
    83            <bool>false</bool> 
    84           </property> 
    85          </widget> 
    86         </item> 
    87         <item> 
    88          <widget class="QLineEdit" name="lineHost"> 
    89           <property name="text"> 
    90            <string>Jailbird</string> 
    91           </property> 
    92           <property name="alignment"> 
    93            <set>Qt::AlignHCenter</set> 
    94           </property> 
    95          </widget> 
    96         </item> 
    97        </layout> 
    98       </item> 
    99       <item row="0" column="2"> 
    100        <spacer name="horizontalSpacer_3"> 
    101         <property name="orientation"> 
    102          <enum>Qt::Horizontal</enum> 
    103         </property> 
    104         <property name="sizeType"> 
    105          <enum>QSizePolicy::Minimum</enum> 
    106         </property> 
    107         <property name="sizeHint" stdset="0"> 
    108          <size> 
    109           <width>40</width> 
    110           <height>20</height> 
    111          </size> 
    112         </property> 
    113        </spacer> 
    114       </item> 
    11561     </layout> 
    11662    </item> 
    117     <item row="2" column="1"> 
    118      <spacer name="verticalSpacer_3"> 
    119       <property name="orientation"> 
    120        <enum>Qt::Vertical</enum> 
    121       </property> 
    122       <property name="sizeType"> 
    123        <enum>QSizePolicy::Fixed</enum> 
    124       </property> 
    125       <property name="sizeHint" stdset="0"> 
    126        <size> 
    127         <width>418</width> 
    128         <height>25</height> 
    129        </size> 
    130       </property> 
    131      </spacer> 
    132     </item> 
    133     <item row="1" column="2" rowspan="3"> 
    134      <spacer name="horizontalSpacer_2"> 
    135       <property name="orientation"> 
    136        <enum>Qt::Horizontal</enum> 
    137       </property> 
    138       <property name="sizeType"> 
    139        <enum>QSizePolicy::Fixed</enum> 
    140       </property> 
    141       <property name="sizeHint" stdset="0"> 
    142        <size> 
    143         <width>17</width> 
    144         <height>256</height> 
    145        </size> 
    146       </property> 
    147      </spacer> 
    148     </item> 
    149     <item row="1" column="1"> 
     63    <item row="0" column="1" colspan="2"> 
     64     <spacer name="verticalSpacer"> 
     65      <property name="orientation"> 
     66       <enum>Qt::Vertical</enum> 
     67      </property> 
     68      <property name="sizeType"> 
     69       <enum>QSizePolicy::Fixed</enum> 
     70      </property> 
     71      <property name="sizeHint" stdset="0"> 
     72       <size> 
     73        <width>387</width> 
     74        <height>18</height> 
     75       </size> 
     76      </property> 
     77     </spacer> 
     78    </item> 
     79    <item row="1" column="1" colspan="2"> 
    15080     <widget class="QLabel" name="label"> 
    15181      <property name="sizePolicy"> 
     
    15686      </property> 
    15787      <property name="text"> 
    158        <string>This wizard will walk you through creating a new jail. First, enter the new IP address and hostname and click next to continue.</string> 
     88       <string>This wizard will walk you through creating a new jail. First, enter the hostname and any IP address then click next to continue.</string> 
    15989      </property> 
    16090      <property name="alignment"> 
     
    16696     </widget> 
    16797    </item> 
    168     <item row="0" column="1"> 
    169      <spacer name="verticalSpacer"> 
    170       <property name="orientation"> 
    171        <enum>Qt::Vertical</enum> 
    172       </property> 
    173       <property name="sizeType"> 
    174        <enum>QSizePolicy::Fixed</enum> 
    175       </property> 
    176       <property name="sizeHint" stdset="0"> 
    177        <size> 
    178         <width>387</width> 
    179         <height>18</height> 
    180        </size> 
    181       </property> 
    182      </spacer> 
    183     </item> 
    184     <item row="0" column="0" rowspan="6"> 
    185      <layout class="QVBoxLayout" name="verticalLayout_3"> 
    186       <item> 
    187        <widget class="QLabel" name="label_2"> 
    188         <property name="sizePolicy"> 
    189          <sizepolicy hsizetype="Fixed" vsizetype="Fixed"> 
    190           <horstretch>0</horstretch> 
    191           <verstretch>0</verstretch> 
    192          </sizepolicy> 
    193         </property> 
    194         <property name="maximumSize"> 
    195          <size> 
    196           <width>55</width> 
    197           <height>55</height> 
    198          </size> 
    199         </property> 
    200         <property name="text"> 
    201          <string/> 
    202         </property> 
    203         <property name="pixmap"> 
    204          <pixmap resource="warden.qrc">:/cell.png</pixmap> 
    205         </property> 
    206         <property name="scaledContents"> 
    207          <bool>true</bool> 
    208         </property> 
    209         <property name="alignment"> 
    210          <set>Qt::AlignCenter</set> 
    211         </property> 
    212        </widget> 
    213       </item> 
    214       <item> 
    215        <spacer name="verticalSpacer_10"> 
     98    <item row="1" column="3" rowspan="3"> 
     99     <spacer name="horizontalSpacer_2"> 
     100      <property name="orientation"> 
     101       <enum>Qt::Horizontal</enum> 
     102      </property> 
     103      <property name="sizeType"> 
     104       <enum>QSizePolicy::Fixed</enum> 
     105      </property> 
     106      <property name="sizeHint" stdset="0"> 
     107       <size> 
     108        <width>17</width> 
     109        <height>256</height> 
     110       </size> 
     111      </property> 
     112     </spacer> 
     113    </item> 
     114    <item row="2" column="1" colspan="2"> 
     115     <spacer name="verticalSpacer_3"> 
     116      <property name="orientation"> 
     117       <enum>Qt::Vertical</enum> 
     118      </property> 
     119      <property name="sizeType"> 
     120       <enum>QSizePolicy::Fixed</enum> 
     121      </property> 
     122      <property name="sizeHint" stdset="0"> 
     123       <size> 
     124        <width>418</width> 
     125        <height>25</height> 
     126       </size> 
     127      </property> 
     128     </spacer> 
     129    </item> 
     130    <item row="3" column="2"> 
     131     <layout class="QGridLayout" name="gridLayout_2"> 
     132      <item row="0" column="0"> 
     133       <spacer name="horizontalSpacer"> 
     134        <property name="orientation"> 
     135         <enum>Qt::Horizontal</enum> 
     136        </property> 
     137        <property name="sizeType"> 
     138         <enum>QSizePolicy::Minimum</enum> 
     139        </property> 
     140        <property name="sizeHint" stdset="0"> 
     141         <size> 
     142          <width>40</width> 
     143          <height>58</height> 
     144         </size> 
     145        </property> 
     146       </spacer> 
     147      </item> 
     148      <item row="0" column="1"> 
     149       <layout class="QGridLayout" name="gridLayout"> 
     150        <item row="0" column="0"> 
     151         <widget class="QLabel" name="textLabel1_2"> 
     152          <property name="text"> 
     153           <string>Hostname</string> 
     154          </property> 
     155          <property name="alignment"> 
     156           <set>Qt::AlignCenter</set> 
     157          </property> 
     158          <property name="wordWrap"> 
     159           <bool>false</bool> 
     160          </property> 
     161         </widget> 
     162        </item> 
     163        <item row="4" column="0"> 
     164         <widget class="QLineEdit" name="lineIP"> 
     165          <property name="enabled"> 
     166           <bool>true</bool> 
     167          </property> 
     168          <property name="inputMask"> 
     169           <string notr="true"/> 
     170          </property> 
     171          <property name="alignment"> 
     172           <set>Qt::AlignHCenter</set> 
     173          </property> 
     174         </widget> 
     175        </item> 
     176        <item row="3" column="0"> 
     177         <widget class="QCheckBox" name="checkIPv4"> 
     178          <property name="text"> 
     179           <string>IPv4 Address</string> 
     180          </property> 
     181          <property name="checked"> 
     182           <bool>true</bool> 
     183          </property> 
     184         </widget> 
     185        </item> 
     186        <item row="1" column="0"> 
     187         <widget class="QLineEdit" name="lineHost"> 
     188          <property name="text"> 
     189           <string>Jailbird</string> 
     190          </property> 
     191          <property name="alignment"> 
     192           <set>Qt::AlignHCenter</set> 
     193          </property> 
     194         </widget> 
     195        </item> 
     196        <item row="5" column="0"> 
     197         <widget class="QCheckBox" name="checkIPv6"> 
     198          <property name="text"> 
     199           <string>IPv6 Address</string> 
     200          </property> 
     201         </widget> 
     202        </item> 
     203        <item row="6" column="0"> 
     204         <widget class="QLineEdit" name="lineIP6"> 
     205          <property name="enabled"> 
     206           <bool>false</bool> 
     207          </property> 
     208         </widget> 
     209        </item> 
     210        <item row="2" column="0"> 
     211         <spacer name="verticalSpacer_23"> 
     212          <property name="orientation"> 
     213           <enum>Qt::Vertical</enum> 
     214          </property> 
     215          <property name="sizeHint" stdset="0"> 
     216           <size> 
     217            <width>20</width> 
     218            <height>40</height> 
     219           </size> 
     220          </property> 
     221         </spacer> 
     222        </item> 
     223       </layout> 
     224      </item> 
     225      <item row="0" column="2"> 
     226       <spacer name="horizontalSpacer_3"> 
     227        <property name="orientation"> 
     228         <enum>Qt::Horizontal</enum> 
     229        </property> 
     230        <property name="sizeType"> 
     231         <enum>QSizePolicy::Minimum</enum> 
     232        </property> 
     233        <property name="sizeHint" stdset="0"> 
     234         <size> 
     235          <width>40</width> 
     236          <height>20</height> 
     237         </size> 
     238        </property> 
     239       </spacer> 
     240      </item> 
     241      <item row="1" column="1"> 
     242       <spacer name="verticalSpacer_4"> 
    216243        <property name="orientation"> 
    217244         <enum>Qt::Vertical</enum> 
     
    220247         <size> 
    221248          <width>20</width> 
    222           <height>40</height> 
     249          <height>17</height> 
    223250         </size> 
    224251        </property> 
     
    227254     </layout> 
    228255    </item> 
    229     <item row="5" column="1"> 
     256    <item row="5" column="1" colspan="2"> 
    230257     <spacer name="verticalSpacer_2"> 
    231258      <property name="orientation"> 
     
    240267     </spacer> 
    241268    </item> 
    242     <item row="4" column="1"> 
     269    <item row="4" column="1" colspan="2"> 
    243270     <widget class="QLabel" name="labelMessage"> 
    244271      <property name="text"> 
     
    372399      </property> 
    373400      <layout class="QGridLayout" name="gridLayout_3"> 
     401       <item row="0" column="0"> 
     402        <widget class="QRadioButton" name="radioTraditionalJail"> 
     403         <property name="text"> 
     404          <string>Traditional Jail (Secure, best for services)</string> 
     405         </property> 
     406         <property name="checked"> 
     407          <bool>true</bool> 
     408         </property> 
     409        </widget> 
     410       </item> 
    374411       <item row="1" column="0"> 
     412        <layout class="QHBoxLayout" name="horizontalLayout_2"> 
     413         <item> 
     414          <spacer name="horizontalSpacer_10"> 
     415           <property name="orientation"> 
     416            <enum>Qt::Horizontal</enum> 
     417           </property> 
     418           <property name="sizeType"> 
     419            <enum>QSizePolicy::Fixed</enum> 
     420           </property> 
     421           <property name="sizeHint" stdset="0"> 
     422            <size> 
     423             <width>20</width> 
     424             <height>20</height> 
     425            </size> 
     426           </property> 
     427          </spacer> 
     428         </item> 
     429         <item> 
     430          <widget class="QCheckBox" name="checkPCBSDUtils"> 
     431           <property name="text"> 
     432            <string>Install PKGNG and PC-BSD utilities</string> 
     433           </property> 
     434           <property name="checked"> 
     435            <bool>true</bool> 
     436           </property> 
     437          </widget> 
     438         </item> 
     439        </layout> 
     440       </item> 
     441       <item row="2" column="0"> 
    375442        <widget class="QRadioButton" name="radioPortsJail"> 
    376443         <property name="text"> 
     
    379446        </widget> 
    380447       </item> 
    381        <item row="0" column="0"> 
    382         <widget class="QRadioButton" name="radioTraditionalJail"> 
    383          <property name="text"> 
    384           <string>Traditional Jail (Secure, best for server applications)</string> 
    385          </property> 
    386          <property name="checked"> 
    387           <bool>true</bool> 
    388          </property> 
    389         </widget> 
    390        </item> 
    391        <item row="2" column="0"> 
     448       <item row="3" column="0"> 
    392449        <widget class="QRadioButton" name="radioLinuxJail"> 
    393450         <property name="text"> 
Note: See TracChangeset for help on using the changeset viewer.