[prev in list] [next in list] [prev in thread] [next in thread] 

List:       kmail-devel
Subject:    [Kmail] patch for locale date format in kmail
From:       Matthias Kiefer <matthias.kiefer () gmx ! de>
Date:       2000-09-04 8:35:43
[Download RAW message or body]

Hi,

attached you find a patch to display the date and time in kmail in the format
suitable for the country set in kcontrol.

It would be nice, if you would apply it, because it looks very ugly,
if everything is translated but the date.

kind regards,
   Matthias
-- 
Matthias Kiefer
Email:	matthias.kiefer@gmx.de

["kmail.patch" (text/plain)]

Index: kmheaders.cpp
===================================================================
RCS file: /home/kde/kdenetwork/kmail/kmheaders.cpp,v
retrieving revision 1.204
diff -u -r1.204 kmheaders.cpp
--- kmheaders.cpp	2000/08/14 00:14:58	1.204
+++ kmheaders.cpp	2000/09/04 08:32:47
@@ -138,8 +138,7 @@
     if (subjStr.isEmpty()) subjStr = i18n("No Subject");
     setText( mPaintInfo->subCol, subjStr.simplifyWhiteSpace() );
 
-    time_t mDate = mMsgBase->date();
-    setText( mPaintInfo->dateCol, QString( ctime( &mDate )).stripWhiteSpace() );
+    setText( mPaintInfo->dateCol, mMsgBase->dateStr().stripWhiteSpace() );
 
     if (mPaintInfo->showSize)
       setText( mPaintInfo->sizeCol, QString( "%1" ).arg( mMsgBase->msgSize()));
@@ -179,6 +178,7 @@
 
     const int dateLength = 30;
     char cDate[dateLength + 1];
+    time_t mDate = mMsgBase->date();
     strftime( cDate, dateLength, "%Y:%j:%T", gmtime( &mDate ));
     mSortDate = cDate + mSortArrival;
   }
Index: kmmessage.cpp
===================================================================
RCS file: /home/kde/kdenetwork/kmail/kmmessage.cpp,v
retrieving revision 1.126
diff -u -r1.126 kmmessage.cpp
--- kmmessage.cpp	2000/08/30 14:03:52	1.126
+++ kmmessage.cpp	2000/09/04 08:32:50
@@ -271,7 +271,6 @@
   QString result, str;
   const char* pos;
   char ch, cstr[64];
-  time_t tm;
   int i;
 
   if (aStr.isEmpty()) return aStr;
@@ -285,18 +284,12 @@
       switch (ch)
       {
       case 'D':
-	/* I'm not too sure about this change. Is it not possible
-	   to have a long form of the date used? I don't
-	   like this change to a short XX/XX/YY date format.
-	   At least not for the default. -sanders
-        QDateTime datetime;
-	datetime.setTime_t(date());
-        result += KGlobal::locale()->formatDate(datetime.date());
-	*/
-	tm = date();
-	strftime(cstr, 63, "%a, %d %b %Y", localtime(&tm));
-	result += cstr;
-	break;
+	  {
+         QDateTime datetime;
+	     datetime.setTime_t(date());
+         result += KGlobal::locale()->formatDate(datetime.date());
+		 break;
+      }
       case 'F':
 	result += stripEmailAddr(from());
 	break;
@@ -997,7 +990,21 @@
 //-----------------------------------------------------------------------------
 const QString KMMessage::dateStr(void) const
 {
-  return headerField("Date").stripWhiteSpace();
+  DwHeaders& header = mMsg->Headers();
+  time_t unixTime;
+
+  if (!header.HasDate()) return "";
+  unixTime = header.Date().AsUnixTime();
+
+  QDateTime dateTime;
+  dateTime.setTime_t(unixTime);
+  QString result = KGlobal::locale()->formatDateTime(dateTime);
+
+  if (result[result.length()-1]=='\n')
+    result.truncate(result.length()-1);
+
+  return result;
+
 }
 
 
@@ -1010,7 +1017,9 @@
   if (!header.HasDate()) return "";
   unixTime = header.Date().AsUnixTime();
 
-  QCString result = ctime(&unixTime);
+  QDateTime dateTime;
+  dateTime.setTime_t(unixTime);
+  QString result = KGlobal::locale()->formatDateTime(dateTime,true);
 
   if (result[result.length()-1]=='\n')
     result.truncate(result.length()-1);
Index: kmmsgbase.cpp
===================================================================
RCS file: /home/kde/kdenetwork/kmail/kmmsgbase.cpp,v
retrieving revision 1.51
diff -u -r1.51 kmmsgbase.cpp
--- kmmsgbase.cpp	2000/08/26 00:03:23	1.51
+++ kmmsgbase.cpp	2000/09/04 08:33:01
@@ -5,6 +5,9 @@
 #include "kmmsgbase.h"
 #include <mimelib/mimepp.h>
 #include <qregexp.h>
+#include <qdatetime.h>
+#include <kglobal.h>
+#include <klocale.h>
 #ifndef KRN
 #include <kmfolder.h>
 #endif
@@ -180,7 +183,9 @@
 //-----------------------------------------------------------------------------
 const QString KMMsgBase::dateStr(void) const
 {
-  return ctime(&mDate);
+  QDateTime dateTime;
+  dateTime.setTime_t(mDate);
+  return KGlobal::locale()->formatDateTime(dateTime);
 }
 
 

_______________________________________________
Kmail mailing list
Kmail@master.kde.org
http://master.kde.org/mailman/listinfo/kmail


[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic