From: Andrey Paskal Date: Fri, 27 Oct 2017 09:13:56 +0000 (+0300) Subject: - Fixed Metadata transmission to wdbtable widget plugin; X-Git-Url: https://gitweb.ananas.su/?a=commitdiff_plain;h=b2b412d0e6d25a7ff5c757fe1f87f18487ab6aad;p=projects%2Fananas-labs-qt4.git - Fixed Metadata transmission to wdbtable widget plugin; - Small improvements in logging and rc file format (comments lines and debug parameter with 0,1,2 values); --- diff --git a/src/designer/deditdialog.cpp b/src/designer/deditdialog.cpp index 22844c2..7da2b65 100644 --- a/src/designer/deditdialog.cpp +++ b/src/designer/deditdialog.cpp @@ -68,6 +68,7 @@ void dEditDialog::languageChange() void dEditDialog::init() { delete statusBar(); + docId = 0; // eModule->setInterpreter(new QSInterpreter()); // fd = new aFormDesigner(); } @@ -98,6 +99,7 @@ void dEditDialog::setData( aListViewItem *o ) eFormFile->setText( QString("inputform_")+QString::number(item->id)+QString(".ui")); setCaption( tr("Form:") + eName->text() ); parentClass = md->objClass( md->parent ( md->parent( obj ) ) ); + docId = md->id(md->parent(md->parent( obj ))); if ( parentClass == md_document ) { // cbFormMode->insertItem(QObject::tr("Document")); } @@ -129,6 +131,13 @@ void dEditDialog::setData( aListViewItem *o ) void dEditDialog::EditForm() { + foreach (QWidget *widget, QApplication::topLevelWidgets()) { + if (widget->name() == QString("ananas-designer_mainwindow") ) + { + connect( this, SIGNAL( setId( qulonglong * ) ), widget, SLOT( setId( qulonglong * ) )); + emit ( setId( &docId )); + } + } aCfg *md = item->md; aCfgItem obj = item->obj, o; @@ -136,7 +145,6 @@ void dEditDialog::EditForm() QFile f( eFormFile->text() ); // char* arg; // int rc; - aLog::print(aLog::Debug,tr("dEditDialog edit form")); //MainForm *mw = (MainForm*) topLevelWidget(); //printf("end getting pointer to Main form\n"); QStringList env; @@ -331,7 +339,7 @@ void dEditDialog::formPreview() -int dEditDialog::getDocId() +qulonglong dEditDialog::getDocId() { return docId; } diff --git a/src/designer/deditdialog.h b/src/designer/deditdialog.h index 8010dce..57cad6c 100644 --- a/src/designer/deditdialog.h +++ b/src/designer/deditdialog.h @@ -12,12 +12,12 @@ public: dEditDialog(QWidget* parent = 0, const char* name = 0, Qt::WindowFlags fl = Qt::WType_TopLevel); ~dEditDialog(); - int docId; + qulonglong docId; aAliasEditor *al; aFormDesigner *fd; aListViewItem *item; - virtual int getDocId(); + virtual qulonglong getDocId(); public slots: virtual void init(); @@ -27,6 +27,8 @@ public slots: virtual void EditModule(); virtual void updateMD(); +signals: + void setId(qulonglong* id); protected slots: virtual void languageChange(); diff --git a/src/designer/main.cpp b/src/designer/main.cpp index e93fb13..0b278e2 100644 --- a/src/designer/main.cpp +++ b/src/designer/main.cpp @@ -40,8 +40,8 @@ #include "formdesigner.h" MainForm *mainform = 0; -aWindowsList *mainformwl = 0; -QWorkspace *mainformws = 0; +// aWindowsList *mainformwl = 0; +// QWorkspace *mainformws = 0; //QApplication *application = 0; QTranslator *translator = 0, tr_app(0), tr_lib(0), tr_plugins(0); aFormDesigner *formdesigner = 0; @@ -49,7 +49,8 @@ QString lang="en", rcfile="", username="", userpassword=""; - +aDatabase* database= NULL; +aCfgRc rc; int setTranslator(QString langdir, QString lang) { @@ -128,28 +129,40 @@ parseCommandLine( AApplication *a ) return 0; } - int main( int argc, char ** argv ) { AApplication app ( argc, argv, AApplication::Designer ); - MainForm *w = new MainForm(); + MainForm *appWindow = new MainForm(); //#ifndef _Windows - QTextCodec::setCodecForCStrings( QTextCodec::codecForName("UTF8") ); + QTextCodec::setCodecForCStrings( QTextCodec::codecForName("UTF8") ); //#endif // Для QSettings app.setOrganizationName("ananasgroup"); - app.setApplicationName("ananas"); + app.setApplicationName("ananas"); - mainform = w; - mainformws = mainform->ws; - mainformwl = mainform->wl; + mainform = appWindow; + // mainformws = mainform->ws; + // mainformwl = mainform->wl; // application = &app; // dSelectDB dselectdb; - int rc; QPixmap pixmap; + QString configWorkDir = QDir::homeDirPath()+"./ananas"; + QString logLevel = "0"; if ( parseCommandLine( &app ) ) return 1; + if ( !rcfile.isEmpty() ) + { + rc.read( rcfile ); + configWorkDir = rc.value("workdir", configWorkDir); + logLevel = rc.value("debug", "0"); + + } + if (logLevel == "0" || logLevel == "1" || logLevel == "2") + aLog::init( configWorkDir+"/ananas.log", logLevel.toInt() ); + else + aLog::init( configWorkDir+"/ananas.log", 0 ); + qApp->installTranslator( &tr_lib ); qApp->installTranslator( &tr_plugins ); qApp->installTranslator( &tr_app ); @@ -160,43 +173,67 @@ int main( int argc, char ** argv ) qApp->addLibraryPath( qApp->applicationDirPath() ); #else pixmap = QPixmap( "/usr/share/ananas/designer/locale/designer-splash-"+lang+".png" ); - qApp->addLibraryPath( "/usr/lib/ananas/" ); - qApp->addLibraryPath( "/usr/lib/ananas/designer/" ); + qApp->addLibraryPath( "/usr/lib/ananas/" ); + qApp->addLibraryPath( "/usr/lib/ananas/designer/" ); // qApp->setLibraryPaths( QStringList() <<"/usr/lib/ananas/" ); #endif foreach (QString path, app.libraryPaths()) - printf("%s\n", path.toUtf8().data()); + aLog::debug(QString("libraryPaths list item " ) + path); if ( pixmap.isNull() ) pixmap = QPixmap( ":/images/designer-splash-en.png" ); QSplashScreen *splash = new QSplashScreen( pixmap ); - if ( ananas_login( rcfile, username, userpassword, 0, AApplication::Designer ) ){ - splash->show(); - splash->message( QObject::tr("Init application"), Qt::AlignBottom, Qt::white ); - w->rcfile = rcfile; - qApp->setMainWidget( w ); - splash->message( QObject::tr("Init forms designer"), Qt::AlignBottom, Qt::white ); - formdesigner = new aFormDesigner(); - - //--formdesigner->reparent( mainformws, 0, QPoint( 5, 5 ), false ); -// mainformws->addWindow(formdesigner); - formdesigner->setCaption( QObject::tr("Dialog forms designer") ); - formdesigner->hide(); - w->show(); - splash->clear(); - splash->finish( w ); - delete splash; - qApp->connect( qApp, SIGNAL( lastWindowClosed() ), qApp, SLOT( quit() ) ); - mainform->configOpen(); -// QTextCodec::setCodecForCStrings( QTextCodec::codecForName("UTF8") ); - - rc = app.exec(); - if( w ) delete w; - w=0; - aLog::close(); - ananas_logout(); - return rc; + + + dSelectDB dialogDBSelect; + + if ( rcfile.isEmpty() ) + { + if (dialogDBSelect.exec()==QDialog::Accepted) rcfile = dialogDBSelect.rcfile; } + if ( !rcfile.isEmpty() ) + { + if ( !database ) database = aDatabase::database(); + if ( !database->init( rcfile ) ) + { + aLog::error("Unable to use rcfile " + rcfile); + return 1; + } + } + else + { + aLog::debug("No rcfile selected or available?"); + return 0; + } + + splash->show(); + splash->message( QObject::tr("Init application"), Qt::AlignBottom, Qt::white ); + appWindow->rcfile = rcfile; + appWindow->md = &database->cfg; + qApp->setMainWidget( appWindow ); + splash->message( QObject::tr("Init forms designer"), Qt::AlignBottom, Qt::white ); + formdesigner = new aFormDesigner(); + + //--formdesigner->reparent( mainformws, 0, QPoint( 5, 5 ), false ); + // mainformws->addWindow(formdesigner); + formdesigner->setCaption( QObject::tr("Dialog forms designer") ); + formdesigner->hide(); + appWindow->show(); + splash->clear(); + splash->finish( appWindow ); + delete splash; + qApp->connect( qApp, SIGNAL( lastWindowClosed() ), qApp, SLOT( quit() ) ); + // mainform->configOpen(); + appWindow->configOpen(); + // QTextCodec::setCodecForCStrings( QTextCodec::codecForName("UTF8") ); + + int res = app.exec(); + // if( appWindow ) delete appWindow; + // appWindow=0; + // aLog::close(); + // ananas_logout(); + // return rc; + aLog::close(); - return 0; + return res; } diff --git a/src/designer/mainform.cpp b/src/designer/mainform.cpp index ab3be19..3a18c3c 100644 --- a/src/designer/mainform.cpp +++ b/src/designer/mainform.cpp @@ -195,6 +195,7 @@ void MainForm::init() TBToolbar->setShown( FALSE ); tbTabs->setShown( FALSE ); lastTabId = 0; + lastFormId = 0; configSaveAction->setVisible( FALSE ); } @@ -368,6 +369,11 @@ void MainForm::getMd( aCfg **md ) *md = &cf->cfg; } +aCfg* MainForm::getMetadata() +{ + return md; +} + /*! Get current configuration form */ @@ -392,10 +398,15 @@ MainForm::activeWindow() return ws->activeWindow(); } +void MainForm::setId( qulonglong* id ) +{ + lastFormId= *id; +} -int MainForm::getId() +void +MainForm::getId(qulonglong* objId) { - return lastFormId; + *objId = lastFormId; } diff --git a/src/designer/mainform.h b/src/designer/mainform.h index aa0937b..6812898 100644 --- a/src/designer/mainform.h +++ b/src/designer/mainform.h @@ -17,7 +17,7 @@ public: CfgForm *cfgform; QString rcfile; aCfg *md; - int lastFormId; + qulonglong lastFormId; int lastTabId; aWindowsList *wl; //--QSettings designer_settings; @@ -48,7 +48,9 @@ public slots: virtual void fileNew(); virtual void connectSignals( CfgForm * cf ); virtual void getMd( aCfg * * md ); - virtual int getId(); + virtual aCfg* getMetadata(); + virtual void setId(qulonglong* id); + virtual void getId(qulonglong* id); virtual void addTab( int uid, const QString & winName ); // -- Help for add to workspace virtual void addTab(QWidget* window) { diff --git a/src/lib/acfgrc.cpp b/src/lib/acfgrc.cpp index 4108db9..325c865 100644 --- a/src/lib/acfgrc.cpp +++ b/src/lib/acfgrc.cpp @@ -121,6 +121,8 @@ aCfgRc::read(const QString &fname) stream.setEncoding(Q3TextStream::UnicodeUTF8); while ( !stream.eof() ) { line = stream.readLine(); // line of text excluding '\n' + if ( line.trimmed().startsWith("#") ) // skip comments line + continue; k = line.section("=",0,0); v = line.section("=",1,100); if ( v.isNull() ) v = ""; values.insert( k, new QString( v ) ); diff --git a/src/lib/alog.cpp b/src/lib/alog.cpp index 07300a2..ab82cfd 100644 --- a/src/lib/alog.cpp +++ b/src/lib/alog.cpp @@ -32,20 +32,37 @@ #include #include #include "aservice.h" +#include QString aLog::logName = ""; int aLog::logLevel = aLog::Debug; -QFile aLog::f; +QFile aLog::logFileRef; bool aLog::msg_was_show = false; +bool aLog::initialized = false; +bool aLog::echoRequired = true; //const int aLog::Error = 0; //const int aLog::Info = 1; //const int aLog::Debug = 2; +void aLog::debug( QString const &message) +{ + aLog::print(aLog::Debug, message); +} + +void aLog::error( QString const &message) +{ + aLog::print(aLog::Error, message); +} + +void aLog::info( QString const &message) +{ + aLog::print(aLog::Info, message); +} /*! *\~english - * Writes text to log, if /a status less init status. + * Writes text to log, if a status less init status. * \param status - message status ( aLog::Error, aLog::Info, aLog::Debug ) * \param text - message *\~russian @@ -59,32 +76,23 @@ aLog::print( int status, const QString &text) { QString st; -// switch(status) -// { -// case aLog::Error: - if(status == aLog::Error) st = "ERROR"; -// break; -// case aLog::Info: - else if(status == aLog::Info) st = "INFO"; -// break; -// default: - else st = "DEBUG"; -// break; -// } + if(status == aLog::Error) st = "ERROR"; + else if(status == aLog::Info) st = "INFO"; + else st = "DEBUG"; if(status<=logLevel) { - QString endline; - + QString endline; + #ifdef Q_OS_WIN32 - endline = "\r\n"; + endline = "\r\n"; #else - endline = "\n"; + endline = "\n"; #endif const QString toWrite = QString("%1 %2 %3%4")\ - .arg(QDateTime::currentDateTime().toString(Qt::ISODate).replace('T',' '))\ - .arg(st)\ - .arg(text)\ - .arg(endline); + .arg(QDateTime::currentDateTime().toString(Qt::ISODate).replace('T',' '))\ + .arg(st)\ + .arg(text)\ + .arg(endline); aLog::printr(toWrite); } } @@ -100,18 +108,23 @@ aLog::print( int status, void aLog::printr( const QString &toWrite) { - if(aLog::f.handle () !=-1) + if(aLog::logFileRef.handle() !=-1 && aLog::initialized && aLog::logFileRef.isOpen()) { - aLog::f.writeBlock((const char*)toWrite.local8Bit(),strlen((const char*)toWrite.local8Bit())); - aLog::f.flush(); + aLog::logFileRef.writeBlock((const char*)toWrite.local8Bit(),strlen((const char*)toWrite.local8Bit())); + aLog::logFileRef.flush(); + if (aLog::echoRequired) + { + std::cout << toWrite.toStdString(); + } } else { if(!aLog::msg_was_show) { - printf("Log system not initialized!\n"); + std::cout << "Log system not initialized!" << std::endl <<"Writing to stdout" << std::endl; aLog::msg_was_show = true; } + std::cout << toWrite.toStdString(); } } @@ -126,14 +139,31 @@ aLog::printr( const QString &toWrite) * \param status - \~english showing status \~russian статус скрытия сообщений. Все сообщения, имеющие больший статус, не попадут в лог ( ERROR= 0, INFO= 1, DEBUG= 2 ). Значение по умолчанию DEBUG \~ */ void -aLog::init(const QString &log_name, int show_up) +aLog::init(const QString &log_name, int show_up, bool echoToConsole) { + if ( aLog::initialized ) + return; bool ok; QString log; + aLog::echoRequired = echoToConsole; if(log_name =="" || logName==QString::null) { log = aService::readConfigVariable("log", &ok); - if(!ok) log = QDir::homeDirPath()+"/.ananas/ananas.log"; + if(!ok ) + { + if (createDotAnanasDir()) + { + log = QDir::homeDirPath()+"/.ananas/ananas.log"; + } + else + { + if (aLog::logLevel == aLog::Debug) + { + std::cout << "Log system not initialized!" << std::endl; + } + return; + } + } } else { @@ -149,10 +179,13 @@ aLog::init(const QString &log_name, int show_up) aLog::logName = log; - if (aLog::f.isOpen()) f.close(); - aLog::f.setName(getLogName()); - aLog::f.open( IO_WriteOnly | IO_Append ); - + if (aLog::logFileRef.isOpen()) aLog::logFileRef.close(); + aLog::logFileRef.setName(getLogName()); + aLog::initialized = aLog::logFileRef.open( IO_WriteOnly | IO_Append ); + if (aLog::initialized && aLog::logLevel == aLog::Debug) + { + std::cout << "aLog::init(), logFile opened" << std::endl; + } } QString @@ -164,6 +197,20 @@ aLog::getLogName() void aLog::close() { - aLog::f.close(); + if (aLog::logFileRef.isOpen()) + { + aLog::logFileRef.close(); + if (aLog::logLevel == aLog::Debug) + { + std::cout << "aLog::close(), logFile Closed" << std::endl; + } + } } +bool +aLog::createDotAnanasDir() +{ + QDir dir(QDir::homeDirPath()+"/.ananas"); + if (dir.exists()) return true; + return dir.mkpath("."); +} diff --git a/src/lib/alog.h b/src/lib/alog.h index 4e59725..4739e50 100644 --- a/src/lib/alog.h +++ b/src/lib/alog.h @@ -30,20 +30,11 @@ #ifndef ALOG_H #define ALOG_H -//#include "ananas.h" #include "ananasglobal.h" #include #include -// for bcc32.exe compatibility -// in file wingdi.h -// #define ERROR 0 - -//#ifdef Q_OS_WIN32 -//#define ERROR IRROR -//#endif - /*! * \~english * Class contain static functions for log system @@ -55,44 +46,25 @@ class ANANAS_EXPORT aLog { public: enum MessageType { Error, Info, Debug }; -// enum status { - /*! - * \~english Error - * \~russian Сообщение об ошибке - * \~ - */ -/* -#ifdef Q_OS_WIN32 - static const int IRROR;//, -#else - static const int ERROR; -#endif -*/ /*! - * \~english Info - * \~russian Информационное сообщение - * \~ - */ -// static const int INFO;//, - /*! - * \~english Info - * \~russian Отладочное сообщение - * \~ - */ -// static const int DEBUG;// }; static void print( int status, const QString &text); + static void debug( QString const &text); + static void error( QString const &message); + static void info( QString const &text); static void printr( const QString &text); - static void init( const QString &logname="", int loglevel=0); + static void init( const QString &logname="", int loglevel=0, bool echoToConsole = true); static void close(); static QString getLogName(); private: aLog(); + static bool createDotAnanasDir(); static QString logName; static int logLevel; - static QFile f; + static QFile logFileRef; static bool msg_was_show; - + static bool initialized; + static bool echoRequired; }; #endif// ALOG_H diff --git a/src/lib/dialogs/dselectdb.cpp b/src/lib/dialogs/dselectdb.cpp index b11d066..36243fb 100644 --- a/src/lib/dialogs/dselectdb.cpp +++ b/src/lib/dialogs/dselectdb.cpp @@ -59,7 +59,6 @@ void dSelectDB::languageChange() void dSelectDB::init() { - aLog::init("ananas.log", aLog::Debug); createMenu(); progressBar1->hide(); QString fname; diff --git a/src/lib/widgets/awidget.cpp b/src/lib/widgets/awidget.cpp index 070cd64..01e9a3d 100644 --- a/src/lib/widgets/awidget.cpp +++ b/src/lib/widgets/awidget.cpp @@ -44,7 +44,7 @@ #include "wdbtable.h" #include "aform.h" #include "alog.h" - +#include /*! *\en @@ -406,8 +406,6 @@ aWidget::getObjectData( QWidget *object ) emit( getData( object ) ); } - - /*! *\en * Return toplevel metadata configuration. @@ -420,11 +418,12 @@ aCfg* aWidget::getMd() { aCfg *md = 0; - QWidget *mw = topLevelWidget(); - if (mw->name() == QString("ananas-designer_mainwindow") ) - { - connect( this, SIGNAL( getMd( aCfg ** ) ), mw, SLOT( getMd( aCfg ** ) )); - emit ( getMd( &md ) ); + foreach (QWidget *widget, QApplication::topLevelWidgets()) { + if (widget->name() == QString("ananas-designer_mainwindow") ) + { + connect( this, SIGNAL( getMd( aCfg ** ) ), widget, SLOT( getMd( aCfg ** ) )); + emit ( getMd( &md ) ); + } } return md; } diff --git a/src/plugins/dbfield/wdbfield.cpp b/src/plugins/dbfield/wdbfield.cpp index 7fba231..8f073ea 100644 --- a/src/plugins/dbfield/wdbfield.cpp +++ b/src/plugins/dbfield/wdbfield.cpp @@ -38,7 +38,7 @@ #include "edbfield.h" #include "wdbfield.h" #include "addfdialog.h" -//--#include "mainform.h" +#include @@ -176,6 +176,10 @@ wDBField::init() id = aWidget::parentContainer(this)->getId(); head = md->find(id); } + else + { + aLog::debug("wDBField::init(), Can't get metadata or metaobject Id"); + } } diff --git a/src/plugins/dbfield/wdbfield_plugin.cpp b/src/plugins/dbfield/wdbfield_plugin.cpp index edba874..891d7b6 100644 --- a/src/plugins/dbfield/wdbfield_plugin.cpp +++ b/src/plugins/dbfield/wdbfield_plugin.cpp @@ -25,7 +25,7 @@ #include "wdbfield_taskmenu.h" #include "wdbfield.h" - +#include wDBFieldPlugin::wDBFieldPlugin(QObject *parent) : QObject(parent), m_initialized(false) @@ -55,7 +55,7 @@ void wDBFieldPlugin::initialize(QDesignerFormEditorInterface *core) Q_TYPEID(QDesignerTaskMenuExtension)); m_initialized = true; - printf("dbfield inited\n"); + aLog::debug("wDBFieldPlugin::initialize, dbfield initialized\n"); } QWidget *wDBFieldPlugin::createWidget(QWidget *parent) diff --git a/src/plugins/dbtable/wdbtable.cpp b/src/plugins/dbtable/wdbtable.cpp index 26195b4..eabda86 100644 --- a/src/plugins/dbtable/wdbtable.cpp +++ b/src/plugins/dbtable/wdbtable.cpp @@ -74,6 +74,7 @@ wDBTable::wDBTable( QString objtype, QWidget *parent, const char *name ) objtype = ""; defColWidth = 100; //default column width tableInd = -1; + doc_id = 0; inEditMode = false; searchWidget = 0; searchMode = false; @@ -167,8 +168,19 @@ wDBTable::getDefIdList() const * \~ */ qulonglong -wDBTable::getId() const +wDBTable::getId() { + if (doc_id == 0) + { + foreach (QWidget *widget, QApplication::topLevelWidgets()) + { + if (widget->name() == QString("ananas-designer_mainwindow") ) + { + connect( this, SIGNAL( getId( qulonglong * ) ), widget, SLOT( getId( qulonglong * ) )); + emit ( getId( &doc_id ) ); + } + } + } return doc_id; } @@ -341,6 +353,28 @@ wDBTable::~wDBTable() cur=0; } +/*! + *\en + * Return toplevel metadata configuration. + *\_en + *\ru + * Возвращает объект конфигурации для виджета верхнего уровня. + *\_ru + */ +aCfg* +wDBTable::getMd() +{ + foreach (QWidget *widget, QApplication::topLevelWidgets()) + { + if (widget->name() == QString("ananas-designer_mainwindow") ) + { + connect( this, SIGNAL( getMd( aCfg ** ) ), widget, SLOT( getMd( aCfg ** ) )); + emit ( getMd( &md ) ); + } + } + return md; +} + /*! @@ -354,17 +388,18 @@ wDBTable::~wDBTable() void wDBTable::init()// aDatabase *adb ) { - int id=0; + qulonglong id=0; aCfgItem o, o_table; aCfgItem mditem, docitem; // set up pixmap for calculated fields cur = new Q3SqlCursor("cur",false); - md = aWidget::parentContainer(this)->getMd(); - if ( md ) + md = getMd(); + id = getId(); + aLog::debug("wDBTable::init(), metadata object id="+QString::number(id)); + if ( md && id != 0) { - id = aWidget::parentContainer(this)->getId(); o = md->find(id); QString objClass = md->objClass(o); if(objClass==md_document) @@ -385,6 +420,7 @@ wDBTable::init()// aDatabase *adb ) } else { + aLog::debug("wDBTable::init(), Can't get metadata or metaobject Id"); // verticalHeader()->hide(); // printf("name engin\n"); } diff --git a/src/plugins/dbtable/wdbtable.h b/src/plugins/dbtable/wdbtable.h index 2041a98..4ffd3e5 100644 --- a/src/plugins/dbtable/wdbtable.h +++ b/src/plugins/dbtable/wdbtable.h @@ -133,7 +133,7 @@ public: QStringList getDefHeaders() const; QStringList getColWidth() const; QStringList getDefIdList() const; - qulonglong getId() const; + qulonglong getId(); int getTblInd() const; bool getOpenEditor() const; int getDefColWidth() const; @@ -154,6 +154,7 @@ public: void setContainerType( QString name) { container_type = name; }; QPixmap systemIcon(); virtual int Select( ANANAS_UID db_uid ); + aCfg* getMd(); public slots: Q3ValueList getBindList(); void setWFieldEditor(); @@ -248,6 +249,8 @@ signals: */ void viewRequest(); // end + void getMd( aCfg ** ); + void getId( qulonglong * ); private slots: //void select( Q_ULLONG group );