Changeset d6e137b


Ignore:
Timestamp:
11/12/13 09:28:28 (18 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:
3d59698
Parents:
55b9e32
Message:

PC Update center - pbi installation implementation started

Location:
src-qt4/pc-updatecenter
Files:
13 added
9 edited

Legend:

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

    r13b0607 rd6e137b  
    1616} 
    1717 
    18 bool IndicatorWidget::init(QString check_img, QString ok_img, 
    19                            QString avail_img, QString process_img, 
     18bool IndicatorWidget::init(QString check_img, QString ok_img, QString avail_img, 
     19                           QString download_img, QString install_img, QString error_img, 
    2020                           CAbstractUpdateController *upd_controller) 
    2121{ 
     
    2323        return false; 
    2424 
    25     mCheckImage= check_img; 
    26     mOkImage= ok_img; 
    27     mAvailImage= avail_img; 
    28     mProcessImage= process_img; 
     25    mStateImages[CAbstractUpdateController::eCHECKING]= check_img; 
     26    mStateImages[CAbstractUpdateController::eFULLY_UPDATED]= ok_img; 
     27    mStateImages[CAbstractUpdateController::eUPDATING]= download_img; 
     28    mStateImages[CAbstractUpdateController::eUPDATING_ERROR]= error_img; 
     29    mStateImages[CAbstractUpdateController::eUPDATES_AVAIL]= avail_img; 
     30    mInstallImage= install_img; 
     31    mDownloadImage= download_img; 
     32 
    2933    mpUC = upd_controller; 
    3034    stateChanged(mpUC->currentState()); 
     
    3943void IndicatorWidget::stateChanged(CAbstractUpdateController::EUpdateControllerState new_state) 
    4044{ 
     45    ui->stateImage->setPixmap(QPixmap(mStateImages[new_state])); 
    4146    switch(new_state) 
    4247    { 
    43         case CAbstractUpdateController::eCHECKING: 
     48        case CAbstractUpdateController::eCHECKING:             
    4449            onCheck(); 
    4550            break; 
     
    7580    ui->installButton->setVisible(false); 
    7681 
    77     ui->stateImage->setPixmap(QPixmap(mCheckImage)); 
     82    //ui->stateImage->setPixmap(QPixmap(mCheckImage)); 
    7883 
    7984    ui->msgLabel->setText(tr("Checking for updates...")); 
     
    8691    ui->installButton->setVisible(true); 
    8792 
    88     ui->stateImage->setPixmap(QPixmap(mAvailImage)); 
     93    //ui->stateImage->setPixmap(QPixmap(mAvailImage)); 
    8994 
    9095    if (mpUC) 
     
    99104    ui->installButton->setVisible(false); 
    100105 
    101     ui->stateImage->setPixmap(QPixmap(mOkImage)); 
     106    //ui->stateImage->setPixmap(QPixmap(mOkImage)); 
    102107    ui->msgLabel->setText(tr("Is up to date!")); 
    103108} 
  • src-qt4/pc-updatecenter/indicatorwidget.h

    r3347cf1 rd6e137b  
    33 
    44#include <QWidget> 
     5#include <QIcon> 
    56 
    67#include "updatecontroller.h" 
     
    1819    ~IndicatorWidget(); 
    1920 
    20     bool init(QString check_img, QString ok_img, QString avail_img, QString process_img, 
    21               CAbstractUpdateController* upd_controller); 
     21    bool init(QString check_img, QString ok_img, QString avail_img, 
     22              QString download_img, QString install_img, QString error_img, 
     23              CAbstractUpdateController* upd_controller);     
    2224     
    2325public slots: 
     
    3234 
    3335protected: 
    34     QString mCheckImage; 
    35     QString mOkImage; 
    36     QString mAvailImage; 
    37     QString mProcessImage; 
     36 
     37    QString mDownloadImage; 
     38    QString mInstallImage; 
    3839    CAbstractUpdateController* mpUC; 
     40 
     41    QString mStateImages[CAbstractUpdateController::eMAX]; 
    3942 
    4043private: 
  • src-qt4/pc-updatecenter/mainwindow.cpp

    r55b9e32 rd6e137b  
    2020const QString SYS_OK_IMG =     ":/images/sysok.png"; 
    2121const QString SYS_AVAIL_IMG =  ":/images/sysupdates.png"; 
    22 const QString SYS_PROGRESS_IMG=":/images/sysupdates.png"; 
     22const QString SYS_DL_IMG=      ":/images/sysdownload.png"; 
     23const QString SYS_INSTALL_IMG= ":/images/sysinstall.png"; 
     24const QString SYS_ERROR_IMG=   ":/images/syserror.png"; 
    2325 
    2426const QString PKG_CHECK_IMG =  ":images/pkgcheck.png"; 
     
    2628const QString PKG_AVAIL_IMG =  ":/images/pkgupdates.png"; 
    2729const QString PKG_PROGRESS_IMG=":/images/pkgupdates.png"; 
     30const QString PKG_DL_IMG=      ":/images/pkgdownload.png"; 
     31const QString PKG_INSTALL_IMG= ":/images/pkginstall.png"; 
     32const QString PKG_ERROR_IMG=   ":/images/pkgerror.png"; 
     33 
    2834 
    2935const QString PBI_CHECK_IMG =  ":images/pbicheck.png"; 
     
    3137const QString PBI_AVAIL_IMG =  ":/images/pbiupdates.png"; 
    3238const QString PBI_PROGRESS_IMG=":/images/pbiupdates.png"; 
     39const QString PBI_DL_IMG=      ":/images/pbidownload.png"; 
     40const QString PBI_INSTALL_IMG= ":/images/pbiinstall.png"; 
     41const QString PBI_ERROR_IMG=   ":/images/pbierror.png"; 
    3342 
    3443const QString DEFAULT_APP_ICON=":/images/application.png"; 
     
    6473    mPBIController.check(); 
    6574 
    66     ui->sysIndicator->init(SYS_CHECK_IMG, SYS_OK_IMG, SYS_AVAIL_IMG, SYS_PROGRESS_IMG, 
     75    /* 
     76     *(QString check_img, QString ok_img, QString avail_img, 
     77              QString download_img, QString install_img, QString error_img, 
     78              CAbstractUpdateController* upd_controller); 
     79              */ 
     80 
     81    ui->sysIndicator->init(SYS_CHECK_IMG, SYS_OK_IMG, SYS_AVAIL_IMG, 
     82                           SYS_DL_IMG, SYS_INSTALL_IMG, SYS_ERROR_IMG, 
    6783                           &mSysController); 
    6884 
    69     ui->pkgIndicator->init(PKG_CHECK_IMG, PKG_OK_IMG, PKG_AVAIL_IMG, PKG_PROGRESS_IMG, 
     85    ui->pkgIndicator->init(PKG_CHECK_IMG, PKG_OK_IMG, PKG_AVAIL_IMG, 
     86                           PKG_DL_IMG, PKG_INSTALL_IMG, PKG_ERROR_IMG, 
    7087                           &mPkgController); 
    71     ui->pkgDetailsIndicator->init(PKG_CHECK_IMG, PKG_OK_IMG, PKG_AVAIL_IMG, PKG_PROGRESS_IMG, 
     88    ui->pkgDetailsIndicator->init(PKG_CHECK_IMG, PKG_OK_IMG, PKG_AVAIL_IMG, 
     89                                  PKG_DL_IMG, PKG_INSTALL_IMG, PKG_ERROR_IMG, 
    7290                                  &mPkgController); 
    7391 
    74     ui->pbiIndicator->init(PBI_CHECK_IMG, PBI_OK_IMG, PBI_AVAIL_IMG, PBI_PROGRESS_IMG, 
     92    ui->pbiIndicator->init(PBI_CHECK_IMG, PBI_OK_IMG, PBI_AVAIL_IMG, 
     93                           PBI_DL_IMG, PBI_INSTALL_IMG, PBI_ERROR_IMG, 
    7594                           &mPBIController); 
    76     ui->pbiDetailsIndicator->init(PBI_CHECK_IMG, PBI_OK_IMG, PBI_AVAIL_IMG, PBI_PROGRESS_IMG, 
    77                            &mPBIController); 
     95    ui->pbiDetailsIndicator->init(PBI_CHECK_IMG, PBI_OK_IMG, PBI_AVAIL_IMG, 
     96                                  PBI_DL_IMG, PBI_INSTALL_IMG, PBI_ERROR_IMG, 
     97                                  &mPBIController); 
    7898 
    7999 
  • src-qt4/pc-updatecenter/mainwindow.ui

    r55b9e32 rd6e137b  
    474474           <widget class="QPushButton" name="pushButton_7"> 
    475475            <property name="text"> 
    476              <string>Update only selected</string> 
     476             <string>Update selected only</string> 
     477            </property> 
     478            <property name="icon"> 
     479             <iconset resource="res.qrc"> 
     480              <normaloff>:/images/install.png</normaloff>:/images/install.png</iconset> 
    477481            </property> 
    478482           </widget> 
  • src-qt4/pc-updatecenter/pbicontroller.cpp

    r55b9e32 rd6e137b  
    44 
    55static const char* const AVAIL= "Available:"; 
     6static const char* const DOWNLOAD_INDICATOR = "DOWNLOADED:"; 
     7static const char* const FETCHDONE="FETCHDONE"; 
    68 
    79CPBIController::CPBIController() 
     
    911} 
    1012 
     13void CPBIController::updateSelected(QStringList generic_names_list) 
     14{ 
     15    mAppsToUpdate= generic_names_list; 
     16    mCurrentUpdate=0; 
     17    misWasFETCHDONE= false; 
     18    launchUpdate(); 
     19} 
     20 
    1121void CPBIController::onCheckUpdates() 
    1222{ 
    1323    mvUpdates.clear(); 
     24} 
     25 
     26void CPBIController::onUpdateAll() 
     27{ 
     28    QStringList upd_list; 
     29    for(int i=0; i<mvUpdates.size(); i++) 
     30    { 
     31        mAppsToUpdate<<mvUpdates[i].mGenericName; 
     32    } 
     33    mCurrentUpdate=0; 
     34    misWasFETCHDONE= false; 
    1435} 
    1536 
     
    3859void CPBIController::onReadUpdateLine(QString line) 
    3960{ 
     61    SProgress progress; 
     62    line= line.trimmed(); 
     63    progress.mLogMessages = QStringList()<<line; 
     64    progress.mItemNo= mCurrentUpdate; 
     65    progress.mItemsCount= mAppsToUpdate.size(); 
    4066 
     67    QString current_app = mAppsToUpdate[mCurrentUpdate]; 
     68    current_app= current_app.left(current_app.lastIndexOf("-")); // remove arch 
     69    current_app= current_app.left(current_app.lastIndexOf("-")); // remove ver 
     70 
     71    if (line.contains(DOWNLOAD_INDICATOR)) 
     72    { 
     73        // parse download 
     74        progress.misCanCancel=true; 
     75 
     76        //Example: 
     77        // SIZE: 215710 DOWNLOADED: 3973 SPEED: 233 KB/s 
     78        // ^0    ^1     ^2          ^3   ^4     ^5 
     79 
     80        QStringList dl_list = line.split(" "); 
     81        progress.mProgressMax= dl_list[1].toInt(); 
     82        progress.mProgressCurr= dl_list[3].toInt(); 
     83        QString speed= dl_list[5]; 
     84        progress.mMessage= tr("[%1/%2] Downloading update for %3 at %4").arg(QString::number(progress.mItemNo), 
     85                                                                             QString::number(progress.mItemsCount), 
     86                                                                             current_app, speed); 
     87        reportProgress(progress); 
     88        return; 
     89    } 
     90    else 
     91    { 
     92        if (line == FETCHDONE) 
     93        { 
     94            //indicates beginning of instalation 
     95            misWasFETCHDONE= true; 
     96        } 
     97 
     98        if (misWasFETCHDONE || (line == FETCHDONE)) 
     99        { 
     100            //installing... 
     101            progress.mMessage=tr("[%1/%2] Installing update for %3").arg(QString::number(progress.mItemNo), 
     102                                                                         QString::number(progress.mItemsCount), 
     103                                                                         current_app); 
     104            progress.mSubstate= eInstall; 
     105        } 
     106        else 
     107        { 
     108            progress.mMessage=tr("[%1/%2] Preparing to install update for %3").arg(QString::number(progress.mItemNo), 
     109                                                                         QString::number(progress.mItemsCount), 
     110                                                                         current_app); 
     111        } 
     112    } 
    41113} 
    42114 
     
    58130} 
    59131 
     132void CPBIController::onUpdateProcessfinished(int exitCode) 
     133{ 
     134 
     135} 
     136 
     137void CPBIController::updateShellCommand(QString &cmd, QStringList &args) 
     138{ 
     139 
     140} 
     141 
  • src-qt4/pc-updatecenter/pbicontroller.h

    r55b9e32 rd6e137b  
    1010    Q_OBJECT 
    1111    USES_CHECK_SHELL_COMMAND("pbi_update", QString("--check-all")) 
    12     USES_UPDATE_SHELL_COMMAND("pbi_update", QString("ppppp")) 
    1312 
    1413public: 
     
    2726        { return mvUpdates;} 
    2827 
     28    void updateSelected(QStringList generic_names_list); 
     29 
    2930protected: 
    3031    virtual void onCheckUpdates(); 
     32    virtual void onUpdateAll(); 
     33 
    3134    void onReadCheckLine(QString line); 
    3235    void onReadUpdateLine(QString line); 
    3336 
    3437    virtual void onCheckProcessfinished(int exitCode); 
     38    virtual void onUpdateProcessfinished(int exitCode); 
     39 
     40     virtual void updateShellCommand(QString& cmd, QStringList& args); 
    3541 
    3642private: 
    3743    QVector<SPBIUpdate> mvUpdates; 
    3844 
     45    QStringList mAppsToUpdate; 
     46    int         mCurrentUpdate; 
     47    bool        misWasFETCHDONE; 
     48 
    3949}; 
    4050 
  • src-qt4/pc-updatecenter/res.qrc

    r55b9e32 rd6e137b  
    1212        <file>images/pkgcheck.png</file> 
    1313        <file>images/sysok.png</file> 
    14         <file>images/download.png</file> 
    1514        <file>images/install.png</file> 
    1615        <file>update-center.png</file> 
    1716        <file>images/application.png</file> 
     17        <file>images/pbidownload.png</file> 
     18        <file>images/pbierror.png</file> 
     19        <file>images/pbiinstall.png</file> 
     20        <file>images/sysdownload.png</file> 
     21        <file>images/syserror.png</file> 
     22        <file>images/sysinstall.png</file> 
     23        <file>images/pkgdownload.png</file> 
     24        <file>images/pkgerror.png</file> 
     25        <file>images/pkginstall.png</file> 
    1826    </qresource> 
    1927</RCC> 
  • src-qt4/pc-updatecenter/updatecontroller.cpp

    r55b9e32 rd6e137b  
    7373} 
    7474 
     75void CAbstractUpdateController::launchUpdate() 
     76{ 
     77    QString proc; 
     78    QStringList args; 
     79    updateShellCommand(proc, args); 
     80    mUpdProc.start(proc,args); 
     81    if (!mUpdProc.waitForStarted()) 
     82    { 
     83        reportError(tr("Can not execute update shell command")); 
     84        return; 
     85    } 
     86 
     87    setCurrentState(eUPDATING); 
     88} 
     89 
    7590void CAbstractUpdateController::check() 
    7691{ 
     
    96111    onUpdateAll(); 
    97112 
    98     QString proc; 
    99     QStringList args; 
    100     updateShellCommand(proc, args); 
    101     mUpdProc.start(proc,args); 
    102     if (!mUpdProc.waitForStarted()) 
    103     { 
    104         reportError(tr("Can not execute update shell command")); 
    105         return; 
    106     } 
    107  
    108     setCurrentState(eUPDATING); 
     113    launchUpdate(); 
    109114} 
    110115 
  • src-qt4/pc-updatecenter/updatecontroller.h

    r55b9e32 rd6e137b  
    2626       eUPDATES_AVAIL, 
    2727       eUPDATING, 
    28        eUPDATING_ERROR 
     28       eUPDATING_ERROR, 
     29       eMAX 
    2930    }EUpdateControllerState; 
     31 
     32    typedef enum{ 
     33        eDownload, 
     34        eInstall 
     35    }EUpdateSubstate; 
    3036 
    3137    typedef struct _SProgress 
    3238    { 
    33         int ItemNo; 
    34         int ItemsCount; 
    35         int ProgressMin; 
    36         int ProgressMax; 
    37         int ProgressCurr; 
    38         QString Message; 
     39        int mItemNo; 
     40        int mItemsCount; 
     41        int mProgressMin; 
     42        int mProgressMax; 
     43        int mProgressCurr; 
     44        EUpdateSubstate mSubstate; 
     45        bool        misCanCancel; 
     46        QString     mMessage; 
     47        QStringList mLogMessages; 
     48        _SProgress() 
     49            {   mSubstate = eDownload; misCanCancel = false; 
     50                mMessage = tr("Preparing update..."); 
     51                mItemNo=0; mItemsCount=0; 
     52                mProgressMin=0; mProgressMax=0; mProgressCurr=0; 
     53            } 
    3954    }SProgress; 
    4055 
     
    5368    void reportUpdatesAvail(QString message); 
    5469    void reportError(QString error_message); 
     70    void launchUpdate(); 
    5571 
    5672    virtual void checkShellCommand(QString& cmd, QStringList& args)=0; 
Note: See TracChangeset for help on using the changeset viewer.