kword

KWQtSqlEasyFilter.cpp

00001 #include "KWQtSqlEasyFilter.h"
00002 #include "KWQtSqlEasyFilter.moc"
00003 #include <qtable.h>
00004 #include <qscrollview.h>
00005 #include <klocale.h>
00006 #include <qlayout.h>
00007 #include <qcheckbox.h>
00008 
00009 KWQtSqlEasyFilter::KWQtSqlEasyFilter( QWidget *parent)
00010         :KDialogBase( Swallow, i18n( "Mail Merge - Editor" ), Ok | Cancel, Ok, parent, "", true)
00011 {
00012        m_fieldList << "" <<"one" << "two" << "three" << "four";
00013        m_sortingList << ""<<i18n("ascending")<<i18n("descending");
00014        m_operationList <<"="<<i18n("contains")<< "<" << ">";
00015 
00016     m_table=new QTable(6,3,this);
00017     setMainWidget(m_table);
00018         
00019     m_table->verticalHeader()->setLabel(0,i18n("Field"));
00020     m_table->verticalHeader()->setLabel(1,i18n("Sorting Order"));
00021     m_table->verticalHeader()->setLabel(2,i18n("Include"));
00022     m_table->verticalHeader()->setLabel(3,i18n("Operator"));
00023     m_table->verticalHeader()->setLabel(4,i18n("Condition"));
00024     m_table->verticalHeader()->setLabel(5,i18n("Value"));
00025     m_table->setSelectionMode(QTable::NoSelection);
00026         m_table->setColumnMovingEnabled(true);
00027     m_table->setSorting(false);
00028 
00029     for (int i=0; i<3; i++)
00030     {
00031         createColumn(i);    
00032     }
00033 
00034     int h=m_table->rowHeight(0);
00035     for (int i=0;i<6;i++) h+=m_table->rowHeight(i);
00036     h+=m_table->horizontalHeader()->sizeHint().height();
00037     m_table->setMinimumHeight(h);
00038     
00039     int w=0;
00040     for (int i=0;i<3;i++) w+=m_table->columnWidth(i);
00041     w+=m_table->verticalHeader()->headerWidth();
00042     m_table->setMinimumWidth(w);
00043     connect(m_table,SIGNAL(valueChanged ( int, int)),this,SLOT(slotValueChanged ( int, int)));
00044 }
00045 
00046 void KWQtSqlEasyFilter::createColumn(int i)
00047 {
00048     QTableItem *it;
00049     m_table->setItem(0,i,it=new QComboTableItem(m_table,m_fieldList,false));
00050     m_table->setItem(1,i,it=new QComboTableItem(m_table,m_sortingList,false));
00051     it->setEnabled(false);
00052     m_table->setItem(2,i,it=new QCheckTableItem(m_table,i18n("Yes")));
00053     it->setEnabled(false);
00054     m_table->setItem(3,i,it=new QCheckTableItem(m_table,i18n("NOT")));
00055     it->setEnabled(false);
00056     m_table->setItem(4,i,it=new QComboTableItem(m_table,m_operationList,false));        
00057     it->setEnabled(false);
00058     m_table->setItem(5,i,it=new QTableItem(m_table,QTableItem::WhenCurrent,""));        
00059     it->setEnabled(false);
00060     m_table->ensureCellVisible(0,i);
00061 }
00062 
00063 
00064 void KWQtSqlEasyFilter::slotValueChanged ( int row, int col )
00065 {
00066     switch (row)
00067     {
00068         case 0: 
00069             if ( !m_table->item(row,col)->text().isEmpty() )
00070             {
00071                 if (col==m_table->numCols()-1)
00072                 {
00073                     m_table->insertColumns(col+1,1);
00074                     createColumn(col+1);
00075                 }
00076                 m_table->item(1,col)->setEnabled(true);
00077                 m_table->item(2,col)->setEnabled(true);
00078                 bool enableSearch=(static_cast<QCheckTableItem*>(m_table->item(2,col))->isChecked());
00079                 m_table->item(3,col)->setEnabled(enableSearch);
00080                 m_table->item(4,col)->setEnabled(enableSearch);
00081                 m_table->item(5,col)->setEnabled(enableSearch);
00082             }
00083             else
00084             {
00085                 for (int i=1;i<6;i++)   m_table->item(i,col)->setEnabled(false);
00086             }
00087             break;
00088         case 2:
00089             bool enSearch=static_cast<QCheckTableItem*>(m_table->item(row,col))->isChecked();
00090             m_table->item(3,col)->setEnabled(enSearch);
00091             m_table->item(4,col)->setEnabled(enSearch);
00092             m_table->item(5,col)->setEnabled(enSearch);
00093             break;
00094     }
00095 }
00096 
00097 KWQtSqlEasyFilter::~KWQtSqlEasyFilter(){;}
00098 
KDE Home | KDE Accessibility Home | Description of Access Keys