00001 #include "nationalcfgwidget.h"
00002
00003 #include <opie2/odebug.h>
00004
00005 #include <qpe/config.h>
00006 #include <qpe/qpeapplication.h>
00007
00008 #include <qheader.h>
00009 #include <qlabel.h>
00010 #include <qlistview.h>
00011 #include <qpushbutton.h>
00012 #include <qlayout.h>
00013 #include <qvariant.h>
00014 #include <qtooltip.h>
00015 #include <qwhatsthis.h>
00016 #include <qheader.h>
00017 #include <qdir.h>
00018
00019
00020
00021
00022
00023 NationalHolidayConfigWidget::NationalHolidayConfigWidget( QWidget* parent, const char* name, WFlags fl )
00024 : Opie::Datebook::HolidayPluginConfigWidget( parent, name, fl )
00025 {
00026 if ( !name )
00027 setName( "NationalHolidayConfig" );
00028 resize( 206, 210 );
00029 setCaption( tr( "Select national config" ) );
00030 NationalHolidayConfigLayout = new QVBoxLayout( this );
00031 NationalHolidayConfigLayout->setSpacing( 2 );
00032 NationalHolidayConfigLayout->setMargin( 2 );
00033
00034 m_headLabel = new QLabel( this, "m_headLabel" );
00035 m_headLabel->setText( tr( "Select one or more configs to load" ) );
00036 m_headLabel->setAlignment( int( QLabel::AlignCenter ) );
00037 NationalHolidayConfigLayout->addWidget( m_headLabel );
00038
00039 m_Configlist = new QListView( this, "m_Configlist" );
00040 m_Configlist->addColumn( tr( "configfiles" ) );
00041 QWhatsThis::add( m_Configlist, tr( "List of found xml-files which may load." ) );
00042 NationalHolidayConfigLayout->addWidget( m_Configlist );
00043
00044
00045 connect( m_Configlist, SIGNAL( clicked(QListViewItem*) ), this, SLOT( listItemClicked(QListViewItem*) ) );
00046 init();
00047 }
00048
00049 void NationalHolidayConfigWidget::init()
00050 {
00051 m_Configlist->header()->hide();
00052 m_Configlist->setSorting(-1);
00053
00054 QString path = QPEApplication::qpeDir() + "etc/nationaldays";
00055 QDir dir( path, "*.xml" );
00056 QStringList list = dir.entryList();
00057 QStringList::Iterator it;
00058 Config cfg("nationaldays");
00059 cfg.setGroup("entries");
00060 files = cfg.readListEntry("files");
00061 QCheckListItem *pitem = 0;
00062
00063 for (it=list.begin();it!=list.end();++it) {
00064 pitem = new QCheckListItem(m_Configlist,(*it),QCheckListItem::CheckBox);
00065 if (files.find((*it)) != files.end()) {
00066 pitem->setOn(true);
00067 } else {
00068 pitem->setOn(false);
00069 }
00070 }
00071 }
00072
00073
00074
00075
00076 NationalHolidayConfigWidget::~NationalHolidayConfigWidget()
00077 {
00078
00079 }
00080
00081 void NationalHolidayConfigWidget::listItemClicked(QListViewItem*item)
00082 {
00083 if (!item) return;
00084 QCheckListItem*pitem = ((QCheckListItem*)item);
00085 QStringList::Iterator it = files.find(pitem->text(0));
00086 if (pitem->isOn()&&it==files.end()) {
00087 files.append(pitem->text(0));
00088 } else if (!pitem->isOn() && it!=files.end()) {
00089 files.remove(it);
00090 }
00091 }
00092
00093 void NationalHolidayConfigWidget::saveConfig()
00094 {
00095 Config cfg("nationaldays");
00096 cfg.setGroup("entries");
00097 cfg.writeEntry("files",files);
00098 }
00099