Changeset 4333764


Ignore:
Timestamp:
07/18/14 06:18:38 (10 months ago)
Author:
Ken Moore <ken@…>
Branches:
master, enter/10, releng/10.0.3, releng/10.1, releng/10.1.1, releng/10.1.2
Children:
52f7b5a
Parents:
d435362e
Message:

Update Lumina-fm.

*Clean up the new widget usage/visiblity while loading
*Enable the multimedia player functionality (still in testing with various file formats)

NOTE: This now uses the phonon framework for Qt. Make sure you catch the change in dependencies!

Location:
lumina/lumina-fm
Files:
5 edited

Legend:

Unmodified
Added
Removed
  • lumina/lumina-fm/MainUI.cpp

    r47e93bde r4333764  
    2525  fsmod = new QFileSystemModel(this); 
    2626    fsmod->setRootPath("/"); 
    27     /*ui->tree_dir_view->setModel(fsmod); 
    28     ui->tree_dir_view->setItemsExpandable(false); 
    29     ui->tree_dir_view->setExpandsOnDoubleClick(false); 
    30     ui->tree_dir_view->setRootIsDecorated(false); 
    31     ui->tree_dir_view->setSortingEnabled(true); 
    32     ui->tree_dir_view->sortByColumn(0,Qt::AscendingOrder); 
    33     ui->tree_dir_view->setContextMenuPolicy(Qt::CustomContextMenu);*/ 
    3427  dirCompleter = new QCompleter(fsmod, this); 
    3528    dirCompleter->setModelSorting( QCompleter::CaseInsensitivelySortedModel ); 
    3629    currentDir->setCompleter(dirCompleter); 
    3730  dirWatcher = new QFileSystemWatcher(this); 
     31    dirWatcher->addPath(QDir::homePath()); 
    3832     
    3933  snapmod = new QFileSystemModel(this); 
     
    5347    ui->menuView->addAction(listWA); 
    5448    ui->menuView->addAction(icoWA); 
     49  //Setup the special Phonon widgets 
     50  mediaObj = new Phonon::MediaObject(this); 
     51    mediaObj->setTickInterval(200); //1/5 second ticks for updates 
     52  videoDisplay = new Phonon::VideoWidget(this); 
     53    videoDisplay->setSizePolicy(QSizePolicy::Expanding, QSizePolicy::Expanding); 
     54    ui->videoLayout->addWidget(videoDisplay); 
     55    Phonon::createPath(mediaObj, videoDisplay); 
     56    videoDisplay->setVisible(false); 
     57  audioOut = new Phonon::AudioOutput(Phonon::VideoCategory, this); 
     58    Phonon::createPath(mediaObj, audioOut); 
     59  playerSlider = new Phonon::SeekSlider(this); 
     60    playerSlider->setMediaObject(mediaObj); 
     61    ui->videoControlLayout->insertWidget(4, playerSlider); 
     62  playerFile = new QFile(); 
     63    ui->tool_player_stop->setEnabled(false); //nothing to stop yet 
     64    ui->tool_player_pause->setVisible(false); //nothing to pause yet 
     65     
    5566  //Setup any specialty keyboard shortcuts 
    5667  nextTabLShort = new QShortcut( QKeySequence(tr("Shift+Left")), this); 
     
    109120  ui->tool_goToPlayer->setIcon( LXDG::findIcon("applications-multimedia","") ); 
    110121  ui->tool_goToRestore->setIcon( LXDG::findIcon("document-revert","") ); 
     122         
    111123  //Multimedia Player page 
     124  ui->tool_player_next->setIcon( LXDG::findIcon("media-skip-forward","") ); 
     125  ui->tool_player_prev->setIcon( LXDG::findIcon("media-skip-backward","") ); 
     126  ui->tool_player_pause->setIcon( LXDG::findIcon("media-playback-pause","") ); 
     127  ui->tool_player_play->setIcon( LXDG::findIcon("media-playback-start","") ); 
     128  ui->tool_player_stop->setIcon( LXDG::findIcon("media-playback-stop","") ); 
    112129         
    113130  //Slideshow page 
     
    140157  connect(ui->list_dir_widget, SIGNAL(customContextMenuRequested(const QPoint&)), this, SLOT(OpenContextMenu(const QPoint&)) ); 
    141158  connect(dirWatcher, SIGNAL(directoryChanged(QString)), this, SLOT( loadDirectory() ) ); 
     159         
    142160  //Page Switching 
    143161  connect(ui->tool_goToPlayer, SIGNAL(clicked()), this, SLOT(goToMultimediaPage()) ); 
     
    159177  connect(ui->tool_zfs_prevSnap, SIGNAL(clicked()), this, SLOT(prevSnapshot()) ); 
    160178  connect(ui->tool_zfs_restoreItem, SIGNAL(clicked()), this, SLOT(restoreItems()) ); 
     179   
     180  //Multimedia Player page 
     181  connect(ui->tool_player_next, SIGNAL(clicked()), this, SLOT(playerNext())); 
     182  connect(ui->tool_player_prev, SIGNAL(clicked()), this, SLOT(playerPrevious())); 
     183  connect(ui->tool_player_pause, SIGNAL(clicked()), this, SLOT(playerPause())); 
     184  connect(ui->tool_player_play, SIGNAL(clicked()), this, SLOT(playerStart())); 
     185  connect(ui->tool_player_stop, SIGNAL(clicked()), this, SLOT(playerStop())); 
     186  connect(ui->combo_player_list, SIGNAL(currentIndexChanged(int)), this, SLOT(playerFileChanged()) ); 
     187  connect(mediaObj, SIGNAL(finished()), this, SLOT(playerFinished()) ); 
     188  connect(mediaObj, SIGNAL(tick(qint64)), this, SLOT(playerTimeChanged(qint64)) ); 
     189  connect(mediaObj, SIGNAL(stateChanged(Phonon::State, Phonon::State)), this, SLOT(playerStateChanged(Phonon::State, Phonon::State)) ); 
    161190   
    162191  //Special Keyboard Shortcuts 
     
    258287} 
    259288 
     289QString MainUI::msToText(qint64 ms){ 
     290  QString disp; 
     291  if(ms>3600000){ 
     292    disp.append( QString::number(ms/3600000)+":" );  
     293    ms = ms%3600000;  
     294  } 
     295  if(ms>60000){ 
     296    disp.append( QString::number(ms/60000)+":" ); 
     297    ms = ms%60000; 
     298  }else{ 
     299    disp.append("0:"); 
     300  } 
     301  if(ms>1000){ 
     302    if(ms>=10000){ disp.append( QString::number(ms/1000) ); } 
     303    else{ disp.append( "0"+QString::number(ms/1000) ); } 
     304  }else{ 
     305    disp.append("00"); 
     306  } 
     307  return disp; 
     308} 
     309 
    260310QString MainUI::getCurrentDir(){ 
    261311  return currentDir->whatsThis(); 
     
    287337    keepFocus = !currentDir->hasFocus(); 
    288338    currentDir->setWhatsThis(dir); //save the full path internally 
    289     fsmod->setRootPath(dir); 
     339    //fsmod->setRootPath(dir); 
    290340    QTimer::singleShot(0,this, SLOT(loadDirectory()) ); 
    291341  } 
     
    334384void MainUI::checkForMultimediaFiles(){ 
    335385  ui->tool_goToPlayer->setVisible(false); 
    336   //Check for multimedia files not implemented yet!      
     386  //Check for multimedia files not implemented yet! 
     387  QDir dir(getCurrentDir()); 
     388  if(multiFilter.isEmpty()){ 
     389    //hard-code the multimedia filter at the moment - need to find a way to read this from Phonon directly later 
     390    multiFilter << "*.mp3" << "*.ogg" << "*.mp4" << "*.mp4a" << "*.wmv" << "*.mov" << "*.flv"; 
     391    qDebug() << "Supported Multimedia Formats:" << multiFilter; 
     392  } 
     393  QStringList files = dir.entryList(multiFilter, QDir::Files | QDir::NoDotAndDotDot, QDir::Name | QDir::IgnoreCase); 
     394  if(!files.isEmpty()){ 
     395    ui->combo_player_list->clear(); 
     396    ui->combo_player_list->addItems(files); 
     397    ui->tool_goToPlayer->setVisible(true); 
     398  } 
     399   
    337400} 
    338401 
     
    378441void MainUI::checkForPictures(){ 
    379442  ui->tool_goToImages->setVisible(false); 
    380   //Check for images not implemented yet! 
    381443  QDir dir(getCurrentDir()); 
    382   QStringList pics = dir.entryList(QStringList() << "*.png" << "*.jpg", QDir::Files | QDir::NoDotAndDotDot, QDir::Name | QDir::IgnoreCase); 
     444  if(imgFilter.isEmpty()){ 
     445    QList<QByteArray> fmt = QImageReader::supportedImageFormats(); 
     446    for(int i=0; i<fmt.length(); i++){ imgFilter << "*."+QString(fmt[i]).toLower(); } 
     447    qDebug() << "Supported Image Formats:" << imgFilter; 
     448  } 
     449  QStringList pics = dir.entryList(imgFilter, QDir::Files | QDir::NoDotAndDotDot, QDir::Name | QDir::IgnoreCase); 
    383450  if(!pics.isEmpty()){ 
    384451    ui->combo_image_name->clear(); 
     
    391458} 
    392459 
     460//----------------------------------- 
    393461//General page switching 
     462//----------------------------------- 
    394463void MainUI::goToMultimediaPage(){ 
    395464  //Make toolbar items disappear appropriately   
     
    406475  ui->menuBookmarks->setEnabled(false); 
    407476  ui->menuExternal_Devices->setEnabled(false); 
     477  //Start the player on the first selected item 
     478  QStringList sel = getSelectedItems(); 
     479  if(!sel.isEmpty()){ 
     480    //start the slideshow on the first selected picture 
     481    for(int i=0; i<ui->combo_player_list->count(); i++){ 
     482      if(sel.contains( ui->combo_player_list->itemText(i) )){ ui->combo_player_list->setCurrentIndex(i); break; } 
     483    } 
     484  } 
    408485  //Now go to the Multimedia player 
     486  ui->label_player_novideo->setText(tr("Click Play to Start")); 
    409487  ui->stackedWidget->setCurrentWidget(ui->page_audioPlayer); 
    410488} 
     
    446524  ui->menuBookmarks->setEnabled(false); 
    447525  ui->menuExternal_Devices->setEnabled(false); 
     526  QStringList sel = getSelectedItems(); 
     527  if(!sel.isEmpty()){ 
     528    //start the slideshow on the first selected picture 
     529    for(int i=0; i<ui->combo_image_name->count(); i++){ 
     530      if(sel.contains( ui->combo_image_name->itemText(i) )){ ui->combo_image_name->setCurrentIndex(i); break; } 
     531    } 
     532  } 
    448533  //Now go to the Slideshow player 
    449534  ui->stackedWidget->setCurrentWidget(ui->page_image_view); 
     
    466551  ui->menuExternal_Devices->setEnabled(true); 
    467552  //Now go to the browser 
     553  if(ui->stackedWidget->currentWidget()==ui->page_audioPlayer){ mediaObj->stop(); } 
    468554  ui->stackedWidget->setCurrentWidget(ui->page_browser);         
    469555} 
    470556         
     557//--------------------- 
    471558//Menu Actions 
     559//--------------------- 
    472560void MainUI::on_actionNew_Tab_triggered(){ 
    473561  OpenDirs(QStringList() << QDir::homePath()); 
     
    539627} 
    540628 
     629//----------------------- 
    541630//Toolbar Actions 
     631//----------------------- 
    542632void MainUI::on_actionBack_triggered(){ 
    543633  QStringList history = tabBar->tabData(tabBar->currentIndex()).toStringList(); 
     
    578668} 
    579669 
     670//----------------------------- 
    580671//Browser Functions 
     672//----------------------------- 
    581673void MainUI::startEditDir(QWidget *old, QWidget *now){ 
    582674  if(now==currentDir){ 
     
    613705  ui->list_dir_widget->clear(); 
    614706  //reset the list widget icons sizes before adding items 
    615   if(radio_view_list->isChecked()){ ui->list_dir_widget->setIconSize( QSize(20,20) ); } 
    616   else{ ui->list_dir_widget->setIconSize( QSize(30,30) ); } 
     707  if(!radio_view_details->isChecked()){ ui->list_dir_widget->setGridSize(QSize()); } //reset the grid 
     708  if(radio_view_list->isChecked()){ ui->list_dir_widget->setIconSize( QSize(22,22) ); } 
     709  else{ ui->list_dir_widget->setIconSize( QSize(32,32) ); } 
    617710  //Now fill the widgets 
     711  int longname=0; 
    618712  for(int i=0; i<list.length(); i++){ 
     713    if(list[i].fileName().length() > longname){ longname=list[i].fileName().length(); } 
    619714    //Get the appropriate icon 
    620715    QIcon ico; 
     
    630725      it->setIcon(0,ico); 
    631726      ui->tree_dir_widget->addTopLevelItem(it); 
     727      if(i==0){ ui->tree_dir_widget->setCurrentItem(it); } 
    632728    }else{ 
    633729      ui->list_dir_widget->addItem( new QListWidgetItem( ico, list[i].fileName() ) ); 
    634     } 
    635      
    636   } 
    637   if(list.length() > 0){  
    638     //Make sure the first item is selected 
    639     if(radio_view_details->isChecked()){   
    640       ui->tree_dir_widget->setCurrentItem( ui->tree_dir_widget->topLevelItem(0) );  
    641       for(int i=0; i<3; i++){ ui->tree_dir_widget->resizeColumnToContents(i); } 
    642     }else{  
    643       ui->list_dir_widget->setCurrentRow(0);  
    644     } 
     730      if(i==0){ ui->list_dir_widget->setCurrentRow(0); } 
     731    } 
     732    QApplication::processEvents(); 
     733  } 
     734  //Make sure the items are the proper size 
     735  if( list.length() > 0 ){ 
     736    if( radio_view_details->isChecked() ){ for(int i=0; i<3; i++){ ui->tree_dir_widget->resizeColumnToContents(i); } } 
     737    //else{} 
    645738  } 
    646739  //Re-enable the widgets 
     
    784877} 
    785878 
     879//------------------------------- 
    786880//Slideshow Functions 
     881//------------------------------- 
    787882void MainUI::showNewPicture(){ 
    788883  if( !ui->label_image->isVisible() ){ return; } //don't update if not visible - can cause strange resizing issues 
     
    821916} 
    822917 
     918//---------------------------------- 
    823919//ZFS Restore Functions 
     920//---------------------------------- 
    824921void MainUI::snapshotLoaded(){ 
    825922  ui->tree_zfs_dir->resizeColumnToContents(0); 
     
    875972} 
    876973 
     974//---------------------------- 
     975// Multimedia Player 
     976//---------------------------- 
     977void MainUI::playerStart(){ 
     978  if(ui->stackedWidget->currentWidget()!=ui->page_audioPlayer){ return; } //don't play if not in the player 
     979  if(mediaObj->state()==Phonon::StoppedState || mediaObj->state()==Phonon::ErrorState || (playerFile->fileName().section("/",-1) != ui->combo_player_list->currentText()) || playerFile->isOpen() ){ 
     980    mediaObj->stop(); 
     981    //Get the selected file path 
     982    QString filePath = getCurrentDir(); 
     983    if(!filePath.endsWith("/")){ filePath.append("/"); } 
     984    filePath.append( ui->combo_player_list->currentText() ); 
     985    if(playerFile->isOpen()){ playerFile->close(); } 
     986    playerFile->setFileName(filePath); 
     987    if(playerFile->open(QIODevice::ReadOnly)){ 
     988      mediaObj->setCurrentSource( playerFile ); 
     989      playerSlider->setMediaObject(mediaObj); 
     990      mediaObj->play(); 
     991    } 
     992  }else if(mediaObj->state()==Phonon::PausedState){ 
     993    mediaObj->play(); 
     994  } 
     995 
     996} 
     997 
     998void MainUI::playerStop(){ 
     999  mediaObj->stop(); 
     1000} 
     1001 
     1002void MainUI::playerPause(){ 
     1003  mediaObj->pause(); 
     1004} 
     1005 
     1006void MainUI::playerNext(){ 
     1007  ui->combo_player_list->setCurrentIndex( ui->combo_player_list->currentIndex()+1); 
     1008} 
     1009 
     1010void MainUI::playerPrevious(){ 
     1011  ui->combo_player_list->setCurrentIndex( ui->combo_player_list->currentIndex()-1);      
     1012} 
     1013 
     1014void MainUI::playerFinished(){ 
     1015  playerFile->close(); 
     1016  if(ui->combo_player_list->currentIndex()<(ui->combo_player_list->count()-1) && ui->check_player_gotonext->isChecked()){ 
     1017    ui->combo_player_list->setCurrentIndex( ui->combo_player_list->currentIndex()+1 ); 
     1018  }else{ 
     1019    ui->label_player_novideo->setText(tr("Finished")); 
     1020  } 
     1021} 
     1022 
     1023void MainUI::playerStateChanged(Phonon::State newstate, Phonon::State oldstate){ 
     1024  //This function keeps track up updating the visuals of the player 
     1025  bool running = false; 
     1026  bool showVideo = false; 
     1027  switch(newstate){ 
     1028    case Phonon::LoadingState: 
     1029        running=true; 
     1030        ui->label_player_novideo->setText(tr("Loading File...")); 
     1031        break; 
     1032    case Phonon::PlayingState: 
     1033        running=true; 
     1034        if(mediaObj->hasVideo()){  
     1035          showVideo=true; 
     1036        }else{ 
     1037          QString msg = mediaObj->metaData(Phonon::TitleMetaData).join(" "); 
     1038          if(msg.simplified().isEmpty()){ msg = playerFile->fileName().section("/",-1); } 
     1039          ui->label_player_novideo->setText(tr("Playing:")+"\n"+msg); 
     1040        } 
     1041        break; 
     1042    case Phonon::BufferingState: 
     1043        running=true; 
     1044        showVideo=true; //don't blank the screen 
     1045        break; 
     1046    case Phonon::PausedState: 
     1047        showVideo=videoDisplay->isVisible(); //don't change the screen 
     1048        break; 
     1049    case Phonon::StoppedState: 
     1050        if(oldstate==Phonon::LoadingState){ mediaObj->play(); } 
     1051        else{ ui->label_player_novideo->setText(tr("Stopped")); } 
     1052        break; 
     1053    case Phonon::ErrorState: 
     1054        ui->label_player_novideo->setText(tr("Error Playing File")+"\n("+mediaObj->errorString()+")"); 
     1055        break; 
     1056  } 
     1057  ui->tool_player_play->setVisible(!running); 
     1058  ui->tool_player_pause->setVisible(running); 
     1059  ui->tool_player_stop->setEnabled(running); 
     1060  ui->label_player_novideo->setVisible(!showVideo); 
     1061  videoDisplay->setVisible(showVideo); 
     1062} 
     1063 
     1064void MainUI::playerTimeChanged(qint64 ctime){ 
     1065  //qDebug() << "Time:" << msToText(ctime) << msToText(mediaObj->totalTime()) << msToText(mediaObj->remainingTime()) << mediaObj->isSeekable(); 
     1066  ui->label_player_runstats->setText( msToText(ctime)+"/"+msToText(mediaObj->totalTime()) ); 
     1067} 
     1068 
     1069void MainUI::playerFileChanged(){ 
     1070  ui->tool_player_next->setEnabled( ui->combo_player_list->count() > (ui->combo_player_list->currentIndex()+1) );        
     1071  ui->tool_player_prev->setEnabled( (ui->combo_player_list->currentIndex()-1) >= 0 ); 
     1072  if(ui->stackedWidget->currentWidget()!=ui->page_audioPlayer){ return; } //don't play if not in the player 
     1073  //If one is playing, so ahead and start playing the new selection 
     1074  if(playerFile->isOpen() || ui->check_player_gotonext->isChecked() ){ 
     1075    QTimer::singleShot(0,this,SLOT(playerStart())); 
     1076  } 
     1077} 
     1078 
     1079//---------------------------------- 
    8771080// Context Menu Actions 
     1081//---------------------------------- 
    8781082void MainUI::OpenItem(){ 
    8791083  if(CItem.isEmpty()){ return; } 
     
    9601164  //Get all the selected Items  
    9611165  QStringList sel = getSelectedItems(); 
    962   /*QModelIndexList items = ui->tree_dir_view->selectionModel()->selectedIndexes(); 
    963   for(int i=0; i<items.length(); i++){ 
    964     sel << fsmod->filePath(items[i]); 
    965   } 
    966   sel.removeDuplicates();*/ 
    9671166  if(sel.isEmpty()){ return; } //nothing selected 
    9681167  qDebug() << "Cut Items:" << sel; 
     
    9851184  //Get all the selected Items  
    9861185  QStringList sel = getSelectedItems(); 
    987   /*QModelIndexList items = ui->tree_dir_view->selectionModel()->selectedIndexes(); 
    988   for(int i=0; i<items.length(); i++){ 
    989     sel << fsmod->filePath(items[i]); 
    990   } 
    991   sel.removeDuplicates();*/ 
    9921186  if(sel.isEmpty()){ return; } //nothing selected 
    9931187  qDebug() << "Copy Items:" << sel; 
  • lumina/lumina-fm/MainUI.h

    r47e93bde r4333764  
    3333#include <QWidgetAction> 
    3434#include <QFileSystemWatcher> 
     35#include <QImageReader> 
     36 
     37//Phonon widgets 
     38#include <Phonon/MediaObject> 
     39#include <Phonon/VideoWidget> 
     40#include <Phonon/AudioOutput> 
     41#include <Phonon/SeekSlider> 
     42#include <Phonon/MediaSource> 
    3543 
    3644// libLumina includes 
     
    6472        QWidgetAction *detWA, *listWA, *icoWA; 
    6573 
     74        //Phonon Widgets for the multimedia player 
     75        Phonon::MediaObject *mediaObj; 
     76        Phonon::VideoWidget *videoDisplay; 
     77        Phonon::AudioOutput *audioOut; 
     78        Phonon::SeekSlider *playerSlider; 
     79        QFile *playerFile; 
     80 
    6681        //Internal variables 
    6782        QStringList snapDirs; //internal saved variable for the discovered zfs snapshot dirs 
    6883        QString CItem; //the item that was right-clicked (for the context menu) 
     84        QStringList imgFilter, multiFilter; //image/multimedia filters 
    6985        QSettings *settings; 
    7086        QShortcut *nextTabLShort, *nextTabRShort, *closeTabShort, *copyFilesShort, *pasteFilesShort, *deleteFilesShort; 
     
    8399        bool checkUserPerms(); 
    84100        QString bytesToText(qint64 bytes); 
     101        QString msToText(qint64 ms); 
    85102         
    86103        //Common functions for browser info/usage 
     
    149166        void restoreItems(); 
    150167         
     168        //Multimedia Player Functions 
     169        void playerStart(); 
     170        void playerStop(); 
     171        void playerPause(); 
     172        void playerNext(); 
     173        void playerPrevious(); 
     174        void playerFinished(); 
     175        void playerStateChanged(Phonon::State newstate, Phonon::State oldstate); 
     176        void playerTimeChanged(qint64 ctime); 
     177        void playerFileChanged(); 
     178         
    151179        //Context Menu Actions 
    152180         // - single item actions 
  • lumina/lumina-fm/MainUI.ui

    r47e93bde r4333764  
    2222     <widget class="QStackedWidget" name="stackedWidget"> 
    2323      <property name="currentIndex"> 
    24        <number>0</number> 
     24       <number>1</number> 
    2525      </property> 
    2626      <widget class="QWidget" name="page_browser"> 
     
    3030          <item> 
    3131           <widget class="QListWidget" name="list_dir_widget"> 
     32            <property name="contextMenuPolicy"> 
     33             <enum>Qt::CustomContextMenu</enum> 
     34            </property> 
    3235            <property name="selectionMode"> 
    3336             <enum>QAbstractItemView::ExtendedSelection</enum> 
    3437            </property> 
     38            <property name="textElideMode"> 
     39             <enum>Qt::ElideRight</enum> 
     40            </property> 
    3541            <property name="isWrapping" stdset="0"> 
    3642             <bool>true</bool> 
    3743            </property> 
     44            <property name="resizeMode"> 
     45             <enum>QListView::Adjust</enum> 
     46            </property> 
     47            <property name="spacing"> 
     48             <number>1</number> 
     49            </property> 
    3850            <property name="uniformItemSizes"> 
     51             <bool>true</bool> 
     52            </property> 
     53            <property name="batchSize"> 
     54             <number>100</number> 
     55            </property> 
     56            <property name="wordWrap"> 
    3957             <bool>true</bool> 
    4058            </property> 
     
    5472            <property name="iconSize"> 
    5573             <size> 
    56               <width>20</width> 
    57               <height>20</height> 
     74              <width>22</width> 
     75              <height>22</height> 
    5876             </size> 
    5977            </property> 
     
    267285             <string notr="true">prev</string> 
    268286            </property> 
    269            </widget> 
    270           </item> 
    271           <item> 
    272            <widget class="QComboBox" name="comboBox"> 
     287            <property name="autoRaise"> 
     288             <bool>true</bool> 
     289            </property> 
     290           </widget> 
     291          </item> 
     292          <item> 
     293           <widget class="QComboBox" name="combo_player_list"> 
    273294            <property name="sizePolicy"> 
    274295             <sizepolicy hsizetype="Expanding" vsizetype="Fixed"> 
     
    284305             <string notr="true">next</string> 
    285306            </property> 
     307            <property name="autoRaise"> 
     308             <bool>true</bool> 
     309            </property> 
    286310           </widget> 
    287311          </item> 
     
    289313        </item> 
    290314        <item> 
    291          <layout class="QHBoxLayout" name="horizontalLayout_5"> 
    292           <item> 
    293            <widget class="QLabel" name="label_player_video"> 
     315         <layout class="QHBoxLayout" name="videoLayout"> 
     316          <item> 
     317           <widget class="QLabel" name="label_player_novideo"> 
    294318            <property name="sizePolicy"> 
    295              <sizepolicy hsizetype="Preferred" vsizetype="Expanding"> 
     319             <sizepolicy hsizetype="Expanding" vsizetype="Expanding"> 
    296320              <horstretch>0</horstretch> 
    297321              <verstretch>0</verstretch> 
    298322             </sizepolicy> 
    299323            </property> 
    300             <property name="text"> 
    301              <string notr="true">Video Player Area (Not Implemented yet)</string> 
     324            <property name="font"> 
     325             <font> 
     326              <pointsize>13</pointsize> 
     327              <weight>75</weight> 
     328              <bold>true</bold> 
     329             </font> 
     330            </property> 
     331            <property name="styleSheet"> 
     332             <string notr="true">background: black; color: white;</string> 
     333            </property> 
     334            <property name="text"> 
     335             <string>(No Running Video)</string> 
    302336            </property> 
    303337            <property name="alignment"> 
     
    309343        </item> 
    310344        <item> 
    311          <layout class="QHBoxLayout" name="horizontalLayout_6"> 
     345         <layout class="QHBoxLayout" name="videoControlLayout"> 
    312346          <item> 
    313347           <widget class="QToolButton" name="tool_player_play"> 
     
    315349             <string notr="true">play</string> 
    316350            </property> 
     351            <property name="autoRaise"> 
     352             <bool>true</bool> 
     353            </property> 
    317354           </widget> 
    318355          </item> 
     
    322359             <string notr="true">pause</string> 
    323360            </property> 
     361            <property name="autoRaise"> 
     362             <bool>true</bool> 
     363            </property> 
    324364           </widget> 
    325365          </item> 
     
    328368            <property name="text"> 
    329369             <string notr="true">stop</string> 
     370            </property> 
     371            <property name="autoRaise"> 
     372             <bool>true</bool> 
    330373            </property> 
    331374           </widget> 
     
    345388          </item> 
    346389          <item> 
    347            <widget class="QToolButton" name="tool_player_reverse"> 
    348             <property name="text"> 
    349              <string notr="true">reverse</string> 
    350             </property> 
    351            </widget> 
    352           </item> 
    353           <item> 
    354            <widget class="QSlider" name="slider_player_runtime"> 
    355             <property name="orientation"> 
    356              <enum>Qt::Horizontal</enum> 
    357             </property> 
    358            </widget> 
    359           </item> 
    360           <item> 
    361390           <widget class="QLabel" name="label_player_runstats"> 
    362391            <property name="text"> 
    363392             <string notr="true">?/?</string> 
    364             </property> 
    365            </widget> 
    366           </item> 
    367           <item> 
    368            <widget class="QToolButton" name="tool_player_forward"> 
    369             <property name="text"> 
    370              <string notr="true">forward</string> 
    371393            </property> 
    372394           </widget> 
  • lumina/lumina-fm/lumina-fm.pro

    rbb3f61c r4333764  
    11 
    2 QT       += core gui 
     2QT       += core gui phonon 
    33 
    44TARGET = lumina-fm 
  • lumina/lumina-fm/main.cpp

    r58138a3 r4333764  
    3030    } 
    3131    #endif 
     32    a.setApplicationName("Insight File Manager"); 
    3233    QTranslator translator; 
    3334    QLocale mylocale; 
Note: See TracChangeset for help on using the changeset viewer.