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.16 2003/06/24 06:58:33 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     fConduitName=i18n("Expense");
00090 }
00091 
00092 ExpenseWidgetSetup::~ExpenseWidgetSetup()
00093 {
00094     FUNCTIONSETUP;
00095 }
00096 
00097 /* virtual */ void ExpenseWidgetSetup::commitChanges()
00098 {
00099     FUNCTIONSETUP;
00100 
00101     if (!fConfig) return;
00102 
00103     KConfigGroupSaver s(fConfig,ExpenseConduitFactory::group());
00104 
00105     fConfig->writeEntry("CSVFileName",fConfigWidget->fCSVFilename->text());
00106 
00107     int m = getRotatePolicy();
00108     fConfig->writeEntry("CSVRotatePolicy",m);
00109     fConfig->writeEntry("CSVRotate",
00110         fConfigWidget->fRotateNumber->value());
00111 
00112     fConfig->writeEntry("DBServer",fConfigWidget->fDBServer->text());
00113     fConfig->writeEntry("DBlogin",fConfigWidget->fDBLogin->text());
00114     fConfig->writeEntry("DBpasswd",fConfigWidget->fDBPasswd->text());
00115     fConfig->writeEntry("DBname",fConfigWidget->fDBName->text());
00116     fConfig->writeEntry("DBtable",fConfigWidget->fDBTable->text());
00117 
00118     m = getDBPolicy();
00119     fConfig->writeEntry("DBTypePolicy",m);
00120 }
00121 
00122 /* virtual */ void ExpenseWidgetSetup::readSettings()
00123 {
00124     FUNCTIONSETUP;
00125 
00126     if (!fConfig) return;
00127 
00128     KConfigGroupSaver s(fConfig,ExpenseConduitFactory::group());
00129 
00130     fConfigWidget->fCSVFilename->setText(fConfig->readEntry("CSVFileName"));
00131     int m = fConfig->readNumEntry("CSVRotatePolicy",PolicyOverwrite);
00132     if (m == PolicyRotate)
00133     {
00134         m=PolicyAppend;
00135     }
00136     setRotatePolicy((RotatePolicy) m);
00137     fConfigWidget->fRotateNumber->setValue(fConfig->readNumEntry("CSVRotate",3));
00138 
00139     fConfigWidget->fDBServer ->setText(fConfig->readEntry("DBServer"));
00140     fConfigWidget->fDBLogin ->setText(fConfig->readEntry("DBlogin"));
00141     fConfigWidget->fDBPasswd ->setText(fConfig->readEntry("DBpasswd"));
00142     fConfigWidget->fDBName ->setText(fConfig->readEntry("DBname"));
00143     fConfigWidget->fDBTable ->setText(fConfig->readEntry("DBtable"));
00144     m = fConfig->readNumEntry("DBTypePolicy",PolicyNone);
00145     setDBPolicy((DBPolicy) m);
00146 }
00147 
00148 int ExpenseWidgetSetup::getRotatePolicy() const
00149 {
00150     FUNCTIONSETUP;
00151 
00152     int m = PolicyOverwrite;
00153     if (fConfigWidget->fAppend->isChecked()) m = PolicyAppend;
00154     if (fConfigWidget->fRotate->isChecked()) m = PolicyRotate;
00155 
00156     if ((m==PolicyOverwrite) && !fConfigWidget->fOverWrite->isChecked())
00157     {
00158         kdWarning() << k_funcinfo
00159             << ": Unknown policy button selected."
00160             << endl;
00161         return -1;
00162     }
00163 
00164     return m;
00165 }
00166 
00167 void ExpenseWidgetSetup::setRotatePolicy(RotatePolicy m)
00168 {
00169     FUNCTIONSETUP;
00170 
00171     switch(m)
00172     {
00173     case PolicyOverwrite :
00174         fConfigWidget->fOverWrite->setChecked(true);
00175         break;
00176     case PolicyAppend :
00177         fConfigWidget->fAppend->setChecked(true);
00178         break;
00179     case PolicyRotate :
00180         fConfigWidget->fRotate->setChecked(true);
00181         break;
00182     default :
00183         kdWarning() << k_funcinfo
00184             << ": Unknown rotate policy "
00185             << m
00186             << endl;
00187     }
00188     slotRotatePolicyChanged();
00189 }
00190 
00191 void ExpenseWidgetSetup::slotRotatePolicyChanged()
00192 {
00193     FUNCTIONSETUP;
00194 
00195     int m = getRotatePolicy();
00196     switch(m)
00197     {
00198     case PolicyOverwrite:
00199     case PolicyAppend:
00200         fConfigWidget->fRotateNumber->setEnabled(false);
00201         break;
00202     case PolicyRotate:
00203         fConfigWidget->fRotateNumber->setEnabled(true);
00204         break;
00205     default:
00206         kdWarning() << k_funcinfo
00207             << ": Unknown policy button selected -- "
00208             << m
00209             << endl;
00210     }
00211 }
00212 
00213 void ExpenseWidgetSetup::slotCSVBrowse()
00214 {
00215         FUNCTIONSETUP;
00216 
00217     QString fileName = KFileDialog::getOpenFileName(QString::null, CSL1("*.csv"));
00218     if(fileName.isNull()) return;
00219     fConfigWidget->fCSVFilename->setText(fileName);
00220 }
00221 
00222 int ExpenseWidgetSetup::getDBPolicy() const
00223 {
00224     int m = PolicyNone;
00225     if (fConfigWidget->fpostgresql->isChecked()) m = PolicyPostgresql;
00226     if (fConfigWidget->fmysql->isChecked()) m = PolicyMysql;
00227 
00228     if ((m==PolicyNone) && !fConfigWidget->fnone->isChecked())
00229     {
00230         kdWarning() << k_funcinfo
00231             << ": Unknown policy button selected."
00232             << endl;
00233         return -1;
00234     }
00235 
00236     return m;
00237 }
00238 
00239 void ExpenseWidgetSetup::setDBPolicy(DBPolicy m)
00240 {
00241     switch(m)
00242     {
00243     case PolicyNone :
00244         fConfigWidget->fnone->setChecked(true);
00245         break;
00246     case PolicyMysql :
00247         fConfigWidget->fmysql->setChecked(true);
00248         break;
00249     case PolicyPostgresql :
00250         fConfigWidget->fpostgresql->setChecked(true);
00251         break;
00252     default :
00253         kdWarning() << k_funcinfo
00254             << ": Unknown policy "
00255             << m
00256             << " for db."
00257             << endl;
00258     }
00259 }
00260 
00261 
00262 
00263 void ExpenseWidgetSetup::slotDBPolicyChanged()
00264 {
00265     FUNCTIONSETUP;
00266 
00267     int m = getDBPolicy();
00268     switch(m)
00269     {
00270     case PolicyOverwrite:
00271     case PolicyAppend:
00272         fConfigWidget->fRotateNumber->setEnabled(false);
00273         break;
00274     case PolicyRotate:
00275         fConfigWidget->fRotateNumber->setEnabled(true);
00276         break;
00277     default:
00278         kdWarning() << k_funcinfo
00279             << ": Unknown policy button selected -- "
00280             << m
00281             << endl;
00282     }
00283 }
KDE Logo
This file is part of the documentation for kpilot Library Version 3.2.2.
Documentation copyright © 1996-2004 the KDE developers.
Generated on Sat May 1 11:36:49 2004 by doxygen 1.2.15 written by Dimitri van Heesch, © 1997-2003