diff --git a/Makefile.am b/Makefile.am
index ac54f6f70..631f04dd1 100644
--- a/Makefile.am
+++ b/Makefile.am
@@ -75,6 +75,9 @@ updatedir = $(kde_datadir)/kconf_update
update_DATA = kmail.upd upgrade-transport.pl kmail-pgpidentity.pl \
upgrade-signature.pl kmail-upd-identities.pl
+tipdir = $(kde_datadir)/kmail
+tip_DATA = tips
+
messages: rc.cpp
$(XGETTEXT) *.cpp *.h -o $(podir)/kmail.pot
diff --git a/kmkernel.cpp b/kmkernel.cpp
index 0bcb11e61..d3382bd18 100644
--- a/kmkernel.cpp
+++ b/kmkernel.cpp
@@ -35,6 +35,7 @@
#include "kmidentity.h"
#include "identitymanager.h"
#include
+#include
#include
#include
@@ -1009,5 +1010,13 @@ IdentityManager * KMKernel::identityManager() {
return mIdentityManager;
}
+void KMKernel::slotShowTipOnStart() {
+ KTipDialog::showTip(0);
+}
+
+void KMKernel::slotShowTip() {
+ KTipDialog::showTip( 0, QString::null, true );
+}
+
#include "kmkernel.moc"
diff --git a/kmkernel.h b/kmkernel.h
index ca37e838d..ac0a460ad 100644
--- a/kmkernel.h
+++ b/kmkernel.h
@@ -149,6 +149,12 @@ public:
QByteArray getCollectedStdErr(KProcess*);
public slots:
+ /** Show tip-of-the-day on startup */
+ void slotShowTipOnStart();
+
+ /** Show tip-of-the-day, forced */
+ void slotShowTip();
+
/** Connect the received* signals of K(Shell)Process to these slots
to let the kernel collect the output for you.
diff --git a/kmmainwin.cpp b/kmmainwin.cpp
index 90a0ea27e..5dfb71e8f 100644
--- a/kmmainwin.cpp
+++ b/kmmainwin.cpp
@@ -2789,6 +2789,10 @@ void KMMainWin::setupMenuBar()
i18n("Display KMail's Welcome Page") ),
0, this, SLOT(slotIntro()),
actionCollection(), "help_kmail_welcomepage" );
+ (void) new KAction( KGuiItem( i18n("Tip of the &Day..."), 0,
+ i18n("Show \"Tip of the Day\"") ),
+ 0, kernel, SLOT(slotShowTip()),
+ actionCollection(), "help_show_tip" );
createGUI( "kmmainwin.rc", false );
diff --git a/kmmainwin.rc b/kmmainwin.rc
index 32d089a75..81e79496f 100644
--- a/kmmainwin.rc
+++ b/kmmainwin.rc
@@ -1,6 +1,6 @@
-
+
diff --git a/main.cpp b/main.cpp
index 1daffa99c..7c222e941 100644
--- a/main.cpp
+++ b/main.cpp
@@ -11,6 +11,8 @@
#include
#include
+#include
+
#include
#include
#include
@@ -315,6 +317,9 @@ int main(int argc, char *argv[])
// any dead letters?
kmailKernel.recoverDeadLetters();
+ // show tip-of-the-day:
+ QTimer::singleShot( 5000, &kmailKernel, SLOT(slotShowTipOnStart()) );
+
setSignalHandler(signalHandler);
kapp->dcopClient()->resume(); // Ok. We are ready for DCOP requests.
diff --git a/tips b/tips
new file mode 100644
index 000000000..25a4983c7
--- /dev/null
+++ b/tips
@@ -0,0 +1,65 @@
+
+
+...that you can use the Left/Right keys of your keyboard to go to
+the previous/next message?
+
+
+
+
+
+...that you can rapidly create filters on sender, recipient,
+subject and mailing lists with Tools->Create Filter?
+
+
+
+
+
+...that you can get rid of the "[mailing list name]"
+added to the subject of some mailing lists by using the rewrite
+header filter action? Just use
+
rewrite header "Subject"
+ replace "\s*\[mailing list name\]\s*"
+ with ""
+
+
+
+
+
+
+...that you can associate mailing lists with folders in the
+Folder->Properties... dialog? You can then use
+Message->Post to Mailing List... to open the composer with
+the mailing list address preset.
+
+
+
+
+
+...that you can assign custom icons to each folder individually?
+See Folder->Properties...
+
+
+
+
+
+...that KMail can show a color bar indicating the type of message
+(Plain text/HTML/OpenPGP) currently displayed?
+This thwards attempts to fake successful signature verification by
+sending HTML mails mimicking KMail's signature status frames.
+
+
+
+
+
+...that you can filter on any header by simply entering it's name
+in the first edit field of a search rule?
+
+
+
+
+
+...that you can filter out HTML-only messages with the rule
+
"Content-type" contains "text/html"?
+
+
+