kexi

KexiDataItemInterface Class Reference

#include <kexidataiteminterface.h>

Inheritance diagram for KexiDataItemInterface:

KexiFormDataItemInterface KexiTableEdit KexiDBAutoField KexiDBCheckBox KexiDBDateEdit KexiDBDateTimeEdit KexiDBDoubleSpinBox KexiDBForm KexiDBImageBox KexiDBIntSpinBox KexiDBLabel KexiDBLineEdit KexiDBTextEdit KexiDBTimeEdit KexiBlobTableEdit KexiBoolTableEdit KexiInputTableEdit KexiKIconTableEdit List of all members.

Detailed Description

An interface for declaring widgets to be data-aware.

Definition at line 51 of file kexidataiteminterface.h.


Public Member Functions

 KexiDataItemInterface ()
virtual ~KexiDataItemInterface ()
void setValue (const QVariant &value, const QVariant &add=QVariant(), bool removeOld=false)
virtual KexiDB::Fieldfield () const =0
virtual KexiDB::QueryColumnInfocolumnInfo () const =0
virtual void setColumnInfo (KexiDB::QueryColumnInfo *cinfo)=0
virtual void installListener (KexiDataItemChangesListener *listener)
virtual QVariant value ()=0
virtual bool valueIsValid ()
virtual bool valueIsNull ()=0
virtual bool valueIsEmpty ()=0
virtual bool isReadOnly () const
virtual QWidget * widget ()=0
virtual void hideWidget ()
virtual void showWidget ()
virtual bool valueChanged ()
virtual bool cursorAtStart ()=0
virtual bool cursorAtEnd ()=0
virtual void clear ()=0
bool hasFocusableWidget () const
virtual void showFocus (const QRect &r, bool readOnly)
virtual void hideFocus ()
virtual void clickedOnContents ()
bool acceptEditorAfterDeleteContents () const
virtual void setFocus ()
bool cursorAtNewRow ()
void setParentDataItemInterface (KexiDataItemInterface *parentDataItemInterface)

Protected Member Functions

virtual void setValueInternal (const QVariant &add, bool removeOld)=0
void signalValueChanged ()

Protected Attributes

KexiDataItemChangesListenerm_listener
QVariant m_origValue
KexiDataItemInterfacem_parentDataItemInterface
bool m_hasFocusableWidget: 1
bool m_disable_signalValueChanged: 1
bool m_acceptEditorAfterDeleteContents: 1

Member Function Documentation

bool KexiDataItemInterface::acceptEditorAfterDeleteContents  )  const [inline]
 

Returns:
true if editing should be accepted immediately after deleting contents for the cell (usually using Delete key). This flag is false by default, and is true e.g. for date, time and datetime types.

Definition at line 161 of file kexidataiteminterface.h.

virtual void KexiDataItemInterface::clear  )  [pure virtual]
 

clears item's data, so the data will contain NULL data

Implemented in KexiDBAutoField, KexiDBCheckBox, KexiDBDateEdit, KexiDBDateTimeEdit, KexiDBDoubleSpinBox, KexiDBForm, KexiDBImageBox, KexiDBIntSpinBox, KexiDBLabel, KexiDBLineEdit, KexiDBTextEdit, KexiDBTimeEdit, KexiBlobTableEdit, KexiKIconTableEdit, KexiBoolTableEdit, KexiComboBoxTableEdit, and KexiInputTableEdit.

void KexiDataItemInterface::clickedOnContents  )  [virtual]
 

Allows to define reaction for clicking on cell's contents. Currently it's used for editor of type boolean, where we want to toggle true/false on single mouse click.

See also:
hasFocusableWidget(), KexiBoolTableEdit. Default implementation does nothing.

Reimplemented in KexiBoolTableEdit.

Definition at line 99 of file kexidataiteminterface.cpp.

virtual KexiDB::QueryColumnInfo* KexiDataItemInterface::columnInfo  )  const [pure virtual]
 

Returns:
column information for this item

Implemented in KexiFormDataItemInterface, and KexiTableEdit.

virtual bool KexiDataItemInterface::cursorAtEnd  )  [pure virtual]
 

Returns:
true if the item widget's cursor (whatever that means, eg. line edit cursor) is at the end of editor's contents. This can inform table/form view that after pressing "right arrow" key should stop editing and move to a field on the right hand.

Implemented in KexiDBAutoField, KexiDBCheckBox, KexiDBDateEdit, KexiDBDateTimeEdit, KexiDBDoubleSpinBox, KexiDBForm, KexiDBImageBox, KexiDBIntSpinBox, KexiDBLabel, KexiDBLineEdit, KexiDBTextEdit, KexiDBTimeEdit, KexiBlobTableEdit, KexiKIconTableEdit, KexiBoolTableEdit, and KexiInputTableEdit.

virtual bool KexiDataItemInterface::cursorAtStart  )  [pure virtual]
 

Returns:
true if the item widget's cursor (whatever that means, eg. line edit cursor) is at the beginning of editor's contents. This can inform table/form view that after pressing "left arrow" key should stop editing and move to a field on the left hand.

Implemented in KexiDBAutoField, KexiDBCheckBox, KexiDBDateEdit, KexiDBDateTimeEdit, KexiDBDoubleSpinBox, KexiDBForm, KexiDBImageBox, KexiDBIntSpinBox, KexiDBLabel, KexiDBLineEdit, KexiDBTextEdit, KexiDBTimeEdit, KexiBlobTableEdit, KexiKIconTableEdit, KexiBoolTableEdit, and KexiInputTableEdit.

virtual KexiDB::Field* KexiDataItemInterface::field  )  const [pure virtual]
 

Returns:
field information for this item

Implemented in KexiFormDataItemInterface, and KexiTableEdit.

bool KexiDataItemInterface::hasFocusableWidget  )  const [inline]
 

Returns:
true if this editor offers a widget (e.g. line edit) that we can move focus to. Editor for boolean values has this set to false (see KexiBoolTableEdit). This is true by default. You can override this flag by changing m_hasFocusableWidget in your subclass' constructor.

Definition at line 137 of file kexidataiteminterface.h.

void KexiDataItemInterface::hideFocus  )  [virtual]
 

Hides additional elements that are needed for indicating that the current cell is selected. For reimplementation. By default does nothing.

Reimplemented in KexiComboBoxTableEdit.

Definition at line 95 of file kexidataiteminterface.cpp.

virtual void KexiDataItemInterface::hideWidget  )  [inline, virtual]
 

Hides item's widget, if available.

Reimplemented in KexiFormDataItemInterface, and KexiTableEdit.

Definition at line 112 of file kexidataiteminterface.h.

void KexiDataItemInterface::installListener KexiDataItemChangesListener listener  )  [virtual]
 

Sets listener. No need to reimplement this.

Reimplemented in KexiDBAutoField.

Definition at line 84 of file kexidataiteminterface.cpp.

virtual bool KexiDataItemInterface::isReadOnly  )  const [inline, virtual]
 

Returns:
'readOnly' flag for this item. The flag is usually taken from the item's widget, e.g. KLineEdit::isReadOnly(). By default, always returns false.

Reimplemented in KexiDBAutoField, KexiDBCheckBox, KexiDBDateEdit, KexiDBDateTimeEdit, KexiDBDoubleSpinBox, KexiDBForm, KexiDBImageBox, KexiDBIntSpinBox, KexiDBLabel, KexiDBLineEdit, KexiDBTextEdit, and KexiDBTimeEdit.

Definition at line 106 of file kexidataiteminterface.h.

virtual void KexiDataItemInterface::setColumnInfo KexiDB::QueryColumnInfo cinfo  )  [pure virtual]
 

Used internally to set column information.

Implemented in KexiFormDataItemInterface, KexiDBAutoField, KexiDBLabel, KexiDBLineEdit, KexiDBTextEdit, and KexiTableEdit.

void KexiDataItemInterface::setParentDataItemInterface KexiDataItemInterface parentDataItemInterface  )  [inline]
 

Sets a pointer to a Parent Data Item Interface. This pointer is 0 by default, but can be set by parent widget if this interface is a building block of a larger data widget. It is the case for KexiDBFieldEdit widget (see KexiDBFieldEdit::createEditor()). Use with care. signalValueChanged() method will check this pointer, and if it's not 0, m_parentDataItemInterface->signalValueChanged() is called, so a changes can be signalled at higher level.

Definition at line 172 of file kexidataiteminterface.h.

void KexiDataItemInterface::setValue const QVariant &  value,
const QVariant &  add = QVariant(),
bool  removeOld = false
 

Just initializes value, and calls init(const QString& add, bool removeOld). If removeOld is true, current value is set up as add. If removeOld if false, current value is set up as value + add. value is stored as 'old value' -it'd be usable in the future (e.g. Combo Box editor can use old value if current value does not match any item on the list). Called by KexiTableView and others.

Definition at line 47 of file kexidataiteminterface.cpp.

virtual void KexiDataItemInterface::setValueInternal const QVariant &  add,
bool  removeOld
[protected, pure virtual]
 

Initializes this editor with add value, which should be somewhat added to the current value (already storted in m_origValue). If removeOld is true, a value should be set to add, otherwise -it should be set to current m_origValue + add, if possible. Implement this.

Implemented in KexiDBAutoField, KexiDBCheckBox, KexiDBDateEdit, KexiDBDateTimeEdit, KexiDBDoubleSpinBox, KexiDBForm, KexiDBImageBox, KexiDBIntSpinBox, KexiDBLabel, KexiDBLineEdit, KexiDBTextEdit, KexiDBTimeEdit, KexiBlobTableEdit, KexiKIconTableEdit, KexiBoolTableEdit, KexiComboBoxTableEdit, KexiDateTableEdit, KexiDateTimeTableEdit, KexiInputTableEdit, and KexiTimeTableEdit.

void KexiDataItemInterface::showFocus const QRect &  r,
bool  readOnly
[virtual]
 

Displays additional elements that are needed for indicating that the current cell is selected. For example, combobox editor (KexiComboBoxTableEdit) moves and shows dropdown button. r is the rectangle for the cell. If readOnly is true, additional elements should be visually disabled, e.g. dropdown button of the combobox editor should be disabled. For reimplementation. By default does nothing.

Reimplemented in KexiComboBoxTableEdit.

Definition at line 89 of file kexidataiteminterface.cpp.

virtual void KexiDataItemInterface::showWidget  )  [inline, virtual]
 

Shows item's widget, if available.

Reimplemented in KexiFormDataItemInterface, and KexiTableEdit.

Definition at line 115 of file kexidataiteminterface.h.

void KexiDataItemInterface::signalValueChanged  )  [protected]
 

Call this in your implementation when value changes, so installed listener can react on this change. If there is a parent data item defined (see setParentDataItemInterface()), parent's signalValueChanged() method will be called instead.

Definition at line 56 of file kexidataiteminterface.cpp.

virtual QVariant KexiDataItemInterface::value  )  [pure virtual]
 

Returns:
value currently represented by this item.

Implemented in KexiDBAutoField, KexiDBCheckBox, KexiDBDateEdit, KexiDBDateTimeEdit, KexiDBDoubleSpinBox, KexiDBForm, KexiDBImageBox, KexiDBIntSpinBox, KexiDBLabel, KexiDBLineEdit, KexiDBTextEdit, KexiDBTimeEdit, KexiBlobTableEdit, KexiKIconTableEdit, KexiBoolTableEdit, KexiComboBoxTableEdit, KexiDateTableEdit, KexiDateTimeTableEdit, KexiInputTableEdit, and KexiTimeTableEdit.

bool KexiDataItemInterface::valueChanged  )  [virtual]
 

Returns:
true if editor's value is changed (compared to original value)

Reimplemented in KexiDBAutoField, KexiComboBoxTableEdit, and KexiInputTableEdit.

Definition at line 67 of file kexidataiteminterface.cpp.

virtual bool KexiDataItemInterface::valueIsEmpty  )  [pure virtual]
 

Returns:
true if editor's value is empty (not necessary null). Only few data types can accept "EMPTY" property (use KexiDB::Field::hasEmptyProperty() to check this). Used for checking if a given constraint within table of form is met.

Implemented in KexiDBAutoField, KexiDBCheckBox, KexiDBDateEdit, KexiDBDateTimeEdit, KexiDBDoubleSpinBox, KexiDBForm, KexiDBImageBox, KexiDBIntSpinBox, KexiDBLabel, KexiDBLineEdit, KexiDBTextEdit, KexiDBTimeEdit, KexiBlobTableEdit, KexiKIconTableEdit, KexiBoolTableEdit, KexiComboBoxTableEdit, KexiDateTableEdit, KexiDateTimeTableEdit, KexiInputTableEdit, and KexiTimeTableEdit.

virtual bool KexiDataItemInterface::valueIsNull  )  [pure virtual]
 

Returns:
true if editor's value is null (not empty) Used for checking if a given constraint within table or form is met.

Implemented in KexiDBAutoField, KexiDBCheckBox, KexiDBDateEdit, KexiDBDateTimeEdit, KexiDBDoubleSpinBox, KexiDBForm, KexiDBImageBox, KexiDBIntSpinBox, KexiDBLabel, KexiDBLineEdit, KexiDBTextEdit, KexiDBTimeEdit, KexiBlobTableEdit, KexiKIconTableEdit, KexiBoolTableEdit, KexiComboBoxTableEdit, KexiDateTableEdit, KexiDateTimeTableEdit, KexiInputTableEdit, and KexiTimeTableEdit.

bool KexiDataItemInterface::valueIsValid  )  [virtual]
 

Returns:
true if editor's value is valid for a given type Used for checking if an entered value is valid, E.g. a part of time value can be entered: "12:8" and this is invalid, not only null. Null time or date is valid in Kexi, so it is not enough to test value().isValid(). Default implementation just returns true.

Reimplemented in KexiDateTableEdit, KexiDateTimeTableEdit, and KexiTimeTableEdit.

Definition at line 103 of file kexidataiteminterface.cpp.

virtual QWidget* KexiDataItemInterface::widget  )  [pure virtual]
 

Returns:
the view widget of this item, e.g. line edit widget.

Implemented in KexiFormDataItemInterface, KexiDBCheckBox, KexiDBDateEdit, KexiDBDateTimeEdit, KexiDBDoubleSpinBox, KexiDBForm, KexiDBImageBox, KexiDBIntSpinBox, KexiDBLabel, KexiDBLineEdit, KexiDBTextEdit, KexiDBTimeEdit, and KexiTableEdit.


Member Data Documentation

KexiDataItemInterface* KexiDataItemInterface::m_parentDataItemInterface [protected]
 

See also:
parentDataItemInterface()

Definition at line 198 of file kexidataiteminterface.h.


The documentation for this class was generated from the following files:
KDE Home | KDE Accessibility Home | Description of Access Keys