kexi
KexiQueryDesignerGuiEditor Class Reference
#include <kexiquerydesignerguieditor.h>

Detailed Description
Design view of the Query Designer.Definition at line 59 of file kexiquerydesignerguieditor.h.
Public Slots | |
virtual void | setFocus () |
Public Member Functions | |
KexiQueryDesignerGuiEditor (KexiMainWindow *mainWin, QWidget *parent, const char *name=0) | |
KexiRelationWidget * | relationView () const |
virtual QSize | sizeHint () const |
Protected Slots | |
void | slotDragOverTableRow (KexiTableItem *item, int row, QDragMoveEvent *e) |
void | slotDroppedAtRow (KexiTableItem *item, int row, QDropEvent *ev, KexiTableItem *&newItem) |
void | slotNewItemAppendedForAfterDeletingInSpreadSheetMode () |
void | slotTableAdded (KexiDB::TableSchema &t) |
void | slotTableHidden (KexiDB::TableSchema &t) |
void | slotBeforeCellChanged (KexiTableItem *item, int colnum, QVariant &newValue, KexiDB::ResultInfo *result) |
void | slotRowInserted (KexiTableItem *item, uint row, bool repaint) |
void | slotTablePositionChanged (KexiRelationViewTableContainer *) |
void | slotAboutConnectionRemove (KexiRelationViewConnection *) |
void | slotTableFieldDoubleClicked (KexiDB::TableSchema *table, const QString &fieldName) |
bool | loadLayout () |
bool | storeLayout () |
void | showTablesForQuery (KexiDB::QuerySchema *query) |
void | showFieldsOrRelationsForQueryInternal (KexiDB::QuerySchema *query, bool showFields, bool showRelations, KexiDB::ResultInfo &result) |
void | showFieldsAndRelationsForQuery (KexiDB::QuerySchema *query, KexiDB::ResultInfo &result) |
void | showFieldsForQuery (KexiDB::QuerySchema *query, KexiDB::ResultInfo &result) |
void | showRelationsForQuery (KexiDB::QuerySchema *query, KexiDB::ResultInfo &result) |
void | addConnection (KexiDB::Field *masterField, KexiDB::Field *detailsField) |
void | slotPropertyChanged (KoProperty::Set &list, KoProperty::Property &property) |
void | slotNewItemStored (KexiPart::Item &) |
void | slotItemRemoved (const KexiPart::Item &item) |
void | slotItemRenamed (const KexiPart::Item &item, const QCString &oldName) |
Protected Member Functions | |
void | initTableColumns () |
void | initTableRows () |
virtual tristate | beforeSwitchTo (int mode, bool &dontStore) |
virtual tristate | afterSwitchFrom (int mode) |
virtual KexiDB::SchemaData * | storeNewData (const KexiDB::SchemaData &sdata, bool &cancel) |
virtual tristate | storeData (bool dontAsk=false) |
void | updateColumnsData () |
virtual KoProperty::Set * | propertySet () |
KoProperty::Set * | createPropertySet (int row, const QString &tableName, const QString &fieldName, bool newOne=false) |
bool | buildSchema (QString *errMsg=0) |
KexiQueryPart::TempData * | tempData () const |
KexiTableItem * | createNewRow (const QString &tableName, const QString &fieldName, bool visible) const |
KexiDB::BaseExpr * | parseExpressionString (const QString &fullString, int &token, bool allowRelationalOperator) |
QCString | generateUniqueAlias () const |
void | updatePropertiesVisibility (KoProperty::Set &buf) |
Friends | |
class | KexiQueryView |
Member Function Documentation
void KexiQueryDesignerGuiEditor::initTableColumns | ( | ) | [protected] |
void KexiQueryDesignerGuiEditor::initTableRows | ( | ) | [protected] |
tristate KexiQueryDesignerGuiEditor::beforeSwitchTo | ( | int | mode, | |
bool & | dontStore | |||
) | [protected, virtual] |
called by KexiDialogBase::switchToViewMode() right before dialog is switched to new mode By default does nothing. Reimplement this if you need to do something before switching to this view.
- Returns:
- true if you accept or false if a error occupied and view shouldn't change If there is no error but switching should be just cancelled (probably after showing some info messages), you need to return cancelled. Set dontStore to true (it's false by default) if you want to avoid data storing by storeData() or storeNewData().
Reimplemented from KexiViewBase.
Definition at line 570 of file kexiquerydesignerguieditor.cpp.
tristate KexiQueryDesignerGuiEditor::afterSwitchFrom | ( | int | mode | ) | [protected, virtual] |
called by KexiDialogBase::switchToViewMode() right after dialog is switched to new mode By default does nothing. Reimplement this if you need to do something after switching to this view.
- Returns:
- true if you accept or false if a error occupied and view shouldn't change If there is no error but switching should be just cancelled (probably after showing some info messages), you need to return cancelled.
Reimplemented from KexiViewBase.
Definition at line 618 of file kexiquerydesignerguieditor.cpp.
KexiDB::SchemaData * KexiQueryDesignerGuiEditor::storeNewData | ( | const KexiDB::SchemaData & | sdata, | |
bool & | cancel | |||
) | [protected, virtual] |
Tells this dialog to create and store data of the new object pointed by sdata on the backend. Called by KexiDialogBase::storeNewData(). Default implementation:
- makes a deep copy of sdata
- stores object schema data sdata in 'kexi__objects' internal table using Connection::storeObjectSchemaData(). Reimpelment this for your needs. Requirements:
- deep copy of sdata should be made
- schema data should be created at the backend (by calling KexiViewBase::storeNewData(const KexiDB::SchemaData& sdata)), or using Connection::storeObjectSchemaData() or more specialized method. For example, KexiAlterTableDialog uses Connection::createTable(TableSchema) for this (tableschema is SchemaData subclass) to store more information than just a schem adata. You should use such subclasses if needed. Should return newly created schema data object on success. In this case, do not store schema object yourself (make deep copy if needed).
Reimplemented from KexiViewBase.
Definition at line 695 of file kexiquerydesignerguieditor.cpp.
tristate KexiQueryDesignerGuiEditor::storeData | ( | bool | dontAsk = false |
) | [protected, virtual] |
Tells this view to store data changes on the backend. Called by KexiDialogBase::storeData(). Default implementation:
- makes a deep copy of sdata
- stores object schema data sdata in 'kexi__objects' internal table using Connection::storeObjectSchemaData(). If dontAsk is true, no question dialog will be shown to the user. The default is false.
Reimpelment this for your needs. Should return true on success or cancelled when the task should be cancelled.
- See also:
- storeNewData()
Reimplemented from KexiViewBase.
Definition at line 728 of file kexiquerydesignerguieditor.cpp.
void KexiQueryDesignerGuiEditor::updateColumnsData | ( | ) | [protected] |
Updates data in columns depending on tables that are currently inserted. Tabular Data in combo box popups is updated as well.
- Todo:
- what about query?
Definition at line 274 of file kexiquerydesignerguieditor.cpp.
KoProperty::Set * KexiQueryDesignerGuiEditor::propertySet | ( | ) | [protected, virtual] |
- Returns:
- property buffer associated with currently selected row (i.e. field) or 0 if current row is empty.
Reimplemented from KexiViewBase.
Definition at line 1676 of file kexiquerydesignerguieditor.cpp.
KoProperty::Set * KexiQueryDesignerGuiEditor::createPropertySet | ( | int | row, | |
const QString & | tableName, | |||
const QString & | fieldName, | |||
bool | newOne = false | |||
) | [protected] |
- Todo:
- add table_field icon (add buff->addProperty(prop = new KexiProperty("this:iconName", "table_field") );
Definition at line 1697 of file kexiquerydesignerguieditor.cpp.
bool KexiQueryDesignerGuiEditor::buildSchema | ( | QString * | errMsg = 0 |
) | [protected] |
Builds query schema out of information provided by gui. The schema is stored in temp->query member. errMsg is optional error message returned.
- Returns:
- true on proper schema creation.
- Todo:
- what about query?
allowRelationalOperator
set
- Todo:
- what about query?
- Todo:
- support expressions here
- Todo:
- ok, but not for expressions
Definition at line 361 of file kexiquerydesignerguieditor.cpp.
KexiTableItem * KexiQueryDesignerGuiEditor::createNewRow | ( | const QString & | tableName, | |
const QString & | fieldName, | |||
bool | visible | |||
) | const [protected] |
Helper: allocates and initializes new table view's row. Doesn't insert it, just returns. tableName and fieldName shoudl be provided. visible flag sets value for "Visible" column.
Definition at line 1188 of file kexiquerydesignerguieditor.cpp.
KexiDB::BaseExpr * KexiQueryDesignerGuiEditor::parseExpressionString | ( | const QString & | fullString, | |
int & | token, | |||
bool | allowRelationalOperator | |||
) | [protected] |
- Todo:
- this is primitive, temporary: reuse SQL parser
- Todo:
- what about query?
Definition at line 1292 of file kexiquerydesignerguieditor.cpp.
void KexiQueryDesignerGuiEditor::slotNewItemAppendedForAfterDeletingInSpreadSheetMode | ( | ) | [protected, slot] |
Reaction on appending a new item after deleting one.
Definition at line 1235 of file kexiquerydesignerguieditor.cpp.
void KexiQueryDesignerGuiEditor::slotBeforeCellChanged | ( | KexiTableItem * | item, | |
int | colnum, | |||
QVariant & | newValue, | |||
KexiDB::ResultInfo * | result | |||
) | [protected, slot] |
Called before cell change in tableview.
allowSignals
allowSignals
- Todo:
- what about expressions?
allowSignals
- Todo:
- this is primitive, temporary: reuse SQL parser
Definition at line 1417 of file kexiquerydesignerguieditor.cpp.
bool KexiQueryDesignerGuiEditor::loadLayout | ( | ) | [protected, slot] |
Loads layout of relation GUI diagram.
Definition at line 1068 of file kexiquerydesignerguieditor.cpp.
bool KexiQueryDesignerGuiEditor::storeLayout | ( | ) | [protected, slot] |
Stores layout of relation GUI diagram.
- Todo:
- what about query?
Definition at line 1131 of file kexiquerydesignerguieditor.cpp.
void KexiQueryDesignerGuiEditor::showFieldsOrRelationsForQueryInternal | ( | KexiDB::QuerySchema * | query, | |
bool | showFields, | |||
bool | showRelations, | |||
KexiDB::ResultInfo & | result | |||
) | [protected, slot] |
- Todo:
- : now only sigle-field relationships are implemented!
- Todo:
- move this check to parser on QuerySchema creation or to QuerySchema creation (WHERE expression should be then simplified by removing joins
- Todo:
- testing primary key here is too simplified; maybe look ar isForeignKey() or indices..
- Todo:
- what about multifield joins?
- Todo:
- addConnection() should have "bool oneToOne" arg, for 1-to-1 relations
- Todo:
- fix for !INFIX operators
- Todo:
- what about ALIAS?
- Todo:
- fix for !INFIX operators
- Todo:
- if (!columnAlias.isEmpty())
- Todo:
- set["alias"].setValue(columnAlias, false);
Definition at line 790 of file kexiquerydesignerguieditor.cpp.
void KexiQueryDesignerGuiEditor::showFieldsAndRelationsForQuery | ( | KexiDB::QuerySchema * | query, | |
KexiDB::ResultInfo & | result | |||
) | [protected, slot] |
convenience method equal to showFieldsOrRelationsForQueryInternal(query, true, true)
Definition at line 784 of file kexiquerydesignerguieditor.cpp.
void KexiQueryDesignerGuiEditor::showFieldsForQuery | ( | KexiDB::QuerySchema * | query, | |
KexiDB::ResultInfo & | result | |||
) | [protected, slot] |
convenience method equal to showFieldsOrRelationsForQueryInternal(query, true, false)
Definition at line 774 of file kexiquerydesignerguieditor.cpp.
void KexiQueryDesignerGuiEditor::showRelationsForQuery | ( | KexiDB::QuerySchema * | query, | |
KexiDB::ResultInfo & | result | |||
) | [protected, slot] |
convenience method equal to showFieldsOrRelationsForQueryInternal(query, false, true)
Definition at line 779 of file kexiquerydesignerguieditor.cpp.
The documentation for this class was generated from the following files: