20#include <tqlistview.h>
21#include <tqpushbutton.h>
24#include <tqstringlist.h>
26#include "kexiproject.h"
27#include "kexiprojecthandler.h"
28#include "kexiprojecthandleritem.h"
29#include "kexidataprovider.h"
30#include "kexifilterdlg.h"
31#include "kexiquerydesignersqleditor.h"
33KexiFilterDlg::KexiFilterDlg(
KexiProject *project, TQWidget *parent,
const char *name)
34 : TQDialog(parent, name)
38 TQHBoxLayout *lbraces =
new TQHBoxLayout(0, 0, 4);
40 TQPushButton *bsBO = createMiniButton(
"[");
41 TQPushButton *bBO = createMiniButton(
"(");
42 TQPushButton *bBC = createMiniButton(
")");
43 TQPushButton *bsBC = createMiniButton(
"]");
44 lbraces->addWidget(bsBO);
45 lbraces->addWidget(bBO);
46 lbraces->addWidget(bBC);
47 lbraces->addWidget(bsBC);
49 TQHBoxLayout *lcond =
new TQHBoxLayout(0, 0, 4);
50 TQPushButton *blt = createMiniButton(
"<");
51 TQPushButton *beq = createMiniButton(
"=");
52 TQPushButton *bgt = createMiniButton(
">");
53 TQPushButton *bp = createMiniButton(
"%");
54 lcond->addWidget(blt);
55 lcond->addWidget(beq);
56 lcond->addWidget(bgt);
59 TQHBoxLayout *lbool =
new TQHBoxLayout(0, 0, 4);
60 TQPushButton *bAnd =
new TQPushButton(
"AND",
this);
62 TQPushButton *bOr =
new TQPushButton(
"OR",
this);
64 TQPushButton *bLike =
new TQPushButton(
"LIKE",
this);
66 lbool->addWidget(bLike);
67 lbool->addWidget(bAnd);
68 lbool->addWidget(bOr);
70 m_catalog =
new TQListView(
this);
71 m_catalog->addColumn(
"a");
72 m_catalog->header()->hide();
76 setupCatalog(TQString(
"kexi/table"));
78 TQGridLayout *g =
new TQGridLayout(
this);
80 g->addMultiCellWidget(e, 0, 0, 0, 2);
81 g->addItem(lbraces, 1, 0);
82 g->addItem(lcond, 1, 1);
83 g->addItem(lbool, 1, 2);
84 g->addMultiCellWidget(m_catalog, 2, 2, 0, 2);
88KexiFilterDlg::createMiniButton(
const TQString &text)
90 TQPushButton *p =
new TQPushButton(text,
this);
92 p->setMaximumSize(TQSize(20, 300));
98KexiFilterDlg::setupCatalog(
const TQStringList &mimes)
101 m_catalog->setRootIsDecorated(
true);
102 TQStringList::ConstIterator it, end( mimes.constEnd() );
103 for( it = mimes.constBegin(); it != end; ++it)
105 KexiProjectHandler *h = m_project->handlerForMime(*it);
108 TQListViewItem *base =
new TQListViewItem(m_catalog, h->name());
109 base->setPixmap(0, h->groupPixmap());
111 TQDictIterator<KexiProjectHandlerItem> iit(*h->items());
112 for(; iit.current(); ++iit )
114 TQListViewItem *bi =
new TQListViewItem(base, iit.current()->name());
115 bi->setPixmap(0, h->itemPixmap());
117 KexiDataProvider *prov=KEXIDATAPROVIDER(h);
120 TQStringList fields = prov->fields(0, iit.current()->identifier());
121 TQStringList::ConstIterator fit, end( fields.constEnd() );
122 for( fit = fields.constBegin(); fit != end; ++fit)
124 TQListViewItem *bif =
new TQListViewItem(bi, (*fit));
133KexiFilterDlg::setupCatalog(
const TQString &mime)
141KexiFilterDlg::insert(TQListViewItem *)
145KexiFilterDlg::~KexiFilterDlg()
149#include "kexifilterdlg.moc"
A project's main controller.
Text editor for entering query statements.