Ananas Library 0.9.5
Класс wField

Плагин – виджет предназначенный для редактирования значений любых типов, определенных в бизнес схеме. Наследует aWidget. Подробнее...

#include <wfield.h>

Граф наследования:wField:
aWidget wDBField

Открытые типы

enum  tEditorType {
  Unknown , Numberic , String , Date ,
  DateTime , Boolean , Catalogue =101 , Document
}

Открытые слоты

bool getOpt () const
Открытые слоты унаследованные от aWidget
virtual QVariant value (const QString &name)

Сигналы

void valueChanged (const QString &)
void valueChanged (const QVariant &)
void inputInvalid ()
void lostFocus ()
Сигналы унаследованные от aWidget
void setData (QWidget *, aCfg *)
void getData (QWidget *)
void getMd (aCfg **)
void valueChanged (const QString &, const QVariant &)
void valueChanged (const QString &, const QVariant &, const QString &)
void changeObj (const QString &)
void changeObjId (const Q_ULLONG)
void keyPressed (QKeyEvent *e)

Открытые члены

 wField (QWidget *parent, const char *name, WFlags fl=0)
virtual ~wField ()
virtual QDialog * createEditor (QWidget *parent)
void setOpt (bool fn)
virtual QString value () const
QString text () const
virtual void setValue (const QString &fn)
virtual void Validate (const QString &fn)
void setValue (const QDate &d)
virtual QString textValue ()
void setFieldType (QString n)
QString getFieldType () const
void setEditorType (tEditorType n)
tEditorType getEditorType () const
void fieldSelect ()
virtual void focusInEvent ()
virtual void focusOutEvent ()
void selectAll ()
virtual void SetReadOnly (bool)
virtual void SetNonZero (bool)
virtual void SetMask (QString)
virtual void SetValidator (QString Validator, int twostate)
Открытые члены унаследованные от aWidget
 aWidget (QWidget *parent=0, const char *name=0, WFlags fl=0)
 aWidget (const QString &oname, aDatabase *adb, QWidget *parent=0, const char *name=0, WFlags fl=0)
 aWidget (aCfgItem context, aDatabase *adb, QWidget *parent=0, const char *name=0, WFlags fl=0)
virtual bool checkStructure ()
virtual void initObject (aDatabase *adb)
virtual void widgetEditor ()
virtual QToolBar * createToolBar (QMainWindow *parent)
virtual aObjectcreateDBObject (aCfgItem obj, aDatabase *)
virtual QString displayString ()
void init (aDatabase *adb)
bool getOpenEditor () const
void setOpenEditor (bool)
bool isInited ()
virtual bool isContainer ()
void setInited (bool flag)
aCfgItem * getMDObject ()
void setMDObject (aCfgItem object)
aSQLTable * table (const QString &name="")
void setObjectData (QWidget *object, aCfg *md)
void getObjectData (QWidget *object)
aCfggetMd ()
virtual Q_ULLONG uid ()
virtual ERR_Code New ()
virtual ERR_Code Update ()
virtual ERR_Code TurnOn ()
virtual ERR_Code Select (Q_ULLONG id)
aObjectdataObject ()
virtual Q_ULLONG docId ()
int formMode () const
virtual void setFormMode (int mode)
virtual QString getFieldName () const
int getId () const
void setId (int fn)
virtual int setValue (const QString &name, const QVariant &value)
virtual int setObjValue (const QString &nameWidget, aObject *value)
virtual int Refresh ()
QWidget * Widget (QString name, bool onlyMyWidgets=true)
virtual aDataFieldgetAttribute (const QString &name)
virtual int setAttribute (const QString &name, const aDataField *value)

Защищенные члены

void widgetInit ()
Защищенные члены унаследованные от aWidget
virtual void updateProp ()
virtual void keyPressEvent (QKeyEvent *e)

Защищенные данные

QLineEdit * lineEdit
wDateEditdateEdit
QLabel * objLabel
QLabel * nzLabel
wCatButtonobjButton
wCheckBoxcheckBox
QValidator * v
int two_state
tEditorType vEditorType
QString vFieldType
QString vValue
Защищенные данные унаследованные от aWidget
aObjectdbobj

Свойства

QString value
QString FieldType
tEditorType EditorType
Свойства унаследованные от aWidget
int Id
bool openEditor
int FormMode

Дополнительные унаследованные члены

Открытые статические члены унаследованные от aWidget
static void widgetEditor (QWidget *object, QDialog *editor)
static aWidgetparentContainer (QWidget *w)
static aFormparentForm (QWidget *w)
static QString widgetName (QWidget *w)
static QWidget * Widget (QWidget *owner, QString name)
Открытые атрибуты унаследованные от aWidget
aDatabasedb
aCfgmd
aEngineengine

Подробное описание

Плагин – виджет предназначенный для редактирования значений любых типов, определенных в бизнес схеме. Наследует aWidget.

В отличие от wDBField класс wField не биндится к атрибутам persistent бизнес объектов. То есть время жизни хранимых в нем значений равно времени жизни родительской экранной формы. Прикладной программист сам должен решить вопрос обработки и хранения значений задаваемых пользователем.

Конструктор(ы)

◆ wField()

wField::wField ( QWidget * parent,
const char * name,
WFlags fl = 0 )

Создает объект с родителем parent, именем name и флагом fl.

Перекрестные ссылки aWidget::aWidget().

Используется в wDBField::wDBField() и wDBField::wDBField().

◆ ~wField()

wField::~wField ( )
virtual

Методы

◆ createEditor()

QDialog * wField::createEditor ( QWidget * parent)
virtual

Устанавливает визуальный тип виджета в зависимости от свойства `fieldType'. Это свойсто должно быть установлено до вызова этой функции, иначе тип виджета будет установлен в Unknown. _ru */ void wField::widgetInit() { QString str; char s1[20]; int n1=0, n2=0; lineEdit->hide(); disconnect( lineEdit, SIGNAL( textChanged( const QString & ) ), this, SLOT( setValue( const QString & ) ) ); disconnect( lineEdit, SIGNAL( lostFocus() ), this, SLOT( focusOutEvent()) ); lineEdit->disconnect(); lineEdit->setReadOnly(false); layout()->add( nzLabel ); layout()->remove(lineEdit); dateEdit->hide();// = new QDateEdit(this); disconnect(dateEdit, SIGNAL( valueChanged ( const QDate&) ), this, SLOT( setValue( const QDate & ) ) ); disconnect(dateEdit, SIGNAL( lostFocus() ), this, SLOT( focusOutEvent() ) ); layout()->remove(dateEdit); objLabel->hide();// = new QLabel(this); objLabel->disconnect(); layout()->remove(objLabel); objButton->hide();// = new wCatButton("...",this); disconnect( objButton, SIGNAL( clicked() ), this, SLOT( fieldSelect() ) ); objButton->disconnect(); layout()->remove(objButton); checkBox->hide(); disconnect( checkBox, SIGNAL( valueChanged ( const QString & ) ), this, SLOT( setValue( const QString & ) ) );

disconnect( checkBox, SIGNAL( toggled (bool) ), checkBox, SLOT( on_toggled() ) ); checkBox->disconnect(); layout()->remove(checkBox); TODO: need rewrite if (!vFieldType.isEmpty()) sscanf((const char *)vFieldType,"%s %i %i", s1, &n1, &n2);

switch (vEditorType) { case Numberic: lineEdit->setText(vValue); if(vFieldType.isEmpty()) { set validator for numeric type QString str = tr("^\\-{0,1}\\d{0,%1}\\.{1}\\d{0,%2}$").arg(3).arg(3); QRegExp rexp = str; lineEdit->setValidator(new QRegExpValidator(rexp,lineEdit)); } else { if(n2==0) { set default validator for integer type QString str = tr("^\\-{0,1}\\d{0,%1}$").arg(n1); QRegExp rexp = str; lineEdit->setValidator(new QRegExpValidator(rexp,lineEdit)); } else { set default validator for float type QString str = tr("^\\-{0,1}\\d{0,%1}\\.{1}\\d{0,%2}$").arg(n1).arg(n2); QRegExp rexp = str; lineEdit->setValidator(new QRegExpValidator(rexp,lineEdit)); } } connect( lineEdit, SIGNAL( textChanged( const QString & ) ), this, SLOT( setValue( const QString & ) ) ); connect( lineEdit, SIGNAL( lostFocus() ), this, SLOT( focusOutEvent()) );

setFocusProxy(lineEdit); layout()->add( lineEdit ); lineEdit->show(); break;

case String: if(vFieldType.isEmpty()) { set default validator for string lineEdit->setMaxLength(20); }else{ set validator for string lineEdit->setMaxLength(n1); } lineEdit->setValidator(NULL); connect( lineEdit, SIGNAL( textChanged( const QString & ) ), this, SLOT( setValue( const QString & ) ) ); connect( lineEdit, SIGNAL( lostFocus() ), this, SLOT( focusOutEvent()) );

setFocusProxy(lineEdit); layout()->add( lineEdit ); lineEdit->show(); break;

case Date: case DateTime: used object wDateTime, inherits QDateTime dateEdit->setSeparator("."); dateEdit->setOrder( QDateEdit::DMY ); objButton->setMaximumWidth(25); objButton->setFocusPolicy(StrongFocus); objButton->setPixmap( QPixmap::fromMimeSource( "calendar.png" ) ); connect(dateEdit, SIGNAL( valueChanged ( const QDate&) ), this, SLOT( setValue( const QDate & ) ) ); connect(dateEdit, SIGNAL( lostFocus() ), this, SLOT( focusOutEvent() ) ); connect( objButton, SIGNAL( clicked() ), this, SLOT( fieldSelect() ) ); connect( objButton, SIGNAL( clicked() ), this, SLOT(popupCalendar())); setFocusProxy( dateEdit ); setFocusProxy(objButton); layout()->add( dateEdit ); layout()->add( objButton ); objButton->show(); dateEdit->show(); break;

case Catalogue: md_oid = n1; objLabel->setFrameShape( QFrame::Box ); objLabel->setLineWidth( 1 ); objLabel->setFocusPolicy(NoFocus); objButton->setMaximumWidth(25); objButton->setFocusPolicy(StrongFocus); objButton->setPixmap( QPixmap::fromMimeSource( "wcatalogue.png" ) ); connect( objButton, SIGNAL( clicked() ), this, SLOT( fieldSelect() ) );

setFocusProxy(objButton); layout()->add( objLabel ); layout()->add( objButton ); objLabel->show(); objButton->show(); break;

case Document: Field type = Document md_oid = n1; objLabel->setFrameStyle( QFrame::Panel | QFrame::Sunken ); objLabel->setLineWidth( 1 ); objLabel->setFocusPolicy(NoFocus); objButton->setMaximumWidth(25); objButton->setFocusPolicy(StrongFocus); objButton->setPixmap( QPixmap::fromMimeSource( "wdocument.png" ) ); connect( objButton, SIGNAL( clicked() ), this, SLOT( fieldSelect() ) );

setFocusProxy(objButton); layout()->add( objLabel ); layout()->add( objButton ); objLabel->show(); objButton->show(); break;

case Boolean: connect( checkBox, SIGNAL( lostFocus() ), this, SLOT( focusOutEvent()) ); connect( checkBox, SIGNAL( valueChanged ( const QString & ) ), this, SLOT( setValue( const QString & ) ) );

connect( checkBox, SIGNAL( toggled (bool) ), checkBox, SLOT( on_toggled() ) ); setFocusProxy(checkBox); layout()->add(checkBox); checkBox->show(); break;

default: objLabel->setText("UnknownField"); objLabel->setFrameShape(QFrame::Box); setFocusPolicy(NoFocus); layout()->add( objLabel ); objLabel->show(); break; } setValue(vValue); }

/*! \en Sets property fieldType. _en \ru Устанавливает значение свойства `fieldType'. */ void wField::setFieldType( QString n ) { vFieldType=n; if (!loaded) { loaded = true; } widgetInit(); }

/*! Устанавливает значение свойства `editorType'._ru */ void wField::setEditorType( tEditorType n ) { vEditorType=n; widgetInit(); }

/* void wField::load() { }

\en Creates property editor dialog window. _en \ru Создает окно диалога редактора свойств._ru

Аргументы
parent- \en parent _en \ru родитель _ru

Переопределяет метод предка aWidget.

Переопределяется в wDBField.

◆ fieldSelect()

void wField::fieldSelect ( )

\en Calls handler onClick event for Catalogue or Document object. _en \ru Вызывает обработчик события onClick для объектов Каталог или Документ. _ru

Перекрестные ссылки aLog::print().

◆ focusInEvent()

void wField::focusInEvent ( )
virtual

\en Handler signal lostFocus. _en \ru Обработчик сигнала lostFocus. \ru

◆ focusOutEvent()

void wField::focusOutEvent ( )
virtual

\en Handler signal lostFocus. _en \ru Обработчик сигнала lostFocus. \ru

◆ SetMask()

void wField::SetMask ( QString inputMask)
virtual

\en Set input Mask to LineEdit. _en \ru Устанавливает маску ввода в LineEdit. _ru

Аргументы
QStringinputMas - \en inputMas for LineEdit. _en \ru inputMas для LineEdit._ru

Используется в wDBField::initObject().

◆ SetNonZero()

void wField::SetNonZero ( bool fl)
virtual

\en Mark field by red asterisk if it is Non Zero. _en \ru Помечает поле красной звездочкой, если поле не нулевое._ru

Используется в wDBField::initObject().

◆ SetReadOnly()

void wField::SetReadOnly ( bool status)
virtual

Устанавливает флаг толко чтение. Когда установлен этот флаг, запрещается редактирование полей виджета, и сохранение изменений в базу.

Аргументы
status- Новое значение флага только чтение.

Переопределяет метод предка aWidget.

◆ SetValidator()

void wField::SetValidator ( QString Validator,
int twostate )
virtual

\en Set validaror and connect LineEdit to Validator. _en \ru Устанавливает валидатор и соединяет LineEdit с Validator. _ru

Аргументы
QStringValidator - \en RegExp for QRegExpValidator _en \ru значение RegExp для установки QRegExpValidator_ru

Перекрестные ссылки Validate().

Используется в wDBField::initObject().

◆ setValue() [1/2]

void wField::setValue ( const QDate & newDate)

\en Sets value type DateTime. _en \ru Устанавливает значения типа DateTime. Так как в базе хранится тип DateTime, значение дополняется нулевым временем для корректной конвертации и хранении в базе. Формат даты в базе данных должен быть ISO. _ru

Аргументы
newDate(in) - \en date for set _en \ru Дата для установки _ru

◆ setValue() [2/2]

void wField::setValue ( const QString & newvalue)
virtual

\en Sets value. _en \ru Устанавливает значение виджета. _ru

Аргументы
newvalue(in) - \en value for set _en \ru значение для установки _ru

Переопределяет метод предка aWidget.

Используется в Validate().

◆ text()

QString wField::text ( ) const

\en Gets text value. _en \ru Возвращает текстовое значение виджета. _ru

Возвращает
\en value _en \ru значение виджета _ru

◆ textValue()

virtual QString wField::textValue ( )
inlinevirtual

Переопределяет метод предка aWidget.

◆ Validate()

void wField::Validate ( const QString & test)
virtual

\en Validate value and paint LineEdit frame. _en \ru Проверяет значение и рисует рамку поля ввода._ru

Перекрестные ссылки setValue().

Используется в SetValidator().

◆ value()

QString wField::value ( ) const
virtual

\en Gets value. _en \ru Возвращает значение виджета. _ru

Возвращает
\en value _en \ru значение виджета _ru

Переопределяет метод предка aWidget.


Объявления и описания членов классов находятся в файлах: