20#include "KWQtSqlSerialDataSource.h"
21#include "KWQtSqlSerialDataSource.moc"
22#include "KWQtSqlEasyFilter.h"
26#include <tqsqlcursor.h>
27#include <tqdatatable.h>
28#include <tqcheckbox.h>
29#include <tqsqlrecord.h>
30#include <tqsqlquery.h>
33#define KWQtSqlBarIcon( x ) BarIcon( x, db->KWInstance() )
41KWQtSqlSerialDataSource::KWQtSqlSerialDataSource(TDEInstance *inst,TQObject *parent)
42 : KWQtSqlSerialDataSourceBase(inst,parent)
47KWQtSqlSerialDataSource::~KWQtSqlSerialDataSource()
50 TQSqlDatabase::removeDatabase(
"KWTQTSQLPOWER");
54TQString KWQtSqlSerialDataSource::getValue(
const TQString &name,
int record )
const
58 if (!myquery)
return name;
59 if ( num < 0 || num > (
int)myquery->size() )
61 if (!myquery->seek(num,
false))
return i18n(
">>>Illegal position within datasource<<<");
62 if (!myquery->contains(name))
return i18n(
">>>Field %1 is unknown in the current database query<<<").arg(name);
63 return (myquery->value(name)).toString();
66void KWQtSqlSerialDataSource::save( TQDomDocument & , TQDomElement & )
94void KWQtSqlSerialDataSource::load( TQDomElement& )
120bool KWQtSqlSerialDataSource::showConfigDialog(TQWidget *par,
int action)
123 if (action==KWSLEdit)
125 KWQtSqlDataSourceEditor *dia=
new KWQtSqlDataSourceEditor(par,
this);
129 else ret=KWQtSqlSerialDataSourceBase::showConfigDialog(par,action);
134void KWQtSqlSerialDataSource::refresh(
bool force)
136 if ((force) || (myquery==0))
143 if ((!database) || (!database->isOpen())) openDatabase();
144 if ((!database) || (!database->isOpen()))
return;
145 myquery=
new TQSqlCursor(tableName,
true,database);
146 myquery->setMode(TQSqlCursor::ReadOnly);
147 myquery->select(filter);
149 kdDebug()<<TQString(
"There were %1 rows in the query").arg(myquery->size())<<endl;
165KWQtSqlDataSourceEditor::KWQtSqlDataSourceEditor( TQWidget *parent, KWQtSqlSerialDataSource *db_ )
166 :KDialogBase( Plain, i18n(
"Mail Merge - Editor" ), Ok | Cancel, Ok, parent,
"", true ), db( db_ )
168 tableName=db->tableName;
170 (
new TQVBoxLayout(plainPage()))->setAutoAdd(
true);
171 setMainWidget(widget=
new QtSqlDataSourceEditor(plainPage()));
172 connect(widget->tableCombo,TQ_SIGNAL(activated(
int)),
this,TQ_SLOT(tableChanged(
int)));
173 connect(widget->editFilter,TQ_SIGNAL(clicked()),
this,TQ_SLOT(editFilter()));
179void KWQtSqlDataSourceEditor::tableChanged(
int item)
181 tableName=widget->tableCombo->text(item);
182 TQSqlCursor *tmpCursor=
new TQSqlCursor(tableName,
true,db->database);
183 tmpCursor->setMode(TQSqlCursor::ReadOnly);
185 if (widget->filterCheckBox->isChecked()) tmpCursor->select(filter);
187 widget->DataTable->setSqlCursor(tmpCursor,
true,
true);
188 widget->DataTable->refresh(TQDataTable::RefreshAll);
191void KWQtSqlDataSourceEditor::updateTableCombo()
193 widget->tableCombo->clear();
194 if (!db->database)
return;
195 widget->tableCombo->insertItem(
"");
196 widget->tableCombo->insertStringList(db->database->tables());
199void KWQtSqlDataSourceEditor::slotSetQuery()
201 db->tableName=tableName;
207void KWQtSqlDataSourceEditor::editFilter()
209 KWQtSqlEasyFilter *f=
new KWQtSqlEasyFilter(
static_cast<TQWidget*
>(parent()));
214 KWORD_MAILMERGE_EXPORT KWMailMergeDataSource *create_kwmailmerge_qtsqldb(TDEInstance *inst,TQObject *parent)
216 return new KWQtSqlSerialDataSource(inst,parent);