50 void eDBField::setData( QWidget *o,
aCfg *md )
54 if ( o->className() != QString(
"wDBField") || !md ) {
65 long oid, widgetId, fieldId;
69 QWidget *pWidget = field->parentWidget();
73 pn = pWidget->className();
74 if ( pn == QString(
"wCatalogue") || pn == QString(
"wDocument") )
break;
75 pWidget = pWidget->parentWidget();
77 if ( pn == QString(
"wCatalogue") ) widget = (
wCatalogue*)pWidget;
else 78 if ( pn == QString(
"wDocument") ) widget = (
wDocument*)pWidget;
else 81 widgetId = widget->getId();
83 if ( widgetId ) widget->setMDObject( md->
find( widgetId ) );
89 QStringList tlist = md->
types( md_field, widget->getMDObject() );
92 for ( QStringList::Iterator it = tlist.begin(); it != tlist.end(); ++it ) {
93 otypes.append( (*it).section(
"\t", 0, 0 ) );
94 eName->insertItem( (*it).section(
"\t", 1, 1 ), idx++ );
96 for ( i = 0 ; i < otypes.count(); i++ ) {
98 if( otypes[i][0] ==
'O' ) {
99 sscanf( (
const char *)otypes[ i ],
"O %d", &oid );
100 if ( oid == fieldId ) {
101 eName->setCurrentItem( i );
109 void eDBField::getData( QWidget *o )
113 if ( o->className() != QString(
"wDBField") )
return;
116 int idx=eName->currentItem();
119 if( otypes[idx][0] ==
'O' ) {
120 sscanf( (
const char *)otypes[ idx ],
"O %d", &oid );
127 void eDBField::namechanged(
const QString &s )
129 int idx=eName->currentItem();
131 selotype=otypes[idx];
133 eType->setText(onames[idx]);
Универсальный Плагин – виджет, предназначен для редактирования атрибутов бизнес объектов Ананаса...
Definition: wdbfield.h:61
Definition: wcatalogue.h:43
Визуальный объект - контейнер для работы с документами. Наследует aWidget.
Definition: wdocument.h:47
QStringList types(const QString &filter=QString::null, aCfgItem *obj=0)
Definition: acfg.cpp:1297
Класс реализует програмный интерфейс доступа к элементам метаданных системы. Наследует QObject...
Definition: acfg.h:436
aCfgItem find(aCfgItem context, const QString &name, int n=0)
Definition: acfg.cpp:539