Changeset 67e6e29


Ignore:
Timestamp:
04/29/13 06:11:03 (17 months ago)
Author:
Kris Moore <kris@…>
Branches:
master, 9.1-release, 9.2-release, releng/10.0, releng/10.0.1, releng/10.0.2, releng/10.0.3
Children:
ce5bcd0
Parents:
83fd730
Message:

Update the pc-updatemanager, remove the pkgng stuff, since its all
in pc-pkgmanager now

Location:
src-qt4/pc-updategui
Files:
3 edited

Legend:

Unmodified
Added
Removed
  • src-qt4/pc-updategui/mainWin.cpp

    r1620346 r67e6e29  
    3737  connect(buttonRescan, SIGNAL(clicked()), this, SLOT(slotRescanUpdates())); 
    3838  connect(pushInstallUpdates, SIGNAL(clicked()), this, SLOT(slotInstallClicked())); 
    39   connect(pushUpdatePkgs, SIGNAL(clicked()), this, SLOT(slotUpdatePkgsClicked())); 
    4039  connect(pushClose, SIGNAL(clicked()), this, SLOT(slotCloseClicked())); 
    41   connect(buttonRescanPkgs, SIGNAL(clicked()), this, SLOT(slotRescanPkgsClicked())); 
    4240  connect(checkAll, SIGNAL(clicked()), this, SLOT(slotSelectAllClicked())); 
    4341  connect(listViewUpdates, SIGNAL(itemClicked(QListWidgetItem *)),this,SLOT(slotListClicked())); 
     
    4947 
    5048  QTimer::singleShot(100, this, SLOT(slotRescanUpdates() ) ); 
    51   QTimer::singleShot(200, this, SLOT(slotRescanPkgsClicked() ) ); 
    5249} 
    5350 
     
    116113  // Set our UI elements 
    117114  progressUpdate->setHidden(false); 
    118   tabUpdates->setEnabled(false); 
    119115 
    120116  curUpdate = -1; 
     
    162158    if ( listViewUpdates->item(z)->checkState() == Qt::Checked && curUpdate < z )  
    163159    { 
    164       dPackages = false; 
    165       uPackages = false; 
    166160      curUpdate = z; 
    167161      curUpdateIndex++; 
     
    342336{ 
    343337  if ( ! doingUpdate ) 
    344     tabUpdates->setEnabled(true); 
     338    groupUpdates->setEnabled(true); 
    345339  listViewUpdates->clear(); 
    346340 
     
    354348  // Any system updates? 
    355349  if ( listUpdates.isEmpty() ) { 
    356     if ( ! pushUpdatePkgs->isEnabled() ) { 
    357       textLabel->setText(tr("Your system is fully updated!")); 
    358       tabUpdates->setTabText(0, tr("System Updates")); 
    359     } else { 
    360       textLabel->setText(tr("Package updates available!")); 
    361     } 
     350    textLabel->setText(tr("Your system is fully updated!")); 
    362351    groupUpdates->setTitle(""); 
     352    groupUpdates->setEnabled(true); 
    363353    return; 
    364354  } 
     
    366356  textLabel->setText(tr("System updates available!")); 
    367357  groupUpdates->setTitle(tr("Available Updates")); 
    368   tabUpdates->setCurrentIndex(0); 
    369   tabUpdates->setTabText(0, tr("System Updates (%1)").arg(listUpdates.count())); 
    370358 
    371359  // Start parsing the updates and list whats available 
     
    417405} 
    418406 
    419 void mainWin::slotRescanPkgsClicked() 
    420 { 
    421   // Check for pkg updates 
    422   checkMPKGUpdates(); 
    423 } 
    424  
    425407void mainWin::slotReadUpdateData() 
    426408{ 
     
    437419 
    438420  QString line, tmp, name, type, version, date, tag, url, size, sa, rr; 
    439   QStringList up, listPkgs; 
     421  QStringList up; 
    440422 
    441423  QProcess p; 
     
    521503 
    522504} 
    523  
    524 void mainWin::checkMPKGUpdates() { 
    525   if ( doingUpdate ) 
    526      return; 
    527  
    528   QString line, tmp, name, pkgname, pkgover, pkgnver; 
    529   QStringList up, listPkgs; 
    530   bool haveUpdates = false; 
    531   int totPkgs=0; 
    532   buttonRescanPkgs->setEnabled(false); 
    533   pushUpdatePkgs->setEnabled(false); 
    534   listViewUpdatesPkgs->clear(); 
    535   groupUpdatesPkgs->setTitle(tr("Checking for updates")); 
    536  
    537   QProcess p; 
    538   if ( wDir.isEmpty() ) 
    539      p.start(QString("pc-updatemanager"), QStringList() << "pkgcheck"); 
    540   else 
    541      p.start(QString("chroot"), QStringList() << wDir << "pc-updatemanager" << "pkgcheck"); 
    542   while(p.state() == QProcess::Starting || p.state() == QProcess::Running) 
    543      QCoreApplication::processEvents(); 
    544  
    545   while (p.canReadLine()) { 
    546     line = p.readLine().simplified(); 
    547     qDebug() << line; 
    548     if ( line.indexOf("Upgrading") != 0) { 
    549        continue; 
    550     } 
    551     tmp = line; 
    552     pkgname = tmp.section(" ", 1, 1); 
    553     pkgname.replace(":", ""); 
    554     pkgover = tmp.section(" ", 2, 2); 
    555     pkgnver = tmp.section(" ", 4, 4); 
    556     QTreeWidgetItem *myItem = new QTreeWidgetItem(QStringList() << pkgname << pkgover << pkgnver); 
    557     listViewUpdatesPkgs->addTopLevelItem(myItem); 
    558     haveUpdates = true; 
    559     totPkgs++; 
    560   } 
    561  
    562   buttonRescanPkgs->setEnabled(true); 
    563   pushUpdatePkgs->setEnabled(haveUpdates); 
    564   if ( totPkgs > 0 ) { 
    565     if ( listUpdates.isEmpty() ) 
    566       tabUpdates->setCurrentIndex(1); 
    567     tabUpdates->setTabText(1, tr("Package Updates (%1)").arg(totPkgs)); 
    568     groupUpdatesPkgs->setTitle(tr("Available updates")); 
    569   } else { 
    570     tabUpdates->setTabText(1, tr("Package Updates")); 
    571     groupUpdatesPkgs->setTitle(tr("No available updates")); 
    572   } 
    573   
    574   slotDisplayUpdates(); 
    575 } 
    576  
    577505 
    578506void mainWin::checkFBSDUpdates() { 
     
    599527    if ( line.indexOf("The following files will be updated ") == 0) { 
    600528       fUp = true; 
    601        listPkgs.clear(); 
    602529       continue; 
    603530    } 
     
    631558} 
    632559 
    633 void mainWin::slotUpdatePkgsClicked() { 
    634   // Set our UI elements 
    635   progressUpdate->setHidden(false); 
    636   tabUpdates->setEnabled(false); 
    637  
    638   dPackages = false; 
    639   uPackages = false; 
    640   doingUpdate=true; 
    641   curUpdate = 0; 
    642  
    643   // Setup the upgrade process 
    644   uProc = new QProcess(); 
    645   QProcessEnvironment env = QProcessEnvironment::systemEnvironment(); 
    646   env.insert("PCFETCHGUI", "YES"); 
    647   uProc->setProcessEnvironment(env); 
    648   uProc->setProcessChannelMode(QProcess::MergedChannels); 
    649  
    650   // Connect the slots 
    651   connect( uProc, SIGNAL(readyReadStandardOutput()), this, SLOT(slotReadPkgUpdateOutput()) ); 
    652   connect( uProc, SIGNAL(finished(int, QProcess::ExitStatus)), this, SLOT(slotUpdatePkgDone()) ); 
    653  
    654   if ( wDir.isEmpty() ) 
    655     uProc->start("pc-updatemanager", QStringList() << "pkgupdate"); 
    656   else 
    657     uProc->start("chroot", QStringList() << wDir << "pc-updatemanager" << "pkgupdate"); 
    658  
    659   textLabel->setText(tr("Starting package updates...")); 
    660  
    661   progressUpdate->setRange(0, listViewUpdatesPkgs->topLevelItemCount() ); 
    662   progressUpdate->setValue(0); 
    663 } 
    664  
    665 void mainWin::slotReadPkgUpdateOutput() { 
    666    QString line, tmp, cur, tot, fname; 
    667  
    668    while (uProc->canReadLine()) { 
    669      line = uProc->readLine().simplified(); 
    670      qDebug() << "Normal Line:" << line; 
    671      tmp = line; 
    672      tmp.truncate(50); 
    673      if ( line.indexOf("to be downloaded") != -1 ) { 
    674        textLabel->setText(tr("Downloading packages...")); 
    675        curUpdate = 0; 
    676        progressUpdate->setValue(0); 
    677        continue; 
    678      } 
    679      if ( line.indexOf("Checking integrity") == 0 ) { 
    680        textLabel->setText(line); 
    681        uPackages = true; 
    682        dPackages = false; 
    683        curUpdate = 0; 
    684        progressUpdate->setValue(0); 
    685      } 
    686      if ( line.indexOf("FETCH: ") == 0 ) {  
    687         progressUpdate->setValue(progressUpdate->value() + 1);  
    688         tmp = line;  
    689         tmp = tmp.remove(0, tmp.lastIndexOf("/") + 1);  
    690         textLabel->setText(tr("Downloading: %1").arg(tmp));  
    691         continue; 
    692      }  
    693       
    694      if ( line.indexOf("SIZE: ") == 0 ) { 
    695           bool ok, ok2; 
    696           line.replace("SIZE: ", ""); 
    697           line.replace("DOWNLOADED: ", ""); 
    698           line.replace("SPEED: ", ""); 
    699           line.section(" ", 0, 0).toInt(&ok); 
    700           line.section(" ", 1, 1).toInt(&ok2); 
    701     
    702           if ( ok && ok2 ) { 
    703             QString unit; 
    704             int tot = line.section(" ", 0, 0).toInt(&ok); 
    705             int cur = line.section(" ", 1, 1).toInt(&ok2); 
    706             QString percent = QString::number( (float)(cur * 100)/tot ); 
    707             QString speed = line.section(" ", 2, 3); 
    708  
    709             // Get the MB downloaded / total 
    710             if ( tot > 2048 ) { 
    711               unit="MB"; 
    712               tot = tot / 1024; 
    713               cur = cur / 1024; 
    714             } else { 
    715               unit="KB"; 
    716             } 
    717  
    718             QString ProgressString=QString("%1" + unit + " of %2" + unit + " at %3").arg(cur).arg(tot).arg(speed); 
    719             progressUpdate->setRange(0, tot); 
    720             progressUpdate->setValue(cur); 
    721          } 
    722      } 
    723  
    724      if ( uPackages ) { 
    725        if ( line.indexOf("Upgrading") == 0 ) { 
    726          textLabel->setText(line); 
    727          curUpdate++; 
    728          progressUpdate->setValue(curUpdate); 
    729        } 
    730        continue; 
    731      } 
    732  
    733    } // end of while 
    734 } 
    735  
    736 // Function to read output of pipefile 
    737 void mainWin::slotReadEventPipe(int fd) { 
    738   QString tmp, fname, cur, tot; 
    739   bool ok, ok2; 
    740   char buff[4028]; 
    741   int totread = read(fd, buff, 4020); 
    742   buff[totread]='\0'; 
    743   QString line = buff; 
    744   line = line.simplified(); 
    745   //qDebug() << "Found line:" << line; 
    746    
    747   if ( line.indexOf("INFO_FETCH") != -1  && dPackages ) { 
    748      tmp = line; 
    749      fname = tmp.section(":", 4, 4); 
    750      fname.remove(0, fname.lastIndexOf('/') + 1); 
    751      fname  = fname.section('"', 0, 0); 
    752      cur = tmp.section(":", 5, 5); 
    753      cur = cur.remove(','); 
    754      cur = cur.section(" ", 1, 1); 
    755      cur = cur.simplified(); 
    756      tot = tmp.section(":", 6, 6); 
    757      tot = tot.simplified(); 
    758      tot = tot.remove(','); 
    759      tot = tot.section("}", 0, 0); 
    760  
    761      textLabel->setText(tr("Downloading %1").arg(fname)); 
    762      tot.toInt(&ok); 
    763      cur.toInt(&ok2); 
    764      if ( ok && ok2 ) 
    765      {  
    766        progressUpdate->setRange(0, tot.toInt(&ok2)); 
    767        progressUpdate->setValue(cur.toInt(&ok2)); 
    768      } 
    769       
    770      //qDebug() << "File:" << fname << "cur" << cur << "tot" << tot; 
    771   } 
    772 } 
    773  
    774 void mainWin::slotUpdatePkgDone() { 
    775   progressUpdate->setHidden(true); 
    776   QFile sysTrig( SYSTRIGGER ); 
    777   if ( sysTrig.open( QIODevice::WriteOnly ) ) { 
    778     QTextStream streamTrig( &sysTrig ); 
    779      streamTrig << "INSTALLFINISHED: "; 
    780   } 
    781  
    782   if ( uProc->exitCode() != 0 ) 
    783     QMessageBox::warning(this, tr("Failed package update"), tr("The package update failed! If this persists, you may need to manually run: pc-updatemanager pkgupdate")); 
    784  
    785   doingUpdate=false; 
    786   checkMPKGUpdates(); 
    787 } 
  • src-qt4/pc-updategui/mainWin.h

    r1620346 r67e6e29  
    5050    void slotCloseClicked(); 
    5151 
    52     // Package updates 
    53     void slotRescanPkgsClicked(); 
    54     void slotUpdatePkgsClicked(); 
    55     void slotReadPkgUpdateOutput(); 
    56     void slotUpdatePkgDone(); 
    57     void slotReadEventPipe(int fd); 
    58  
    5952private: 
    6053    void doUpdates(); 
    6154    bool sanityCheck(); 
    6255    void checkFBSDUpdates(); 
    63     void checkMPKGUpdates(); 
    6456    void checkPCUpdates(); 
    6557    int curUpdate; 
    6658    int curUpdateIndex; 
    6759    int totUpdate; 
    68     bool dPackages; 
    69     bool uPackages; 
    7060    bool doingUpdate; 
    7161    QProcess *uProc; 
     
    7363    QString wDir, wIP; 
    7464    QString lastError; 
    75     QSocketNotifier *eSock; 
    7665 
    7766signals: 
  • src-qt4/pc-updategui/mainWin.ui

    r1620346 r67e6e29  
    77    <x>0</x> 
    88    <y>0</y> 
    9     <width>554</width> 
    10     <height>338</height> 
     9    <width>593</width> 
     10    <height>339</height> 
    1111   </rect> 
    1212  </property> 
     
    1515  </property> 
    1616  <layout class="QGridLayout" name="gridLayout"> 
     17   <item row="3" column="0"> 
     18    <layout class="QHBoxLayout" name="horizontalLayout_3"> 
     19     <item> 
     20      <spacer name="horizontalSpacer_2"> 
     21       <property name="orientation"> 
     22        <enum>Qt::Horizontal</enum> 
     23       </property> 
     24       <property name="sizeHint" stdset="0"> 
     25        <size> 
     26         <width>40</width> 
     27         <height>20</height> 
     28        </size> 
     29       </property> 
     30      </spacer> 
     31     </item> 
     32     <item> 
     33      <widget class="QPushButton" name="pushClose"> 
     34       <property name="text"> 
     35        <string>&amp;Close</string> 
     36       </property> 
     37      </widget> 
     38     </item> 
     39    </layout> 
     40   </item> 
    1741   <item row="0" column="0"> 
    1842    <widget class="QLabel" name="textLabel"> 
     
    4266   </item> 
    4367   <item row="2" column="0"> 
    44     <widget class="QTabWidget" name="tabUpdates"> 
    45      <property name="currentIndex"> 
    46       <number>0</number> 
     68    <widget class="QGroupBox" name="groupUpdates"> 
     69     <property name="title"> 
     70      <string>Available Updates</string> 
    4771     </property> 
    48      <widget class="QWidget" name="systab"> 
    49       <attribute name="title"> 
    50        <string>System Updates</string> 
    51       </attribute> 
    52       <layout class="QGridLayout" name="gridLayout_2"> 
    53        <item row="0" column="0"> 
    54         <widget class="QGroupBox" name="groupUpdates"> 
    55          <property name="title"> 
    56           <string>Available Updates</string> 
    57          </property> 
    58          <layout class="QGridLayout" name="gridLayout_3"> 
    59           <item row="0" column="0"> 
    60            <layout class="QHBoxLayout" name="horizontalLayout_2"> 
    61             <item> 
    62              <widget class="QCheckBox" name="checkAll"> 
    63               <property name="text"> 
    64                <string>Select / Deselect All</string> 
    65               </property> 
    66              </widget> 
    67             </item> 
    68             <item> 
    69              <spacer name="horizontalSpacer"> 
    70               <property name="orientation"> 
    71                <enum>Qt::Horizontal</enum> 
    72               </property> 
    73               <property name="sizeHint" stdset="0"> 
    74                <size> 
    75                 <width>40</width> 
    76                 <height>20</height> 
    77                </size> 
    78               </property> 
    79              </spacer> 
    80             </item> 
    81             <item> 
    82              <widget class="QPushButton" name="buttonRescan"> 
    83               <property name="text"> 
    84                <string>Re&amp;scan for Updates</string> 
    85               </property> 
    86               <property name="icon"> 
    87                <iconset resource="pc-updategui.qrc"> 
    88                 <normaloff>:/view-refresh.png</normaloff>:/view-refresh.png</iconset> 
    89               </property> 
    90               <property name="flat"> 
    91                <bool>false</bool> 
    92               </property> 
    93              </widget> 
    94             </item> 
    95            </layout> 
    96           </item> 
    97           <item row="1" column="0"> 
    98            <widget class="QListWidget" name="listViewUpdates"/> 
    99           </item> 
    100           <item row="2" column="0"> 
    101            <layout class="QHBoxLayout" name="horizontalLayout"> 
    102             <item> 
    103              <widget class="QPushButton" name="pushInstallUpdates"> 
    104               <property name="text"> 
    105                <string>&amp;Install selected updates</string> 
    106               </property> 
    107              </widget> 
    108             </item> 
    109             <item> 
    110              <spacer name="spacer2"> 
    111               <property name="orientation"> 
    112                <enum>Qt::Horizontal</enum> 
    113               </property> 
    114               <property name="sizeType"> 
    115                <enum>QSizePolicy::Expanding</enum> 
    116               </property> 
    117               <property name="sizeHint" stdset="0"> 
    118                <size> 
    119                 <width>223</width> 
    120                 <height>21</height> 
    121                </size> 
    122               </property> 
    123              </spacer> 
    124             </item> 
    125            </layout> 
    126           </item> 
    127          </layout> 
    128         </widget> 
    129        </item> 
    130       </layout> 
    131      </widget> 
    132      <widget class="QWidget" name="pkgtab"> 
    133       <attribute name="title"> 
    134        <string>Package Updates</string> 
    135       </attribute> 
    136       <layout class="QGridLayout" name="gridLayout_5"> 
    137        <item row="0" column="0"> 
    138         <widget class="QGroupBox" name="groupUpdatesPkgs"> 
    139          <property name="title"> 
    140           <string>Available Updates</string> 
    141          </property> 
    142          <layout class="QGridLayout" name="gridLayout_4"> 
    143           <item row="0" column="0"> 
    144            <layout class="QHBoxLayout" name="horizontalLayout_4"> 
    145             <item> 
    146              <spacer name="horizontalSpacer_3"> 
    147               <property name="orientation"> 
    148                <enum>Qt::Horizontal</enum> 
    149               </property> 
    150               <property name="sizeHint" stdset="0"> 
    151                <size> 
    152                 <width>40</width> 
    153                 <height>20</height> 
    154                </size> 
    155               </property> 
    156              </spacer> 
    157             </item> 
    158             <item> 
    159              <widget class="QPushButton" name="buttonRescanPkgs"> 
    160               <property name="text"> 
    161                <string>Re&amp;scan packages</string> 
    162               </property> 
    163               <property name="icon"> 
    164                <iconset resource="pc-updategui.qrc"> 
    165                 <normaloff>:/view-refresh.png</normaloff>:/view-refresh.png</iconset> 
    166               </property> 
    167               <property name="flat"> 
    168                <bool>false</bool> 
    169               </property> 
    170              </widget> 
    171             </item> 
    172            </layout> 
    173           </item> 
    174           <item row="2" column="0"> 
    175            <layout class="QHBoxLayout" name="horizontalLayout_5"> 
    176             <item> 
    177              <widget class="QPushButton" name="pushUpdatePkgs"> 
    178               <property name="enabled"> 
    179                <bool>false</bool> 
    180               </property> 
    181               <property name="text"> 
    182                <string>&amp;Update packages</string> 
    183               </property> 
    184              </widget> 
    185             </item> 
    186             <item> 
    187              <spacer name="spacer2_2"> 
    188               <property name="orientation"> 
    189                <enum>Qt::Horizontal</enum> 
    190               </property> 
    191               <property name="sizeType"> 
    192                <enum>QSizePolicy::Expanding</enum> 
    193               </property> 
    194               <property name="sizeHint" stdset="0"> 
    195                <size> 
    196                 <width>223</width> 
    197                 <height>21</height> 
    198                </size> 
    199               </property> 
    200              </spacer> 
    201             </item> 
    202            </layout> 
    203           </item> 
    204           <item row="1" column="0"> 
    205            <widget class="QTreeWidget" name="listViewUpdatesPkgs"> 
    206             <property name="indentation"> 
    207              <number>0</number> 
    208             </property> 
    209             <attribute name="headerCascadingSectionResizes"> 
    210              <bool>false</bool> 
    211             </attribute> 
    212             <attribute name="headerDefaultSectionSize"> 
    213              <number>160</number> 
    214             </attribute> 
    215             <column> 
    216              <property name="text"> 
    217               <string>Package</string> 
    218              </property> 
    219             </column> 
    220             <column> 
    221              <property name="text"> 
    222               <string>Old Version</string> 
    223              </property> 
    224             </column> 
    225             <column> 
    226              <property name="text"> 
    227               <string>New Version</string> 
    228              </property> 
    229             </column> 
    230            </widget> 
    231           </item> 
    232          </layout> 
    233         </widget> 
    234        </item> 
    235       </layout> 
    236      </widget> 
     72     <layout class="QGridLayout" name="gridLayout_3"> 
     73      <item row="0" column="0"> 
     74       <layout class="QHBoxLayout" name="horizontalLayout_2"> 
     75        <item> 
     76         <widget class="QCheckBox" name="checkAll"> 
     77          <property name="text"> 
     78           <string>Select / Deselect All</string> 
     79          </property> 
     80         </widget> 
     81        </item> 
     82        <item> 
     83         <spacer name="horizontalSpacer"> 
     84          <property name="orientation"> 
     85           <enum>Qt::Horizontal</enum> 
     86          </property> 
     87          <property name="sizeHint" stdset="0"> 
     88           <size> 
     89            <width>40</width> 
     90            <height>20</height> 
     91           </size> 
     92          </property> 
     93         </spacer> 
     94        </item> 
     95        <item> 
     96         <widget class="QPushButton" name="buttonRescan"> 
     97          <property name="text"> 
     98           <string>Re&amp;scan for Updates</string> 
     99          </property> 
     100          <property name="icon"> 
     101           <iconset resource="pc-updategui.qrc"> 
     102            <normaloff>:/view-refresh.png</normaloff>:/view-refresh.png</iconset> 
     103          </property> 
     104          <property name="flat"> 
     105           <bool>false</bool> 
     106          </property> 
     107         </widget> 
     108        </item> 
     109       </layout> 
     110      </item> 
     111      <item row="1" column="0"> 
     112       <widget class="QListWidget" name="listViewUpdates"/> 
     113      </item> 
     114      <item row="2" column="0"> 
     115       <layout class="QHBoxLayout" name="horizontalLayout"> 
     116        <item> 
     117         <widget class="QPushButton" name="pushInstallUpdates"> 
     118          <property name="text"> 
     119           <string>&amp;Install selected updates</string> 
     120          </property> 
     121         </widget> 
     122        </item> 
     123        <item> 
     124         <spacer name="spacer2"> 
     125          <property name="orientation"> 
     126           <enum>Qt::Horizontal</enum> 
     127          </property> 
     128          <property name="sizeType"> 
     129           <enum>QSizePolicy::Expanding</enum> 
     130          </property> 
     131          <property name="sizeHint" stdset="0"> 
     132           <size> 
     133            <width>223</width> 
     134            <height>21</height> 
     135           </size> 
     136          </property> 
     137         </spacer> 
     138        </item> 
     139       </layout> 
     140      </item> 
     141     </layout> 
    237142    </widget> 
    238    </item> 
    239    <item row="3" column="0"> 
    240     <layout class="QHBoxLayout" name="horizontalLayout_3"> 
    241      <item> 
    242       <spacer name="horizontalSpacer_2"> 
    243        <property name="orientation"> 
    244         <enum>Qt::Horizontal</enum> 
    245        </property> 
    246        <property name="sizeHint" stdset="0"> 
    247         <size> 
    248          <width>40</width> 
    249          <height>20</height> 
    250         </size> 
    251        </property> 
    252       </spacer> 
    253      </item> 
    254      <item> 
    255       <widget class="QPushButton" name="pushClose"> 
    256        <property name="text"> 
    257         <string>&amp;Close</string> 
    258        </property> 
    259       </widget> 
    260      </item> 
    261     </layout> 
    262143   </item> 
    263144  </layout> 
Note: See TracChangeset for help on using the changeset viewer.