From af411746b1480e7b331ea7d163f39d2507cf7264 Mon Sep 17 00:00:00 2001 From: zautrix Date: Thu, 16 Sep 2004 23:05:56 +0000 Subject: Fixed timezone problems in ompi --- (limited to 'kmicromail') diff --git a/kmicromail/accountitem.cpp b/kmicromail/accountitem.cpp index 7795055..49d86fc 100644 --- a/kmicromail/accountitem.cpp +++ b/kmicromail/accountitem.cpp @@ -302,7 +302,7 @@ QPopupMenu * NNTPviewItem::getContextMenu() { m->insertItem(QObject::tr("Disconnect",contextName),0); m->insertItem(QObject::tr("Set offline",contextName),1); - m->insertItem(QObject::tr("(Un-)Subscribe groups",contextName),2); + //m->insertItem(QObject::tr("(Un-)Subscribe groups",contextName),2); } else { @@ -759,9 +759,8 @@ void IMAPfolderItem::contextMenuSelected(int id) break; case GET_NEW_MAILS: // daunlood { - AccountView*bl = accountView(); - if (!bl) return; - bl->downloadMailsInbox(getFolder(),imap->getWrapper()); + if (!view) return; + view->downloadMailsInbox(getFolder(),imap->getWrapper()); } break; default: diff --git a/kmicromail/libmailwrapper/abstractmail.cpp b/kmicromail/libmailwrapper/abstractmail.cpp index 8f67566..88545f8 100644 --- a/kmicromail/libmailwrapper/abstractmail.cpp +++ b/kmicromail/libmailwrapper/abstractmail.cpp @@ -204,6 +204,7 @@ void AbstractMail::downloadNewMails(const FolderP&fromFolder, AbstractMail*targe ++jjj; } if ( !found ) { + //qDebug("AAAdate *%s* ", r->isodate.latin1() ); n.append( r ); } ++iii; diff --git a/kmicromail/libmailwrapper/genericwrapper.cpp b/kmicromail/libmailwrapper/genericwrapper.cpp index c3a1627..d99c6a3 100644 --- a/kmicromail/libmailwrapper/genericwrapper.cpp +++ b/kmicromail/libmailwrapper/genericwrapper.cpp @@ -27,7 +27,7 @@ Genericwrapper::~Genericwrapper() } cleanMimeCache(); } -QString Genericwrapper::parseDateTime( mailimf_date_time *date ) +const QDateTime Genericwrapper::parseDateTime( mailimf_date_time *date ) { static bool init = false ; if ( ! init ) { @@ -51,15 +51,23 @@ QString Genericwrapper::parseDateTime( mailimf_date_time *date ) QDate da (date->dt_year,date->dt_month, date->dt_day ); QTime ti ( date->dt_hour, date->dt_min, date->dt_sec ); QDateTime dt ( da ,ti ); + int addsec = -date->dt_zone*36; + //qDebug("adsec1 %d ",addsec ); + dt = dt.addSecs( addsec ); int off = KGlobal::locale()->localTimeOffset( dt ); - //dt = dt.addSecs( off*60 ); + //qDebug("adsec2 %d ",off*60 ); + + dt = dt.addSecs( off*60 ); + return dt; +#if 0 QString ret; - if ( da == QDate::currentDate () ) - ret = KGlobal::locale()->formatTime( ti,true); + if ( dt.date() == QDate::currentDate () ) + ret = KGlobal::locale()->formatTime( dt.time(),true); else { ret = KGlobal::locale()->formatDateTime( dt,true,true); } +#endif #if 0 if ( off < 0 ) ret += " -"; @@ -79,7 +87,7 @@ QString Genericwrapper::parseDateTime( mailimf_date_time *date ) return QString( tmp ); #endif - return ret; + //return ret; } void Genericwrapper::fillSingleBody(RecPartP&target,mailmessage*,mailmime*mime) @@ -495,11 +503,18 @@ void Genericwrapper::parseList(QValueList > & if (single_fields.fld_bcc) mail->setBcc( parseAddressList( single_fields.fld_bcc->bcc_addr_list ) ); if (single_fields.fld_orig_date) { - mail->setDate( parseDateTime( single_fields.fld_orig_date->dt_date_time ) ); - char tmp[23]; - struct mailimf_date_time* date = single_fields.fld_orig_date->dt_date_time; - snprintf( tmp, 23, "%04i-%02i-%02i %02i:%02i:%02i %05i", - date->dt_year,date->dt_month, date->dt_day, date->dt_hour, date->dt_min, date->dt_sec, date->dt_zone ); + QDateTime dt = Genericwrapper::parseDateTime( single_fields.fld_orig_date->dt_date_time ); + QString ret; + if ( dt.date() == QDate::currentDate () ) + ret = KGlobal::locale()->formatTime( dt.time(),true); + else { + ret = KGlobal::locale()->formatDateTime( dt,true,true); + } + mail->setDate( ret ); + char tmp[20]; + snprintf( tmp, 20, "%04i-%02i-%02i %02i:%02i:%02i", + dt.date().year(),dt.date().month(), dt.date().day(), dt.time().hour(), dt.time().minute(), dt.time().second() ); + //qDebug(" iso %s ", tmp); mail->setIsoDate( QString( tmp ) ); } // crashes when accessing pop3 account? diff --git a/kmicromail/libmailwrapper/genericwrapper.h b/kmicromail/libmailwrapper/genericwrapper.h index 244212f..c35a6da 100644 --- a/kmicromail/libmailwrapper/genericwrapper.h +++ b/kmicromail/libmailwrapper/genericwrapper.h @@ -42,7 +42,7 @@ public: virtual int deleteMbox(const Opie::Core::OSmartPointer&){return 1;} virtual void logout(){}; virtual void storeMessage(const char*msg,size_t length, const QString&folder){}; - static QString parseDateTime( mailimf_date_time *date ); + static const QDateTime parseDateTime( mailimf_date_time *date ); protected: RecBodyP parseMail( mailmessage * msg ); diff --git a/kmicromail/libmailwrapper/imapwrapper.cpp b/kmicromail/libmailwrapper/imapwrapper.cpp index d79df4f..b0dd1b8 100644 --- a/kmicromail/libmailwrapper/imapwrapper.cpp +++ b/kmicromail/libmailwrapper/imapwrapper.cpp @@ -8,6 +8,7 @@ #include "logindialog.h" #include #include "genericwrapper.h" +#include using namespace Opie::Core; int IMAPwrapper::mMax = 0; @@ -465,10 +466,18 @@ RecMail*IMAPwrapper::parse_list_result(mailimap_msg_att* m_att) size_t length = m->getDate().length(); size_t index = 0; if ( mailimf_date_time_parse(head->env_date, length,&index, re ) == MAILIMF_NO_ERROR ) { - m->setDate( Genericwrapper::parseDateTime( date ) ); - char tmp[23]; - snprintf( tmp, 23, "%04i-%02i-%02i %02i:%02i:%02i %05i", - date->dt_year,date->dt_month, date->dt_day, date->dt_hour, date->dt_min, date->dt_sec, date->dt_zone ); + QDateTime dt = Genericwrapper::parseDateTime( date ); + QString ret; + if ( dt.date() == QDate::currentDate () ) + ret = KGlobal::locale()->formatTime( dt.time(),true); + else { + ret = KGlobal::locale()->formatDateTime( dt,true,true); + } + m->setDate( ret ); + char tmp[20]; + snprintf( tmp, 20, "%04i-%02i-%02i %02i:%02i:%02i", + dt.date().year(),dt.date().month(), dt.date().day(), dt.time().hour(), dt.time().minute(), dt.time().second() ); + //qDebug("%d iso %s %s ", date->dt_zone, tmp, head->env_date); m->setIsoDate( QString( tmp ) ); } else { m->setIsoDate(head->env_date); diff --git a/kmicromail/libmailwrapper/mailtypes.cpp b/kmicromail/libmailwrapper/mailtypes.cpp index 1a4ffd1..af3b9d0 100644 --- a/kmicromail/libmailwrapper/mailtypes.cpp +++ b/kmicromail/libmailwrapper/mailtypes.cpp @@ -33,16 +33,22 @@ static bool stringCompareRec( const QString& s1, const QString& s2 ) bool RecMail::isEqual( RecMail* r1 ) { if ( !stringCompareRec( isodate, r1->isodate ) ) { - // qDebug("date *%s* *%s* ", isodate.latin1(), r1->isodate.latin1()); + //qDebug("date *%s* *%s* ", isodate.latin1(), r1->isodate.latin1()); return false; - } - if ( !stringCompareRec( from, r1->from ) ) { - //qDebug("from *%s* *%s* ", from.latin1(), r1->from.latin1()); + } + if ( !stringCompareRec( subject.left(40), r1->subject.left(40) ) ) { + //qDebug("sub *%s* *%s*", subject.latin1(), r1->subject.latin1()); return false; } - if ( !stringCompareRec( subject, r1->subject ) ) { - //qDebug("sub "); - return false; + + //qDebug("date *%s* *%s* ", isodate.latin1(), r1->isodate.latin1()); + if ( !stringCompareRec( from.left(40), r1->from.left(40)) ) { + if ( r1->from.find ( from ) < 0 ) { + if ( !stringCompareRec( from.simplifyWhiteSpace ().left(40), r1->from.simplifyWhiteSpace ().left(40)) ) { + //qDebug("from *%s* *%s* ", from.left(40).latin1(), r1->from.left(20).latin1()); + return false; + } + } } return true; diff --git a/kmicromail/libmailwrapper/mailtypes.h b/kmicromail/libmailwrapper/mailtypes.h index 020278d..c1c1a74 100644 --- a/kmicromail/libmailwrapper/mailtypes.h +++ b/kmicromail/libmailwrapper/mailtypes.h @@ -73,9 +73,11 @@ public: void setWrapper(AbstractMail*wrapper); AbstractMail* Wrapper(); + // public for debugging + QString subject,date,isodate,from,mbox,msg_id,replyto; protected: - QString subject,date,isodate,from,mbox,msg_id,replyto; + //QString subject,date,isodate,from,mbox,msg_id,replyto; unsigned int msg_number,msg_size; QBitArray msg_flags; QStringList to,cc,bcc,in_reply_to,references; diff --git a/kmicromail/opiemail.cpp b/kmicromail/opiemail.cpp index 7ccfb65..3cbac8e 100644 --- a/kmicromail/opiemail.cpp +++ b/kmicromail/opiemail.cpp @@ -321,7 +321,10 @@ void OpieMail::mailHold(int button, QListViewItem *item,const QPoint&,int ) { if (mailtype==MAILLIB::A_NNTP) { m->insertItem(tr("Read this posting"),this,SLOT(displayMail())); -// m->insertItem(tr("Copy this posting"),this,SLOT(slotMoveCopyMail())); + m->insertItem(tr("Copy this posting"),this,SLOT(slotMoveCopyMail())); + m->insertSeparator(); + m->insertItem(tr("Copy all selected postings"),this,SLOT(slotMoveCopyAllMail())); + m->insertItem(tr("Clear selection"),this,SLOT(clearSelection())); } else { if (folderView->currentisDraft()) { m->insertItem(tr("Edit this mail"),this,SLOT(reEditMail())); -- cgit v0.9.0.2