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 --- examples/sql/overview/table3/main.cpp | 90 +++++++++++++++++++++++++++++++++ examples/sql/overview/table3/main.h | 40 +++++++++++++++ examples/sql/overview/table3/table3.pro | 8 +++ 3 files changed, 138 insertions(+) create mode 100644 examples/sql/overview/table3/main.cpp create mode 100644 examples/sql/overview/table3/main.h create mode 100644 examples/sql/overview/table3/table3.pro (limited to 'examples/sql/overview/table3') diff --git a/examples/sql/overview/table3/main.cpp b/examples/sql/overview/table3/main.cpp new file mode 100644 index 0000000..03d0729 --- /dev/null +++ b/examples/sql/overview/table3/main.cpp @@ -0,0 +1,90 @@ +/**************************************************************************** +** +** Copyright (C) 1992-2008 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" +#include + +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::Iterator it; + for ( it = index2id.begin(); it != index2id.end(); ++it ) { + if ( it.data() == statusid ) { + setCurrentItem( it.key() ); + break; + } + } +} + + + +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" ); + + QDataTable *staffTable = new QDataTable( &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; +} diff --git a/examples/sql/overview/table3/main.h b/examples/sql/overview/table3/main.h new file mode 100644 index 0000000..3cee08d --- /dev/null +++ b/examples/sql/overview/table3/main.h @@ -0,0 +1,40 @@ +/**************************************************************************** +** +** Copyright (C) 1992-2008 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 +#include +#include +#include +#include +#include +#include +#include "../connection.h" + +class StatusPicker : public QComboBox +{ + Q_OBJECT + Q_PROPERTY( int statusid READ statusId WRITE setStatusId ) + public: + StatusPicker( QWidget *parent=0, const char *name=0 ); + int statusId() const; + void setStatusId( int id ); + private: + QMap< int, int > index2id; +}; + + +class CustomSqlEditorFactory : public QSqlEditorFactory +{ + Q_OBJECT + public: + QWidget *createEditor( QWidget *parent, const QSqlField *field ); +}; + + + diff --git a/examples/sql/overview/table3/table3.pro b/examples/sql/overview/table3/table3.pro new file mode 100644 index 0000000..c490bed --- /dev/null +++ b/examples/sql/overview/table3/table3.pro @@ -0,0 +1,8 @@ +TEMPLATE = app + +CONFIG += qt warn_on release + +REQUIRES = full-config + +HEADERS = main.h +SOURCES = main.cpp ../connection.cpp -- cgit v1.2.1