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

List:       kroupware
Subject:    [Kroupware] Fusion between kde cvs HEAD and kroupware
From:       Marc TAIEB <TAIEBMA () e-i ! com>
Date:       2003-07-28 16:34:41
[Download RAW message or body]

Hello,

Initially, I would like to tell you that I'm very impressed about your work on 
kmail and korganizer. It 's very nice.

However, there is one or two functionnalities that exists on kde head and not 
in the kroupware branch (spelling, autocompletion with kabc resources, ...)

So I have checkout the CVS HEAD (not the KDE_3_1 ..) of kde, chekout the 
kroupware branch and then try to integrate the 2 versions.

In my company, we have a Exchange Server 2000 and there is actually somme 
troubles :
	-  when you create an event and see it with Oulook, the event seems not 
correctly created
	-  the opposite is the same
The webdav server of Exchange 2000 is different than the Kolab server. 
Exchange return XML for the FreeBusy's. 
So I have add a checkbox like "Is an Exchange Server ?" in the groupware 
configuration. When this checkbox is checked I use libkpimexchange to 
retrieve freebusy's of the other attendee's.

Normaly, with this 3 patch's the kroupware version of Kmail can replace 
Outlook in your company. :-)

If you have some problems with the patch's tell it me.
I'm waiting for your remarks.

Regards

Marc TAIEB


PS: I'll can't response to the mails in august.
And sorry for my english


["libkpimexchange-patch" (text/x-diff)]

? core/exchangeaccount.moc
? core/exchangeclient.moc
? core/exchangedelete.moc
? core/exchangedownload.moc
? core/exchangeprogress.moc
? core/exchangeupload.moc
Index: core/exchangeaccount.cpp
===================================================================
RCS file: /home/taiebma/kde/cvsroot/kdepim/libkpimexchange/core/exchangeaccount.cpp,v
retrieving revision 1.7.2.3
diff -U0 -r1.7.2.3 exchangeaccount.cpp
--- core/exchangeaccount.cpp	16 Jul 2003 10:38:06 -0000	1.7.2.3
+++ core/exchangeaccount.cpp	28 Jul 2003 15:07:09 -0000
@@ -45,0 +46,6 @@
+static QString  mTabLibCalendar[4] = {
+  QString("Calendar"),
+  QString("Kalender"),
+  QString("Calendrier"),
+  QString("Agenda")};
+
@@ -125,0 +132 @@
+
@@ -135,0 +143,5 @@
+  kapp->config()->setGroup( "Calendar/Exchange Plugin" );
+  int mLang = kapp->config()->readEntry("language").toInt();
+  if (mLang > 3 )
+	  mLang = 0;
+
@@ -140 +152 @@
-    url.addPath( "Calendar" );
+    url.addPath( mTabLibCalendar[mLang] );
Index: core/exchangeclient.cpp
===================================================================
RCS file: /home/taiebma/kde/cvsroot/kdepim/libkpimexchange/core/exchangeclient.cpp,v
retrieving revision 1.9
diff -U0 -r1.9 exchangeclient.cpp
--- core/exchangeclient.cpp	30 Oct 2002 07:13:51 -0000	1.9
+++ core/exchangeclient.cpp	28 Jul 2003 15:07:09 -0000
@@ -39,0 +40,10 @@
+ExchangeClient::ExchangeClient( ExchangeAccount* account, bool authenticate, const \
QString& timeZoneId) : +  mWindow( 0 ), mTimeZoneId( timeZoneId ), \
mAuthenticate(authenticate) +{
+  kdDebug() << "Creating ExchangeClient...\n";
+  mAccount = account;
+  if ( timeZoneId.isNull() ) {
+    setTimeZoneId( "UTC" );
+  }
+}
+
@@ -41 +51 @@
-  mWindow( 0 ), mTimeZoneId( timeZoneId )
+  mWindow( 0 ), mTimeZoneId( timeZoneId ), mAuthenticate( true )
@@ -118 +128,3 @@
-  mAccount->authenticate( mWindow );
+  kdDebug() << "Date start " << start.toString() << " end " << end.toString() << \
endl; +  if (mAuthenticate)
+	  mAccount->authenticate( mWindow );
Index: core/exchangeclient.h
===================================================================
RCS file: /home/taiebma/kde/cvsroot/kdepim/libkpimexchange/core/exchangeclient.h,v
retrieving revision 1.8
diff -U0 -r1.8 exchangeclient.h
--- core/exchangeclient.h	30 Oct 2002 07:13:51 -0000	1.8
+++ core/exchangeclient.h	28 Jul 2003 15:07:09 -0000
@@ -46,0 +47 @@
+    ExchangeClient( ExchangeAccount* account, bool authenticate, const QString& \
mTimeZoneId=QString::null ); @@ -117,0 +119 @@
+    bool mAuthenticate;


["kmail-patch" (text/x-diff)]

Index: Makefile.am
===================================================================
RCS file: /home/taiebma/kde/cvsroot/kdenetwork/kmail/Attic/Makefile.am,v
retrieving revision 1.158.2.28
diff -U0 -r1.158.2.28 Makefile.am
--- Makefile.am	18 Jan 2003 20:55:55 -0000	1.158.2.28
+++ Makefile.am	28 Jul 2003 15:20:46 -0000
@@ -4,2 +4 @@
-INCLUDES = -I$(top_srcdir)/libkdenetwork \
-	   -I$(top_srcdir)/mimelib \
+INCLUDES = -I$(top_srcdir)/mimelib \
@@ -6,0 +6,3 @@
+	   -I$(top_srcdir)/../kdepim/libkdepim \
+	   -I$(top_srcdir)/../kdepim/libkdenetwork \
+	   -I$(top_srcdir)/../kdepim \
@@ -8 +10 @@
-LDADD = $(LIB_KHTML) $(LIB_KSPELL) $(LIB_KABC) \
+LDADD = $(LIB_KHTML) $(LIB_KSPELL) $(LIB_KABC) -lkdenetwork -lkcal \
@@ -10 +12 @@
-	../libkdenetwork/libkdenetwork.la ../mimelib/libmimelib.la
+	../mimelib/libmimelib.la
@@ -14 +16 @@
-kmail_LDFLAGS = $(all_libraries) $(KDE_RPATH)
+kmail_LDFLAGS = $(all_libraries) $(KDE_RPATH) -lkdepim
Index: kmcommands.cpp
===================================================================
RCS file: /home/taiebma/kde/cvsroot/kdenetwork/kmail/Attic/kmcommands.cpp,v
retrieving revision 1.8.2.12
diff -U0 -r1.8.2.12 kmcommands.cpp
--- kmcommands.cpp	24 Apr 2003 13:07:17 -0000	1.8.2.12
+++ kmcommands.cpp	28 Jul 2003 15:20:46 -0000
@@ -58,0 +59 @@
+#include "kcursorsaver.h"
@@ -67,0 +69 @@
+
@@ -73,0 +76,5 @@
+KMCommand::KMCommand( QWidget *parent, const QPtrList<KMMsgBase> &msgList)
+  :mParent( parent ), mMsgList( msgList )
+{
+}
+
@@ -725,0 +733,15 @@
+KMForwardAttachedCommand::KMForwardAttachedCommand( QWidget *parent,
+		  const QPtrList<KMMsgBase> &msgList, uint identity, KMComposeWin *win )
+  : KMCommand( parent, msgList ), mIdentity( identity ),
+      mWin( QGuardedPtr< KMComposeWin >( win ))
+{
+}
+
+KMForwardAttachedCommand::KMForwardAttachedCommand( QWidget *parent,
+		  KMMessage * msg, uint identity, KMComposeWin *win )
+  : KMCommand( parent, msg ), mIdentity( identity ),
+      mWin( QGuardedPtr< KMComposeWin >( win ))
+{
+}
+
+
@@ -729 +750,0 @@
-  KMComposeWin *win;
@@ -748 +769,2 @@
-  win = new KMComposeWin(fwdMsg, id);
+  if (!mWin)
+        mWin = new KMComposeWin(fwdMsg, mIdentity);
@@ -764 +786 @@
-    win->addAttach(msgPart);
+    mWin->addAttach(msgPart);
@@ -767 +789 @@
-  win->show();
+  mWin->show();
Index: kmcommands.h
===================================================================
RCS file: /home/taiebma/kde/cvsroot/kdenetwork/kmail/Attic/kmcommands.h,v
retrieving revision 1.3.2.3
diff -U0 -r1.3.2.3 kmcommands.h
--- kmcommands.h	10 Mar 2003 10:58:07 -0000	1.3.2.3
+++ kmcommands.h	28 Jul 2003 15:20:46 -0000
@@ -12,0 +13 @@
+class KMComposeWin;
@@ -31,0 +33,2 @@
+  // Retrieve all messages in msgList when start is called.
+  KMCommand( QWidget *parent, const QPtrList<KMMsgBase> &msgList );
@@ -316,0 +320,5 @@
+  KMForwardAttachedCommand( QWidget *parent, const QPtrList<KMMsgBase> &msgList,
+			    uint identity = 0, KMComposeWin *win = 0 );
+  KMForwardAttachedCommand( QWidget *parent, KMMessage * msg,
+    			    uint identity = 0, KMComposeWin *win = 0 );
+    
@@ -320,0 +329,3 @@
+  uint mIdentity;
+  QGuardedPtr<KMComposeWin> mWin;
+      
Index: kmcomposewin.cpp
===================================================================
RCS file: /home/taiebma/kde/cvsroot/kdenetwork/kmail/Attic/kmcomposewin.cpp,v
retrieving revision 1.588.2.50
diff -U0 -r1.588.2.50 kmcomposewin.cpp
--- kmcomposewin.cpp	27 May 2003 13:37:52 -0000	1.588.2.50
+++ kmcomposewin.cpp	28 Jul 2003 15:20:46 -0000
@@ -33,0 +34,2 @@
+#include "kmcommands.h"
+#include "kmmsgdict.h"
@@ -62,0 +65,3 @@
+#include <syntaxhighlighter.h>
+using Syntaxhighlighter::DictSpellChecker;
+using Syntaxhighlighter::SpellChecker;
@@ -76 +80,0 @@
-#include "kmrecentaddr.h"
@@ -86,0 +91,5 @@
+#include "addressesdialog.h"
+using KPIM::AddressesDialog;
+#include "recentaddresses.h"
+using KRecentAddress::RecentAddresses;
+
@@ -110 +119 @@
-  mEdtSubject = new KMLineEdit(this,false,mMainWidget, "subjectLine");
+  mEdtSubject = new KMLineEditSpell(this,false,mMainWidget, "subjectLine");
@@ -4747,3 +4756,3 @@
-  KMRecentAddresses::self()->add( bcc() );
-  KMRecentAddresses::self()->add( cc() );
-  KMRecentAddresses::self()->add( to() );
+  RecentAddresses::self()->add( bcc() );
+  RecentAddresses::self()->add( cc() );
+  RecentAddresses::self()->add( to() );
@@ -5135,2 +5143,0 @@
-
-
@@ -5142,0 +5150,118 @@
+void KMEdit::contentsDragEnterEvent(QDragEnterEvent *e)
+{
+    if (e->format(0) && (e->format(0) == QString("x-kmail-drag/message")))
+	e->accept(true);
+    else
+	return KMEditInherited::dragEnterEvent(e);
+}
+
+void KMEdit::contentsDragMoveEvent(QDragMoveEvent *e)
+{
+    if (e->format(0) && (e->format(0) == QString("x-kmail-drag/message")))
+	e->accept();
+    else
+	return KMEditInherited::dragMoveEvent(e);
+}
+
+void KMEdit::keyPressEvent( QKeyEvent* e )
+{
+    if( e->key() == Key_Return ) {
+        int line, col;
+        getCursorPosition( &line, &col );
+        QString lineText = text( line );
+        // returns line with additional trailing space (bug in Qt?), cut it off
+        lineText.truncate( lineText.length() - 1 );
+        // special treatment of quoted lines only if the cursor is neither at
+        // the begin nor at the end of the line
+        if( ( col > 0 ) && ( col < int( lineText.length() ) ) ) {
+            bool isQuotedLine = false;
+            uint bot = 0; // bot = begin of text after quote indicators
+            while( bot < lineText.length() ) {
+                if( ( lineText[bot] == '>' ) || ( lineText[bot] == '|' ) ) {
+                    isQuotedLine = true;
+                    ++bot;
+                }
+                else if( lineText[bot].isSpace() ) {
+                    ++bot;
+                }
+                else {
+                    break;
+                }
+            }
+
+            KMEditInherited::keyPressEvent( e );
+
+            // duplicate quote indicators of the previous line before the new
+            // line if the line actually contained text (apart from the quote
+            // indicators) and the cursor is behind the quote indicators
+            if( isQuotedLine
+                && ( bot != lineText.length() )
+                && ( col >= int( bot ) ) ) {
+                QString newLine = text( line + 1 );
+                // remove leading white space from the new line and instead
+                // add the quote indicators of the previous line
+                unsigned int leadingWhiteSpaceCount = 0;
+                while( ( leadingWhiteSpaceCount < newLine.length() )
+                       && newLine[leadingWhiteSpaceCount].isSpace() ) {
+                    ++leadingWhiteSpaceCount;
+                }
+                newLine = newLine.replace( 0, leadingWhiteSpaceCount,
+                                           lineText.left( bot ) );
+                removeParagraph( line + 1 );
+                insertParagraph( newLine, line + 1 );
+                // place the cursor at the begin of the new line since
+                // we assume that the user split the quoted line in order
+                // to add a comment to the first part of the quoted line
+                setCursorPosition( line + 1 , 0 );
+            }
+        }
+        else
+            KMEditInherited::keyPressEvent( e );
+    }
+    else
+        KMEditInherited::keyPressEvent( e );
+}
+
+
+void KMEdit::contentsDropEvent(QDropEvent *e)
+{
+    if (e->format(0) && (e->format(0) == QString("x-kmail-drag/message"))) {
+	// Decode the list of serial numbers stored as the drag data
+	QByteArray serNums = e->encodedData("x-kmail-drag/message");
+	QBuffer serNumBuffer(serNums);
+	serNumBuffer.open(IO_ReadOnly);
+	QDataStream serNumStream(&serNumBuffer);
+	unsigned long serNum;
+	KMFolder *folder = 0;
+	int idx;
+	QPtrList<KMMsgBase> messageList;
+	while (!serNumStream.atEnd()) {
+	    KMMsgBase *msgBase = 0;
+	    serNumStream >> serNum;
+	    kernel->msgDict()->getLocation(serNum, &folder, &idx);
+	    if (folder)
+		msgBase = folder->getMsgBase(idx);
+	    if (msgBase)
+		messageList.append( msgBase );
+	}
+	serNumBuffer.close();
+	uint identity = folder ? folder->identity() : 0;
+	KMCommand *command =
+	    new KMForwardAttachedCommand(mComposer, messageList,
+					 identity, mComposer);
+	command->start();
+    }
+    else if( KURLDrag::canDecode( e ) ) {
+        KURL::List urlList;
+        if( KURLDrag::decode( e, urlList ) ) {
+            for( KURL::List::Iterator it = urlList.begin();
+                 it != urlList.end(); ++it ) {
+                mComposer->addAttach( *it );
+            }
+        }
+    }
+    else {
+	return KMEditInherited::dropEvent(e);
+    }
+}
+
@@ -5239 +5363,0 @@
-
@@ -5246,3 +5369,0 @@
-KCompletion * KMLineEdit::s_completion = 0;
-bool KMLineEdit::s_addressesDirty = false;
-
@@ -5251,38 +5372 @@
-    : KMLineEditInherited(parent,name)
-{
-  mComposer = composer;
-  m_useCompletion = useCompletion;
-  m_smartPaste = false;
-
-  if ( !s_completion ) {
-      s_completion = new KCompletion();
-      s_completion->setOrder( KCompletion::Sorted );
-      s_completion->setIgnoreCase( true );
-  }
-
-  installEventFilter(this);
-
-  if ( m_useCompletion )
-  {
-      setCompletionObject( s_completion, false ); // we handle it ourself
-      connect( this, SIGNAL( completion(const QString&)),
-               this, SLOT(slotCompletion() ));
-
-      KCompletionBox *box = completionBox();
-      connect( box, SIGNAL( highlighted( const QString& )),
-               this, SLOT( slotPopupCompletion( const QString& ) ));
-      connect( completionBox(), SIGNAL( userCancelled( const QString& )),
-               SLOT( setText( const QString& )));
-
-
-      // Whenever a new KMLineEdit is created (== a new composer is created),
-      // we set a dirty flag to reload the addresses upon the first completion.
-      // The address completions are shared between all KMLineEdits.
-      // Is there a signal that tells us about addressbook updates?
-      s_addressesDirty = true;
-  }
-}
-
-
-//-----------------------------------------------------------------------------
-KMLineEdit::~KMLineEdit()
+    : KMLineEditInherited(parent,useCompletion,name), mComposer(composer)
@@ -5290 +5373,0 @@
-  removeEventFilter(this);
@@ -5293,7 +5375,0 @@
-//-----------------------------------------------------------------------------
-void KMLineEdit::setFont( const QFont& font )
-{
-    KMLineEditInherited::setFont( font );
-    if ( m_useCompletion )
-        completionBox()->setFont( font );
-}
@@ -5302 +5378 @@
-bool KMLineEdit::eventFilter(QObject *o, QEvent *e)
+void KMLineEdit::keyPressEvent(QKeyEvent *e)
@@ -5304,13 +5379,0 @@
-#ifdef KeyPress
-#undef KeyPress
-#endif
-
-  if (e->type() == QEvent::KeyPress)
-  {
-    QKeyEvent* k = (QKeyEvent*)e;
-
-    if (KStdAccel::shortcut(KStdAccel::SubstringCompletion).contains(KKey(k)))
-    {
-      doCompletion(true);
-      return TRUE;
-    }
@@ -5318 +5381 @@
-    if ((k->key() == Key_Enter || k->key() == Key_Return) &&
+    if ((e->key() == Key_Enter || e->key() == Key_Return) &&
@@ -5322,18 +5385 @@
-      return TRUE;
-    }
-    if (k->state()==ControlButton && k->key() == Key_Right)
-    {
-      if ((int)text().length() == cursorPosition()) // at End?
-      {
-        doCompletion(true);
-        return TRUE;
-      }
-      return FALSE;
-    }
-    if (k->state()==ControlButton && k->key() == Key_V)
-    {
-      if (m_useCompletion)
-         m_smartPaste = true;
-      paste();
-      m_smartPaste = false;
-      return TRUE;
+      return;
@@ -5341 +5387 @@
-    if (k->key() == Key_Up)
+    if (e->key() == Key_Up)
@@ -5344 +5390 @@
-      return TRUE;
+      return;
@@ -5346 +5392 @@
-    if (k->key() == Key_Down)
+    if (e->key() == Key_Down)
@@ -5349 +5395 @@
-      return TRUE;
+      return;
@@ -5352,15 +5398 @@
-
-  }
-  return KMLineEditInherited::eventFilter(o, e);
-}
-
-void KMLineEdit::mouseReleaseEvent( QMouseEvent * e )
-{
-   if (m_useCompletion && (e->button() == MidButton))
-   {
-      m_smartPaste = true;
-      KMLineEditInherited::mouseReleaseEvent(e);
-      m_smartPaste = false;
-      return;
-   }
-   KMLineEditInherited::mouseReleaseEvent(e);
+  KMLineEditInherited::keyPressEvent(e);
@@ -5369 +5401,3 @@
-void KMLineEdit::insert(const QString &t)
+#if 0
+//-----------------------------------------------------------------------------
+void KMLineEdit::dropEvent(QDropEvent *e)
@@ -5371 +5405,4 @@
-    if (!m_smartPaste)
+  KURL::List uriList;
+  if(KURLDrag::decode( e, uriList ))
+  {
+    for (KURL::List::ConstIterator it = uriList.begin(); it != uriList.end(); ++it)
@@ -5373,2 +5410 @@
-       KMLineEditInherited::insert(t);
-       return;
+      smartInsert( (*it).url() );
@@ -5376,5 +5412,2 @@
-    smartInsert( t, cursorPosition() );
-}
-
-void KMLineEdit::paste()
-{
+  }
+  else {
@@ -5383 +5416 @@
-    KMLineEditInherited::paste();
+    QLineEdit::dropEvent(e);
@@ -5384,0 +5418 @@
+  }
@@ -5387,155 +5420,0 @@
-//-----------------------------------------------------------------------------
-void KMLineEdit::cursorAtEnd()
-{
-    setCursorPosition( text().length() );
-}
-
-
-void KMLineEdit::undo()
-{
-    QKeyEvent k(QEvent::KeyPress, 90, 26, 16 ); // Ctrl-Z
-    keyPressEvent( &k );
-}
-
-//-----------------------------------------------------------------------------
-void KMLineEdit::doCompletion(bool ctrlT)
-{
-    if ( !m_useCompletion )
-        return;
-
-    QString s(text());
-    QString prevAddr;
-    int n = s.findRev(',');
-    if (n>= 0)
-    {
-        prevAddr = s.left(n+1) + ' ';
-        s = s.mid(n+1,255).stripWhiteSpace();
-    }
-
-    KCompletionBox *box = completionBox();
-
-    if ( s.isEmpty() )
-    {
-        box->hide();
-        return;
-    }
-
-    KGlobalSettings::Completion  mode = completionMode();
-
-    if ( s_addressesDirty )
-        loadAddresses();
-
-    QString match;
-    int curPos = cursorPosition();
-    if ( mode != KGlobalSettings::CompletionNone )
-    {
-        match = s_completion->makeCompletion( s );
-        if (match.isNull() && mode == KGlobalSettings::CompletionPopup)
-          match = s_completion->makeCompletion( "\"" + s );
-    }
-
-    // kdDebug(5006) << "** completion for: " << s << " : " << match << endl;
-
-    if ( ctrlT )
-    {
-        QStringList addresses = s_completion->items();
-        QStringList::Iterator it = addresses.begin();
-        QStringList completions;
-        for (; it != addresses.end(); ++it)
-        {
-            if ((*it).find(s,0,false) >= 0)
-                completions.append( *it );
-        }
-
-        if (completions.count() > 1) {
-            m_previousAddresses = prevAddr;
-            box->setItems( completions );
-            box->setCancelledText( text() );
-            box->popup();
-        }
-        else if (completions.count() == 1) {
-            setText(prevAddr + completions.first());
-            setEdited( true );
-        }
-        else
-            box->hide();
-
-        cursorAtEnd();
-        return;
-    }
-
-    switch ( mode )
-    {
-        case KGlobalSettings::CompletionPopup:
-        {
-            if ( !match.isNull() )
-            {
-                m_previousAddresses = prevAddr;
-                box->setItems( s_completion->allMatches( s ));
-                box->insertItems( s_completion->allMatches( "\"" + s ));
-                box->setCancelledText( text() );
-                box->popup();
-            }
-            else
-                box->hide();
-
-            break;
-        }
-
-        case KGlobalSettings::CompletionShell:
-        {
-            if ( !match.isNull() && match != s )
-            {
-                setText( prevAddr + match );
-                setEdited( true );
-                cursorAtEnd();
-            }
-            break;
-        }
-
-        case KGlobalSettings::CompletionMan: // Short-Auto in fact
-        case KGlobalSettings::CompletionAuto:
-        {
-            if ( !match.isNull() && match != s )
-            {
-                QString adds = prevAddr + match;
-                validateAndSet( adds, curPos, curPos, adds.length() );
-            }
-            break;
-        }
-
-        default: // fall through
-        case KGlobalSettings::CompletionNone:
-            break;
-    }
-}
-
-//-----------------------------------------------------------------------------
-void KMLineEdit::slotPopupCompletion( const QString& completion )
-{
-    setText( m_previousAddresses + completion );
-    setEdited( true );
-    cursorAtEnd();
-}
-
-//-----------------------------------------------------------------------------
-void KMLineEdit::loadAddresses()
-{
-    s_completion->clear();
-    s_addressesDirty = false;
-
-    QStringList recent = KMRecentAddresses::self()->addresses();
-    QStringList::Iterator it = recent.begin();
-    for ( ; it != recent.end(); ++it )
-        s_completion->addItem( *it );
-
-    QStringList addresses;
-    KabcBridge::addresses(&addresses);
-    QStringList::Iterator it2 = addresses.begin();
-    for (; it2 != addresses.end(); ++it2) {
-    	s_completion->addItem( *it2 );
-    }
-}
-
-
-//-----------------------------------------------------------------------------
@@ -5546 +5425 @@
-       return;
+        return;
@@ -5554 +5433 @@
-      pos = contents.length();
+        pos = contents.length();
@@ -5559,6 +5438,6 @@
-       // Cut away the selection.
-       if (pos > end_sel)
-          pos -= (end_sel - start_sel);
-       else if (pos > start_sel)
-          pos = start_sel;
-       contents = contents.left(start_sel) + contents.right(end_sel+1);
+        // Cut away the selection.
+        if (pos > end_sel)
+            pos -= (end_sel - start_sel);
+        else if (pos > start_sel)
+            pos = start_sel;
+        contents = contents.left(start_sel) + contents.right(end_sel+1);
@@ -5571,3 +5450,3 @@
-    {
-       contents = QString::null;
-    }
+     {
+         contents = QString::null;
+     }
@@ -5576,5 +5455,5 @@
-       if (contents[eot-1] == ',')
-          eot--;
-       contents.truncate(eot);
-       contents += ", ";
-       pos = eot+2;
+        if (contents[eot-1] == ',')
+            eot--;
+        contents.truncate(eot);
+        contents += ", ";
+        pos = eot+2;
@@ -5585 +5464 @@
-      kdDebug(5006) << "Pasting '" << newText << "'" << endl;
+        kdDebug(5006) << "Pasting '" << newText << "'" << endl;
@@ -5588 +5467 @@
-      kdDebug(5006) << "path of mailto URL: '" << newText << "'" << endl;
+        kdDebug(5006) << "path of mailto URL: '" << newText << "'" << endl;
@@ -5591 +5470 @@
-          newText = KMMsgBase::decodeRFC2047String( newText.latin1() );
+            newText = KMMsgBase::decodeRFC2047String( newText.latin1() );
@@ -5595,3 +5474,3 @@
-       // Anti-spam stuff
-       newText.replace( QRegExp(" at "), "@" );
-       newText.replace( QRegExp(" dot "), "." );
+        // Anti-spam stuff
+        newText.replace( " at ", "@" );
+        newText.replace( " dot ", "." );
@@ -5601 +5480 @@
-      newText.replace( QRegExp("\\s*\\(at\\)\\s*"), "@" );
+        newText.replace( QRegExp("\\s*\\(at\\)\\s*"), "@" );
@@ -5607,0 +5487 @@
+#endif
@@ -5610 +5490 @@
-void KMLineEdit::dropEvent(QDropEvent *e)
+void KMLineEdit::loadAddresses()
@@ -5612,4 +5492,35 @@
-  QStrList uriList;
-  if(QUriDrag::canDecode(e) && QUriDrag::decode( e, uriList ))
-  {
-    for (QStrListIterator it(uriList); it; ++it)
+    KMLineEditInherited::loadAddresses();
+
+    QStringList recent = RecentAddresses::self()->addresses();
+    QStringList::Iterator it = recent.begin();
+    for ( ; it != recent.end(); ++it )
+        addAddress( *it );
+}
+
+
+KMLineEditSpell::KMLineEditSpell(KMComposeWin* composer, bool useCompletion,
+                       QWidget *parent, const char *name)
+    : KMLineEdit(composer,useCompletion,parent,name)
+{
+}
+
+
+void KMLineEditSpell::highLightWord( unsigned int length, unsigned int pos )
+{
+    setSelection ( pos, length );
+}
+
+void KMLineEditSpell::spellCheckDone( const QString &s )
+{
+    if( s != text() )
+	setText( s );
+}
+
+void KMLineEditSpell::spellCheckerMisspelling( const QString &_text, const \
QStringList &, unsigned int pos) +{
+     highLightWord( _text.length(),pos );
+}
+
+void KMLineEditSpell::spellCheckerCorrected( const QString &old, const QString \
&corr, unsigned int pos) +{
+    if( old!= corr )
@@ -5617 +5528,3 @@
-      smartInsert( QString::fromUtf8(*it) );
+        setSelection ( pos, old.length() );
+        insert( corr );
+        setSelection ( pos, corr.length() );
@@ -5619,7 +5531,0 @@
-  }
-  else {
-    if (m_useCompletion)
-       m_smartPaste = true;
-    QLineEdit::dropEvent(e);
-    m_smartPaste = false;
-  }
@@ -5643 +5549 @@
-
+  spellLineEdit = false;
@@ -5648,0 +5555,16 @@
+  KConfig *config = KMKernel::config();
+  KConfigGroupSaver saver(config, "Reader");
+  QColor defaultColor1( 0x00, 0x80, 0x00 ); // defaults from kmreaderwin.cpp
+  QColor defaultColor2( 0x00, 0x70, 0x00 );
+  QColor defaultColor3( 0x00, 0x60, 0x00 );
+  QColor defaultForeground( kapp->palette().active().text() );
+  QColor col1 = config->readColorEntry( "ForegroundColor", &defaultForeground );
+  QColor col2 = config->readColorEntry( "QuotedText3", &defaultColor3 );
+  QColor col3 = config->readColorEntry( "QuotedText2", &defaultColor2 );
+  QColor col4 = config->readColorEntry( "QuotedText1", &defaultColor1 );
+  QColor c = QColor("red");
+  mSpellChecker = new DictSpellChecker(this, /*active*/ true, /*autoEnabled*/ true,
+    /*spellColor*/ config->readColorEntry("NewMessage", &c),
+    /*colorQuoting*/ true, col1, col2, col3, col4);
+  connect( mSpellChecker, SIGNAL(activeChanged(const QString &)),
+	   composer, SLOT(slotStatusMessage(const QString &)));
@@ -5651 +5572,0 @@
-
@@ -5659 +5580 @@
-  mKSpell = 0;
+  delete mSpellChecker;
@@ -5761,11 +5681,0 @@
-  else if (e->type() == QEvent::Drop)
-  {
-    KURL::List urlList;
-    QDropEvent *de = static_cast<QDropEvent*>(e);
-    if(QUriDrag::canDecode(de) && KURLDrag::decode( de, urlList ))
-    {
-      for (KURL::List::Iterator it = urlList.begin(); it != urlList.end(); ++it)
-        mComposer->addAttach(*it);
-      return TRUE;
-    }
-  }
@@ -5802 +5712 @@
-
+  spellLineEdit = !spellLineEdit;
@@ -5804,0 +5715,4 @@
+  QStringList l = SpellChecker::personalWords();
+  for ( QStringList::Iterator it = l.begin(); it != l.end(); ++it ) {
+      mKSpell->addPersonal( *it );
+  }
@@ -5808 +5722 @@
-          this, SLOT (misspelling (const QString &, const QStringList &, unsigned \
int))); +          this, SLOT (slotMisspelling (const QString &, const QStringList &, \
unsigned int))); @@ -5810 +5724 @@
-          this, SLOT (corrected (const QString &, const QString &, unsigned int)));
+          this, SLOT (slotCorrected (const QString &, const QString &, unsigned \
int))); @@ -5814,0 +5729,39 @@
+void KMEdit::cut()
+{
+    KEdit::cut();
+    mSpellChecker->restartBackgroundSpellCheck();
+}
+
+void KMEdit::clear()
+{
+    KEdit::clear();
+    mSpellChecker->restartBackgroundSpellCheck();
+}
+
+void KMEdit::del()
+{
+    KEdit::del();
+    mSpellChecker->restartBackgroundSpellCheck();
+}
+
+
+
+void KMEdit::slotMisspelling(const QString &text, const QStringList &lst, unsigned \
int pos) +{
+    kdDebug()<<"void KMEdit::slotMisspelling(const QString &text, const QStringList \
&lst, unsigned int pos) : "<<text <<endl; +
+     if( spellLineEdit )
+         mComposer->sujectLineWidget()->spellCheckerMisspelling( text, lst, pos);
+     else
+         misspelling(text, lst, pos);
+
+}
+
+void KMEdit::slotCorrected (const QString &oldWord, const QString &newWord, unsigned \
int pos) +{
+    kdDebug()<<"slotCorrected (const QString &oldWord, const QString &newWord, \
unsigned int pos) : "<<oldWord<<endl; +    if( spellLineEdit )
+        mComposer->sujectLineWidget()->spellCheckerCorrected( oldWord, newWord, \
pos); +     else
+         corrected(oldWord, newWord, pos);
+}
@@ -5819 +5772,3 @@
-  spellcheck_start();
+    if( !spellLineEdit)
+    {
+        spellcheck_start();
@@ -5821,6 +5776,6 @@
-  QString quotePrefix;
-  if(mComposer && mComposer->msg())
-  {
-    // read the quote indicator from the preferences
-    KConfig *config=KMKernel::config();
-    KConfigGroupSaver saver(config, "General");
+        QString quotePrefix;
+        if(mComposer && mComposer->msg())
+        {
+            // read the quote indicator from the preferences
+            KConfig *config=KMKernel::config();
+            KConfigGroupSaver saver(config, "General");
@@ -5828,2 +5783,2 @@
-    int languageNr = config->readNumEntry("reply-current-language",0);
-    config->setGroup( QString("KMMessage #%1").arg(languageNr) );
+            int languageNr = config->readNumEntry("reply-current-language",0);
+            config->setGroup( QString("KMMessage #%1").arg(languageNr) );
@@ -5831,3 +5786,3 @@
-    quotePrefix = config->readEntry("indent-prefix", ">%_");
-    quotePrefix = mComposer->msg()->formatString(quotePrefix);
-  }
+            quotePrefix = config->readEntry("indent-prefix", ">%_");
+            quotePrefix = mComposer->msg()->formatString(quotePrefix);
+        }
@@ -5835,3 +5790,3 @@
-  kdDebug(5006) << "spelling: new SpellingFilter with prefix=\"" << quotePrefix << \
                "\"" << endl;
-  mSpellingFilter = new SpellingFilter(text(), quotePrefix, \
                SpellingFilter::FilterUrls,
-    SpellingFilter::FilterEmailAddresses);
+        kdDebug(5006) << "spelling: new SpellingFilter with prefix=\"" << \
quotePrefix << "\"" << endl; +        mSpellingFilter = new SpellingFilter(text(), \
quotePrefix, SpellingFilter::FilterUrls, +                                            \
SpellingFilter::FilterEmailAddresses); @@ -5839 +5794,4 @@
-  mKSpell->check(mSpellingFilter->filteredText());
+        mKSpell->check(mSpellingFilter->filteredText());
+    }
+    else if( mComposer )
+        mKSpell->check( mComposer->sujectLineWidget()->text());
@@ -5843 +5801 @@
-void KMEdit::slotSpellResult(const QString &)
+void KMEdit::slotSpellResult(const QString &s)
@@ -5845 +5803,2 @@
-  spellcheck_stop();
+    if( !spellLineEdit)
+        spellcheck_stop();
@@ -5850,3 +5809,13 @@
-    kdDebug(5006) << "spelling: canceled - restoring text from SpellingFilter" << \
                endl;
-    setText(mSpellingFilter->originalText());
-    setModified(mWasModifiedBeforeSpellCheck);
+      if( spellLineEdit)
+      {
+          //stop spell check
+          spellLineEdit = false;
+          if( s != mComposer->sujectLineWidget()->text() )
+              mComposer->sujectLineWidget()->setText( s );
+      }
+      else
+      {
+          kdDebug(5006) << "spelling: canceled - restoring text from SpellingFilter" \
<< endl; +          setText(mSpellingFilter->originalText());
+          setModified(mWasModifiedBeforeSpellCheck);
+      }
@@ -5854 +5822,0 @@
-
@@ -5855,0 +5824,2 @@
+  DictSpellChecker::dictionaryChanged();
+
@@ -5861,0 +5832 @@
+    kdDebug()<<" void \
KMEdit::slotSpellDone()**********************************************\n"; @@ -5866 \
                +5837 @@
-  kdDebug(5006) << "spelling: delete SpellingFilter" << endl;
+  kdDebug() << "spelling: delete SpellingFilter" << endl;
@@ -5869 +5840 @@
-
+  mComposer->sujectLineWidget()->deselect();
@@ -5879,0 +5851,9 @@
+  }
+  else
+  {
+      if( spellLineEdit )
+          spellcheck();
+#if KDE_IS_VERSION( 3, 1, 90 )
+      else if( status == KSpell::FinishedNoMisspellingsEncountered )
+          KMessageBox::information( this, i18n("No misspellings encountered"));
+#endif
Index: kmcomposewin.h
===================================================================
RCS file: /home/taiebma/kde/cvsroot/kdenetwork/kmail/Attic/kmcomposewin.h,v
retrieving revision 1.171.2.16
diff -U0 -r1.171.2.16 kmcomposewin.h
--- kmcomposewin.h	27 May 2003 13:37:52 -0000	1.171.2.16
+++ kmcomposewin.h	28 Jul 2003 15:20:46 -0000
@@ -30,0 +31 @@
+#include <kabc/addresslineedit.h>
@@ -37,0 +39,4 @@
+namespace Syntaxhighlighter {
+	  class DictSpellChecker;
+}
+
@@ -94,0 +100,6 @@
+  /** Drag and drop methods */
+  void contentsDragEnterEvent(QDragEnterEvent *e);
+  void contentsDragMoveEvent(QDragMoveEvent *e);
+  void contentsDropEvent(QDropEvent *e);
+	
+
@@ -102 +113,5 @@
-
+  void slotMisspelling(const QString &, const QStringList &, unsigned int);
+  void slotCorrected (const QString &, const QString &, unsigned int);
+  virtual void cut();
+  virtual void clear();
+  virtual void del();
@@ -107,0 +123 @@
+  virtual void keyPressEvent( QKeyEvent* );
@@ -117,0 +134,2 @@
+  Syntaxhighlighter::DictSpellChecker *mSpellChecker;
+  bool spellLineEdit;
@@ -122,2 +140,2 @@
-#define KMLineEditInherited KLineEdit
-class KMLineEdit : public KLineEdit
+//#define KMLineEditInherited KLineEdit
+class KMLineEdit : public KABC::AddressLineEdit
@@ -126 +144 @@
-
+  typedef KABC::AddressLineEdit KMLineEditInherited;
@@ -130,10 +147,0 @@
-  virtual ~KMLineEdit();
-
-  virtual void setFont( const QFont& );
-
-public slots:
-  void undo();
-  /**
-   * Set cursor to end of line.
-   */
-  void cursorAtEnd();
@@ -142,14 +150 @@
-  virtual bool eventFilter(QObject*, QEvent*);
-  virtual void dropEvent(QDropEvent *e);
-  virtual void paste();
-  virtual void insert(const QString &t);
-  virtual void mouseReleaseEvent( QMouseEvent * e );
-  void doCompletion(bool ctrlT);
-  KMComposeWin* mComposer;
-
-private slots:
-  void slotCompletion() { doCompletion(false); }
-  void slotPopupCompletion( const QString& );
-
-private:
-  void loadAddresses();
+  virtual void loadAddresses();
@@ -165 +160 @@
-   */
+   
@@ -166,0 +162,2 @@
+  */
+  virtual void keyPressEvent(QKeyEvent*);
@@ -168,3 +165,2 @@
-  QString m_previousAddresses;
-  bool m_useCompletion;
-  bool m_smartPaste;
+private:
+  KMComposeWin* mComposer;
@@ -172,2 +168 @@
-  static bool s_addressesDirty;
-  static KCompletion *s_completion;
+};
@@ -174,0 +170,10 @@
+class KMLineEditSpell : public KMLineEdit
+{
+  Q_OBJECT
+public:
+  KMLineEditSpell(KMComposeWin* composer, bool useCompletion, QWidget *parent = 0,
+ 	 const char *name = 0);
+  void highLightWord( unsigned int length, unsigned int pos );
+  void spellCheckDone( const QString &s );
+  void spellCheckerMisspelling( const QString &text, const QStringList &, unsigned \
int pos); +  void spellCheckerCorrected( const QString &old, const QString &corr, \
unsigned int pos); @@ -318,0 +324 @@
+   KMLineEditSpell *sujectLineWidget() const { return mEdtSubject;}
@@ -687 +693,2 @@
-  KMLineEdit *mEdtFrom, *mEdtReplyTo, *mEdtTo, *mEdtCc, *mEdtBcc, *mEdtSubject;
+  KMLineEdit *mEdtFrom, *mEdtReplyTo, *mEdtTo, *mEdtCc, *mEdtBcc;
+  KMLineEditSpell *mEdtSubject;
Index: kmgroupware.cpp
===================================================================
RCS file: /home/taiebma/kde/cvsroot/kdenetwork/kmail/Attic/kmgroupware.cpp,v
retrieving revision 1.1.2.229
diff -U0 -r1.1.2.229 kmgroupware.cpp
--- kmgroupware.cpp	18 Jul 2003 10:25:59 -0000	1.1.2.229
+++ kmgroupware.cpp	28 Jul 2003 15:20:46 -0000
@@ -55,0 +56,2 @@
+#include <libkcal/incidence.h>
+#include <libkcal/icalformat.h>
@@ -415 +417,2 @@
-	    DwMime::kSubtypeMixed  == msg->subtype() )
+	    (DwMime::kSubtypeMixed  == msg->subtype() ) ||
+	    (DwMime::kSubtypeAlternative  == msg->subtype() ))
@@ -428,0 +432,10 @@
+    else {
+	    dwPart = msg->findDwBodyPart( DwMime::kTypeText,
+			    DwMime::kSubtypeVCal );
+	    if (dwPart) {
+      		KMMessagePart msgPart;
+		KMMessage::bodyPart(dwPart, &msgPart);
+		s = msgPart.body();    
+		return true;
+	    }
+    }
@@ -432,0 +446 @@
+
@@ -1196,0 +1211,2 @@
+  msg->setHeaderField("Content-class",
+                      "urn:content-classes:appointment");
@@ -1199 +1215,4 @@
-  msg->setSubject( uid ); // we could use the uid as subj
+  KCal::ICalFormat	icalformat;
+  KCal::Incidence *inc = icalformat.fromString( ical );
+  msg->setSubject( inc->summary() ); // we could use the uid as subj
+  //msg->setSubject( uid ); // we could use the uid as subj


["korganizer-patch" (text/plain)]

? .libs
? alarmclient.lo
? alarmclient.moc.cpp
? alarmclient.moc.lo
? archivedialog.lo
? archivedialog.moc
? baseview.moc
? calendarview.lo
? calendarview.moc
? calprinter.lo
? calprinter.moc
? datenavigator.lo
? datenavigator.moc
? docprefs.lo
? exportwebdialog.lo
? exportwebdialog.moc
? filteredit_base.lo
? filteredit_base.moc
? filtereditdialog.lo
? filtereditdialog.moc
? htmlexport.lo
? incidenceconflictdialog.lo
? incidenceconflictdialog.moc.cpp
? incidenceconflictdialog.moc.lo
? incomingdialog.lo
? incomingdialog.moc
? incomingdialog_base.lo
? incomingdialog_base.moc
? journalentry.lo
? journalentry.moc
? kdatenavigator.lo
? kdatenavigator.moc
? koagenda.lo
? koagenda.moc
? koagendaitem.lo
? koagendaitem.moc
? koagendaview.lo
? koagendaview.moc
? koapp.lo
? koapp.moc
? kocore.lo
? kocounterdialog.lo
? kocounterdialog.moc
? kodaymatrix.lo
? kodaymatrix.moc
? kodialogmanager.lo
? kodialogmanager.moc
? koeditordetails.lo
? koeditordetails.moc
? koeditorgeneral.lo
? koeditorgeneral.moc
? koeditorgeneralevent.lo
? koeditorgeneralevent.moc
? koeditorgeneraltodo.lo
? koeditorgeneraltodo.moc
? koeditorrecurrence.lo
? koeditorrecurrence.moc
? koeventeditor.lo
? koeventeditor.moc
? koeventpopupmenu.lo
? koeventpopupmenu.moc
? koeventtimewidget.lo
? koeventtimewidget.moc.cpp
? koeventtimewidget.moc.lo
? koeventview.lo
? koeventview.moc
? koeventviewer.lo
? koeventviewer.moc
? koeventviewerdialog.lo
? koeventviewerdialog.moc
? kofilterview.lo
? kofilterview.moc
? kofilterview_base.lo
? kofilterview_base.moc
? koglobals.lo
? kogroupware.lo
? kogroupware.moc.cpp
? kogroupware.moc.lo
? kogroupwareincomingdialog.lo
? kogroupwareincomingdialog.moc
? kogroupwareincomingdialogimpl.lo
? kogroupwareincomingdialogimpl.moc.cpp
? kogroupwareincomingdialogimpl.moc.lo
? kogroupwareprefspage.lo
? kogroupwareprefspage.moc
? koincidenceeditor.lo
? koincidenceeditor.moc
? kojournalview.lo
? kojournalview.moc
? kolineedit.lo
? kolineedit.moc.cpp
? kolineedit.moc.lo
? kolistview.lo
? kolistview.moc
? komailclient.lo
? komonthview.lo
? komonthview.moc
? konewstuff.lo
? koprefs.lo
? koprefsdialog.lo
? koprefsdialog.moc
? korganizer.lo
? korganizer.moc
? korganizer_part.lo
? korganizer_part.moc
? korganizeriface_skel.lo
? korganizersynciface_skel.lo
? kotimespanview.lo
? kotimespanview.moc
? kotodoeditor.lo
? kotodoeditor.moc
? kotodoeditordetails.lo
? kotodoeditordetails.moc.cpp
? kotodoeditordetails.moc.lo
? kotodoeditordetails_base.lo
? kotodoeditordetails_base.moc
? kotodoview.lo
? kotodoview.moc
? kotodoviewitem.lo
? koviewmanager.lo
? koviewmanager.moc
? kowhatsnextview.lo
? kowhatsnextview.moc
? kowindowlist.lo
? kowindowlist.moc
? ktimeedit.lo
? ktimeedit.moc
? libkorganizer.la
? lineview.lo
? lineview.moc
? mailscheduler.lo
? main.lo
? outgoingdialog.lo
? outgoingdialog.moc
? outgoingdialog_base.lo
? outgoingdialog_base.moc
? patch
? plugindialog.lo
? plugindialog.moc
? publishdialog.lo
? publishdialog.moc
? publishdialog_base.lo
? publishdialog_base.moc
? savetemplatedialog.lo
? savetemplatedialog.moc
? searchdialog.lo
? searchdialog.moc
? statusdialog.lo
? statusdialog.moc
? timeline.lo
? timeline.moc
? timespanview.lo
? timespanview.moc
? kdgantt/.deps
? kdgantt/.libs
? kdgantt/KDGanttView.lo
? kdgantt/KDGanttView.moc
? kdgantt/KDGanttViewEventItem.lo
? kdgantt/KDGanttViewItem.lo
? kdgantt/KDGanttViewSubwidgets.lo
? kdgantt/KDGanttViewSubwidgets.moc
? kdgantt/KDGanttViewSummaryItem.lo
? kdgantt/KDGanttViewTaskItem.lo
? kdgantt/KDGanttViewTaskLink.lo
? kdgantt/KDGanttViewTaskLinkGroup.lo
? kdgantt/KDMinimizeSplitter.lo
? kdgantt/KDMinimizeSplitter.moc
? kdgantt/KDSemiSizingControl.lo
? kdgantt/KDSemiSizingControl.moc
? kdgantt/KDSizingControl.lo
? kdgantt/KDSizingControl.moc
? kdgantt/KDXMLTools.lo
? kdgantt/itemAttributeDialog.lo
? kdgantt/itemAttributeDialog.moc
? kdgantt/libkdgantt.la
? knewstuff/.deps
? knewstuff/.libs
? knewstuff/downloaddialog.lo
? knewstuff/downloaddialog.moc
? knewstuff/engine.lo
? knewstuff/engine.moc
? knewstuff/entry.lo
? knewstuff/knewstuff.lo
? knewstuff/libknewstuff.la
? knewstuff/provider.lo
? knewstuff/provider.moc
? knewstuff/providerdialog.lo
? knewstuff/providerdialog.moc
? knewstuff/uploaddialog.lo
? knewstuff/uploaddialog.moc
? notes/.deps
? notes/.libs
? notes/knote.lo
? notes/knote.moc
? notes/knotebutton.moc
? notes/knoteedit.lo
? notes/knoteedit.moc
? notes/konotesview.lo
? notes/konotesview.moc
? notes/libkorg_notesview.la
? plugins/birthdays/.deps
? plugins/datenums/.deps
? plugins/holidays/.deps
? plugins/projectview/.deps
? plugins/webexport/.deps
Index: Makefile.am
===================================================================
RCS file: /home/taiebma/kde/cvsroot/kdepim/korganizer/Makefile.am,v
retrieving revision 1.195.2.22
diff -U0 -r1.195.2.22 Makefile.am
--- Makefile.am	23 May 2003 20:09:36 -0000	1.195.2.22
+++ Makefile.am	28 Jul 2003 15:14:11 -0000
@@ -8,0 +9 @@
+CPPFLAGS = -g
@@ -10 +11,2 @@
-korganizer_LDADD   = libkorganizer.la
+korganizer_LDADD   = libkorganizer.la \
+			$(top_builddir)/libkpimexchange/libkpimexchange.la 
@@ -20,0 +23 @@
+korgplugins_CXXFLAGS = $(CXXFLAGS) -g
@@ -24,0 +28 @@
+timezone_CXXFLAGS = $(CXXFLAGS) -g
@@ -30,7 +34,7 @@
-                           -lkdeprint -lkabc \
-                           $(top_builddir)/calendarsystem/libkcalsystem.la \
-                           $(top_builddir)/libkcal/libkcal.la \
-                           $(top_builddir)/libkdepim/libkdepim.la \
-                           $(top_builddir)/kalarmd/libkalarmd.la \
-                           $(top_builddir)/korganizer/knewstuff/libknewstuff.la \
-			   $(top_builddir)/korganizer/kdgantt/libkdgantt.la notes/libkorg_notesview.la
+			-lkdeprint -lkabc -lkcalsystem \
+			$(top_builddir)/libkpimexchange/libkpimexchange.la \
+			$(top_builddir)/libkcal/libkcal.la \
+			$(top_builddir)/libkdepim/libkdepim.la \
+			$(top_builddir)/kalarmd/libkalarmd.la \
+			$(top_builddir)/korganizer/knewstuff/libknewstuff.la \
+			$(top_builddir)/korganizer/kdgantt/libkdgantt.la notes/libkorg_notesview.la
Index: datenavigator.cpp
===================================================================
RCS file: /home/taiebma/kde/cvsroot/kdepim/korganizer/datenavigator.cpp,v
retrieving revision 1.1.2.2
diff -U0 -r1.1.2.2 datenavigator.cpp
--- datenavigator.cpp	8 Jan 2003 11:42:02 -0000	1.1.2.2
+++ datenavigator.cpp	28 Jul 2003 15:14:11 -0000
@@ -26 +26 @@
-#include <calendarsystem/kcalendarsystem.h>
+#include <kcalendarsystem.h>
@@ -106 +106 @@
-  int dayOfWeek = KOCore::self()->calendarSystem()->dayOfTheWeek( d );
+  int dayOfWeek = d.dayOfWeek();
@@ -132 +132 @@
-  int dayOfWeek = KOCore::self()->calendarSystem()->dayOfTheWeek( d );
+  int dayOfWeek = d.dayOfWeek();
@@ -160 +160,2 @@
-    KOCore::self()->calendarSystem()->previousYearDate( *it );
+    //KOCore::self()->calendarSystem()->previousYearDate( *it );
+    (*it).addYears(-1);
@@ -170 +171,2 @@
-    KOCore::self()->calendarSystem()->previousMonthDate( *it );
+    //KOCore::self()->calendarSystem()->previousMonthDate( *it );
+    ( *it ).addMonths(-1);
@@ -180 +182,2 @@
-    KOCore::self()->calendarSystem()->nextMonthDate( *it );
+    //KOCore::self()->calendarSystem()->nextMonthDate( *it );
+    ( *it ).addMonths(1);
@@ -190 +193,2 @@
-    KOCore::self()->calendarSystem()->nextYearDate( *it );
+    //KOCore::self()->calendarSystem()->nextYearDate( *it );
+    ( *it ).addYears(1);
Index: kdatenavigator.cpp
===================================================================
RCS file: /home/taiebma/kde/cvsroot/kdepim/korganizer/kdatenavigator.cpp,v
retrieving revision 1.7.2.3
diff -U0 -r1.7.2.3 kdatenavigator.cpp
--- kdatenavigator.cpp	8 Jan 2003 11:42:02 -0000	1.7.2.3
+++ kdatenavigator.cpp	28 Jul 2003 15:14:11 -0000
@@ -41 +41 @@
-#include <calendarsystem/kcalendarsystem.h>
+#include <kcalendarsystem.h>
@@ -109 +109,2 @@
-    int width = fm.width( KOCore::self()->calendarSystem()->monthName(i) + " 2000" \
); +    kdDebug(5850) << "Month Name : " << \
KOCore::self()->calendarSystem()->monthName(i,0, false) << endl; +    int width = \
fm.width( KOCore::self()->calendarSystem()->monthName(i,0,false) + QString(" 2000") \
); @@ -258 +259,2 @@
-  int m_fstDayOfWkCalsys = KOCore::self()->calendarSystem()->dayOfTheWeek( dayone );
+  //int m_fstDayOfWkCalsys = KOCore::self()->calendarSystem()->dayOfTheWeek( dayone \
); +  int m_fstDayOfWkCalsys = dayone.dayOfWeek( );
@@ -304 +306,4 @@
-    int dayOfYear = \
KOCore::self()->calendarSystem()->numberOfDayInYear((daymatrix->getDate((i+1)*7-4))); \
+    //int dayOfYear = \
KOCore::self()->calendarSystem()->numberOfDayInYear((daymatrix->getDate((i+1)*7-4))); \
+    QDate  firstDayOfYear(m_MthYr.year(), 1, 1); +    QDate  \
lastDayOfYear(m_MthYr.year(), 12, 31); +    int dayOfYear = firstDayOfYear.daysTo( \
                lastDayOfYear);
Index: koagendaview.cpp
===================================================================
RCS file: /home/taiebma/kde/cvsroot/kdepim/korganizer/koagendaview.cpp,v
retrieving revision 1.83.2.11
diff -U0 -r1.83.2.11 koagendaview.cpp
--- koagendaview.cpp	13 Feb 2003 11:15:40 -0000	1.83.2.11
+++ koagendaview.cpp	28 Jul 2003 15:14:11 -0000
@@ -445 +445,2 @@
-    int dW = KOCore::self()->calendarSystem()->dayOfTheWeek(date);
+    //int dW = KOCore::self()->calendarSystem()->dayOfTheWeek(date);
+    int dW = date.dayOfWeek();
Index: kocore.cpp
===================================================================
RCS file: /home/taiebma/kde/cvsroot/kdepim/korganizer/kocore.cpp,v
retrieving revision 1.11.2.2
diff -U0 -r1.11.2.2 kocore.cpp
--- kocore.cpp	8 Jan 2003 11:42:02 -0000	1.11.2.2
+++ kocore.cpp	28 Jul 2003 15:14:11 -0000
@@ -31,0 +32 @@
+#include <kcalendarsystemfactory.h>
Index: kocore.h
===================================================================
RCS file: /home/taiebma/kde/cvsroot/kdepim/korganizer/kocore.h,v
retrieving revision 1.10.2.1
diff -U0 -r1.10.2.1 kocore.h
--- kocore.h	20 Oct 2002 16:05:36 -0000	1.10.2.1
+++ kocore.h	28 Jul 2003 15:14:11 -0000
@@ -31 +31 @@
-#include <calendarsystem/kcalendarsystem.h>
+#include <kcalendarsystem.h>
Index: kodaymatrix.cpp
===================================================================
RCS file: /home/taiebma/kde/cvsroot/kdepim/korganizer/kodaymatrix.cpp,v
retrieving revision 1.19.2.3
diff -U0 -r1.19.2.3 kodaymatrix.cpp
--- kodaymatrix.cpp	8 Jan 2003 11:42:02 -0000	1.19.2.3
+++ kodaymatrix.cpp	28 Jul 2003 15:14:11 -0000
@@ -259 +259 @@
-   if ( (KOCore::self()->calendarSystem()->dayOfTheWeek(days[i]) == \
KOCore::self()->calendarSystem()->weekDayOfPray()) || +   if ( (days[i].dayOfWeek() \
                == KOCore::self()->calendarSystem()->weekDayOfPray()) ||
Index: koeditordetails.cpp
===================================================================
RCS file: /home/taiebma/kde/cvsroot/kdepim/korganizer/koeditordetails.cpp,v
retrieving revision 1.35.2.57
diff -U0 -r1.35.2.57 koeditordetails.cpp
--- koeditordetails.cpp	18 Jun 2003 06:10:28 -0000	1.35.2.57
+++ koeditordetails.cpp	28 Jul 2003 15:14:11 -0000
@@ -133,0 +134,2 @@
+    kdDebug(5850) << "AttendeeListItem::setFreeBusyPeriods : maj busyPeriods" \
<<endl; +    
@@ -137,0 +140 @@
+      kdDebug(5850) << "AttendeeListItem::setFreeBusyPeriods : period start " << \
(*it).start().toString() << " end " << (*it).end().toString() <<endl; @@ -148,0 +152 \
@@ +    kdDebug(5850) << "AttendeeListItem::setFreeBusyPeriods : no busyPeriods" \
<<endl; @@ -577,0 +582,10 @@
+  // Check if smart email address
+  QString email = mEmailEdit->text();
+  int possmartstart = email.find('<');
+  int possmartend = email.find('>');
+  if (possmartstart >= 0 && possmartend >= 0) {
+	  mNameEdit->setText(email.left(possmartstart));
+  	a->setEmail( email.mid(possmartstart +1, possmartend - possmartstart - 1) );
+  }
+  else
+  	a->setEmail( mEmailEdit->text() );
@@ -580 +593,0 @@
-  a->setEmail( mEmailEdit->text() );
@@ -615,0 +629 @@
+  kdDebug(5850) << "KOEditorDetails::slotInsertFreeBusy " << endl;
Index: koeditordetails.h
===================================================================
RCS file: /home/taiebma/kde/cvsroot/kdepim/korganizer/koeditordetails.h,v
retrieving revision 1.23.2.17
diff -U0 -r1.23.2.17 koeditordetails.h
--- koeditordetails.h	4 Feb 2003 09:33:02 -0000	1.23.2.17
+++ koeditordetails.h	28 Jul 2003 15:14:11 -0000
@@ -33,0 +34 @@
+#include <kabc/addresslineedit.h>
@@ -128 +129,2 @@
-class KOFocusOutLineEdit : public QLineEdit
+//class KOFocusOutLineEdit : public QLineEdit
+class KOFocusOutLineEdit : public KABC::AddressLineEdit
@@ -134 +136,2 @@
-        QLineEdit( parent, name ) {}
+//        QLineEdit( parent, name ) {}
+        KABC::AddressLineEdit( parent, true, name ) {}
Index: kogroupware.cpp
===================================================================
RCS file: /home/taiebma/kde/cvsroot/kdepim/korganizer/kogroupware.cpp,v
retrieving revision 1.1.2.29
diff -U0 -r1.1.2.29 kogroupware.cpp
--- kogroupware.cpp	7 Jul 2003 09:34:38 -0000	1.1.2.29
+++ kogroupware.cpp	28 Jul 2003 15:14:11 -0000
@@ -37,0 +38 @@
+#include <libkcal/calendarlocal.h>
@@ -755,0 +757,25 @@
+FBDownloadJob::FBDownloadJob( const QString& email, const QString &server, QDate \
&start, QDate &end, KCal::Calendar *calendar,KOGroupware* kogroupware, const char* \
name ) +  : QObject( kogroupware, name ), mEmail( email ), mStart( start ), mEnd( end \
), mCalendar(calendar) +{
+
+  QString  path;
+
+  int emailpos = email.find( '@' );
+  if( emailpos == -1 ) {
+    FreeBusy  *fb = new FreeBusy();
+    emit fbDownloaded( mEmail, fb );	
+    return ;
+  }
+
+  // Cut off everything left of the @ sign to get the user name.
+  QString emailName = email.left( emailpos );
+
+  path = QString("webdav://") + server + QString("/exchange/") + emailName ;
+  // we use something else
+  mAccount = new KPIM::ExchangeAccount( server, emailName, path, QString(""));
+  mExch = new KPIM::ExchangeClient(mAccount, false);
+
+  mExch->download(mCalendar, mStart, mEnd, false);
+  connect(mExch, SIGNAL(downloadFinished( int , const QString &  )), this, \
SLOT(soltResultExchange(int, const QString &))); +}
+
@@ -781,0 +808,15 @@
+void FBDownloadJob::soltResultExchange(int result, const QString &moreInfo)
+{
+  if( result ) {
+    kdDebug(5850) << "KOGroupware::soltResultExchange() job error :-( : " << \
moreInfo << endl; +  }
+
+  FreeBusy *fb = new FreeBusy( mCalendar, mStart, mEnd );
+
+  emit fbDownloaded( mEmail, fb );	
+  delete mCalendar;
+  delete mExch;
+  delete mAccount;
+  delete this;
+}
+
@@ -801 +841,0 @@
-    // we use Kolab
@@ -804,2 +844,2 @@
-	KOPrefs::instance()->mRetrieveKolabServer.isEmpty() )
-      server = emailHost;
+      	KOPrefs::instance()->mRetrieveKolabServer.isEmpty() )
+           server = emailHost;
@@ -807 +847,16 @@
-      server = KOPrefs::instance()->mRetrieveKolabServer;
+           server = KOPrefs::instance()->mRetrieveKolabServer;
+
+    if (KOPrefs::instance()->mRetrieveExchangeServer) {
+          QString anyurl = KOPrefs::instance()->mRetrieveAnyURL;
+          QDate start = QDate::currentDate().addMonths(-1);
+          QDate end = QDate::currentDate().addMonths(2);
+	  Calendar *attendeeCalendar = new \
KCal::CalendarLocal(KOPrefs::instance()->mTimeZoneId); +
+	  kdDebug() << "Date initiale " << start.toString() << " end " << end.toString() << \
endl; +          FBDownloadJob* job = new FBDownloadJob( email, server, start, end, \
attendeeCalendar, this, "fb_download_job" ); +	  connect( job, SIGNAL( fbDownloaded( \
const QString&, FreeBusy*) ), +			 receiver, member );
+	  return true;
+    }
+    else {
+         // we use Kolab
@@ -809,6 +864,7 @@
-    sourceURL.setProtocol( "webdavs" );
-    sourceURL.setHost( server );
-    sourceURL.setPass( KOPrefs::instance()->mRetrievePassword );
-    sourceURL.setUser( KOPrefs::instance()->mRetrieveUserName );
-    sourceURL.setPath( QString::fromLatin1( "/freebusy/" ) + emailName +
-		       QString::fromLatin1( ".vfb" ) );
+         sourceURL.setProtocol( "webdavs" );
+         sourceURL.setHost( server );
+         sourceURL.setPass( KOPrefs::instance()->mRetrievePassword );
+         sourceURL.setUser( KOPrefs::instance()->mRetrieveUserName );
+         sourceURL.setPath( QString::fromLatin1( "/freebusy/" ) + emailName +
+     		       QString::fromLatin1( ".vfb" ) );
+    } 
@@ -819 +875 @@
-      anyurl.replace( "%SERVER%", emailHost );
+    	anyurl.replace( "%SERVER%", emailHost );
Index: kogroupware.h
===================================================================
RCS file: /home/taiebma/kde/cvsroot/kdepim/korganizer/kogroupware.h,v
retrieving revision 1.1.2.15
diff -U0 -r1.1.2.15 kogroupware.h
--- kogroupware.h	18 Jun 2003 07:17:52 -0000	1.1.2.15
+++ kogroupware.h	28 Jul 2003 15:14:11 -0000
@@ -34,0 +35,3 @@
+#include <kdepim/exchangeaccount.h>
+#include <kdepim/exchangeclient.h>
+
@@ -53,0 +57 @@
+  FBDownloadJob(const QString& email, const QString &server, QDate& start, QDate& \
end, KCal::Calendar *calendar, KOGroupware* kogroupware, const char* name =0); @@ \
-57,0 +62 @@ +  void soltResultExchange(int , const QString &);
@@ -66,0 +72,5 @@
+  KPIM::ExchangeAccount *mAccount;
+  KPIM::ExchangeClient *mExch;
+  QDate mStart;
+  QDate mEnd;
+  KCal::Calendar *mCalendar;
Index: kogroupwareprefspage.ui
===================================================================
RCS file: /home/taiebma/kde/cvsroot/kdepim/korganizer/Attic/kogroupwareprefspage.ui,v
retrieving revision 1.1.2.9
diff -U0 -r1.1.2.9 kogroupwareprefspage.ui
--- kogroupwareprefspage.ui	17 Jun 2003 10:48:23 -0000	1.1.2.9
+++ kogroupwareprefspage.ui	28 Jul 2003 15:14:11 -0000
@@ -366,27 +366,50 @@
-                                <hbox>
-                                    <property name="name">
-                                        <cstring>unnamed</cstring>
-                                    </property>
-                                    <widget class="QLabel">
-                                        <property name="name">
-                                            <cstring>TextLabel5_2</cstring>
-                                        </property>
-                                        <property name="text">
-                                            <string>&amp;Server name:</string>
-                                        </property>
-                                        <property name="buddy" stdset="0">
-                                            <cstring>kolabServerNameED</cstring>
-                                        </property>
-                                    </widget>
-                                    <widget class="QLineEdit">
-                                        <property name="name">
-                                            \
                <cstring>retrieveKolabServerNameED</cstring>
-                                        </property>
-                                        <property name="minimumSize">
-                                            <size>
-                                                <width>80</width>
-                                                <height>0</height>
-                                            </size>
-                                        </property>
-                                    </widget>
-                                </hbox>
+				<vbox>
+	                                <hbox>
+        	                            <property name="name">
+                	                        <cstring>unnamed</cstring>
+                        	            </property>
+                                	    <widget class="QLabel">
+	                                        <property name="name">
+        	                                    <cstring>TextLabel5_2</cstring>
+                	                        </property>
+                        	                <property name="text">
+	                                            <string>&amp;Server name:</string>
+        	                                </property>
+                	                        <property name="buddy" stdset="0">
+                        	                    <cstring>kolabServerNameED</cstring>
+                                	        </property>
+	                                    </widget>
+        	                            <widget class="QLineEdit">
+                 	                       <property name="name">
+                        	                    \
<cstring>retrieveKolabServerNameED</cstring> +                                	       \
</property> +                                        	<property name="minimumSize">
+	                                            <size>
+        	                                        <width>80</width>
+                	                                <height>0</height>
+                        	                    </size>
+                                	        </property>
+	                                    </widget>
+        	                        </hbox>
+					<hbox>
+        	                            <property name="name">
+                	                        <cstring>unnamed2</cstring>
+                        	            </property>
+                                	    <widget class="QLabel">
+	                                        <property name="name">
+        	                                    <cstring>TextLabel8_2</cstring>
+                	                        </property>
+                        	                <property name="text">
+                                	            <string>Exchange 2000 Server ?</string>
+                                        	</property>
+	                                    </widget>
+        	                            <widget class="QCheckBox">
+                	                        <property name="name">
+                        	                    \
<cstring>retrieveExchangeServer</cstring> +                                	        \
</property> +	                                        <property name="enabled">
+        	                                    <bool>true</bool>
+                	                        </property>
+                        	            </widget>
+	                                </hbox>
+				</vbox>
@@ -405,0 +429,3 @@
+                                <property name="enabled">
+                                    <bool>false</bool>
+                                </property>
@@ -407,14 +433,14 @@
-                                    <property name="name">
-                                        <cstring>unnamed</cstring>
-                                    </property>
-                                    <widget class="QLabel">
-                                        <property name="name">
-                                            <cstring>TextLabel7_2</cstring>
-                                        </property>
-                                        <property name="text">
-                                            <string>Server UR&amp;L:</string>
-                                        </property>
-                                        <property name="buddy" stdset="0">
-                                            <cstring>anyServerURLED</cstring>
-                                        </property>
-                                    </widget>
+       	                            <property name="name">
+               	                        <cstring>unnamed</cstring>
+                       	            </property>
+                               	    <widget class="QLabel">
+                                        <property name="name">
+       	                                    <cstring>TextLabel7_2</cstring>
+               	                        </property>
+                       	                <property name="text">
+                               	            <string>Server UR&amp;L:</string>
+                                        </property>
+       	                                <property name="buddy" stdset="0">
+               	                            <cstring>anyServerURLED</cstring>
+                       	                </property>
+                               	    </widget>
@@ -422,5 +448,5 @@
-                                        <property name="name">
-                                            \
                <cstring>retrieveAnyServerURLED</cstring>
-                                        </property>
-                                        <property name="enabled">
-                                            <bool>false</bool>
+       	                                <property name="name">
+               	                            \
<cstring>retrieveAnyServerURLED</cstring> +                       	                \
</property> +                               	        <property name="enabled">
+                                       	    <bool>true</bool>
@@ -428,2 +454,2 @@
-                                    </widget>
-                                </hbox>
+       	                            </widget>
+				</hbox>
@@ -538,0 +565 @@
+        <receiver>retrieveExchangeServer</receiver>
Index: komonthview.cpp
===================================================================
RCS file: /home/taiebma/kde/cvsroot/kdepim/korganizer/komonthview.cpp,v
retrieving revision 1.61.2.3
diff -U0 -r1.61.2.3 komonthview.cpp
--- komonthview.cpp	8 Jan 2003 11:42:02 -0000	1.61.2.3
+++ komonthview.cpp	28 Jul 2003 15:14:11 -0000
@@ -595 +595 @@
-   while( KOCore::self()->calendarSystem()->dayOfTheWeek(mStartDate) != startWeekDay \
) { +   while( mStartDate.dayOfWeek() != startWeekDay ) {
@@ -608 +608 @@
-    if ( KOCore::self()->calendarSystem()->dayOfTheWeek(date) == \
KOCore::self()->calendarSystem()->weekDayOfPray() ) { +    if ( date.dayOfWeek() == \
                KOCore::self()->calendarSystem()->weekDayOfPray() ) {
Index: koprefs.cpp
===================================================================
RCS file: /home/taiebma/kde/cvsroot/kdepim/korganizer/koprefs.cpp,v
retrieving revision 1.58.2.9
diff -U0 -r1.58.2.9 koprefs.cpp
--- koprefs.cpp	19 May 2003 12:51:35 -0000	1.58.2.9
+++ koprefs.cpp	28 Jul 2003 15:14:11 -0000
@@ -64,7 +64,7 @@
-  addItemBool("Enable Group Scheduling",&mEnableGroupScheduling,false);
-  addItemBool("Enable Project View",&mEnableProjectView,false);
-  addItemBool("Auto Save",&mAutoSave,false);
-  addItemInt("Auto Save Interval",&mAutoSaveInterval,10);
-  addItemBool("Confirm Deletes",&mConfirm,true);
-  addItemString("Archive File",&mArchiveFile);
-  addItemString("Html Export File",&mHtmlExportFile,
+  addItemBool(QString("Enable Group Scheduling"),mEnableGroupScheduling,false);
+  addItemBool(QString("Enable Project View"),mEnableProjectView,false);
+  addItemBool(QString("Auto Save"),mAutoSave,false);
+  addItemInt(QString("Auto Save Interval"),mAutoSaveInterval,10);
+  addItemBool(QString("Confirm Deletes"),mConfirm,true);
+  addItemString(QString("Archive File"),mArchiveFile);
+  addItemString(QString("Html Export File"),mHtmlExportFile,
@@ -75,4 +75,4 @@
-  addItemInt("Mail Client",&mMailClient,MailClientKMail);
-  addItemBool("Use Groupware Communication", &mGroupwareCommunication, false );
-  addItemBool("Use Control Center Email",&mEmailControlCenter,false);
-  addItemBool("Bcc",&mBcc,false);
+  addItemInt(QString("Mail Client"),mMailClient,MailClientKMail);
+  addItemBool(QString("Use Groupware Communication"), mGroupwareCommunication, false \
); +  addItemBool(QString("Use Control Center Email"),mEmailControlCenter,false);
+  addItemBool(QString("Bcc"),mBcc,false);
@@ -82,6 +82,6 @@
-  addItemString("Time Zone",&mTimeZone,"+0000");
-  addItemString("TimeZoneId",&mTimeZoneId);
-  addItemInt("Default Start Time",&mStartTime,10);
-  addItemInt("Default Duration",&mDefaultDuration,2);
-  addItemInt("Default Alarm Time",&mAlarmTime,0);
-  addItemInt("Daylight Savings",&mDaylightSavings,0);
+  addItemString(QString("Time Zone"),mTimeZone,"+0000");
+  addItemString(QString("TimeZoneId"),mTimeZoneId);
+  addItemInt(QString("Default Start Time"),mStartTime,10);
+  addItemInt(QString("Default Duration"),mDefaultDuration,2);
+  addItemInt(QString("Default Alarm Time"),mAlarmTime,0);
+  addItemInt(QString("Daylight Savings"),mDaylightSavings,0);
@@ -91 +91 @@
-  addItemInt("Default Calendar Format",&mDefaultFormat,FormatICalendar);
+  addItemInt(QString("Default Calendar Format"),mDefaultFormat,FormatICalendar);
@@ -95,4 +95,4 @@
-  addItemFont("TimeBar Font",&mTimeBarFont);
-  addItemFont("MonthView Font",&mMonthViewFont);
-  addItemFont("AgendaView Font",&mAgendaViewFont);
-  addItemFont("MarcusBains Font",&mAgendaViewFont);
+  addItemFont(QString("TimeBar Font"),mTimeBarFont);
+  addItemFont(QString("MonthView Font"),mMonthViewFont);
+  addItemFont(QString("AgendaView Font"),mAgendaViewFont);
+  addItemFont(QString("MarcusBains Font"),mAgendaViewFont);
@@ -102,7 +102,7 @@
-  addItemColor("Holiday Color",&mHolidayColor,defaultHolidayColor);
-  addItemColor("Highlight Color",&mHighlightColor,defaultHighlightColor);
-  addItemColor("Event Color",&mEventColor,mDefaultCategoryColor);
-  addItemColor("Agenda Background Color",&mAgendaBgColor,defaultAgendaBgColor);
-  addItemColor("WorkingHours Color",&mWorkingHoursColor,defaultWorkingHoursColor);
-  addItemColor("Todo due today Color",&mTodoDueTodayColor,defaultTodoDueTodayColor);
-  addItemColor("Todo overdue Color",&mTodoOverdueColor,defaultTodoOverdueColor);
+  addItemColor(QString("Holiday Color"),mHolidayColor,defaultHolidayColor);
+  addItemColor(QString("Highlight Color"),mHighlightColor,defaultHighlightColor);
+  addItemColor(QString("Event Color"),mEventColor,mDefaultCategoryColor);
+  addItemColor(QString("Agenda Background \
Color"),mAgendaBgColor,defaultAgendaBgColor); +  addItemColor(QString("WorkingHours \
Color"),mWorkingHoursColor,defaultWorkingHoursColor); +  addItemColor(QString("Todo \
due today Color"),mTodoDueTodayColor,defaultTodoDueTodayColor); +  \
addItemColor(QString("Todo overdue \
Color"),mTodoOverdueColor,defaultTodoOverdueColor); @@ -112,13 +112,13 @@
-  addItemInt("Hour Size",&mHourSize,10);
-  addItemBool("Show Daily Recurrences",&mDailyRecur,true);
-  addItemBool("Show Weekly Recurrences",&mWeeklyRecur,true);
-  addItemBool("Enable ToolTips",&mEnableToolTips,false);
-  addItemBool("Enable MonthView ScrollBars",&mEnableMonthScroll,false);
-  addItemBool("Marcus Bains shows seconds",&mMarcusBainsShowSeconds,false);
-  addItemBool("Show Marcus Bains",&mMarcusBainsEnabled,true);
-
-  addItemInt("Day Begins",&mDayBegins,7);
-  addItemInt("Working Hours Start",&mWorkingHoursStart,8);
-  addItemInt("Working Hours End",&mWorkingHoursEnd,17);
-  addItemBool("Exclude Holidays",&mExcludeHolidays,true);
-  addItemBool("Exclude Saturdays",&mExcludeSaturdays,true);
+  addItemInt(QString("Hour Size"),mHourSize,10);
+  addItemBool(QString("Show Daily Recurrences"),mDailyRecur,true);
+  addItemBool(QString("Show Weekly Recurrences"),mWeeklyRecur,true);
+  addItemBool(QString("Enable ToolTips"),mEnableToolTips,false);
+  addItemBool(QString("Enable MonthView ScrollBars"),mEnableMonthScroll,false);
+  addItemBool(QString("Marcus Bains shows seconds"),mMarcusBainsShowSeconds,false);
+  addItemBool(QString("Show Marcus Bains"),mMarcusBainsEnabled,true);
+
+  addItemInt(QString("Day Begins"),mDayBegins,7);
+  addItemInt(QString("Working Hours Start"),mWorkingHoursStart,8);
+  addItemInt(QString("Working Hours End"),mWorkingHoursEnd,17);
+  addItemBool(QString("Exclude Holidays"),mExcludeHolidays,true);
+  addItemBool(QString("Exclude Saturdays"),mExcludeSaturdays,true);
@@ -126,2 +126,2 @@
-  addItemBool("Full View Month",&mFullViewMonth,false);
-  addItemBool("Full View Todo",&mFullViewTodo,true);
+  addItemBool(QString("Full View Month"),mFullViewMonth,false);
+  addItemBool(QString("Full View Todo"),mFullViewTodo,true);
@@ -129 +129 @@
-  addItemInt("Next X Days",&mNextXDays,3);
+  addItemInt(QString("Next X Days"),mNextXDays,3);
@@ -135,2 +135,2 @@
-  addItemBool("CompactDialogs",&mCompactDialogs,false);
-  addItemBool("VerticalScreen",&mVerticalScreen,false);
+  addItemBool(QString("CompactDialogs"),mCompactDialogs,false);
+  addItemBool(QString("VerticalScreen"),mVerticalScreen,false);
@@ -140 +140 @@
-  addItemStringList("SelectedPlugins",&mSelectedPlugins,"holidays");
+  addItemStringList(QString("SelectedPlugins"),mSelectedPlugins,"holidays");
@@ -144,8 +144,8 @@
-  addItemInt("IMIPScheduler",&mIMIPScheduler,IMIPKMail);
-  addItemInt("IMIPSend",&mIMIPSend,IMIPdirectsend);
-  addItemStringList("AdditionalMails",&mAdditionalMails,"");
-  addItemInt("IMIP auto refresh",&mIMIPAutoRefresh,neverAuto);
-  addItemInt("IMIP auto insert request",&mIMIPAutoInsertRequest,neverAuto);
-  addItemInt("IMIP auto insert reply",&mIMIPAutoInsertReply,neverAuto);
-  addItemInt("IMIP auto FreeBusy",&mIMIPAutoFreeBusy,neverAuto);
-  addItemInt("IMIP auto save FreeBusy",&mIMIPAutoFreeBusyReply,neverAuto);
+  addItemInt(QString("IMIPScheduler"),mIMIPScheduler,IMIPKMail);
+  addItemInt(QString("IMIPSend"),mIMIPSend,IMIPdirectsend);
+  addItemStringList(QString("AdditionalMails"),mAdditionalMails,"");
+  addItemInt(QString("IMIP auto refresh"),mIMIPAutoRefresh,neverAuto);
+  addItemInt(QString("IMIP auto insert request"),mIMIPAutoInsertRequest,neverAuto);
+  addItemInt(QString("IMIP auto insert reply"),mIMIPAutoInsertReply,neverAuto);
+  addItemInt(QString("IMIP auto FreeBusy"),mIMIPAutoFreeBusy,neverAuto);
+  addItemInt(QString("IMIP auto save FreeBusy"),mIMIPAutoFreeBusyReply,neverAuto);
@@ -155,2 +155,2 @@
-  addItemStringList( "EventTemplates", &mEventTemplates );
-  addItemStringList( "TodoTemplates", &mTodoTemplates );
+  addItemStringList( QString("EventTemplates"), mEventTemplates );
+  addItemStringList( QString("TodoTemplates"), mTodoTemplates );
@@ -160,14 +160,15 @@
-  addItemBool( "Automatic FreeBusy lists publishing", &mAutoPublish, true );
-  addItemInt( "Auto publish delay", &mPublishDelay, 5 );
-  addItemInt( "Publish FreeBusy days", &mPublishFreeBusyDays, 60 );
-  addItemBool( "Publish to Kolab server", &mPublishKolab, true );
-  addItemString( "Publish to Kolab server name", &mPublishKolabServer, "" );
-  addItemString( "Publish user name", &mPublishUserName, "" );
-  addItemString( "Publish to any server URL", &mPublishAnyURL, "" );
-  addItemBool( "Remember publish password", &mRememberPublishPw, false );
-  addItemBool( "Retrieve FreeBusy lists", &mRetrieveFreeBusy, true );
-  addItemBool( "Retrieve from Kolab server", &mRetrieveKolab, true );
-  addItemString( "Retrieve from Kolab server name", &mRetrieveKolabServer, "" );
-  addItemString( "Retrieve from any server URL", &mRetrieveAnyURL, "" );
-  addItemString( "Retrieve user name", &mRetrieveUserName, "" );
-  addItemBool( "Remember retrieve password", &mRememberRetrievePw, false );
+  addItemBool(QString("Automatic FreeBusy lists publishing"), mAutoPublish, true );
+  addItemInt(QString("Auto publish delay"),mPublishDelay, 5 );
+  addItemInt(QString("Publish FreeBusy days"), mPublishFreeBusyDays, 60 );
+  addItemBool(QString("Publish to Kolab server"), mPublishKolab, true );
+  addItemString(QString("Publish to Kolab server name"), mPublishKolabServer, "" );
+  addItemString(QString("Publish user name"), mPublishUserName, "" );
+  addItemString(QString("Publish to any server URL"), mPublishAnyURL, "" );
+  addItemBool(QString("Remember publish password"), mRememberPublishPw, false );
+  addItemBool(QString("Retrieve FreeBusy lists"), mRetrieveFreeBusy, true );
+  addItemBool(QString("Retrieve from Kolab server"), mRetrieveKolab, true );
+  addItemString(QString("Retrieve from Kolab server name"), mRetrieveKolabServer, "" \
); +  addItemBool(QString("Retrieve If this is an Exchange server"), \
mRetrieveExchangeServer, false ); +  addItemString(QString("Retrieve from any server \
URL"), mRetrieveAnyURL, "" ); +  addItemString(QString("Retrieve user name"), \
mRetrieveUserName, "" ); +  addItemBool(QString("Remember retrieve password"), \
                mRememberRetrievePw, false );
Index: koprefs.h
===================================================================
RCS file: /home/taiebma/kde/cvsroot/kdepim/korganizer/koprefs.h,v
retrieving revision 1.45.2.7
diff -U0 -r1.45.2.7 koprefs.h
--- koprefs.h	19 May 2003 12:51:35 -0000	1.45.2.7
+++ koprefs.h	28 Jul 2003 15:14:11 -0000
@@ -171,0 +172 @@
+    bool mRetrieveExchangeServer;
Index: koprefsdialog.cpp
===================================================================
RCS file: /home/taiebma/kde/cvsroot/kdepim/korganizer/koprefsdialog.cpp,v
retrieving revision 1.60.2.12
diff -U0 -r1.60.2.12 koprefsdialog.cpp
--- koprefsdialog.cpp	19 May 2003 12:51:35 -0000	1.60.2.12
+++ koprefsdialog.cpp	28 Jul 2003 15:14:11 -0000
@@ -103 +103 @@
-                  &(KOPrefs::instance()->mGroupwareCommunication), topFrame );
+                  (KOPrefs::instance()->mGroupwareCommunication), topFrame );
@@ -111 +111 @@
-                 &(KOPrefs::instance()->mEmailControlCenter),topFrame);
+                 (KOPrefs::instance()->mEmailControlCenter),topFrame);
@@ -128 +128 @@
-                 &(KOPrefs::instance()->mBcc),topFrame);
+                 (KOPrefs::instance()->mBcc),topFrame);
@@ -137 +137 @@
-             &(KOPrefs::instance()->mAutoSave),autoSaveGroup);
+             (KOPrefs::instance()->mAutoSave),autoSaveGroup);
@@ -147 +147 @@
-      addWidBool(i18n("Confirm &deletes"),&(KOPrefs::instance()->mConfirm),
+      addWidBool(i18n("Confirm &deletes"),(KOPrefs::instance()->mConfirm),
@@ -154 +154 @@
-                 &(KOPrefs::instance()->mEnableGroupScheduling),topFrame);
+                 (KOPrefs::instance()->mEnableGroupScheduling),topFrame);
@@ -161 +161 @@
-                 &(KOPrefs::instance()->mEnableProjectView),topFrame);
+                 (KOPrefs::instance()->mEnableProjectView),topFrame);
@@ -174 +174 @@
-                   &(KOPrefs::instance()->mDefaultFormat),topFrame);
+                   (KOPrefs::instance()->mDefaultFormat),topFrame);
@@ -184 +184 @@
-      addWidRadios(i18n("Mail Client"),&(KOPrefs::instance()->mMailClient),
+      addWidRadios(i18n("Mail Client"),(KOPrefs::instance()->mMailClient),
@@ -267 +267 @@
-             &(KOPrefs::instance()->mWorkingHoursStart),workStartBox);
+             (KOPrefs::instance()->mWorkingHoursStart),workStartBox);
@@ -272 +272 @@
-             &(KOPrefs::instance()->mWorkingHoursEnd),workEndBox);
+             (KOPrefs::instance()->mWorkingHoursEnd),workEndBox);
@@ -275 +275 @@
-             &(KOPrefs::instance()->mExcludeHolidays),workingHoursGroup);
+             (KOPrefs::instance()->mExcludeHolidays),workingHoursGroup);
@@ -278 +278 @@
-             &(KOPrefs::instance()->mExcludeSaturdays),workingHoursGroup);
+             (KOPrefs::instance()->mExcludeSaturdays),workingHoursGroup);
@@ -281 +281 @@
-	     &(KOPrefs::instance()->mMarcusBainsShowSeconds),
+	     (KOPrefs::instance()->mMarcusBainsShowSeconds),
@@ -302 +302 @@
-    addWidTime(i18n("Day begins at:"),&(KOPrefs::instance()->mDayBegins),
+    addWidTime(i18n("Day begins at:"),(KOPrefs::instance()->mDayBegins),
@@ -323 +323 @@
-               &(KOPrefs::instance()->mDailyRecur),topFrame);
+               (KOPrefs::instance()->mDailyRecur),topFrame);
@@ -328 +328 @@
-               &(KOPrefs::instance()->mWeeklyRecur),topFrame);
+               (KOPrefs::instance()->mWeeklyRecur),topFrame);
@@ -333 +333 @@
-                 &(KOPrefs::instance()->mEnableToolTips),topFrame);
+                 (KOPrefs::instance()->mEnableToolTips),topFrame);
@@ -338 +338 @@
-                 &(KOPrefs::instance()->mEnableMonthScroll),topFrame);
+                 (KOPrefs::instance()->mEnableMonthScroll),topFrame);
@@ -343 +343 @@
-                 &(KOPrefs::instance()->mFullViewMonth),topFrame);
+                 (KOPrefs::instance()->mFullViewMonth),topFrame);
@@ -348 +348 @@
-                 &(KOPrefs::instance()->mFullViewTodo),topFrame);
+                 (KOPrefs::instance()->mFullViewTodo),topFrame);
@@ -353 +353 @@
-                 &(KOPrefs::instance()->mMarcusBainsEnabled),topFrame);
+                 (KOPrefs::instance()->mMarcusBainsEnabled),topFrame);
@@ -371 +371 @@
-                 &(KOPrefs::instance()->mTimeBarFont),topFrame);
+                 (KOPrefs::instance()->mTimeBarFont),topFrame);
@@ -378 +378 @@
-                 i18n("Month \
view:"),&(KOPrefs::instance()->mMonthViewFont),topFrame); +                 \
i18n("Month view:"),(KOPrefs::instance()->mMonthViewFont),topFrame); @@ -385 +385 @@
-                 &(KOPrefs::instance()->mAgendaViewFont),topFrame);
+                 (KOPrefs::instance()->mAgendaViewFont),topFrame);
@@ -392 +392 @@
-                 &(KOPrefs::instance()->mMarcusBainsFont),topFrame);
+                 (KOPrefs::instance()->mMarcusBainsFont),topFrame);
@@ -413 +413 @@
-                  &(KOPrefs::instance()->mHolidayColor),topFrame);
+                  (KOPrefs::instance()->mHolidayColor),topFrame);
@@ -420 +420 @@
-                  &(KOPrefs::instance()->mHighlightColor),topFrame);
+                  (KOPrefs::instance()->mHighlightColor),topFrame);
@@ -427 +427 @@
-                  &(KOPrefs::instance()->mEventColor),topFrame);
+                  (KOPrefs::instance()->mEventColor),topFrame);
@@ -434 +434 @@
-                  &(KOPrefs::instance()->mAgendaBgColor),topFrame);
+                  (KOPrefs::instance()->mAgendaBgColor),topFrame);
@@ -441 +441 @@
-                  &(KOPrefs::instance()->mWorkingHoursColor),topFrame);
+                  (KOPrefs::instance()->mWorkingHoursColor),topFrame);
@@ -448 +448 @@
-                  &(KOPrefs::instance()->mTodoDueTodayColor),topFrame);
+                  (KOPrefs::instance()->mTodoDueTodayColor),topFrame);
@@ -455 +455 @@
-                  &(KOPrefs::instance()->mTodoOverdueColor),topFrame);
+                  (KOPrefs::instance()->mTodoOverdueColor),topFrame);
@@ -524 +524 @@
-      addWidRadios(i18n("Scheduler Mails Should \
Be"),&(KOPrefs::instance()->mIMIPSend), +      addWidRadios(i18n("Scheduler Mails \
Should Be"),(KOPrefs::instance()->mIMIPSend), @@ -564 +564 @@
-                   &(KOPrefs::instance()->mIMIPAutoRefresh),topFrame);
+                   (KOPrefs::instance()->mIMIPAutoRefresh),topFrame);
@@ -572 +572 @@
-                   &(KOPrefs::instance()->mIMIPAutoInsertReply),topFrame);
+                   (KOPrefs::instance()->mIMIPAutoInsertReply),topFrame);
@@ -580 +580 @@
-                   &(KOPrefs::instance()->mIMIPAutoInsertRequest),topFrame);
+                   (KOPrefs::instance()->mIMIPAutoInsertRequest),topFrame);
@@ -588 +588 @@
-                   &(KOPrefs::instance()->mIMIPAutoFreeBusy),topFrame);
+                   (KOPrefs::instance()->mIMIPAutoFreeBusy),topFrame);
@@ -596 +596 @@
-                   &(KOPrefs::instance()->mIMIPAutoFreeBusyReply),topFrame);
+                   (KOPrefs::instance()->mIMIPAutoFreeBusyReply),topFrame);
@@ -684,0 +685 @@
+    mGroupwarePage->retrieveExchangeServer->setChecked( \
KOPrefs::instance()->mRetrieveExchangeServer ); @@ -749,0 +751 @@
+    KOPrefs::instance()->mRetrieveExchangeServer = \
mGroupwarePage->retrieveExchangeServer->isChecked();



_______________________________________________
Kroupware mailing list
Kroupware@mail.kde.org
http://mail.kde.org/mailman/listinfo/kroupware


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

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