Fix timezone on conference creation.

Fix ICS to display conference start time in system timezone.
This commit is contained in:
Julien Wadel 2022-06-27 18:40:11 +02:00
parent d4d07ff7ab
commit c49fee7e68
3 changed files with 8 additions and 8 deletions

View file

@ -111,13 +111,12 @@ std::shared_ptr<linphone::ConferenceInfo> ConferenceInfoModel::getConferenceInfo
QDateTime ConferenceInfoModel::getDateTimeUtc() const{
return QDateTime::fromMSecsSinceEpoch(mConferenceInfo->getDateTime() * 1000);
return QDateTime::fromMSecsSinceEpoch(mConferenceInfo->getDateTime() * 1000).toUTC();
}
QDateTime ConferenceInfoModel::getDateTimeSystem() const{
QDateTime utc = getDateTimeUtc();
QDateTime system = utc.addSecs(mTimeZone.offsetFromUtc(utc));
return system;
return utc.addSecs(QTimeZone::systemTimeZone().offsetFromUtc(utc));
}
int ConferenceInfoModel::getDuration() const{
@ -183,15 +182,15 @@ TimeZoneModel* ConferenceInfoModel::getTimeZoneModel() const{
}
//------------------------------------------------------------------------------------------------
// Convert into UTC with TimeZone
// Convert into UTC with TimeZone and pass system timezone to conference info
void ConferenceInfoModel::setDateTime(const QDateTime& dateTime){
QDateTime utc = dateTime.addSecs( -mTimeZone.offsetFromUtc(dateTime));
mConferenceInfo->setDateTime(utc.toMSecsSinceEpoch() / 1000);
QDateTime system = utc.addSecs(QTimeZone::systemTimeZone().offsetFromUtc(utc));
mConferenceInfo->setDateTime(system.toMSecsSinceEpoch() / 1000);
emit dateTimeChanged();
}
void ConferenceInfoModel::setDuration(const int& duration){
qWarning() << "Set Duration: " << duration;
mConferenceInfo->setDuration(duration);
emit durationChanged();
}

View file

@ -37,6 +37,7 @@ class ConferenceInfoModel : public QObject {
public:
Q_PROPERTY(TimeZoneModel * timeZoneModel READ getTimeZoneModel WRITE setTimeZoneModel NOTIFY timeZoneModelChanged)
Q_PROPERTY(QDateTime dateTime READ getDateTimeSystem WRITE setDateTime NOTIFY dateTimeChanged)
Q_PROPERTY(QDateTime dateTimeUtc READ getDateTimeUtc NOTIFY dateTimeChanged)
Q_PROPERTY(int duration READ getDuration WRITE setDuration NOTIFY durationChanged)
Q_PROPERTY(QDateTime endDateTime READ getEndDateTime NOTIFY dateTimeChanged)
Q_PROPERTY(QString organizer READ getOrganizer WRITE setOrganizer NOTIFY organizerChanged)

View file

@ -136,7 +136,7 @@ Loader{
color: ChatCalendarMessageStyle.schedule.color
elide: Text.ElideRight
font.pointSize: ChatCalendarMessageStyle.calendar.pointSize
text: Qt.formatDate(mainItem.conferenceInfoModel.dateTime, 'yyyy/MM/dd')
text: Qt.formatDate(mainItem.conferenceInfoModel.dateTimeUtc, 'yyyy/MM/dd')
}
}
RowLayout {
@ -162,7 +162,7 @@ Loader{
color: ChatCalendarMessageStyle.schedule.color
elide: Text.ElideRight
font.pointSize: ChatCalendarMessageStyle.schedule.pointSize
text: Qt.formatDateTime(mainItem.conferenceInfoModel.dateTime, 'hh:mm')
text: Qt.formatDateTime(mainItem.conferenceInfoModel.dateTimeUtc, 'hh:mm')
+ (mainItem.conferenceInfoModel.duration > 0 ? ' ('+Utils.formatDuration(mainItem.conferenceInfoModel.duration * 60) + ')'
: '')
}