Changeset e177abf


Ignore:
Timestamp:
04/24/13 08:06:56 (16 months ago)
Author:
Ken Moore <ken@…>
Branches:
master, 9.1-release, 9.2-release, releng/10.0, releng/10.0.1, releng/10.0.2, releng/10.0.3
Children:
47239e7
Parents:
f424798
git-author:
Ken Moore <ken@…> (04/24/13 08:04:57)
git-committer:
Ken Moore <ken@…> (04/24/13 08:06:56)
Message:

Update EasyPBI to version 2.1
Changes: FreeBSD ports dialog merged into the settings dialog, save buttons now dynamicly enabled, use portsnap for all ports fetching/updating

Location:
src-qt4/EasyPBI
Files:
3 deleted
9 edited

Legend:

Unmodified
Added
Removed
  • src-qt4/EasyPBI/EasyPBI.pro

    r1620346 re177abf  
    2020        config.cpp \ 
    2121        preferencesDialog.cpp \ 
    22         aboutDialog.cpp \ 
    23         portsDialog.cpp 
     22        aboutDialog.cpp 
    2423 
    2524HEADERS  += mainGUI.h \ 
     
    2928            config.h \ 
    3029            preferencesDialog.h \ 
    31             aboutDialog.h \ 
    32             portsDialog.h 
     30            aboutDialog.h  
    3331 
    3432FORMS    += mainGUI.ui \ 
    3533            newModuleDialog.ui \ 
    3634            preferencesDialog.ui \ 
    37             aboutDialog.ui \ 
    38             portsDialog.ui 
     35            aboutDialog.ui  
    3936 
    4037RESOURCES+= EasyPBI.qrc 
  • src-qt4/EasyPBI/HISTORY.txt

    r1620346 re177abf  
    3030Special Thanks to Jennifer Rosenburg for the new logo and icons! 
    3131New features: Packaging a local directory as a PBI, allow building 32-bit PBI's on a 64-bit system, advanced scripting support for PBI modules, complete XDG desktop/menu/mime support for modules, and switch to full optionsNG for PBI build options. 
     32 
     33APR 24, 2013: 
     34EasyPBI version 2.1 is tagged! 
     35Changes include: Combine the FreeBSD ports dialog into the EasyPBI Settings dialog, use portsnap for all FreeBSD ports fetching and updating, added the ability to flag xdg entries as requiring root, make all the "save" buttons dynamically enabled as appropriate.  
  • src-qt4/EasyPBI/config.cpp

    r1620346 re177abf  
    1414        //defaultSettings=[ current version#, programDir, pbiOutputDir, moduleOutputDir, pkgCacheDir, iconFile, settingsFile, iconDir] 
    1515        QString tmp = QDir::homePath()+"/EasyPBI/"; 
    16     defaultSettings << "2.0" << tmp << tmp+"PBI/" << tmp+"Modules/" << tmp+".cache/" << tmp+"defaulticon.png" << tmp+".preferences" << QDir::homePath(); 
     16    defaultSettings << "2.1" << tmp << tmp+"PBI/" << tmp+"Modules/" << tmp+".cache/" << tmp+"defaulticon.png" << tmp+".preferences" << QDir::homePath(); 
    1717        //TFstruct=[ is64-bitArch, portsAvailable, useDigitalSig, useTMPFS, usePkgCache, pbi_makeport_available, pbi_create_available, su_available ] 
    1818    TFstruct << FALSE << FALSE << FALSE << TRUE << TRUE << FALSE << FALSE << FALSE; 
  • src-qt4/EasyPBI/mainGUI.cpp

    r56d14dd re177abf  
    66#include "preferencesDialog.h" 
    77#include "aboutDialog.h" 
    8 #include "portsDialog.h" 
    98 
    109MainGUI::MainGUI(QWidget *parent) : 
     
    9291      refreshGUI("all"); //make items visible/invisible as necessary 
    9392       
     93      //Connect "option changed" signals to the respective slot 
     94      // PBI tab 
     95      connect(ui->line_progname,SIGNAL(textChanged(QString)),this,SLOT(slotOptionChanged(QString)) ); 
     96      connect(ui->line_progauthor,SIGNAL(textChanged(QString)),this,SLOT(slotOptionChanged(QString)) ); 
     97      connect(ui->line_progversion,SIGNAL(textChanged(QString)),this,SLOT(slotOptionChanged(QString)) ); 
     98      connect(ui->line_progweb,SIGNAL(textChanged(QString)),this,SLOT(slotOptionChanged(QString)) ); 
     99      connect(ui->line_progdir,SIGNAL(textChanged(QString)),this,SLOT(slotOptionChanged(QString)) ); 
     100      connect(ui->line_makeport,SIGNAL(textChanged(QString)),this,SLOT(slotOptionChanged(QString)) ); 
     101      connect(ui->list_progicon,SIGNAL(currentIndexChanged(QString)),this,SLOT(slotOptionChanged(QString)) ); 
     102      connect(ui->edit_makeopts,SIGNAL(textChanged()),this,SLOT(slotOptionChanged()) ); 
     103      connect(ui->check_requiresroot, SIGNAL(clicked()),this,SLOT(slotOptionChanged()) ); 
     104      // Rwsources tab 
     105      connect(ui->text_resources_script,SIGNAL(textChanged()),this,SLOT(slotResourceScriptChanged()) ); 
     106      // XDG tab 
     107      connect(ui->line_xdg_name,SIGNAL(textChanged(QString)),this,SLOT(slotXDGOptionChanged(QString)) ); 
     108      connect(ui->line_xdg_mimepatterns,SIGNAL(textChanged(QString)),this,SLOT(slotXDGOptionChanged(QString)) ); 
     109      connect(ui->line_xdg_exec,SIGNAL(textChanged(QString)),this,SLOT(slotXDGOptionChanged(QString)) ); 
     110      connect(ui->line_xdg_menu,SIGNAL(textChanged(QString)),this,SLOT(slotXDGOptionChanged(QString)) ); 
     111      connect(ui->check_xdg_nodisplay,SIGNAL(clicked()),this,SLOT(slotXDGOptionChanged()) ); 
     112      connect(ui->check_xdg_requiresroot,SIGNAL(clicked()),this,SLOT(slotXDGOptionChanged()) ); 
     113      connect(ui->check_xdg_terminal,SIGNAL(clicked()),this,SLOT(slotXDGOptionChanged()) ); 
     114      connect(ui->list_xdg_icon,SIGNAL(currentIndexChanged(QString)),this,SLOT(slotXDGOptionChanged(QString)) ); 
     115      // Scripts tab 
     116      connect(ui->text_scripts_edit,SIGNAL(textChanged()),this,SLOT(slotScriptModified()) ); 
     117         
    94118} 
    95119 
     
    227251      } 
    228252    } 
     253    ui->push_config_save->setEnabled(FALSE);  //disable the save button until something changes 
    229254  } 
    230255  // -----RESOURCES-------- 
     
    278303    } 
    279304    if(currentIndex == 0){ ui->push_scripts_create->setVisible(FALSE); } 
     305    ui->push_scripts_save->setEnabled(FALSE); //disable the save button until something changes 
    280306     
    281307  } 
     
    346372  ----------------------------------- 
    347373*/ 
    348 void MainGUI::on_actionGet_Ports_triggered(){ 
    349   portsDialog dlg(this,settings->value("progdir")+"/ports",settings->value("su_cmd") ); 
    350   dlg.exec(); 
    351 } 
    352374 
    353375void MainGUI::on_actionExit_triggered(){ 
     
    528550  //Save the port info to the GUI 
    529551  ui->line_makeport->setText(portSel.remove(settings->value("portsdir")+"/")); 
     552  ui->push_config_save->setEnabled(TRUE); 
    530553} 
    531554 
     
    536559  //Save the port info to the GUI 
    537560  ui->line_progdir->setText(dirSel); 
     561  ui->push_config_save->setEnabled(TRUE); 
    538562} 
    539563 
     
    586610  //Now put the new options list back onto the GUI 
    587611  ui->edit_makeopts->setPlainText(curr.join("\n")); 
     612  ui->push_config_save->setEnabled(TRUE); 
    588613} 
    589614 
     
    604629  if(ui->list_portbefore->count() == 1 && ui->list_portbefore->currentText().isEmpty() ){ ui->list_portbefore->clear(); } 
    605630  ui->list_portbefore->addItem(portSel.remove(settings->value("portsdir")+"/")); 
     631  ui->push_config_save->setEnabled(TRUE); 
    606632} 
    607633 
     
    611637    ui->list_portbefore->removeItem(index); 
    612638  } 
     639  ui->push_config_save->setEnabled(TRUE); 
    613640} 
    614641 
     
    629656  if(ui->list_portafter->count() == 1 && ui->list_portafter->currentText().isEmpty() ){ ui->list_portafter->clear(); } 
    630657  ui->list_portafter->addItem(portSel.remove(settings->value("portsdir")+"/")); 
     658  ui->push_config_save->setEnabled(TRUE); 
    631659} 
    632660 
     
    636664    ui->list_portafter->removeItem(index); 
    637665  } 
     666  ui->push_config_save->setEnabled(TRUE); 
    638667} 
    639668 
     
    680709  } 
    681710} 
     711 
     712void MainGUI::slotOptionChanged(QString tmp){ 
     713  tmp.clear(); //just to remove compiler warning about unused variable 
     714  ui->push_config_save->setEnabled(TRUE);        
     715} 
     716 
    682717/*------------------------------------------------ 
    683718   RESOURCE EDITOR OPTIONS 
     
    717752      ui->label_resources_icon->setVisible(FALSE); 
    718753    } 
    719   }        
     754  } 
     755  ui->push_resources_savewrapper->setEnabled(FALSE); 
    720756   
    721757} 
     
    772808  //overwrite the resource with the new contents 
    773809  ModBuild::createFile(filePath,contents); 
     810  ui->push_resources_savewrapper->setEnabled(FALSE); 
     811} 
     812 
     813void MainGUI::slotResourceScriptChanged(){ 
     814  ui->push_resources_savewrapper->setEnabled(TRUE);      
    774815} 
    775816/*------------------------------------------------ 
     
    862903    ui->check_requiresroot->setChecked(FALSE); 
    863904    ui->push_xdg_savechanges->setEnabled(FALSE); 
     905    ui->push_xdg_savenew->setEnabled(FALSE); 
    864906    //Make sure we don't have any of the structures loaded from previously 
    865907    currentModule->loadDesktop(""); 
     
    869911    return;  
    870912  } 
    871   ui->push_xdg_savechanges->setEnabled(TRUE); 
    872913  //Now setup the UI as appropriate 
    873914  if(ui->radio_xdg_desktop->isChecked()){ 
     
    945986    //do nothing, unknown radio button selected (or none) 
    946987  } 
     988  ui->push_xdg_savechanges->setEnabled(FALSE); 
     989  ui->push_xdg_savenew->setEnabled(FALSE); 
    947990} 
    948991 
     
    11521195} 
    11531196 
     1197void MainGUI::slotXDGOptionChanged(QString tmp){ 
     1198  tmp.clear(); //remove warning about unused variables 
     1199  ui->push_xdg_savechanges->setEnabled(TRUE); 
     1200  ui->push_xdg_savenew->setEnabled(TRUE); 
     1201} 
     1202 
    11541203/*------------------------------------------------ 
    11551204   SCRIPTS EDITOR OPTIONS 
     
    11681217  ui->text_scripts_edit->setVisible(TRUE); 
    11691218  ui->text_scripts_edit->clear(); 
     1219  ui->push_scripts_save->setEnabled(FALSE); //disable the save button until something changes 
    11701220} 
    11711221 
     
    11931243  //Now refresh the UI 
    11941244  refreshGUI("scripts"); 
     1245} 
     1246 
     1247void MainGUI::slotScriptModified(){ 
     1248  ui->push_scripts_save->setEnabled(TRUE);       
    11951249} 
    11961250/*------------------------------------------------ 
  • src-qt4/EasyPBI/mainGUI.h

    r56d14dd re177abf  
    3939    void refreshGUI(QString); 
    4040    //menubar functions 
    41     void on_actionGet_Ports_triggered(); 
    4241    void on_actionExit_triggered(); 
    4342    void on_actionNew_Module_triggered(); 
     
    6059    void on_push_rmportafter_clicked(); 
    6160    void on_push_config_save_clicked(); 
     61    void slotOptionChanged(QString tmp=""); 
    6262    //resources functions 
    6363    void slotResourceChanged(); 
     
    6666    void on_push_resources_mkwrapper_clicked(); 
    6767    void slotResourceScriptSaved(); 
     68    void slotResourceScriptChanged(); 
    6869    //XDG functions 
    6970    void slotXdgTypeChanged(); 
     
    7576    void on_push_xdg_savenew_clicked(); 
    7677    void on_push_xdg_clearentry_clicked(); 
     78    void slotXDGOptionChanged(QString tmp=""); 
    7779    //Scripts functions 
    7880    void slotScriptChanged(int); 
     
    8082    void on_push_scripts_remove_clicked(); 
    8183    void on_push_scripts_save_clicked(); 
     84    void slotScriptModified(); 
    8285    //External-Links functions 
    8386    void on_push_el_add_clicked(); 
  • src-qt4/EasyPBI/mainGUI.ui

    r56d14dd re177abf  
    5555         <x>0</x> 
    5656         <y>0</y> 
    57          <width>600</width> 
    58          <height>474</height> 
     57         <width>276</width> 
     58         <height>149</height> 
    5959        </rect> 
    6060       </property> 
     
    16821682     <string>System</string> 
    16831683    </property> 
    1684     <addaction name="actionGet_Ports"/> 
    1685     <addaction name="separator"/> 
    16861684    <addaction name="actionExit"/> 
    16871685   </widget> 
  • src-qt4/EasyPBI/preferencesDialog.cpp

    r1620346 re177abf  
    1414        ui->push_sigfile->setIcon(Backend::icon("file")); 
    1515        ui->push_clearcache->setIcon(Backend::icon("clear")); 
    16         ui->push_portsdir->setIcon(Backend::icon("load")); 
    1716        ui->push_moduledir->setIcon(Backend::icon("load")); 
    1817        ui->push_icondir->setIcon(Backend::icon("load")); 
     
    2221        ui->push_pbicreate->setIcon(Backend::icon("file")); 
    2322        ui->push_resetutils->setIcon(Backend::icon("refresh")); 
     23        ui->tool_otherPortsDir->setIcon(Backend::icon("load")); 
     24        ui->push_updatePorts->setIcon(Backend::icon("refresh")); 
     25         
    2426        //Setup the internal settings structure 
    2527        settings = new Config(); 
    2628        settings->scanForExternalUtilities();    
    2729        settings->loadSettingsFile(); 
     30        //initialize the QProcess 
     31        process = new QProcess(this); 
     32        process->setProcessEnvironment( QProcessEnvironment::systemEnvironment() ); 
     33        connect(process,SIGNAL(readyReadStandardOutput()),this,SLOT(updateStatusBar()) ); 
     34        connect(process,SIGNAL(finished(int,QProcess::ExitStatus)),this,SLOT(processFinished(int,QProcess::ExitStatus)) ); 
    2835        //Put the current settings into the GUI 
    2936        resetGUI(); 
     
    4855        ui->line_icondir->setText(settings->value("icondir")); 
    4956        ui->line_defaulticon->setText(settings->value("defaulticon")); 
    50         //utilities tab 
    5157        ui->line_suutility->setText(settings->value("su_cmd")); 
    5258        ui->line_pbicreate->setText(settings->value("pbi_create")); 
    5359        ui->line_makeport->setText(settings->value("pbi_makeport")); 
    54         ui->line_portsdir->setText(settings->value("portsdir")); 
    55          
     60        //ports tab 
     61        ui->list_portsDirectories->clear(); 
     62        QStringList pDirs; pDirs<< tr("Current User (~/EasyPBI/ports)") << tr("All Users (/usr/ports)") << tr("Other"); 
     63        ui->list_portsDirectories->addItems(pDirs); 
     64        QString portsdir = settings->value("portsdir"); 
     65        if(portsdir.endsWith("/")){ portsdir.chop(1); } 
     66        if(portsdir == (QDir::homePath()+"/EasyPBI/ports") ){ 
     67          ui->list_portsDirectories->setCurrentIndex(0); //User dir 
     68        }else if(portsdir == "/usr/ports"){ 
     69          ui->list_portsDirectories->setCurrentIndex(1); //system dir    
     70        }else{ 
     71          ui->list_portsDirectories->setCurrentIndex(2); //other 
     72          ui->line_otherPortsDir->setText(portsdir); 
     73        } 
     74        ui->progressBar->setMaximum(0); ui->progressBar->setMinimum(0); //default to a "loading" indicator 
     75        updateGUI(); 
     76} 
     77 
     78void PreferencesDialog::updateGUI(){ 
    5679        //Now adjust the visibility of the necessary elements 
     80        //pbi tab 
    5781        if( ui->check_signpbi->isChecked() ){ ui->groupBox_sig->setVisible(TRUE); } 
    5882        else{ ui->groupBox_sig->setVisible(FALSE); } 
    5983        if( ui->check_usepkgcache->isChecked() ){ ui->groupBox_pkgcache->setVisible(TRUE); } 
    6084        else{ ui->groupBox_pkgcache->setVisible(FALSE); } 
    61    
     85        //ports tab 
     86        int pIndex = ui->list_portsDirectories->currentIndex(); 
     87        if(pIndex == 2){ 
     88          ui->line_otherPortsDir->setVisible(TRUE); ui->tool_otherPortsDir->setVisible(TRUE); 
     89        }else{ 
     90          ui->line_otherPortsDir->setVisible(FALSE); ui->tool_otherPortsDir->setVisible(FALSE);  
     91        } 
     92        QString pDir; 
     93        switch (pIndex){ 
     94        case 0:  
     95                pDir = QDir::homePath()+"/EasyPBI/ports"; break; 
     96        case 1: 
     97                pDir = "/usr/ports"; break; 
     98        default: 
     99                pDir = ui->line_otherPortsDir->text(); 
     100        }        
     101        QString pUpdate; 
     102        if(!pDir.isEmpty()){ pUpdate = getLastPortsUpdate(pDir); } //check for existance and last update 
     103        if( !pUpdate.isEmpty() ){ 
     104          ui->push_fetchPorts->setVisible(FALSE); 
     105          ui->push_updatePorts->setVisible(TRUE); 
     106          ui->label_portsUpdated->setText( pUpdate ); 
     107        }else{ 
     108          ui->push_fetchPorts->setVisible(TRUE); 
     109          ui->push_updatePorts->setVisible(FALSE); 
     110          ui->label_portsUpdated->setText( tr("Nonexistent") ); 
     111        } 
     112        if(process->state() == QProcess::NotRunning){ 
     113          ui->list_portsDirectories->setEnabled(TRUE); 
     114          ui->line_otherPortsDir->setEnabled(TRUE); ui->tool_otherPortsDir->setEnabled(TRUE); 
     115          ui->label_status->setVisible(FALSE); ui->progressBar->setVisible(FALSE); 
     116          ui->push_fetchPorts->setEnabled(TRUE); ui->push_updatePorts->setEnabled(TRUE); 
     117          ui->buttonBox->setEnabled(TRUE); 
     118        }else{ 
     119          ui->list_portsDirectories->setEnabled(FALSE); 
     120          ui->line_otherPortsDir->setEnabled(FALSE); ui->tool_otherPortsDir->setEnabled(FALSE); 
     121          ui->label_status->setVisible(TRUE); ui->progressBar->setVisible(TRUE); 
     122          ui->push_fetchPorts->setEnabled(FALSE); ui->push_updatePorts->setEnabled(FALSE); 
     123          ui->buttonBox->setEnabled(FALSE); 
     124        } 
    62125} 
    63126 
     
    76139    badpkgs.removeDuplicates(); 
    77140    settings->setList("skippkgs", badpkgs); 
    78     settings->setValue("portsdir", ui->line_portsdir->text() ); 
     141    QString portsDir; 
     142    int pIndex = ui->list_portsDirectories->currentIndex(); 
     143    if( pIndex == 0 ){portsDir = QDir::homePath()+"/EasyPBI/ports"; } 
     144    else if( pIndex == 1){ portsDir = "/usr/ports"; } 
     145    else{ portsDir = ui->line_otherPortsDir->text(); }     
     146    settings->setValue("portsdir", portsDir ); 
    79147    settings->setValue("moduledir", ui->line_moduledir->text() ); 
    80148    settings->setValue("icondir", ui->line_icondir->text() ); 
     
    94162} 
    95163 
    96 // PBI Settings Tab 
     164// ===== PBI Settings Tab ===== 
    97165void PreferencesDialog::on_push_pbioutdir_clicked(){ 
    98166  //Get the desired directory 
     
    154222} 
    155223 
    156 // Paths Tab   
     224// ===== Paths Tab =====   
    157225void PreferencesDialog::on_push_moduledir_clicked(){ 
    158226  //Get the desired directory 
     
    178246} 
    179247 
    180 //Utilities Tab 
     248// ===== Utilities Tab ===== 
    181249void PreferencesDialog::on_push_suutility_clicked(){ 
    182250  //Get the desired directory 
     
    218286  settings->setValue("pbi_create",""); 
    219287  settings->setValue("su_cmd",""); 
    220   settings->setValue("portsdir",""); 
    221288  //Reset the utilities on the GUI       
    222289  ui->line_suutility->setText(settings->value("su_cmd")); 
    223290  ui->line_pbicreate->setText(settings->value("pbi_create")); 
    224291  ui->line_makeport->setText(settings->value("pbi_makeport")); 
    225   ui->line_portsdir->setText(settings->value("portsdir")); 
     292} 
     293 
     294// ======  Ports Tab ====== 
     295void PreferencesDialog::on_list_portsDirectories_currentIndexChanged(int index){ 
     296  updateGUI();   
     297} 
     298 
     299void PreferencesDialog::on_line_otherPortsDir_textChanged(QString text){ 
     300  updateGUI();   
     301} 
     302void PreferencesDialog::on_tool_otherPortsDir_clicked(){ 
     303  //Get the desired directory 
     304  QString seldir = QFileDialog::getExistingDirectory(this, tr("Select FreeBSD Ports Directory"), QDir::homePath() ); 
     305  if(seldir.isEmpty()){ return; } //action cancelled 
     306  //Save the selection to the GUI 
     307  ui->line_otherPortsDir->setText(seldir); 
     308  updateGUI(); 
     309} 
     310 
     311void PreferencesDialog::on_push_fetchPorts_clicked(){ 
     312  int pIndex = ui->list_portsDirectories->currentIndex(); 
     313  QString pDir; 
     314    if( pIndex == 0 ){pDir = QDir::homePath()+"/EasyPBI/ports"; } 
     315    else if( pIndex == 1){ pDir = "/usr/ports"; } 
     316    else{ pDir = ui->line_otherPortsDir->text(); } 
     317  fetchPorts(pDir,TRUE); //is a new ports directory 
     318  updateGUI(); 
     319} 
     320 
     321void PreferencesDialog::on_push_updatePorts_clicked(){ 
     322  int pIndex = ui->list_portsDirectories->currentIndex(); 
     323  QString pDir; 
     324    if( pIndex == 0 ){pDir = QDir::homePath()+"/EasyPBI/ports"; } 
     325    else if( pIndex == 1){ pDir = "/usr/ports"; } 
     326    else{ pDir = ui->line_otherPortsDir->text(); } 
     327  fetchPorts(pDir,FALSE); //is an existing ports directory 
     328  updateGUI(); 
    226329} 
    227330     
    228 void PreferencesDialog::on_push_portsdir_clicked(){ 
    229   //Get the desired directory 
    230   QString seldir = QFileDialog::getExistingDirectory(this, tr("Select FreeBSD Ports Directory"), QDir::homePath() ); 
    231   if(seldir.isEmpty()){ return; } //action cancelled 
    232   //Save the selection to the GUI 
    233   ui->line_portsdir->setText(seldir);  
    234 } 
     331void PreferencesDialog::updateStatusBar(){ 
     332  QString tmp = process->readAllStandardOutput(); 
     333  if(tmp.endsWith("\n")){ tmp.chop(1); } 
     334  tmp = tmp.section("\n",-1); 
     335  tmp = tmp.remove("\n").simplified(); 
     336  //qDebug() << "Status Update:" << tmp; 
     337  ui->label_status->clear(); 
     338  ui->label_status->setText(tmp); 
     339} 
     340 
     341void PreferencesDialog::processFinished(int exitCode,QProcess::ExitStatus status){ 
     342  qDebug() << " - Ports update finished:" << exitCode << status; 
     343  //Inform the user of the result 
     344  if(exitCode == 0){ 
     345    //Finished successfully 
     346    QMessageBox::information(this, tr("Success"), tr("The FreeBSD ports tree has been successfully updated") ); 
     347  }else{ 
     348    //Finished with error 
     349    QString msg = process->readAllStandardError(); 
     350    if(msg.isEmpty()){ msg = process->readAllStandardOutput(); } 
     351    QMessageBox::information(this, tr("Failure"), QString(tr("The FreeBSD ports tree has failed to update.")+"\n"+tr("Last Message: %1") ).arg(msg) ); 
     352  } 
     353  updateGUI(); //Update the interface times and such 
     354} 
     355 
     356QString PreferencesDialog::getLastPortsUpdate(QString ports){ 
     357  QDir dir(ports); 
     358  QFileInfoList list = dir.entryInfoList(QDir::NoDotAndDotDot | QDir::Files | QDir::Dirs, QDir::Time); //sort by most recently changed 
     359  QString out; 
     360  if(list.length() > 2){ //good ports tree 
     361    out = list[0].lastModified().toString(); 
     362  } 
     363  return out; 
     364} 
     365 
     366void PreferencesDialog::fetchPorts(QString portsDir, bool isNew){ 
     367  bool needRoot = TRUE; 
     368  QString localPSDB = QDir::homePath()+"/EasyPBI/.portSnapDB"; 
     369  if( portsDir.startsWith( QDir::homePath() )){ needRoot = FALSE; } 
     370   
     371  // == Generate the System Command == 
     372  QString cmd; 
     373  bool usePortsnap = FALSE; 
     374  //Graphical SU utility as needed 
     375  if(needRoot){  
     376    ui->label_status->setText(tr("Requesting Root Access")); //Put placeholder info 
     377    cmd = ui->line_suutility->text() + " \""; //use the switch-user utility 
     378  } 
     379  //Figure out whether to use portsnap or not 
     380  if( !isNew && QFile::exists(portsDir+"/.svn") ){ 
     381    //Use Subversion 
     382    cmd.append("svn update "+portsDir); 
     383  }else{ 
     384    //Use Portsnap 
     385    cmd.append("portsnap fetch "); 
     386    if(isNew){ cmd.append("extract "); } 
     387    else{ cmd.append("update "); } 
     388    cmd.append("-p "+portsDir); 
     389    if(!needRoot){ cmd.append(" -d "+localPSDB); } 
     390    usePortsnap=TRUE; 
     391     
     392  } 
     393  if(needRoot){ cmd.append("\""); } //close the quotes 
     394   
     395  //If using portsnap, make sure the intermediate file is there in the EasyPBI directory 
     396  if( usePortsnap ){ 
     397    QString pspath = QDir::homePath()+"/EasyPBI/.portsnapNI.sh"; // Non-Interactive (NI) version of portsnap 
     398    if( !QFile::exists(pspath) ){ 
     399      //Create the Non-Interactive version of portsnap if it does not exist yet 
     400      QString pscmd ="echo \"#!/bin/sh \n#Non-Interactive portsnap workaround for EasyPBI \ncat /usr/sbin/portsnap | sed 's|! -t 0|-z '1'|g' | /bin/sh -s \\$@\" > "+pspath+"; chmod 755 "+pspath; 
     401      //qDebug() << "system call:" << pscmd; 
     402      system(pscmd.toUtf8()); 
     403    } 
     404    if(!needRoot && !QFile::exists(localPSDB)){ 
     405      //Create the local portsnap database directory 
     406      QString tmpcmd = "mkdir "+localPSDB; 
     407      system(tmpcmd.toUtf8()); 
     408    } 
     409    cmd.replace("portsnap",pspath); 
     410  } 
     411  //Now run the command 
     412  process->start(cmd); 
     413  qDebug() << "Ports fetch started: CMD:" << cmd;        
     414} 
  • src-qt4/EasyPBI/preferencesDialog.h

    r1620346 re177abf  
    88#include <QFileDialog> 
    99#include <QMessageBox> 
     10#include <QDateTime> 
    1011#include "ui_preferencesDialog.h" 
    1112#include "backend.h" 
     
    2728private slots: 
    2829    void resetGUI(); 
     30    void updateGUI(); 
    2931    void on_buttonBox_accepted(); 
    3032    void on_buttonBox_rejected(); 
     
    4648    void on_push_makeport_clicked(); 
    4749    void on_push_resetutils_clicked(); 
    48     void on_push_portsdir_clicked(); 
     50    //Ports Tab 
     51    void on_list_portsDirectories_currentIndexChanged(int); 
     52    void on_line_otherPortsDir_textChanged(QString); 
     53    void on_tool_otherPortsDir_clicked(); 
     54    void on_push_fetchPorts_clicked(); 
     55    void on_push_updatePorts_clicked(); 
     56    void updateStatusBar(); 
     57    void processFinished(int,QProcess::ExitStatus); 
     58     
    4959 
    5060private: 
    5161    Ui::PreferencesDialog *ui; 
    5262    Config *settings; 
     63    QProcess *process; 
     64     
     65    QString getLastPortsUpdate(QString); 
     66    void fetchPorts(QString, bool); 
    5367 
    5468}; 
  • src-qt4/EasyPBI/preferencesDialog.ui

    r1620346 re177abf  
    2323      <number>0</number> 
    2424     </property> 
     25     <widget class="QWidget" name="tab_ports"> 
     26      <attribute name="icon"> 
     27       <iconset resource="EasyPBI.qrc"> 
     28        <normaloff>:/png/icons/freebsd.png</normaloff>:/png/icons/freebsd.png</iconset> 
     29      </attribute> 
     30      <attribute name="title"> 
     31       <string>FreeBSD Ports</string> 
     32      </attribute> 
     33      <layout class="QVBoxLayout" name="verticalLayout_5"> 
     34       <item> 
     35        <layout class="QFormLayout" name="formLayout_3"> 
     36         <property name="fieldGrowthPolicy"> 
     37          <enum>QFormLayout::ExpandingFieldsGrow</enum> 
     38         </property> 
     39         <item row="0" column="0"> 
     40          <widget class="QLabel" name="label_11"> 
     41           <property name="font"> 
     42            <font> 
     43             <weight>75</weight> 
     44             <bold>true</bold> 
     45            </font> 
     46           </property> 
     47           <property name="text"> 
     48            <string>Ports Tree</string> 
     49           </property> 
     50          </widget> 
     51         </item> 
     52         <item row="0" column="1"> 
     53          <widget class="QComboBox" name="list_portsDirectories"/> 
     54         </item> 
     55         <item row="1" column="1"> 
     56          <layout class="QHBoxLayout" name="horizontalLayout_14"> 
     57           <item> 
     58            <widget class="QLineEdit" name="line_otherPortsDir"/> 
     59           </item> 
     60           <item> 
     61            <widget class="QToolButton" name="tool_otherPortsDir"> 
     62             <property name="text"> 
     63              <string>Select</string> 
     64             </property> 
     65            </widget> 
     66           </item> 
     67          </layout> 
     68         </item> 
     69         <item row="2" column="0"> 
     70          <widget class="QLabel" name="label_12"> 
     71           <property name="font"> 
     72            <font> 
     73             <weight>75</weight> 
     74             <bold>true</bold> 
     75            </font> 
     76           </property> 
     77           <property name="text"> 
     78            <string>Last Update</string> 
     79           </property> 
     80          </widget> 
     81         </item> 
     82         <item row="2" column="1"> 
     83          <widget class="QLabel" name="label_portsUpdated"> 
     84           <property name="text"> 
     85            <string>TextLabel</string> 
     86           </property> 
     87          </widget> 
     88         </item> 
     89         <item row="3" column="0" colspan="2"> 
     90          <widget class="QFrame" name="frame"> 
     91           <property name="frameShape"> 
     92            <enum>QFrame::StyledPanel</enum> 
     93           </property> 
     94           <property name="frameShadow"> 
     95            <enum>QFrame::Raised</enum> 
     96           </property> 
     97           <layout class="QVBoxLayout" name="verticalLayout_7"> 
     98            <item> 
     99             <layout class="QHBoxLayout" name="horizontalLayout_5"> 
     100              <item> 
     101               <spacer name="horizontalSpacer_2"> 
     102                <property name="orientation"> 
     103                 <enum>Qt::Horizontal</enum> 
     104                </property> 
     105                <property name="sizeHint" stdset="0"> 
     106                 <size> 
     107                  <width>40</width> 
     108                  <height>20</height> 
     109                 </size> 
     110                </property> 
     111               </spacer> 
     112              </item> 
     113              <item> 
     114               <widget class="QPushButton" name="push_fetchPorts"> 
     115                <property name="text"> 
     116                 <string>Create Dir</string> 
     117                </property> 
     118                <property name="icon"> 
     119                 <iconset resource="EasyPBI.qrc"> 
     120                  <normaloff>:/png/icons/plus.png</normaloff>:/png/icons/plus.png</iconset> 
     121                </property> 
     122               </widget> 
     123              </item> 
     124              <item> 
     125               <widget class="QPushButton" name="push_updatePorts"> 
     126                <property name="text"> 
     127                 <string>Update</string> 
     128                </property> 
     129               </widget> 
     130              </item> 
     131              <item> 
     132               <spacer name="horizontalSpacer_3"> 
     133                <property name="orientation"> 
     134                 <enum>Qt::Horizontal</enum> 
     135                </property> 
     136                <property name="sizeHint" stdset="0"> 
     137                 <size> 
     138                  <width>40</width> 
     139                  <height>20</height> 
     140                 </size> 
     141                </property> 
     142               </spacer> 
     143              </item> 
     144             </layout> 
     145            </item> 
     146            <item> 
     147             <widget class="QLabel" name="label_status"> 
     148              <property name="text"> 
     149               <string>Status</string> 
     150              </property> 
     151              <property name="alignment"> 
     152               <set>Qt::AlignCenter</set> 
     153              </property> 
     154             </widget> 
     155            </item> 
     156            <item> 
     157             <widget class="QProgressBar" name="progressBar"> 
     158              <property name="value"> 
     159               <number>24</number> 
     160              </property> 
     161             </widget> 
     162            </item> 
     163           </layout> 
     164          </widget> 
     165         </item> 
     166        </layout> 
     167       </item> 
     168       <item> 
     169        <spacer name="verticalSpacer_4"> 
     170         <property name="orientation"> 
     171          <enum>Qt::Vertical</enum> 
     172         </property> 
     173         <property name="sizeHint" stdset="0"> 
     174          <size> 
     175           <width>436</width> 
     176           <height>190</height> 
     177          </size> 
     178         </property> 
     179        </spacer> 
     180       </item> 
     181      </layout> 
     182     </widget> 
    25183     <widget class="QWidget" name="tab_pbi"> 
     184      <attribute name="icon"> 
     185       <iconset resource="EasyPBI.qrc"> 
     186        <normaloff>:/png/icons/pcbsd.png</normaloff>:/png/icons/pcbsd.png</iconset> 
     187      </attribute> 
    26188      <attribute name="title"> 
    27        <string>PBI Settings</string> 
     189       <string>PBI Builds</string> 
    28190      </attribute> 
    29191      <layout class="QVBoxLayout" name="verticalLayout_2"> 
     
    254416      </layout> 
    255417     </widget> 
    256      <widget class="QWidget" name="tab_paths"> 
     418     <widget class="QWidget" name="tab_utils"> 
     419      <attribute name="icon"> 
     420       <iconset resource="EasyPBI.qrc"> 
     421        <normaloff>:/png/icons/config.png</normaloff>:/png/icons/config.png</iconset> 
     422      </attribute> 
    257423      <attribute name="title"> 
    258424       <string>Local Paths</string> 
    259425      </attribute> 
    260       <layout class="QFormLayout" name="formLayout"> 
    261        <property name="fieldGrowthPolicy"> 
    262         <enum>QFormLayout::ExpandingFieldsGrow</enum> 
    263        </property> 
    264        <item row="1" column="0"> 
    265         <widget class="QLabel" name="label"> 
    266          <property name="text"> 
    267           <string>Module Dir</string> 
    268          </property> 
    269         </widget> 
    270        </item> 
    271        <item row="1" column="1"> 
    272         <layout class="QHBoxLayout" name="horizontalLayout"> 
    273          <item> 
    274           <widget class="QLineEdit" name="line_moduledir"> 
    275            <property name="toolTip"> 
    276             <string>Default directory for all PBI modules to be created</string> 
    277            </property> 
    278           </widget> 
    279          </item> 
    280          <item> 
    281           <widget class="QPushButton" name="push_moduledir"> 
    282            <property name="toolTip"> 
    283             <string>Select a local directory for PBI modules.</string> 
    284            </property> 
    285            <property name="text"> 
    286             <string>Select</string> 
    287            </property> 
    288           </widget> 
    289          </item> 
    290         </layout> 
    291        </item> 
    292        <item row="2" column="0"> 
    293         <widget class="QLabel" name="label_2"> 
    294          <property name="text"> 
    295           <string>Icon Dir</string> 
    296          </property> 
    297         </widget> 
    298        </item> 
    299        <item row="2" column="1"> 
    300         <layout class="QHBoxLayout" name="horizontalLayout_2"> 
    301          <item> 
    302           <widget class="QLineEdit" name="line_icondir"> 
    303            <property name="toolTip"> 
    304             <string>Default directory to open when adding icons/files to a module</string> 
    305            </property> 
    306           </widget> 
    307          </item> 
    308          <item> 
    309           <widget class="QPushButton" name="push_icondir"> 
    310            <property name="toolTip"> 
    311             <string>Select a local directory.</string> 
    312            </property> 
    313            <property name="text"> 
    314             <string>Select</string> 
    315            </property> 
    316           </widget> 
    317          </item> 
    318         </layout> 
    319        </item> 
    320        <item row="3" column="0"> 
    321         <widget class="QLabel" name="label_10"> 
    322          <property name="text"> 
    323           <string>Icon FIle</string> 
    324          </property> 
    325         </widget> 
    326        </item> 
    327        <item row="3" column="1"> 
    328         <layout class="QHBoxLayout" name="horizontalLayout_12"> 
    329          <item> 
    330           <widget class="QLineEdit" name="line_defaulticon"> 
    331            <property name="toolTip"> 
    332             <string>Default PNG icon to use for PBI modules.</string> 
    333            </property> 
    334           </widget> 
    335          </item> 
    336          <item> 
    337           <widget class="QPushButton" name="push_defaulticon"> 
    338            <property name="toolTip"> 
    339             <string>Browse local system for a default PNG icon.</string> 
    340            </property> 
    341            <property name="text"> 
    342             <string>Select</string> 
    343            </property> 
    344           </widget> 
    345          </item> 
    346         </layout> 
    347        </item> 
    348       </layout> 
    349      </widget> 
    350      <widget class="QWidget" name="tab_utils"> 
    351       <attribute name="title"> 
    352        <string>Detected Utilities</string> 
    353       </attribute> 
    354       <layout class="QFormLayout" name="formLayout_2"> 
    355        <item row="0" column="0"> 
    356         <widget class="QPushButton" name="push_resetutils"> 
    357          <property name="toolTip"> 
    358           <string>Have EasyPBI re-scan the system for available utilities.</string> 
    359          </property> 
    360          <property name="text"> 
    361           <string>Auto-Detect</string> 
    362          </property> 
    363         </widget> 
    364        </item> 
    365        <item row="1" column="0"> 
    366         <widget class="QLabel" name="label_7"> 
    367          <property name="text"> 
    368           <string>pbi_makeport</string> 
    369          </property> 
    370         </widget> 
    371        </item> 
    372        <item row="1" column="1"> 
    373         <layout class="QHBoxLayout" name="horizontalLayout_9"> 
    374          <item> 
    375           <widget class="QLineEdit" name="line_makeport"> 
    376            <property name="toolTip"> 
    377             <string>Full path to the &quot;pbi_makeport&quot; binary</string> 
    378            </property> 
    379           </widget> 
    380          </item> 
    381          <item> 
    382           <widget class="QPushButton" name="push_makeport"> 
    383            <property name="toolTip"> 
    384             <string>Browse system for the local binary.</string> 
    385            </property> 
    386            <property name="text"> 
    387             <string>Select</string> 
    388            </property> 
    389           </widget> 
    390          </item> 
    391         </layout> 
    392        </item> 
    393        <item row="2" column="0"> 
    394         <widget class="QLabel" name="label_8"> 
    395          <property name="text"> 
    396           <string>pbi_create</string> 
    397          </property> 
    398         </widget> 
    399        </item> 
    400        <item row="2" column="1"> 
    401         <layout class="QHBoxLayout" name="horizontalLayout_10"> 
    402          <item> 
    403           <widget class="QLineEdit" name="line_pbicreate"> 
    404            <property name="toolTip"> 
    405             <string>Full path to the &quot;pbi_create&quot; binary</string> 
    406            </property> 
    407           </widget> 
    408          </item> 
    409          <item> 
    410           <widget class="QPushButton" name="push_pbicreate"> 
    411            <property name="toolTip"> 
    412             <string>Browse system for the local binary.</string> 
    413            </property> 
    414            <property name="text"> 
    415             <string>Select</string> 
    416            </property> 
    417           </widget> 
    418          </item> 
    419         </layout> 
    420        </item> 
    421        <item row="3" column="0"> 
    422         <widget class="QLabel" name="label_9"> 
    423          <property name="text"> 
    424           <string>Switch User Utility</string> 
    425          </property> 
    426         </widget> 
    427        </item> 
    428        <item row="3" column="1"> 
    429         <layout class="QHBoxLayout" name="horizontalLayout_11"> 
    430          <item> 
    431           <widget class="QLineEdit" name="line_suutility"> 
    432            <property name="toolTip"> 
    433             <string>Full path to the graphical &quot;switch user&quot; utility (pc-su, gksu, kdesu, qsu, etc..)</string> 
    434            </property> 
    435           </widget> 
    436          </item> 
    437          <item> 
    438           <widget class="QPushButton" name="push_suutility"> 
    439            <property name="toolTip"> 
    440             <string>Browse system for the local binary.</string> 
    441            </property> 
    442            <property name="text"> 
    443             <string>Select</string> 
    444            </property> 
    445           </widget> 
    446          </item> 
    447         </layout> 
    448        </item> 
    449        <item row="4" column="0"> 
    450         <widget class="QLabel" name="label_3"> 
    451          <property name="text"> 
    452           <string>FreeBSD Ports Dir</string> 
    453          </property> 
    454         </widget> 
    455        </item> 
    456        <item row="4" column="1"> 
    457         <layout class="QHBoxLayout" name="horizontalLayout_3"> 
    458          <item> 
    459           <widget class="QLineEdit" name="line_portsdir"> 
    460            <property name="toolTip"> 
    461             <string>Location of the FreeBSD ports tree on the local system.</string> 
    462            </property> 
    463           </widget> 
    464          </item> 
    465          <item> 
    466           <widget class="QPushButton" name="push_portsdir"> 
    467            <property name="toolTip"> 
    468             <string>Select the FreeBSD ports tree directory.</string> 
    469            </property> 
    470            <property name="text"> 
    471             <string>Select</string> 
    472            </property> 
    473           </widget> 
    474          </item> 
    475         </layout> 
     426      <layout class="QVBoxLayout" name="verticalLayout_9"> 
     427       <item> 
     428        <widget class="QGroupBox" name="group_exUtilities"> 
     429         <property name="title"> 
     430          <string>External Utilities</string> 
     431         </property> 
     432         <layout class="QVBoxLayout" name="verticalLayout_8"> 
     433          <item> 
     434           <widget class="QFrame" name="frame_2"> 
     435            <property name="frameShape"> 
     436             <enum>QFrame::StyledPanel</enum> 
     437            </property> 
     438            <property name="frameShadow"> 
     439             <enum>QFrame::Raised</enum> 
     440            </property> 
     441            <layout class="QFormLayout" name="formLayout_2"> 
     442             <property name="fieldGrowthPolicy"> 
     443              <enum>QFormLayout::ExpandingFieldsGrow</enum> 
     444             </property> 
     445             <item row="0" column="0"> 
     446              <widget class="QLabel" name="label_7"> 
     447               <property name="text"> 
     448                <string>pbi_makeport</string> 
     449               </property> 
     450              </widget> 
     451             </item> 
     452             <item row="0" column="1"> 
     453              <layout class="QHBoxLayout" name="horizontalLayout_9"> 
     454               <item> 
     455                <widget class="QLineEdit" name="line_makeport"> 
     456                 <property name="toolTip"> 
     457                  <string>Full path to the &quot;pbi_makeport&quot; binary</string> 
     458                 </property> 
     459                </widget> 
     460               </item> 
     461               <item> 
     462                <widget class="QPushButton" name="push_makeport"> 
     463                 <property name="toolTip"> 
     464                  <string>Browse system for the local binary.</string> 
     465                 </property> 
     466                 <property name="text"> 
     467                  <string>Select</string> 
     468                 </property> 
     469                </widget> 
     470               </item> 
     471              </layout> 
     472             </item> 
     473             <item row="1" column="0"> 
     474              <widget class="QLabel" name="label_8"> 
     475               <property name="text"> 
     476                <string>pbi_create</string> 
     477               </property> 
     478              </widget> 
     479             </item> 
     480             <item row="1" column="1"> 
     481              <layout class="QHBoxLayout" name="horizontalLayout_10"> 
     482               <item> 
     483                <widget class="QLineEdit" name="line_pbicreate"> 
     484                 <property name="toolTip"> 
     485                  <string>Full path to the &quot;pbi_create&quot; binary</string> 
     486                 </property> 
     487                </widget> 
     488               </item> 
     489               <item> 
     490                <widget class="QPushButton" name="push_pbicreate"> 
     491                 <property name="toolTip"> 
     492                  <string>Browse system for the local binary.</string> 
     493                 </property> 
     494                 <property name="text"> 
     495                  <string>Select</string> 
     496                 </property> 
     497                </widget> 
     498               </item> 
     499              </layout> 
     500             </item> 
     501             <item row="2" column="0"> 
     502              <widget class="QLabel" name="label_9"> 
     503               <property name="text"> 
     504                <string>Switch User Utility</string> 
     505               </property> 
     506              </widget> 
     507             </item> 
     508             <item row="2" column="1"> 
     509              <layout class="QHBoxLayout" name="horizontalLayout_11"> 
     510               <item> 
     511                <widget class="QLineEdit" name="line_suutility"> 
     512                 <property name="toolTip"> 
     513                  <string>Full path to the graphical &quot;switch user&quot; utility (pc-su, gksu, kdesu, qsu, etc..)</string> 
     514                 </property> 
     515                </widget> 
     516               </item> 
     517               <item> 
     518                <widget class="QPushButton" name="push_suutility"> 
     519                 <property name="toolTip"> 
     520                  <string>Browse system for the local binary.</string> 
     521                 </property> 
     522                 <property name="text"> 
     523                  <string>Select</string> 
     524                 </property> 
     525                </widget> 
     526               </item> 
     527              </layout> 
     528             </item> 
     529             <item row="3" column="0"> 
     530              <widget class="QPushButton" name="push_resetutils"> 
     531               <property name="toolTip"> 
     532                <string>Have EasyPBI re-scan the system for available utilities.</string> 
     533               </property> 
     534               <property name="text"> 
     535                <string>Auto-Detect</string> 
     536               </property> 
     537              </widget> 
     538             </item> 
     539            </layout> 
     540           </widget> 
     541          </item> 
     542         </layout> 
     543        </widget> 
     544       </item> 
     545       <item> 
     546        <widget class="QGroupBox" name="groupBox_2"> 
     547         <property name="title"> 
     548          <string>Default Search Paths</string> 
     549         </property> 
     550         <layout class="QVBoxLayout" name="verticalLayout_10"> 
     551          <item> 
     552           <widget class="QFrame" name="frame_3"> 
     553            <property name="frameShape"> 
     554             <enum>QFrame::StyledPanel</enum> 
     555            </property> 
     556            <property name="frameShadow"> 
     557             <enum>QFrame::Raised</enum> 
     558            </property> 
     559            <layout class="QFormLayout" name="formLayout_4"> 
     560             <item row="0" column="0"> 
     561              <widget class="QLabel" name="label"> 
     562               <property name="text"> 
     563                <string>Module Dir</string> 
     564               </property> 
     565              </widget> 
     566             </item> 
     567             <item row="0" column="1"> 
     568              <layout class="QHBoxLayout" name="horizontalLayout"> 
     569               <item> 
     570                <widget class="QLineEdit" name="line_moduledir"> 
     571                 <property name="toolTip"> 
     572                  <string>Default directory for all PBI modules to be created</string> 
     573                 </property> 
     574                </widget> 
     575               </item> 
     576               <item> 
     577                <widget class="QPushButton" name="push_moduledir"> 
     578                 <property name="toolTip"> 
     579                  <string>Select a local directory for PBI modules.</string> 
     580                 </property> 
     581                 <property name="text"> 
     582                  <string>Select</string> 
     583                 </property> 
     584                </widget> 
     585               </item> 
     586              </layout> 
     587             </item> 
     588             <item row="1" column="0"> 
     589              <widget class="QLabel" name="label_2"> 
     590               <property name="text"> 
     591                <string>Resources Dir</string> 
     592               </property> 
     593              </widget> 
     594             </item> 
     595             <item row="1" column="1"> 
     596              <layout class="QHBoxLayout" name="horizontalLayout_2"> 
     597               <item> 
     598                <widget class="QLineEdit" name="line_icondir"> 
     599                 <property name="toolTip"> 
     600                  <string>Default directory to open when adding icons/files to a module</string> 
     601                 </property> 
     602                </widget> 
     603               </item> 
     604               <item> 
     605                <widget class="QPushButton" name="push_icondir"> 
     606                 <property name="toolTip"> 
     607                  <string>Select a local directory.</string> 
     608                 </property> 
     609                 <property name="text"> 
     610                  <string>Select</string> 
     611                 </property> 
     612                </widget> 
     613               </item> 
     614              </layout> 
     615             </item> 
     616             <item row="2" column="0"> 
     617              <widget class="QLabel" name="label_10"> 
     618               <property name="text"> 
     619                <string>Icon FIle</string> 
     620               </property> 
     621              </widget> 
     622             </item> 
     623             <item row="2" column="1"> 
     624              <layout class="QHBoxLayout" name="horizontalLayout_12"> 
     625               <item> 
     626                <widget class="QLineEdit" name="line_defaulticon"> 
     627                 <property name="toolTip"> 
     628                  <string>Default PNG icon to use for PBI modules.</string> 
     629                 </property> 
     630                </widget> 
     631               </item> 
     632               <item> 
     633                <widget class="QPushButton" name="push_defaulticon"> 
     634                 <property name="toolTip"> 
     635                  <string>Browse local system for a default PNG icon.</string> 
     636                 </property> 
     637                 <property name="text"> 
     638                  <string>Select</string> 
     639                 </property> 
     640                </widget> 
     641               </item> 
     642              </layout> 
     643             </item> 
     644            </layout> 
     645           </widget> 
     646          </item> 
     647         </layout> 
     648        </widget> 
     649       </item> 
     650       <item> 
     651        <spacer name="verticalSpacer_3"> 
     652         <property name="orientation"> 
     653          <enum>Qt::Vertical</enum> 
     654         </property> 
     655         <property name="sizeHint" stdset="0"> 
     656          <size> 
     657           <width>20</width> 
     658           <height>40</height> 
     659          </size> 
     660         </property> 
     661        </spacer> 
    476662       </item> 
    477663      </layout> 
Note: See TracChangeset for help on using the changeset viewer.