You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
kaffeine/kaffeine/src/input/dvb/broadcasteditor.cpp

133 lines
3.6 KiB

/*
* broadcasteditor.cpp
*
* Copyright (C) 2005 Christophe Thommeret <hftom@free.fr>
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA
*/
#include <tqdir.h>
#include <tqvaluelist.h>
#include <kpushbutton.h>
#include <kiconloader.h>
#include <tdelocale.h>
#include "broadcasteditor.h"
BroadcastEditor::BroadcastEditor( TQWidget *parent, TQPtrList<ChannelDesc> *ch, TQPtrList<ChannelDesc> *ret ) : BroadcastEditorUI( parent )
{
TDEIconLoader *icon = new TDEIconLoader();
tvPix = icon->loadIcon( "kdvbtv", TDEIcon::Small );
tvcPix = icon->loadIcon( "kdvbtvc", TDEIcon::Small );
raPix = icon->loadIcon( "kdvbra", TDEIcon::Small );
racPix = icon->loadIcon( "kdvbrac", TDEIcon::Small );
addBtn->setGuiItem( KGuiItem(i18n("Add"), icon->loadIconSet("forward", TDEIcon::Small) ) );
resetBtn->setGuiItem( KGuiItem(i18n("Reset"), icon->loadIconSet("reload", TDEIcon::Small) ) );
cancelBtn->setGuiItem( KGuiItem(i18n("Cancel"), icon->loadIconSet("cancel", TDEIcon::Small) ) );
okBtn->setGuiItem( KGuiItem(i18n("OK"), icon->loadIconSet("ok", TDEIcon::Small) ) );
connect( channelLb, TQ_SIGNAL(doubleClicked(TQListBoxItem*)), this, TQ_SLOT(slotAddChannel(TQListBoxItem*)) );
chan = ch;
list = ret;
resetList();
delete icon;
}
BroadcastEditor::~BroadcastEditor()
{
}
ChannelDesc* BroadcastEditor::getChannel( const TQString &name )
{
int i;
for ( i=0; i<(int)chan->count(); i++ ) {
if ( chan->at(i)->name==name ) return chan->at(i);
}
return 0;
}
void BroadcastEditor::slotAddChannel(TQListBoxItem*)
{
addToList();
}
void BroadcastEditor::addToList()
{
int i;
TQString curName;
TQValueList<TQListBoxItem*> qvl;
ChannelDesc *c=0, *d=0;
for ( i=0; i<(int)channelLb->count(); i++ ) {
if ( channelLb->isSelected(i) ) {
curName = channelLb->text(i);
c = getChannel( curName );
if ( !c ) continue;
broadcastLb->insertItem( *channelLb->pixmap(i), channelLb->text(i) );
list->append( c );
qvl.append(channelLb->item(i));
}
}
if ( !c ) return;
for ( i=0; i<(int)qvl.count(); i++ ) channelLb->takeItem( qvl[i] );
qvl.clear();
for ( i=0; i<(int)channelLb->count(); i++ ) {
d = getChannel( channelLb->text(i) );
if ( !d ) continue;
if ( d->tp!=c->tp ) qvl.append(channelLb->item(i));
}
for ( i=0; i<(int)qvl.count(); i++ ) channelLb->takeItem( qvl[i] );
channelLb->setSelectionMode( TQListBox::Extended );
}
bool BroadcastEditor::getChannelList()
{
int i;
ChannelDesc *c;
for ( i=0; i<(int)chan->count(); i++ ) {
c = chan->at(i);
if ( c->fta ) {
if ( c->type==1 ) channelLb->insertItem( tvcPix, c->name );
else channelLb->insertItem( racPix, c->name );
}
else {
if ( c->type==1 ) channelLb->insertItem( tvPix, c->name );
else channelLb->insertItem( raPix, c->name );
}
}
return true;
}
void BroadcastEditor::resetList()
{
addBtn->setEnabled( true );
channelLb->clear();
broadcastLb->clear();
list->clear();
getChannelList();
channelLb->sort();
channelLb->setSelectionMode( TQListBox::Single );
}
#include "broadcasteditor.moc"