Changeset e543bca


Ignore:
Timestamp:
02/20/14 14:48:48 (14 months ago)
Author:
Ken Moore <ken@…>
Branches:
master, releng/10.0.1, releng/10.0.2, releng/10.0.3, releng/10.1, releng/10.1.1
Children:
07e812b
Parents:
6b7fcc5
Message:

Add the ability for the AppCafe? to install random PBI files on the system through a menu option, and update the Installed tab interface a bit to make it more uniform between the two pages. Still have a couple things to do to finish it up, but it is perfectly functional.

Location:
src-qt4/pc-softwaremanager
Files:
6 edited

Legend:

Unmodified
Added
Removed
  • src-qt4/pc-softwaremanager/extras.h

    r0b12758 re543bca  
    3232#include <QDebug> 
    3333#include <QProcessEnvironment> 
     34#include <QProcess> 
     35#include <QCoreApplication> 
    3436 
    3537class Extras{ 
     
    149151 } 
    150152  
     153static QStringList getCmdOutput(QString cmd, QString dir = ""){ 
     154  QProcess *proc = new QProcess; 
     155  proc->setProcessChannelMode(QProcess::MergedChannels); 
     156  if( !dir.isEmpty() && QFile::exists(dir) ){ proc->setWorkingDirectory(dir); } 
     157  proc->start(cmd); 
     158  while(!proc->waitForFinished(300)){ 
     159    QCoreApplication::processEvents(); 
     160  } 
     161  QStringList out = QString(proc->readAllStandardOutput()).split("\n");  
     162  delete proc;   
     163  return out; 
     164} 
     165  
    151166}; 
    152167 
  • src-qt4/pc-softwaremanager/mainUI.cpp

    r2916111d re543bca  
    124124void MainUI::on_actionAppCafe_Settings_triggered(){ 
    125125  PBI->openConfigurationDialog(); 
     126} 
     127 
     128void MainUI::on_actionInstall_From_File_triggered(){ 
     129  QStringList files = QFileDialog::getOpenFileNames(this, tr("Install PBI"), QDir::homePath(), tr("PBI Application (*.pbi)") ); 
     130  if(files.isEmpty()){ return; } //cancelled 
     131  //Verify that they want to install these applications 
     132  QStringList names; 
     133  for(int i=0; i<files.length(); i++){ names << files[i].section("/",-1); } 
     134  names.sort(); 
     135  if( QMessageBox::Yes == QMessageBox::question(this, tr("Verify Installation"), tr("Are you ready to begin installing these PBI's?")+"\n"+tr("NOTE: You will need to manually add desktop/menu icons through the AppCafe afterwards.")+"\n\n"+names.join("\n"), QMessageBox::Yes | QMessageBox::No, QMessageBox::Yes) ){ 
     136    //This might take a while, so don't allow the user to run this action again until it is done (thread safe though) 
     137    ui->actionInstall_From_File->setEnabled(false); 
     138    PBI->installPBIFromFile(files); 
     139    ui->actionInstall_From_File->setEnabled(true); 
     140  } 
    126141} 
    127142 
     
    164179  connect(ui->tree_install_apps, SIGNAL(itemClicked(QTreeWidgetItem*, int)), this, SLOT(slotCheckSelectedItems()) ); 
    165180  slotRefreshInstallTab(); 
     181  qDebug() << "Detailed shortcuts button not implemented yet"; 
     182  ui->tool_install_shortcuts->setEnabled(false); 
    166183} 
    167184 
  • src-qt4/pc-softwaremanager/mainUI.h

    r2916111d re543bca  
    5555  void on_actionQuit_triggered(); 
    5656  void on_actionAppCafe_Settings_triggered(); 
     57  void on_actionInstall_From_File_triggered(); 
    5758  //INSTALLED TAB 
    5859  void slotRefreshInstallTab(); 
  • src-qt4/pc-softwaremanager/mainUI.ui

    r2916111d re543bca  
    77    <x>0</x> 
    88    <y>0</y> 
    9     <width>475</width> 
    10     <height>623</height> 
     9    <width>473</width> 
     10    <height>520</height> 
    1111   </rect> 
    1212  </property> 
     
    4242        <string>Installed</string> 
    4343       </attribute> 
    44        <widget class="QStackedWidget" name="stackedWidget"> 
    45         <property name="geometry"> 
    46          <rect> 
    47           <x>6</x> 
    48           <y>6</y> 
    49           <width>451</width> 
    50           <height>535</height> 
    51          </rect> 
    52         </property> 
    53         <property name="styleSheet"> 
    54          <string notr="true"/> 
    55         </property> 
    56         <property name="currentIndex"> 
    57          <number>1</number> 
    58         </property> 
    59         <widget class="QWidget" name="page_install_list"> 
    60          <layout class="QVBoxLayout" name="verticalLayout_21"> 
    61           <item> 
    62            <layout class="QHBoxLayout" name="horizontalLayout"> 
     44       <layout class="QVBoxLayout" name="verticalLayout_2"> 
     45        <item> 
     46         <widget class="QStackedWidget" name="stackedWidget"> 
     47          <property name="styleSheet"> 
     48           <string notr="true"/> 
     49          </property> 
     50          <property name="currentIndex"> 
     51           <number>0</number> 
     52          </property> 
     53          <widget class="QWidget" name="page_install_list"> 
     54           <layout class="QVBoxLayout" name="verticalLayout_21"> 
    6355            <item> 
    64              <widget class="QToolButton" name="tool_install_toggleall"> 
    65               <property name="statusTip"> 
    66                <string>Check/Uncheck all applications</string> 
    67               </property> 
    68               <property name="text"> 
    69                <string>All</string> 
    70               </property> 
    71               <property name="icon"> 
    72                <iconset resource="SoftwareManager.qrc"> 
    73                 <normaloff>:/icons/dialog-ok.png</normaloff>:/icons/dialog-ok.png</iconset> 
    74               </property> 
    75               <property name="toolButtonStyle"> 
    76                <enum>Qt::ToolButtonTextBesideIcon</enum> 
    77               </property> 
     56             <widget class="QFrame" name="frame_3"> 
     57              <property name="styleSheet"> 
     58               <string notr="true">QFrame{background-color: rgba(250,250,250,170);}</string> 
     59              </property> 
     60              <property name="frameShape"> 
     61               <enum>QFrame::StyledPanel</enum> 
     62              </property> 
     63              <property name="frameShadow"> 
     64               <enum>QFrame::Raised</enum> 
     65              </property> 
     66              <layout class="QHBoxLayout" name="horizontalLayout_13"> 
     67               <property name="margin"> 
     68                <number>2</number> 
     69               </property> 
     70               <item> 
     71                <spacer name="horizontalSpacer_2"> 
     72                 <property name="orientation"> 
     73                  <enum>Qt::Horizontal</enum> 
     74                 </property> 
     75                 <property name="sizeHint" stdset="0"> 
     76                  <size> 
     77                   <width>278</width> 
     78                   <height>20</height> 
     79                  </size> 
     80                 </property> 
     81                </spacer> 
     82               </item> 
     83               <item> 
     84                <widget class="QToolButton" name="tool_install_details"> 
     85                 <property name="text"> 
     86                  <string>Application Details</string> 
     87                 </property> 
     88                 <property name="icon"> 
     89                  <iconset resource="SoftwareManager.qrc"> 
     90                   <normaloff>:/icons/go-next.png</normaloff>:/icons/go-next.png</iconset> 
     91                 </property> 
     92                 <property name="toolButtonStyle"> 
     93                  <enum>Qt::ToolButtonTextBesideIcon</enum> 
     94                 </property> 
     95                </widget> 
     96               </item> 
     97              </layout> 
    7898             </widget> 
    7999            </item> 
    80100            <item> 
    81              <spacer name="horizontalSpacer"> 
    82               <property name="orientation"> 
    83                <enum>Qt::Horizontal</enum> 
    84               </property> 
    85               <property name="sizeHint" stdset="0"> 
     101             <widget class="QTreeWidget" name="tree_install_apps"> 
     102              <property name="iconSize"> 
    86103               <size> 
    87                 <width>40</width> 
    88                 <height>20</height> 
     104                <width>16</width> 
     105                <height>16</height> 
    89106               </size> 
    90107              </property> 
    91              </spacer> 
     108              <property name="indentation"> 
     109               <number>0</number> 
     110              </property> 
     111              <attribute name="headerCascadingSectionResizes"> 
     112               <bool>true</bool> 
     113              </attribute> 
     114              <attribute name="headerDefaultSectionSize"> 
     115               <number>120</number> 
     116              </attribute> 
     117              <column> 
     118               <property name="text"> 
     119                <string>Program Name</string> 
     120               </property> 
     121              </column> 
     122              <column> 
     123               <property name="text"> 
     124                <string>Version</string> 
     125               </property> 
     126              </column> 
     127              <column> 
     128               <property name="text"> 
     129                <string>Status</string> 
     130               </property> 
     131              </column> 
     132             </widget> 
    92133            </item> 
    93134            <item> 
    94              <widget class="QToolButton" name="tool_install_performaction"> 
    95               <property name="statusTip"> 
    96                <string>Perform actions on checked applications</string> 
    97               </property> 
    98               <property name="text"> 
    99                <string>Actions</string> 
    100               </property> 
    101               <property name="icon"> 
    102                <iconset resource="SoftwareManager.qrc"> 
    103                 <normaloff>:/icons/preferences-system.png</normaloff>:/icons/preferences-system.png</iconset> 
    104               </property> 
    105               <property name="toolButtonStyle"> 
    106                <enum>Qt::ToolButtonTextBesideIcon</enum> 
    107               </property> 
    108               <property name="arrowType"> 
    109                <enum>Qt::NoArrow</enum> 
    110               </property> 
     135             <layout class="QHBoxLayout" name="horizontalLayout"> 
     136              <item> 
     137               <widget class="QToolButton" name="tool_install_toggleall"> 
     138                <property name="statusTip"> 
     139                 <string>Check/Uncheck all applications</string> 
     140                </property> 
     141                <property name="text"> 
     142                 <string>All</string> 
     143                </property> 
     144                <property name="icon"> 
     145                 <iconset resource="SoftwareManager.qrc"> 
     146                  <normaloff>:/icons/dialog-ok.png</normaloff>:/icons/dialog-ok.png</iconset> 
     147                </property> 
     148                <property name="toolButtonStyle"> 
     149                 <enum>Qt::ToolButtonTextBesideIcon</enum> 
     150                </property> 
     151               </widget> 
     152              </item> 
     153              <item> 
     154               <spacer name="horizontalSpacer"> 
     155                <property name="orientation"> 
     156                 <enum>Qt::Horizontal</enum> 
     157                </property> 
     158                <property name="sizeHint" stdset="0"> 
     159                 <size> 
     160                  <width>40</width> 
     161                  <height>20</height> 
     162                 </size> 
     163                </property> 
     164               </spacer> 
     165              </item> 
     166              <item> 
     167               <widget class="QToolButton" name="tool_install_performaction"> 
     168                <property name="statusTip"> 
     169                 <string>Perform actions on checked applications</string> 
     170                </property> 
     171                <property name="text"> 
     172                 <string>Actions</string> 
     173                </property> 
     174                <property name="icon"> 
     175                 <iconset resource="SoftwareManager.qrc"> 
     176                  <normaloff>:/icons/preferences-system.png</normaloff>:/icons/preferences-system.png</iconset> 
     177                </property> 
     178                <property name="toolButtonStyle"> 
     179                 <enum>Qt::ToolButtonTextBesideIcon</enum> 
     180                </property> 
     181                <property name="arrowType"> 
     182                 <enum>Qt::NoArrow</enum> 
     183                </property> 
     184               </widget> 
     185              </item> 
     186             </layout> 
     187            </item> 
     188           </layout> 
     189          </widget> 
     190          <widget class="QWidget" name="page_install_details"> 
     191           <layout class="QGridLayout" name="gridLayout_2"> 
     192            <item row="0" column="0"> 
     193             <widget class="QFrame" name="frame"> 
     194              <property name="styleSheet"> 
     195               <string notr="true">QFrame{background-color: rgba(250,250,250,170);}</string> 
     196              </property> 
     197              <property name="frameShape"> 
     198               <enum>QFrame::StyledPanel</enum> 
     199              </property> 
     200              <property name="frameShadow"> 
     201               <enum>QFrame::Raised</enum> 
     202              </property> 
     203              <layout class="QHBoxLayout" name="horizontalLayout_2"> 
     204               <property name="margin"> 
     205                <number>2</number> 
     206               </property> 
     207               <item> 
     208                <widget class="QToolButton" name="tool_install_back"> 
     209                 <property name="text"> 
     210                  <string>Back</string> 
     211                 </property> 
     212                 <property name="icon"> 
     213                  <iconset resource="SoftwareManager.qrc"> 
     214                   <normaloff>:/icons/go-previous.png</normaloff>:/icons/go-previous.png</iconset> 
     215                 </property> 
     216                 <property name="toolButtonStyle"> 
     217                  <enum>Qt::ToolButtonTextBesideIcon</enum> 
     218                 </property> 
     219                </widget> 
     220               </item> 
     221               <item> 
     222                <spacer name="horizontalSpacer_7"> 
     223                 <property name="orientation"> 
     224                  <enum>Qt::Horizontal</enum> 
     225                 </property> 
     226                 <property name="sizeHint" stdset="0"> 
     227                  <size> 
     228                   <width>0</width> 
     229                   <height>20</height> 
     230                  </size> 
     231                 </property> 
     232                </spacer> 
     233               </item> 
     234               <item> 
     235                <widget class="QToolButton" name="tool_install_remove"> 
     236                 <property name="toolTip"> 
     237                  <string>Remove the selected application</string> 
     238                 </property> 
     239                 <property name="statusTip"> 
     240                  <string>Remove the selected application</string> 
     241                 </property> 
     242                 <property name="text"> 
     243                  <string>Uninstall</string> 
     244                 </property> 
     245                 <property name="icon"> 
     246                  <iconset resource="SoftwareManager.qrc"> 
     247                   <normaloff>:/icons/remove.png</normaloff>:/icons/remove.png</iconset> 
     248                 </property> 
     249                 <property name="toolButtonStyle"> 
     250                  <enum>Qt::ToolButtonTextBesideIcon</enum> 
     251                 </property> 
     252                </widget> 
     253               </item> 
     254               <item> 
     255                <widget class="QToolButton" name="tool_install_gotobrowserpage"> 
     256                 <property name="text"> 
     257                  <string>Find</string> 
     258                 </property> 
     259                 <property name="icon"> 
     260                  <iconset resource="SoftwareManager.qrc"> 
     261                   <normaloff>:/icons/edit-find.png</normaloff>:/icons/edit-find.png</iconset> 
     262                 </property> 
     263                 <property name="toolButtonStyle"> 
     264                  <enum>Qt::ToolButtonTextBesideIcon</enum> 
     265                 </property> 
     266                </widget> 
     267               </item> 
     268              </layout> 
    111269             </widget> 
    112270            </item> 
    113            </layout> 
    114           </item> 
    115           <item> 
    116            <widget class="QTreeWidget" name="tree_install_apps"> 
    117             <property name="iconSize"> 
    118              <size> 
    119               <width>16</width> 
    120               <height>16</height> 
    121              </size> 
    122             </property> 
    123             <property name="indentation"> 
    124              <number>0</number> 
    125             </property> 
    126             <attribute name="headerCascadingSectionResizes"> 
    127              <bool>true</bool> 
    128             </attribute> 
    129             <attribute name="headerDefaultSectionSize"> 
    130              <number>120</number> 
    131             </attribute> 
    132             <column> 
    133              <property name="text"> 
    134               <string>Program Name</string> 
    135              </property> 
    136             </column> 
    137             <column> 
    138              <property name="text"> 
    139               <string>Version</string> 
    140              </property> 
    141             </column> 
    142             <column> 
    143              <property name="text"> 
    144               <string>Status</string> 
    145              </property> 
    146             </column> 
    147            </widget> 
    148           </item> 
    149           <item> 
    150            <layout class="QHBoxLayout" name="horizontalLayout_2"> 
    151             <item> 
    152              <widget class="QToolButton" name="tool_install_gotobrowserpage"> 
    153               <property name="text"> 
    154                <string>Find in Repository</string> 
    155               </property> 
    156               <property name="icon"> 
    157                <iconset resource="SoftwareManager.qrc"> 
    158                 <normaloff>:/icons/edit-find.png</normaloff>:/icons/edit-find.png</iconset> 
    159               </property> 
    160               <property name="toolButtonStyle"> 
    161                <enum>Qt::ToolButtonTextBesideIcon</enum> 
    162               </property> 
     271            <item row="1" column="0"> 
     272             <layout class="QHBoxLayout" name="horizontalLayout_6"> 
     273              <item> 
     274               <widget class="QLabel" name="label_install_icon"> 
     275                <property name="sizePolicy"> 
     276                 <sizepolicy hsizetype="Fixed" vsizetype="Fixed"> 
     277                  <horstretch>0</horstretch> 
     278                  <verstretch>0</verstretch> 
     279                 </sizepolicy> 
     280                </property> 
     281                <property name="maximumSize"> 
     282                 <size> 
     283                  <width>64</width> 
     284                  <height>64</height> 
     285                 </size> 
     286                </property> 
     287                <property name="text"> 
     288                 <string/> 
     289                </property> 
     290                <property name="pixmap"> 
     291                 <pixmap resource="SoftwareManager.qrc">:/icons/appcafe.png</pixmap> 
     292                </property> 
     293                <property name="scaledContents"> 
     294                 <bool>false</bool> 
     295                </property> 
     296               </widget> 
     297              </item> 
     298              <item> 
     299               <layout class="QVBoxLayout" name="verticalLayout_3"> 
     300                <item> 
     301                 <widget class="QLabel" name="label_install_app"> 
     302                  <property name="sizePolicy"> 
     303                   <sizepolicy hsizetype="Expanding" vsizetype="Preferred"> 
     304                    <horstretch>0</horstretch> 
     305                    <verstretch>0</verstretch> 
     306                   </sizepolicy> 
     307                  </property> 
     308                  <property name="font"> 
     309                   <font> 
     310                    <pointsize>12</pointsize> 
     311                    <weight>75</weight> 
     312                    <bold>true</bold> 
     313                    <underline>true</underline> 
     314                   </font> 
     315                  </property> 
     316                  <property name="text"> 
     317                   <string notr="true">Application</string> 
     318                  </property> 
     319                  <property name="alignment"> 
     320                   <set>Qt::AlignLeading|Qt::AlignLeft|Qt::AlignTop</set> 
     321                  </property> 
     322                 </widget> 
     323                </item> 
     324                <item> 
     325                 <widget class="QLabel" name="label_install_author"> 
     326                  <property name="text"> 
     327                   <string notr="true">&lt;a href=&quot;http://www.pcbsd.org&quot;&gt;PC_BSD&lt;/a&gt;</string> 
     328                  </property> 
     329                  <property name="alignment"> 
     330                   <set>Qt::AlignLeading|Qt::AlignLeft|Qt::AlignTop</set> 
     331                  </property> 
     332                  <property name="openExternalLinks"> 
     333                   <bool>true</bool> 
     334                  </property> 
     335                  <property name="textInteractionFlags"> 
     336                   <set>Qt::LinksAccessibleByKeyboard|Qt::LinksAccessibleByMouse</set> 
     337                  </property> 
     338                 </widget> 
     339                </item> 
     340               </layout> 
     341              </item> 
     342              <item> 
     343               <layout class="QVBoxLayout" name="verticalLayout_10"> 
     344                <item> 
     345                 <widget class="QToolButton" name="tool_install_startApp"> 
     346                  <property name="sizePolicy"> 
     347                   <sizepolicy hsizetype="Fixed" vsizetype="Fixed"> 
     348                    <horstretch>0</horstretch> 
     349                    <verstretch>0</verstretch> 
     350                   </sizepolicy> 
     351                  </property> 
     352                  <property name="statusTip"> 
     353                   <string>Start the application</string> 
     354                  </property> 
     355                  <property name="layoutDirection"> 
     356                   <enum>Qt::LeftToRight</enum> 
     357                  </property> 
     358                  <property name="text"> 
     359                   <string>Start</string> 
     360                  </property> 
     361                  <property name="icon"> 
     362                   <iconset resource="SoftwareManager.qrc"> 
     363                    <normaloff>:/icons/application.png</normaloff>:/icons/application.png</iconset> 
     364                  </property> 
     365                  <property name="popupMode"> 
     366                   <enum>QToolButton::InstantPopup</enum> 
     367                  </property> 
     368                  <property name="toolButtonStyle"> 
     369                   <enum>Qt::ToolButtonTextBesideIcon</enum> 
     370                  </property> 
     371                 </widget> 
     372                </item> 
     373               </layout> 
     374              </item> 
     375             </layout> 
     376            </item> 
     377            <item row="2" column="0"> 
     378             <widget class="QFrame" name="frame_2"> 
     379              <property name="styleSheet"> 
     380               <string notr="true"/> 
     381              </property> 
     382              <property name="frameShape"> 
     383               <enum>QFrame::StyledPanel</enum> 
     384              </property> 
     385              <property name="frameShadow"> 
     386               <enum>QFrame::Raised</enum> 
     387              </property> 
     388              <layout class="QHBoxLayout" name="horizontalLayout_14"> 
     389               <property name="margin"> 
     390                <number>2</number> 
     391               </property> 
     392               <item> 
     393                <layout class="QFormLayout" name="formLayout_7"> 
     394                 <property name="fieldGrowthPolicy"> 
     395                  <enum>QFormLayout::ExpandingFieldsGrow</enum> 
     396                 </property> 
     397                 <item row="0" column="0"> 
     398                  <widget class="QLabel" name="label_3"> 
     399                   <property name="text"> 
     400                    <string>Created:</string> 
     401                   </property> 
     402                  </widget> 
     403                 </item> 
     404                 <item row="1" column="0"> 
     405                  <widget class="QLabel" name="label_5"> 
     406                   <property name="text"> 
     407                    <string>Architecture:</string> 
     408                   </property> 
     409                  </widget> 
     410                 </item> 
     411                 <item row="0" column="1"> 
     412                  <widget class="QLabel" name="label_install_date"> 
     413                   <property name="text"> 
     414                    <string notr="true">Build Date</string> 
     415                   </property> 
     416                  </widget> 
     417                 </item> 
     418                 <item row="1" column="1"> 
     419                  <widget class="QLabel" name="label_install_arch"> 
     420                   <property name="text"> 
     421                    <string notr="true">arch</string> 
     422                   </property> 
     423                  </widget> 
     424                 </item> 
     425                 <item row="2" column="0"> 
     426                  <widget class="QLabel" name="label"> 
     427                   <property name="text"> 
     428                    <string>Version:</string> 
     429                   </property> 
     430                  </widget> 
     431                 </item> 
     432                 <item row="2" column="1"> 
     433                  <widget class="QLabel" name="label_install_version"> 
     434                   <property name="text"> 
     435                    <string notr="true">x.xx.x</string> 
     436                   </property> 
     437                  </widget> 
     438                 </item> 
     439                </layout> 
     440               </item> 
     441               <item> 
     442                <layout class="QFormLayout" name="formLayout"> 
     443                 <property name="fieldGrowthPolicy"> 
     444                  <enum>QFormLayout::ExpandingFieldsGrow</enum> 
     445                 </property> 
     446                 <item row="0" column="0"> 
     447                  <widget class="QLabel" name="label_4"> 
     448                   <property name="text"> 
     449                    <string>License:</string> 
     450                   </property> 
     451                  </widget> 
     452                 </item> 
     453                 <item row="0" column="1"> 
     454                  <widget class="QLabel" name="label_install_license"> 
     455                   <property name="text"> 
     456                    <string notr="true">BSD</string> 
     457                   </property> 
     458                  </widget> 
     459                 </item> 
     460                 <item row="1" column="0"> 
     461                  <widget class="QLabel" name="label_2"> 
     462                   <property name="text"> 
     463                    <string>Shortcuts:</string> 
     464                   </property> 
     465                  </widget> 
     466                 </item> 
     467                 <item row="1" column="1"> 
     468                  <widget class="QLabel" name="label_install_shortcuts"> 
     469                   <property name="text"> 
     470                    <string notr="true">Desktop, Menu</string> 
     471                   </property> 
     472                  </widget> 
     473                 </item> 
     474                </layout> 
     475               </item> 
     476              </layout> 
    163477             </widget> 
    164478            </item> 
    165             <item> 
    166              <spacer name="horizontalSpacer_2"> 
    167               <property name="orientation"> 
    168                <enum>Qt::Horizontal</enum> 
    169               </property> 
    170               <property name="sizeHint" stdset="0"> 
    171                <size> 
    172                 <width>40</width> 
    173                 <height>20</height> 
    174                </size> 
    175               </property> 
    176              </spacer> 
    177             </item> 
    178             <item> 
    179              <widget class="QToolButton" name="tool_install_details"> 
    180               <property name="text"> 
    181                <string>Application Details</string> 
    182               </property> 
    183               <property name="icon"> 
    184                <iconset resource="SoftwareManager.qrc"> 
    185                 <normaloff>:/icons/go-next.png</normaloff>:/icons/go-next.png</iconset> 
    186               </property> 
    187               <property name="toolButtonStyle"> 
    188                <enum>Qt::ToolButtonTextBesideIcon</enum> 
    189               </property> 
    190              </widget> 
    191             </item> 
    192            </layout> 
    193           </item> 
    194          </layout> 
    195         </widget> 
    196         <widget class="QWidget" name="page_install_details"> 
    197          <layout class="QVBoxLayout" name="verticalLayout_2"> 
    198           <item> 
    199            <widget class="QFrame" name="frame"> 
    200             <property name="styleSheet"> 
    201              <string notr="true">QFrame{background-color: rgba(250,250,250,170);}</string> 
    202             </property> 
    203             <property name="frameShape"> 
    204              <enum>QFrame::StyledPanel</enum> 
    205             </property> 
    206             <property name="frameShadow"> 
    207              <enum>QFrame::Raised</enum> 
    208             </property> 
    209             <layout class="QHBoxLayout" name="horizontalLayout_11"> 
    210              <property name="spacing"> 
    211               <number>2</number> 
    212              </property> 
    213              <property name="margin"> 
    214               <number>2</number> 
    215              </property> 
    216              <item> 
    217               <widget class="QToolButton" name="tool_install_back"> 
    218                <property name="text"> 
    219                 <string>Back</string> 
    220                </property> 
    221                <property name="icon"> 
    222                 <iconset resource="SoftwareManager.qrc"> 
    223                  <normaloff>:/icons/go-previous.png</normaloff>:/icons/go-previous.png</iconset> 
    224                </property> 
    225                <property name="toolButtonStyle"> 
    226                 <enum>Qt::ToolButtonTextBesideIcon</enum> 
    227                </property> 
    228               </widget> 
    229              </item> 
    230              <item> 
    231               <spacer name="horizontalSpacer_7"> 
    232                <property name="orientation"> 
    233                 <enum>Qt::Horizontal</enum> 
    234                </property> 
    235                <property name="sizeHint" stdset="0"> 
    236                 <size> 
    237                  <width>0</width> 
    238                  <height>20</height> 
    239                 </size> 
    240                </property> 
    241               </spacer> 
    242              </item> 
    243              <item> 
    244               <widget class="QToolButton" name="tool_install_remove"> 
    245                <property name="toolTip"> 
    246                 <string>Remove the selected application</string> 
    247                </property> 
    248                <property name="statusTip"> 
    249                 <string>Remove the selected application</string> 
    250                </property> 
    251                <property name="text"> 
    252                 <string>Uninstall</string> 
    253                </property> 
    254                <property name="icon"> 
    255                 <iconset resource="SoftwareManager.qrc"> 
    256                  <normaloff>:/icons/remove.png</normaloff>:/icons/remove.png</iconset> 
    257                </property> 
    258                <property name="toolButtonStyle"> 
    259                 <enum>Qt::ToolButtonTextBesideIcon</enum> 
    260                </property> 
    261               </widget> 
    262              </item> 
    263             </layout> 
    264            </widget> 
    265           </item> 
    266           <item> 
    267            <layout class="QHBoxLayout" name="horizontalLayout_6"> 
    268             <item> 
    269              <widget class="QLabel" name="label_install_icon"> 
     479            <item row="3" column="0"> 
     480             <widget class="QPlainTextEdit" name="text_install_description"> 
    270481              <property name="sizePolicy"> 
    271                <sizepolicy hsizetype="Fixed" vsizetype="Fixed"> 
     482               <sizepolicy hsizetype="Expanding" vsizetype="Preferred"> 
    272483                <horstretch>0</horstretch> 
    273484                <verstretch>0</verstretch> 
    274485               </sizepolicy> 
    275486              </property> 
    276               <property name="maximumSize"> 
    277                <size> 
    278                 <width>64</width> 
    279                 <height>64</height> 
    280                </size> 
    281               </property> 
    282               <property name="text"> 
    283                <string/> 
    284               </property> 
    285               <property name="pixmap"> 
    286                <pixmap resource="SoftwareManager.qrc">:/icons/appcafe.png</pixmap> 
    287               </property> 
    288               <property name="scaledContents"> 
    289                <bool>false</bool> 
     487              <property name="readOnly"> 
     488               <bool>true</bool> 
    290489              </property> 
    291490             </widget> 
    292491            </item> 
    293             <item> 
    294              <layout class="QVBoxLayout" name="verticalLayout_3"> 
     492            <item row="4" column="0"> 
     493             <layout class="QHBoxLayout" name="horizontalLayout_12"> 
     494              <property name="margin"> 
     495               <number>1</number> 
     496              </property> 
    295497              <item> 
    296                <widget class="QLabel" name="label_install_app"> 
    297                 <property name="font"> 
    298                  <font> 
    299                   <pointsize>12</pointsize> 
    300                   <weight>75</weight> 
    301                   <bold>true</bold> 
    302                   <underline>true</underline> 
    303                  </font> 
    304                 </property> 
     498               <widget class="QToolButton" name="tool_install_shortcuts"> 
    305499                <property name="text"> 
    306                  <string notr="true">Application</string> 
    307                 </property> 
    308                 <property name="alignment"> 
    309                  <set>Qt::AlignLeading|Qt::AlignLeft|Qt::AlignTop</set> 
     500                 <string>Shortcuts</string> 
     501                </property> 
     502                <property name="icon"> 
     503                 <iconset resource="SoftwareManager.qrc"> 
     504                  <normaloff>:/icons/config.png</normaloff>:/icons/config.png</iconset> 
     505                </property> 
     506                <property name="toolButtonStyle"> 
     507                 <enum>Qt::ToolButtonTextBesideIcon</enum> 
    310508                </property> 
    311509               </widget> 
    312510              </item> 
    313511              <item> 
    314                <widget class="QLabel" name="label_install_author"> 
     512               <widget class="QToolButton" name="tool_install_maintainer"> 
    315513                <property name="text"> 
    316                  <string notr="true">&lt;a href=&quot;http://www.pcbsd.org&quot;&gt;PC_BSD&lt;/a&gt;</string> 
    317                 </property> 
    318                 <property name="alignment"> 
    319                  <set>Qt::AlignLeading|Qt::AlignLeft|Qt::AlignTop</set> 
    320                 </property> 
    321                 <property name="openExternalLinks"> 
    322                  <bool>true</bool> 
    323                 </property> 
    324                 <property name="textInteractionFlags"> 
    325                  <set>Qt::LinksAccessibleByKeyboard|Qt::LinksAccessibleByMouse</set> 
     514                 <string>Contact Maintainer</string> 
     515                </property> 
     516                <property name="icon"> 
     517                 <iconset resource="SoftwareManager.qrc"> 
     518                  <normaloff>:/icons/email.png</normaloff>:/icons/email.png</iconset> 
     519                </property> 
     520                <property name="popupMode"> 
     521                 <enum>QToolButton::InstantPopup</enum> 
     522                </property> 
     523                <property name="toolButtonStyle"> 
     524                 <enum>Qt::ToolButtonTextBesideIcon</enum> 
     525                </property> 
     526               </widget> 
     527              </item> 
     528              <item> 
     529               <spacer name="horizontalSpacer_9"> 
     530                <property name="orientation"> 
     531                 <enum>Qt::Horizontal</enum> 
     532                </property> 
     533                <property name="sizeHint" stdset="0"> 
     534                 <size> 
     535                  <width>40</width> 
     536                  <height>20</height> 
     537                 </size> 
     538                </property> 
     539               </spacer> 
     540              </item> 
     541              <item> 
     542               <widget class="QCheckBox" name="check_install_autoupdate"> 
     543                <property name="statusTip"> 
     544                 <string>Automatically update the selected application when an update is available</string> 
     545                </property> 
     546                <property name="text"> 
     547                 <string>Auto-Update</string> 
     548                </property> 
     549                <property name="icon"> 
     550                 <iconset resource="SoftwareManager.qrc"> 
     551                  <normaloff>:/icons/view-refresh.png</normaloff>:/icons/view-refresh.png</iconset> 
    326552                </property> 
    327553               </widget> 
     
    329555             </layout> 
    330556            </item> 
    331            </layout> 
    332           </item> 
    333           <item> 
    334            <widget class="QFrame" name="frame_2"> 
    335             <property name="styleSheet"> 
    336              <string notr="true"/> 
    337             </property> 
    338             <property name="frameShape"> 
    339              <enum>QFrame::StyledPanel</enum> 
    340             </property> 
    341             <property name="frameShadow"> 
    342              <enum>QFrame::Raised</enum> 
    343             </property> 
    344             <layout class="QHBoxLayout" name="horizontalLayout_14"> 
    345              <property name="margin"> 
    346               <number>2</number> 
    347              </property> 
    348              <item> 
    349               <layout class="QFormLayout" name="formLayout_7"> 
    350                <property name="fieldGrowthPolicy"> 
    351                 <enum>QFormLayout::ExpandingFieldsGrow</enum> 
    352                </property> 
    353                <item row="0" column="0"> 
    354                 <widget class="QLabel" name="label_3"> 
    355                  <property name="text"> 
    356                   <string>Created:</string> 
    357                  </property> 
    358                 </widget> 
    359                </item> 
    360                <item row="1" column="0"> 
    361                 <widget class="QLabel" name="label_5"> 
    362                  <property name="text"> 
    363                   <string>Architecture:</string> 
    364                  </property> 
    365                 </widget> 
    366                </item> 
    367                <item row="0" column="1"> 
    368                 <widget class="QLabel" name="label_install_date"> 
    369                  <property name="text"> 
    370                   <string notr="true">Build Date</string> 
    371                  </property> 
    372                 </widget> 
    373                </item> 
    374                <item row="1" column="1"> 
    375                 <widget class="QLabel" name="label_install_arch"> 
    376                  <property name="text"> 
    377                   <string notr="true">arch</string> 
    378                  </property> 
    379                 </widget> 
    380                </item> 
    381                <item row="2" column="0"> 
    382                 <widget class="QLabel" name="label"> 
    383                  <property name="text"> 
    384                   <string>Version:</string> 
    385                  </property> 
    386                 </widget> 
    387                </item> 
    388                <item row="2" column="1"> 
    389                 <widget class="QLabel" name="label_install_version"> 
    390                  <property name="text"> 
    391                   <string notr="true">x.xx.x</string> 
    392                  </property> 
    393                 </widget> 
    394                </item> 
    395               </layout> 
    396              </item> 
    397              <item> 
    398               <layout class="QFormLayout" name="formLayout"> 
    399                <property name="fieldGrowthPolicy"> 
    400                 <enum>QFormLayout::ExpandingFieldsGrow</enum> 
    401                </property> 
    402                <item row="0" column="0"> 
    403                 <widget class="QLabel" name="label_4"> 
    404                  <property name="text"> 
    405                   <string>License:</string> 
    406                  </property> 
    407                 </widget> 
    408                </item> 
    409                <item row="0" column="1"> 
    410                 <widget class="QLabel" name="label_install_license"> 
    411                  <property name="text"> 
    412                   <string notr="true">BSD</string> 
    413                  </property> 
    414                 </widget> 
    415                </item> 
    416                <item row="1" column="0"> 
    417                 <widget class="QLabel" name="label_2"> 
    418                  <property name="text"> 
    419                   <string>Shortcuts:</string> 
    420                  </property> 
    421                 </widget> 
    422                </item> 
    423                <item row="1" column="1"> 
    424                 <widget class="QLabel" name="label_install_shortcuts"> 
    425                  <property name="text"> 
    426                   <string notr="true">Desktop, Menu</string> 
    427                  </property> 
    428                 </widget> 
    429                </item> 
    430               </layout> 
    431              </item> 
    432             </layout> 
    433            </widget> 
    434           </item> 
    435           <item> 
    436            <widget class="QPlainTextEdit" name="text_install_description"> 
    437             <property name="sizePolicy"> 
    438              <sizepolicy hsizetype="Expanding" vsizetype="Preferred"> 
    439               <horstretch>0</horstretch> 
    440               <verstretch>0</verstretch> 
    441              </sizepolicy> 
    442             </property> 
    443             <property name="readOnly"> 
    444              <bool>true</bool> 
    445             </property> 
    446            </widget> 
    447           </item> 
    448           <item> 
    449            <layout class="QHBoxLayout" name="horizontalLayout_12"> 
    450             <property name="margin"> 
    451              <number>1</number> 
    452             </property> 
    453             <item> 
    454              <widget class="QToolButton" name="tool_install_startApp"> 
    455               <property name="statusTip"> 
    456                <string>Start the application</string> 
    457               </property> 
    458               <property name="text"> 
    459                <string>Start Application</string> 
    460               </property> 
    461               <property name="icon"> 
    462                <iconset resource="SoftwareManager.qrc"> 
    463                 <normaloff>:/icons/application.png</normaloff>:/icons/application.png</iconset> 
    464               </property> 
    465               <property name="popupMode"> 
    466                <enum>QToolButton::InstantPopup</enum> 
    467               </property> 
    468               <property name="toolButtonStyle"> 
    469                <enum>Qt::ToolButtonTextBesideIcon</enum> 
    470               </property> 
    471              </widget> 
    472             </item> 
    473             <item> 
    474              <widget class="QToolButton" name="tool_install_maintainer"> 
    475               <property name="text"> 
    476                <string>Contact Maintainer</string> 
    477               </property> 
    478               <property name="icon"> 
    479                <iconset resource="SoftwareManager.qrc"> 
    480                 <normaloff>:/icons/email.png</normaloff>:/icons/email.png</iconset> 
    481               </property> 
    482               <property name="popupMode"> 
    483                <enum>QToolButton::InstantPopup</enum> 
    484               </property> 
    485               <property name="toolButtonStyle"> 
    486                <enum>Qt::ToolButtonTextBesideIcon</enum> 
    487               </property> 
    488              </widget> 
    489             </item> 
    490             <item> 
    491              <spacer name="horizontalSpacer_9"> 
     557            <item row="5" column="0"> 
     558             <spacer name="verticalSpacer"> 
    492559              <property name="orientation"> 
    493                <enum>Qt::Horizontal</enum> 
     560               <enum>Qt::Vertical</enum> 
    494561              </property> 
    495562              <property name="sizeHint" stdset="0"> 
    496563               <size> 
    497                 <width>40</width> 
    498                 <height>20</height> 
     564                <width>20</width> 
     565                <height>0</height> 
    499566               </size> 
    500567              </property> 
    501568             </spacer> 
    502569            </item> 
    503             <item> 
    504              <widget class="QCheckBox" name="check_install_autoupdate"> 
    505               <property name="statusTip"> 
    506                <string>Automatically update the selected application when an update is available</string> 
    507               </property> 
    508               <property name="text"> 
    509                <string>Auto-Update</string> 
    510               </property> 
    511               <property name="icon"> 
    512                <iconset resource="SoftwareManager.qrc"> 
    513                 <normaloff>:/icons/view-refresh.png</normaloff>:/icons/view-refresh.png</iconset> 
    514               </property> 
     570            <item row="6" column="0"> 
     571             <widget class="QGroupBox" name="group_install_appStat"> 
     572              <property name="title"> 
     573               <string>Current Operations</string> 
     574              </property> 
     575              <property name="flat"> 
     576               <bool>true</bool> 
     577              </property> 
     578              <layout class="QVBoxLayout" name="verticalLayout_18"> 
     579               <item> 
     580                <layout class="QHBoxLayout" name="horizontalLayout_10"> 
     581                 <item> 
     582                  <widget class="QToolButton" name="tool_install_cancel"> 
     583                   <property name="sizePolicy"> 
     584                    <sizepolicy hsizetype="Preferred" vsizetype="Preferred"> 
     585                     <horstretch>0</horstretch> 
     586                     <verstretch>0</verstretch> 
     587                    </sizepolicy> 
     588                   </property> 
     589                   <property name="toolTip"> 
     590                    <string>Cancel any actions for this application</string> 
     591                   </property> 
     592                   <property name="statusTip"> 
     593                    <string>Cancel any actions for this application</string> 
     594                   </property> 
     595                   <property name="text"> 
     596                    <string>Cancel Operations</string> 
     597                   </property> 
     598                   <property name="icon"> 
     599                    <iconset resource="SoftwareManager.qrc"> 
     600                     <normaloff>:/icons/dialog-cancel.png</normaloff>:/icons/dialog-cancel.png</iconset> 
     601                   </property> 
     602                   <property name="toolButtonStyle"> 
     603                    <enum>Qt::ToolButtonIconOnly</enum> 
     604                   </property> 
     605                  </widget> 
     606                 </item> 
     607                 <item> 
     608                  <widget class="QToolButton" name="tool_install_update"> 
     609                   <property name="toolTip"> 
     610                    <string>Update the application to the most recent version</string> 
     611                   </property> 
     612                   <property name="statusTip"> 
     613                    <string>Update the selected application</string> 
     614                   </property> 
     615                   <property name="text"> 
     616                    <string>Update</string> 
     617                   </property> 
     618                   <property name="icon"> 
     619                    <iconset resource="SoftwareManager.qrc"> 
     620                     <normaloff>:/icons/view-refresh.png</normaloff>:/icons/view-refresh.png</iconset> 
     621                   </property> 
     622                   <property name="toolButtonStyle"> 
     623                    <enum>Qt::ToolButtonIconOnly</enum> 
     624                   </property> 
     625                  </widget> 
     626                 </item> 
     627                 <item> 
     628                  <widget class="QLabel" name="label_install_status"> 
     629                   <property name="sizePolicy"> 
     630                    <sizepolicy hsizetype="Expanding" vsizetype="Preferred"> 
     631                     <horstretch>0</horstretch> 
     632                     <verstretch>0</verstretch> 
     633                    </sizepolicy> 
     634                   </property> 
     635                   <property name="text"> 
     636                    <string notr="true">TextLabel</string> 
     637                   </property> 
     638                   <property name="wordWrap"> 
     639                    <bool>true</bool> 
     640                   </property> 
     641                  </widget> 
     642                 </item> 
     643                </layout> 
     644               </item> 
     645               <item> 
     646                <layout class="QHBoxLayout" name="horizontalLayout_9"> 
     647                 <item> 
     648                  <widget class="QProgressBar" name="progress_install_DL"> 
     649                   <property name="value"> 
     650                    <number>24</number> 
     651                   </property> 
     652                  </widget> 
     653                 </item> 
     654                 <item> 
     655                  <widget class="QLabel" name="label_install_DL"> 
     656                   <property name="minimumSize"> 
     657                    <size> 
     658                     <width>80</width> 
     659                     <height>0</height> 
     660                    </size> 
     661                   </property> 
     662                   <property name="text"> 
     663                    <string notr="true">label</string> 
     664                   </property> 
     665                   <property name="alignment"> 
     666                    <set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set> 
     667                   </property> 
     668                  </widget> 
     669                 </item> 
     670                </layout> 
     671               </item> 
     672              </layout> 
    515673             </widget> 
    516674            </item> 
    517675           </layout> 
    518           </item> 
    519           <item> 
    520            <spacer name="verticalSpacer"> 
    521             <property name="orientation"> 
    522              <enum>Qt::Vertical</enum> 
    523             </property> 
    524             <property name="sizeHint" stdset="0"> 
    525              <size> 
    526               <width>20</width> 
    527               <height>20</height> 
    528              </size> 
    529             </property> 
    530            </spacer> 
    531           </item> 
    532           <item> 
    533            <widget class="QGroupBox" name="group_install_appStat"> 
    534             <property name="title"> 
    535              <string>Current Operations</string> 
    536             </property> 
    537             <property name="flat"> 
    538              <bool>true</bool> 
    539             </property> 
    540             <layout class="QVBoxLayout" name="verticalLayout_18"> 
    541              <item> 
    542               <layout class="QHBoxLayout" name="horizontalLayout_10"> 
    543                <item> 
    544                 <widget class="QToolButton" name="tool_install_cancel"> 
    545                  <property name="sizePolicy"> 
    546                   <sizepolicy hsizetype="Preferred" vsizetype="Preferred"> 
    547                    <horstretch>0</horstretch> 
    548                    <verstretch>0</verstretch> 
    549                   </sizepolicy> 
    550                  </property> 
    551                  <property name="toolTip"> 
    552                   <string>Cancel any actions for this application</string> 
    553                  </property> 
    554                  <property name="statusTip"> 
    555                   <string>Cancel any actions for this application</string> 
    556                  </property> 
    557                  <property name="text"> 
    558                   <string>Cancel Operations</string> 
    559                  </property> 
    560                  <property name="icon"> 
    561                   <iconset resource="SoftwareManager.qrc"> 
    562                    <normaloff>:/icons/dialog-cancel.png</normaloff>:/icons/dialog-cancel.png</iconset> 
    563                  </property> 
    564                  <property name="toolButtonStyle"> 
    565                   <enum>Qt::ToolButtonIconOnly</enum> 
    566                  </property> 
    567                 </widget> 
    568                </item> 
    569                <item> 
    570                 <widget class="QToolButton" name="tool_install_update"> 
    571                  <property name="toolTip"> 
    572                   <string>Update the application to the most recent version</string> 
    573                  </property> 
    574                  <property name="statusTip"> 
    575                   <string>Update the selected application</string> 
    576                  </property> 
    577                  <property name="text"> 
    578                   <string>Update</string> 
    579                  </property> 
    580                  <property name="icon"> 
    581                   <iconset resource="SoftwareManager.qrc"> 
    582                    <normaloff>:/icons/view-refresh.png</normaloff>:/icons/view-refresh.png</iconset> 
    583                  </property> 
    584                  <property name="toolButtonStyle"> 
    585                   <enum>Qt::ToolButtonIconOnly</enum> 
    586                  </property> 
    587                 </widget> 
    588                </item> 
    589                <item> 
    590                 <widget class="QLabel" name="label_install_status"> 
    591                  <property name="sizePolicy"> 
    592                   <sizepolicy hsizetype="Expanding" vsizetype="Preferred"> 
    593                    <horstretch>0</horstretch> 
    594                    <verstretch>0</verstretch> 
    595                   </sizepolicy> 
    596                  </property> 
    597                  <property name="text"> 
    598                   <string notr="true">TextLabel</string> 
    599                  </property> 
    600                  <property name="wordWrap"> 
    601                   <bool>true</bool> 
    602                  </property> 
    603                 </widget> 
    604                </item> 
    605               </layout> 
    606              </item> 
    607              <item> 
    608               <layout class="QHBoxLayout" name="horizontalLayout_9"> 
    609                <item> 
    610                 <widget class="QProgressBar" name="progress_install_DL"> 
    611                  <property name="value"> 
    612                   <number>24</number> 
    613                  </property> 
    614                 </widget> 
    615                </item> 
    616                <item> 
    617                 <widget class="QLabel" name="label_install_DL"> 
    618                  <property name="minimumSize"> 
    619                   <size> 
    620                    <width>80</width> 
    621                    <height>0</height> 
    622                   </size> 
    623                  </property> 
    624                  <property name="text"> 
    625                   <string notr="true">label</string> 
    626                  </property> 
    627                  <property name="alignment"> 
    628                   <set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set> 
    629                  </property> 
    630                 </widget> 
    631                </item> 
    632               </layout> 
    633              </item> 
    634             </layout> 
    635            </widget> 
    636           </item> 
    637          </layout> 
    638         </widget> 
    639        </widget> 
     676          </widget> 
     677         </widget> 
     678        </item> 
     679       </layout> 
    640680      </widget> 
    641681      <widget class="QWidget" name="tab_browse"> 
     
    837877                    <x>0</x> 
    838878                    <y>0</y> 
    839                     <width>70</width> 
    840                     <height>16</height> 
     879                    <width>407</width> 
     880                    <height>61</height> 
    841881                   </rect> 
    842882                  </property> 
     
    888928                    <x>0</x> 
    889929                    <y>0</y> 
    890                     <width>49</width> 
    891                     <height>16</height> 
     930                    <width>401</width> 
     931                    <height>254</height> 
    892932                   </rect> 
    893933                  </property> 
     
    913953                 <x>0</x> 
    914954                 <y>0</y> 
    915                  <width>86</width> 
    916                  <height>16</height> 
     955                 <width>423</width> 
     956                 <height>381</height> 
    917957                </rect> 
    918958               </property> 
     
    12721312               <size> 
    12731313                <width>20</width> 
    1274                 <height>40</height> 
     1314                <height>0</height> 
    12751315               </size> 
    12761316              </property> 
     
    13131353                    <x>0</x> 
    13141354                    <y>0</y> 
    1315                     <width>413</width> 
     1355                    <width>411</width> 
    13161356                    <height>61</height> 
    13171357                   </rect> 
     
    13741414                    <x>0</x> 
    13751415                    <y>0</y> 
    1376                     <width>55</width> 
    1377                     <height>16</height> 
     1416                    <width>407</width> 
     1417                    <height>148</height> 
    13781418                   </rect> 
    13791419                  </property> 
     
    14121452                    <x>0</x> 
    14131453                    <y>0</y> 
    1414                     <width>55</width> 
    1415                     <height>16</height> 
     1454                    <width>407</width> 
     1455                    <height>148</height> 
    14161456                   </rect> 
    14171457                  </property> 
     
    14371477     <x>0</x> 
    14381478     <y>0</y> 
    1439      <width>475</width> 
     1479     <width>473</width> 
    14401480     <height>20</height> 
    14411481    </rect> 
     
    14451485     <string>File</string> 
    14461486    </property> 
     1487    <addaction name="actionInstall_From_File"/> 
     1488    <addaction name="separator"/> 
    14471489    <addaction name="actionImport_PBI_List"/> 
    14481490    <addaction name="actionExport_PBI_List"/> 
     
    15071549   </property> 
    15081550  </action> 
     1551  <action name="actionInstall_From_File"> 
     1552   <property name="icon"> 
     1553    <iconset resource="SoftwareManager.qrc"> 
     1554     <normaloff>:/icons/add.png</normaloff>:/icons/add.png</iconset> 
     1555   </property> 
     1556   <property name="text"> 
     1557    <string>Install PBI</string> 
     1558   </property> 
     1559  </action> 
    15091560 </widget> 
    15101561 <resources> 
    15111562  <include location="SoftwareManager.qrc"/> 
    1512   <include location="../../../../.designer/backup/SoftwareManager.qrc"/> 
    15131563 </resources> 
    15141564 <connections/> 
  • src-qt4/pc-softwaremanager/pbiBackend.cpp

    r2916111d re543bca  
    292292  //Now emit the signal that items have changed or been added 
    293293  emit LocalPBIChanges(); 
     294} 
     295 
     296void PBIBackend::installPBIFromFile(QStringList files){ 
     297  qDebug() << "Install PBI files requested for:" << files; 
     298  for(int i=0; i<files.length(); i++){ 
     299    if(!files[i].endsWith(".pbi")){ continue; } //invalid file 
     300    //Now load the info about this PBI 
     301    bool root = PBIFileNeedsRoot(files[i]); 
     302    //Now create the commands 
     303    QString cmd = addRootCMD("pc-pbigui "+files[i], root); 
     304    //Don't bother integrating it furthur, the pc-pbigui will handle it all better 
     305    //  and if it actually gets installed it will automatically get detected/added to the AppCafe list 
     306    PENDINGOTHER << "EXTERNAL:::"+cmd; 
     307  } 
     308  QTimer::singleShot(0,this,SLOT(checkProcesses()) ); 
    294309} 
    295310 
     
    861876 } 
    862877  
    863  QStringList PBIBackend::removePbiCMD(QString pbiID, QStringList list){ 
     878QStringList PBIBackend::removePbiCMD(QString pbiID, QStringList list){ 
    864879   //Used for removing any pending CMD's for a particular pbiID 
    865880   QStringList output; 
     
    868883   } 
    869884   return output; 
    870  } 
    871   
     885} 
     886 
     887bool PBIBackend::PBIFileNeedsRoot(QString filepath){ 
     888  //Used to grab information from a stand-along *.pbi file 
     889  bool root = false; 
     890  QStringList info = Extras::getCmdOutput("pbi_add -i "+filepath); 
     891  //Only check if it needs root 
     892  root = !info.filter("RootInstall:").join("").contains("NO"); 
     893  return root; 
     894} 
     895 
    872896void PBIBackend::queueInstall(QString appID, QString version){ 
    873897  //This function assumes that the new app/version combination is not already installed on the system 
     
    9951019     QString cmd = PENDINGOTHER[0].section(":::",1,50); 
    9961020     PENDINGOTHER.removeAt(0);     
    997      if( !cmd.isEmpty() && PBIHASH.contains(cOther) ){ 
     1021     if( !cmd.isEmpty() && (PBIHASH.contains(cOther) || cOther=="EXTERNAL") ){ 
    9981022       //Update the PBI status 
    999        PBIHASH[cOther].setStatus(InstalledPBI::WORKING); 
    1000        emit PBIStatusChange(cOther); 
     1023       if(cOther!="EXTERNAL"){ 
     1024         PBIHASH[cOther].setStatus(InstalledPBI::WORKING); 
     1025         emit PBIStatusChange(cOther); 
     1026       } 
    10011027       //Start the process 
    10021028       PMAN->startProcess(ProcessManager::OTHER,cmd); 
  • src-qt4/pc-softwaremanager/pbiBackend.h

    r7cc177e re543bca  
    5252        void removePBI(QStringList pbiID); //start the removal process 
    5353        void installApp(QStringList appID); //[install/upgrade/downgrade] application from the repo (as appropriate) 
     54        void installPBIFromFile(QStringList files); //[install/upgrade/downgrade] application from file 
    5455        void addDesktopIcons(QStringList pbiID, bool allusers); // add XDG desktop icons 
    5556        void addMenuIcons(QStringList pbiID, bool allusers); // add XDG menu icons 
     
    121122        QString generateInstallCMD(QString appID, QString pbiID); 
    122123        QStringList removePbiCMD(QString pbiID, QStringList list); 
     124        bool PBIFileNeedsRoot(QString filepath); 
    123125         
    124126        //Internal functions for queuing up actions 
Note: See TracChangeset for help on using the changeset viewer.