Changeset bb41d1d


Ignore:
Timestamp:
05/16/14 09:25:39 (13 months ago)
Author:
Ken Moore <ken@…>
Branches:
master, enter/10, releng/10.0.2, releng/10.0.3, releng/10.1, releng/10.1.1, releng/10.1.2
Children:
8dd8046
Parents:
9dc3bba
Message:

Finish cleaning up the lumina-open display. Looks mich nicer now.

Location:
lumina/lumina-open
Files:
3 edited

Legend:

Unmodified
Added
Removed
  • lumina/lumina-open/LFileDialog.cpp

    r9dc3bba rbb41d1d  
    2020  //Connect the signals/slots 
    2121  connect(ui->tree_apps, SIGNAL(itemSelectionChanged()), this, SLOT(updateUI()) ); 
     22  connect(ui->radio_rec, SIGNAL(toggled(bool)), this, SLOT(radioChanged()) ); 
     23  connect(ui->radio_avail, SIGNAL(toggled(bool)), this, SLOT(radioChanged()) ); 
     24  connect(ui->radio_custom, SIGNAL(toggled(bool)), this, SLOT(radioChanged()) ); 
    2225} 
    2326 
     
    8588      QStringList newfiles; 
    8689      newfiles << desktopfile; 
    87       //Only keep the 3 most recent preferred applications per extension 
    88       for(int j=0; j<2 && j<files.length(); j++){ 
     90      //Only keep the 5 most recent preferred applications per extension 
     91      for(int j=0; j<5 && j<files.length(); j++){ 
    8992          newfiles << files[j];  
    9093      }    
     
    123126  //Check for a selected application 
    124127  bool good = false; 
    125   if(ui->group_binary->isChecked()){ 
    126     ui->check_default->setEnabled(false); 
     128  if(ui->radio_custom->isChecked()){ 
    127129    if(!ui->line_bin->text().isEmpty()){ 
    128130      good = true;  
     
    136138    } 
    137139  } 
     140  else if(ui->radio_rec->isChecked()){ 
     141    good = true; //a valid app is always selected on this page if it is available 
     142  } 
    138143  else if(ui->tree_apps->topLevelItemCount() > 0 && ui->tree_apps->currentItem()!=0 ){ 
    139144    if(!ui->tree_apps->currentItem()->whatsThis(0).isEmpty()){  
    140145      good=true; 
    141       ui->check_default->setEnabled(true); 
    142     } 
    143   } 
    144   ui->tree_apps->setEnabled(!ui->group_binary->isChecked()); 
     146    } 
     147  } 
    145148  ui->tool_ok->setEnabled(good); 
    146149} 
     
    149152  //Now load the preferred applications 
    150153  QStringList apps = getPreferredApplications(); 
    151   ui->tree_apps->clear(); 
    152   //ui->tree_apps->setIconSize(QSize(30,30)); 
     154  PREFAPPS.clear(); 
     155  ui->combo_rec->clear(); 
    153156  for(int i=0; i<apps.length(); i++){ 
    154157    bool ok = false; 
    155158    XDGDesktop dFile = LXDG::loadDesktopFile(apps[i], ok); 
    156159    if( LXDG::checkValidity(dFile) && ok ){ 
    157       //Add it to the list of good apps (ignore category for preferred) 
    158       QTreeWidgetItem *ti = new QTreeWidgetItem(ui->tree_apps, QStringList() << dFile.name); 
    159       ti->setWhatsThis(0, dFile.filePath); 
    160       ti->setIcon(0,LXDG::findIcon(dFile.icon, ":/icons/application.png")); 
    161       ti->setToolTip(0,dFile.comment); 
    162       ui->tree_apps->addTopLevelItem(ti); 
    163       if(i==0){ ui->tree_apps->setCurrentItem(ti); } //make sure the first item is selected 
     160      PREFAPPS << apps[i]; 
     161      ui->combo_rec->addItem( LXDG::findIcon(dFile.icon, ":/icons/application.png"), dFile.name); 
     162      if(i==0){ ui->combo_rec->setCurrentIndex(0); } //make sure the first item is selected 
    164163    } 
    165164  } 
     
    170169  QStringList cat = hash.keys(); 
    171170  cat.sort(); //sort alphabetically 
     171  ui->tree_apps->clear(); 
    172172  for(int c=0; c<cat.length(); c++){ 
    173173    QList<XDGDesktop> app = hash[cat[c]]; 
     
    193193  } 
    194194  //Update the UI 
    195   ui->group_binary->setChecked(false); 
    196   on_group_binary_toggled(false); //force item visibility off and update 
    197 } 
    198  
    199 void LFileDialog::on_group_binary_toggled(bool checked){ 
     195  if(PREFAPPS.isEmpty()){ 
     196    ui->radio_rec->setEnabled(false); //no preferred apps 
     197    ui->radio_avail->setChecked(true); 
     198  }else{ 
     199    ui->radio_rec->setChecked(true); 
     200  } 
     201} 
     202 
     203void LFileDialog::radioChanged(){ 
     204  if(ui->radio_rec->isChecked()){ 
     205    ui->stackedWidget->setCurrentWidget(ui->page_rec); 
     206  }else if(ui->radio_avail->isChecked()){ 
     207    ui->stackedWidget->setCurrentWidget(ui->page_avail); 
     208  }else{ 
     209    ui->stackedWidget->setCurrentWidget(ui->page_custom); 
     210  } 
     211  ui->check_default->setEnabled( !ui->radio_custom->isChecked() ); 
     212  updateUI(); 
     213} 
     214 
     215/*void LFileDialog::on_group_binary_toggled(bool checked){ 
    200216  ui->label_goodbin->setVisible(checked); 
    201217  ui->line_bin->setVisible(checked); 
    202218  ui->tool_findBin->setVisible(checked); 
    203219  updateUI(); 
    204 } 
     220}*/ 
    205221 
    206222void LFileDialog::on_tool_ok_clicked(){ 
    207223  appSelected = true; 
    208   if(ui->group_binary->isChecked()){ 
     224  if(ui->radio_custom->isChecked()){ 
    209225    appExec = ui->line_bin->text();   
    210   }else{ 
     226  }else if(ui->radio_rec->isChecked()){ 
     227    //application selected 
     228    bool ok = false; 
     229    XDGDesktop app = LXDG::loadDesktopFile(PREFAPPS[ui->combo_rec->currentIndex()], ok); 
     230    //Set the output variables 
     231    setDefault = ui->check_default->isChecked(); 
     232    appExec = app.exec; 
     233    appPath = app.path; 
     234    appFile = app.filePath; 
     235    setPreferredApplication(app.filePath); //bump this to the top of the preferred list for next time 
     236  }else{ 
     237    //application selected 
    211238    bool ok = false; 
    212239    XDGDesktop app = LXDG::loadDesktopFile(ui->tree_apps->currentItem()->whatsThis(0), ok); 
  • lumina/lumina-open/LFileDialog.h

    r53c9649 rbb41d1d  
    5050        QString fileEXT; 
    5151        QSettings *settings; 
     52        QStringList PREFAPPS; 
    5253         
    5354        //DB set/get 
     
    6162        void generateAppList(); 
    6263        //Internal UI slots 
    63         void on_group_binary_toggled(bool checked); 
     64        void radioChanged(); 
     65        //void on_group_binary_toggled(bool checked); 
    6466        void on_tool_ok_clicked(); 
    6567        void on_tool_cancel_clicked(); 
  • lumina/lumina-open/LFileDialog.ui

    r53c9649 rbb41d1d  
    77    <x>0</x> 
    88    <y>0</y> 
    9     <width>318</width> 
    10     <height>246</height> 
     9    <width>307</width> 
     10    <height>216</height> 
    1111   </rect> 
    1212  </property> 
     
    5555   </item> 
    5656   <item> 
    57     <widget class="QTreeWidget" name="tree_apps"> 
    58      <property name="iconSize"> 
    59       <size> 
    60        <width>20</width> 
    61        <height>20</height> 
    62       </size> 
    63      </property> 
    64      <property name="textElideMode"> 
    65       <enum>Qt::ElideRight</enum> 
    66      </property> 
    67      <property name="indentation"> 
    68       <number>10</number> 
    69      </property> 
    70      <property name="uniformRowHeights"> 
    71       <bool>false</bool> 
    72      </property> 
    73      <property name="sortingEnabled"> 
    74       <bool>false</bool> 
    75      </property> 
    76      <property name="headerHidden"> 
    77       <bool>true</bool> 
    78      </property> 
    79      <column> 
    80       <property name="text"> 
    81        <string notr="true">1</string> 
    82       </property> 
    83      </column> 
    84     </widget> 
    85    </item> 
    86    <item> 
    87     <widget class="QGroupBox" name="group_binary"> 
    88      <property name="title"> 
    89       <string>Custom Application</string> 
    90      </property> 
    91      <property name="checkable"> 
    92       <bool>true</bool> 
    93      </property> 
    94      <property name="checked"> 
    95       <bool>false</bool> 
    96      </property> 
    97      <layout class="QHBoxLayout" name="horizontalLayout_3"> 
    98       <item> 
    99        <widget class="QLabel" name="label_goodbin"> 
    100         <property name="text"> 
    101          <string notr="true"/> 
    102         </property> 
    103         <property name="pixmap"> 
    104          <pixmap resource="lumina-open.qrc">:/icons/bad.png</pixmap> 
    105         </property> 
    106         <property name="scaledContents"> 
    107          <bool>true</bool> 
    108         </property> 
    109        </widget> 
    110       </item> 
    111       <item> 
    112        <widget class="QLineEdit" name="line_bin"> 
    113         <property name="placeholderText"> 
    114          <string>Binary Location</string> 
    115         </property> 
    116        </widget> 
    117       </item> 
    118       <item> 
    119        <widget class="QToolButton" name="tool_findBin"> 
    120         <property name="text"> 
    121          <string>Find</string> 
    122         </property> 
    123         <property name="icon"> 
    124          <iconset resource="lumina-open.qrc"> 
    125           <normaloff>:/icons/find.png</normaloff>:/icons/find.png</iconset> 
    126         </property> 
    127        </widget> 
    128       </item> 
    129      </layout> 
     57    <widget class="Line" name="line"> 
     58     <property name="orientation"> 
     59      <enum>Qt::Horizontal</enum> 
     60     </property> 
     61    </widget> 
     62   </item> 
     63   <item> 
     64    <layout class="QHBoxLayout" name="horizontalLayout_2"> 
     65     <item> 
     66      <widget class="QRadioButton" name="radio_rec"> 
     67       <property name="text"> 
     68        <string>Preferred</string> 
     69       </property> 
     70      </widget> 
     71     </item> 
     72     <item> 
     73      <widget class="QRadioButton" name="radio_avail"> 
     74       <property name="text"> 
     75        <string>Available</string> 
     76       </property> 
     77      </widget> 
     78     </item> 
     79     <item> 
     80      <widget class="QRadioButton" name="radio_custom"> 
     81       <property name="text"> 
     82        <string>Custom</string> 
     83       </property> 
     84      </widget> 
     85     </item> 
     86    </layout> 
     87   </item> 
     88   <item> 
     89    <widget class="QStackedWidget" name="stackedWidget"> 
     90     <property name="currentIndex"> 
     91      <number>2</number> 
     92     </property> 
     93     <widget class="QWidget" name="page_avail"> 
     94      <layout class="QVBoxLayout" name="verticalLayout_2"> 
     95       <item> 
     96        <widget class="QTreeWidget" name="tree_apps"> 
     97         <property name="iconSize"> 
     98          <size> 
     99           <width>20</width> 
     100           <height>20</height> 
     101          </size> 
     102         </property> 
     103         <property name="textElideMode"> 
     104          <enum>Qt::ElideRight</enum> 
     105         </property> 
     106         <property name="indentation"> 
     107          <number>10</number> 
     108         </property> 
     109         <property name="uniformRowHeights"> 
     110          <bool>false</bool> 
     111         </property> 
     112         <property name="sortingEnabled"> 
     113          <bool>false</bool> 
     114         </property> 
     115         <property name="headerHidden"> 
     116          <bool>true</bool> 
     117         </property> 
     118         <column> 
     119          <property name="text"> 
     120           <string notr="true">1</string> 
     121          </property> 
     122         </column> 
     123        </widget> 
     124       </item> 
     125      </layout> 
     126     </widget> 
     127     <widget class="QWidget" name="page_custom"> 
     128      <layout class="QGridLayout" name="gridLayout"> 
     129       <item row="0" column="0"> 
     130        <widget class="QLabel" name="label_goodbin"> 
     131         <property name="text"> 
     132          <string notr="true"/> 
     133         </property> 
     134         <property name="pixmap"> 
     135          <pixmap resource="lumina-open.qrc">:/icons/bad.png</pixmap> 
     136         </property> 
     137         <property name="scaledContents"> 
     138          <bool>true</bool> 
     139         </property> 
     140        </widget> 
     141       </item> 
     142       <item row="0" column="1"> 
     143        <widget class="QLineEdit" name="line_bin"> 
     144         <property name="placeholderText"> 
     145          <string>Binary Location</string> 
     146         </property> 
     147        </widget> 
     148       </item> 
     149       <item row="0" column="2"> 
     150        <widget class="QToolButton" name="tool_findBin"> 
     151         <property name="text"> 
     152          <string>Find</string> 
     153         </property> 
     154         <property name="icon"> 
     155          <iconset resource="lumina-open.qrc"> 
     156           <normaloff>:/icons/find.png</normaloff>:/icons/find.png</iconset> 
     157         </property> 
     158        </widget> 
     159       </item> 
     160       <item row="1" column="1"> 
     161        <spacer name="verticalSpacer"> 
     162         <property name="orientation"> 
     163          <enum>Qt::Vertical</enum> 
     164         </property> 
     165         <property name="sizeHint" stdset="0"> 
     166          <size> 
     167           <width>20</width> 
     168           <height>40</height> 
     169          </size> 
     170         </property> 
     171        </spacer> 
     172       </item> 
     173      </layout> 
     174     </widget> 
     175     <widget class="QWidget" name="page_rec"> 
     176      <layout class="QVBoxLayout" name="verticalLayout_3"> 
     177       <item> 
     178        <widget class="QComboBox" name="combo_rec"> 
     179         <property name="iconSize"> 
     180          <size> 
     181           <width>20</width> 
     182           <height>20</height> 
     183          </size> 
     184         </property> 
     185        </widget> 
     186       </item> 
     187       <item> 
     188        <spacer name="verticalSpacer_2"> 
     189         <property name="orientation"> 
     190          <enum>Qt::Vertical</enum> 
     191         </property> 
     192         <property name="sizeHint" stdset="0"> 
     193          <size> 
     194           <width>20</width> 
     195           <height>40</height> 
     196          </size> 
     197         </property> 
     198        </spacer> 
     199       </item> 
     200      </layout> 
     201     </widget> 
    130202    </widget> 
    131203   </item> 
Note: See TracChangeset for help on using the changeset viewer.