setupDialog.cc
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 }
This file is part of the documentation for kpilot Library Version 3.2.2.