kexi

Todo List
Member ContainerFactory::ContainerFactory (TQObject *parent, const char *name, const TQStringList &args)

vflow icon

hflow icon

horizontal/vertical splitter icons

Class Event
add aliases for slot()?? (eg actionName())
Member FormScript::connectEvents ()
connect signals with actions
Member FormScript::execute (const TQString &functionName)

how do we give parameters?

support return value and arguments

Member FormScript::getCode (const TQString &functionName=TQString())
Allow to select only one function
Class KexiBLOBBuffer
support any KPart-compatible objects and more...
Member KexiBLOBBuffer::Handle::setStoredWidthID (Id_t id)

What about other handles for this item?

They were assuming it's unstored item, but it's stored now....

Member KexiBLOBBuffer::insertPixmap (const KURL &url)

what about searching by filename only and then compare data?

download the file if remote, then set fileName properly

err msg

Member KexiBLOBBuffer::insertPixmap (const TQPixmap &pixmap)
OK? What about jpegs?
Member KexiBLOBBuffer::insertPixmap (const KURL &url)
err msg
Member KexiBLOBBuffer::objectForId (Id_t id, bool stored)

err msg

use PreparedStatement

err msg

Member KexiBoolTableEdit::handleAction (const TQString &actionName)
handle defaultValue...
Member KexiBrowser::KexiBrowser (TQWidget *parent, KexiMainWindow *mainWin, int features=DefaultFeatures)

1.1: just add "Delete" tooltip and what's this

some of these actions can be supported once we deliver ACLs...

some of these actions can be supported once we deliver ACLs...

Member KexiBrowser::setProject (KexiProject *prj, const TQString &itemsMimeType=TQString(), TQString *partManagerErrorMessages=0)

FUTURE - don't do that when DESIGN MODE is OFF

FUTURE - don't do that when DESIGN MODE is OFF

Member KexiBrowser::slotNewObjectPopupAboutToShow ()
err
Member KexiComboBoxBase::rowToHighlightForLookupTable () const
for now we're assuming the id is INTEGER
Member KexiComboBoxBase::setValueInternal (const TQVariant &add, bool removeOld)

support more RowSourceType's, not only table

errmsg

Member KexiComboBoxBase::value ()
don't return just 1st row, but use autocompletion feature and: show message box if entered text does not match!
Member KexiComboBoxPopup::setData (KexiTableViewColumn *column, KexiDB::Field *field)

THIS IS PRIMITIVE: we'd need to employ KexiDB::Reference here!

errmsg

use SQL sub-parser here...

support more RowSourceType's, not only table and query

errmsg

errmsg

" " separator hardcoded...

Member KexiComboBoxTableEdit::createInternalEditor (KexiDB::QuerySchema &schema)
subtype?
Member KexiComboBoxTableEdit::handleAction (const TQString &actionName)
does not work with BLOBs!
Member KexiComboBoxTableEdit::handleCopyAction (const TQVariant &value, const TQVariant &visibleValue)
does not work with BLOBs!
Member KexiComboBoxTableEdit::widthForValue (TQVariant &val, const TQFontMetrics &fm)
ok?
Member KexiConnSelectorWidget::slotRemoteAddBtnClicked ()
msg?
Member KexiConnSelectorWidget::slotRemoteEditBtnClicked ()
msg?
Member KexiContextMenuUtils::updateTitle (TQPopupMenu *menu, const TQString &objectName, const TQString &objectTypeName, const TQString &iconName)
look at makeFirstCharacterUpperCaseInCaptions setting [bool] (see doc/dev/settings.txt)
Member KexiCSVExportWizard::KexiCSVExportWizard (const KexiCSVExport::Options &options, KexiMainWindow *mainWin, TQWidget *parent=0, const char *name=0)
1.1: for copying use "Always use above options for copying" string
Member KexiCSVImportDialog::accept ()

what about time and float/double types and different integer subtypes?

what about long text?

MOVE MOST OF THIS TO CORE/ (KexiProject?) after KexiDialogBase code is moved to non-gui place

make it better integrated with main window

: err

make this field hidden (what about e.g. pgsql?)

Member KexiCSVImportDialog::KexiCSVImportDialog (Mode mode, KexiMainWindow *mainWin, TQWidget *parent, const char *name=0)

reuse Clipboard too!

what about making it kexidb-independent?

Member KexiDataAwareObjectInterface::acceptEditor ()

also use for other error messages

validation rules for this value?

allow displaying user-defined warning

Member KexiDataAwareObjectInterface::cancelRowEdit ()
(js): cancel changes for this row!
Member KexiDataAwareObjectInterface::find (const TQVariant &valueToFind, const KexiSearchAndReplaceViewInterface::Options &options, bool next)
for regexp lastCharacter should be computed
Member KexiDataAwareObjectInterface::findNextAndReplace (const TQVariant &valueToFind, const TQVariant &replacement, const KexiSearchAndReplaceViewInterface::Options &options, bool replaceAll)
implement KexiDataAwareObjectInterface::findAndReplace()
Member KexiDataAwareObjectInterface::m_contentsMousePressEvent_dblClick
really keep this here and not in KexiTableView?
Member KexiDataAwareObjectInterface::m_horizontalHeader
make generic interface out of KexiTableViewHeader
Member KexiDataAwareObjectInterface::m_verticalHeader
make generic interface out of KexiRecordMarker
Member KexiDataAwareObjectInterface::setData (KexiTableViewData *data, bool owner=true)

: store sorting settings?

add col width configuration and storage

Member KexiDataAwareView::initActions ()

setAvailable("edit_replace", true);

plugSharedAction("data_filter", this, TQ_SLOT(???()));

update availability

plugSharedAction("edit_replace", this, TQ_SLOT(editReplace()));

m_actionClient->plugSharedAction(sharedAction("edit_replace")); //for proper shortcut

Member KexiDataSourcePage::KexiDataSourcePage (TQWidget *parent, const char *name=0)
allow to hide such helpers by adding global option
Member KexiDataSourcePage::slotFieldSelected ()
this should also work for expressions
Member KexiDataTable::filter ()
Member KexiDateFormatter::KexiDateFormatter ()

allow to override the format using column property and/or global app settings

more variables are possible here, see void TDELocale::setDateFormatShort() docs http://developer.kde.org/documentation/library/3.5-api/tdelibs-apidocs/tdecore/html/classTDELocale.html#a59

use TQRegExp (to replace Y by %1, etc.) instead of hardcoded "%1%299%399" because df may contain also other characters

Member KexiDateFormatter::~KexiDateFormatter ()
KexiDateFormatter(... settings ...);
Member KexiDateTableEdit::KexiDateTableEdit (KexiTableViewColumn &column, TQWidget *parent=0)
add TQValidator so date like "2006-59-67" cannot be even entered
Member KexiDateTableEdit::setValueInternal (const TQVariant &add, bool removeOld)
cut string if too long..
Member KexiDateTimeTableEdit::KexiDateTimeTableEdit (KexiTableViewColumn &column, TQWidget *parent=0)
add TQValidator so time like "99:88:77" cannot be even entered
Member KexiDateTimeTableEdit::setValueInternal (const TQVariant &add, bool removeOld)
cut string if too long..
Member KexiDB::AlterTableHandler::ChangeFieldPropertyAction::execute (Connection &conn, TableSchema &table)

errmsg

Member KexiDB::AlterTableHandler::execute (const TQString &tableName, ExecutionArguments &args)

this field can be notNull or notEmpty - check whether the default is ok (or do this checking also in the Table Designer?)

err msg?

support expressions (eg. TODAY()) as a default value

delete newTable...

better errmsg?

err msg?

err msg?

err msg?

support unique, validatationRule, unsigned flags...

For some cases, table schema can completely change, so it will be needed to refresh all objects depending on it. Implement this!

delete newTable...

delete newTable...

delete newTable...

check for foreignKey values...

Member KexiDB::AlterTableHandler::InsertFieldAction::execute (Connection &conn, TableSchema &table)
Member KexiDB::AlterTableHandler::InsertFieldAction::simplifyActions (ActionDictDict &fieldActions)
not checked
Member KexiDB::AlterTableHandler::InsertFieldAction::updateAlteringRequirements ()

sometimes add DataConversionRequired (e.g. when relationships require removing orphaned records) ?

Member KexiDB::AlterTableHandler::InsertFieldAction::updateTableSchema (TableSchema &table, Field *field, TQMap< TQString, TQString > &fieldMap)
add it only when there should be fixed value (e.g. default) set for this new field...
Member KexiDB::AlterTableHandler::MoveFieldPositionAction::execute (Connection &conn, TableSchema &table)
Member KexiDB::AlterTableHandler::MoveFieldPositionAction::simplifyActions (ActionDictDict &fieldActions)
Member KexiDB::AlterTableHandler::MoveFieldPositionAction::updateAlteringRequirements ()
Member KexiDB::AlterTableHandler::RemoveFieldAction::execute (Connection &conn, TableSchema &table)
Member KexiDB::AlterTableHandler::RemoveFieldAction::simplifyActions (ActionDictDict &fieldActions)
not checked
Member KexiDB::AlterTableHandler::RemoveFieldAction::updateAlteringRequirements ()

sometimes add DataConversionRequired (e.g. when relationships require removing orphaned records) ?

Member KexiDB::BaseExpr::copy () const =0
a nonpointer will be returned here when we move to implicit data sharing
Member KexiDB::BinaryExpr::validate (ParseInfo &parseInfo)
compare types..., BITWISE_SHIFT_RIGHT requires integers, etc...
Member KexiDB::Connection::alterTable (TableSchema &tableSchema, TableSchema &newTableSchema)

(js): implement real altering

(js): update any structure (e.g. query) that depend on this table!

Member KexiDB::Connection::closeDatabase ()
(js) add CLEVER algorithm here for nested transactions
Member KexiDB::Connection::commitTransaction (Transaction trans=Transaction::null, bool ignore_inactive=false)
for nested transactions: Tansaction* beginTransaction(transaction *parent_transaction);
Member KexiDB::Connection::createTableStatement (const TableSchema &tableSchema) const
IS this ok for all engines?: if (!autoinc && !field->isPrimaryKey() && field->isNotNull())
Member KexiDB::Connection::deleteRow (QuerySchema &query, RowData &data, bool useROWID=false)
allow to delete from a table without pkey
Member KexiDB::Connection::dropTable (TableSchema *tableSchema)
(js): update any structure (e.g. query) that depend on this table!
Member KexiDB::Connection::dropTable (KexiDB::TableSchema *tableSchema, bool alsoRemoveSchema)
js: update any structure (e.g. queries) that depend on this table!
Member KexiDB::Connection::drv_alterTableName (TableSchema &tableSchema, const TQString &newName)
fix this after refactoring
Member KexiDB::Connection::drv_containsTable (const TQString &tableName)=0
move this somewhere to low level class (MIGRATION?)
Member KexiDB::Connection::drv_createTable (const TableSchema &tableSchema)
fix this after refactoring
Member KexiDB::Connection::drv_dropTable (const TQString &name)
fix this after refatoring
Member KexiDB::Connection::drv_getTablesList (TQStringList &list)=0
move this somewhere to low level class (MIGRATION?)
Member KexiDB::Connection::insertRow (QuerySchema &query, RowData &data, RowEditBuffer &buf, bool getROWID=false)

safe to cast it?

show error

remove just inserted row. How? Using ROLLBACK?

show error

now only if PKEY is present, this should also work when there's no PKEY

Member KexiDB::Connection::kexiDBSystemTableNames ()
(js): this will depend on KexiDB lib version
Member KexiDB::Connection::loadExtendedTableSchemaData (TableSchema &tableSchema)

more properties

more properties...

look at the current format version (KEXIDB_EXTENDED_TABLE_SCHEMA_VERSION)

Member KexiDB::Connection::querySingleRecordInternal (RowData &data, const TQString *sql, QuerySchema *query, bool addLimitTo1=true)
does not work with non-SQL data sources
Member KexiDB::Connection::resultCount (const TQString &sql)
perhaps use TQ_ULLONG here?
Member KexiDB::Connection::selectStatement (QuerySchema &querySchema, const TQValueList< TQVariant > &params, const SelectStatementOptions &options=SelectStatementOptions()) const

(js) add other sql parts

looking at singleTable is visually nice but a field name can conflict with function or variable name...

add option that allows to omit "AS" keyword

Add lookup schema option for separator other than ' ' or even option for placeholders like "Name ? ?"

Add possibility for joining the values at client side.

Add lookup schema option for separator other than ' ' or even option for placeholders like "Name ? ?"

Add possibility for joining the values at client side.

Member KexiDB::Connection::setupField (const RowData &data)
fix this after refatoring
Member KexiDB::Connection::setupObjectSchemaData (const RowData &data, SchemaData &sdata)
fix this after refatoring
Member KexiDB::Connection::storeExtendedTableSchemaData (TableSchema &tableSchema)
future: save in older versions if neeed
Member KexiDB::Connection::storeObjectSchemaData (SchemaData &sdata, bool newObject)
safe to cast it?
Member KexiDB::Connection::updateRow (QuerySchema &query, RowData &data, RowEditBuffer &buf, bool useROWID=false)
perhaps we can try to update without using PKEY?
Member KexiDB::cstringToVariant (const char *data, KexiDB::Field *f, int length=-1)
date/time?
Member KexiDB::Cursor::deleteAllRows ()
doesn't update cursor's buffer YET!
Member KexiDB::Cursor::deleteRow (RowData &data, bool useROWID=false)
doesn't update cursor's buffer YET!
Member KexiDB::Cursor::insertRow (RowData &data, RowEditBuffer &buf, bool getROWID=false)
doesn't update cursor's buffer YET!
Member KexiDB::Cursor::setOrderByColumnList (const TQString &column1, const TQString &column2=TQString(), const TQString &column3=TQString(), const TQString &column4=TQString(), const TQString &column5=TQString())

implement this, like above

add ORDER BY info to debugString()

Member KexiDB::Cursor::setOrderByColumnList (const TQStringList &columnNames)
implement this:
Member KexiDB::Cursor::updateRow (RowData &data, RowEditBuffer &buf, bool useROWID=false)
doesn't update cursor's buffer YET!
Class KexiDB::DatabaseProperties
implement TDEConfigBase interface here?
Member KexiDB::Driver::dateTimeToSQL (const TQDateTime &v) const
add support for time zones?
Member KexiDB::emptyValueForType (Field::Type type)
ok? we have no better defaults
Member KexiDB::escapeBLOB (const TQByteArray &array, BLOBEscapingType type)
reverse function for BLOBEscapeOctal is available: processBinaryData() in pqxxcursor.cpp - move it here
Member KexiDB::Field::setDefaultValue (const TQCString &def)
BigInteger support
Member KexiDB::Field::setPrimaryKey (bool p)
is this ok for all engines?
Member KexiDB::Field::visibleDecimalPlaces () const
should we keep extended properties here or move them to a TQVariant dictionary?
Class KexiDB::FieldValidator

date/time support for types

add validation of the maximum length and other field's properties

Member KexiDB::FieldValidator::FieldValidator (const Field &field, TQWidget *parent, const char *name=0)

merge this code with KexiTableEdit code!

handle unsigned (using ULongLongValidator)

add validator

set maximum length validator

handle input mask (via TQLineEdit::setInputMask()

add BooleanValidator

add validator

Member KexiDB::formatNumberForVisibleDecimalPlaces (double value, int decimalPlaces)
round?
Member KexiDB::getLimitsForType (Field::Type type, int &minValue, int &maxValue)

always ok?

add support for unsigned flag

Member KexiDB::IndexSchema::IndexSchema (const IndexSchema &idx, TableSchema &parentTable)
All relationships should be also copied
Member KexiDB::isBuiltinTableFieldProperty (const TQCString &propertyName)
always update this when new builtins appear!
Member KexiDB::loadPropertyValueFromDom (const TQDomNode &node)
add more TQVariant types
Member KexiDB::LookupFieldSchema::boundColumn () const
in later implementation there can be more columns
Member KexiDB::LookupFieldSchema::loadFromDom (const TQDomElement &lookupEl)
handle fieldlist (retrieve from external table or so?), use lookupFieldSchema.rowSource().setValues()
Member KexiDB::LookupFieldSchema::setProperty (LookupFieldSchema &lookup, const TQCString &propertyName, const TQVariant &value)
Remove this case: it's for backward compatibility with Kexi's 1.1.2 table designer GUI supporting only single lookup column.
Member KexiDB::MySqlConnection::drv_connect (KexiDB::ServerVersionInfo &version)
this is hardcoded for now; define api for retrieving variables and use this API...
Member KexiDB::MySqlConnection::drv_lastInsertRowID ()
Member KexiDB::MySqlDriver::escapeString (const TQString &str) const

move new_string to Driver::m_new_string or so...

support more characters, like %, _

Member KexiDB::MySqlDriver::escapeString (const TQCString &str) const
optimize using mysql_real_escape_string()? see http://dev.mysql.com/doc/refman/5.0/en/string-syntax.html
Member KexiDB::notEmptyValueForType (Field::Type type)

blobs will contain other mime types too

default?

Member KexiDB::pqxxSqlConnection::drv_commitTransaction (TransactionData *)
Member KexiDB::pqxxSqlConnection::drv_useDatabase (const TQString &dbName=TQString(), bool *cancelled=0, MessageHandler *msgHandler=0)
set version using the connection pointer when we drop libpqxx for libpq
Member KexiDB::pqxxSqlDriver::pqxxSqlDriver (TQObject *parent, const char *name, const TQStringList &args=TQStringList())
enable this when kexidb supports multiple: d->features = MultipleTransactions | CursorForward | CursorBackward;
Member KexiDB::PreparedStatement::generateStatementString ()

only tables supported for insert; what about views?

only tables and trivial queries supported for select...

is this portable across backends?

Member KexiDB::QuerySchema::addToWhereExpression (KexiDB::Field *field, const TQVariant &value, int relation='=')
date, time
Member KexiDB::QuerySchema::computeFieldsExpanded ()

QuerySchema itself will also support lookup fields...

(js): perhaps not all fields should be appended here

Member KexiDB::QuerySchema::fieldsExpanded (FieldsExpandedOptions options=Default)
js: UPDATE CACHE!
Member KexiDB::QuerySchema::pkeyFieldsOrder ()
js: UPDATE CACHE!
Member KexiDB::rowCount (const TableSchema &tableSchema)
does not work with non-SQL data sources
Member KexiDB::rowCount (TableOrQuerySchema &tableOrQuery)
perhaps use TQ_ULLONG here?
Member KexiDB::rowCount (QuerySchema &querySchema)
perhaps use TQ_ULLONG here?
Member KexiDB::rowCount (const TableSchema &tableSchema)
perhaps use TQ_ULLONG here?
Member KexiDB::rowCount (Connection &conn, const TQString &sql)
perhaps use TQ_ULLONG here?
Member KexiDB::rowCount (QuerySchema &querySchema)
does not work with non-SQL data sources
Member KexiDB::SimpleCommandLineApp::SimpleCommandLineApp (int argc, char **argv, TDECmdLineOptions *options, const char *programName, const char *version, const char *shortDescription=0, int licenseType=TDEAboutData::License_Unknown, const char *copyrightStatement=0, const char *text=0, const char *homePageAddress=0, const char *bugsEmailAddress="submit@@bugs.kde.org")
make use of pty/tty here! (and care about portability)
Member KexiDB::simplifiedTypeName (const Field &field)

support names of other BLOB subtypes

support names of other BLOB subtypes

Member KexiDB::SQLiteConnection::drv_changeFieldProperty (TableSchema &table, Field &field, const TQString &propertyName, const TQVariant &value)
msg
Member KexiDB::SQLiteConnection::drv_useDatabase (const TQString &dbName=TQString(), bool *cancelled=0, MessageHandler *msgHandler=0)

add option

add option (command line or in kexirc?)

Member KexiDB::SQLitePreparedStatement::execute ()

optimize: make a static copy so SQLITE_STATIC can be used

msg?

msg?

msg?

what about unsigned > INT_MAX ?

msg?

msg?

msg?

what about unsigned > LLONG_MAX ?

msg?

msg?

msg?

msg?

msg?

msg?

msg?

msg?

Member KexiDB::SQLitePreparedStatement::SQLitePreparedStatement (StatementType type, ConnectionInternal &conn, FieldList &fields)
copy error msg
Member KexiDB::supportsVisibleDecimalPlacesProperty (Field::Type type)
add check for decimal type as well
Member KexiDB::UnaryExpr::validate (ParseInfo &parseInfo)
compare types... e.g. NOT applied to Text makes no sense...
Member KexiDBAutoField::changeText (const TQString &text, bool beautify=true)

look at appendColonToAutoLabels setting [bool]

support right-to-left layout where position of ":" is inverted

":" suffix looks weird for checkbox; remove this condition when [x] is displayed after label

look at makeFirstCharacterUpperCaseInCaptions setting [bool] (see doc/dev/settings.txt)

Member KexiDBAutoField::createEditor ()

setup validator

setup validator

Member KexiDBAutoField::setInvalidState (const TQString &text)
or set this to editor's text?
Member KexiDBAutoField::setLabelPosition (LabelPosition position)
support right-to-left layout where positions are inverted
Member KexiDBCheckBox::cursorAtEnd ()
?
Member KexiDBCheckBox::cursorAtStart ()
?
Member KexiDBCheckBox::setInvalidState (const TQString &displayText)
move this to KexiDataItemInterface::setInvalidStateInternal() ?
Member KexiDBCheckBox::updateTristate ()
the data source may be defined as NOT NULL... thus disallowing NULL state
Member KexiDBComboBox::paintEvent (TQPaintEvent *)
support reverse layout
Member KexiDBDateEdit::isReadOnly () const
: data/time edit API has no readonly flag, so use event filter to avoid changes made by keyboard or mouse when m_readOnly==true
Member KexiDBDateEdit::setInvalidState (const TQString &displayText)
move this to KexiDataItemInterface::setInvalidStateInternal() ?
Member KexiDBDateTimeEdit::isReadOnly () const
: data/time edit API has no readonly flag, so use event filter to avoid changes made by keyboard or mouse when m_readOnly==true
Member KexiDBDateTimeEdit::setInvalidState (const TQString &displayText)

paint this text: text

move this to KexiDataItemInterface::setInvalidStateInternal() ?

Member KexiDBDoubleSpinBox::cursorAtEnd ()
?
Member KexiDBDoubleSpinBox::cursorAtStart ()
?
Member KexiDBDoubleSpinBox::setInvalidState (const TQString &displayText)
move this to KexiDataItemInterface::setInvalidStateInternal() ?
Member KexiDBDriverComboBox::KexiDBDriverComboBox (TQWidget *parent, const KexiDB::Driver::InfoMap &driversInfo, Options options=ShowAll)

change this if better icon is available

change this if better icon is available

Member KexiDBFactory::changeText (const TQString &newText)
check field's geometry
Member KexiDBFactory::clearWidgetContent (const TQCString &classname, TQWidget *w)
this code should not be copied here but just inherited StdWidgetFactory::clearWidgetContent() should be called
Member KexiDBFactory::createMenuActions (const TQCString &classname, TQWidget *w, TQPopupMenu *menu, KFormDesigner::Container *container)

also call createMenuActions() for inherited factory!

make these actions undoable/redoable

Member KexiDBFactory::isPropertyVisibleInternal (const TQCString &classname, TQWidget *w, const TQCString &property, bool isTopLevel)
unhide in 2.0
Member KexiDBFactory::slotImageBoxIdChanged (long id)
unsafe
Member KexiDBFactory::startEditing (const TQCString &classname, TQWidget *w, KFormDesigner::Container *container)

this code should not be copied here but just inherited StdWidgetFactory::clearWidgetContent() should be called

this code should not be copied here but just inherited StdWidgetFactory::clearWidgetContent() should be called

Member KexiDBForm::setInvalidState (const TQString &displayText)
draw "invalid data source" text on the surface?
Member KexiDBForm::updateTabStopsOrder (KFormDesigner::Form *form)

remove hardcoded shortcuts: can be reconfigured...

?

d->indicesForDataAwareWidgets SHOULDNT BE UPDATED HERE BECAUSE THERE CAN BE ALSO NON-TABSTOP DATA WIDGETS! ‍/ d->indicesForDataAwareWidgets.replace( dataItem, numberOfDataAwareWidgets ); numberOfDataAwareWidgets++;

clear all fields?

?

Member KexiDBImageBox::clear ()
emit signal for setting "dirty" flag within the design
Member KexiDBImageBox::handleInsertFromFileAction (const KURL &url)

download the file if remote, then set fileName properly

err msg

err msg

emit signal for setting "dirty" flag within the design

Member KexiDBImageBox::handleSaveAsAction (const TQString &fileName)

err msg

err msg

Member KexiDBImageBox::handleShowPropertiesAction ()
Member KexiDBImageBox::popupMenuAvailable ()
add kexi-global setting which anyway, allows to show this button (read-only actions like copy/save as/print can be available)
Member KexiDBImageBox::setDataSource (const TQString &ds)
get default line width from global style settings
Member KexiDBImageBox::setDropDownButtonVisible (bool set)
use global default setting for this property
Member KexiDBImageBox::setInvalidState (const TQString &displayText)
m_pixmapLabel->setText( displayText );
Member KexiDBImageBox::setValueInternal (const TQVariant &add, bool removeOld, bool loadPixmap)
inform about error?
Member KexiDBImageBox::updateActionStrings ()
look at makeFirstCharacterUpperCaseInCaptions setting [bool] (see doc/dev/settings.txt)
Member KexiDBImageBox::widget ()
Member KexiDBIntSpinBox::clear ()
?
Member KexiDBIntSpinBox::cursorAtEnd ()
?
Member KexiDBIntSpinBox::cursorAtStart ()
?
Member KexiDBIntSpinBox::setInvalidState (const TQString &displayText)
move this to KexiDataItemInterface::setInvalidStateInternal() ?
Member KexiDBLineEdit::event (TQEvent *)
add option to set cursor at the beginning
Member KexiDBLineEdit::handleAction (const TQString &actionName)
?
Member KexiDBLineEdit::setColumnInfo (KexiDB::QueryColumnInfo *cinfo)
handle input mask (via TQLineEdit::setInputMask()) using a special KexiDB::FieldInputMask class
Member KexiDBLineEdit::setInvalidState (const TQString &displayText)
move this to KexiDataItemInterface::setInvalidStateInternal() ?
Member KexiDBSubForm::setFormName (const TQString &name)
error message
Member KexiDBTextEdit::setDisplayDefaultValue (TQWidget *widget, bool displayDefaultValue)
support rich text...
Member KexiDBTextEdit::setInvalidState (const TQString &displayText)
move this to KexiDataItemInterface::setInvalidStateInternal() ?
Member KexiDBTextEdit::setValueInternal (const TQVariant &add, bool removeOld)
temporary solution for booleans!
Member KexiDBTextEdit::undo ()
enable "real" undo internally so user can use ctrl+z while editing
Member KexiDBTimeEdit::isReadOnly () const
: data/time edit API has no readonly flag, so use event filter to avoid changes made by keyboard or mouse when m_readOnly==true
Member KexiDBTimeEdit::setInvalidState (const TQString &displayText)
move this to KexiDataItemInterface::setInvalidStateInternal() ?
Member KexiDBWidgetContextMenuExtender::updatePopupMenuActions ()
maybe redo will be enabled one day?
Member KexiDialogBase::attachToGUIClient ()
js: PROBABLY REMOVE THESE TWO?
Member KexiDisplayUtils::paintAutonumberSign (const DisplayParameters &par, TQPainter *painter, int x, int y, int width, int height, int align, bool overrideColor=false)
Member KexiDropDownButton::KexiDropDownButton (TQWidget *parent)
get this from a TDEStyle
Member KexiFieldListView::selectedFieldNames () const
what about query fields/aliases? it.current()->text(0) can be not enough
Member KexiFieldListView::slotDoubleClicked (TQListViewItem *item)
what about query fields/aliases? it.current()->text(0) can be not enough
Class KexiFindDialog
replace m_textToFind and m_textToReplace KComboBoxes with Kexi's db-aware comboboxes, so we ca adapt to datatype being searched, e.g. date, time and numbers
Member KexiFindDialog::options () const
should we have setOptions() too?
Member KexiFindDialog::updateMessage (bool found=true)
add "Search again" hyperlink
Member KexiFormDataProvider::setMainDataSourceWidget (TQWidget *mainWidget)
reenable when subform is moved to KexiDBForm
Member KexiFormEventHandler::setMainWidgetForEventHandling (KexiMainWindow *mainWin, TQWidget *mainWidget)
look for other widgets too
Member KexiFormPart::static_formsLibrary
#define KEXI_SHOW_SPLITTER_WIDGET
Member KexiFormScrollView::addHeaderColumn (const TQString &caption, const TQString &description, const TQIconSet &icon, int width)
Member KexiFormScrollView::clearColumnsInternal (bool repaint)
Member KexiFormScrollView::createEditor (int row, int col, const TQString &addText=TQString(), bool removeOld=false)
Member KexiFormScrollView::currentLocalSortingOrder () const
Member KexiFormScrollView::editorShowFocus (int row, int col)
Member KexiFormScrollView::ensureCellVisible (int row, int col)
Member KexiFormScrollView::initDataContents ()
here we can react if user wanted to show the navigator
Member KexiFormScrollView::lastVisibleRow () const

unimplemented for now, this will be used for continuous forms

unimplemented for now, this will be used for continuous forms

Member KexiFormScrollView::moveToFirstRecordRequested ()
Member KexiFormScrollView::moveToLastRecordRequested ()
Member KexiFormScrollView::moveToNextRecordRequested ()
Member KexiFormScrollView::moveToPreviousRecordRequested ()
Member KexiFormScrollView::moveToRecordRequested (uint r)
Member KexiFormScrollView::rowsPerPage () const
Member KexiFormScrollView::scrollBarTipTimeout ()
unused for now, will be used for continuous forms
Member KexiFormScrollView::setLocalSortingOrder (int col, int order)
Member KexiFormScrollView::slotRowInserted (KexiTableItem *item, uint row, bool repaint)
Member KexiFormScrollView::slotRowInserted (KexiTableItem *item, bool repaint)
Member KexiFormScrollView::slotRowRepaintRequested (KexiTableItem &item)
Member KexiFormScrollView::slotRowsDeleted (const TQValueList< int > &)
Member KexiFormScrollView::sortColumnInternal (int col, int order=0)
Member KexiFormScrollView::updateCell (int row, int col)
Member KexiFormScrollView::updateGUIAfterSorting ()
Member KexiFormScrollView::updateRow (int row)
Member KexiFormScrollView::updateWidgetContents ()
Member KexiFormScrollView::updateWidgetContentsSize ()
Member KexiFormScrollView::updateWidgetScrollBars ()
Member KexiFormScrollView::vScrollBarSliderReleased ()
unused for now, will be used for continuous forms
Member KexiFormScrollView::vScrollBarValueChanged (int v)
unused for now, will be used for continuous forms
Member KexiFormView::afterSwitchFrom (int mode)
add option for skipping autoincremented fields
Member KexiFormView::deleteQuery ()
remove this shared query from listened queries list
Member KexiFormView::initDataSource ()

PRIMITIVE!! data setting:

KexiTableViewData is not great name for data class here... rename/move?

few backends return result count for free! - no need to reopen() *‍/ int resultCount = -1; if (ok) { resultCount = m_conn->resultCount(m_conn->selectStatement(*m_query)); ok = m_cursor->reopen(); } if (ok) ok = ! (!m_cursor->moveFirst() && m_cursor->error());

fieldName is ok, but what about expressions?

also handle anonymous (not stored) queries provided as statements here

check if the query could have skipped unused fields (no GROUP BY, no joins, etc.)

There can be read-write queries, e.g. simple "SELECT * FROM...". Add a checking function to KexiDB.

show error

add expression support

Member KexiFormView::initForm ()
handle errors
Member KexiFormView::KexiFormView (KexiMainWindow *mainWin, TQWidget *parent, const char *name=0, bool dbAware=true)

skip this if ther're no borders

#define KEXI_SHOW_SPLITTER_WIDGET

Member KexiFormView::setUnsavedLocalBLOB (TQWidget *widget, KexiBLOBBuffer::Id_t id)
if there already was data assigned, remember it should be dereferenced
Member KexiFormView::storeData (bool dontAsk=false)

remove unused data stored previously

show message about missing kexi__blobs?

show message

unsafe

show message?

Member KexiFormView::updateAutoFieldsDataSource ()
call this when form's data source is changed
Member KexiFormView::updateValuesForSubproperties ()

this could be at the KFD level, but KFD is going to be merged anyway with kexiforms, right?

call this when form's data source is changed

Member KexiFrame::KexiFrame (TQWidget *parent, const char *name=0, WFlags f=0)
obtain these defaults from current template's style...
Member KexiImageContextMenu::insertFromFile ()
download the file if remote, then set fileName properly
Member KexiImageContextMenu::saveAs ()

add originalFileName! (requires access to TDERecentDirs)

use KURL?

Member KexiInputTableEdit::handleAction (const TQString &actionName)
handle rich text?
Member KexiInputTableEdit::handleCopyAction (const TQVariant &value, const TQVariant &visibleValue)
handle rich text?
Member KexiInputTableEdit::value ()

PRESERVE PRECISION!

check constraints

Class KexiLookupColumnPage
not all features of KexiDB::LookupFieldSchema class are displayed on this page yet
Member KexiMainWindowImpl::addWindow (KMdiChildView *pView, int flags=KMdi::StandardAdd)
Certain windows' sizes, e.g. forms could have own size configation specified! Query for this, and if so: give up.
Member KexiMainWindowImpl::create (int argc, char *argv[], TDEAboutData *aboutdata=0)
switch GUIenabled off when needed
Member KexiMainWindowImpl::exportItemAsDataTable (KexiPart::Item *item)

: accept row changes...

: check if changes to this are saved, if not: ask for saving

Member KexiMainWindowImpl::generatePrivateID ()
move to kexiproject
Member KexiMainWindowImpl::initActions ()

d->action_edit_replace = KStdAction::replace( this, TQ_SLOT(slotEditReplace()), actionCollection(), "project_print_preview" );

support this in FormObjectType, ReportObjectType as well as others

support this in FormObjectType as well

support this in KexiPart::FormObjectType as well

support this in KexiPart::FormObjectType as well

support this in KexiPart::FormObjectType as well

support this in KexiPart::FormObjectType as well

unused for now

shouldn't we move this to core?

d->action_edit_replace_all = new TDEAction( i18n("Replace All"), "", 0, this, TQ_SLOT(slotEditReplaceAll()), actionCollection(), "edit_replaceall");

support this in FormObjectType, ReportObjectType as well as others

: change to "file_export" or so

: change to "file_import" or so

support this in FormObjectType, ReportObjectType as well as others

support this in KexiPart::TableObjectType, KexiPart::QueryObjectType, KexiPart::FormObjectType later

support this in KexiPart::TableObjectType, KexiPart::QueryObjectType, KexiPart::FormObjectType later

support this in KexiPart::TableObjectType, KexiPart::QueryObjectType later

Member KexiMainWindowImpl::invalidateProjectWideActions ()
"copy special" is currently enabled only for data view mode; what about allowing it to enable in design view for "kexi/table" ?
Member KexiMainWindowImpl::openingAllowed (KexiPart::Item *item, int viewMode)
this can be more complex once we deliver ACLs...
Member KexiMainWindowImpl::openObject (KexiPart::Item *item, int viewMode, bool &openingCancelled, TQMap< TQString, TQString > *staticObjectArgs=0, TQString *errorMessage=0)
move part of this to KexiProject, because currently KexiProject::openObject() allows multiple opens!
Member KexiMainWindowImpl::openProject (const KexiProjectData &projectData)
temp.: change this if there are file-based drivers requiring a password
Member KexiMainWindowImpl::openProject (const TQString &aFileName, KexiDB::ConnectionData *cdata, const TQString &dbName=TQString(), const TQValueList< KexiProjectData::ObjectInfo > &autoopenObjects=TQValueList< KexiProjectData::ObjectInfo >())
caption arg?
Member KexiMainWindowImpl::openProjectInExternalKexiInstance (const TQString &aFileName, const TQString &fileNameForConnectionData, const TQString &dbName)
use KRun
Member KexiMainWindowImpl::printItem (KexiPart::Item *item, const KexiSimplePrintingSettings &settings, const TQString &titleText=TQString())

: accept row changes...

: check if changes to this object's design are saved, if not: ask for saving

Member KexiMainWindowImpl::printPreviewForItem (KexiPart::Item *item, const KexiSimplePrintingSettings &settings, const TQString &titleText=TQString(), bool reload=false)

: check if changes to this object's design are saved, if not: ask for saving

Member KexiMainWindowImpl::printPreviewForItem (KexiPart::Item *item)
store cached row data?
Member KexiMainWindowImpl::printPreviewForItem (KexiPart::Item *item, const KexiSimplePrintingSettings &settings, const TQString &titleText=TQString(), bool reload=false)
: accept row changes...
Member KexiMainWindowImpl::showPageSetupForItem (KexiPart::Item *item)

: accept row changes...

: check if changes to this object's design are saved, if not: ask for saving

Member KexiMainWindowImpl::slotEditFind (bool next)
result
Member KexiMainWindowImpl::slotEditPasteSpecialDataTable ()
allow data appending (it is not possible now)
Member KexiMainWindowImpl::slotEditReplace (bool all)
result
Member KexiMainWindowImpl::slotEditReplace ()
slotEditReplace()
Member KexiMainWindowImpl::slotEditReplace (bool all)
add question: "Do you want to replace every occurence of \"%1\" with \"%2\"? You won't be able to undo this." + "Do not ask again".
Member KexiMainWindowImpl::slotProjectImportDataTable ()
allow data appending (it is not possible now)
Member KexiMainWindowImpl::slotProjectNew ()
use TDEProcess?
Member KexiMainWindowImpl::slotToolsCompactDatabase ()
add support for server based if needed?
Member KexiMigration::ImportWizard::next ()
use KURL?
Member KexiMigration::KexiMigrate::data () const
Remove this! KexiMigrate should be usable for multiple concurrent migrations!
Member KexiMigration::KexiMigrate::drv_fetchRecordFromSQL (const TQString &sqlStatement, KexiDB::RowData &data, bool &firstRecord)
SQL-dependent!
Member KexiMigration::KexiMigrate::drv_querySingleStringFromSQL (const TQString &sqlStatement, uint columnNumber, TQString &string)
SQL-dependent!
Member KexiMigration::KexiMigrate::drv_queryStringListFromSQL (const TQString &sqlStatement, uint columnNumber, TQStringList &stringList, int numRecords=-1)
SQL-dependent!
Member KexiMigration::KexiMigrate::m_migrateData
Remove this! KexiMigrate should be usable for multiple concurrent migrations!
Member KexiMigration::KexiMigrate::performExport (Kexi::ObjectStatus *result=0)
performExport
Member KexiMigration::KexiMigrate::performImport (Kexi::ObjectStatus *result=0)

copy kexi__db contents!

what if these two tables are not compatible with tables created in destination db because newer db format was used?

check detailed "copy forms/blobs/tables" flags here when we add them

to reuse Connection::setupTableSchema()'s statement somehow...

Member KexiMigration::KexiMigrate::propertyCaption (const TQCString &propName) const
This is copied from KexiDB::Driver. One day it will be merged with KexiDB.
Member KexiMigration::KexiMigrate::propertyNames () const
This is copied from KexiDB::Driver. One day it will be merged with KexiDB.
Member KexiMigration::KexiMigrate::propertyValue (const TQCString &propName)
This is copied from KexiDB::Driver. One day it will be merged with KexiDB.
Member KexiMigration::KexiMigrate::setData (KexiMigration::Data *migrateData)
Remove this! KexiMigrate should be usable for multiple concurrent migrations!
Member KexiMigration::KexiMigrate::setPropertyValue (const TQCString &propName, const TQVariant &value)
This is copied from KexiDB::Driver. One day it will be merged with KexiDB.
Member KexiMigration::KexiMigrate::userType (const TQString &fname)

use TQMap<TQCString, KexiDB::Field::Type> here!

user should be asked ONCE using a convenient wizard's page, not a popup dialog

Member KexiMigration::MigrateManager::possibleProblemsInfoMsg () const
copied from KexiDB::DriverManager, merge it.
Class KexiMigration::OptionsDialog
Hardcoded. Move such code to KexiMigrate drivers.
Member KexiPart::Part::execute (KexiPart::Item *item, TQObject *sender=0)
make it protected, outside world should use KexiProject
Member KexiPart::Part::instanceCaption () const
move this to Info class when the name could be moved as localized property to service's .desktop file.
Member KexiPart::Part::instanceName () const
move this to Info class when the name could be moved as localized property to service's .desktop file.
Member KexiPart::Part::openInstance (KexiMainWindow *win, KexiPart::Item &item, int viewMode=Kexi::DataViewMode, TQMap< TQString, TQString > *staticObjectArgs=0)

make it protected, outside world should use KexiProject

js: apply settings for caption displaying method; there can be option for

  • displaying item.caption() as caption, if not empty, without instanceName
  • displaying the same as above in tabCaption (or not)
Member KexiPart::Part::remove (KexiMainWindow *win, KexiPart::Item &item)
make it protected, outside world should use KexiProject
Member KexiProject::create (bool forceOverwrite=false)
put more props. todo - creator, created date, etc. (also to KexiProjectData)
Member KexiProject::createBlankProject (bool &cancelled, KexiProjectData *data, KexiDB::MessageHandler *handler=0)
move to KexiMessageHandler
Member KexiProject::createConnection ()
won't work for subsequent connection
Member KexiProject::createInternalStructures (bool insideTransaction)

what about read-only db access?

what to do for readonly connections? Should we alter kexi__blobs in memory?

version differs: should we change something?

Member KexiProject::KexiProject (KexiProjectData *pdata, KexiDB::MessageHandler *handler, KexiDB::Connection *conn)
partmanager is outside project, so can be initialised just once:
Member KexiProject::KexiProject (KexiProjectData *pdata, KexiDB::MessageHandler *handler=0)
partmanager is outside project, so can be initialised just once:
Member KexiProject::openInternal (bool *incompatibleWithKexi)
this is temporary workaround as we have no import driver for SQLite
Member KexiQueryDesignerGuiEditor::afterSwitchFrom (int mode)

load global query properties

load global query properties

Member KexiQueryDesignerGuiEditor::buildSchema (TQString *errMsg=0)

ok, but not for expressions

support expressions here

what about query?

what about query?

Member KexiQueryDesignerGuiEditor::createPropertySet (int row, const TQString &tableName, const TQString &fieldName, bool newOne=false)
add table_field icon (add buff->addProperty(prop = new KexiProperty("this:iconName", "table_field") );
Member KexiQueryDesignerGuiEditor::parseExpressionString (const TQString &fullString, int &token, bool allowRelationalOperator)

what about query?

this is primitive, temporary: reuse SQL parser

Member KexiQueryDesignerGuiEditor::showFieldsOrRelationsForQueryInternal (KexiDB::QuerySchema *query, bool showFields, bool showRelations, KexiDB::ResultInfo &result)

what about multifield joins?

set["alias"].setValue(columnAlias, false);

if (!columnAlias.isEmpty())

fix for !INFIX operators

what about ALIAS?

fix for !INFIX operators

addConnection() should have "bool oneToOne" arg, for 1-to-1 relations

: now only sigle-field relationships are implemented!

testing primary key here is too simplified; maybe look ar isForeignKey() or indices..

move this check to parser on QuerySchema creation or to QuerySchema creation (WHERE expression should be then simplified by removing joins

Member KexiQueryDesignerGuiEditor::slotBeforeCellChanged (KexiTableItem *item, int colnum, TQVariant &newValue, KexiDB::ResultInfo *result)

what about expressions?

this is primitive, temporary: reuse SQL parser

Member KexiQueryDesignerGuiEditor::storeLayout ()
what about query?
Member KexiQueryDesignerGuiEditor::updateColumnsData ()
what about query?
Member KexiQueryParameters::getParameters (TQWidget *parent, const KexiDB::Driver &driver, KexiDB::QuerySchema &querySchema, bool &ok)

problem for ranges in case of BigInteger - will disappear when we remove use of KInputDialog

add support for unsigned parameter here

add validator

add validator

add validator

this value will be still rounded: consider storing them as a decimal type (e.g. using a special TQ_LLONG+decimalplace class)

BLOB input unsupported

do not use KInputDialog - switch to more powerful custom dialog

offer option to display one dialog (form) with all the parameters

support more types (using validators)

support defaults

support validation rules, e.g. min/max value, unsigned

support Enum type (list of strings, need support for keys and user-visible strings)

Member KexiRelationView::addConnection (const SourceConnection &_conn)

what about query?

what about query?

Member KexiRelationView::addTableContainer (KexiDB::TableSchema *t, const TQRect &rect=TQRect())
what about query?
Member KexiRelationView::containerMoved (KexiRelationViewTableContainer *c)

optimize!

optimize

Member KexiRelationView::hideAllTablesExcept (KexiDB::TableSchema::List *tables)
what about queries?
Member KexiReportFactory::createMenuActions (const TQCString &classname, TQWidget *w, TQPopupMenu *menu, KFormDesigner::Container *container)
use TDEAction
Member KexiReportView::KexiReportView (KexiMainWindow *win, TQWidget *parent, const char *name, KexiDB::Connection *conn)
skip this if ther're no borders
Member KexiScriptEditor::initialize (Kross::Api::ScriptAction *scriptaction)
remove after release
Member KexiScrollView::KexiScrollView (TQWidget *parent, bool preview)
allow to hide navigator
Member KexiSimplePrintingCommand::print (const TQString &aTitleText=TQString())

item not found

also look at printer.pageSet() option : all/odd/even pages

msg

get printer.pageOrder() (for reversed order requires improved engine)

Member KexiSimplePrintingCommand::showPrintPreview (const KexiSimplePrintingSettings &settings, const TQString &aTitleText=TQString(), bool reload=false)

progress bar...

item not found

Member KexiSimplePrintingEngine::init (KexiDB::Connection &conn, KexiDB::TableOrQuerySchema &tableOrQuery, const TQString &titleText, TQString &errorMessage)
primitive: data should be loaded on demand
Member KexiSimplePrintingEngine::paintPage (int pageNumber, TQPainter &painter, bool paint=true)

break large records anyway...

add setting

Member KexiSimplePrintingEngine::paintRecord (TQPainter &painter, KexiTableItem *item, int cellMargin, double &y, uint paintedRows, bool paint, bool printing)
optimize like in KexiCSVExport::exportData()
Member KexiSimplePrintingPageSetup::KexiSimplePrintingPageSetup (KexiMainWindow *mainWin, TQWidget *parent, TQMap< TQString, TQString > *args)
default?
Member KexiSimplePrintingSettings::load ()
system default?
Member KexiSimplePrintPreviewWindow::KexiSimplePrintPreviewWindow (KexiSimplePrintingEngine &engine, const TQString &previewName, TQWidget *parent, WFlags f=0)

unfinished

progress bar...

Member KexiSimplePrintPreviewWindow::slotZoomInClicked ()
Member KexiSimplePrintPreviewWindow::slotZoomOutClicked ()
Member KexiStartupHandler::detectActionForFile (KexiStartupData::Import &detectedImportAction, TQString &detectedDriverName, const TQString &_suggestedDriverName, const TQString &dbFileName, TQWidget *parent=0, int options=0)

rather check this using migration drivers' X-KexiSupportedMimeTypes [strlist] property

if file is ro: change project mode (but do not care if we're jsut importing)

Member KexiStartupHandler::init (int argc, char **argv)

Show error message from KexiDBConnShortcutFile when there's one implemented. For we're displaying generic error msg.

Member KexiTableDesignerView::buildSchema (KexiDB::TableSchema &schema, bool beSilent=false)

support columnWidths(), columnHeadersVisible(), maximumListRows(), limitToList(), displayWidget()

for "names hidden" mode we won't get this error because user is unable to change names

this is backward-compatible code for "single visible column" implementation for multiple columns, only the first is displayed, so there is a data loss is GUI is used – special koproperty editor needed

Member KexiTableDesignerView::createPropertySet (int row, const KexiDB::Field &field, bool newOne=false)

add table_field icon

this should be retrieved from KexiDB::Field when BLOB supports many different mimetypes

set reasonable default for column width

use "Variant" type here when supported by KoProperty

this is backward-compatible code for "single visible column" implementation for multiple columns, only the first is displayed, so there is a data loss is GUI is used – special koproperty editor needed

support columnWidths(), columnHeadersVisible(), maximumListRows(), limitToList(), displayWidget()

Member KexiTableDesignerView::slotAboutToShowContextMenu ()
show "field" icon
Member KexiTableDesignerView::slotBeforeCellChanged (KexiTableItem *item, int colnum, TQVariant &newValue, KexiDB::ResultInfo *result)

maybe this is good for other data types as well?

should we display (passive?) dialog informing about cleared pkey?

Member KexiTableDesignerView::slotPropertyChanged (KoProperty::Set &set, KoProperty::Property &property)

: add setting for this: "Integer PKeys have autonumber set by default"

perhaps show a hint in help panel telling what happens?

indicate invalid definitions of lookup columns as well using a special icon (e.g. due to missing data source)

Member KexiTableDesignerView::storeData (bool dontAsk=false)

this is temporary flag before we switch entirely to real alter table

temp; remove this case:

Member KexiTableDesignerView::updateActions (bool activated)
check if we can set pkey for this column type (eg. BLOB?)
Member KexiTableEdit::setupContents (TQPainter *p, bool focused, const TQVariant &val, TQString &txt, int &align, int &x, int &y_offset, int &w, int &h)
ADD OPTION to displaying NULL VALUES as e.g. "(null)"
Member KexiTableView::adjustColumnWidthToContents (int colNum=-1)
js: this is NOT EFFECTIVE for big data sets!!!!
Member KexiTableView::keyPressEvent (TQKeyEvent *e)

add option for stopping at 1st column for TQt::Key_left

add option for stopping at last column

Member KexiTableView::setAppearance (const Appearance &a)
is setMouseTracking useful for other purposes?
Member KexiTableViewColumn::KexiTableViewColumn (const KexiDB::QuerySchema &query, KexiDB::QueryColumnInfo &aColumnInfo, KexiDB::QueryColumnInfo *aVisibleLookupColumnInfo=0)
2.0: remove this when queries become editable ^^^^^^^^^^^^^^
Member KexiTableViewData::autoIncrementedColumn ()

what about multiple autoinc columns?

what about changing column order?

Member KexiTableViewData::preloadAllRows ()
change to bool and return false on error!
Member KexiTableViewData::saveRow (KexiTableItem &item, bool insert, bool repaint)

if there're multiple views for this data, we need multiple buffers!

set m_result.column if possible

Class KexiTableViewHeader
react on indexChange ( int section, int fromIndex, int toIndex ) signal
Member KexiTextFormatter::inputMask () const

use KTimeWidget

use KDateWidget?

Member KexiTextFormatter::textToValue (const TQString &text) const

more data types!

temporary solution for booleans!

uint, etc?

Member KexiTextFormatter::valueIsEmpty (const TQString &text) const
Member KexiTextFormatter::valueIsValid (const TQString &text) const

fix for fields with "required" property = true

Member KexiTextFormatter::valueToText (const TQVariant &value, const TQString &add) const

support 'g' format

precision!

temporary solution for booleans!

Member KexiTimeFormatter::~KexiTimeFormatter ()
KexiDateFormatter(... settings ...);
Member KexiTimeTableEdit::KexiTimeTableEdit (KexiTableViewColumn &column, TQWidget *parent=0)
add TQValidator so time like "99:88:77" cannot be even entered
Member KexiTimeTableEdit::setValueInternal (const TQVariant &add, bool removeOld)
cut string if too long..
Member KexiUtils::drawPixmap (TQPainter &p, int lineWidth, const TQRect &rect, const TQPixmap &pixmap, int alignment, bool scaledContents, bool keepAspectRatio)

we can optimize drawing by drawing rescaled pixmap here and performing detailed painting later (using TQTimer)

only create buffered pixmap of the minimum size and then do not fillRect()

Member KFormDesigner::CreateLayoutCommand::execute ()
allow setting this for data view mode as well
Member KFormDesigner::Form::autoAssignTabStops ()
Handle RTL layout (ie from top-right to bottom-left)
Member KFormDesigner::Form::gridSize ()
make gridSize configurable at global level
Member KFormDesigner::FormManager::changeFont ()
this modification is not added to UNDO BUFFER: do it when KoProperty::Set supports multiple selections
Member KFormDesigner::InsertWidgetCommand::execute ()

allow setting this for data view mode as well

update widget's width for entered text's metrics

Member KFormDesigner::WidgetLibrary::loadFactories ()
improve
Member KFormDesigner::WidgetWithSubpropertiesInterface::setSubwidget (TQWidget *widget)
maybe someone wants to add more than one widget here?
Member Kross::KexiDB::KexiDBCursor::~KexiDBCursor ()
check ownership
Member StdWidgetFactory::isPropertyVisibleInternal (const TQCString &classname, TQWidget *w, const TQCString &property, bool isTopLevel)
reenable autoDefault / default if the top level window is dialog...
Member StdWidgetFactory::StdWidgetFactory (TQObject *parent, const char *name, const TQStringList &args)
TQt designer compatibility: maybe use this class when TQLabel has a pixmap set...?