// // C++ Implementation: // // Description: // // // Author: Jean-Michel PETIT , (C) 2006 // // Copyright: See COPYING file that comes with this distribution // // #include "k9playbackoptions.h" #include "k9config.h" #include #include k9PlaybackOptions::k9PlaybackOptions(k9Main *mainWindow, TQWidget* parent, const char* name, WFlags fl) : PlaybackOptionsw(parent,name,fl) { setMain( mainWindow); m_main->setPlaybackOptions(this); enable(false); bSeqUp->setPixmap(SmallIcon("1uparrow")); bSeqDown->setPixmap(SmallIcon("1downarrow")); k9Config config; ckMenu->setChecked(config.getKeepMenus()); ckMenuClick(); } k9PlaybackOptions::~k9PlaybackOptions() { } /*$SPECIALIZATION$*/ void k9PlaybackOptions::setMain(k9Main* _value) { m_main = _value; m_dvd=m_main->dvd; } void k9PlaybackOptions::fillTitleList() { TQString txt=lbSequence->currentText(); lbSequence->clear(); k9DVDTitle *title=m_dvd->getstart(); bool found=title !=NULL; //Reconstitution de l'ordre de lecture à partir des titres du DVD while (found) { if (title->isSelected()) { lbItem *item=new lbItem(lbSequence,title->getname()); item->setTitle(title); if (title->getname()==txt) lbSequence->setCurrentItem(item); } title=title->getnextTitle(); found=title!=NULL; } for (int i=0;igettitleCount();i++) { k9DVDTitle* l_track=m_dvd->gettitle(i); if (l_track->getIndexed()) { TQString sTitle=l_track->getname(); if(l_track->isSelected()) { bool foundtitle=false; for (uint j=0; jcount();j++) { lbItem *tmp=(lbItem*)lbSequence->item(j); if (tmp->getTitle() == l_track) foundtitle=true; } if (!foundtitle) { lbItem *item=new lbItem(lbSequence,sTitle); item->setTitle(l_track); if (sTitle==txt) lbSequence->setCurrentItem(item); } } } } if (lbSequence->currentItem()==-1) lbSequence->setCurrentItem(0); setSequence(); enable(!ckMenu->isChecked() ); } void k9PlaybackOptions::ckMenuClick() { if (m_main!=NULL) { enable((!ckMenu->isChecked()) && m_dvd->getopened()); m_main->updateFactor(); } else enable(false); } void k9PlaybackOptions::bSeqUpClick() { int cur=lbSequence->currentItem(); if (cur >0) { lbItem *lbi=(lbItem*)lbSequence->item(cur); lbSequence->takeItem(lbi); lbSequence->insertItem(lbi,cur-1); lbSequence->setCurrentItem(lbi); } setSequence(); } void k9PlaybackOptions::bSeqDownClick() { uint cur=lbSequence->currentItem(); if (cur count()) { lbItem *lbi=(lbItem*)lbSequence->item(cur); lbSequence->takeItem(lbi); lbSequence->insertItem(lbi,cur+1); lbSequence->setCurrentItem(lbi); } setSequence(); } void k9PlaybackOptions::setSequence() { for (int i=0;i gettitleCount();i++) m_dvd->gettitle(i)->setnextTitle( NULL); lbItem *lbi = (lbItem*)lbSequence->item(lbSequence->topItem()); if (lbi !=NULL) { lbItem *lbi2; m_dvd->setstart(lbi->getTitle()); for (uint i=0 ; i < lbSequence->count()-1;i++) { lbi=(lbItem*)lbSequence->item(i); lbi2=(lbItem*)lbSequence->item(i+1); lbi->getTitle()->setnextTitle(lbi2->getTitle()); } } } void k9PlaybackOptions::lbSequenceChanged(TQListBoxItem *_item) { if (_item == NULL) return; lbItem *lbi=(lbItem*) _item; k9DVDTitle *title=lbi->getTitle(); cbDefAudio->clear(); cbDefSub->clear(); lstAudioDef.clear(); lstSubDef.clear(); cbDefAudio->insertItem(i18n("default")); lstAudioDef.append(NULL); cbDefSub->insertItem(i18n("none")); lstSubDef.append(NULL); for (int i=0;i < title->getaudioStreamCount();i++) { if (title->getaudioStream(i)->getselected()) { // if ( !title->getDefAudioSet()) // title->setDefAudio(title->getaudioStream(i)); cbDefAudio->insertItem( TQString("%1 - %2").arg(title->getaudioStream(i)->getID()).arg(title->getaudioStream(i)->getlanguage())); if (title->getaudioStream(i)==title->getDefAudio()) { cbDefAudio->setCurrentItem(cbDefAudio->count()-1); } lstAudioDef.append(title->getaudioStream(i)); } } for (int i=0;i < title->getsubPictureCount();i++) { if (title->getsubtitle(i)->getselected()) { TQPixmap icon; cbDefSub->insertItem(TQString("%1 - %2").arg(title->getsubtitle(i)->getID().first()).arg(title->getsubtitle(i)->getlanguage())); if (title->getsubtitle(i)==title->getDefSubtitle()) { cbDefSub->setCurrentItem(cbDefSub->count()-1); } lstSubDef.append(title->getsubtitle(i)); } } } void k9PlaybackOptions::cbDefAudioActivated(int _index) { int cur=lbSequence->currentItem(); lbItem *lbi=(lbItem*)lbSequence->item(cur); lbi->getTitle()->setDefAudio(lstAudioDef.at(_index)); } void k9PlaybackOptions::cbDefSubActivated(int _index) { int cur=lbSequence->currentItem(); lbItem *lbi=(lbItem*)lbSequence->item(cur); lbi->getTitle()->setDefSubtitle(lstSubDef.at(_index)); } void k9PlaybackOptions::titleRenamed (k9DVDTitle *_title, TQString _newName) { for (uint j=0; jcount();j++) { lbItem *tmp=(lbItem*)lbSequence->item(j); if (tmp->getTitle() == _title) { lbItem *item=new lbItem(NULL,_newName); item->setTitle(_title); lbSequence->changeItem(item,j); break; } } } bool k9PlaybackOptions::withMenus() { return ckMenu->isChecked(); } void k9PlaybackOptions::setwithMenus(bool _value) { ckMenu->setChecked(_value); } void k9PlaybackOptions::enable(bool _value) { frPlayback->setEnabled(_value); } void k9PlaybackOptions::clear() { lbSequence->clear(); enable(false); } #include "k9playbackoptions.moc"