Changeset 06ea16c


Ignore:
Timestamp:
11/18/13 05:12:39 (17 months ago)
Author:
yurkis <yurkis@…>
Branches:
master, releng/10.0, releng/10.0.1, releng/10.0.2, releng/10.0.3, releng/10.1, releng/10.1.1, releng/10.1.2
Children:
0ce7a25
Parents:
97d37dfa
Message:

First system update check prototype

Location:
src-qt4/pc-updatecenter
Files:
4 added
10 edited

Legend:

Unmodified
Added
Removed
  • src-qt4/pc-updatecenter/mainwindow.cpp

    rfe1640b r06ea16c  
    4747const QString DEFAULT_APP_ICON=":/images/application.png"; 
    4848 
     49const QString SYSUPDATE_PATCH_ICON = ":/images/sysupdates-patch.png"; 
     50const QString SYSUPDATE_UPGRADE_ICON = ":/images/sysupdates-upgrade.png"; 
     51const QString SYSUPDATE_FBSD_ICON = ":/images/sysupdates-freebsd.png"; 
     52 
    4953const QString DEFAULT_PBI_DB_DIR="/var/db/pbi"; 
    5054const QString INSTALLED_IN_DB="/installed"; 
     55 
     56const QString SYSUPDATE_DATE_FORMAT= "d MMM yyyy"; 
    5157 
    5258MainWindow::MainWindow(QWidget *parent) : 
     
    7278 
    7379#ifdef CONTROLLER_EMULATION_ENABLED 
    74     mPkgController.setEmulateCheckFile("/home/yurkis/_pkgcheck.txt"); 
    75     mPkgController.setEmulateUpdateFile("/home/yurkis/_pkgupd.txt"); 
     80   // mPkgController.setEmulateCheckFile("/home/yurkis/_pkgcheck.txt"); 
     81//    mPkgController.setEmulateUpdateFile("/home/yurkis/_pkgupd.txt"); 
    7682    //mPkgController.setEmulateDelay(1); 
    7783#endif 
     
    101107 
    102108 
     109    connect(&mSysController, SIGNAL(stateChanged(CAbstractUpdateController::EUpdateControllerState)), 
     110            this, SLOT(sysStateChanged(CAbstractUpdateController::EUpdateControllerState))); 
    103111    connect(&mPkgController, SIGNAL(stateChanged(CAbstractUpdateController::EUpdateControllerState)), 
    104112            this, SLOT(pkgStateChanged(CAbstractUpdateController::EUpdateControllerState))); 
     
    123131} 
    124132 
     133void MainWindow::sysStateChanged(CAbstractUpdateController::EUpdateControllerState new_state) 
     134{ 
     135    switch (new_state) 
     136    { 
     137        case CAbstractUpdateController::eUPDATES_AVAIL: 
     138            ui->mainTab->setTabEnabled(TOOLBOX_SYS_INDEX, true); 
     139            break; 
     140        case CAbstractUpdateController::eUPDATING: 
     141            ui->mainTab->setTabEnabled(TOOLBOX_SYS_INDEX, true); 
     142            break; 
     143        case CAbstractUpdateController::eCHECKING: 
     144            ui->mainTab->setTabEnabled(TOOLBOX_SYS_INDEX, false); 
     145            break; 
     146        default: //supress warning 
     147            break; 
     148    } 
     149    if (CAbstractUpdateController::eUPDATES_AVAIL == new_state) 
     150    { 
     151        QVector<CSysController::SSystemUpdate> updates = mSysController.updates(); 
     152        for(int i=0; i<updates.count(); i++) 
     153        { 
     154            QTreeWidgetItem* item = new QTreeWidgetItem; 
     155            QString name = updates[i].mName; 
     156            QString icon_file; 
     157            //Change icon 
     158            switch (updates[i].mType) 
     159            { 
     160                case CSysController::ePATCH: 
     161                    icon_file= SYSUPDATE_PATCH_ICON; 
     162                    name+=QString(" (")+updates[i].mDate.toString(SYSUPDATE_DATE_FORMAT); 
     163                    break; 
     164                 case CSysController::eSYSUPDATE: 
     165                    icon_file= SYSUPDATE_UPGRADE_ICON; 
     166                    break; 
     167                 case CSysController::eFBSDUPDATE: 
     168                    icon_file= SYSUPDATE_FBSD_ICON; 
     169                    break; 
     170            }//switch 
     171            item->setText(0, name); 
     172            item->setIcon(0, QIcon(icon_file)); 
     173            QVariant uData(i); 
     174            item->setData(0, Qt::UserRole, uData); 
     175 
     176            item->setFlags(item->flags() | Qt::ItemIsUserCheckable); 
     177            item->setCheckState(0, Qt::Checked); 
     178 
     179            ui->sysUpdatesList->addTopLevelItem(item); 
     180        } 
     181    } 
     182 
     183} 
     184 
    125185void MainWindow::pkgStateChanged(CAbstractUpdateController::EUpdateControllerState new_state) 
    126186{ 
     
    272332    mPBIController.updateSelected(ListToUpdate); 
    273333} 
     334 
     335void MainWindow::on_sysUpdatesList_itemChanged(QTreeWidgetItem *item, int column) 
     336{ 
     337 
     338} 
     339 
     340void MainWindow::on_sysUpdatesList_itemActivated(QTreeWidgetItem *item, int column) 
     341{ 
     342 
     343} 
     344 
     345void MainWindow::on_sysUpdatesList_itemSelectionChanged() 
     346{ 
     347    QTreeWidgetItem* item = ui->sysUpdatesList->currentItem(); 
     348    QVariant v= item->data(0, Qt::UserRole); 
     349    int id= v.toInt(); 
     350 
     351    QVector<CSysController::SSystemUpdate> updates = mSysController.updates(); 
     352 
     353    if (updates[id].mType == CSysController::ePATCH) 
     354    { 
     355        ui->sysUpdateDetailsStack->setCurrentIndex(0); 
     356        ui->sysPatchDate->setText(updates[id].mDate.toString(SYSUPDATE_DATE_FORMAT)); 
     357        ui->sysPatchSize->setText(updates[id].mSize); 
     358        ui->sysPadthDescription->setText(updates[id].mDetails); 
     359    } 
     360    else 
     361    if (updates[id].mType == CSysController::eSYSUPDATE) 
     362    { 
     363        ui->sysUpdateDetailsStack->setCurrentIndex(1); 
     364        ui->sysUpgradeText->setText(tr("This update will upgrade your PC-BSD to %1").arg(updates[id].mVersion)); 
     365    } 
     366} 
  • src-qt4/pc-updatecenter/mainwindow.h

    rb913d3a r06ea16c  
    33 
    44#include <QMainWindow> 
     5#include <QTreeWidgetItem> 
    56 
    67#include "syscontroller.h" 
     
    3132 
    3233private slots: 
     34    void sysStateChanged(CAbstractUpdateController::EUpdateControllerState new_state); 
    3335    void pkgStateChanged(CAbstractUpdateController::EUpdateControllerState new_state); 
    3436    void pbiStateChanged(CAbstractUpdateController::EUpdateControllerState new_state); 
     
    4143private slots: 
    4244    void on_updateSelectedPBIBtn_clicked(); 
     45    void on_sysUpdatesList_itemChanged(QTreeWidgetItem *item, int column); 
     46    void on_sysUpdatesList_itemActivated(QTreeWidgetItem *item, int column); 
     47    void on_sysUpdatesList_itemSelectionChanged(); 
    4348}; 
    4449 
  • src-qt4/pc-updatecenter/mainwindow.ui

    r453e63a r06ea16c  
    77    <x>0</x> 
    88    <y>0</y> 
    9     <width>594</width> 
    10     <height>459</height> 
     9    <width>592</width> 
     10    <height>457</height> 
    1111   </rect> 
    1212  </property> 
     
    2626      </property> 
    2727      <property name="currentIndex"> 
    28        <number>0</number> 
     28       <number>1</number> 
    2929      </property> 
    3030      <property name="documentMode"> 
     
    243243        <string>System update details</string> 
    244244       </attribute> 
     245       <layout class="QVBoxLayout" name="verticalLayout_8"> 
     246        <item> 
     247         <widget class="QStackedWidget" name="sysUpdatesStack"> 
     248          <widget class="QWidget" name="page"> 
     249           <layout class="QVBoxLayout" name="verticalLayout_9"> 
     250            <item> 
     251             <widget class="QTreeWidget" name="sysUpdatesList"> 
     252              <column> 
     253               <property name="text"> 
     254                <string>Update</string> 
     255               </property> 
     256              </column> 
     257             </widget> 
     258            </item> 
     259            <item> 
     260             <layout class="QHBoxLayout" name="horizontalLayout_4"> 
     261              <item> 
     262               <spacer name="horizontalSpacer_5"> 
     263                <property name="orientation"> 
     264                 <enum>Qt::Horizontal</enum> 
     265                </property> 
     266                <property name="sizeHint" stdset="0"> 
     267                 <size> 
     268                  <width>40</width> 
     269                  <height>20</height> 
     270                 </size> 
     271                </property> 
     272               </spacer> 
     273              </item> 
     274              <item> 
     275               <widget class="QPushButton" name="pushButton_3"> 
     276                <property name="text"> 
     277                 <string>Install selected only</string> 
     278                </property> 
     279               </widget> 
     280              </item> 
     281             </layout> 
     282            </item> 
     283            <item> 
     284             <widget class="QStackedWidget" name="sysUpdateDetailsStack"> 
     285              <property name="currentIndex"> 
     286               <number>1</number> 
     287              </property> 
     288              <widget class="QWidget" name="page_9"> 
     289               <layout class="QHBoxLayout" name="horizontalLayout_7"> 
     290                <item> 
     291                 <widget class="QLabel" name="label_5"> 
     292                  <property name="text"> 
     293                   <string/> 
     294                  </property> 
     295                  <property name="pixmap"> 
     296                   <pixmap resource="res.qrc">:/images/sysupdates-patch.png</pixmap> 
     297                  </property> 
     298                 </widget> 
     299                </item> 
     300                <item> 
     301                 <layout class="QVBoxLayout" name="verticalLayout_11"> 
     302                  <item> 
     303                   <widget class="QLabel" name="label_8"> 
     304                    <property name="font"> 
     305                     <font> 
     306                      <weight>75</weight> 
     307                      <bold>true</bold> 
     308                     </font> 
     309                    </property> 
     310                    <property name="text"> 
     311                     <string>PC-BSD update patch</string> 
     312                    </property> 
     313                   </widget> 
     314                  </item> 
     315                  <item> 
     316                   <layout class="QFormLayout" name="formLayout"> 
     317                    <item row="0" column="0"> 
     318                     <widget class="QLabel" name="label_12"> 
     319                      <property name="text"> 
     320                       <string>Description</string> 
     321                      </property> 
     322                     </widget> 
     323                    </item> 
     324                    <item row="0" column="1"> 
     325                     <widget class="QLabel" name="sysPadthDescription"> 
     326                      <property name="text"> 
     327                       <string/> 
     328                      </property> 
     329                     </widget> 
     330                    </item> 
     331                    <item row="1" column="0"> 
     332                     <widget class="QLabel" name="label_10"> 
     333                      <property name="text"> 
     334                       <string>Date</string> 
     335                      </property> 
     336                     </widget> 
     337                    </item> 
     338                    <item row="1" column="1"> 
     339                     <widget class="QLabel" name="sysPatchDate"> 
     340                      <property name="text"> 
     341                       <string/> 
     342                      </property> 
     343                     </widget> 
     344                    </item> 
     345                    <item row="2" column="0"> 
     346                     <widget class="QLabel" name="label_11"> 
     347                      <property name="text"> 
     348                       <string>Size</string> 
     349                      </property> 
     350                     </widget> 
     351                    </item> 
     352                    <item row="2" column="1"> 
     353                     <widget class="QLabel" name="sysPatchSize"> 
     354                      <property name="text"> 
     355                       <string/> 
     356                      </property> 
     357                     </widget> 
     358                    </item> 
     359                   </layout> 
     360                  </item> 
     361                 </layout> 
     362                </item> 
     363                <item> 
     364                 <spacer name="horizontalSpacer_8"> 
     365                  <property name="orientation"> 
     366                   <enum>Qt::Horizontal</enum> 
     367                  </property> 
     368                  <property name="sizeHint" stdset="0"> 
     369                   <size> 
     370                    <width>314</width> 
     371                    <height>20</height> 
     372                   </size> 
     373                  </property> 
     374                 </spacer> 
     375                </item> 
     376               </layout> 
     377              </widget> 
     378              <widget class="QWidget" name="page_10"> 
     379               <layout class="QHBoxLayout" name="horizontalLayout_5"> 
     380                <item> 
     381                 <widget class="QLabel" name="label_6"> 
     382                  <property name="text"> 
     383                   <string/> 
     384                  </property> 
     385                  <property name="pixmap"> 
     386                   <pixmap resource="res.qrc">:/images/sysupdates-upgrade.png</pixmap> 
     387                  </property> 
     388                 </widget> 
     389                </item> 
     390                <item> 
     391                 <layout class="QVBoxLayout" name="verticalLayout_20"> 
     392                  <item> 
     393                   <widget class="QLabel" name="label_9"> 
     394                    <property name="font"> 
     395                     <font> 
     396                      <weight>75</weight> 
     397                      <bold>true</bold> 
     398                     </font> 
     399                    </property> 
     400                    <property name="text"> 
     401                     <string>PC-BSD upgrade</string> 
     402                    </property> 
     403                   </widget> 
     404                  </item> 
     405                  <item> 
     406                   <widget class="QLabel" name="sysUpgradeText"> 
     407                    <property name="text"> 
     408                     <string/> 
     409                    </property> 
     410                   </widget> 
     411                  </item> 
     412                  <item> 
     413                   <spacer name="verticalSpacer_5"> 
     414                    <property name="orientation"> 
     415                     <enum>Qt::Vertical</enum> 
     416                    </property> 
     417                    <property name="sizeHint" stdset="0"> 
     418                     <size> 
     419                      <width>20</width> 
     420                      <height>40</height> 
     421                     </size> 
     422                    </property> 
     423                   </spacer> 
     424                  </item> 
     425                 </layout> 
     426                </item> 
     427                <item> 
     428                 <spacer name="horizontalSpacer_6"> 
     429                  <property name="orientation"> 
     430                   <enum>Qt::Horizontal</enum> 
     431                  </property> 
     432                  <property name="sizeHint" stdset="0"> 
     433                   <size> 
     434                    <width>347</width> 
     435                    <height>20</height> 
     436                   </size> 
     437                  </property> 
     438                 </spacer> 
     439                </item> 
     440               </layout> 
     441              </widget> 
     442              <widget class="QWidget" name="page_11"> 
     443               <widget class="QListWidget" name="listWidget"> 
     444                <property name="geometry"> 
     445                 <rect> 
     446                  <x>125</x> 
     447                  <y>20</y> 
     448                  <width>301</width> 
     449                  <height>91</height> 
     450                 </rect> 
     451                </property> 
     452               </widget> 
     453               <widget class="QLabel" name="label_7"> 
     454                <property name="geometry"> 
     455                 <rect> 
     456                  <x>1</x> 
     457                  <y>11</y> 
     458                  <width>64</width> 
     459                  <height>64</height> 
     460                 </rect> 
     461                </property> 
     462                <property name="text"> 
     463                 <string/> 
     464                </property> 
     465                <property name="pixmap"> 
     466                 <pixmap resource="res.qrc">:/images/sysupdates-freebsd.png</pixmap> 
     467                </property> 
     468               </widget> 
     469              </widget> 
     470             </widget> 
     471            </item> 
     472           </layout> 
     473          </widget> 
     474          <widget class="QWidget" name="page_2"/> 
     475         </widget> 
     476        </item> 
     477       </layout> 
    245478      </widget> 
    246479      <widget class="QWidget" name="tab"> 
     
    497730     <x>0</x> 
    498731     <y>0</y> 
    499      <width>594</width> 
     732     <width>592</width> 
    500733     <height>21</height> 
    501734    </rect> 
     
    505738     <string>File</string> 
    506739    </property> 
     740    <addaction name="actionExit"/> 
    507741   </widget> 
    508742   <widget class="QMenu" name="menuLogs"> 
     
    514748    <addaction name="actionLast_software_update_log"/> 
    515749   </widget> 
     750   <widget class="QMenu" name="menuControl"> 
     751    <property name="title"> 
     752     <string>Control</string> 
     753    </property> 
     754    <addaction name="actionIgnored_updates"/> 
     755    <addaction name="actionUpdate_set"/> 
     756    <addaction name="actionSystem_branches"/> 
     757   </widget> 
     758   <widget class="QMenu" name="menuRemote"> 
     759    <property name="title"> 
     760     <string>Remote</string> 
     761    </property> 
     762    <addaction name="actionJail"/> 
     763   </widget> 
    516764   <addaction name="menuFile"/> 
     765   <addaction name="menuRemote"/> 
     766   <addaction name="menuControl"/> 
    517767   <addaction name="menuLogs"/> 
    518768  </widget> 
     
    541791   </property> 
    542792  </action> 
     793  <action name="actionUpdate_set"> 
     794   <property name="text"> 
     795    <string>Update set</string> 
     796   </property> 
     797  </action> 
     798  <action name="actionSystem_branches"> 
     799   <property name="text"> 
     800    <string>System branches</string> 
     801   </property> 
     802  </action> 
     803  <action name="actionIgnored_updates"> 
     804   <property name="text"> 
     805    <string>Ignored updates</string> 
     806   </property> 
     807  </action> 
     808  <action name="actionExit"> 
     809   <property name="text"> 
     810    <string>Exit</string> 
     811   </property> 
     812  </action> 
     813  <action name="actionJail"> 
     814   <property name="text"> 
     815    <string>Jail</string> 
     816   </property> 
     817  </action> 
    543818 </widget> 
    544819 <layoutdefault spacing="6" margin="11"/> 
  • src-qt4/pc-updatecenter/pbicontroller.h

    r5c7262b r06ea16c  
    3939    virtual void onUpdateProcessfinished(int exitCode); 
    4040 
    41      virtual void updateShellCommand(QString& cmd, QStringList& args); 
     41    virtual void updateShellCommand(QString& cmd, QStringList& args); 
    4242 
    4343private: 
  • src-qt4/pc-updatecenter/pc-updatecenter.pro

    rb913d3a r06ea16c  
    3232    pkgcontroller.h \ 
    3333    pbicontroller.h \ 
    34     dialogconflict.h 
     34    dialogconflict.h \ 
     35    utils.h 
    3536 
    3637FORMS    += mainwindow.ui \ 
  • src-qt4/pc-updatecenter/res.qrc

    r5c7262b r06ea16c  
    2525        <file>images/pkginstall.png</file> 
    2626        <file>images/dialog-cancel.png</file> 
     27        <file>images/sysupdates-freebsd.png</file> 
     28        <file>images/sysupdates-patch.png</file> 
     29        <file>images/sysupdates-upgrade.png</file> 
    2730    </qresource> 
    2831</RCC> 
  • src-qt4/pc-updatecenter/syscontroller.cpp

    r55b9e32 r06ea16c  
    11#include "syscontroller.h" 
    2  
     2#include "utils.h" 
    33#include <QDebug> 
    44 
    5 static const QString UPDATE_MANAGER = "pc-updatemanager"; 
    6 #define UM_CHECK_PARAMS "check" 
     5_STRING_CONSTANT PC_UPDATE_COMMAND = "pc-updatemanager"; 
     6_STRING_CONSTANT FBSD_UPDATE_COMMAND = "pc-fbsdupdatecheck"; 
     7static const QStringList PC_UPDATE_ARGS(QStringList()<<"check"); 
     8static const QStringList FBSD_UPDATE_ARGS; 
     9 
     10_STRING_CONSTANT NAME_TAG = "NAME:"; 
     11_STRING_CONSTANT TYPE_TAG = "TYPE:"; 
     12_STRING_CONSTANT TAG_TAG = "TAG:"; 
     13_STRING_CONSTANT VERSION_TAG = "VERSION:"; 
     14_STRING_CONSTANT DEATILS_TAG = "DETAILS:"; 
     15_STRING_CONSTANT DATE_TAG = "DATE:"; 
     16_STRING_CONSTANT SIZE_TAG = "SIZE:"; 
     17_STRING_CONSTANT CU_END_MARKER = "To install:"; 
     18_STRING_CONSTANT PATCH_TYPE = "PATCH"; 
     19_STRING_CONSTANT SYSUPDATE_TYPE = "SYSUPDATE"; 
     20 
    721 
    822CSysController::CSysController() 
    923{ 
     24    misFREEBSDCheck= false; 
     25} 
    1026 
     27void CSysController::onCheckUpdates() 
     28{ 
     29    misFREEBSDCheck= false; 
     30    mvUpdates.clear(); 
     31} 
     32 
     33void CSysController::checkShellCommand(QString &cmd, QStringList &args) 
     34{ 
     35    if (misFREEBSDCheck) 
     36    { 
     37        cmd= FBSD_UPDATE_COMMAND; 
     38        args= FBSD_UPDATE_ARGS; 
     39    } 
     40    else 
     41    { 
     42        cmd= PC_UPDATE_COMMAND; 
     43        args= PC_UPDATE_ARGS; 
     44    } 
    1145} 
    1246 
    1347void CSysController::onReadCheckLine(QString line) 
    14 { 
    15     if (line == QString("Your system is up to date!")) 
    16     { 
    17         setCurrentState(eFULLY_UPDATED); 
    18     } 
    19  
    20     qDebug()<<line; 
     48{     
     49    if (misFREEBSDCheck) 
     50        parseCheckFREEBSDLine(line); 
     51    else 
     52        parseCheckPCBSDLine(line); 
    2153 
    2254} 
     
    2658 
    2759} 
     60 
     61void CSysController::onCheckProcessfinished(int exitCode) 
     62{ 
     63    if (!misFREEBSDCheck) 
     64    { 
     65        qDebug()<<"PC updates check proc finished!"; 
     66        misFREEBSDCheck= true; 
     67        launchCheck(); 
     68    } 
     69    else 
     70    { 
     71        qDebug()<<"Sys updates check done!"; 
     72        if (mvUpdates.size()) 
     73        { 
     74            setCurrentState(eUPDATES_AVAIL); 
     75            return; 
     76        } 
     77        else 
     78        { 
     79            setCurrentState(eFULLY_UPDATED); 
     80            return; 
     81        } 
     82    } 
     83} 
     84 
     85void CSysController::onCancel() 
     86{ 
     87 
     88} 
     89 
     90void CSysController::parseCheckPCBSDLine(QString line) 
     91{ 
     92    /*if (line == QString("Your system is up to date!")) 
     93    { 
     94        setCurrentState(eFULLY_UPDATED); 
     95    }*/ 
     96    static SSystemUpdate upd; 
     97    line= line.trimmed(); 
     98 
     99#define _GET_TAG(tag, field)  if(line.indexOf(tag) == 0) {upd.field = line.replace(tag,""); return;} 
     100    _GET_TAG(NAME_TAG, mName); 
     101    _GET_TAG(TAG_TAG, mTag); 
     102    _GET_TAG(VERSION_TAG, mVersion); 
     103    _GET_TAG(DEATILS_TAG, mDetails); 
     104    _GET_TAG(SIZE_TAG, mSize); 
     105#undef _GET_TAG 
     106 
     107    if (line.indexOf(TYPE_TAG) == 0) 
     108    { 
     109        line= line.replace(TYPE_TAG, ""); 
     110        if (line.contains(SYSUPDATE_TYPE)) 
     111        { 
     112            upd.mType = eSYSUPDATE; 
     113        } 
     114        else 
     115        { 
     116            upd.mType = ePATCH; 
     117        } 
     118    } 
     119 
     120    if (line.indexOf(DATE_TAG) == 0) 
     121    { 
     122        //Example: 
     123        // DATE: 02-10-2013 
     124        // x     ^0 ^1 ^2   (m-d-y)? 
     125        QString y,m,d; 
     126        line= line.replace(DATE_TAG, ""); 
     127        QStringList line_list = line.split("-"); 
     128        upd.mDate= QDate(line_list[2].toInt(), 
     129                         line_list[0].toInt(), 
     130                         line_list[1].toInt()); 
     131        qDebug()<<upd.mDate.toString("d MMM yyyy"); 
     132        return; 
     133    } 
     134 
     135    if (line.indexOf(CU_END_MARKER) == 0) 
     136    { 
     137        mvUpdates.push_back(upd); 
     138        upd = SSystemUpdate(); 
     139        return; 
     140    } 
     141 
     142 
     143 
     144} 
     145 
     146void CSysController::parseCheckFREEBSDLine(QString line) 
     147{ 
     148    qDebug()<<line; 
     149} 
  • src-qt4/pc-updatecenter/syscontroller.h

    r55b9e32 r06ea16c  
    33 
    44#include "updatecontroller.h" 
     5#include "utils.h" 
     6 
    57#include <QProcess> 
    68#include <QString> 
     9#include <QVector> 
     10#include <QDate> 
    711 
    812class CSysController : public CAbstractUpdateController 
     
    1014    Q_OBJECT 
    1115 
    12     USES_CHECK_SHELL_COMMAND("pc-updatemanager", QString("check")) 
     16    //USES_CHECK_SHELL_COMMAND("pc-updatemanager", QString("check")) 
    1317    USES_UPDATE_SHELL_COMMAND("pc-updatemanager", QString("check")) 
    1418 
    1519public: 
    1620    CSysController(); 
     21 
     22    typedef enum{ 
     23        eSYSUPDATE, 
     24        ePATCH, 
     25        eFBSDUPDATE 
     26    }ESysUpdate; 
     27 
     28    typedef struct _SSystemUpdate 
     29    { 
     30        ESysUpdate mType; 
     31        QString mName; 
     32        QString mTag; 
     33        QString mDetails; // For patch only 
     34        QString mSize;    // For patch only 
     35        QString mVersion; // For sysupdates only 
     36        QDate   mDate;    // For patch only 
     37        QStringList mFilesToUpdate; //For FreeBSD updates only 
     38 
     39    }SSystemUpdate; 
    1740     
     41    QVector<SSystemUpdate> updates() {return mvUpdates;} 
     42 
    1843protected: 
     44    virtual void onCheckUpdates(); 
     45    virtual void checkShellCommand(QString& cmd, QStringList& args); 
     46 
    1947    void onReadCheckLine(QString line); 
    2048    void onReadUpdateLine(QString line); 
    2149 
     50    virtual void onCheckProcessfinished(int exitCode); 
     51    virtual void onCancel(); 
     52 
    2253private: 
    23      
     54    bool misFREEBSDCheck; 
     55    QVector<SSystemUpdate> mvUpdates; 
     56 
     57    void parseCheckPCBSDLine(QString line); 
     58    void parseCheckFREEBSDLine(QString line); 
    2459}; 
    2560 
  • src-qt4/pc-updatecenter/updatecontroller.cpp

    r7c8b8a0 r06ea16c  
    103103} 
    104104 
    105 void CAbstractUpdateController::check() 
     105void CAbstractUpdateController::launchCheck() 
    106106{ 
    107     onCheckUpdates(); 
    108  
    109107    QString proc; 
    110108    QStringList args; 
     
    126124 
    127125    setCurrentState(eCHECKING); 
     126} 
     127 
     128void CAbstractUpdateController::check() 
     129{ 
     130    onCheckUpdates(); 
     131    launchCheck(); 
    128132} 
    129133 
  • src-qt4/pc-updatecenter/updatecontroller.h

    rfe1640b r06ea16c  
    7171    void reportError(QString error_message); 
    7272    void launchUpdate(); 
     73    void launchCheck(); 
    7374    QProcess& process() {return mUpdProc;} 
    7475 
Note: See TracChangeset for help on using the changeset viewer.