kexi

#include <kexidataiteminterface.h>

Inheritance diagram for KexiDataItemInterface:
KexiFormDataItemInterface KexiTableEdit KexiDBAutoField KexiDBCheckBox KexiDBDateEdit KexiDBDateTimeEdit KexiDBDoubleSpinBox KexiDBForm KexiDBImageBox KexiDBIntSpinBox KexiDBLabel KexiDBLineEdit KexiDBTextEdit KexiDBTimeEdit KexiBoolTableEdit KexiInputTableEdit KexiTDEIconTableEdit

Public Member Functions

void setValue (const TQVariant &value, const TQVariant &add=TQVariant(), bool removeOld=false, const TQVariant *visibleValue=0)
virtual KexiDB::Field * field () const =0
virtual KexiDB::QueryColumnInfo * columnInfo () const =0
virtual void setColumnInfo (KexiDB::QueryColumnInfo *cinfo)=0
virtual void installListener (KexiDataItemChangesListener *listener)
virtual TQVariant value ()=0
virtual bool valueIsValid ()
virtual bool valueIsNull ()=0
virtual bool valueIsEmpty ()=0
virtual TQVariant visibleValue ()
virtual bool isReadOnly () const
virtual TQWidget * widget ()=0
virtual void hideWidget ()
virtual void showWidget ()
virtual bool valueChanged ()
virtual bool cursorAtStart ()=0
virtual bool cursorAtEnd ()=0
virtual void moveCursorToEnd ()
virtual void moveCursorToStart ()
virtual void selectAll ()
virtual void clear ()=0
bool hasFocusableWidget () const
virtual void showFocus (const TQRect &r, bool readOnly)
virtual void hideFocus ()
virtual void clickedOnContents ()
bool acceptEditorAfterDeleteContents () const
virtual void setFocus ()
bool cursorAtNewRow ()
void setParentDataItemInterface (KexiDataItemInterface *parentDataItemInterface)
KexiDataItemInterface * parentInterface () const
virtual void handleAction (const TQString &actionName)

Protected Member Functions

virtual void setValueInternal (const TQVariant &add, bool removeOld)=0
virtual void setVisibleValueInternal (const TQVariant &value)
virtual void signalValueChanged ()
virtual void beforeSignalValueChanged ()
KexiDataItemChangesListener * listener ()

Protected Attributes

TQGuardedPtr< TQObject > m_listenerObject
KexiDataItemChangesListener * m_listener
bool m_listenerIsTQObject
TQVariant m_origValue
KexiDataItemInterface * m_parentDataItemInterface
bool m_hasFocusableWidget: 1
bool m_disable_signalValueChanged: 1
bool m_acceptEditorAfterDeleteContents: 1

Detailed Description

An interface for declaring widgets to be data-aware.

Definition at line 51 of file kexidataiteminterface.h.

Constructor & Destructor Documentation

◆ KexiDataItemInterface()

KexiDataItemInterface::KexiDataItemInterface ( )

Definition at line 34 of file kexidataiteminterface.cpp.

◆ ~KexiDataItemInterface()

KexiDataItemInterface::~KexiDataItemInterface ( )
virtual

Definition at line 44 of file kexidataiteminterface.cpp.

Member Function Documentation

◆ acceptEditorAfterDeleteContents()

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 184 of file kexidataiteminterface.h.

◆ beforeSignalValueChanged()

virtual void KexiDataItemInterface::beforeSignalValueChanged ( )
inlineprotectedvirtual

Used to perform some actions before signalValueChanged() call. We need this because the intrface is not TQObject and thus has got no real signals. Used in KexiDBComboBox.

Reimplemented in KexiDBComboBox.

Definition at line 232 of file kexidataiteminterface.h.

◆ clear()

virtual void KexiDataItemInterface::clear ( )
pure virtual

◆ clickedOnContents()

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 129 of file kexidataiteminterface.cpp.

◆ columnInfo()

virtual KexiDB::QueryColumnInfo * KexiDataItemInterface::columnInfo ( ) const
pure virtual
Returns
column information for this item

Implemented in KexiFormDataItemInterface, and KexiTableEdit.

◆ cursorAtEnd()

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 KexiBoolTableEdit, KexiDBAutoField, KexiDBCheckBox, KexiDBDateEdit, KexiDBDateTimeEdit, KexiDBDoubleSpinBox, KexiDBForm, KexiDBImageBox, KexiDBIntSpinBox, KexiDBLabel, KexiDBLineEdit, KexiDBTextEdit, KexiDBTimeEdit, KexiInputTableEdit, and KexiTDEIconTableEdit.

◆ cursorAtNewRow()

bool KexiDataItemInterface::cursorAtNewRow ( )

Definition at line 143 of file kexidataiteminterface.cpp.

◆ cursorAtStart()

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 KexiBoolTableEdit, KexiDBAutoField, KexiDBCheckBox, KexiDBDateEdit, KexiDBDateTimeEdit, KexiDBDoubleSpinBox, KexiDBForm, KexiDBImageBox, KexiDBIntSpinBox, KexiDBLabel, KexiDBLineEdit, KexiDBTextEdit, KexiDBTimeEdit, KexiInputTableEdit, and KexiTDEIconTableEdit.

◆ field()

virtual KexiDB::Field * KexiDataItemInterface::field ( ) const
pure virtual
Returns
field information for this item

Implemented in KexiComboBoxTableEdit, KexiDBComboBox, KexiFormDataItemInterface, and KexiTableEdit.

◆ handleAction()

virtual void KexiDataItemInterface::handleAction ( const TQString & actionName)
inlinevirtual

Handles action having standard name actionName. Action could be: "edit_cut", "edit_paste", etc. For reimplementation.

Reimplemented in KexiBoolTableEdit, KexiComboBoxTableEdit, KexiDateTableEdit, KexiDateTimeTableEdit, KexiDBLineEdit, KexiInputTableEdit, and KexiTimeTableEdit.

Definition at line 204 of file kexidataiteminterface.h.

◆ hasFocusableWidget()

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 160 of file kexidataiteminterface.h.

◆ hideFocus()

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 125 of file kexidataiteminterface.cpp.

◆ hideWidget()

virtual void KexiDataItemInterface::hideWidget ( )
inlinevirtual

Hides item's widget, if available.

Reimplemented in KexiFormDataItemInterface, and KexiTableEdit.

Definition at line 123 of file kexidataiteminterface.h.

◆ installListener()

void KexiDataItemInterface::installListener ( KexiDataItemChangesListener * listener)
virtual

Sets listener. No need to reimplement this.

Reimplemented in KexiDBAutoField.

Definition at line 111 of file kexidataiteminterface.cpp.

◆ isReadOnly()

virtual bool KexiDataItemInterface::isReadOnly ( ) const
inlinevirtual
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 117 of file kexidataiteminterface.h.

◆ listener()

KexiDataItemChangesListener * KexiDataItemInterface::listener ( )
protected

Definition at line 102 of file kexidataiteminterface.cpp.

◆ moveCursorToEnd()

virtual void KexiDataItemInterface::moveCursorToEnd ( )
inlinevirtual

Moves cursor after the last character (or element). For implementation in items supporting text cursor's movement; by default does nothing.

Definition at line 143 of file kexidataiteminterface.h.

◆ moveCursorToStart()

virtual void KexiDataItemInterface::moveCursorToStart ( )
inlinevirtual

Moves cursor before the first character (or element). For implementation in items supporting text cursor's movement; by default does nothing.

Definition at line 147 of file kexidataiteminterface.h.

◆ parentInterface()

KexiDataItemInterface * KexiDataItemInterface::parentInterface ( ) const
inline
Returns
a pointer to a Parent Data Item Interface.
See also
setParentDataItemInterface()

Definition at line 199 of file kexidataiteminterface.h.

◆ selectAll()

virtual void KexiDataItemInterface::selectAll ( )
inlinevirtual

Selects all characters (or elements) of the item. For implementation in items supporting text or elements; by default does nothing.

Definition at line 151 of file kexidataiteminterface.h.

◆ setColumnInfo()

virtual void KexiDataItemInterface::setColumnInfo ( KexiDB::QueryColumnInfo * cinfo)
pure virtual

◆ setFocus()

virtual void KexiDataItemInterface::setFocus ( )
inlinevirtual

Definition at line 186 of file kexidataiteminterface.h.

◆ setParentDataItemInterface()

void KexiDataItemInterface::setParentDataItemInterface ( KexiDataItemInterface * parentDataItemInterface)

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 138 of file kexidataiteminterface.cpp.

◆ setValue()

void KexiDataItemInterface::setValue ( const TQVariant & value,
const TQVariant & add = TQVariant(),
bool removeOld = false,
const TQVariant * visibleValue = 0 )

Just initializes value, and calls setValueInternal(const TQString& 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).

visibleValue (if not NULL) is passed to provide visible value to display instead of value. This is currently used only in case of the combo box form widget, where displayed content (usually a text of image) differs from the value of the widget (a numeric index).

This method is called by table view's and form's editors.

Definition at line 48 of file kexidataiteminterface.cpp.

◆ setValueInternal()

virtual void KexiDataItemInterface::setValueInternal ( const TQVariant & add,
bool removeOld )
protectedpure 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 KexiBoolTableEdit, KexiComboBoxTableEdit, KexiDateTableEdit, KexiDateTimeTableEdit, KexiDBAutoField, KexiDBCheckBox, KexiDBComboBox, KexiDBDateEdit, KexiDBDateTimeEdit, KexiDBDoubleSpinBox, KexiDBForm, KexiDBImageBox, KexiDBIntSpinBox, KexiDBLabel, KexiDBLineEdit, KexiDBTextEdit, KexiDBTimeEdit, KexiInputTableEdit, KexiTDEIconTableEdit, and KexiTimeTableEdit.

◆ setVisibleValueInternal()

void KexiDataItemInterface::setVisibleValueInternal ( const TQVariant & value)
protectedvirtual

Initializes this editor with value visible value. This is currently used only in case of the combo box form widget, where displayed content (usually a text of image) differs from the value of the widget (a numeric index). For implementation in the combo box widget, by default does nothing.

Reimplemented in KexiDBComboBox.

Definition at line 66 of file kexidataiteminterface.cpp.

◆ showFocus()

void KexiDataItemInterface::showFocus ( const TQRect & 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 119 of file kexidataiteminterface.cpp.

◆ showWidget()

virtual void KexiDataItemInterface::showWidget ( )
inlinevirtual

Shows item's widget, if available.

Reimplemented in KexiFormDataItemInterface, and KexiTableEdit.

Definition at line 126 of file kexidataiteminterface.h.

◆ signalValueChanged()

void KexiDataItemInterface::signalValueChanged ( )
protectedvirtual

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 71 of file kexidataiteminterface.cpp.

◆ value()

◆ valueChanged()

bool KexiDataItemInterface::valueChanged ( )
virtual
Returns
true if editor's value is changed (compared to original value)

Reimplemented in KexiComboBoxTableEdit, KexiDBAutoField, KexiDBComboBox, and KexiInputTableEdit.

Definition at line 85 of file kexidataiteminterface.cpp.

◆ valueIsEmpty()

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 KexiBoolTableEdit, KexiDateTableEdit, KexiDateTimeTableEdit, KexiDBAutoField, KexiDBCheckBox, KexiDBDateEdit, KexiDBDateTimeEdit, KexiDBDoubleSpinBox, KexiDBForm, KexiDBImageBox, KexiDBIntSpinBox, KexiDBLabel, KexiDBLineEdit, KexiDBTextEdit, KexiDBTimeEdit, KexiInputTableEdit, KexiTDEIconTableEdit, and KexiTimeTableEdit.

◆ valueIsNull()

virtual bool KexiDataItemInterface::valueIsNull ( )
pure virtual

◆ valueIsValid()

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, KexiDBAutoField, KexiDBLineEdit, and KexiTimeTableEdit.

Definition at line 133 of file kexidataiteminterface.cpp.

◆ visibleValue()

virtual TQVariant KexiDataItemInterface::visibleValue ( )
inlinevirtual
Returns
value that should be displayed for this item. Only used for items like combo box, where real value is an integer while displayed value is usually a text. For other item types this method should be empty.

Reimplemented in KexiComboBoxTableEdit, and KexiDBComboBox.

Definition at line 112 of file kexidataiteminterface.h.

◆ widget()

virtual TQWidget * KexiDataItemInterface::widget ( )
pure virtual

Member Data Documentation

◆ m_acceptEditorAfterDeleteContents

bool KexiDataItemInterface::m_acceptEditorAfterDeleteContents
protected

Definition at line 246 of file kexidataiteminterface.h.

◆ m_disable_signalValueChanged

bool KexiDataItemInterface::m_disable_signalValueChanged
protected

Definition at line 245 of file kexidataiteminterface.h.

◆ m_hasFocusableWidget

bool KexiDataItemInterface::m_hasFocusableWidget
protected

Definition at line 244 of file kexidataiteminterface.h.

◆ m_listener

KexiDataItemChangesListener* KexiDataItemInterface::m_listener
protected

Definition at line 238 of file kexidataiteminterface.h.

◆ m_listenerIsTQObject

bool KexiDataItemInterface::m_listenerIsTQObject
protected

Definition at line 239 of file kexidataiteminterface.h.

◆ m_listenerObject

TQGuardedPtr<TQObject> KexiDataItemInterface::m_listenerObject
protected

Definition at line 237 of file kexidataiteminterface.h.

◆ m_origValue

TQVariant KexiDataItemInterface::m_origValue
protected

Definition at line 240 of file kexidataiteminterface.h.

◆ m_parentDataItemInterface

KexiDataItemInterface* KexiDataItemInterface::m_parentDataItemInterface
protected
See also
parentDataItemInterface()

Definition at line 243 of file kexidataiteminterface.h.


The documentation for this class was generated from the following files: