holidays/configdialog.cpp
00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022 #include <qlayout.h>
00023 #include <qlabel.h>
00024 #include <qcombobox.h>
00025
00026 #include <klocale.h>
00027 #include <kstandarddirs.h>
00028 #include <ksimpleconfig.h>
00029 #include "holidaySettings.h"
00030
00031 #include "configdialog.h"
00032 #include "configdialog.moc"
00033
00034 ConfigDialog::ConfigDialog(QWidget *parent)
00035 : KDialogBase(Plain,i18n("Configure Holidays"),Ok|Cancel,Ok,parent)
00036 {
00037 QFrame *topFrame = plainPage();
00038 QVBoxLayout *topLayout = new QVBoxLayout(topFrame,0,spacingHint());
00039
00040 QLabel *label = new QLabel(i18n("Please select a holiday set:"),topFrame);
00041 topLayout->addWidget(label);
00042
00043 mHolidayCombo = new QComboBox(topFrame);
00044 topLayout->addWidget(mHolidayCombo);
00045
00046 load();
00047 }
00048
00049 ConfigDialog::~ConfigDialog()
00050 {
00051 }
00052
00053 void ConfigDialog::load()
00054 {
00055 HolidaySettings::self()->readConfig();
00056 QString currentHoliday( HolidaySettings::holidays() );
00057
00058 QString currentHolidayName;
00059
00060 QStringList holidayList;
00061 QStringList countryList = KGlobal::dirs()->findAllResources("data",
00062 "korganizer/holiday_*", false, true);
00063 QStringList::ConstIterator it;
00064 for ( it = countryList.begin(); it != countryList.end(); ++it ) {
00065 QString country = (*it).mid((*it).findRev('_') + 1);
00066 QString countryFile = locate("locale","l10n/" + country + "/entry.desktop");
00067 QString countryName;
00068 if (!countryFile.isEmpty()) {
00069 KSimpleConfig cfg(countryFile);
00070 cfg.setGroup("KCM Locale");
00071 countryName = cfg.readEntry("Name");
00072 }
00073 if (countryName.isEmpty()) countryName = country;
00074
00075 mCountryMap[countryName] = country;
00076 holidayList << countryName;
00077
00078 if (country == currentHoliday) currentHolidayName = countryName;
00079 }
00080 holidayList.sort();
00081
00082 mHolidayCombo->insertStringList(holidayList);
00083
00084 for(int i=0;i<mHolidayCombo->count();++i) {
00085 if(mHolidayCombo->text(i) == currentHolidayName) {
00086 mHolidayCombo->setCurrentItem(i);
00087 break;
00088 }
00089 }
00090 }
00091
00092 void ConfigDialog::save()
00093 {
00094 QString currentHoliday = mCountryMap[mHolidayCombo->currentText()];
00095 HolidaySettings::setHolidays( currentHoliday );
00096 HolidaySettings::self()->writeConfig();
00097 }
00098
00099 void ConfigDialog::slotOk()
00100 {
00101 save();
00102
00103 accept();
00104 }
This file is part of the documentation for korganizer Library Version 3.3.2.