void QgsRelationReferenceWidget::featureIdentified( const QgsFeature &feature ) { if ( mReadOnlySelector ) { QgsExpression expr( mReferencedLayer->displayExpression() ); QgsExpressionContext context( QgsExpressionContextUtils::globalProjectLayerScopes( mReferencedLayer ) ); context.setFeature( feature ); QString title = expr.evaluate( &context ).toString(); if ( expr.hasEvalError() ) { title = feature.attribute( mReferencedFieldIdx ).toString(); } mLineEdit->setText( title ); mForeignKey = feature.attribute( mReferencedFieldIdx ); mFeature = feature; } else { mComboBox->setCurrentIndex( mComboBox->findData( feature.attribute( mReferencedFieldIdx ), QgsFeatureFilterModel::Role::IdentifierValueRole ) ); mFeature = feature; } mRemoveFKButton->setEnabled( mIsEditable ); highlightFeature( feature ); updateAttributeEditorFrame( feature ); emit foreignKeyChanged( foreignKey() ); unsetMapTool(); }
void QgsRelationReferenceWidget::setForeignKey( const QVariant& value ) { if ( !value.isValid() || value.isNull() ) { deleteForeignKey(); return; } if ( !mReferencedLayer ) return; QgsAttributes attrs = QgsAttributes( mReferencingLayer->fields().count() ); attrs[mFkeyFieldIdx] = value; QgsFeatureRequest request = mRelation.getReferencedFeatureRequest( attrs ); mReferencedLayer->getFeatures( request ).nextFeature( mFeature ); if ( !mFeature.isValid() ) { deleteForeignKey(); return; } mForeignKey = mFeature.attribute( mFkeyFieldIdx ); if ( mReadOnlySelector ) { QgsExpression expr( mReferencedLayer->displayExpression() ); QgsExpressionContext context; context << QgsExpressionContextUtils::globalScope() << QgsExpressionContextUtils::projectScope() << QgsExpressionContextUtils::layerScope( mReferencedLayer ); context.setFeature( mFeature ); QString title = expr.evaluate( &context ).toString(); if ( expr.hasEvalError() ) { title = mFeature.attribute( mFkeyFieldIdx ).toString(); } mLineEdit->setText( title ); } else { int i = mComboBox->findData( mFeature.id(), QgsAttributeTableModel::FeatureIdRole ); if ( i == -1 && mAllowNull ) { mComboBox->setCurrentIndex( 0 ); } else { mComboBox->setCurrentIndex( i ); } } mRemoveFKButton->setEnabled( mIsEditable ); highlightFeature( mFeature ); updateAttributeEditorFrame( mFeature ); emit foreignKeyChanged( foreignKey() ); }
void QgsRelationReferenceWidget::setForeignKey( const QVariant& value ) { if ( !value.isValid() || value.isNull() ) { deleteForeignKey(); return; } QgsFeature f; if ( !mReferencedLayer ) return; // TODO: Rewrite using expression QgsFeatureIterator fit = mReferencedLayer->getFeatures( QgsFeatureRequest() ); while ( fit.nextFeature( f ) ) { if ( f.attribute( mFkeyFieldIdx ) == value ) { break; } } if ( !f.isValid() ) { deleteForeignKey(); return; } mForeignKey = f.attribute( mFkeyFieldIdx ); if ( mReadOnlySelector ) { QgsExpression expr( mReferencedLayer->displayExpression() ); QString title = expr.evaluate( &f ).toString(); if ( expr.hasEvalError() ) { title = f.attribute( mFkeyFieldIdx ).toString(); } mLineEdit->setText( title ); mFeatureId = f.id(); } else { int i = mComboBox->findData( value ); if ( i == -1 && mAllowNull ) { mComboBox->setCurrentIndex( 0 ); } else { mComboBox->setCurrentIndex( i ); } } mRemoveFKButton->setEnabled( mIsEditable ); highlightFeature( f ); updateAttributeEditorFrame( f ); emit foreignKeyChanged( foreignKey() ); }
void SqliteTests::initTestCase() { verifyCreateTable(); foreignKey(); DQConnection defaultConnection = DQConnection::defaultConnection(); db = QSqlDatabase::addDatabase("QSQLITE"); db.setDatabaseName( "tests.db" ); QVERIFY( db.open() ); QVERIFY( !defaultConnection.isOpen()); QVERIFY (connect.open(db) ); QVERIFY(defaultConnection.isOpen()); // connect become default connection DQSql sql = connect.sql(); QVERIFY( sql.createTableIfNotExists<Model1>() ); QVERIFY( sql.exists(dqMetaInfo<Model1>() ) ); QVERIFY( sql.dropTable(dqMetaInfo<Model1>()) ); QVERIFY( !sql.exists(dqMetaInfo<Model1>() ) ); QVERIFY( sql.createTableIfNotExists<Model1>() ); QVERIFY ( connect.addModel<Model1>() ); QVERIFY ( connect.addModel<Model2>() ); QVERIFY (!connect.addModel<Model1>() ); QVERIFY (!connect.addModel<Model3>() ); QVERIFY ( connect.addModel<Model4>() ); QVERIFY ( connect.addModel<User>() ); QVERIFY ( connect.addModel<Config>() ); QVERIFY ( connect.addModel<ExamResult>() ); QVERIFY ( connect.addModel<AllType>() ); QVERIFY ( connect.addModel<HealthCheck>()); QVERIFY( connect.dropTables() ); QVERIFY( connect.createTables() ); // recreate table /* Create index */ DQIndex<Model1> index1("index1"); index1 << "key" << "value"; QVERIFY(connect.createIndex(index1)); // drop the index QVERIFY(connect.dropIndex(index1.name())); }
void startStop(sqlite3 * db, fC callback, int id){ values * val = selectFromTable(db, "select count(*) as count from TASK where TIMEID = %d AND STOP IS NULL;", id); int flag = atoi(val->result[1]); updateStatus(db, callback, id, !flag); /* * int flag: * flag == FALSE - INSERT * flag == TRUE - UPDATE */ foreignKey(db, 1); if(!flag) sqlQuery(db, callback, "INSERT INTO TASK (TIMEID, START) VALUES (%d, datetime('now'));", id); else sqlQuery(db, callback, "UPDATE TASK SET STOP = datetime('now') WHERE TIMEID = %d AND STOP IS NULL;", id); foreignKey(db, 0); freeStructValues(val); }
Record Record::foreignKey( int column ) const { do { Table * t = table(); if( !t ) break; Field * f = t->schema()->field( column ); if( !f ) break; return foreignKey( f ); } while( 0 ); return Record(); }
User *UserGroups::user() const { return qobject_cast<User*>(foreignKey("user")); }
User *tst_FkConstraint::restrictConstraint() const { return qobject_cast<User*>(foreignKey("restrictConstraint")); }
Item* Owner::item2() const { return qobject_cast<Item*>(foreignKey("item2")); }
Produit* RProduitStock::getProduit() const { return qobject_cast< Produit* >( foreignKey("produit") ); }
Stock* RProduitStock::getStock() const { return qobject_cast< Stock* >( foreignKey("stock") ); }
ArchitectElement *RequirementElement::component() const { return qobject_cast<ArchitectElement *>(foreignKey("component")); }
User *tst_FkConstraint::cascadeConstraint() const { return qobject_cast<User*>(foreignKey("cascadeConstraint")); }
Group *UserGroups::group() const { return qobject_cast<Group*>(foreignKey("group")); }
Commande* Livraison::getCommande() const { return qobject_cast< Commande* >( ( foreignKey( "commande" ) ) ); }
ArchiveChat* ArchiveMessage::chat() const { return qobject_cast<ArchiveChat*>(foreignKey("chat")); }
void QgsRelationReferenceWidget::setForeignKey( const QVariant &value ) { if ( !value.isValid() ) { return; } if ( value.isNull() ) { deleteForeignKey(); return; } if ( !mReferencedLayer ) return; if ( mReadOnlySelector ) { // Attributes from the referencing layer QgsAttributes attrs = QgsAttributes( mReferencingLayer->fields().count() ); // Set the value on the foreign key field of the referencing record attrs[ mReferencingLayer->fields().lookupField( mRelation.fieldPairs().at( 0 ).first )] = value; QgsFeatureRequest request = mRelation.getReferencedFeatureRequest( attrs ); mReferencedLayer->getFeatures( request ).nextFeature( mFeature ); if ( !mFeature.isValid() ) { return; } mForeignKey = mFeature.attribute( mReferencedFieldIdx ); QgsExpression expr( mReferencedLayer->displayExpression() ); QgsExpressionContext context( QgsExpressionContextUtils::globalProjectLayerScopes( mReferencedLayer ) ); context.setFeature( mFeature ); QString title = expr.evaluate( &context ).toString(); if ( expr.hasEvalError() ) { title = mFeature.attribute( mReferencedFieldIdx ).toString(); } mLineEdit->setText( title ); } else { mComboBox->setIdentifierValue( value ); if ( mChainFilters ) { QVariant nullValue = QgsApplication::nullRepresentation(); QgsFeatureRequest request = mComboBox->currentFeatureRequest(); mReferencedLayer->getFeatures( request ).nextFeature( mFeature ); const int count = std::min( mFilterComboBoxes.size(), mFilterFields.size() ); for ( int i = 0; i < count; i++ ) { QVariant v = mFeature.attribute( mFilterFields[i] ); QString f = v.isNull() ? nullValue.toString() : v.toString(); mFilterComboBoxes.at( i )->setCurrentIndex( mFilterComboBoxes.at( i )->findText( f ) ); } } } mRemoveFKButton->setEnabled( mIsEditable ); highlightFeature( mFeature ); // TODO : make this async updateAttributeEditorFrame( mFeature ); emitForeignKeyChanged( foreignKey() ); }
User* Computer::user() const { return qobject_cast<User*>(foreignKey("user")); }
/** Returns the User associated with this Message. */ User *Message::user() const { return qobject_cast<User*>(foreignKey("user")); }
User *tst_FkConstraint::nullConstraint() const { return qobject_cast<User*>(foreignKey("nullConstraint")); }