Fix bug 869 - "QDateTimeEdit initial time problem"
Reviewer: Luciano Wolf <luciano.wolf@openbossa.org>
Marcelo Lira <marcelo.lira@openbossa.org>
This commit is contained in:
parent
e48aa92103
commit
a698807fd0
5 changed files with 17 additions and 12 deletions
|
|
@ -39,8 +39,8 @@ inline QDateTime Converter<QDateTime>::toCpp(PyObject* pyObj)
|
||||||
int hour = PyDateTime_DATE_GET_HOUR(pyObj);
|
int hour = PyDateTime_DATE_GET_HOUR(pyObj);
|
||||||
int min = PyDateTime_DATE_GET_MINUTE(pyObj);
|
int min = PyDateTime_DATE_GET_MINUTE(pyObj);
|
||||||
int sec = PyDateTime_DATE_GET_SECOND(pyObj);
|
int sec = PyDateTime_DATE_GET_SECOND(pyObj);
|
||||||
int msec = PyDateTime_DATE_GET_MICROSECOND(pyObj);
|
int usec = PyDateTime_DATE_GET_MICROSECOND(pyObj);
|
||||||
return QDateTime(QDate(year, month, day), QTime(hour, min, sec, msec));
|
return QDateTime(QDate(year, month, day), QTime(hour, min, sec, usec/1000));
|
||||||
} else {
|
} else {
|
||||||
return ValueTypeConverter<QDateTime>::toCpp(pyObj);
|
return ValueTypeConverter<QDateTime>::toCpp(pyObj);
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -35,8 +35,8 @@ inline QTime Converter<QTime>::toCpp(PyObject* pyObj)
|
||||||
int hour = PyDateTime_TIME_GET_HOUR(pyObj);
|
int hour = PyDateTime_TIME_GET_HOUR(pyObj);
|
||||||
int min = PyDateTime_TIME_GET_MINUTE(pyObj);
|
int min = PyDateTime_TIME_GET_MINUTE(pyObj);
|
||||||
int sec = PyDateTime_TIME_GET_SECOND(pyObj);
|
int sec = PyDateTime_TIME_GET_SECOND(pyObj);
|
||||||
int msec = PyDateTime_TIME_GET_MICROSECOND(pyObj);
|
int usec = PyDateTime_TIME_GET_MICROSECOND(pyObj);
|
||||||
return QTime(hour, min, sec, msec);
|
return QTime(hour, min, sec, usec/1000);
|
||||||
} else {
|
} else {
|
||||||
return ValueTypeConverter<QTime>::toCpp(pyObj);
|
return ValueTypeConverter<QTime>::toCpp(pyObj);
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -661,7 +661,7 @@
|
||||||
QDate date = %CPPSELF.date();
|
QDate date = %CPPSELF.date();
|
||||||
QTime time = %CPPSELF.time();
|
QTime time = %CPPSELF.time();
|
||||||
if (!PyDateTimeAPI) PyDateTime_IMPORT;
|
if (!PyDateTimeAPI) PyDateTime_IMPORT;
|
||||||
%PYARG_0 = PyDateTime_FromDateAndTime(date.year(), date.month(), date.day(), time.hour(), time.minute(), time.second(), time.msec());
|
%PYARG_0 = PyDateTime_FromDateAndTime(date.year(), date.month(), date.day(), time.hour(), time.minute(), time.second(), time.msec()*1000);
|
||||||
</inject-code>
|
</inject-code>
|
||||||
</add-function>
|
</add-function>
|
||||||
</value-type>
|
</value-type>
|
||||||
|
|
@ -986,7 +986,7 @@
|
||||||
<add-function signature="toPython()" return-type="PyObject">
|
<add-function signature="toPython()" return-type="PyObject">
|
||||||
<inject-code class="target" position="beginning">
|
<inject-code class="target" position="beginning">
|
||||||
if (!PyDateTimeAPI) PyDateTime_IMPORT;
|
if (!PyDateTimeAPI) PyDateTime_IMPORT;
|
||||||
%PYARG_0 = PyTime_FromTime(%CPPSELF.hour(), %CPPSELF.minute(), %CPPSELF.second(), %CPPSELF.msec());
|
%PYARG_0 = PyTime_FromTime(%CPPSELF.hour(), %CPPSELF.minute(), %CPPSELF.second(), %CPPSELF.msec()*1000);
|
||||||
</inject-code>
|
</inject-code>
|
||||||
</add-function>
|
</add-function>
|
||||||
</value-type>
|
</value-type>
|
||||||
|
|
|
||||||
|
|
@ -18,17 +18,17 @@ class TestDateTimeConversions (unittest.TestCase):
|
||||||
self.assertEqual(date, other.toPython())
|
self.assertEqual(date, other.toPython())
|
||||||
|
|
||||||
def testQTime(self):
|
def testQTime(self):
|
||||||
time = datetime.time(11, 14, 00, 01)
|
time = datetime.time(11, 14, 00, 1000)
|
||||||
other = QTime(time)
|
other = QTime(time)
|
||||||
self.assertEqual(time.hour, other.hour())
|
self.assertEqual(time.hour, other.hour())
|
||||||
self.assertEqual(time.minute, other.minute())
|
self.assertEqual(time.minute, other.minute())
|
||||||
self.assertEqual(time.second, other.second())
|
self.assertEqual(time.second, other.second())
|
||||||
self.assertEqual(time.microsecond, other.msec())
|
self.assertEqual(time.microsecond/1000, other.msec())
|
||||||
|
|
||||||
self.assertEqual(time, other.toPython())
|
self.assertEqual(time, other.toPython())
|
||||||
|
|
||||||
def testQDateTime(self):
|
def testQDateTime(self):
|
||||||
dateTime = datetime.datetime(2010, 04, 23, 11, 14, 00, 01)
|
dateTime = datetime.datetime(2010, 04, 23, 11, 14, 00, 1000)
|
||||||
other = QDateTime(dateTime)
|
other = QDateTime(dateTime)
|
||||||
|
|
||||||
otherDate = other.date()
|
otherDate = other.date()
|
||||||
|
|
@ -40,7 +40,7 @@ class TestDateTimeConversions (unittest.TestCase):
|
||||||
self.assertEqual(dateTime.hour, otherTime.hour())
|
self.assertEqual(dateTime.hour, otherTime.hour())
|
||||||
self.assertEqual(dateTime.minute, otherTime.minute())
|
self.assertEqual(dateTime.minute, otherTime.minute())
|
||||||
self.assertEqual(dateTime.second, otherTime.second())
|
self.assertEqual(dateTime.second, otherTime.second())
|
||||||
self.assertEqual(dateTime.microsecond, otherTime.msec())
|
self.assertEqual(dateTime.microsecond/1000, otherTime.msec())
|
||||||
|
|
||||||
self.assertEqual(dateTime, other.toPython())
|
self.assertEqual(dateTime, other.toPython())
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -6,13 +6,18 @@ from PySide.QtCore import QDateTime, QDate, QTime
|
||||||
class TestQDate (unittest.TestCase):
|
class TestQDate (unittest.TestCase):
|
||||||
def testDateConversion(self):
|
def testDateConversion(self):
|
||||||
dateTime = QDateTime(QDate(2011, 05, 17), QTime(11, 01, 14, 15))
|
dateTime = QDateTime(QDate(2011, 05, 17), QTime(11, 01, 14, 15))
|
||||||
dateTimePy = QDateTime(datetime.date(2011, 05, 17), datetime.time(11, 01, 14, 15))
|
dateTimePy = QDateTime(datetime.date(2011, 05, 17), datetime.time(11, 01, 14, 15000))
|
||||||
self.assertEqual(dateTime, dateTimePy)
|
self.assertEqual(dateTime, dateTimePy)
|
||||||
|
|
||||||
def testDateTimeConversion(self):
|
def testDateTimeConversion(self):
|
||||||
dateTime = QDateTime(QDate(2011, 05, 17), QTime(11, 01, 14, 15))
|
dateTime = QDateTime(QDate(2011, 05, 17), QTime(11, 01, 14, 15))
|
||||||
dateTimePy = QDateTime(datetime.datetime(2011, 05, 17, 11, 01, 14, 15))
|
dateTimePy = QDateTime(datetime.datetime(2011, 05, 17, 11, 01, 14, 15000))
|
||||||
self.assertEqual(dateTime, dateTimePy)
|
self.assertEqual(dateTime, dateTimePy)
|
||||||
|
|
||||||
|
def testDateTimeNow(self):
|
||||||
|
py = datetime.datetime.now()
|
||||||
|
qt = QDateTime(py)
|
||||||
|
self.assertEqual(qt, py)
|
||||||
|
|
||||||
if __name__ == '__main__':
|
if __name__ == '__main__':
|
||||||
unittest.main()
|
unittest.main()
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue