[prev in list] [next in list] [prev in thread] [next in thread]
List: kmail-devel
Subject: Re: PATCH : scoring
From: Guillaume Laurent <glaurent () telegraph-road ! org>
Date: 2001-04-08 20:17:02
[Download RAW message or body]
On Sunday 08 April 2001 20:24, Don Sanders wrote:
> On Sunday 08 April 2001 20:03, Guillaume Laurent wrote:
> > This patch is to add message scoring to kmail. If everybody is fine with
> > it, I'll commit it.
>
> Please attach the patch.
Duh. Here it is.
--
Guillaume.
http://www.telegraph-road.org
["kmail_score_patch" (text/x-c)]
? patch
? kmscoring.h
? kmscoring.cpp
Index: Makefile.am
===================================================================
RCS file: /home/kde/kdenetwork/kmail/Makefile.am,v
retrieving revision 1.109
diff -u -r1.109 Makefile.am
--- Makefile.am 2001/04/08 15:34:35 1.109
+++ Makefile.am 2001/04/08 17:59:01
@@ -25,6 +25,7 @@
kmnewiostatus.cpp kmnewiostatuswdg.cpp \
kmtopwidget.cpp kmacctimap.cpp \
kmundostack.cpp kmbroadcaststatus.cpp \
+ kmscoring.cpp \
kmacctexppop.cpp configuredialog.cpp colorlistbox.cpp \
kmkernel.cpp kmailIface.skel kmailIface.stub main.cpp \
accountdialog.cpp kmfldsearch.cpp addtoaddressbook.cpp \
Index: configuredialog.cpp
===================================================================
RCS file: /home/kde/kdenetwork/kmail/configuredialog.cpp,v
retrieving revision 1.92
diff -u -r1.92 configuredialog.cpp
--- configuredialog.cpp 2001/04/05 20:19:09 1.92
+++ configuredialog.cpp 2001/04/08 17:59:08
@@ -50,6 +50,7 @@
#include <kcharsets.h>
#include <kcolorbtn.h>
#include <kconfig.h>
+#include <kdebug.h>
#include <kfiledialog.h>
#include <kfontdialog.h>
#include <kiconloader.h>
@@ -64,6 +65,8 @@
#include <kstddirs.h>
#include <kurlrequester.h>
#include <kglobalsettings.h>
+#include <kscoring.h>
+#include <kscoringeditor.h>
#include "accountdialog.h"
@@ -79,6 +82,7 @@
#include "kmmessage.h"
#include "kmsender.h"
#include "kmtopwidget.h"
+#include "kmscoring.h"
#include "configuredialog.moc"
@@ -488,6 +492,7 @@
makeMimePage();
makeSecurityPage();
makeMiscPage();
+ makeScorePage();
}
@@ -1435,6 +1440,20 @@
topLevel->addStretch( 10 );
}
+void ConfigureDialog::makeScorePage( void )
+{
+ QFrame *page = addPage( i18n("Score"), i18n("Messages Scoring"),
+ KGlobal::instance()->iconLoader()->loadIcon( "misc", KIcon::NoGroup,
+ KIcon::SizeMedium ));
+ QVBoxLayout *topLevel = new QVBoxLayout( page, 0, spacingHint() );
+ mScore.pageIndex = pageIndex(page);
+
+ KScoringRulesConfig* ksc =
+ new KScoringRulesConfig(KMScoringManager::globalScoringManager(),
+ page);
+ topLevel->addWidget( ksc );
+
+}
void ConfigureDialog::setup( void )
@@ -1446,6 +1465,7 @@
setupMimePage();
setupSecurityPage();
setupMiscPage();
+ setupScorePage();
}
@@ -1819,6 +1839,11 @@
slotMailCommandSelectionChanged();
}
+void ConfigureDialog::setupScorePage( void )
+{
+}
+
+
void ConfigureDialog::installProfile( void )
{
@@ -2246,6 +2271,9 @@
config.writeEntry( "exec-on-mail-cmd",
mMisc.mailCommandEdit->text() );
}
+
+ kdDebug() << "KMScoringManager::globalScoringManager()->save();" << endl;
+ KMScoringManager::globalScoringManager()->save();
//
// Always
Index: configuredialog.h
===================================================================
RCS file: /home/kde/kdenetwork/kmail/configuredialog.h,v
retrieving revision 1.36
diff -u -r1.36 configuredialog.h
--- configuredialog.h 2001/03/26 00:02:06 1.36
+++ configuredialog.h 2001/04/08 17:59:09
@@ -236,6 +236,8 @@
QString *i18nPath;
};
+class KScoringRulesConfig;
+
class ConfigureDialog : public KDialogBase
{
Q_OBJECT
@@ -424,6 +426,12 @@
QLabel *mailCommandLabel;
};
+ struct ScoreListWidget
+ {
+ int pageIndex;
+ KScoringRulesConfig *ksc;
+ };
+
enum EPage
{
page_identity = 0,
@@ -457,6 +465,7 @@
void makeMimePage( void );
void makeSecurityPage( void );
void makeMiscPage( void );
+ void makeScorePage( void );
void setupIdentityPage( void );
void setupNetworkPage( void );
@@ -465,6 +474,7 @@
void setupMimePage( void );
void setupSecurityPage( void );
void setupMiscPage( void );
+ void setupScorePage( void );
void installProfile( void );
void updateFontSelector( void );
@@ -531,6 +541,7 @@
MimeWidget mMime;
SecurityWidget mSecurity;
MiscWidget mMisc;
+ ScoreListWidget mScore;
IdentityList mIdentityList;
QValueList<QGuardedPtr<KMAccount> > mAccountsToDelete;
Index: kmfolder.cpp
===================================================================
RCS file: /home/kde/kdenetwork/kmail/kmfolder.cpp,v
retrieving revision 1.147
diff -u -r1.147 kmfolder.cpp
--- kmfolder.cpp 2001/04/03 19:04:36 1.147
+++ kmfolder.cpp 2001/04/08 17:59:13
@@ -11,6 +11,7 @@
#include "kbusyptr.h"
#include "kmundostack.h"
#include "kmacctimap.h"
+#include "kmscoring.h"
#include <kapp.h>
#include <kconfig.h>
@@ -1808,5 +1809,37 @@
{
mProcmailLockFileName = fname;
}
+
+//-----------------------------------------------------------------------------
+void KMFolder::scoreMessages()
+{
+ KMScoringManager* sm = KMScoringManager::globalScoringManager();
+ if (!sm) {
+ kdDebug() << "KMFolder::scoreMessages() : no globalScoringManager"
+ << endl;
+ return;
+ }
+
+ KMMessage* msg;
+ int i;
+
+ if (name()) sm->initCache(name());
+
+ kdDebug() << "KMFolder::scoreMessages() : starting score" << endl;
+ for (i=0; i<mMsgList.high(); i++)
+ {
+ msg = getMsg(i);
+
+ if (!msg) {
+ kdDebug() << "KMFolder::scoreMessages() : Skipping msg" << endl;
+ continue;
+ }
+ KMScorableArticle smsg(msg);
+
+ sm->applyRules(smsg);
+ kdDebug() << "KMFolder::scoreMessages() : score = " << msg->score() << endl;
+ }
+}
+
#include "kmfolder.moc"
Index: kmfolder.h
===================================================================
RCS file: /home/kde/kdenetwork/kmail/kmfolder.h,v
retrieving revision 1.44
diff -u -r1.44 kmfolder.h
--- kmfolder.h 2001/03/21 21:01:16 1.44
+++ kmfolder.h 2001/04/08 17:59:13
@@ -283,6 +283,8 @@
void setProcmailLockFileName( const QString& );
+ void scoreMessages();
+
signals:
/** Emitted when the status, name, or associated accounts of this
folder changed. */
Index: kmheaders.cpp
===================================================================
RCS file: /home/kde/kdenetwork/kmail/kmheaders.cpp,v
retrieving revision 1.259
diff -u -r1.259 kmheaders.cpp
--- kmheaders.cpp 2001/04/06 10:10:00 1.259
+++ kmheaders.cpp 2001/04/08 17:59:18
@@ -152,6 +152,8 @@
if (mPaintInfo->showSize)
setText( mPaintInfo->sizeCol, QString( "%1" ).arg( mMsgBase->msgSize()));
+ setText( mPaintInfo->scoreCol, QString( "%1" ).arg( mMsgBase->score()));
+
mColor = &mPaintInfo->colFore;
switch (flag)
@@ -321,10 +323,11 @@
readConfig();
mPaintInfo.flagCol = -1;
- mPaintInfo.subCol = mPaintInfo.flagCol + 1;
- mPaintInfo.senderCol = mPaintInfo.subCol + 1;
- mPaintInfo.dateCol = mPaintInfo.senderCol + 1;
- mPaintInfo.sizeCol = mPaintInfo.dateCol + 1;
+ mPaintInfo.subCol = mPaintInfo.flagCol + 1;
+ mPaintInfo.senderCol = mPaintInfo.subCol + 1;
+ mPaintInfo.dateCol = mPaintInfo.senderCol + 1;
+ mPaintInfo.sizeCol = mPaintInfo.dateCol + 1;
+ mPaintInfo.scoreCol = mPaintInfo.sizeCol + 1;
mSortCol = KMMsgList::sfDate;
mSortDescending = FALSE;
setShowSortIndicator(true);
@@ -341,6 +344,8 @@
showingSize = false;
}
+ addColumn( i18n("Score"), 80 );
+
if (!pixmapsLoaded)
{
pixmapsLoaded = TRUE;
@@ -625,6 +630,7 @@
readFolderConfig();
mFolder->open();
+ mFolder->scoreMessages();
if ((mNested && !mNestedOverride) || (!mNested && mNestedOverride)) {
clear();
@@ -704,6 +710,9 @@
showingSize = false;
}
}
+
+ colText = i18n( "Score" );
+ setColumnText( mPaintInfo.scoreCol, colText);
}
Index: kmheaders.h
===================================================================
RCS file: /home/kde/kdenetwork/kmail/kmheaders.h,v
retrieving revision 1.68
diff -u -r1.68 kmheaders.h
--- kmheaders.h 2001/04/05 20:19:09 1.68
+++ kmheaders.h 2001/04/08 17:59:18
@@ -49,6 +49,7 @@
int subCol;
int dateCol;
int sizeCol;
+ int scoreCol;
};
#define KMHeadersInherited QListView
Index: kmmessage.cpp
===================================================================
RCS file: /home/kde/kdenetwork/kmail/kmmessage.cpp,v
retrieving revision 1.183
diff -u -r1.183 kmmessage.cpp
--- kmmessage.cpp 2001/04/08 15:34:35 1.183
+++ kmmessage.cpp 2001/04/08 17:59:25
@@ -57,12 +57,12 @@
//-----------------------------------------------------------------------------
KMMessage::KMMessage(DwMessage* aMsg)
+ : mMsg(aMsg),
+ mNeedsAssembly(true),
+ mIsComplete(false),
+ mTransferInProgress(false),
+ mCodec(0)
{
- mNeedsAssembly = TRUE;
- mMsg = aMsg;
- mCodec = NULL;
- mIsComplete = FALSE;
- mTransferInProgress = FALSE;
}
Index: kmmsgbase.cpp
===================================================================
RCS file: /home/kde/kdenetwork/kmail/kmmsgbase.cpp,v
retrieving revision 1.69
diff -u -r1.69 kmmsgbase.cpp
--- kmmsgbase.cpp 2001/04/06 08:50:37 1.69
+++ kmmsgbase.cpp 2001/04/08 17:59:26
@@ -27,13 +27,14 @@
//-----------------------------------------------------------------------------
KMMsgBase::KMMsgBase(KMFolder* aParent)
+ : mParent(aParent),
+ mFolderOffset(0),
+ mMsgSize(0),
+ mDate(0),
+ mStatus(KMMsgStatusNew),
+ mScore(0),
+ mDirty(false)
{
- mParent = aParent;
- mDirty = FALSE;
- mMsgSize = 0;
- mFolderOffset = 0;
- mStatus = KMMsgStatusNew;
- mDate = 0;
}
Index: kmmsgbase.h
===================================================================
RCS file: /home/kde/kdenetwork/kmail/kmmsgbase.h,v
retrieving revision 1.25
diff -u -r1.25 kmmsgbase.h
--- kmmsgbase.h 2001/04/05 20:19:09 1.25
+++ kmmsgbase.h 2001/04/08 17:59:27
@@ -114,6 +114,16 @@
/** Copy all values from other to this object. */
void assign(const KMMsgBase* other);
+ /** Set article score */
+ void setScore(short s) { mScore = s; }
+
+ /** Add article score */
+ void addScore(short s) { mScore += s; }
+
+ /** Return article's score */
+ short score() const { return mScore; }
+
+
/** Assignment operator that simply calls assign(). */
KMMsgBase& operator=(const KMMsgBase& other);
@@ -157,6 +167,7 @@
unsigned long mFolderOffset, mMsgSize;
time_t mDate;
KMMsgStatus mStatus;
+ short mScore;
bool mDirty;
};
_______________________________________________
Kmail Developers 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