/**********************************************************************
* * Copyright ( C ) 2005 - 2008 Trolltech ASA . All rights reserved .
* *
* * This file is part of TQt Designer .
* *
* * This file may be used under the terms of the GNU General
* * Public License versions 2.0 or 3.0 as published by the Free
* * Software Foundation and appearing in the files LICENSE . GPL2
* * and LICENSE . GPL3 included in the packaging of this file .
* * Alternatively you may ( at your option ) use any later version
* * of the GNU General Public License if such license has been
* * publicly approved by Trolltech ASA ( or its successors , if any )
* * and the KDE Free TQt Foundation .
* *
* * Please review the following information to ensure GNU General
* * Public Licensing requirements will be met :
* * http : //trolltech.com/products/qt/licenses/licensing/opensource/.
* * If you are unsure which license is appropriate for your use , please
* * review the following information :
* * http : //trolltech.com/products/qt/licenses/licensing/licensingoverview
* * or contact the sales department at sales @ trolltech . com .
* *
* * Licensees holding valid TQt Commercial licenses may use this file in
* * accordance with the TQt Commercial License Agreement provided with
* * the Software .
* *
* * This file is provided " AS IS " with NO WARRANTY OF ANY KIND ,
* * INCLUDING THE WARRANTIES OF DESIGN , MERCHANTABILITY AND FITNESS FOR
* * A PARTICULAR PURPOSE . Trolltech reserves all rights not granted
* * herein .
* *
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
# include "sqlformwizardimpl.h"
# include <qlistbox.h>
# include <qwidget.h>
# include <qcheckbox.h>
# include <qlineedit.h>
# include <qlabel.h>
# include <qgroupbox.h>
# include <qlayout.h>
# include <qregexp.h>
# include <qpushbutton.h>
# include <qmultilineedit.h>
# include <qlistview.h>
# include <qfeatures.h>
# include <qradiobutton.h>
# include <qspinbox.h>
# include <limits.h>
# ifndef QT_NO_SQL
# include <qdatatable.h>
# include <qdatabrowser.h>
# include <qdataview.h>
# include <qsqleditorfactory.h>
# include <qsqlindex.h>
# include <qsqlcursor.h>
# endif
SqlFormWizard : : SqlFormWizard ( TQUnknownInterface * aIface , TQWidget * w ,
TQWidget * parent , DesignerFormWindow * fw , const char * name , bool modal , WFlags fl )
: SqlFormWizardBase ( parent , name , modal , fl ) , widget ( w ) , appIface ( aIface ) ,
mode ( None )
{
appIface - > addRef ( ) ;
formWindow = fw ;
setFinishEnabled ( finishPage , TRUE ) ;
/* set mode of operation */
if ( : : qt_cast < TQDataTable * > ( widget ) ) {
setCaption ( " Data Table Wizard " ) ;
mode = Table ;
setAppropriate ( navigPage , FALSE ) ;
setAppropriate ( layoutPage , FALSE ) ;
checkBoxAutoEdit - > setChecked ( FALSE ) ;
} else if ( : : qt_cast < TQDataBrowser * > ( widget ) ) {
setCaption ( " Data Browser Wizard " ) ;
setAppropriate ( tablePropertiesPage , FALSE ) ;
mode = Browser ;
checkBoxAutoEdit - > setChecked ( TRUE ) ;
} else if ( : : qt_cast < TQDataView * > ( widget ) ) {
setCaption ( " Data View Wizard " ) ;
setAppropriate ( tablePropertiesPage , FALSE ) ;
setAppropriate ( navigPage , FALSE ) ;
setAppropriate ( sqlPage , FALSE ) ;
checkCreateFieldLayout - > hide ( ) ;
checkCreateButtonLayout - > hide ( ) ;
checkBoxAutoEdit - > hide ( ) ;
mode = View ;
}
connect ( nextButton ( ) , SIGNAL ( clicked ( ) ) , SLOT ( nextPageClicked ( ) ) ) ;
setupPage1 ( ) ;
}
SqlFormWizard : : ~ SqlFormWizard ( )
{
appIface - > release ( ) ;
}
void SqlFormWizard : : nextPageClicked ( )
{
if ( currentPage ( ) = = populatePage ) {
autoPopulate ( TRUE ) ;
}
}
void SqlFormWizard : : connectionSelected ( const TQString & c )
{
if ( ! appIface )
return ;
DesignerProject * proIface = ( DesignerProject * ) ( ( DesignerInterface * ) appIface ) - > currentProject ( ) ;
if ( ! proIface )
return ;
listBoxTable - > clear ( ) ;
TQPtrList < DesignerDatabase > databases = proIface - > databaseConnections ( ) ;
for ( DesignerDatabase * d = databases . first ( ) ; d ; d = databases . next ( ) ) {
if ( d - > name ( ) = = c | | ( d - > name ( ) = = " (default) " | | d - > name ( ) . isEmpty ( ) ) & & c = = " (default) " )
listBoxTable - > insertStringList ( d - > tables ( ) ) ;
}
setNextEnabled ( databasePage , ( listBoxTable - > currentItem ( ) > = 0 ) ) ;
}
void SqlFormWizard : : tableSelected ( const TQString & )
{
if ( listBoxTable - > currentItem ( ) > = 0 ) {
setNextEnabled ( databasePage , TRUE ) ;
} else {
setNextEnabled ( databasePage , FALSE ) ;
}
}
void SqlFormWizard : : autoPopulate ( bool populate )
{
DesignerProject * proIface = ( DesignerProject * ) ( ( DesignerInterface * ) appIface ) - > currentProject ( ) ;
if ( ! proIface )
return ;
TQPtrList < DesignerDatabase > databases = proIface - > databaseConnections ( ) ;
listBoxField - > clear ( ) ;
listBoxSortField - > clear ( ) ;
listBoxSelectedField - > clear ( ) ;
if ( populate ) {
for ( DesignerDatabase * d = databases . first ( ) ; d ; d = databases . next ( ) ) {
if ( d - > name ( ) = = listBoxConnection - > currentText ( ) | |
( ( d - > name ( ) = = " (default) " | | d - > name ( ) . isEmpty ( ) ) & &
listBoxConnection - > currentText ( ) = = " (default) " ) ) {
TQStringList lst = * d - > fields ( ) . find ( listBoxTable - > currentText ( ) ) ;
// remove primary index fields, if any
listBoxSortField - > insertStringList ( lst ) ;
d - > open ( FALSE ) ;
# ifndef QT_NO_SQL
TQSqlCursor tab ( listBoxTable - > currentText ( ) , TRUE , d - > connection ( ) ) ;
TQSqlIndex pIdx = tab . primaryIndex ( ) ;
for ( uint i = 0 ; i < pIdx . count ( ) ; i + + ) {
listBoxField - > insertItem ( pIdx . field ( i ) - > name ( ) ) ;
lst . remove ( pIdx . field ( i ) - > name ( ) ) ;
}
# endif
d - > close ( ) ;
listBoxSelectedField - > insertStringList ( lst ) ;
}
}
}
}
void SqlFormWizard : : fieldDown ( )
{
if ( listBoxSelectedField - > currentItem ( ) = = - 1 | |
listBoxSelectedField - > currentItem ( ) = = ( int ) listBoxSelectedField - > count ( ) - 1 | |
listBoxSelectedField - > count ( ) < 2 )
return ;
int index = listBoxSelectedField - > currentItem ( ) + 1 ;
TQListBoxItem * i = listBoxSelectedField - > item ( listBoxSelectedField - > currentItem ( ) ) ;
listBoxSelectedField - > takeItem ( i ) ;
listBoxSelectedField - > insertItem ( i , index ) ;
listBoxSelectedField - > setCurrentItem ( i ) ;
}
void SqlFormWizard : : fieldUp ( )
{
if ( listBoxSelectedField - > currentItem ( ) < = 0 | |
listBoxSelectedField - > count ( ) < 2 )
return ;
int index = listBoxSelectedField - > currentItem ( ) - 1 ;
TQListBoxItem * i = listBoxSelectedField - > item ( listBoxSelectedField - > currentItem ( ) ) ;
listBoxSelectedField - > takeItem ( i ) ;
listBoxSelectedField - > insertItem ( i , index ) ;
listBoxSelectedField - > setCurrentItem ( i ) ;
}
void SqlFormWizard : : removeField ( )
{
int i = listBoxSelectedField - > currentItem ( ) ;
if ( i ! = - 1 ) {
listBoxField - > insertItem ( listBoxSelectedField - > currentText ( ) ) ;
listBoxSelectedField - > removeItem ( i ) ;
}
}
void SqlFormWizard : : addField ( )
{
int i = listBoxField - > currentItem ( ) ;
if ( i = = - 1 )
return ;
TQString f = listBoxField - > currentText ( ) ;
if ( ! f . isEmpty ( ) )
listBoxSelectedField - > insertItem ( f ) ;
listBoxField - > removeItem ( i ) ;
}
void SqlFormWizard : : addSortField ( )
{
int i = listBoxSortField - > currentItem ( ) ;
if ( i = = - 1 )
return ;
TQString f = listBoxSortField - > currentText ( ) ;
if ( ! f . isEmpty ( ) )
listBoxSortedField - > insertItem ( f + " ASC " ) ;
}
void SqlFormWizard : : reSortSortField ( )
{
int i = listBoxSortedField - > currentItem ( ) ;
if ( i ! = - 1 ) {
TQString text = listBoxSortedField - > currentText ( ) ;
if ( text . mid ( text . length ( ) - 3 ) = = " ASC " )
text = text . mid ( 0 , text . length ( ) - 3 ) + " DESC " ;
else if ( text . mid ( text . length ( ) - 4 ) = = " DESC " )
text = text . mid ( 0 , text . length ( ) - 4 ) + " ASC " ;
listBoxSortedField - > removeItem ( i ) ;
listBoxSortedField - > insertItem ( text , i ) ;
listBoxSortedField - > setCurrentItem ( i ) ;
}
}
void SqlFormWizard : : removeSortField ( )
{
int i = listBoxSortedField - > currentItem ( ) ;
if ( i ! = - 1 ) {
listBoxSortedField - > removeItem ( i ) ;
}
}
void SqlFormWizard : : sortFieldUp ( )
{
if ( listBoxSortedField - > currentItem ( ) < = 0 | |
listBoxSortedField - > count ( ) < 2 )
return ;
int index = listBoxSortedField - > currentItem ( ) - 1 ;
TQListBoxItem * i = listBoxSortedField - > item ( listBoxSortedField - > currentItem ( ) ) ;
listBoxSortedField - > takeItem ( i ) ;
listBoxSortedField - > insertItem ( i , index ) ;
listBoxSortedField - > setCurrentItem ( i ) ;
}
void SqlFormWizard : : sortFieldDown ( )
{
if ( listBoxSortedField - > currentItem ( ) = = - 1 | |
listBoxSortedField - > currentItem ( ) = = ( int ) listBoxSortedField - > count ( ) - 1 | |
listBoxSortedField - > count ( ) < 2 )
return ;
int index = listBoxSortedField - > currentItem ( ) + 1 ;
TQListBoxItem * i = listBoxSortedField - > item ( listBoxSortedField - > currentItem ( ) ) ;
listBoxSortedField - > takeItem ( i ) ;
listBoxSortedField - > insertItem ( i , index ) ;
listBoxSortedField - > setCurrentItem ( i ) ;
}
void SqlFormWizard : : setupDatabaseConnections ( )
{
if ( ! appIface )
return ;
DesignerProject * proIface = ( DesignerProject * ) ( ( DesignerInterface * ) appIface ) - > currentProject ( ) ;
if ( ! proIface )
return ;
proIface - > setupDatabases ( ) ;
raise ( ) ;
setupPage1 ( ) ;
}
void SqlFormWizard : : setupPage1 ( )
{
if ( ! appIface )
return ;
DesignerProject * proIface = ( DesignerProject * ) ( ( DesignerInterface * ) appIface ) - > currentProject ( ) ;
if ( ! proIface )
return ;
listBoxTable - > clear ( ) ;
listBoxConnection - > clear ( ) ;
TQPtrList < DesignerDatabase > databases = proIface - > databaseConnections ( ) ;
TQStringList lst ;
for ( DesignerDatabase * d = databases . first ( ) ; d ; d = databases . next ( ) )
lst < < d - > name ( ) ;
listBoxConnection - > insertStringList ( lst ) ;
if ( lst . count ( ) )
listBoxConnection - > setCurrentItem ( 0 ) ;
setNextEnabled ( databasePage , FALSE ) ;
}
static TQPushButton * create_widget ( TQWidget * parent , const char * name ,
const TQString & txt , const TQRect & r , DesignerFormWindow * fw )
{
TQPushButton * pb = ( TQPushButton * ) fw - > create ( " TQPushButton " , parent , name ) ;
pb - > setText ( txt ) ;
pb - > setGeometry ( r ) ;
fw - > setPropertyChanged ( pb , " text " , TRUE ) ;
fw - > setPropertyChanged ( pb , " geometry " , TRUE ) ;
return pb ;
}
void SqlFormWizard : : accept ( )
{
if ( ! appIface | | mode = = None )
return ;
# ifndef QT_NO_SQL
DesignerProject * proIface = ( DesignerProject * ) ( ( DesignerInterface * ) appIface ) - > currentProject ( ) ;
if ( ! widget | | ! proIface ) {
SqlFormWizardBase : : accept ( ) ;
return ;
}
TQString conn = listBoxConnection - > currentText ( ) ;
TQString table = listBoxTable - > currentText ( ) ;
TQStringList lst ;
lst < < conn < < table ;
if ( ! conn . isEmpty ( ) & & ! table . isEmpty ( ) ) {
formWindow - > setProperty ( widget , " database " , lst ) ;
formWindow - > setPropertyChanged ( widget , " database " , TRUE ) ;
}
if ( ! editFilter - > text ( ) . isEmpty ( ) ) {
widget - > setProperty ( " filter " , editFilter - > text ( ) ) ;
formWindow - > setPropertyChanged ( widget , " filter " , TRUE ) ;
}
if ( listBoxSortedField - > count ( ) ) {
TQStringList lst ;
for ( uint i = 0 ; i < listBoxSortedField - > count ( ) ; + + i )
lst < < listBoxSortedField - > text ( i ) ;
widget - > setProperty ( " sort " , lst ) ;
formWindow - > setPropertyChanged ( widget , " sort " , TRUE ) ;
}
TQPtrList < DesignerDatabase > databases = proIface - > databaseConnections ( ) ;
DesignerDatabase * database = 0 ;
for ( DesignerDatabase * d = databases . first ( ) ; d ; d = databases . next ( ) ) {
if ( d - > name ( ) = = listBoxConnection - > currentText ( ) | | ( d - > name ( ) = = " (default) " | | d - > name ( ) . isEmpty ( ) ) & & listBoxConnection - > currentText ( ) = = " (default) " ) {
database = d ;
d - > open ( FALSE ) ;
break ;
}
}
if ( ! database ) {
return ;
}
TQSqlCursor tab ( listBoxTable - > currentText ( ) , TRUE , database - > connection ( ) ) ;
int columns = 2 ;
TQSqlEditorFactory * f = TQSqlEditorFactory : : defaultFactory ( ) ;
TQWidget * editorDummy ;
TQWidget * editor ;
TQLabel * label ;
int visibleFields = listBoxSelectedField - > count ( ) ;
int numPerColumn = visibleFields / columns ;
if ( ( visibleFields % columns ) > 0 )
numPerColumn + + ;
int row = 0 ;
const int SPACING = 25 ;
const int COL_SPACING = SPACING * 9 ;
uint j ;
switch ( mode ) {
case None :
break ;
case View :
case Browser : {
if ( mode = = Browser & & ! checkBoxAutoEdit - > isChecked ( ) ) {
( ( TQDataBrowser * ) widget ) - > setAutoEdit ( FALSE ) ;
formWindow - > setPropertyChanged ( widget , " autoEdit " , TRUE ) ;
}
formWindow - > clearSelection ( ) ;
bool createFieldLayout = checkCreateFieldLayout - > isChecked ( ) ;
bool createButtonLayout = checkCreateButtonLayout - > isChecked ( ) ;
bool createLayouts = checkCreateLayouts - > isChecked ( ) ;
bool labelAbove = radioLabelsTop - > isOn ( ) ;
uint numCols = spinNumberOfColumns - > text ( ) . toInt ( ) ;
uint currentCol = 0 ;
uint fieldsPerCol = listBoxSelectedField - > count ( ) ;
uint fieldsInCol = 0 ;
if ( listBoxSelectedField - > count ( ) )
fieldsPerCol = listBoxSelectedField - > count ( ) / numCols ;
/* labels and data field editors */
for ( j = 0 ; j < listBoxSelectedField - > count ( ) ; j + + ) {
TQSqlField * field = tab . field ( listBoxSelectedField - > text ( j ) ) ;
if ( ! field )
continue ;
/* label */
TQString labelName = field - > name ( ) ;
labelName = labelName . mid ( 0 , 1 ) . upper ( ) + labelName . mid ( 1 ) ;
label = ( TQLabel * ) formWindow - > create ( " TQLabel " , widget ,
TQString ( " label " + labelName ) ) ;
label - > setText ( labelName ) ;
label - > setGeometry ( SPACING + currentCol * COL_SPACING , row + SPACING ,
SPACING * 3 , SPACING ) ;
formWindow - > setPropertyChanged ( label , " geometry " , TRUE ) ;
formWindow - > setPropertyChanged ( label , " text " , TRUE ) ;
/* editor */
editorDummy = f - > createEditor ( widget , field ) ;
editor = formWindow - > create ( editorDummy - > className ( ) , widget ,
TQString ( TQString ( editorDummy - > className ( ) )
+ labelName ) ) ;
delete editorDummy ;
if ( labelAbove ) {
row + = SPACING ;
editor - > setGeometry ( SPACING + currentCol * COL_SPACING , row + SPACING ,
SPACING * 3 , SPACING ) ;
} else {
editor - > setGeometry ( SPACING * 5 + currentCol * COL_SPACING , row + SPACING ,
SPACING * 3 , SPACING ) ;
}
formWindow - > setPropertyChanged ( editor , " geometry " , TRUE ) ;
if ( TQString ( editor - > className ( ) ) = = " TQLineEdit " & &
( field - > type ( ) = = TQVariant : : Double | |
field - > type ( ) = = TQVariant : : Int | |
field - > type ( ) = = TQVariant : : UInt ) ) {
/* default right-align numerics */
//##
( ( TQLineEdit * ) editor ) - > setAlignment ( TQt : : AlignRight ) ;
formWindow - > setPropertyChanged ( editor , " alignment " , TRUE ) ;
}
if ( : : qt_cast < TQSpinBox * > ( editor ) ) {
( ( TQSpinBox * ) editor ) - > setMaxValue ( INT_MAX ) ;
formWindow - > setPropertyChanged ( editor , " maxValue " , TRUE ) ;
}
TQStringList lst ;
lst < < conn < < table < < field - > name ( ) ;
formWindow - > setProperty ( editor , " database " , lst ) ;
formWindow - > setPropertyChanged ( editor , " database " , TRUE ) ;
/* geometry */
if ( createFieldLayout ) {
formWindow - > selectWidget ( label ) ;
formWindow - > selectWidget ( editor ) ;
}
row + = SPACING + 5 ;
fieldsInCol + + ;
if ( ( fieldsInCol > = fieldsPerCol ) & & ( currentCol < numCols - 1 ) ) {
currentCol + + ;
fieldsInCol = 0 ;
row = 0 ;
}
}
if ( listBoxSelectedField - > count ( ) ) {
if ( createFieldLayout )
formWindow - > layoutG ( ) ;
row + = SPACING ;
}
if ( mode = = Browser ) {
if ( checkBoxNavig - > isChecked ( ) ) {
formWindow - > clearSelection ( ) ;
currentCol = 0 ;
if ( checkBoxFirst - > isChecked ( ) ) {
TQPushButton * pb = create_widget ( widget , " PushButtonFirst " ,
" |< &First " ,
TQRect ( 3 * SPACING * currentCol , row + SPACING , SPACING * 3 , SPACING ) ,
formWindow ) ;
formWindow - > addConnection ( pb , " clicked() " , widget , " first() " ) ;
formWindow - > addConnection ( widget , " firstRecordAvailable( bool ) " ,
pb , " setEnabled( bool ) " ) ;
currentCol + + ;
formWindow - > selectWidget ( pb ) ;
}
if ( checkBoxPrev - > isChecked ( ) ) {
TQPushButton * pb = create_widget ( widget , " PushButtonPrev " ,
" << &Prev " ,
TQRect ( 3 * SPACING * currentCol , row + SPACING , SPACING * 3 , SPACING ) ,
formWindow ) ;
formWindow - > addConnection ( pb , " clicked() " , widget , " prev() " ) ;
formWindow - > addConnection ( widget , " prevRecordAvailable( bool ) " ,
pb , " setEnabled( bool ) " ) ;
currentCol + + ;
formWindow - > selectWidget ( pb ) ;
}
if ( checkBoxNext - > isChecked ( ) ) {
TQPushButton * pb = create_widget ( widget , " PushButtonNext " ,
" &Next >> " ,
TQRect ( 3 * SPACING * currentCol , row + SPACING , SPACING * 3 , SPACING ) ,
formWindow ) ;
formWindow - > addConnection ( pb , " clicked() " , widget , " next() " ) ;
formWindow - > addConnection ( widget , " nextRecordAvailable( bool ) " , pb ,
" setEnabled( bool ) " ) ;
currentCol + + ;
formWindow - > selectWidget ( pb ) ;
}
if ( checkBoxLast - > isChecked ( ) ) {
TQPushButton * pb = create_widget ( widget , " PushButtonLast " , " &Last >| " ,
TQRect ( 3 * SPACING * currentCol , row + SPACING , SPACING * 3 , SPACING ) , formWindow ) ;
formWindow - > addConnection ( pb , " clicked() " , widget , " last() " ) ;
formWindow - > addConnection ( widget , " lastRecordAvailable( bool ) " , pb ,
" setEnabled( bool ) " ) ;
currentCol + + ;
formWindow - > selectWidget ( pb ) ;
}
if ( createButtonLayout )
formWindow - > layoutH ( ) ;
}
if ( checkBoxEdit - > isChecked ( ) ) {
formWindow - > clearSelection ( ) ;
row + = SPACING ;
currentCol = 0 ;
if ( checkBoxInsert - > isChecked ( ) ) {
TQPushButton * pb = create_widget ( widget , " PushButtonInsert " , " &Insert " ,
TQRect ( 3 * SPACING * currentCol , row + SPACING , SPACING * 3 , SPACING ) , formWindow ) ;
formWindow - > addConnection ( pb , " clicked() " , widget , " insert() " ) ;
currentCol + + ;
formWindow - > selectWidget ( pb ) ;
}
if ( checkBoxUpdate - > isChecked ( ) ) {
TQPushButton * pb = create_widget ( widget , " PushButtonUpdate " , " &Update " ,
TQRect ( 3 * SPACING * currentCol , row + SPACING , SPACING * 3 , SPACING ) , formWindow ) ;
formWindow - > addConnection ( pb , " clicked() " , widget , " update() " ) ;
currentCol + + ;
formWindow - > selectWidget ( pb ) ;
}
if ( checkBoxDelete - > isChecked ( ) ) {
TQPushButton * pb = create_widget ( widget , " PushButtonDelete " , " &Delete " ,
TQRect ( 3 * SPACING * currentCol , row + SPACING , SPACING * 3 , SPACING ) , formWindow ) ;
formWindow - > addConnection ( pb , " clicked() " , widget , " del() " ) ;
currentCol + + ;
formWindow - > selectWidget ( pb ) ;
}
if ( createButtonLayout )
formWindow - > layoutH ( ) ;
}
}
if ( createLayouts )
formWindow - > layoutGContainer ( widget ) ;
formWindow - > clearSelection ( ) ;
break ;
}
case Table :
{
TQDataTable * sqlTable = ( ( TQDataTable * ) widget ) ;
if ( checkBoxAutoEdit - > isChecked ( ) ) {
sqlTable - > setAutoEdit ( TRUE ) ;
formWindow - > setPropertyChanged ( sqlTable , " autoEdit " , TRUE ) ;
}
if ( checkBoxReadOnly - > isChecked ( ) ) {
sqlTable - > setReadOnly ( TRUE ) ;
formWindow - > setPropertyChanged ( sqlTable , " readOnly " , TRUE ) ;
} else {
if ( checkBoxConfirmInserts - > isChecked ( ) ) {
sqlTable - > setConfirmInsert ( TRUE ) ;
formWindow - > setPropertyChanged ( sqlTable , " confirmInsert " , TRUE ) ;
}
if ( checkBoxConfirmUpdates - > isChecked ( ) ) {
sqlTable - > setConfirmUpdate ( TRUE ) ;
formWindow - > setPropertyChanged ( sqlTable , " confirmUpdate " , TRUE ) ;
}
if ( checkBoxConfirmDeletes - > isChecked ( ) ) {
sqlTable - > setConfirmDelete ( TRUE ) ;
formWindow - > setPropertyChanged ( sqlTable , " confirmDelete " , TRUE ) ;
}
if ( checkBoxConfirmCancels - > isChecked ( ) ) {
sqlTable - > setConfirmCancels ( TRUE ) ;
formWindow - > setPropertyChanged ( sqlTable , " confirmCancels " , TRUE ) ;
}
}
if ( checkBoxSorting - > isChecked ( ) ) {
sqlTable - > setSorting ( TRUE ) ;
formWindow - > setPropertyChanged ( sqlTable , " sorting " , TRUE ) ;
}
TQMap < TQString , TQString > columnFields ;
sqlTable - > setNumCols ( listBoxSelectedField - > count ( ) ) ; // no need to change property through mdbIface here, since TQDataTable doesn't offer that through Designer
for ( j = 0 ; j < listBoxSelectedField - > count ( ) ; j + + ) {
TQSqlField * field = tab . field ( listBoxSelectedField - > text ( j ) ) ;
if ( ! field )
continue ;
TQString labelName = field - > name ( ) ;
labelName = labelName . mid ( 0 , 1 ) . upper ( ) + labelName . mid ( 1 ) ;
( ( TQTable * ) widget ) - > horizontalHeader ( ) - > setLabel ( j , labelName ) ;
columnFields . insert ( labelName , field - > name ( ) ) ;
}
formWindow - > setColumnFields ( widget , columnFields ) ;
break ;
}
}
database - > close ( ) ;
# endif
SqlFormWizardBase : : accept ( ) ;
}