Main Page | Namespace List | Class Hierarchy | Alphabetical List | Class List | Directories | File List | Namespace Members | Class Members | File Members | Related Pages

nationalcfgwidget.cpp

Go to the documentation of this file.
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  *  Constructs a NationalHolidayConfig which is a child of 'parent', with the
00021  *  name 'name' and widget flags set to 'f'
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     // signals and slots connections
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  *  Destroys the object and frees any allocated resources
00075  */
00076 NationalHolidayConfigWidget::~NationalHolidayConfigWidget()
00077 {
00078     // no need to delete child widgets, Qt does it all for us
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 

Generated on Sat Nov 5 16:15:48 2005 for OPIE by  doxygen 1.4.2