00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
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
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
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 }