00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
#include <qlayout.h>
00022
#include <qstring.h>
00023
00024
#include <klistview.h>
00025
#include <klocale.h>
00026
#include <kmessagebox.h>
00027
00028
#include "engine.h"
00029
#include "provider.h"
00030
00031
#include "providerdialog.h"
00032
#include "providerdialog.moc"
00033
00034
using namespace KNS;
00035
00036
class ProviderItem :
public KListViewItem
00037 {
00038
public:
00039 ProviderItem( KListView *parent,
Provider *provider ) :
00040 KListViewItem( parent ), mProvider( provider )
00041 {
00042 setText( 0, provider->
name() );
00043 }
00044
00045
Provider *provider() {
return mProvider; }
00046
00047
private:
00048
Provider *mProvider;
00049 };
00050
00051 ProviderDialog::ProviderDialog(
Engine *engine,
QWidget *parent ) :
00052 KDialogBase( Plain, i18n(
"Hot New Stuff Providers"), Ok | Cancel, Cancel,
00053 parent, 0, false, true ),
00054 mEngine( engine )
00055 {
00056
QFrame *topPage = plainPage();
00057
00058
QBoxLayout *topLayout =
new QVBoxLayout( topPage );
00059
00060 mListView =
new KListView( topPage );
00061 mListView->addColumn( i18n(
"Name") );
00062 topLayout->
addWidget( mListView );
00063 }
00064
00065 void ProviderDialog::clear()
00066 {
00067 mListView->clear();
00068 }
00069
00070 void ProviderDialog::addProvider(
Provider *provider )
00071 {
00072
new ProviderItem( mListView, provider );
00073 }
00074
00075
void ProviderDialog::slotOk()
00076 {
00077 ProviderItem *item = static_cast<ProviderItem *>( mListView->selectedItem() );
00078
if ( !item ) {
00079 KMessageBox::error(
this, i18n(
"No provider selected.") );
00080
return;
00081 }
00082
00083 mEngine->
requestMetaInformation( item->provider() );
00084
00085 accept();
00086 }