--Boundary-00=_WMySCHTe+0GXd79 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit Content-Disposition: inline Hi guys, Would someone be able to apply this patch? I've been using it for a month or two and its working fine - it colours an email address the colour of a visited link if it's in the address book, which I find very useful and I'm sure others would too. Mark --Boundary-00=_WMySCHTe+0GXd79 Content-Type: text/x-diff; charset="us-ascii"; name="kmail_known_emails.patch" Content-Transfer-Encoding: 7bit Content-Disposition: attachment; filename="kmail_known_emails.patch" diff -urN kdepim_old/kmail/configuredialog.cpp kdepim/kmail/configuredialog.cpp --- kdepim_old/kmail/configuredialog.cpp 2005-01-06 12:25:57.000000000 +0000 +++ kdepim/kmail/configuredialog.cpp 2005-01-06 11:36:28.000000000 +0000 @@ -1651,6 +1651,8 @@ { "QuotedText1", I18N_NOOP("Quoted Text - First Level") }, { "QuotedText2", I18N_NOOP("Quoted Text - Second Level") }, { "QuotedText3", I18N_NOOP("Quoted Text - Third Level") }, + { "KnownEmailColor", I18N_NOOP("Known Email address") }, + { "UnknownEmailColor", I18N_NOOP("Unknown Email address") }, { "LinkColor", I18N_NOOP("Link") }, { "FollowedColor", I18N_NOOP("Followed Link") }, { "MisspelledColor", I18N_NOOP("Misspelled Words") }, @@ -1721,6 +1723,8 @@ QColor( 0x00, 0x80, 0x00 ), // quoted l1 QColor( 0x00, 0x70, 0x00 ), // quoted l2 QColor( 0x00, 0x60, 0x00 ), // quoted l3 + KGlobalSettings::visitedLinkColor(), // known email address + KGlobalSettings::linkColor(), // unkwnown email address KGlobalSettings::linkColor(), // link KGlobalSettings::visitedLinkColor(), // visited link Qt::red, // misspelled words diff -urN kdepim_old/kmail/csshelper.cpp kdepim/kmail/csshelper.cpp --- kdepim_old/kmail/csshelper.cpp 2005-01-06 12:25:57.000000000 +0000 +++ kdepim/kmail/csshelper.cpp 2005-01-06 11:42:26.000000000 +0000 @@ -87,7 +87,7 @@ bool mRecycleQuoteColors; bool mBackingPixmapOn; QString mBackingPixmapStr; - QColor c1, c2, c3, c4; + QColor c1, c2, c3, c4, c5, c6; // colors for PGP (Frame, Header, Body) QColor cPgpOk1F, cPgpOk1H, cPgpOk1B, cPgpOk0F, cPgpOk0H, cPgpOk0B, @@ -111,6 +111,7 @@ mBackingPixmapOn == other.mBackingPixmapOn && mBackingPixmapStr == other.mBackingPixmapStr && c1 == other.c1 && c2 == other.c2 && c3 == other.c3 && c4 == other.c4 && + c5 == other.c5 && c6 == other.c6 && cHtmlWarning == other.cHtmlWarning && cPgpOk1F == other.cPgpOk1F && cPgpOk1H == other.cPgpOk1H && cPgpOk1B == other.cPgpOk1B && cPgpOk0F == other.cPgpOk0F && cPgpOk0H == other.cPgpOk0H && cPgpOk0B == other.cPgpOk0B && @@ -157,6 +158,8 @@ c2 = KGlobalSettings::linkColor(); c3 = KGlobalSettings::visitedLinkColor(); c4 = QApplication::palette().active().base(); + c5 = KGlobalSettings::visitedLinkColor(); + c6 = KGlobalSettings::linkColor(); cHtmlWarning = QColor( 0xFF, 0x40, 0x40 ); // warning frame color: light red // The default colors are also defined in configuredialog.cpp @@ -175,6 +178,8 @@ c2 = reader.readColorEntry("LinkColor",&c2); c3 = reader.readColorEntry("FollowedColor",&c3); c4 = reader.readColorEntry("BackgroundColor",&c4); + c5 = reader.readColorEntry("KnownEmailColor",&c5); + c6 = reader.readColorEntry("UnknownEmailColor",&c6); cPgpEncrH = reader.readColorEntry( "PGPMessageEncr", &cPgpEncrH ); cPgpOk1H = reader.readColorEntry( "PGPMessageOkKeyOk", &cPgpOk1H ); cPgpOk0H = reader.readColorEntry( "PGPMessageOkKeyBad", &cPgpOk0H ); @@ -418,6 +423,8 @@ const QString fgColor = c1.name(); const QString bgColor = c4.name(); const QString linkColor = c2.name(); + const QString knownEmailColor = c5.name(); + const QString unknownEmailColor = c6.name(); const QString headerFont = QString(" font-family: \"%1\" ! important;\n" " font-size: %2px ! important;\n") .arg( mBodyFont.family() ) @@ -486,6 +493,15 @@ "}\n\n" ) .arg( linkColor, fgColor, bgColor, headerFont ) + + QString( "a.knownEmail {\n" + " color: %5 ! important;\n" + "}\n\n" + + "a.unknownEmail {\n" + " color: %6 ! important;\n" + "}\n\n" ) + .arg( knownEmailColor, unknownEmailColor ) + + QString( "table.encr {\n" " background-color: %1 ! important;\n" "}\n\n" diff -urN kdepim_old/kmail/kmmainwidget.cpp kdepim/kmail/kmmainwidget.cpp --- kdepim_old/kmail/kmmainwidget.cpp 2005-01-06 12:25:57.000000000 +0000 +++ kdepim/kmail/kmmainwidget.cpp 2005-01-06 12:06:33.000000000 +0000 @@ -2052,6 +2052,10 @@ mMsgView->mailToForwardAction()->plug( menu ); menu->insertSeparator(); mMsgView->addAddrBookAction()->plug( menu ); + if( KAddrBookExternal::isInAddressBook(aUrl.path()) ) + mMsgView->addAddrBookAction()->setEnabled( false ); + else + mMsgView->addAddrBookAction()->setEnabled( true ); mMsgView->openAddrBookAction()->plug( menu ); mMsgView->copyURLAction()->plug( menu ); mMsgView->startImChatAction()->plug( menu ); diff -urN kdepim_old/kmail/kmmessage.cpp kdepim/kmail/kmmessage.cpp --- kdepim_old/kmail/kmmessage.cpp 2005-01-06 12:25:58.000000000 +0000 +++ kdepim/kmail/kmmessage.cpp 2005-01-06 11:38:24.000000000 +0000 @@ -3893,12 +3893,19 @@ QString result; + // Make sure we've got the latest address book loaded + KAddrBookExternal::reloadAddressBook(); + for( QStringList::ConstIterator it = addressList.begin(); ( it != addressList.end() ); ++it ) { if( !(*it).isEmpty() ) { QString address = *it; - result += ""; if( stripped ) diff -urN kdepim_old/libkdepim/kaddrbook.cpp kdepim/libkdepim/kaddrbook.cpp --- kdepim_old/libkdepim/kaddrbook.cpp 2005-01-06 12:26:01.000000000 +0000 +++ kdepim/libkdepim/kaddrbook.cpp 2005-01-06 11:03:27.000000000 +0000 @@ -81,6 +81,23 @@ } } +// force a reload of the address book file so that changes that were made +// by other programs are loaded +void KAddrBookExternal::reloadAddressBook( ) { + KABC::AddressBook *ab = KABC::StdAddressBook::self(); + ab->load(); +} + +bool KAddrBookExternal::isInAddressBook( const QString &addr ) { + QString email; + QString name; + KABC::Addressee::parseEmailAddress( addr, name, email ); + KABC::AddressBook *ab = KABC::StdAddressBook::self(); + + KABC::Addressee::List addressees = ab->findByEmail( email ); + return !addressees.isEmpty(); +} + void KAddrBookExternal::openAddressBook(QWidget *) { kapp->startServiceByDesktopName( "kaddressbook" ); } diff -urN kdepim_old/libkdepim/kaddrbook.h kdepim/libkdepim/kaddrbook.h --- kdepim_old/libkdepim/kaddrbook.h 2005-01-06 12:26:01.000000000 +0000 +++ kdepim/libkdepim/kaddrbook.h 2005-01-06 11:30:06.000000000 +0000 @@ -16,6 +16,8 @@ public: static void addEmail( const QString &addr, QWidget *parent ); static void addNewAddressee( QWidget* ); + static void reloadAddressBook( ); + static bool isInAddressBook( const QString &addr ); static void openEmail( const QString &email, const QString &addr, QWidget *parent ); static void openAddressBook( QWidget *parent ); --Boundary-00=_WMySCHTe+0GXd79 Content-Type: text/plain; charset="us-ascii" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Content-Disposition: inline _______________________________________________ kde-pim mailing list kde-pim@kde.org https://mail.kde.org/mailman/listinfo/kde-pim kde-pim home page at http://pim.kde.org/ --Boundary-00=_WMySCHTe+0GXd79--