kpilot Library API Documentation

setupDialog.cc

00001 /* setupDialog.cc                       KPilot
00002 **
00003 ** Copyright (C) 2000-2001 by Adriaan de Groot
00004 **
00005 ** This file is part of the Expense conduit.
00006 */
00007 
00008 /*
00009 ** This program is free software; you can redistribute it and/or modify
00010 ** it under the terms of the GNU General Public License as published by
00011 ** the Free Software Foundation; either version 2 of the License, or
00012 ** (at your option) any later version.
00013 **
00014 ** This program is distributed in the hope that it will be useful,
00015 ** but WITHOUT ANY WARRANTY; without even the implied warranty of
00016 ** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
00017 ** GNU General Public License for more details.
00018 **
00019 ** You should have received a copy of the GNU General Public License
00020 ** along with this program in a file called COPYING; if not, write to
00021 ** the Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston,
00022 ** MA 02111-1307, USA.
00023 */
00024 
00025 /*
00026 ** Bug reports and questions can be sent to kde-pim@kde.org
00027 */
00028 #include "options.h"
00029 
00030 static const char *setupDialog_id="$Id: setupDialog.cc,v 1.12.4.3 2003/03/12 23:31:11 adridg Exp $";
00031 
00032 
00033 #include <qtabwidget.h>
00034 #include <qspinbox.h>
00035 #include <qradiobutton.h>
00036 #include <qbuttongroup.h>
00037 #include <qlineedit.h>
00038 #include <qpushbutton.h>
00039 
00040 #include <kconfig.h>
00041 #include <kfiledialog.h>
00042 
00043 
00044 #include "expenseConduit.h"
00045 #include "expense-factory.h"
00046 
00047 #include "setupDialog.moc"
00048 
00049 ExpenseWidgetSetup::ExpenseWidgetSetup(QWidget *w, const char *n,
00050         const QStringList & a) :
00051         ConduitConfig(w,n,a)
00052 {
00053         FUNCTIONSETUP;
00054 
00055         fConfigWidget = new ExpenseWidget(widget());
00056         setTabWidget(fConfigWidget->tabWidget);
00057         addAboutPage(false,ExpenseConduitFactory::about());
00058         fConfigWidget->tabWidget->adjustSize();
00059         fConfigWidget->resize(fConfigWidget->tabWidget->size());
00060 
00061 #if defined(DEBUG) && !defined(NDEBUG)
00062         DEBUGCONDUIT << fname
00063                 << "Size of tabw="
00064                 << fConfigWidget->tabWidget->size().width()
00065                 << ","
00066                 << fConfigWidget->tabWidget->size().height()
00067                 << endl;
00068         DEBUGCONDUIT << fname
00069                 << "Size of conw="
00070                 << fConfigWidget->size().width()
00071                 << ","
00072                 << fConfigWidget->size().height()
00073                 << endl;
00074 #endif
00075 
00076         QObject::connect(fConfigWidget->fDatabaseType,SIGNAL(clicked(int)),
00077                 this,SLOT(slotDBPolicyChanged()));
00078         QObject::connect(fConfigWidget->fRotatePolicy,SIGNAL(clicked(int)),
00079                 this,SLOT(slotRotatePolicyChanged()));
00080                 
00081         QObject::connect(fConfigWidget->fCSVBrowse,SIGNAL(clicked()),
00082                 this,SLOT(slotCSVBrowse()));
00083 
00084         QSize s = fConfigWidget->size() + QSize(SPACING,SPACING);
00085         fConfigWidget->resize(s);
00086         fConfigWidget->setMinimumSize(s);
00087 
00088         (void) setupDialog_id;
00089 }
00090 
00091 ExpenseWidgetSetup::~ExpenseWidgetSetup()
00092 {
00093         FUNCTIONSETUP;
00094 }
00095 
00096 /* virtual */ void ExpenseWidgetSetup::commitChanges()
00097 {
00098         FUNCTIONSETUP;
00099 
00100         if (!fConfig) return;
00101 
00102         KConfigGroupSaver s(fConfig,ExpenseConduitFactory::group());
00103 
00104         fConfig->writeEntry("CSVFileName",fConfigWidget->fCSVFilename->text());
00105 
00106         int m = getRotatePolicy();
00107         fConfig->writeEntry("CSVRotatePolicy",m);
00108         fConfig->writeEntry("CSVRotate",
00109                 fConfigWidget->fRotateNumber->value());
00110 
00111         fConfig->writeEntry("DBServer",fConfigWidget->fDBServer->text());
00112         fConfig->writeEntry("DBlogin",fConfigWidget->fDBLogin->text());
00113         fConfig->writeEntry("DBpasswd",fConfigWidget->fDBPasswd->text());
00114         fConfig->writeEntry("DBname",fConfigWidget->fDBName->text());
00115         fConfig->writeEntry("DBtable",fConfigWidget->fDBTable->text());
00116 
00117         m = getDBPolicy();
00118         fConfig->writeEntry("DBTypePolicy",m);
00119 }
00120 
00121 /* virtual */ void ExpenseWidgetSetup::readSettings()
00122 {
00123         FUNCTIONSETUP;
00124 
00125         if (!fConfig) return;
00126 
00127         KConfigGroupSaver s(fConfig,ExpenseConduitFactory::group());
00128 
00129         fConfigWidget->fCSVFilename->setText(fConfig->readEntry("CSVFileName"));
00130         int m = fConfig->readNumEntry("CSVRotatePolicy",PolicyOverwrite);
00131         if (m == PolicyRotate)
00132         {
00133                 m=PolicyAppend;
00134         }
00135         setRotatePolicy((RotatePolicy) m);
00136         fConfigWidget->fRotateNumber->setValue(fConfig->readNumEntry("CSVRotate",3));
00137 
00138         fConfigWidget->fDBServer ->setText(fConfig->readEntry("DBServer"));
00139         fConfigWidget->fDBLogin ->setText(fConfig->readEntry("DBlogin"));
00140         fConfigWidget->fDBPasswd ->setText(fConfig->readEntry("DBpasswd"));
00141         fConfigWidget->fDBName ->setText(fConfig->readEntry("DBname"));
00142         fConfigWidget->fDBTable ->setText(fConfig->readEntry("DBtable"));
00143         m = fConfig->readNumEntry("DBTypePolicy",PolicyNone);
00144         setDBPolicy((DBPolicy) m);
00145 }
00146 
00147 int ExpenseWidgetSetup::getRotatePolicy() const
00148 {
00149         FUNCTIONSETUP;
00150 
00151         int m = PolicyOverwrite;
00152         if (fConfigWidget->fAppend->isChecked()) m = PolicyAppend;
00153         if (fConfigWidget->fRotate->isChecked()) m = PolicyRotate;
00154 
00155         if ((m==PolicyOverwrite) && !fConfigWidget->fOverWrite->isChecked())
00156         {
00157                 kdWarning() << k_funcinfo
00158                         << ": Unknown policy button selected."
00159                         << endl;
00160                 return -1;
00161         }
00162 
00163         return m;
00164 }
00165 
00166 void ExpenseWidgetSetup::setRotatePolicy(RotatePolicy m)
00167 {
00168         FUNCTIONSETUP;
00169 
00170         switch(m)
00171         {
00172         case PolicyOverwrite :
00173                 fConfigWidget->fOverWrite->setChecked(true);
00174                 break;
00175         case PolicyAppend :
00176                 fConfigWidget->fAppend->setChecked(true);
00177                 break;
00178         case PolicyRotate :
00179                 fConfigWidget->fRotate->setChecked(true);
00180                 break;
00181         default :
00182                 kdWarning() << k_funcinfo
00183                         << ": Unknown rotate policy "
00184                         << m
00185                         << endl;
00186         }
00187         slotRotatePolicyChanged();
00188 }
00189 
00190 void ExpenseWidgetSetup::slotRotatePolicyChanged()
00191 {
00192         FUNCTIONSETUP;
00193 
00194         int m = getRotatePolicy();
00195         switch(m)
00196         {
00197         case PolicyOverwrite:
00198         case PolicyAppend:
00199                 fConfigWidget->fRotateNumber->setEnabled(false);
00200                 break;
00201         case PolicyRotate:
00202                 fConfigWidget->fRotateNumber->setEnabled(true);
00203                 break;
00204         default:
00205                 kdWarning() << k_funcinfo
00206                         << ": Unknown policy button selected -- "
00207                         << m
00208                         << endl;
00209         }
00210 }
00211 
00212 void ExpenseWidgetSetup::slotCSVBrowse()
00213 {
00214         FUNCTIONSETUP;
00215 
00216         QString fileName = KFileDialog::getOpenFileName(QString::null, CSL1("*.csv"));
00217         if(fileName.isNull()) return;
00218         fConfigWidget->fCSVFilename->setText(fileName);
00219 }
00220 
00221 int ExpenseWidgetSetup::getDBPolicy() const
00222 {
00223         int m = PolicyNone;
00224         if (fConfigWidget->fpostgresql->isChecked()) m = PolicyPostgresql;
00225         if (fConfigWidget->fmysql->isChecked()) m = PolicyMysql;
00226 
00227         if ((m==PolicyNone) && !fConfigWidget->fnone->isChecked())
00228         {
00229                 kdWarning() << k_funcinfo
00230                         << ": Unknown policy button selected."
00231                         << endl;
00232                 return -1;
00233         }
00234 
00235         return m;
00236 }
00237 
00238 void ExpenseWidgetSetup::setDBPolicy(DBPolicy m)
00239 {
00240         switch(m)
00241         {
00242         case PolicyNone :
00243                 fConfigWidget->fnone->setChecked(true);
00244                 break;
00245         case PolicyMysql :
00246                 fConfigWidget->fmysql->setChecked(true);
00247                 break;
00248         case PolicyPostgresql :
00249                 fConfigWidget->fpostgresql->setChecked(true);
00250                 break;
00251         default :
00252                 kdWarning() << k_funcinfo
00253                         << ": Unknown policy "
00254                         << m
00255                         << " for db."
00256                         << endl;
00257         }
00258 }
00259 
00260 
00261 
00262 void ExpenseWidgetSetup::slotDBPolicyChanged()
00263 {
00264         FUNCTIONSETUP;
00265 
00266         int m = getDBPolicy();
00267         switch(m)
00268         {
00269         case PolicyOverwrite:
00270         case PolicyAppend:
00271                 fConfigWidget->fRotateNumber->setEnabled(false);
00272                 break;
00273         case PolicyRotate:
00274                 fConfigWidget->fRotateNumber->setEnabled(true);
00275                 break;
00276         default:
00277                 kdWarning() << k_funcinfo
00278                         << ": Unknown policy button selected -- "
00279                         << m
00280                         << endl;
00281         }
00282 }
KDE Logo
This file is part of the documentation for kdelibs Version 3.1.5.
Documentation copyright © 1996-2002 the KDE developers.
Generated on Sun Feb 15 11:40:44 2004 by doxygen 1.3.5 written by Dimitri van Heesch, © 1997-2001