summaryrefslogtreecommitdiffstats
path: root/tools/designer/examples/book/book8/editbook.ui.h
diff options
context:
space:
mode:
Diffstat (limited to 'tools/designer/examples/book/book8/editbook.ui.h')
-rw-r--r--tools/designer/examples/book/book8/editbook.ui.h47
1 files changed, 47 insertions, 0 deletions
diff --git a/tools/designer/examples/book/book8/editbook.ui.h b/tools/designer/examples/book/book8/editbook.ui.h
new file mode 100644
index 000000000..45876fe71
--- /dev/null
+++ b/tools/designer/examples/book/book8/editbook.ui.h
@@ -0,0 +1,47 @@
+void EditBookForm::init()
+{
+ TQSqlQuery query( "SELECT surname, id FROM author ORDER BY surname;" );
+ while ( query.next() ) {
+ ComboBoxAuthor->insertItem( query.value( 0 ).toString() );
+ int id = query.value( 1 ).toInt();
+ mapAuthor( query.value( 0 ).toString(), id, TRUE );
+ }
+}
+
+void EditBookForm::beforeUpdateBook( TQSqlRecord * buffer )
+{
+ int id;
+ mapAuthor( ComboBoxAuthor->currentText(), id, FALSE );
+ buffer->setValue( "authorid", id );
+}
+
+void EditBookForm::mapAuthor( const TQString & name, int & id, bool populate )
+{
+ if ( populate )
+ authorMap[ name ] = id;
+ else
+ id = authorMap[ name ];
+}
+
+void EditBookForm::primeInsertBook( TQSqlRecord * buffer )
+{
+ TQSqlQuery q;
+ q.exec( "UPDATE sequence SET sequence = sequence + 1 WHERE tablename='book';" );
+ q.exec( "SELECT sequence FROM sequence WHERE tablename='book';" );
+ if ( q.next() ) {
+ buffer->setValue( "id", q.value( 0 ) );
+ }
+}
+
+void EditBookForm::primeUpdateBook( TQSqlRecord * buffer )
+{
+ int id = buffer->value( "authorid" ).toInt();
+ for ( int i = 0; i < ComboBoxAuthor->count(); i++ ) {
+ TQString author = ComboBoxAuthor->text( i );
+ if ( authorMap.contains( author ) && authorMap[author] == id ) {
+ ComboBoxAuthor->setCurrentItem( i ) ;
+ break;
+ }
+ }
+}
+