[PC-BSD Commits] r7690 - pcbsd/current/src-qt4/pc-sysmanager

svn at pcbsd.org svn at pcbsd.org
Fri Oct 1 13:32:14 PDT 2010


Author: kris
Date: 2010-10-01 13:32:14 -0700 (Fri, 01 Oct 2010)
New Revision: 7690

Added:
   pcbsd/current/src-qt4/pc-sysmanager/systemupdates.cpp
   pcbsd/current/src-qt4/pc-sysmanager/updaterDialog.cpp
   pcbsd/current/src-qt4/pc-sysmanager/updaterDialog.h
   pcbsd/current/src-qt4/pc-sysmanager/updaterDialog.ui
   pcbsd/current/src-qt4/pc-sysmanager/view-refresh.png
Modified:
   pcbsd/current/src-qt4/pc-sysmanager/PBSystem.qrc
   pcbsd/current/src-qt4/pc-sysmanager/main.cpp
   pcbsd/current/src-qt4/pc-sysmanager/pbsystemtab.cpp
   pcbsd/current/src-qt4/pc-sysmanager/pbsystemtab.h
   pcbsd/current/src-qt4/pc-sysmanager/pbsystemtab.ui
   pcbsd/current/src-qt4/pc-sysmanager/pc-sysmanager.pro
Log:

Update pc-sysmanager, add new tab for configuring mirror settings, and
moved system updates here, since it makes sense for system updates to be here, not
the "software manager". 



Modified: pcbsd/current/src-qt4/pc-sysmanager/PBSystem.qrc
===================================================================
--- pcbsd/current/src-qt4/pc-sysmanager/PBSystem.qrc	2010-10-01 18:18:19 UTC (rev 7689)
+++ pcbsd/current/src-qt4/pc-sysmanager/PBSystem.qrc	2010-10-01 20:32:14 UTC (rev 7690)
@@ -1,5 +1,6 @@
 <RCC>
   <qresource>
+    <file>view-refresh.png</file>
     <file>arrow-left.png</file>
     <file>arrow-right.png</file>
     <file>NewLogoSmall.png</file>

Modified: pcbsd/current/src-qt4/pc-sysmanager/main.cpp
===================================================================
--- pcbsd/current/src-qt4/pc-sysmanager/main.cpp	2010-10-01 18:18:19 UTC (rev 7689)
+++ pcbsd/current/src-qt4/pc-sysmanager/main.cpp	2010-10-01 20:32:14 UTC (rev 7690)
@@ -32,12 +32,15 @@
      a.setFont( f);
    }
     
-   QString Tmp = a.argv()[1];
  
    PBSystemTab w;
 
    w.ProgramInit();
 
+   QString Tmp = a.argv()[1];
+   if ( Tmp == "-updates" )
+     w.changeOpenTab(1);
+
    w.show();
    a.connect( &a, SIGNAL( lastWindowClosed() ), &a, SLOT( quit() ) );
    return a.exec();

Modified: pcbsd/current/src-qt4/pc-sysmanager/pbsystemtab.cpp
===================================================================
--- pcbsd/current/src-qt4/pc-sysmanager/pbsystemtab.cpp	2010-10-01 18:18:19 UTC (rev 7689)
+++ pcbsd/current/src-qt4/pc-sysmanager/pbsystemtab.cpp	2010-10-01 20:32:14 UTC (rev 7690)
@@ -14,13 +14,14 @@
 #include <cvsupprogress.h>
 #include <qfiledialog.h>
 #include <QTextStream>
+#include <QNetworkAccessManager>
+#include <QNetworkReply>
+#include <QDebug>
+
 #include "pbsystemtab.h"
 
 void PBSystemTab::ProgramInit()
 {
-    buttonOk->setEnabled(FALSE);
-    buttonOk->setHidden(TRUE);
-    
     //Grab the username
     username = QString::fromLocal8Bit(getenv("LOGNAME"));
     
@@ -42,16 +43,74 @@
     //loadServSettings();
     //Load boot screen data
     loadBootData();
+
+    // Load the mirror configuration
+    loadMirrorConfig();
   
     // Connect our various buttons
-    connect( buttonGenerate, SIGNAL(clicked()), this, SLOT(startGenerateSheet()) );
+    connect(buttonGenerate, SIGNAL(clicked()), this, SLOT(startGenerateSheet()) );
     connect(checkKernATAPI, SIGNAL(clicked()), this, SIGNAL(changed()));
     connect(checkKernDelay, SIGNAL(valueChanged(int)), this, SIGNAL(changed()));
     connect(showBootCheck, SIGNAL(clicked()), this, SIGNAL(changed()));
     connect(splashSelect, SIGNAL(activated(int)), this, SIGNAL(changed()));
+    connect(pushRefreshList, SIGNAL( clicked() ), this, SLOT( slotUpdateMirrorList() ) );
+    connect(pushSave, SIGNAL( clicked() ), this, SLOT( slotSave() ) );
+    connect(pushClose, SIGNAL( clicked() ), this, SLOT( slotClose() ) );
+
+    // Connect the mirror radio buttons, so we can enable disable objects based on status
+    connect(radioSelectMirror, SIGNAL( clicked() ), this, SLOT( slotCheckMirrorRadio() ) );
+    connect(radioCustomMirror, SIGNAL( clicked() ), this, SLOT( slotCheckMirrorRadio() ) );
+
+    initSystemUpdates();
+
 }
 
 
+void PBSystemTab::loadMirrorConfig()
+{
+
+  QSettings settings("PCBSD");
+  QString tmp;
+
+  // Get the current mirror
+  currentMirror = Utils::getMasterMirror();
+
+  // Load our array of mirrors
+  comboMirrorList->clear();
+  bool foundMirror = false;
+  bool usingMirrorList = false;
+  QString MirrorName, MirrorURL;
+
+  int size = settings.beginReadArray("/PC-BSD/SoftwareManager/mirrorList");
+  for (int i = 0; i < size; ++i) {
+     foundMirror = true;
+     settings.setArrayIndex(i);
+     MirrorName = settings.value("MirrorName").toString();
+     MirrorURL = settings.value("MirrorURL").toString();
+     comboMirrorList->addItem( MirrorName );
+     mirrorNames[i] = MirrorName;
+     mirrorURLs[i] = MirrorURL;
+     if ( currentMirror == MirrorURL ) {
+       comboMirrorList->setCurrentIndex(i);
+       radioSelectMirror->setChecked(true);
+       usingMirrorList = true;
+     }
+  }
+                
+  settings.endArray();
+
+  // If our mirror list is empty, start a refresh of it now
+  if (!foundMirror)
+     slotUpdateMirrorList();
+  
+  // Check if we found a mirror in the PC-BSD list, otherwise default to custom mirror
+  if (!usingMirrorList) {
+      radioCustomMirror->setChecked(true);
+      lineCustomMirror->setText(currentMirror);
+  }
+
+}
+
 void PBSystemTab::CheckUname()
 {
 	QString prog = "uname";
@@ -463,4 +522,164 @@
     }
 }
 
+void PBSystemTab::slotUpdateMirrorList() {
+  // Fetch from here http://updates.pcbsd.org/mirror-list.php
+  QString URL, LFILE;
+  URL= "http://updates.pcbsd.org/mirror-list.php";
 
+  mirrorJob = new QNetworkAccessManager(this);
+  mirrorJobBuf.clear();
+    
+  QNetworkRequest netRequest;
+  netRequest.setUrl(QUrl(URL));
+  mirrorReply = mirrorJob->get(netRequest);
+   
+  connect(mirrorJob, SIGNAL(finished(QNetworkReply *)), this, SLOT(slotRefreshMirrorDone() ) );
+  connect(mirrorReply, SIGNAL(readyRead()), this, SLOT(slotGetMirrorData() ) );
+}
+
+void PBSystemTab::slotGetMirrorData() {
+        //while (mirrorReply->canReadLine() )
+        //        mirrorJobBuf << mirrorReply->readLine().simplified();
+
+        mirrorJobBuf = mirrorJobBuf + mirrorReply->readAll();
+}
+
+void PBSystemTab::slotRefreshMirrorDone() {
+   QString MirrorName, MirrorURL, tmp;
+
+
+   if (mirrorReply->error() != QNetworkReply::NoError)
+   {
+      QMessageBox::critical( 0, tr("Refresh Mirrors"), tr("Error fetching mirror list! Check your internet connection, or try again later."), QMessageBox::Ok );
+        return;
+   }
+
+   QStringList mirrorList;
+   mirrorList = mirrorJobBuf.split("\n");
+   qDebug() << "Avail Mirrors:" << mirrorList;
+   // Clear the combo box  
+   comboMirrorList->clear();
+   int i = 0;
+
+   QString line;
+   for ( int z = 0; z < mirrorList.size(); z++ ) {
+     line = mirrorList.at(z);
+
+     tmp = line;
+     tmp.truncate(line.indexOf("=") -1 );
+     MirrorName = tmp;
+     MirrorURL = line.remove(0, line.indexOf("=") + 1);
+     mirrorNames[i] = MirrorName;
+     mirrorURLs[i] = MirrorURL.simplified();
+     comboMirrorList->addItem( MirrorName );
+
+     if ( currentMirror == MirrorURL )
+        comboMirrorList->setCurrentIndex(i);
+
+     i++;
+   }
+
+   // Close the array
+   mirrorNames[i] = "";
+   mirrorURLs[i] = "";
+
+   QSettings settings("PCBSD");
+   settings.beginWriteArray("/PC-BSD/SoftwareManager/mirrorList");
+   i = 0;
+   while ( !mirrorNames[i].isEmpty() )
+   {
+      settings.setArrayIndex(i);
+      settings.setValue("MirrorName", mirrorNames[i]);
+      settings.setValue("MirrorURL", mirrorURLs[i].simplified());
+      i++;
+   }
+
+   settings.endArray(); 
+}
+
+
+void PBSystemTab::slotCheckMirrorRadio() {
+
+    if( radioSelectMirror->isChecked() )
+    {
+      comboMirrorList->setEnabled(true);
+      pushRefreshList->setEnabled(true);
+      lineCustomMirror->setEnabled(false);
+    }
+    if( radioCustomMirror->isChecked() )
+    {
+      comboMirrorList->setEnabled(false);
+      pushRefreshList->setEnabled(false);
+      lineCustomMirror->setEnabled(true);
+    }
+}
+
+void PBSystemTab::slotSave() {
+    saveMirrorConfig();
+}
+
+void PBSystemTab::saveMirrorConfig() {
+    if( ! sanityCheckSettings() )
+	return;
+
+
+    if ( ! radioSelectMirror->isChecked() ) {
+       Utils::setMasterMirror(lineCustomMirror->text());
+    } else {
+       // Check if we have a mirror selected and save it
+       QString curMirror;
+       int i = 0;
+       while ( !mirrorNames[i].isEmpty() )
+       {
+          if ( comboMirrorList->currentText() == mirrorNames[i]) {
+            curMirror = mirrorURLs[i];
+	    break;
+	  }
+          i++;
+       }
+	
+       Utils::setMasterMirror(curMirror);
+    }
+}
+
+void PBSystemTab::slotClose() {
+    close();
+}
+
+bool PBSystemTab::sanityCheckSettings()
+{
+  if (radioCustomMirror->isChecked() ) {
+    if( lineCustomMirror->text().indexOf("http://") != 0 && lineCustomMirror->text().indexOf("ftp://") != 0 )
+    {
+      tabWidget->setCurrentIndex(1);
+      QMessageBox::critical( 0, tr("Config Error"), tr("Error: Your custom mirror needs to begin with ftp:// or http://"), QMessageBox::Ok );
+      return false;
+    }
+  }
+
+  return true;
+}
+
+
+QString PBSystemTab::getLineFromCommandOutput( QString cmd )
+{
+        FILE *file = popen(cmd.toLatin1(),"r");
+    
+        char buffer[100];
+ 
+        QString line = "";
+        char firstChar;
+
+        if ((firstChar = fgetc(file)) != -1){
+                line += firstChar;
+                line += fgets(buffer,100,file);
+        }
+        pclose(file);
+        return line;
+}
+
+void PBSystemTab::changeOpenTab(int tab)
+{
+   tabWidget->setCurrentIndex(tab);
+}

Modified: pcbsd/current/src-qt4/pc-sysmanager/pbsystemtab.h
===================================================================
--- pcbsd/current/src-qt4/pc-sysmanager/pbsystemtab.h	2010-10-01 18:18:19 UTC (rev 7689)
+++ pcbsd/current/src-qt4/pc-sysmanager/pbsystemtab.h	2010-10-01 20:32:14 UTC (rev 7690)
@@ -5,11 +5,36 @@
 #include <qmessagebox.h>
 #include <qdialog.h>
 #include <QProcess>
+#include <QNetworkAccessManager>
+#include <QNetworkReply>
+#include <QTimer>
+#include <QMenu>
+#include <QTextStream>
+
 #include <pcbsd-utils.h>
+#include "updaterDialog.h"
 #include "ui_pbsystemtab.h"
 #include "portsnapprogress.h"
 #include "cvsupprogress.h"
 
+/* Change this to switch the default patch tmpdir */
+#define PATCHTMPDIR_DEFAULT "/usr/local/tmp"
+#define SYSTRIGGER "/tmp/.sysupdatetraytrigger"
+
+/* The Update STATUS Flags */
+#define SYSTEM_UP2DATE 0
+#define SYSTEM_UPDATE_AVAIL 1
+#define SYSTEM_CHECKING4UPDATES 4
+#define SYSTEM_UPDATING 5
+#define CHECK_FAILED 6
+
+// Set our defines for the type of mirror the user is running
+#define AUTOMIRROR      0
+#define SELECTMIRROR    1
+#define CUSTOMMIRROR    2
+
+
+
 class PBSystemTab : public QDialog, private Ui::PBSystemTab
 {
         Q_OBJECT
@@ -28,6 +53,7 @@
     void ProgramInit();
     void saveKernScreen();
     void miscSavePressed();
+    void changeOpenTab(int tab);
 
 private slots:
     void ReadUname();
@@ -39,7 +65,41 @@
     void customSplashPressed();
     void showSplashChecked( int newState );
     void loadBootData();
+    void slotUpdateMirrorList();
+    void slotGetMirrorData();
+    void slotRefreshMirrorDone();
+    void slotCheckMirrorRadio();
+    void slotSave();
+    void slotClose();
+    
+    // System Update Slots
+    void slotStartUpdateCheck();
+    void slotSysUpdateCheckFinished();
+    void slotReadSystemUpdates();
+    void slotGetSysData();
+    void slotGetSysCopyData();
+    void slotOpenSysDetails(int id);
+    void slotStartSystemUpdate();
+    void slotDownloadSysUpdate();
+    void slotStartCheckSysMD5();
+    void slotReadSysMD5();
+    void slotStartSysInstall();
+    void slotSysExtractFinished();
+    void slotSysInstallFinished();
+    void slotReadInstallScriptOutput();
+    void slotStartCheckAvailSysSpace();
+    void slotRescanForUpdates();
+    void slotViewDetailsClicked();
+    void slotSelectAllSys();
+    void slotInstallUpdatesClicked();
+    void slotCheckSysUpdatesFlags();
+    void slotSysRightClicked();
+    void slotIgnoreSysUpdate();
+    void slotUnIgnoreSysUpdate();
+    void slotPopulateSysUpdates();
+    void slotUpdateSysTrayTrigger();
 
+
 private:
     CVSUpProgress *cvsUpUi;
     QString KernDescr[50];
@@ -60,10 +120,70 @@
     void CreateSheetFile();
     void showRebootRequired();
     void LoadKernSettings();
+    void loadMirrorConfig();
     QString getValue( QString File, QString Key );
+    QString getLineFromCommandOutput(QString cmd);
+    void saveMirrorConfig();
+    bool sanityCheckSettings();
 
+    QString currentMirror;
+    QString mirrorNames[900];
+    QString mirrorURLs[900];
+    QString mirrorJobBuf;
+    QNetworkAccessManager *mirrorJob;
+    QNetworkReply *mirrorReply;
 
+    // System Update Stuff
+    void initSystemUpdates();
+    void loadPatchData(QString patchFile, int patchNum);
 
+    updaterStatus *UpdaterStatusDialog;
+    
+    QMenu *popup;
+    QNetworkAccessManager *sysFetchJob;
+    QNetworkReply *sysFetchReply;
+    QNetworkAccessManager *sysCopyJob;
+    QNetworkReply *sysCopyReply;
+
+    int mirrorType;
+    QString mirrorURL;
+    QString customTmpDir;
+    QString Version;
+    QString Arch;
+    QString Lang;
+    int programstatus;
+    int currentSysWorkingItem;
+    QStringList workingSysUpdates;
+    int workingPopupItem;
+    long totalSeconds;
+    long downloadSize;
+    int totalSteps;
+    int attemptedRedownload;
+    int firstInstall;
+    int firstDownload;
+    int requiresSysReboot;
+    QString sysPatchsetTmpFile;
+    QProcess *getUpdatesDir;
+    QProcess *readSysUpdates;
+    QProcess *listingProc;
+    QProcess *checksumProc;
+    QProcess *extractProc;
+    QProcess *installProc;
+    QProcess *getFreeSpaceProc;
+    QString SysUpdateName[500];
+    QString SysUpdateIgnore[500];
+    QString SysUpdateMirror[500];
+    QString SysUpdatePatchFile[500];
+    QString SysUpdateDate[500];
+    QString SysUpdateMD5[500];
+    QString SysUpdateSize[500];
+    QString SysUpdateURL[500];
+    QString SysUpdateAlone[500];
+    QString SysUpdateReboot[500];
+    QString SysUpdateDetailsURL[500];
+    QString SysUpdatesShown[501];
+
+
 signals:
   void changed();
 

Modified: pcbsd/current/src-qt4/pc-sysmanager/pbsystemtab.ui
===================================================================
--- pcbsd/current/src-qt4/pc-sysmanager/pbsystemtab.ui	2010-10-01 18:18:19 UTC (rev 7689)
+++ pcbsd/current/src-qt4/pc-sysmanager/pbsystemtab.ui	2010-10-01 20:32:14 UTC (rev 7690)
@@ -6,8 +6,8 @@
    <rect>
     <x>0</x>
     <y>0</y>
-    <width>441</width>
-    <height>398</height>
+    <width>478</width>
+    <height>452</height>
    </rect>
   </property>
   <property name="windowTitle">
@@ -23,8 +23,8 @@
    <property name="spacing">
     <number>6</number>
    </property>
-   <item row="1" column="1">
-    <widget class="QPushButton" name="buttonOk">
+   <item row="1" column="2">
+    <widget class="QPushButton" name="pushClose">
      <property name="text">
       <string>&amp;Close</string>
      </property>
@@ -39,7 +39,30 @@
      </property>
     </widget>
    </item>
-   <item row="0" column="0" colspan="2">
+   <item row="1" column="0">
+    <spacer name="Horizontal Spacing2">
+     <property name="orientation">
+      <enum>Qt::Horizontal</enum>
+     </property>
+     <property name="sizeType">
+      <enum>QSizePolicy::Expanding</enum>
+     </property>
+     <property name="sizeHint" stdset="0">
+      <size>
+       <width>20</width>
+       <height>20</height>
+      </size>
+     </property>
+    </spacer>
+   </item>
+   <item row="1" column="1">
+    <widget class="QPushButton" name="pushSave">
+     <property name="text">
+      <string>&amp;Save</string>
+     </property>
+    </widget>
+   </item>
+   <item row="0" column="0" colspan="3">
     <widget class="QTabWidget" name="tabWidget">
      <property name="currentIndex">
       <number>0</number>
@@ -49,7 +72,7 @@
        <string>General</string>
       </attribute>
       <layout class="QGridLayout" name="gridLayout_7">
-       <item row="0" column="0" colspan="4">
+       <item row="0" column="0">
         <layout class="QHBoxLayout">
          <item>
           <spacer name="spacer7">
@@ -107,7 +130,7 @@
          </item>
         </layout>
        </item>
-       <item row="1" column="0" colspan="4">
+       <item row="1" column="0">
         <widget class="Line" name="line1">
          <property name="sizePolicy">
           <sizepolicy hsizetype="Preferred" vsizetype="Fixed">
@@ -123,447 +146,830 @@
          </property>
         </widget>
        </item>
-       <item row="2" column="0" rowspan="2">
-        <spacer name="spacer17">
+       <item row="2" column="0">
+        <layout class="QHBoxLayout" name="horizontalLayout_2">
+         <item>
+          <spacer name="spacer17">
+           <property name="orientation">
+            <enum>Qt::Horizontal</enum>
+           </property>
+           <property name="sizeType">
+            <enum>QSizePolicy::Expanding</enum>
+           </property>
+           <property name="sizeHint" stdset="0">
+            <size>
+             <width>91</width>
+             <height>21</height>
+            </size>
+           </property>
+          </spacer>
+         </item>
+         <item>
+          <layout class="QGridLayout" name="gridLayout_6">
+           <item row="0" column="0">
+            <widget class="QLabel" name="textLabel2">
+             <property name="sizePolicy">
+              <sizepolicy hsizetype="Preferred" vsizetype="Fixed">
+               <horstretch>0</horstretch>
+               <verstretch>0</verstretch>
+              </sizepolicy>
+             </property>
+             <property name="text">
+              <string>PC-BSD Version:</string>
+             </property>
+             <property name="alignment">
+              <set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set>
+             </property>
+             <property name="wordWrap">
+              <bool>false</bool>
+             </property>
+            </widget>
+           </item>
+           <item row="0" column="1">
+            <widget class="QLabel" name="labelPCBSD">
+             <property name="sizePolicy">
+              <sizepolicy hsizetype="Preferred" vsizetype="Fixed">
+               <horstretch>0</horstretch>
+               <verstretch>0</verstretch>
+              </sizepolicy>
+             </property>
+             <property name="text">
+              <string/>
+             </property>
+             <property name="alignment">
+              <set>Qt::AlignLeading|Qt::AlignLeft|Qt::AlignVCenter</set>
+             </property>
+             <property name="wordWrap">
+              <bool>false</bool>
+             </property>
+            </widget>
+           </item>
+           <item row="1" column="0">
+            <widget class="QLabel" name="textLabel2_2">
+             <property name="sizePolicy">
+              <sizepolicy hsizetype="Preferred" vsizetype="Fixed">
+               <horstretch>0</horstretch>
+               <verstretch>0</verstretch>
+              </sizepolicy>
+             </property>
+             <property name="frameShape">
+              <enum>QFrame::NoFrame</enum>
+             </property>
+             <property name="frameShadow">
+              <enum>QFrame::Plain</enum>
+             </property>
+             <property name="text">
+              <string>Base Version:</string>
+             </property>
+             <property name="alignment">
+              <set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set>
+             </property>
+             <property name="wordWrap">
+              <bool>false</bool>
+             </property>
+            </widget>
+           </item>
+           <item row="1" column="1">
+            <widget class="QLabel" name="labelBASEVer">
+             <property name="sizePolicy">
+              <sizepolicy hsizetype="Preferred" vsizetype="Fixed">
+               <horstretch>0</horstretch>
+               <verstretch>0</verstretch>
+              </sizepolicy>
+             </property>
+             <property name="text">
+              <string/>
+             </property>
+             <property name="alignment">
+              <set>Qt::AlignLeading|Qt::AlignLeft|Qt::AlignVCenter</set>
+             </property>
+             <property name="wordWrap">
+              <bool>false</bool>
+             </property>
+            </widget>
+           </item>
+           <item row="2" column="0">
+            <widget class="QLabel" name="textLabel2_2_2">
+             <property name="sizePolicy">
+              <sizepolicy hsizetype="Preferred" vsizetype="Fixed">
+               <horstretch>0</horstretch>
+               <verstretch>0</verstretch>
+              </sizepolicy>
+             </property>
+             <property name="text">
+              <string>CPU Type:</string>
+             </property>
+             <property name="alignment">
+              <set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set>
+             </property>
+             <property name="wordWrap">
+              <bool>false</bool>
+             </property>
+            </widget>
+           </item>
+           <item row="2" column="1">
+            <widget class="QLabel" name="labelCPU">
+             <property name="sizePolicy">
+              <sizepolicy hsizetype="Preferred" vsizetype="Fixed">
+               <horstretch>0</horstretch>
+               <verstretch>0</verstretch>
+              </sizepolicy>
+             </property>
+             <property name="text">
+              <string/>
+             </property>
+             <property name="alignment">
+              <set>Qt::AlignLeading|Qt::AlignLeft|Qt::AlignVCenter</set>
+             </property>
+             <property name="wordWrap">
+              <bool>false</bool>
+             </property>
+            </widget>
+           </item>
+           <item row="3" column="0">
+            <widget class="QLabel" name="textLabel2_2_3">
+             <property name="sizePolicy">
+              <sizepolicy hsizetype="Preferred" vsizetype="Fixed">
+               <horstretch>0</horstretch>
+               <verstretch>0</verstretch>
+              </sizepolicy>
+             </property>
+             <property name="minimumSize">
+              <size>
+               <width>0</width>
+               <height>0</height>
+              </size>
+             </property>
+             <property name="text">
+              <string>System Memory:</string>
+             </property>
+             <property name="alignment">
+              <set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set>
+             </property>
+             <property name="wordWrap">
+              <bool>false</bool>
+             </property>
+            </widget>
+           </item>
+           <item row="3" column="1">
+            <widget class="QLabel" name="labelMemory">
+             <property name="sizePolicy">
+              <sizepolicy hsizetype="Preferred" vsizetype="Fixed">
+               <horstretch>0</horstretch>
+               <verstretch>0</verstretch>
+              </sizepolicy>
+             </property>
+             <property name="text">
+              <string/>
+             </property>
+             <property name="alignment">
+              <set>Qt::AlignLeading|Qt::AlignLeft|Qt::AlignVCenter</set>
+             </property>
+             <property name="wordWrap">
+              <bool>false</bool>
+             </property>
+            </widget>
+           </item>
+          </layout>
+         </item>
+         <item>
+          <spacer name="spacer18">
+           <property name="orientation">
+            <enum>Qt::Horizontal</enum>
+           </property>
+           <property name="sizeType">
+            <enum>QSizePolicy::Expanding</enum>
+           </property>
+           <property name="sizeHint" stdset="0">
+            <size>
+             <width>111</width>
+             <height>21</height>
+            </size>
+           </property>
+          </spacer>
+         </item>
+        </layout>
+       </item>
+       <item row="3" column="0">
+        <spacer name="verticalSpacer_2">
          <property name="orientation">
-          <enum>Qt::Horizontal</enum>
+          <enum>Qt::Vertical</enum>
          </property>
-         <property name="sizeType">
-          <enum>QSizePolicy::Expanding</enum>
-         </property>
          <property name="sizeHint" stdset="0">
           <size>
-           <width>91</width>
-           <height>21</height>
+           <width>20</width>
+           <height>40</height>
           </size>
          </property>
         </spacer>
        </item>
-       <item row="2" column="3" rowspan="2">
-        <spacer name="spacer18">
+       <item row="4" column="0">
+        <widget class="Line" name="line2">
+         <property name="sizePolicy">
+          <sizepolicy hsizetype="Preferred" vsizetype="Fixed">
+           <horstretch>0</horstretch>
+           <verstretch>0</verstretch>
+          </sizepolicy>
+         </property>
+         <property name="frameShape">
+          <enum>QFrame::HLine</enum>
+         </property>
+         <property name="frameShadow">
+          <enum>QFrame::Sunken</enum>
+         </property>
+        </widget>
+       </item>
+       <item row="5" column="0">
+        <widget class="QLabel" name="textLabel4">
+         <property name="text">
+          <string>You may also generate a diagnostic sheet, with information about your system. This sheet can be used by technicians for troubleshooting purposes.</string>
+         </property>
+         <property name="alignment">
+          <set>Qt::AlignLeading|Qt::AlignLeft|Qt::AlignTop</set>
+         </property>
+         <property name="wordWrap">
+          <bool>true</bool>
+         </property>
+        </widget>
+       </item>
+       <item row="6" column="0">
+        <layout class="QHBoxLayout" name="horizontalLayout">
+         <item>
+          <spacer name="spacer5">
+           <property name="orientation">
+            <enum>Qt::Horizontal</enum>
+           </property>
+           <property name="sizeType">
+            <enum>QSizePolicy::Expanding</enum>
+           </property>
+           <property name="sizeHint" stdset="0">
+            <size>
+             <width>97</width>
+             <height>21</height>
+            </size>
+           </property>
+          </spacer>
+         </item>
+         <item>
+          <widget class="QPushButton" name="buttonGenerate">
+           <property name="text">
+            <string>Generate</string>
+           </property>
+          </widget>
+         </item>
+         <item>
+          <spacer name="spacer4">
+           <property name="orientation">
+            <enum>Qt::Horizontal</enum>
+           </property>
+           <property name="sizeType">
+            <enum>QSizePolicy::Expanding</enum>
+           </property>
+           <property name="sizeHint" stdset="0">
+            <size>
+             <width>97</width>
+             <height>21</height>
+            </size>
+           </property>
+          </spacer>
+         </item>
+        </layout>
+       </item>
+       <item row="7" column="0">
+        <spacer name="spacer11">
          <property name="orientation">
-          <enum>Qt::Horizontal</enum>
+          <enum>Qt::Vertical</enum>
          </property>
          <property name="sizeType">
           <enum>QSizePolicy::Expanding</enum>
          </property>
          <property name="sizeHint" stdset="0">
           <size>
-           <width>111</width>
-           <height>21</height>
+           <width>30</width>
+           <height>60</height>
           </size>
          </property>
         </spacer>
        </item>
-       <item row="3" column="1" colspan="2">
-        <layout class="QGridLayout" name="gridLayout_6">
-         <item row="0" column="0">
-          <widget class="QLabel" name="textLabel2">
+      </layout>
+     </widget>
+     <widget class="QWidget" name="tab_3">
+      <attribute name="title">
+       <string>Updates</string>
+      </attribute>
+      <layout class="QGridLayout" name="gridLayout_10">
+       <item row="0" column="0">
+        <layout class="QGridLayout" name="_2">
+         <item row="0" column="0" colspan="4">
+          <widget class="QLabel" name="textSysUpdatesLabel">
            <property name="sizePolicy">
-            <sizepolicy hsizetype="Preferred" vsizetype="Fixed">
+            <sizepolicy hsizetype="Preferred" vsizetype="Minimum">
              <horstretch>0</horstretch>
              <verstretch>0</verstretch>
             </sizepolicy>
            </property>
            <property name="text">
-            <string>PC-BSD Version:</string>
+            <string>The following system updates are available:</string>
            </property>
            <property name="alignment">
-            <set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set>
+            <set>Qt::AlignLeading|Qt::AlignLeft|Qt::AlignTop</set>
            </property>
            <property name="wordWrap">
-            <bool>false</bool>
+            <bool>true</bool>
            </property>
           </widget>
          </item>
-         <item row="0" column="1">
-          <widget class="QLabel" name="labelPCBSD">
-           <property name="sizePolicy">
-            <sizepolicy hsizetype="Preferred" vsizetype="Fixed">
-             <horstretch>0</horstretch>
-             <verstretch>0</verstretch>
-            </sizepolicy>
+         <item row="2" column="3">
+          <spacer name="spacer2">
+           <property name="orientation">
+            <enum>Qt::Horizontal</enum>
            </property>
-           <property name="text">
-            <string/>
+           <property name="sizeType">
+            <enum>QSizePolicy::Expanding</enum>
            </property>
-           <property name="alignment">
-            <set>Qt::AlignLeading|Qt::AlignLeft|Qt::AlignVCenter</set>
+           <property name="sizeHint" stdset="0">
+            <size>
+             <width>223</width>
+             <height>21</height>
+            </size>
            </property>
-           <property name="wordWrap">
-            <bool>false</bool>
-           </property>
-          </widget>
+          </spacer>
          </item>
-         <item row="1" column="0">
-          <widget class="QLabel" name="textLabel2_2">
-           <property name="sizePolicy">
-            <sizepolicy hsizetype="Preferred" vsizetype="Fixed">
-             <horstretch>0</horstretch>
-             <verstretch>0</verstretch>
-            </sizepolicy>
-           </property>
-           <property name="frameShape">
-            <enum>QFrame::NoFrame</enum>
-           </property>
-           <property name="frameShadow">
-            <enum>QFrame::Plain</enum>
-           </property>
+         <item row="2" column="0">
+          <widget class="QPushButton" name="pushSelectSysAll">
            <property name="text">
-            <string>Base Version:</string>
+            <string>Select All</string>
            </property>
-           <property name="alignment">
-            <set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set>
-           </property>
-           <property name="wordWrap">
-            <bool>false</bool>
-           </property>
           </widget>
          </item>
-         <item row="1" column="1">
-          <widget class="QLabel" name="labelBASEVer">
-           <property name="sizePolicy">
-            <sizepolicy hsizetype="Preferred" vsizetype="Fixed">
-             <horstretch>0</horstretch>
-             <verstretch>0</verstretch>
-            </sizepolicy>
-           </property>
+         <item row="2" column="1">
+          <widget class="QPushButton" name="pushDetails">
            <property name="text">
-            <string/>
+            <string>View Details</string>
            </property>
-           <property name="alignment">
-            <set>Qt::AlignLeading|Qt::AlignLeft|Qt::AlignVCenter</set>
-           </property>
-           <property name="wordWrap">
-            <bool>false</bool>
-           </property>
           </widget>
          </item>
-         <item row="2" column="0">
-          <widget class="QLabel" name="textLabel2_2_2">
-           <property name="sizePolicy">
-            <sizepolicy hsizetype="Preferred" vsizetype="Fixed">
-             <horstretch>0</horstretch>
-             <verstretch>0</verstretch>
-            </sizepolicy>
-           </property>
+         <item row="2" column="2">
+          <widget class="QCheckBox" name="checkShowIgnore">
            <property name="text">
-            <string>CPU Type:</string>
+            <string>Show ignored updates</string>
            </property>
-           <property name="alignment">
-            <set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set>
-           </property>
-           <property name="wordWrap">
-            <bool>false</bool>
-           </property>
           </widget>
          </item>
-         <item row="2" column="1">
-          <widget class="QLabel" name="labelCPU">
-           <property name="sizePolicy">
-            <sizepolicy hsizetype="Preferred" vsizetype="Fixed">
-             <horstretch>0</horstretch>
-             <verstretch>0</verstretch>
-            </sizepolicy>
-           </property>
+         <item row="1" column="0" colspan="4">
+          <widget class="QListWidget" name="listViewSysUpdates"/>
+         </item>
+        </layout>
+       </item>
+       <item row="1" column="0">
+        <layout class="QVBoxLayout" name="verticalLayout_2">
+         <item>
+          <widget class="QLabel" name="UpdaterLabel">
            <property name="text">
             <string/>
            </property>
            <property name="alignment">
-            <set>Qt::AlignLeading|Qt::AlignLeft|Qt::AlignVCenter</set>
+            <set>Qt::AlignCenter</set>
            </property>
-           <property name="wordWrap">
-            <bool>false</bool>
-           </property>
           </widget>
          </item>
-         <item row="3" column="0">
-          <widget class="QLabel" name="textLabel2_2_3">
-           <property name="sizePolicy">
-            <sizepolicy hsizetype="Preferred" vsizetype="Fixed">
-             <horstretch>0</horstretch>
-             <verstretch>0</verstretch>
-            </sizepolicy>
+         <item>
+          <spacer name="verticalSpacer_4">
+           <property name="orientation">
+            <enum>Qt::Vertical</enum>
            </property>
-           <property name="minimumSize">
+           <property name="sizeType">
+            <enum>QSizePolicy::Preferred</enum>
+           </property>
+           <property name="sizeHint" stdset="0">
             <size>
-             <width>0</width>
-             <height>0</height>
+             <width>438</width>
+             <height>17</height>
             </size>
            </property>
-           <property name="text">
-            <string>System Memory:</string>
-           </property>
-           <property name="alignment">
-            <set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set>
-           </property>
-           <property name="wordWrap">
-            <bool>false</bool>
-           </property>
-          </widget>
+          </spacer>
          </item>
-         <item row="3" column="1">
-          <widget class="QLabel" name="labelMemory">
-           <property name="sizePolicy">
-            <sizepolicy hsizetype="Preferred" vsizetype="Fixed">
-             <horstretch>0</horstretch>
-             <verstretch>0</verstretch>
-            </sizepolicy>
-           </property>
-           <property name="text">
-            <string/>
-           </property>
-           <property name="alignment">
-            <set>Qt::AlignLeading|Qt::AlignLeft|Qt::AlignVCenter</set>
-           </property>
-           <property name="wordWrap">
-            <bool>false</bool>
-           </property>
-          </widget>
+         <item>
+          <layout class="QHBoxLayout" name="horizontalLayout_5">
+           <item>
+            <widget class="QPushButton" name="pushInstallSysUpdates">
+             <property name="text">
+              <string>Install selected updates</string>
+             </property>
+            </widget>
+           </item>
+           <item>
+            <layout class="QHBoxLayout" name="_4">
+             <item>
+              <spacer name="spacer15">
+               <property name="orientation">
+                <enum>Qt::Horizontal</enum>
+               </property>
+               <property name="sizeType">
+                <enum>QSizePolicy::Expanding</enum>
+               </property>
+               <property name="sizeHint" stdset="0">
+                <size>
+                 <width>10</width>
+                 <height>20</height>
+                </size>
+               </property>
+              </spacer>
+             </item>
+             <item>
+              <widget class="QPushButton" name="buttonRescanForSysUpdates">
+               <property name="text">
+                <string>Check for Updates</string>
+               </property>
+               <property name="flat">
+                <bool>false</bool>
+               </property>
+              </widget>
+             </item>
+            </layout>
+           </item>
+          </layout>
          </item>
         </layout>
        </item>
-       <item row="5" column="0" colspan="4">
-        <widget class="Line" name="line2">
-         <property name="sizePolicy">
-          <sizepolicy hsizetype="Preferred" vsizetype="Fixed">
-           <horstretch>0</horstretch>
-           <verstretch>0</verstretch>
-          </sizepolicy>
-         </property>
-         <property name="frameShape">
-          <enum>QFrame::HLine</enum>
-         </property>
-         <property name="frameShadow">
-          <enum>QFrame::Sunken</enum>
-         </property>
-        </widget>
-       </item>
-       <item row="6" column="0" colspan="4">
-        <widget class="QLabel" name="textLabel4">
-         <property name="text">
-          <string>You may also generate a diagnostic sheet, with information about your system. This sheet can be used by technicians for troubleshooting purposes.</string>
-         </property>
-         <property name="alignment">
-          <set>Qt::AlignLeading|Qt::AlignLeft|Qt::AlignTop</set>
-         </property>
-         <property name="wordWrap">
-          <bool>true</bool>
-         </property>
-        </widget>
-       </item>
-       <item row="7" column="0">
-        <spacer name="spacer5">
-         <property name="orientation">
-          <enum>Qt::Horizontal</enum>
-         </property>
-         <property name="sizeType">
-          <enum>QSizePolicy::Expanding</enum>
-         </property>
-         <property name="sizeHint" stdset="0">
-          <size>
-           <width>92</width>
-           <height>21</height>
-          </size>
-         </property>
-        </spacer>
-       </item>
-       <item row="7" column="1">
-        <widget class="QPushButton" name="buttonGenerate">
-         <property name="text">
-          <string>Generate</string>
-         </property>
-        </widget>
-       </item>
-       <item row="7" column="2" colspan="2">
-        <spacer name="spacer4">
-         <property name="orientation">
-          <enum>Qt::Horizontal</enum>
-         </property>
-         <property name="sizeType">
-          <enum>QSizePolicy::Expanding</enum>
-         </property>
-         <property name="sizeHint" stdset="0">
-          <size>
-           <width>102</width>
-           <height>21</height>
-          </size>
-         </property>
-        </spacer>
-       </item>
-       <item row="8" column="1">
-        <spacer name="spacer11">
-         <property name="orientation">
-          <enum>Qt::Vertical</enum>
-         </property>
-         <property name="sizeType">
-          <enum>QSizePolicy::Expanding</enum>
-         </property>
-         <property name="sizeHint" stdset="0">
-          <size>
-           <width>30</width>
-           <height>60</height>
-          </size>
-         </property>
-        </spacer>
-       </item>
-       <item row="4" column="0" colspan="4">
-        <spacer name="verticalSpacer_2">
-         <property name="orientation">
-          <enum>Qt::Vertical</enum>
-         </property>
-         <property name="sizeHint" stdset="0">
-          <size>
-           <width>20</width>
-           <height>40</height>
-          </size>
-         </property>
-        </spacer>
-       </item>
       </layout>
      </widget>
-     <widget class="QWidget" name="Widget9">
+     <widget class="QWidget" name="tab">
       <attribute name="title">
-       <string>Kernel</string>
+       <string>Mirrors</string>
       </attribute>
-      <layout class="QGridLayout" name="gridLayout_3">
+      <layout class="QGridLayout" name="gridLayout_9">
        <item row="0" column="0">
-        <widget class="QGroupBox" name="groupBox">
+        <widget class="QGroupBox" name="groupBox_5">
          <property name="title">
-          <string>Kernel Options</string>
+          <string>Mirror Configuration</string>
          </property>
-         <layout class="QGridLayout" name="gridLayout_2">
-          <item row="0" column="0" colspan="2">
-           <widget class="QCheckBox" name="checkKernATAPI">
+         <layout class="QGridLayout" name="gridLayout_8">
+          <item row="0" column="0">
+           <widget class="QRadioButton" name="radioSelectMirror">
             <property name="text">
-             <string>Enable ATAPI DMA Mode</string>
+             <string>Select Mirror from list</string>
             </property>
            </widget>
           </item>
           <item row="1" column="0">
-           <widget class="QSpinBox" name="checkKernDelay">
-            <property name="enabled">
-             <bool>true</bool>
-            </property>
-            <property name="specialValueText">
-             <string>Off</string>
-            </property>
-            <property name="minimum">
-             <number>0</number>
-            </property>
-            <property name="maximum">
-             <number>60</number>
-            </property>
-            <property name="value">
-             <number>2</number>
-            </property>
-           </widget>
+           <layout class="QHBoxLayout" name="horizontalLayout_3">
+            <item>
+             <spacer name="horizontalSpacer_2">
+              <property name="orientation">
+               <enum>Qt::Horizontal</enum>
+              </property>
+              <property name="sizeType">
+               <enum>QSizePolicy::Fixed</enum>
+              </property>
+              <property name="sizeHint" stdset="0">
+               <size>
+                <width>20</width>
+                <height>20</height>
+               </size>
+              </property>
+             </spacer>
+            </item>
+            <item>
+             <widget class="QComboBox" name="comboMirrorList"/>
+            </item>
+            <item>
+             <widget class="QPushButton" name="pushRefreshList">
+              <property name="sizePolicy">
+               <sizepolicy hsizetype="Fixed" vsizetype="Fixed">
+                <horstretch>0</horstretch>
+                <verstretch>0</verstretch>
+               </sizepolicy>
+              </property>
+              <property name="toolTip">
+               <string>Refresh Mirror Listing</string>
+              </property>
+              <property name="text">
+               <string/>
+              </property>
+              <property name="icon">
+               <iconset resource="PBSystem.qrc">
+                <normaloff>:/view-refresh.png</normaloff>:/view-refresh.png</iconset>
+              </property>
+             </widget>
+            </item>
+           </layout>
           </item>
-          <item row="1" column="1">
-           <widget class="QLabel" name="checkKernDelayLbl">
-            <property name="enabled">
-             <bool>true</bool>
-            </property>
+          <item row="2" column="0">
+           <widget class="QRadioButton" name="radioCustomMirror">
             <property name="text">
-             <string>Boot delay (seconds)</string>
+             <string>Specify a custom Mirror</string>
             </property>
-            <property name="wordWrap">
-             <bool>false</bool>
-            </property>
            </widget>
           </item>
+          <item row="3" column="0">
+           <layout class="QHBoxLayout" name="horizontalLayout_4">
+            <item>
+             <spacer name="horizontalSpacer_3">
+              <property name="orientation">
+               <enum>Qt::Horizontal</enum>
+              </property>
+              <property name="sizeType">
+               <enum>QSizePolicy::Fixed</enum>
+              </property>
+              <property name="sizeHint" stdset="0">
+               <size>
+                <width>20</width>
+                <height>20</height>
+               </size>
+              </property>
+             </spacer>
+            </item>
+            <item>
+             <widget class="QLineEdit" name="lineCustomMirror"/>
+            </item>
+           </layout>
+          </item>
          </layout>
         </widget>
        </item>
-       <item row="1" column="0">
-        <spacer name="verticalSpacer">
+       <item row="2" column="0">
+        <spacer name="verticalSpacer_3">
          <property name="orientation">
           <enum>Qt::Vertical</enum>
          </property>
          <property name="sizeHint" stdset="0">
           <size>
-           <width>20</width>
-           <height>290</height>
+           <width>437</width>
+           <height>132</height>
           </size>
          </property>
         </spacer>
        </item>
+       <item row="1" column="0">
+        <widget class="QLabel" name="label">
+         <property name="text">
+          <string>The selected mirror above will be used for fetching system updates, and software via the 'Software Manager' utility. If you experience download failures, or slow performace, please try another mirror.</string>
+         </property>
+         <property name="wordWrap">
+          <bool>true</bool>
+         </property>
+        </widget>
+       </item>
       </layout>
      </widget>
+     <widget class="QWidget" name="tab_2">
+      <attribute name="title">
+       <string>System Packages</string>
+      </attribute>
+     </widget>
      <widget class="QWidget" name="TabPage">
       <attribute name="title">
-       <string>Tasks</string>
+       <string>Misc</string>
       </attribute>
-      <layout class="QGridLayout">
-       <item row="5" column="0">
-        <spacer name="spacer27">
-         <property name="orientation">
-          <enum>Qt::Vertical</enum>
-         </property>
-         <property name="sizeType">
-          <enum>QSizePolicy::Expanding</enum>
-         </property>
-         <property name="sizeHint" stdset="0">
-          <size>
-           <width>31</width>
-           <height>110</height>
-          </size>
-         </property>
-        </spacer>
-       </item>
-       <item row="2" column="0">
-        <widget class="QGroupBox" name="groupBox_2">
+      <layout class="QGridLayout" name="gridLayout_3">
+       <item row="0" column="0" colspan="2">
+        <widget class="QGroupBox" name="groupBox_4">
          <property name="title">
-          <string>System Tasks - Advanced Users</string>
+          <string>Boot Screen</string>
          </property>
-         <layout class="QGridLayout" name="gridLayout_4">
-          <item row="0" column="0">
-           <widget class="QPushButton" name="fetchSourceBut">
+         <layout class="QGridLayout" name="gridLayout_5">
+          <item row="0" column="0" colspan="2">
+           <layout class="QHBoxLayout" name="horizontalLayout_12">
+            <item>
+             <widget class="QCheckBox" name="showBootCheck">
+              <property name="text">
+               <string>S&amp;how splash image on boot</string>
+              </property>
+              <property name="shortcut">
+               <string>Alt+H</string>
+              </property>
+              <property name="checked">
+               <bool>true</bool>
+              </property>
+             </widget>
+            </item>
+            <item>
+             <spacer name="horizontalSpacer_12">
+              <property name="orientation">
+               <enum>Qt::Horizontal</enum>
+              </property>
+              <property name="sizeHint" stdset="0">
+               <size>
+                <width>40</width>
+                <height>20</height>
+               </size>
+              </property>
+             </spacer>
+            </item>
+           </layout>
+          </item>
+          <item row="1" column="0" colspan="2">
+           <layout class="QHBoxLayout" name="horizontalLayout_11">
+            <item>
+             <widget class="QComboBox" name="splashSelect"/>
+            </item>
+            <item>
+             <spacer name="horizontalSpacer_11">
+              <property name="orientation">
+               <enum>Qt::Horizontal</enum>
+              </property>
+              <property name="sizeHint" stdset="0">
+               <size>
+                <width>40</width>
+                <height>20</height>
+               </size>
+              </property>
+             </spacer>
+            </item>
+           </layout>
+          </item>
+          <item row="2" column="0">
+           <widget class="QPushButton" name="customBut">
             <property name="text">
-             <string>Fetch &amp;System Source</string>
+             <string>&amp;Custom...</string>
             </property>
             <property name="shortcut">
-             <string>Alt+S</string>
+             <string>Alt+C</string>
             </property>
            </widget>
           </item>
-          <item row="1" column="0">
-           <widget class="QPushButton" name="fetchPortsBut">
-            <property name="text">
-             <string>Fetch System P&amp;orts Tree</string>
+          <item row="2" column="1">
+           <spacer name="spacer39">
+            <property name="orientation">
+             <enum>Qt::Horizontal</enum>
             </property>
-           </widget>
+            <property name="sizeType">
+             <enum>QSizePolicy::Expanding</enum>
+            </property>
+            <property name="sizeHint" stdset="0">
+             <size>
+              <width>251</width>
+              <height>31</height>
+             </size>
+            </property>
+           </spacer>
           </item>
          </layout>
         </widget>
        </item>
        <item row="1" column="0">
+        <widget class="QGroupBox" name="groupBox">
+         <property name="title">
+          <string>Kernel Options</string>
+         </property>
+         <layout class="QGridLayout" name="gridLayout_2">
+          <item row="0" column="0">
+           <layout class="QHBoxLayout" name="horizontalLayout_7">
+            <item>
+             <widget class="QCheckBox" name="checkKernATAPI">
+              <property name="text">
+               <string>Enable ATAPI DMA Mode</string>
+              </property>
+             </widget>
+            </item>
+            <item>
+             <spacer name="horizontalSpacer_4">
+              <property name="orientation">
+               <enum>Qt::Horizontal</enum>
+              </property>
+              <property name="sizeHint" stdset="0">
+               <size>
+                <width>40</width>
+                <height>20</height>
+               </size>
+              </property>
+             </spacer>
+            </item>
+           </layout>
+          </item>
+          <item row="1" column="0">
+           <layout class="QHBoxLayout" name="horizontalLayout_6">
+            <item>
+             <widget class="QSpinBox" name="checkKernDelay">
+              <property name="enabled">
+               <bool>true</bool>
+              </property>
+              <property name="specialValueText">
+               <string>Off</string>
+              </property>
+              <property name="minimum">
+               <number>0</number>
+              </property>
+              <property name="maximum">
+               <number>60</number>
+              </property>
+              <property name="value">
+               <number>2</number>
+              </property>
+             </widget>
+            </item>
+            <item>
+             <widget class="QLabel" name="checkKernDelayLbl">
+              <property name="enabled">
+               <bool>true</bool>
+              </property>
+              <property name="text">
+               <string>Boot delay (seconds)</string>
+              </property>
+              <property name="wordWrap">
+               <bool>false</bool>
+              </property>
+             </widget>
+            </item>
+            <item>
+             <spacer name="horizontalSpacer">
+              <property name="orientation">
+               <enum>Qt::Horizontal</enum>
+              </property>
+              <property name="sizeHint" stdset="0">
+               <size>
+                <width>40</width>
+                <height>20</height>
+               </size>
+              </property>
+             </spacer>
+            </item>
+           </layout>
+          </item>
+         </layout>
+        </widget>
+       </item>
+       <item row="2" column="0" colspan="2">
         <widget class="QGroupBox" name="groupBox_3">
          <property name="title">
           <string>Ports Console</string>
          </property>
          <layout class="QGridLayout" name="gridLayout">
           <item row="0" column="0">
-           <widget class="QPushButton" name="fetchPortsConsoleBut">
-            <property name="text">
-             <string>Fetch &amp;Ports Tree</string>
-            </property>
-            <property name="shortcut">
-             <string>Alt+P</string>
-            </property>
-           </widget>
+           <layout class="QHBoxLayout" name="horizontalLayout_8">
+            <item>
+             <widget class="QPushButton" name="fetchPortsConsoleBut">
+              <property name="text">
+               <string>Fetch &amp;Ports Tree</string>
+              </property>
+              <property name="shortcut">
+               <string>Alt+P</string>
+              </property>
+             </widget>
+            </item>
+            <item>
+             <spacer name="horizontalSpacer_5">
+              <property name="orientation">
+               <enum>Qt::Horizontal</enum>
+              </property>
+              <property name="sizeHint" stdset="0">
+               <size>
+                <width>40</width>
+                <height>20</height>
+               </size>
+              </property>
+             </spacer>
+            </item>
+           </layout>
           </item>
          </layout>
         </widget>
        </item>
-      </layout>
-     </widget>
-     <widget class="QWidget" name="TabPage">
-      <attribute name="title">
-       <string>Misc</string>
-      </attribute>
-      <layout class="QGridLayout">
-       <item row="1" column="0">
+       <item row="3" column="0" colspan="2">
+        <widget class="QGroupBox" name="groupBox_2">
+         <property name="title">
+          <string>System Tasks - Advanced Users</string>
+         </property>
+         <layout class="QGridLayout" name="gridLayout_4">
+          <item row="0" column="0">
+           <layout class="QHBoxLayout" name="horizontalLayout_9">
+            <item>
+             <widget class="QPushButton" name="fetchSourceBut">
+              <property name="text">
+               <string>Fetch &amp;System Source</string>
+              </property>
+              <property name="shortcut">
+               <string>Alt+S</string>
+              </property>
+             </widget>
+            </item>
+            <item>
+             <widget class="QPushButton" name="fetchPortsBut">
+              <property name="text">
+               <string>Fetch System P&amp;orts Tree</string>
+              </property>
+             </widget>
+            </item>
+            <item>
+             <spacer name="horizontalSpacer_7">
+              <property name="orientation">
+               <enum>Qt::Horizontal</enum>
+              </property>
+              <property name="sizeHint" stdset="0">
+               <size>
+                <width>40</width>
+                <height>20</height>
+               </size>
+              </property>
+             </spacer>
+            </item>
+           </layout>
+          </item>
+         </layout>
+        </widget>
+       </item>
+       <item row="4" column="1">
         <spacer name="spacer37">
          <property name="orientation">
           <enum>Qt::Vertical</enum>
@@ -579,86 +985,17 @@
          </property>
         </spacer>
        </item>
-       <item row="0" column="0">
-        <widget class="QGroupBox" name="groupBox_4">
-         <property name="title">
-          <string>Boot Screen</string>
-         </property>
-         <layout class="QGridLayout" name="gridLayout_5">
-          <item row="0" column="0" colspan="2">
-           <widget class="QCheckBox" name="showBootCheck">
-            <property name="text">
-             <string>S&amp;how splash image on boot</string>
-            </property>
-            <property name="shortcut">
-             <string>Alt+H</string>
-            </property>
-            <property name="checked">
-             <bool>true</bool>
-            </property>
-           </widget>
-          </item>
-          <item row="1" column="0" colspan="2">
-           <widget class="QComboBox" name="splashSelect"/>
-          </item>
-          <item row="2" column="0">
-           <spacer name="spacer39">
-            <property name="orientation">
-             <enum>Qt::Horizontal</enum>
-            </property>
-            <property name="sizeType">
-             <enum>QSizePolicy::Expanding</enum>
-            </property>
-            <property name="sizeHint" stdset="0">
-             <size>
-              <width>251</width>
-              <height>31</height>
-             </size>
-            </property>
-           </spacer>
-          </item>
-          <item row="2" column="1">
-           <widget class="QPushButton" name="customBut">
-            <property name="text">
-             <string>&amp;Custom...</string>
-            </property>
-            <property name="shortcut">
-             <string>Alt+C</string>
-            </property>
-           </widget>
-          </item>
-         </layout>
-        </widget>
-       </item>
       </layout>
      </widget>
     </widget>
    </item>
-   <item row="1" column="0">
-    <spacer name="Horizontal Spacing2">
-     <property name="orientation">
-      <enum>Qt::Horizontal</enum>
-     </property>
-     <property name="sizeType">
-      <enum>QSizePolicy::Expanding</enum>
-     </property>
-     <property name="sizeHint" stdset="0">
-      <size>
-       <width>20</width>
-       <height>20</height>
-      </size>
-     </property>
-    </spacer>
-   </item>
   </layout>
  </widget>
  <layoutdefault spacing="6" margin="11"/>
  <tabstops>
   <tabstop>tabWidget</tabstop>
   <tabstop>buttonGenerate</tabstop>
-  <tabstop>buttonOk</tabstop>
-  <tabstop>checkKernATAPI</tabstop>
-  <tabstop>checkKernDelay</tabstop>
+  <tabstop>pushClose</tabstop>
  </tabstops>
  <includes>
   <include location="local">qmessagebox.h</include>
@@ -671,10 +1008,11 @@
  </includes>
  <resources>
   <include location="PBSystem.qrc"/>
+  <include location="../pc-softwaremanager/SoftwareManager.qrc"/>
  </resources>
  <connections>
   <connection>
-   <sender>buttonOk</sender>
+   <sender>pushClose</sender>
    <signal>clicked()</signal>
    <receiver>PBSystemTab</receiver>
    <slot>accept()</slot>
@@ -690,54 +1028,6 @@
    </hints>
   </connection>
   <connection>
-   <sender>fetchPortsBut</sender>
-   <signal>clicked()</signal>
-   <receiver>PBSystemTab</receiver>
-   <slot>fetchPortsPressed()</slot>
-   <hints>
-    <hint type="sourcelabel">
-     <x>20</x>
-     <y>20</y>
-    </hint>
-    <hint type="destinationlabel">
-     <x>20</x>
-     <y>20</y>
-    </hint>
-   </hints>
-  </connection>
-  <connection>
-   <sender>fetchPortsConsoleBut</sender>
-   <signal>clicked()</signal>
-   <receiver>PBSystemTab</receiver>
-   <slot>fetchPortsConsolePressed()</slot>
-   <hints>
-    <hint type="sourcelabel">
-     <x>20</x>
-     <y>20</y>
-    </hint>
-    <hint type="destinationlabel">
-     <x>20</x>
-     <y>20</y>
-    </hint>
-   </hints>
-  </connection>
-  <connection>
-   <sender>fetchSourceBut</sender>
-   <signal>clicked()</signal>
-   <receiver>PBSystemTab</receiver>
-   <slot>fetchSourcePressed()</slot>
-   <hints>
-    <hint type="sourcelabel">
-     <x>20</x>
-     <y>20</y>
-    </hint>
-    <hint type="destinationlabel">
-     <x>20</x>
-     <y>20</y>
-    </hint>
-   </hints>
-  </connection>
-  <connection>
    <sender>customBut</sender>
    <signal>clicked()</signal>
    <receiver>PBSystemTab</receiver>

Modified: pcbsd/current/src-qt4/pc-sysmanager/pc-sysmanager.pro
===================================================================
--- pcbsd/current/src-qt4/pc-sysmanager/pc-sysmanager.pro	2010-10-01 18:18:19 UTC (rev 7689)
+++ pcbsd/current/src-qt4/pc-sysmanager/pc-sysmanager.pro	2010-10-01 20:32:14 UTC (rev 7690)
@@ -7,13 +7,15 @@
 
 INCLUDEPATH	+= /usr/local/include
 
-HEADERS	+= cvsupprogress.h fastestcvsup.h pbsystemtab.h portsnapprogress.h
+HEADERS	+= cvsupprogress.h fastestcvsup.h pbsystemtab.h portsnapprogress.h updaterDialog.h
 
-SOURCES	+= main.cpp cvsupprogress.cpp fastestcvsup.cpp pbsystemtab.cpp portsnapprogress.cpp
+SOURCES	+= main.cpp cvsupprogress.cpp fastestcvsup.cpp pbsystemtab.cpp portsnapprogress.cpp \
+	systemupdates.cpp updaterDialog.cpp
 
 FORMS	= pbsystemtab.ui \
 	cvsupprogress.ui \
 	portsnapprogress.ui \
+	updaterDialog.ui \
 	fastestcvsup.ui
 
 RESOURCES = PBSystem.qrc 
@@ -99,3 +101,7 @@
 INSTALLS += dotrans scripts chmod
 
 QMAKE_LIBDIR = /usr/local/lib/qt4 /usr/local/lib
+
+QT+= network
+
+INCLUDEPATH+= ../../../libpcbsd/


Property changes on: pcbsd/current/src-qt4/pc-sysmanager/view-refresh.png
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream



More information about the Commits mailing list