void KexiDBAutoField::setColumnInfoInternal(KexiDB::QueryColumnInfo* cinfo, KexiDB::QueryColumnInfo* visibleColumnInfo) { // change widget type depending on field type if (d->widgetType_property == Auto) { WidgetType newWidgetType = Auto; KexiDB::Field::Type fieldType; if (cinfo) fieldType = visibleColumnInfo->field->type(); else if (dataSource().isEmpty()) fieldType = KexiDB::Field::InvalidType; else fieldType = KexiDB::Field::Text; if (fieldType != KexiDB::Field::InvalidType) { newWidgetType = KexiDBAutoField::widgetTypeForFieldType(fieldType); } if (d->widgetType != newWidgetType || newWidgetType == Auto) { d->widgetType = newWidgetType; createEditor(); } } // update label's text changeText((cinfo && d->autoCaption) ? cinfo->captionOrAliasOrName() : d->caption); KexiFormDataItemInterface *iface = dynamic_cast<KexiFormDataItemInterface*>((QWidget*)subwidget()); if (iface) iface->setColumnInfo(visibleColumnInfo); }
bool KexiDBAutoField::keyPressed(QKeyEvent *ke) { KexiFormDataItemInterface *iface = dynamic_cast<KexiFormDataItemInterface*>((QWidget*)subwidget()); if (iface && iface->keyPressed(ke)) return true; return false; }
void KexiDBAutoField::clear() { KexiFormDataItemInterface *iface = dynamic_cast<KexiFormDataItemInterface*>((QWidget*)subwidget()); if (iface) iface->clear(); }
void KexiDBAutoField::setValueInternal(const QVariant& add, bool removeOld) { KexiFormDataItemInterface *iface = dynamic_cast<KexiFormDataItemInterface*>((QWidget*)subwidget()); if (iface) iface->setValue(KexiDataItemInterface::originalValue(), add, removeOld); }
void KexiDBAutoField::setReadOnly(bool readOnly) { KexiFormDataItemInterface *iface = dynamic_cast<KexiFormDataItemInterface*>((QWidget*)subwidget()); if (iface) iface->setReadOnly(readOnly); }
bool KexiDBAutoField::cursorAtEnd() { KexiFormDataItemInterface *iface = dynamic_cast<KexiFormDataItemInterface*>((QWidget*)subwidget()); if (iface) return iface->cursorAtEnd(); return false; }
void KexiDBAutoField::installListener(KexiDataItemChangesListener* listener) { KexiFormDataItemInterface::installListener(listener); KexiFormDataItemInterface *iface = dynamic_cast<KexiFormDataItemInterface*>((QWidget*)subwidget()); if (iface) iface->installListener(listener); }
bool KexiDBAutoField::valueIsValid() { KexiFormDataItemInterface *iface = dynamic_cast<KexiFormDataItemInterface*>((QWidget*)subwidget()); if (iface) return iface->valueIsValid(); return true; }
QVariant KexiDBAutoField::value() { KexiFormDataItemInterface *iface = dynamic_cast<KexiFormDataItemInterface*>((QWidget*)subwidget()); if (iface) return iface->value(); return QVariant(); }
bool KexiDBAutoField::valueChanged() { KexiFormDataItemInterface *iface = dynamic_cast<KexiFormDataItemInterface*>((QWidget*)subwidget()); //kDebug() << KexiDataItemInterface::originalValue(); if (iface) return iface->valueChanged(); return false; }
bool KexiDBAutoField::isReadOnly() const { KexiFormDataItemInterface *iface = dynamic_cast<KexiFormDataItemInterface*>((QWidget*)subwidget()); if (iface) return iface->isReadOnly(); else return false; }
void KexiDBAutoField::setFieldCaptionInternal(const QString& text) { d->fieldCaptionInternal = text; //change text only if autocaption is set and no columnInfo is available KexiFormDataItemInterface *iface = dynamic_cast<KexiFormDataItemInterface*>((QWidget*)subwidget()); if ((!iface || !iface->columnInfo()) && d->autoCaption) { changeText(d->fieldCaptionInternal); } }
void KexiDBTextWidgetInterface::paint( QWidget *w, QPainter* p, bool textIsEmpty, Qt::Alignment alignment, bool hasFocus) { KexiFormDataItemInterface *dataItemIface = dynamic_cast<KexiFormDataItemInterface*>(w); KexiDB::QueryColumnInfo *columnInfo = dataItemIface ? dataItemIface->columnInfo() : 0; if (columnInfo && columnInfo->field && dataItemIface->cursorAtNewRow() && textIsEmpty) { int addMargin = 0; if (dynamic_cast<QFrame*>(w)) addMargin += dynamic_cast<QFrame*>(w)->lineWidth() + dynamic_cast<QFrame*>(w)->midLineWidth(); if (columnInfo->field->isAutoIncrement() && m_autonumberDisplayParameters) { if (w->hasFocus()) { p->setPen( KexiUtils::blendedColors( m_autonumberDisplayParameters->textColor, w->palette().color(QPalette::Base), 1, 3)); } KexiUtils::WidgetMargins margins(w); KexiDisplayUtils::paintAutonumberSign(*m_autonumberDisplayParameters, p, 2 + addMargin + margins.left, addMargin + margins.top, w->width() - margins.left - margins.right - 2 - 2, w->height() - margins.top - margins.bottom - 2, alignment, hasFocus); } } }