From bd0f3345a938b35ce6a12f6150373b0955b8dd12 Mon Sep 17 00:00:00 2001 From: Timothy Pearson Date: Sun, 10 Jul 2011 15:24:15 -0500 Subject: Add Qt3 development HEAD version --- doc/html/sql-overview-table4-main-cpp.html | 152 +++++++++++++++++++++++++++++ 1 file changed, 152 insertions(+) create mode 100644 doc/html/sql-overview-table4-main-cpp.html (limited to 'doc/html/sql-overview-table4-main-cpp.html') diff --git a/doc/html/sql-overview-table4-main-cpp.html b/doc/html/sql-overview-table4-main-cpp.html new file mode 100644 index 0000000..67d7d71 --- /dev/null +++ b/doc/html/sql-overview-table4-main-cpp.html @@ -0,0 +1,152 @@ + + + + + +sql/overview/table4/main.cpp Example File + + + + + + + +
+ +Home + | +All Classes + | +Main Classes + | +Annotated + | +Grouped Classes + | +Functions +

sql/overview/table4/main.cpp Example File

+ + +
/****************************************************************************
+** $Id: qt/main.cpp   3.3.8   edited Jan 11 14:37 $
+**
+** Copyright (C) 1992-2007 Trolltech ASA.  All rights reserved.
+**
+** This file is part of an example program for Qt.  This example
+** program may be used, distributed and modified without limitation.
+**
+*****************************************************************************/
+
+#include "main.h"
+
+
+StatusPicker::StatusPicker( QWidget *parent, const char *name )
+    : QComboBox( parent, name )
+{
+    QSqlCursor cur( "status" );
+    cur.select( cur.index( "name" ) );
+
+    int i = 0;
+    while ( cur.next() ) {
+        insertItem( cur.value( "name" ).toString(), i );
+        index2id[i] = cur.value( "id" ).toInt();
+        i++;
+    }
+}
+
+
+int StatusPicker::statusId() const
+{
+    return index2id[ currentItem() ];
+}
+
+
+void StatusPicker::setStatusId( int statusid )
+{
+    QMap<int,int>::Iterator it;
+    for ( it = index2id.begin(); it != index2id.end(); ++it ) {
+        if ( it.data() == statusid ) {
+            setCurrentItem( it.key() );
+            break;
+        }
+    }
+}
+
+
+void CustomTable::paintField( QPainter * p, const QSqlField* field,
+                              const QRect & cr, bool b)
+{
+    if ( !field )
+        return;
+    if ( field->name() == "statusid" ) {
+        QSqlQuery query( "SELECT name FROM status WHERE id=" +
+                     field->value().toString() );
+        QString text;
+        if ( query.next() ) {
+            text = query.value( 0 ).toString();
+        }
+        p->drawText( 2,2, cr.width()-4, cr.height()-4, fieldAlignment( field ), text );
+    }
+    else {
+        QDataTable::paintField( p, field, cr, b) ;
+    }
+}
+
+
+QWidget *CustomSqlEditorFactory::createEditor(
+    QWidget *parent, const QSqlField *field )
+{
+    if ( field->name() == "statusid" ) {
+        QWidget *editor = new StatusPicker( parent );
+        return editor;
+    }
+
+    return QSqlEditorFactory::createEditor( parent, field );
+}
+
+
+int main( int argc, char *argv[] )
+{
+    QApplication app( argc, argv );
+
+    if ( createConnections() ) {
+        QSqlCursor staffCursor( "staff" );
+
+        CustomTable             *staffTable     = new CustomTable( &staffCursor );
+        QSqlPropertyMap         *propMap        = new QSqlPropertyMap();
+        CustomSqlEditorFactory  *editorFactory  = new CustomSqlEditorFactory();
+        propMap->insert( "StatusPicker", "statusid" );
+        staffTable->installPropertyMap( propMap );
+        staffTable->installEditorFactory( editorFactory );
+
+        app.setMainWidget( staffTable );
+
+        staffTable->addColumn( "forename", "Forename" );
+        staffTable->addColumn( "surname",  "Surname" );
+        staffTable->addColumn( "salary",   "Annual Salary" );
+        staffTable->addColumn( "statusid", "Status" );
+
+        QStringList order = QStringList() << "surname" << "forename";
+        staffTable->setSort( order );
+
+        staffTable->refresh();
+        staffTable->show();
+
+        return app.exec();
+    }
+
+    return 1;
+}
+
+


+ +
Copyright © 2007 +TrolltechTrademarks +
Qt 3.3.8
+
+ -- cgit v1.2.1