KWQtSqlEasyFilter.cpp
1#include "KWQtSqlEasyFilter.h"
2#include "KWQtSqlEasyFilter.moc"
3#include <tqtable.h>
4#include <tqscrollview.h>
5#include <tdelocale.h>
6#include <tqlayout.h>
7#include <tqcheckbox.h>
8
9KWQtSqlEasyFilter::KWQtSqlEasyFilter( TQWidget *parent)
10 :KDialogBase( Swallow, i18n( "Mail Merge - Editor" ), Ok | Cancel, Ok, parent, "", true)
11{
12 m_fieldList << "" <<"one" << "two" << "three" << "four";
13 m_sortingList << ""<<i18n("ascending")<<i18n("descending");
14 m_operationList <<"="<<i18n("contains")<< "<" << ">";
15
16 m_table=new TQTable(6,3,this);
17 setMainWidget(m_table);
18
19 m_table->verticalHeader()->setLabel(0,i18n("Field"));
20 m_table->verticalHeader()->setLabel(1,i18n("Sorting Order"));
21 m_table->verticalHeader()->setLabel(2,i18n("Include"));
22 m_table->verticalHeader()->setLabel(3,i18n("Operator"));
23 m_table->verticalHeader()->setLabel(4,i18n("Condition"));
24 m_table->verticalHeader()->setLabel(5,i18n("Value"));
25 m_table->setSelectionMode(TQTable::NoSelection);
26 m_table->setColumnMovingEnabled(true);
27 m_table->setSorting(false);
28
29 for (int i=0; i<3; i++)
30 {
31 createColumn(i);
32 }
33
34 int h=m_table->rowHeight(0);
35 for (int i=0;i<6;i++) h+=m_table->rowHeight(i);
36 h+=m_table->horizontalHeader()->sizeHint().height();
37 m_table->setMinimumHeight(h);
38
39 int w=0;
40 for (int i=0;i<3;i++) w+=m_table->columnWidth(i);
41 w+=m_table->verticalHeader()->headerWidth();
42 m_table->setMinimumWidth(w);
43 connect(m_table,TQ_SIGNAL(valueChanged ( int, int)),this,TQ_SLOT(slotValueChanged ( int, int)));
44}
45
46void KWQtSqlEasyFilter::createColumn(int i)
47{
48 TQTableItem *it;
49 m_table->setItem(0,i,it=new TQComboTableItem(m_table,m_fieldList,false));
50 m_table->setItem(1,i,it=new TQComboTableItem(m_table,m_sortingList,false));
51 it->setEnabled(false);
52 m_table->setItem(2,i,it=new TQCheckTableItem(m_table,i18n("Yes")));
53 it->setEnabled(false);
54 m_table->setItem(3,i,it=new TQCheckTableItem(m_table,i18n("NOT")));
55 it->setEnabled(false);
56 m_table->setItem(4,i,it=new TQComboTableItem(m_table,m_operationList,false));
57 it->setEnabled(false);
58 m_table->setItem(5,i,it=new TQTableItem(m_table,TQTableItem::WhenCurrent,""));
59 it->setEnabled(false);
60 m_table->ensureCellVisible(0,i);
61}
62
63
64void KWQtSqlEasyFilter::slotValueChanged ( int row, int col )
65{
66 switch (row)
67 {
68 case 0:
69 if ( !m_table->item(row,col)->text().isEmpty() )
70 {
71 if (col==m_table->numCols()-1)
72 {
73 m_table->insertColumns(col+1,1);
74 createColumn(col+1);
75 }
76 m_table->item(1,col)->setEnabled(true);
77 m_table->item(2,col)->setEnabled(true);
78 bool enableSearch=(static_cast<TQCheckTableItem*>(m_table->item(2,col))->isChecked());
79 m_table->item(3,col)->setEnabled(enableSearch);
80 m_table->item(4,col)->setEnabled(enableSearch);
81 m_table->item(5,col)->setEnabled(enableSearch);
82 }
83 else
84 {
85 for (int i=1;i<6;i++) m_table->item(i,col)->setEnabled(false);
86 }
87 break;
88 case 2:
89 bool enSearch=static_cast<TQCheckTableItem*>(m_table->item(row,col))->isChecked();
90 m_table->item(3,col)->setEnabled(enSearch);
91 m_table->item(4,col)->setEnabled(enSearch);
92 m_table->item(5,col)->setEnabled(enSearch);
93 break;
94 }
95}
96
97KWQtSqlEasyFilter::~KWQtSqlEasyFilter(){;}
98