Changeset 0c42827


Ignore:
Timestamp:
02/18/14 08:36:13 (10 months ago)
Author:
Ken Moore <ken@…>
Branches:
master, releng/10.0.1, releng/10.0.2, releng/10.0.3, releng/10.1
Children:
480db50
Parents:
b0eb497
Message:

Update EasyPBI to 2.3:
Changes Include:
Add ability to build from ports directly again.
Add legacy port-build options to the GUI.
Add item to show current package compile-time options.
Add ability to create a new module from either ports/packages.
Fix a bug in the default wrapper script for 10.x PBI's (container path is /usr/local/ now when running)

Location:
src-qt4/EasyPBI
Files:
12 edited

Legend:

Unmodified
Added
Removed
  • src-qt4/EasyPBI/HISTORY.txt

    rebba654 r0c42827  
    3939NOTE: This version requires the 10.x version of the PBI manager to build PBI's (included in PC-BSD 10.x). 
    4040Changes include: Update to work with the 10.x version of the PBI manager backend. This includes moving from using the FreeBSD ports tree to using pkgNG packages for information and building (so the FreeBSD ports tree is no longer necessary). This slims down the EasyPBI options/interface quite a bit, so a fair number of options have been removed. Packaging a local PBI is now standardized by simply creating a custom FreeBSD package on your system first, then use EasyPBI to re-package it as a PBI. 
     41 
     42FEB 18, 2014: 
     43EasyPBI version 2.3 is tagged! 
     44Changes include: Add ability for EasyPBI to build PBI's directly from ports again. Add item that shows current package compilation options. Add in option to set port-build compilation options and extra build dependencies (not used for packages). Add ability to create a new module from either ports or packages. Clean up a bug in the default wrapper script for 10.x PBI's. 
  • src-qt4/EasyPBI/ModuleUtils.cpp

    r922a85b r0c42827  
    206206} 
    207207 
    208 QString ModuleUtils::generatePbiBuildCmd(QString confDir, QString outDir, QString sigFile){ 
     208QString ModuleUtils::generatePbiBuildCmd(QString confDir, QString outDir, QString sigFile, bool packageBuild){ 
    209209  QString cmd = "pbi_makeport";  
    210210  if(confDir.isEmpty()){ qDebug() << "Warning: a module must be supplied to build a PBII"; return ""; } 
     
    212212  if(!outDir.isEmpty()){ cmd.append(" -o "+outDir); } 
    213213  if(!sigFile.isEmpty()){ cmd.append(" --sign "+sigFile); } 
    214   cmd.append(" --pkgbuild"); 
     214  if(packageBuild){ cmd.append(" --pkgbuild"); } 
    215215  return cmd; 
    216216} 
     
    223223        out << ""; 
    224224        out << "#Setup some internal script variables"; 
    225         out << "PROGDIR=`pwd | cut -d / -f 1-4`   #Base PBI directory (/usr/pbi/myapplication-<arch>)"; 
     225        out << "PROGDIR=`/usr/local`   #Base PBI directory inside container"; 
    226226        out << "APPBINARY=bin/SAMPLE   #application binary"; 
    227227        out << ""; 
  • src-qt4/EasyPBI/ModuleUtils.h

    rc6b6d5e r0c42827  
    3030        static void compressModule(QString modulePath); 
    3131        static PBIModule newModule(QString moduleDir, QString port, QString iconFile); 
    32         static QString generatePbiBuildCmd(QString confDir, QString outDir, QString sigFile); 
     32        static QString generatePbiBuildCmd(QString confDir, QString outDir, QString sigFile, bool packageBuild = true); 
    3333        static QStringList generateWrapperScriptTemplate(); 
    3434 
  • src-qt4/EasyPBI/backend.cpp

    r8eaa615 r0c42827  
    3535} 
    3636 
    37 QStringList Backend::getCmdOutput(QString cmd){ 
     37QStringList Backend::getCmdOutput(QString cmd, QString dir){ 
    3838  QProcess *proc = new QProcess; 
    3939  proc->setProcessChannelMode(QProcess::MergedChannels); 
     40  if( !dir.isEmpty() && QFile::exists(dir) ){ proc->setWorkingDirectory(dir); } 
    4041  proc->start(cmd); 
    4142  while(!proc->waitForFinished(300)){ 
     
    8586  return out; 
    8687} 
     88//================ 
     89//       PORT TOOLS 
     90// ================ 
     91QStringList Backend::getPortOpts(QString portPath){ 
     92  //output format: <option>:::<on/off>:::<description> 
     93  QString cmd = "make showconfig"; 
     94  QStringList list = Backend::getCmdOutput(cmd, portPath); 
     95  //Now parse the output 
     96  QStringList out; 
     97    for(int i=0; i<list.length(); i++){ 
     98      if(list[i].startsWith("===>")){ continue; } //comment 
     99      else if(list[i].simplified().isEmpty()){ continue; } 
     100      QString opt = list[i].section("=",0,0).simplified(); 
     101      QString val = list[i].section(":",0,0).section("=",1,1).simplified(); 
     102      QString desc = list[i].section(":",1,50).simplified(); 
     103      out << opt+":::"+val+":::"+desc; 
     104    } 
     105  return out; 
     106} 
  • src-qt4/EasyPBI/backend.h

    rebba654 r0c42827  
    77#include <QProcess> 
    88#include <QCoreApplication> 
     9#include <QFile> 
    910 
    1011 
     
    1213public: 
    1314  static QIcon icon(QString); 
    14   static QStringList getCmdOutput(QString cmd); //Run a command and return the output 
     15  static QStringList getCmdOutput(QString cmd, QString dir = ""); //Run a command and return the output 
    1516  //Package database query functions 
    1617  static QStringList getPkgList();   //output format: <category>/<pkgname> 
    1718  static QStringList getPkgInfo(QString pkgname); //output format: [<name>, <port>, <maintainer>, <website>] 
    1819  static QStringList getPkgOpts(QString pkgname); //output format: <option>=<off/on> 
     20  //Port query functions 
     21  static QStringList getPortOpts(QString portPath); 
    1922}; 
    2023 
  • src-qt4/EasyPBI/config.cpp

    rebba654 r0c42827  
    1414        //defaultSettings=[ current version#, programDir, pbiOutputDir, moduleOutputDir, pkgCacheDir, iconFile, settingsFile, iconDir] 
    1515        QString tmp = QDir::homePath()+"/EasyPBI/"; 
    16     defaultSettings << "2.2" << tmp << tmp+"PBI/" << tmp+"Modules/" << tmp+".cache/" << tmp+"defaulticon.png" << tmp+".preferences" << QDir::homePath(); 
     16    defaultSettings << "2.3" << 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; 
     
    106106    else if( line.startsWith("<moduleoutdir>") ){ valueStruct[1] = readSavedValue("<moduleoutdir>",line); } 
    107107    else if( line.startsWith("<cachedir>") ){ valueStruct[2] = readSavedValue("<cachedir>",line); } 
    108     else if( line.startsWith("<portstdir>") ){ valueStruct[3] = readSavedValue("<portsdir>",line); } 
     108    else if( line.startsWith("<portsdir>") ){ valueStruct[3] = readSavedValue("<portsdir>",line); } 
    109109    else if( line.startsWith("<icondir>") ){ valueStruct[4] = readSavedValue("<icondir>",line); } 
    110110    else if( line.startsWith("<defaulticon>") ){ valueStruct[5] = readSavedValue("<defaulticon>",line); } 
  • src-qt4/EasyPBI/mainGUI.cpp

    r23d2792 r0c42827  
    4747          ui->tool_repoCat->setMenu(&menu_validRepoCats); 
    4848          connect(&menu_validRepoCats, SIGNAL(triggered(QAction*)), this, SLOT(slotSetRepoCat(QAction*)) ); 
     49        ui->tool_config_setmkopt->setIcon(Backend::icon("left")); 
     50          ui->tool_config_setmkopt->setMenu(&menu_portopts); 
     51          connect(&menu_portopts, SIGNAL(triggered(QAction*)), this, SLOT(slotSetPortOpt(QAction*)) ); 
    4952        // -- resources tab -- 
    5053        ui->push_resources_savewrapper->setIcon(Backend::icon("save")); 
     
    112115      connect(ui->check_config_nopkg, SIGNAL(clicked()),this,SLOT(slotOptionChanged()) ); 
    113116      connect(ui->check_config_notmpfs, SIGNAL(clicked()),this,SLOT(slotOptionChanged()) ); 
     117      connect(ui->text_config_makeopts, SIGNAL(textChanged()), this, SLOT(slotOptionChanged()) ); 
    114118      connect(ui->group_config_overrides, SIGNAL(clicked()), this, SLOT(updateConfigVisibility()) ); 
    115119      connect(ui->group_config_repo, SIGNAL(clicked()), this, SLOT(updateConfigVisibility()) ); 
    116120      connect(ui->group_config_repomgmt, SIGNAL(clicked()), this, SLOT(updateConfigVisibility()) ); 
     121      connect(ui->group_config_ports, SIGNAL(clicked()), this, SLOT(updateConfigVisibility()) ); 
    117122      // Resources tab 
    118123      connect(ui->text_resources_script,SIGNAL(textChanged()),this,SLOT(slotResourceScriptChanged()) ); 
     
    194199  ui->frame_repoInfo->setVisible(ui->group_config_repo->isChecked()); 
    195200  ui->frame_repoMgmt->setVisible(ui->group_config_repomgmt->isChecked()); 
     201  ui->frame_ports->setVisible(ui->group_config_ports->isChecked()); 
    196202} 
    197203 
     
    238244    ui->list_portafter->clear(); 
    239245    ui->list_portafter->addItems( MODULE.text("PBI_MKPORTAFTER").split("\n") ); 
     246    ui->list_config_mkportbefore->clear(); 
     247    ui->list_config_mkportbefore->addItems(MODULE.text("PBI_MKPORTBEFORE").split("\n") ); 
    240248    // -- Integer Values 
    241249    ui->spin_repoBuildKey->setValue( MODULE.number("PBI_BUILDKEY") ); 
    242250    ui->spin_repoPriority->setValue( MODULE.number("PBI_AB_PRIORITY") ); 
    243251    ui->spin_repoRevision->setValue( MODULE.number("PBI_PROGREVISION") ); 
     252    // -- Text Boxes 
     253    ui->text_config_makeopts->clear(); 
     254    ui->text_config_makeopts->setPlainText(MODULE.text("PBI_MAKEOPTS")); 
    244255    // -- Combo Boxes (Select the proper item only) 
    245256    QStringList icons = MODULE.existingResources().filter(".png"); 
     
    266277      else{ menu_validRepoCats.addAction(tmp[i]); } 
    267278    } 
     279    //Now update the available port build options; 
     280    menu_portopts.clear(); 
     281    QStringList opts = Backend::getPortOpts(settings->value("portsdir")+"/"+MODULE.text("PBI_MAKEPORT")); 
     282    for(int i=0; i<opts.length(); i++){ 
     283      QAction *act = new QAction(this); 
     284        if(opts[i].section(":::",1,1)=="off"){ act->setText( QString(tr("Enable %1")).arg(opts[i].section(":::",0,0)) ); } 
     285        else{ act->setText( QString(tr("Disable %1")).arg(opts[i].section(":::",0,0)) ); } 
     286        act->setToolTip(opts[i].section(":::",2,2)); 
     287        act->setWhatsThis(opts[i].section(":::",0,1).replace(":::","=")); 
     288      menu_portopts.addAction(act); 
     289    } 
     290    ui->tool_config_setmkopt->setEnabled(!menu_portopts.isEmpty()); 
    268291    //Now disable the save button 
    269292    ui->push_config_save->setEnabled(FALSE);  //disable the save button until something changes 
     
    281304      ui->line_config_license->setPlaceholderText(""); 
    282305    } 
     306    pkgInfo = Backend::getPkgOpts(MODULE.text("PBI_MAKEPORT")); 
     307    qDebug() << "pkg opts:" << pkgInfo; 
     308    ui->combo_config_pkgopts->clear(); 
     309    if(!pkgInfo.isEmpty()){ ui->combo_config_pkgopts->addItems(pkgInfo); } 
    283310  } 
    284311  // -----RESOURCES-------- 
     
    372399  //------OVERALL SETTINGS------ 
    373400  if( doall || doeditor ){ 
    374     //Enable/disable the buttons that require the FreeBSD ports tree 
    375     if( settings->check("isportsavailable") ){ 
    376       ui->push_change_makeport->setEnabled(TRUE); 
    377       //ui->push_addportbefore->setEnabled(TRUE); 
    378       ui->push_addportafter->setEnabled(TRUE); 
    379     }else{ 
    380       ui->push_change_makeport->setEnabled(FALSE); 
    381       //ui->push_addportbefore->setEnabled(FALSE); 
    382       ui->push_addportafter->setEnabled(FALSE); 
    383     } 
    384401    //Check for a 64-bit system to enable the 32-bit build option 
    385402    //if( settings->check("is64bit") ){ ui->check_build_32->setVisible(TRUE); } 
     
    390407  } 
    391408} 
     409 
     410QString MainGUI::getPortPackage(){ 
     411  QString portSel; 
     412  if( settings->check("isportsavailable") && ui->check_config_nopkg->isChecked()){ 
     413    //Prompt for a new port 
     414    portSel = QFileDialog::getExistingDirectory(this, tr("Select Port"), settings->value("portsdir"));   
     415  }else{ 
     416    //Prompt for a package 
     417    pkgSelect dlg(this); 
     418    dlg.exec(); 
     419    if(dlg.selected){ portSel = dlg.portSelected; }; 
     420  } 
     421  return portSel; 
     422} 
     423 
    392424/*---------------------------------- 
    393425   MENU OPTIONS 
     
    462494  qDebug() << "New Module triggered"; 
    463495  //Create and run the new dialog 
    464   NewModuleDialog* dlg = new NewModuleDialog(this); 
     496  QString pDir = ""; 
     497  if(settings->check("isportsavailable")){ pDir = settings->value("portsdir"); } 
     498  NewModuleDialog* dlg = new NewModuleDialog(this, pDir); 
    465499  dlg->setDefaultIconFile(settings->value("defaulticon")); 
    466500  dlg->exec(); 
     
    477511    }else{ 
    478512      line_module->setText( MODULE.basepath().replace(QDir::homePath(), "~") ); 
     513      if(dlg->isPort){ 
     514        //A couple additional conveniances for port builds 
     515        MODULE.setEnabled("PBI_AB_NOPKGBUILD",true); 
     516        MODULE.saveConfig(); 
     517        ui->group_config_ports->setChecked(true); 
     518      } 
    479519    } 
    480520  } 
     
    533573*/ 
    534574void MainGUI::on_push_change_makeport_clicked(){ 
    535   pkgSelect dlg(this); 
    536   dlg.exec(); 
    537   if(!dlg.selected){ return; } 
    538   QString portSel = dlg.portSelected;      
     575  QString portSel = getPortPackage();      
    539576  if(portSel.isEmpty()){return;}         
    540577 
     
    544581} 
    545582 
    546 void MainGUI::on_push_addportafter_clicked(){ 
    547   if( !settings->check("isportsavailable") ){ 
    548     //No ports tree available 
    549     QMessageBox::warning(this,tr("EasyPBI: No FreeBSD Ports"), tr("The FreeBSD Ports tree could not be found on your system. You may fetch the ports tree through the EasyPBI menu or manually set the path to the port tree in the EasyPBI preferences if it is installed in a non-standard location.")); 
    550   } 
     583void MainGUI::on_tool_addportafter_clicked(){ 
    551584  //Prompt for a new port 
    552   QString portSel = QFileDialog::getExistingDirectory(this, tr("Select Port"), settings->value("portsdir")); 
     585  QString portSel = getPortPackage(); 
    553586  if(portSel.isEmpty()){return;} //action cancelled or closed    
    554587  //Save the port info to the GUI 
     
    558591} 
    559592 
    560 void MainGUI::on_push_rmportafter_clicked(){ 
     593void MainGUI::on_tool_rmportafter_clicked(){ 
    561594  int index = ui->list_portafter->currentIndex(); 
    562595  if(index != -1){ 
    563596    ui->list_portafter->removeItem(index); 
     597  } 
     598  ui->push_config_save->setEnabled(TRUE); 
     599} 
     600 
     601void MainGUI::on_tool_config_addportbefore_clicked(){ 
     602  QString portSel = getPortPackage(); 
     603  if(portSel.isEmpty()){return;} //action cancelled or closed    
     604  //Save the port info to the GUI 
     605  if(ui->list_config_mkportbefore->count() == 1 && ui->list_config_mkportbefore->currentText().isEmpty() ){ ui->list_config_mkportbefore->clear(); } 
     606  ui->list_config_mkportbefore->addItem(portSel.remove(settings->value("portsdir")+"/")); 
     607  ui->push_config_save->setEnabled(TRUE); 
     608} 
     609 
     610void MainGUI::on_tool_config_rmportbefore_clicked(){ 
     611  int index = ui->list_config_mkportbefore->currentIndex(); 
     612  if(index != -1){ 
     613    ui->list_config_mkportbefore->removeItem(index); 
    564614  } 
    565615  ui->push_config_save->setEnabled(TRUE); 
     
    587637  for(int i=0; i<ui->list_portafter->count(); i++){ addports << ui->list_portafter->itemText(i); } 
    588638  MODULE.setText("PBI_MKPORTAFTER", addports.join("\n") ); 
     639  addports.clear(); 
     640  for(int i=0; i<ui->list_config_mkportbefore->count(); i++){ addports << ui->list_config_mkportbefore->itemText(i); } 
     641  MODULE.setText("PBI_MKPORTBEFORE", addports.join("\n") ); 
    589642  MODULE.setText("PBI_PROGICON", ui->list_progicon->currentText() ); 
    590643  //Number values 
     
    592645  MODULE.setNumber("PBI_AB_PRIORITY", ui->spin_repoPriority->value() ); 
    593646  MODULE.setNumber("PBI_PROGREVISION", ui->spin_repoRevision->value() ); 
     647  //Text Values 
     648  MODULE.setText("PBI_MAKEOPTS", ui->text_config_makeopts->toPlainText()); 
    594649   
    595650  //save the new settings to pbi.conf 
     
    618673} 
    619674 
     675void MainGUI::slotSetPortOpt(QAction* act){ 
     676  QString opt = act->whatsThis(); 
     677  QStringList cOpts = ui->text_config_makeopts->toPlainText().split("\n"); 
     678  QString header; 
     679  if(opt.endsWith("=off")){ 
     680    //This needs to be enabled 
     681    header = MODULE.text("PBI_MAKEPORT").section("/",-1) + "_SET="; 
     682  }else{ 
     683    //This needs to be disabled 
     684    header = MODULE.text("PBI_MAKEPORT").section("/",-1) + "_UNSET="; 
     685  } 
     686  bool added = false; 
     687  for(int i=0; i<cOpts.length(); i++){ 
     688    if(cOpts[i].startsWith(header)){  
     689      if( !cOpts[i].contains(opt.section("=",0,0)) ){ 
     690        //Not already set, so set it 
     691        cOpts[i].append(" "+opt.section("=",0,0));  
     692      } 
     693      added=true;  
     694      break; 
     695    } 
     696  } 
     697  if(!added){ cOpts << header+opt.section("=",0,0); } 
     698  ui->text_config_makeopts->clear(); 
     699  cOpts.removeAll(""); //Remove empty lines 
     700  ui->text_config_makeopts->setPlainText( cOpts.join("\n") ); 
     701} 
    620702/*------------------------------------------------ 
    621703   RESOURCE EDITOR OPTIONS 
     
    12601342  QString sigFile; 
    12611343  if( settings->check("usesignature") && QFile::exists(settings->value("sigfile")) ){ sigFile = settings->value("sigfile"); } 
    1262   QString cmd = ModuleUtils::generatePbiBuildCmd(MODULE.basepath(), outdir, sigFile); 
     1344  QString cmd = ModuleUtils::generatePbiBuildCmd(MODULE.basepath(), outdir, sigFile, !MODULE.isEnabled("PBI_AB_NOPKGBUILD") ); 
    12631345  //Display the command created in hte terminal 
    12641346  qDebug() << "Build PBI command created:"<<cmd; 
  • src-qt4/EasyPBI/mainGUI.h

    rebba654 r0c42827  
    5656    //pbi.conf functions 
    5757    void on_push_change_makeport_clicked(); 
    58     void on_push_addportafter_clicked(); 
    59     void on_push_rmportafter_clicked(); 
     58    void on_tool_addportafter_clicked(); 
     59    void on_tool_rmportafter_clicked(); 
     60    void on_tool_config_addportbefore_clicked(); 
     61    void on_tool_config_rmportbefore_clicked(); 
    6062    void on_push_config_save_clicked(); 
    6163    void slotOptionChanged(QString tmp=""); 
    6264    void slotSetRepoType(QAction* act); 
    6365    void slotSetRepoCat(QAction* act); 
     66    void slotSetPortOpt(QAction* act); 
    6467    //resources functions 
    6568    void slotResourceChanged(); 
     
    105108    Config *settings; 
    106109    QLineEdit *line_module; 
    107     QMenu menu_elOpts, menu_validMenuCats, menu_validRepoCats, menu_validRepoTypes; 
     110    QMenu menu_elOpts, menu_validMenuCats, menu_validRepoCats, menu_validRepoTypes, menu_portopts; 
    108111    bool XDGUPDATING; 
    109112    QString lastModuleDir; 
     
    115118    void SetupDefaults(); 
    116119    void checkMime(); 
     120    QString getPortPackage(); 
    117121 
    118122}; 
  • src-qt4/EasyPBI/mainGUI.ui

    r8eaa615 r0c42827  
    259259             <y>0</y> 
    260260             <width>528</width> 
    261              <height>659</height> 
     261             <height>822</height> 
    262262            </rect> 
    263263           </property> 
     
    473473                    </item> 
    474474                    <item> 
    475                      <widget class="QPushButton" name="push_addportafter"> 
    476                       <property name="statusTip"> 
    477                        <string>Add additional FreeBSD port</string> 
    478                       </property> 
     475                     <widget class="QToolButton" name="tool_addportafter"> 
    479476                      <property name="text"> 
    480                        <string/> 
     477                       <string>...</string> 
    481478                      </property> 
    482479                      <property name="icon"> 
     
    487484                    </item> 
    488485                    <item> 
    489                      <widget class="QPushButton" name="push_rmportafter"> 
    490                       <property name="statusTip"> 
    491                        <string>Remove additional FreeBSD port</string> 
    492                       </property> 
     486                     <widget class="QToolButton" name="tool_rmportafter"> 
    493487                      <property name="text"> 
    494                        <string/> 
     488                       <string>...</string> 
    495489                      </property> 
    496490                      <property name="icon"> 
     
    502496                   </layout> 
    503497                  </item> 
     498                  <item row="4" column="0"> 
     499                   <widget class="QLabel" name="label_11"> 
     500                    <property name="text"> 
     501                     <string>Pkg Setup</string> 
     502                    </property> 
     503                   </widget> 
     504                  </item> 
    504505                  <item row="4" column="1"> 
     506                   <widget class="QComboBox" name="combo_config_pkgopts"> 
     507                    <property name="sizePolicy"> 
     508                     <sizepolicy hsizetype="Expanding" vsizetype="Fixed"> 
     509                      <horstretch>0</horstretch> 
     510                      <verstretch>0</verstretch> 
     511                     </sizepolicy> 
     512                    </property> 
     513                   </widget> 
     514                  </item> 
     515                 </layout> 
     516                </widget> 
     517               </item> 
     518              </layout> 
     519             </widget> 
     520            </item> 
     521            <item> 
     522             <widget class="QGroupBox" name="group_config_ports"> 
     523              <property name="title"> 
     524               <string>Legacy Port-Build Options (optional)</string> 
     525              </property> 
     526              <property name="checkable"> 
     527               <bool>true</bool> 
     528              </property> 
     529              <property name="checked"> 
     530               <bool>false</bool> 
     531              </property> 
     532              <layout class="QVBoxLayout" name="verticalLayout_24"> 
     533               <item> 
     534                <widget class="QFrame" name="frame_ports"> 
     535                 <property name="frameShape"> 
     536                  <enum>QFrame::NoFrame</enum> 
     537                 </property> 
     538                 <property name="frameShadow"> 
     539                  <enum>QFrame::Raised</enum> 
     540                 </property> 
     541                 <layout class="QFormLayout" name="formLayout_6"> 
     542                  <property name="fieldGrowthPolicy"> 
     543                   <enum>QFormLayout::ExpandingFieldsGrow</enum> 
     544                  </property> 
     545                  <item row="0" column="1"> 
    505546                   <widget class="QCheckBox" name="check_config_nopkg"> 
    506547                    <property name="text"> 
    507                      <string>Never use pre-built packages</string> 
    508                     </property> 
    509                    </widget> 
     548                     <string>Build directly from source</string> 
     549                    </property> 
     550                   </widget> 
     551                  </item> 
     552                  <item row="1" column="0"> 
     553                   <widget class="QLabel" name="label_10"> 
     554                    <property name="text"> 
     555                     <string>Build Dependencies</string> 
     556                    </property> 
     557                   </widget> 
     558                  </item> 
     559                  <item row="1" column="1"> 
     560                   <layout class="QHBoxLayout" name="horizontalLayout_7"> 
     561                    <item> 
     562                     <widget class="QComboBox" name="list_config_mkportbefore"> 
     563                      <property name="sizePolicy"> 
     564                       <sizepolicy hsizetype="Expanding" vsizetype="Fixed"> 
     565                        <horstretch>0</horstretch> 
     566                        <verstretch>0</verstretch> 
     567                       </sizepolicy> 
     568                      </property> 
     569                     </widget> 
     570                    </item> 
     571                    <item> 
     572                     <widget class="QToolButton" name="tool_config_addportbefore"> 
     573                      <property name="text"> 
     574                       <string>...</string> 
     575                      </property> 
     576                      <property name="icon"> 
     577                       <iconset resource="EasyPBI.qrc"> 
     578                        <normaloff>:/png/icons/plus.png</normaloff>:/png/icons/plus.png</iconset> 
     579                      </property> 
     580                     </widget> 
     581                    </item> 
     582                    <item> 
     583                     <widget class="QToolButton" name="tool_config_rmportbefore"> 
     584                      <property name="text"> 
     585                       <string>...</string> 
     586                      </property> 
     587                      <property name="icon"> 
     588                       <iconset resource="EasyPBI.qrc"> 
     589                        <normaloff>:/png/icons/minus.png</normaloff>:/png/icons/minus.png</iconset> 
     590                      </property> 
     591                     </widget> 
     592                    </item> 
     593                   </layout> 
     594                  </item> 
     595                  <item row="2" column="0"> 
     596                   <widget class="QLabel" name="label_9"> 
     597                    <property name="text"> 
     598                     <string>Make Options</string> 
     599                    </property> 
     600                   </widget> 
     601                  </item> 
     602                  <item row="2" column="1"> 
     603                   <layout class="QHBoxLayout" name="horizontalLayout_15"> 
     604                    <item> 
     605                     <widget class="QPlainTextEdit" name="text_config_makeopts"/> 
     606                    </item> 
     607                    <item> 
     608                     <widget class="QToolButton" name="tool_config_setmkopt"> 
     609                      <property name="text"> 
     610                       <string>...</string> 
     611                      </property> 
     612                      <property name="popupMode"> 
     613                       <enum>QToolButton::InstantPopup</enum> 
     614                      </property> 
     615                     </widget> 
     616                    </item> 
     617                   </layout> 
    510618                  </item> 
    511619                 </layout> 
     
    16381746     <y>0</y> 
    16391747     <width>575</width> 
    1640      <height>21</height> 
     1748     <height>20</height> 
    16411749    </rect> 
    16421750   </property> 
  • src-qt4/EasyPBI/newModuleDialog.cpp

    rebba654 r0c42827  
    44#include <QDebug> 
    55 
    6 NewModuleDialog::NewModuleDialog(QWidget *parent) : 
     6NewModuleDialog::NewModuleDialog(QWidget *parent, QString portsdir) : 
    77    QDialog(parent), 
    88    ui(new Ui::NewModuleDialog) 
     
    1111       //Setup Initial state of GUI objects and connect signal/slots 
    1212       ui->setupUi(this);  //load the main UI from designer 
    13        isAccepted = FALSE; 
     13       isAccepted = false; 
     14       isPort=false; 
     15        portsDir=portsdir; 
     16        if(!portsDir.isEmpty() && !portsDir.endsWith("/")){ portsDir.append("/"); } 
    1417        //Setup the dialog icons 
    1518        ui->push_port->setIcon(Backend::icon("load")); 
    1619        ui->push_icon->setIcon(Backend::icon("file")); 
     20        if(portsDir.isEmpty()){ ui->push_port->setEnabled(false); } 
    1721} 
    1822 
     
    4044 
    4145void NewModuleDialog::on_push_port_clicked(){ 
     46  QString portSel = QFileDialog::getExistingDirectory(this, tr("Select Port"), portsDir); 
     47  if(!portSel.isEmpty()){ 
     48    ui->line_port->setText(portSel.remove(portsDir)); 
     49    isPort=true; 
     50  }        
     51} 
     52 
     53void NewModuleDialog::on_push_package_clicked(){ 
    4254  pkgSelect dlg(this); 
    4355  dlg.exec(); 
    4456  if(dlg.selected){ 
    4557    ui->line_port->setText(dlg.portSelected); 
    46   } 
     58    isPort=false; 
     59  }      
    4760} 
    4861 
  • src-qt4/EasyPBI/newModuleDialog.h

    rebba654 r0c42827  
    2121 
    2222public: 
    23     explicit NewModuleDialog(QWidget *parent = 0); 
     23    explicit NewModuleDialog(QWidget *parent = 0, QString portsdir = ""); 
    2424    virtual ~NewModuleDialog(); 
    2525 
    2626    bool isAccepted; 
     27    bool isPort; 
    2728    void setDefaultIconFile(QString); 
    2829    QString moduleIcon, moduleData; 
     
    3334    void on_buttonBox_rejected(); 
    3435    void on_push_port_clicked(); 
     36    void on_push_package_clicked(); 
    3537    void on_push_icon_clicked(); 
    3638 
    3739private: 
    3840    Ui::NewModuleDialog *ui; 
     41    QString portsDir; 
    3942 
    4043}; 
  • src-qt4/EasyPBI/newModuleDialog.ui

    rebba654 r0c42827  
    77    <x>0</x> 
    88    <y>0</y> 
    9     <width>394</width> 
    10     <height>111</height> 
     9    <width>442</width> 
     10    <height>103</height> 
    1111   </rect> 
    1212  </property> 
     
    3535     </item> 
    3636     <item> 
    37       <widget class="QPushButton" name="push_port"> 
    38        <property name="toolTip"> 
    39         <string>Select a port from the local FreeBSD ports tree</string> 
     37      <widget class="QToolButton" name="push_port"> 
     38       <property name="text"> 
     39        <string>Port</string> 
    4040       </property> 
     41       <property name="toolButtonStyle"> 
     42        <enum>Qt::ToolButtonTextBesideIcon</enum> 
     43       </property> 
     44      </widget> 
     45     </item> 
     46     <item> 
     47      <widget class="QToolButton" name="push_package"> 
    4148       <property name="text"> 
    42         <string>Select</string> 
     49        <string>Pkg</string> 
     50       </property> 
     51       <property name="icon"> 
     52        <iconset resource="EasyPBI.qrc"> 
     53         <normaloff>:/png/icons/search.png</normaloff>:/png/icons/search.png</iconset> 
     54       </property> 
     55       <property name="toolButtonStyle"> 
     56        <enum>Qt::ToolButtonTextBesideIcon</enum> 
    4357       </property> 
    4458      </widget> 
     
    6377     </item> 
    6478     <item> 
    65       <widget class="QPushButton" name="push_icon"> 
     79      <widget class="QToolButton" name="push_icon"> 
    6680       <property name="toolTip"> 
    6781        <string>Select a local PNG file (64x64 pixel size recommended)</string> 
     
    6983       <property name="text"> 
    7084        <string>Select</string> 
     85       </property> 
     86       <property name="toolButtonStyle"> 
     87        <enum>Qt::ToolButtonTextBesideIcon</enum> 
    7188       </property> 
    7289      </widget> 
Note: See TracChangeset for help on using the changeset viewer.