Changeset dcaaab6


Ignore:
Timestamp:
02/24/14 12:45:29 (8 months ago)
Author:
JoshDW19 <joshms@…>
Branches:
master, releng/10.0.1, releng/10.0.2, releng/10.0.3
Children:
75c77a9
Parents:
4302cc4 (diff), 127b5d8 (diff)
Note: this is a merge changeset, the changes displayed below correspond to the merge itself.
Use the (diff) links above to see all the changes relative to each parent.
Message:

Merge branch 'master' of https://github.com/pcbsd/pcbsd

Files:
7 edited

Legend:

Unmodified
Added
Removed
  • src-qt4/pc-softwaremanager/mainUI.cpp

    re543bca r2b9aed7  
    168168    actionMenu->addSeparator(); 
    169169    actionMenu->addAction( QIcon(":icons/dialog-cancel.png"), tr("Cancel Actions"), this, SLOT(slotActionCancel()) ); 
     170  //Setup the shortcuts menu for installed applications 
     171  shortcutMenu = new QMenu(this); 
     172    sDeskMenu = shortcutMenu->addMenu( QIcon(":icons/xdg_desktop.png"), tr("Desktop Icons")); 
     173      sDeskMenu->addAction( QIcon(":icons/add.png"),tr("Add"),this,SLOT(slotActionAddDesktop()) ); 
     174      sDeskMenu->addAction( QIcon(":icons/remove.png"),tr("Remove"),this,SLOT(slotActionRemoveDesktop()) ); 
     175    sMenuMenu = shortcutMenu->addMenu( QIcon(":icons/xdg_menu.png"), tr("Menu Icons")); 
     176      sMenuMenu->addAction( QIcon(":icons/add.png"),tr("Add"),this,SLOT(slotActionAddMenu()) ); 
     177      sMenuMenu->addAction( QIcon(":icons/remove.png"),tr("Remove"),this,SLOT(slotActionRemoveMenu()) );   
     178      sMenuMenu->addAction( QIcon(":icons/add-root.png"),tr("Add (All Users)"),this,SLOT(slotActionAddMenuAll()) ); 
     179    QMenu *spmenu = shortcutMenu->addMenu( QIcon(":icons/xdg_paths.png"), tr("Path Links")); 
     180      spmenu->addAction( QIcon(":icons/add.png"),tr("Add"),this,SLOT(slotActionAddPath()) ); 
     181      spmenu->addAction( QIcon(":icons/remove.png"),tr("Remove"),this,SLOT(slotActionRemovePath()) );   
     182      spmenu->addAction( QIcon(":icons/add-root.png"),tr("Add (All Users)"),this,SLOT(slotActionAddPathAll()) ); 
     183    QMenu *sfmenu = shortcutMenu->addMenu( QIcon(":icons/xdg_mime.png"), tr("File Associations")); 
     184      sfmenu->addAction( QIcon(":icons/add.png"),tr("Add"),this,SLOT(slotActionAddMime()) ); 
     185      sfmenu->addAction( QIcon(":icons/remove.png"),tr("Remove"),this,SLOT(slotActionRemoveMime()) );   
     186      sfmenu->addAction( QIcon(":icons/add-root.png"),tr("Add (All Users)"),this,SLOT(slotActionAddMimeAll()) ); 
     187  ui->tool_install_shortcuts->setMenu(shortcutMenu); 
    170188  //Setup the binary menu for installed applications 
    171189  appBinMenu = new QMenu(); 
     
    179197  connect(ui->tree_install_apps, SIGNAL(itemClicked(QTreeWidgetItem*, int)), this, SLOT(slotCheckSelectedItems()) ); 
    180198  slotRefreshInstallTab(); 
    181   qDebug() << "Detailed shortcuts button not implemented yet"; 
    182   ui->tool_install_shortcuts->setEnabled(false); 
    183199} 
    184200 
     
    205221 
    206222QStringList MainUI::getCheckedItems(){ 
    207   //Return the pbiID's of all the checked items 
     223  //Return the pbiID's of all the active items 
    208224  QStringList output; 
    209   for(int i=0; i<ui->tree_install_apps->topLevelItemCount(); i++){ 
    210     if(ui->tree_install_apps->topLevelItem(i)->checkState(0) == Qt::Checked){ 
    211       output << ui->tree_install_apps->topLevelItem(i)->whatsThis(0); 
    212     } 
    213   } 
    214   //If no items checked, use the item that is selected instead 
    215   if(output.isEmpty()){ 
    216     //Make sure that an item is selected 
    217     if(ui->tree_install_apps->topLevelItemCount() >0){ 
    218       output << ui->tree_install_apps->currentItem()->whatsThis(0);   
    219     } 
    220   } 
     225  //See if we are on the single-app details page - then get the current app only 
     226  if(ui->stackedWidget->currentWidget() == ui->page_install_details){ 
     227      output << cDetails;   
     228           
     229  //If on the main Installed page, look for checked items only 
     230  }else{ 
     231    for(int i=0; i<ui->tree_install_apps->topLevelItemCount(); i++){ 
     232      if(ui->tree_install_apps->topLevelItem(i)->checkState(0) == Qt::Checked){ 
     233        output << ui->tree_install_apps->topLevelItem(i)->whatsThis(0); 
     234      } 
     235    } 
     236  } 
     237  qDebug() << "Checked Items:" << output; 
    221238  return output;         
    222239} 
     
    292309  slotDisplayStats(); 
    293310  slotCheckSelectedItems(); 
     311  //If the browser app page is currently visible for this app 
     312  if( (ui->stacked_browser->currentWidget() == ui->page_app) && ui->page_app->isVisible() ){ 
     313    slotGoToApp(cApp); 
     314  } 
    294315} 
    295316 
     
    328349    } 
    329350  } 
     351  //If the browser app page is current for this app 
     352  QString metaID = PBI->pbiToAppID(pbiID); 
     353  if( (ui->stacked_browser->currentWidget() == ui->page_app) && (cApp == metaID) && ui->page_app->isVisible() ){ 
     354    slotUpdateAppDownloadButton(); 
     355  } 
    330356} 
    331357 
     
    570596  //Get the information to update the details page 
    571597  //Get the PBI info for that item 
     598    cDetails = appID; //save for later 
    572599    QStringList vals;  
    573600    vals << "name" << "icon" << "author" << "website" << "version" << "license" << "description" << "maintainer" << "date" << "arch"; 
     
    594621      else if(menuSC){ shortcuts = tr("Menu"); } 
    595622      else{ shortcuts = tr("None"); } 
     623    sDeskMenu->setEnabled(desktopSC); 
     624    sMenuMenu->setEnabled(menuSC); 
    596625    //Now display that info on the UI 
    597626    ui->label_install_app->setText(vals[0]); 
     
    610639    ui->label_install_date->setText(vals[8]); 
    611640    ui->label_install_arch->setText(vals[9]); 
    612     ui->label_install_shortcuts->setText(shortcuts); 
     641    //ui->label_install_shortcuts->setText(shortcuts); 
    613642    ui->check_install_autoupdate->setChecked(autoupdate); 
    614643   
     
    832861    return; 
    833862  } 
     863  cApp = appID; //save this for later 
    834864  //Start the search for similar apps 
    835865  PBI->searchSimilar = appID; 
     
    868898  } 
    869899  //Now update the download button appropriately 
    870   QString ico; 
    871   QString working = PBI->currentAppStatus(appID); 
    872   if(!working.isEmpty()){ //app currently pending or actually doing something 
    873     ui->tool_bapp_download->setText(working); 
    874     ui->tool_bapp_download->setIcon(QIcon(":icons/working.png")); 
    875     ui->tool_bapp_download->setEnabled(FALSE); 
    876   }else if(useLatest && cVer.isEmpty()){ //new installation 
    877     ui->tool_bapp_download->setText(tr("Install Now!")); 
    878     ico = ":icons/app_download.png"; 
    879     ui->tool_bapp_download->setEnabled(TRUE); 
    880   }else if(useLatest){ //Update available 
    881     ui->tool_bapp_download->setText(tr("Update")); 
    882     ico = ":icons/app_upgrade.png"; 
    883     ui->tool_bapp_download->setEnabled(TRUE); 
    884   }else if(!nobackup){  //Downgrade available 
    885     ui->tool_bapp_download->setText(tr("Downgrade")); 
    886     ico = ":icons/app_downgrade.png"; 
    887     ui->tool_bapp_download->setEnabled(TRUE); 
    888   }else{ //already installed (no downgrade available) 
    889     ui->tool_bapp_download->setText(tr("Installed")); 
    890     ui->tool_bapp_download->setIcon(QIcon(":icons/dialog-ok.png")); 
    891     ui->tool_bapp_download->setEnabled(FALSE); 
    892   } 
    893   //Now set the icon appropriately if it requires root permissions 
    894   if(!ico.isEmpty()){ 
    895     if(data[8]=="true"){ //requires root permissions to install 
    896       ico.replace(".png","-root.png"); 
    897     } 
    898     ui->tool_bapp_download->setIcon(QIcon(ico)); 
    899   } 
    900   ui->tool_bapp_download->setWhatsThis(appID); //set for slot 
     900  slotUpdateAppDownloadButton(); 
     901 
    901902  //Now enable/disable the shortcut buttons 
    902903  ui->tool_browse_app->setVisible(TRUE); 
     
    913914  ui->stacked_browser->setCurrentWidget(ui->page_app); 
    914915         
     916} 
     917 
     918void MainUI::slotUpdateAppDownloadButton(){ 
     919  QString ico; 
     920  QString working = PBI->currentAppStatus(cApp); 
     921  QStringList info = PBI->AppInfo(cApp, QStringList() << "latestversion" << "backupversion" << "requiresroot"); 
     922  QString pbiID = PBI->isInstalled(cApp); 
     923  if(!working.isEmpty()){ //app currently pending or actually doing something 
     924    ui->tool_bapp_download->setText(working); 
     925    ui->tool_bapp_download->setIcon(QIcon(":icons/working.png")); 
     926    ui->tool_bapp_download->setEnabled(FALSE); 
     927  }else if( pbiID.isEmpty() ){ //new installation 
     928    ui->tool_bapp_download->setText(tr("Install Now!")); 
     929    ico = ":icons/app_download.png"; 
     930    ui->tool_bapp_download->setEnabled(TRUE); 
     931  }else if( !PBI->upgradeAvailable(pbiID).isEmpty() ){ //Update available 
     932    ui->tool_bapp_download->setText(tr("Update")); 
     933    ico = ":icons/app_upgrade.png"; 
     934    ui->tool_bapp_download->setEnabled(TRUE); 
     935  }else if(!info[1].isEmpty()){  //Downgrade available 
     936    ui->tool_bapp_download->setText(tr("Downgrade")); 
     937    ico = ":icons/app_downgrade.png"; 
     938    ui->tool_bapp_download->setEnabled(TRUE); 
     939  }else{ //already installed (no downgrade available) 
     940    ui->tool_bapp_download->setText(tr("Installed")); 
     941    ui->tool_bapp_download->setIcon(QIcon(":icons/dialog-ok.png")); 
     942    ui->tool_bapp_download->setEnabled(FALSE); 
     943  } 
     944  //Now set the icon appropriately if it requires root permissions 
     945  if(!ico.isEmpty()){ 
     946    if(info[2]=="true"){ //requires root permissions to install 
     947      ico.replace(".png","-root.png"); 
     948    } 
     949    ui->tool_bapp_download->setIcon(QIcon(ico)); 
     950  } 
     951  ui->tool_bapp_download->setWhatsThis(cApp); //set for slot 
    915952} 
    916953 
     
    10591096  ui->tool_bapp_download->setEnabled(FALSE); //make sure it cannot be clicked more than once before page refresh 
    10601097  //Now show the Installed tab 
    1061   ui->tabWidget->setCurrentWidget(ui->tab_installed); 
     1098  //ui->tabWidget->setCurrentWidget(ui->tab_installed); 
    10621099} 
    10631100 
  • src-qt4/pc-softwaremanager/mainUI.h

    re543bca r2b9aed7  
    9595  void slotGoToCategory(QString); 
    9696  void slotGoToApp(QString); 
     97  void slotUpdateAppDownloadButton(); 
    9798  void slotGoToSearch(); 
    9899  void slotShowSimilarApps(QStringList); 
     
    114115  PBIBackend *PBI; 
    115116  //INSTALLED TAB 
    116   QMenu *actionMenu, *appBinMenu; 
     117  QMenu *actionMenu, *appBinMenu, *shortcutMenu, *sDeskMenu, *sMenuMenu; 
     118  QString cDetails; 
    117119  void initializeInstalledTab(); 
    118120  void formatInstalledItemDisplay(QTreeWidgetItem *item); 
     
    120122  //BROWSER TAB 
    121123  QTimer *searchTimer; 
    122   QString cCat; 
     124  QString cCat, cApp; 
    123125  void initializeBrowserTab(); 
    124126  //OTHER 
     
    127129  void slotDisplayStats(); 
    128130     
    129      
    130 signals: 
    131      
    132131} ; 
    133132 
  • src-qt4/pc-softwaremanager/mainUI.ui

    re543bca r2b9aed7  
    503503                 <iconset resource="SoftwareManager.qrc"> 
    504504                  <normaloff>:/icons/config.png</normaloff>:/icons/config.png</iconset> 
     505                </property> 
     506                <property name="popupMode"> 
     507                 <enum>QToolButton::InstantPopup</enum> 
    505508                </property> 
    506509                <property name="toolButtonStyle"> 
     
    877880                    <x>0</x> 
    878881                    <y>0</y> 
    879                     <width>407</width> 
    880                     <height>61</height> 
     882                    <width>98</width> 
     883                    <height>28</height> 
    881884                   </rect> 
    882885                  </property> 
     
    928931                    <x>0</x> 
    929932                    <y>0</y> 
    930                     <width>401</width> 
    931                     <height>254</height> 
     933                    <width>98</width> 
     934                    <height>28</height> 
    932935                   </rect> 
    933936                  </property> 
     
    953956                 <x>0</x> 
    954957                 <y>0</y> 
    955                  <width>423</width> 
    956                  <height>381</height> 
     958                 <width>98</width> 
     959                 <height>28</height> 
    957960                </rect> 
    958961               </property> 
     
    13531356                    <x>0</x> 
    13541357                    <y>0</y> 
    1355                     <width>411</width> 
    1356                     <height>61</height> 
     1358                    <width>98</width> 
     1359                    <height>28</height> 
    13571360                   </rect> 
    13581361                  </property> 
     
    14141417                    <x>0</x> 
    14151418                    <y>0</y> 
    1416                     <width>407</width> 
    1417                     <height>148</height> 
     1419                    <width>98</width> 
     1420                    <height>28</height> 
    14181421                   </rect> 
    14191422                  </property> 
     
    14521455                    <x>0</x> 
    14531456                    <y>0</y> 
    1454                     <width>407</width> 
    1455                     <height>148</height> 
     1457                    <width>98</width> 
     1458                    <height>28</height> 
    14561459                   </rect> 
    14571460                  </property> 
  • src-qt4/pc-softwaremanager/pbiBackend.cpp

    re543bca rf7905b5  
    629629  } 
    630630  return output; 
     631} 
     632 
     633QString PBIBackend::pbiToAppID(QString pbiID){ 
     634  QString appID; 
     635  if( PBIHASH.contains(pbiID) ){ appID = PBIHASH[pbiID].metaID; }        
     636  return appID; 
    631637} 
    632638 
  • src-qt4/pc-softwaremanager/pbiBackend.h

    re543bca rf7905b5  
    7070        bool isWorking(QString pbiID); 
    7171        QStringList pbiBinList(QString pbiID); 
     72        QString pbiToAppID(QString pbiID); 
    7273         
    7374        //Configuration Management 
     
    7778        bool exportPbiListToFile(QString filepath); 
    7879        bool importPbiListFromFile(QString filepath); 
    79  
     80         
    8081public slots: 
    8182        void startAppSearch(); //get list of apps containing the search string (SIGNAL OUTPUT ONLY) 
  • src-qt4/warden-gui/wizardNewJail.cpp

    r4302cc4 rdcaaab6  
    111111  goodPal.setColor(QPalette::WindowText,white); 
    112112  labelMessage->setText(QString()); 
    113  
     113  bool ok = true; 
    114114 
    115115  switch (currentId()) { 
     
    117117         // Make sure items are not empty.  Also check for invalid characters 
    118118         if ( checkIPv4->isChecked() && lineIP->text().isEmpty() ) { 
    119             button(QWizard::NextButton)->setEnabled(false); 
    120             return false; 
     119            ok=false; 
    121120         } 
    122121         if ( checkIPv6->isChecked() && lineIP6->text().isEmpty() ) { 
    123             button(QWizard::NextButton)->setEnabled(false); 
    124             return false; 
     122            ok=false; 
    125123         } 
    126124         if ( lineHost->text().isEmpty() ) { 
    127             button(QWizard::NextButton)->setEnabled(false); 
    128             return false; 
     125            ok=false; 
    129126         } 
    130127         if ( lineHost->text().contains(" ") ) { 
    131             button(QWizard::NextButton)->setEnabled(false); 
    132128            labelMessage->setText(tr("Hostname cannot contain spaces!")); 
    133             return false; 
     129            ok=false; 
    134130         } 
    135131         if ( lineHost->text().contains("~") || lineHost->text().contains("`") || lineHost->text().contains("!") || lineHost->text().contains("@") || lineHost->text().contains("#") || lineHost->text().contains("$") || lineHost->text().contains("%") || lineHost->text().contains("^") || lineHost->text().contains("&") || lineHost->text().contains("*") || lineHost->text().contains("(") || lineHost->text().contains(")") || lineHost->text().contains("_") || lineHost->text().contains("+") || lineHost->text().contains("=") || lineHost->text().contains(";") || lineHost->text().contains(":") || lineHost->text().contains("'") || lineHost->text().contains("|") || lineHost->text().contains("?") || lineHost->text().contains("<") || lineHost->text().contains(">") || lineHost->text().contains(".") || lineHost->text().contains("?") || lineHost->text().contains(",") ) { 
     
    141137         for (int i = 0; i < usedHosts.size(); ++i) { 
    142138            if ( usedHosts.at(i).toLower() == lineHost->text().toLower() ) { 
    143                button(QWizard::NextButton)->setEnabled(false); 
    144139               lineHost->setPalette(badPal); 
    145140               labelMessage->setText(tr("Hostname already used!")); 
    146                return false; 
     141               ok=false; 
    147142            } 
    148143         } 
    149144         for (int i = 0; i < usedIP.size(); ++i) 
    150145            if ( usedIP.at(i).contains(lineIP->text() + "/24") ) { 
    151                button(QWizard::NextButton)->setEnabled(false); 
    152146               lineIP->setPalette(badPal); 
    153147               labelMessage->setText(tr("IP already used!")); 
    154                return false; 
     148               ok=false; 
     149               break; 
    155150            } 
    156151 
    157152         // Check if we have a good IPV4 or IPV6 address 
    158153         if ( checkIPv4->isChecked() && ! pcbsd::Utils::validateIPV4(lineIP->text())) { 
    159            button(QWizard::NextButton)->setEnabled(false); 
    160154           lineIP->setPalette(badPal); 
    161155           labelMessage->setText(tr("Invalid IP address!")); 
    162            return false; 
     156           ok=false; 
    163157         } 
    164158 
    165159         if ( checkIPv6->isChecked() && ! pcbsd::Utils::validateIPV6(lineIP6->text()) ) { 
    166            button(QWizard::NextButton)->setEnabled(false); 
    167160           lineIP6->setPalette(badPal); 
    168161           labelMessage->setText(tr("Invalid IPv6 address!")); 
    169            return false; 
     162           ok=false; 
    170163         } 
    171  
    172  
    173          // Got to the end, must be good! 
    174          lineIP->setPalette(goodPal); 
    175          lineHost->setPalette(goodPal); 
    176          button(QWizard::NextButton)->setEnabled(true); 
    177          return true; 
     164        if(!ok){ 
     165           button(QWizard::NextButton)->setEnabled(false); 
     166        }else{ 
     167           // Got to the end, must be good! 
     168           lineIP->setPalette(goodPal); 
     169           lineHost->setPalette(goodPal); 
     170           button(QWizard::NextButton)->setEnabled(true); 
     171        } 
    178172     case Page_Root: 
    179173         if ( lineRoot->text() != lineRoot2->text() ) { 
    180174           button(QWizard::NextButton)->setEnabled(false); 
    181            return false; 
     175           ok = false; 
    182176         } else { 
    183177           button(QWizard::NextButton)->setEnabled(true); 
     
    187181          if ( lineLinuxScript->text().isEmpty() ) { 
    188182            button(QWizard::NextButton)->setEnabled(false); 
    189             return false; 
     183            ok = false; 
    190184          } 
    191185     default: 
    192186         button(QWizard::NextButton)->setEnabled(true); 
    193          return true; 
    194187  } 
    195188 
    196   return true; 
     189  return ok; 
    197190} 
    198191 
  • src-sh/warden/bin/warden

    raba3187 r4054989  
    768768         OPT="${2}" 
    769769         JAILNAME="${3}" 
    770          if [ -z "${JAILNAME}" ] ; then exit_err "No jail specified!"; fi 
     770         if [ -z "${JAILNAME}" ] ; then help_get; exit 1; fi 
    771771         if [ ! -e "${JDIR}/${JAILNAME}" ] ; then exit_err "No such jail!"; fi 
    772772         set_warden_metadir 
Note: See TracChangeset for help on using the changeset viewer.