25#ifndef KEXITABLEVIEWDATA_H
26#define KEXITABLEVIEWDATA_H
30#include <tqvaluevector.h>
34#include "kexitableitem.h"
36#include <kexidb/error.h>
54 typedef TQPtrList<KexiTableViewColumn> List;
55 typedef TQPtrListIterator<KexiTableViewColumn> ListIterator;
66 uint cconst = KexiDB::Field::NoConstraints,
67 uint options = KexiDB::Field::NoOptions,
68 uint length=0, uint precision=0,
69 TQVariant defaultValue=TQVariant(),
70 const TQString& caption = TQString(),
71 const TQString& description = TQString(),
76 const TQString& description = TQString());
84 virtual bool acceptsFirstChar( const TQChar& ch) const;
109 TQIconSet icon() const { return m_icon; }
145 inline KexiTableViewData * relatedData() const { return m_relatedData; }
154 void setRelatedDataEditable( bool set);
189 TQString m_captionAliasOrName;
198 KexiTableViewData* m_relatedData;
199 uint m_relatedDataPKeyID;
204 bool m_fieldOwned : 1;
206 bool m_relatedDataEditable : 1;
207 bool m_headerTextVisible : 1;
209 friend class KexiTableViewData;
216typedef TQPtrList<KexiTableItem> KexiTableViewDataBase;
228 typedef TQPtrListIterator<KexiTableItem> Iterator;
246 const TQValueList<TQVariant> &keys, const TQValueList<TQVariant> &values,
264 void setSorting( int column, bool ascending= true);
280 inline int globalColumnID( int visibleID) { return m_globalColumnsIDs.at( visibleID ); }
281 inline int visibleColumnID( int globalID) { return m_visibleColumnsIDs.at( globalID ); }
289 TQString dbTableName() const;
293 inline uint columnsCount() const { return columns.count(); }
295 inline KexiTableViewColumn* column(uint c) { return columns.at(c); }
316 virtual void setInsertingEnabled( bool set);
324 void clearRowEditBuffer();
336 bool updateRowEditBufferRef(KexiTableItem *item,
338 TQVariant *visibleValueForLookupField = 0);
342 TQVariant newval, bool allowSignals = true)
344 TQVariant newv(newval);
351 TQVariant newval, bool allowSignals = true)
362 bool saveRowChanges(KexiTableItem& item, bool repaint = false);
364 bool saveNewRow(KexiTableItem& item, bool repaint = false);
366 bool deleteRow(KexiTableItem& item, bool repaint = false);
370 void deleteRows( const TQValueList<int> &rowsToDelete, bool repaint = false );
382 virtual bool deleteAllRows( bool repaint = false);
388 virtual void clearInternal();
393 void insertRow(KexiTableItem& item, uint index, bool repaint = false);
401 int autoIncrementedColumn();
406 inline KexiTableItem* at( uint index ) { return KexiTableViewDataBase::at(index); }
407 inline virtual uint count() const { return KexiTableViewDataBase::count(); }
408 inline bool isEmpty () const { return KexiTableViewDataBase::isEmpty(); }
409 inline KexiTableItem* first() { return KexiTableViewDataBase::first(); }
410 inline KexiTableItem* last() { return KexiTableViewDataBase::last(); }
411 inline int findRef( const KexiTableItem* item ) { return KexiTableViewDataBase::findRef(item); }
412 inline void sort() { KexiTableViewDataBase::sort(); }
413 inline bool removeFirst() { return KexiTableViewDataBase::removeFirst(); }
414 inline bool removeLast() { return KexiTableViewDataBase::removeLast(); }
415 inline void append( const KexiTableItem* item ) { KexiTableViewDataBase::append(item); }
416 inline void prepend( const KexiTableItem* item ) { KexiTableViewDataBase::prepend(item); }
417 inline Iterator iterator() { return Iterator(* this); }
418 inline Iterator* createIterator() { return new Iterator(* this); }
428 inline KexiTableItem* createItem() const
429 { return new KexiTableItem(m_itemSize); }
477 void rowRepaintRequested(KexiTableItem&);
482 const TQValueList<TQVariant> &keys, const TQValueList<TQVariant> &values,
485 virtual int compareItems(Item item1, Item item2);
486 int cmpStr(Item item1, Item item2);
487 int cmpInt(Item item1, Item item2);
488 int cmpUInt(Item item1, Item item2);
489 int cmpLongLong(Item item1, Item item2);
490 int cmpULongLong(Item item1, Item item2);
491 int cmpDouble(Item item1, Item item2);
492 int cmpDate(Item item1, Item item2);
493 int cmpDateTime(Item item1, Item item2);
494 int cmpTime(Item item1, Item item2);
497 int cmpBLOB(Item item1, Item item2);
500 bool saveRow(KexiTableItem& item, bool insert, bool repaint);
510 static unsigned short charTable[];
512 TQGuardedPtr<KexiDB::Cursor> m_cursor;
519 uint m_visibleColumnsCount;
520 TQValueVector<int> m_visibleColumnsIDs, m_globalColumnsIDs;
523 bool m_insertingEnabled : 1;
532 int m_autoIncrementedColumn;
Provides database cursor functionality.
Helper class that assigns additional information for the column in a query.
KexiDB::QuerySchema provides information about database query.
provides data for single edited database row KexiDB::RowEditBuffer provides data for single edited ro...
KexiDB::Field * field() const
bool isHeaderTextVisible() const
void setHeaderTextVisible(bool visible)
void setIcon(const TQIconSet &icon)
bool isDBAware true if data is stored in DB, not only in memeory
void setVisible(bool v) Changes column visibility.
KexiTableViewData * m_data Data that this column is assigned to.
bool visible() const Column visibility. By default column is visible.
KexiUtils::Validator * validator() const
KexiDB::QueryColumnInfo * visibleLookupColumnInfo
KexiDB::QueryColumnInfo * columnInfo
KexiTableViewColumn(KexiDB::Field &f, bool owner=false)
bool relatedDataEditable() const
TQString captionAliasOrName() const
void setReadOnly(bool ro) forces readOnly flag to be set to ro
KexiTableViewData * relatedData() const
int m_realSortedColumn real sorted column number, set by setSorting(), used by cmp*() methods
KexiTableViewColumn::List columns
void reload() Emits reloadRequested() signal to reload presenters.
KexiTableViewData() not db-aware version
KexiDB::ResultInfo m_result used to faster lookup columns of simple type (not dbaware)
KexiDB::ResultInfo * result()
int cmpBLOB(Item item1, Item item2) Compare function for BLOB data (TQByteArray). Uses size as the weight.
void rowInserted(KexiTableItem *, uint index, bool repaint) A row has been inserted at index position (not db-aware data only).
bool saveRow(KexiTableItem &item, bool insert, bool repaint) internal: for saveRowChanges() and saveNewRow()
virtual bool isInsertingEnabled() const
void rowUpdated(KexiTableItem *) Current row has been updated.
void aboutToUpdateRow(KexiTableItem *item, KexiDB::RowEditBuffer *buffer, KexiDB::ResultInfo *result)
void rowInserted(KexiTableItem *, bool repaint) A row has been inserted.
bool updateRowEditBuffer(KexiTableItem *item, int colnum, TQVariant newval, bool allowSignals=true)
virtual void setReadOnly(bool set)
bool m_inside_acceptEditor
bool updateRowEditBufferRef(KexiTableItem *item, int colnum, KexiTableViewColumn *col, TQVariant &newval, bool allowSignals=true, TQVariant *visibleValueForLookupField=0)
virtual bool isReadOnly() const
void setSorting(int column, bool ascending=true)
void aboutToDeleteRow(KexiTableItem &item, KexiDB::ResultInfo *result, bool repaint)
void aboutToChangeCell(KexiTableItem *item, int colnum, TQVariant &newValue, KexiDB::ResultInfo *result)
void reloadRequested() Displayed data needs to be reloaded in all presenters.
bool containsROWIDInfo() const
void rowsDeleted(const TQValueList< int > &rowsToDelete) Rows have been deleted.
void aboutToInsertRow(KexiTableItem *item, KexiDB::ResultInfo *result, bool repaint)
void rowDeleted() Current row has been deleted.
bool updateRowEditBuffer(KexiTableItem *item, int colnum, KexiTableViewColumn *col, TQVariant newval, bool allowSignals=true)
A validator extending TQValidator with offline-checking for value's validity.
High-level database connectivity library with database backend drivers.
|