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.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 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 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 }
This file is part of the documentation for kdelibs Version 3.1.4.