mirror of
https://github.com/qgis/QGIS.git
synced 2025-03-01 00:46:20 -05:00
Merge pull request #2713 from nirvn/fix_memory_layer_datetime
[memorylayer] fix missing datetime field type
This commit is contained in:
commit
e42819d442
@ -86,6 +86,7 @@ QgsMemoryProvider::QgsMemoryProvider( const QString& uri )
|
||||
|
||||
// date type
|
||||
<< QgsVectorDataProvider::NativeType( tr( "Date" ), "date", QVariant::Date, -1, -1, -1, -1 )
|
||||
<< QgsVectorDataProvider::NativeType( tr( "Date & Time" ), "datetime", QVariant::DateTime, -1, -1, -1, -1 )
|
||||
|
||||
// integer types
|
||||
<< QgsVectorDataProvider::NativeType( tr( "Whole number (smallint - 16bit)" ), "int2", QVariant::Int, -1, -1, 0, 0 )
|
||||
@ -106,7 +107,7 @@ QgsMemoryProvider::QgsMemoryProvider( const QString& uri )
|
||||
{
|
||||
QList<QgsField> attributes;
|
||||
QRegExp reFieldDef( "\\:"
|
||||
"(int|integer|real|double|string|date)" // type
|
||||
"(int|integer|real|double|string|date|datetime)" // type
|
||||
"(?:\\((\\d+)" // length
|
||||
"(?:\\,(\\d+))?" // precision
|
||||
"\\))?"
|
||||
@ -142,7 +143,13 @@ QgsMemoryProvider::QgsMemoryProvider( const QString& uri )
|
||||
{
|
||||
type = QVariant::Date;
|
||||
typeName = "date";
|
||||
length = 10;
|
||||
length = -1;
|
||||
}
|
||||
else if ( typeName == "datetime" )
|
||||
{
|
||||
type = QVariant::DateTime;
|
||||
typeName = "datetime";
|
||||
length = -1;
|
||||
}
|
||||
|
||||
if ( reFieldDef.cap( 2 ) != "" )
|
||||
@ -350,6 +357,7 @@ bool QgsMemoryProvider::addAttributes( const QList<QgsField> &attributes )
|
||||
case QVariant::Double:
|
||||
case QVariant::String:
|
||||
case QVariant::Date:
|
||||
case QVariant::DateTime:
|
||||
case QVariant::LongLong:
|
||||
break;
|
||||
default:
|
||||
|
@ -191,7 +191,9 @@ class TestPyQgsMemoryProvider(TestCase, ProviderTestCase):
|
||||
# Add some fields to the layer
|
||||
myFields = [QgsField('TestInt', QVariant.Int, 'integer', 2, 0),
|
||||
QgsField('TestDbl', QVariant.Double, 'double', 8, 6),
|
||||
QgsField('TestString', QVariant.String, 'string', 50, 0)]
|
||||
QgsField('TestString', QVariant.String, 'string', 50, 0),
|
||||
QgsField('TestDate', QVariant.Date, 'date'),
|
||||
QgsField('TestDateTime', QVariant.DateTime, 'datetime')]
|
||||
assert myMemoryLayer.startEditing()
|
||||
for f in myFields:
|
||||
assert myMemoryLayer.addAttribute(f)
|
||||
|
Loading…
x
Reference in New Issue
Block a user