• Skip to content
  • Skip to link menu
KDE API Reference
  • KDE API Reference
  • kdepim API Reference
  • KDE Home
  • Contact Us
 

kmail

  • sources
  • kde-4.12
  • kdepim
  • kmail
kmmainwidget.h
Go to the documentation of this file.
1 /* -*- mode: C++; c-file-style: "gnu" -*-
2  This file is part of KMail, the KDE mail client.
3  Copyright (c) 2002 Don Sanders <sanders@kde.org>
4 
5  Based on the work of Stefan Taferner <taferner@kde.org>
6 
7  KMail is free software; you can redistribute it and/or modify it
8  under the terms of the GNU General Public License, version 2, as
9  published by the Free Software Foundation.
10 
11  KMail is distributed in the hope that it will be useful, but
12  WITHOUT ANY WARRANTY; without even the implied warranty of
13  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
14  General Public License for more details.
15 
16  You should have received a copy of the GNU General Public License along
17  with this program; if not, write to the Free Software Foundation, Inc.,
18  51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
19 */
20 
21 #ifndef __KMMAINWIDGET
22 #define __KMMAINWIDGET
23 
24 #include "kmail_export.h"
25 #include "kmreaderwin.h" //for inline actions
26 #include "kmkernel.h" // for access to config
27 
28 #include "foldertreewidget.h"
29 
30 #include <kxmlguiclient.h>
31 #include "messageactions.h"
32 #include <kactioncollection.h>
33 #include <foldercollection.h>
34 
35 #include <QPointer>
36 #include <QTimer>
37 #include <akonadi/kmime/standardmailactionmanager.h>
38 #include <messagelist/core/view.h>
39 
40 namespace KMime {
41  class Message;
42 }
43 class KUrl;
44 class QLabel;
45 class QVBoxLayout;
46 class QSplitter;
47 
48 class QMenu;
49 class KAction;
50 class KActionMenu;
51 class KToggleAction;
52 class KMMetaFilterActionCommand;
53 class CollectionPane;
54 class KMCommand;
55 class KMMoveCommand;
56 class KRecentFilesAction;
57 class QDBusPendingCallWatcher;
58 template <typename T, typename S> class QMap;
59 
60 namespace KIO {
61  class Job;
62 }
63 
64 namespace KMail {
65  class SearchWindow;
66  class StatusBarLabel;
67  class TagActionManager;
68  class FolderShortcutActionManager;
69  class VacationManager;
70 }
71 
72 namespace KSieveUi {
73  class SieveDebugDialog;
74  class Vacation;
75  class ManageSieveScriptsDialog;
76 }
77 
78 namespace MailCommon {
79  class FolderSelectionDialog;
80  class FavoriteCollectionWidget;
81 }
82 
83 class KMAIL_EXPORT KMMainWidget : public QWidget
84 {
85  Q_OBJECT
86 
87  public:
88  typedef QList<KMMainWidget*> PtrList;
89 
90  KMMainWidget(QWidget *parent, KXMLGUIClient *aGUIClient,
91  KActionCollection *actionCollection,
92  KSharedConfig::Ptr config = KMKernel::self()->config() );
93  virtual ~KMMainWidget();
94  void destruct();
95 
97  void readPreConfig();
98 
100  void readFolderConfig();
101 
103  void writeFolderConfig();
104 
106  void readConfig();
107 
109  void writeConfig(bool force = true);
110 
111  void writeReaderConfig();
112 
114  KMReaderWin* messageView() const { return mMsgView; }
116  CollectionPane* messageListPane() const { return mMessagePane; }
117 
118  QSharedPointer<MailCommon::FolderCollection> currentFolder() const;
119 
120  static void cleanup();
121  QAction *action( const QString &name ) { return mActionCollection->action( name ); }
122  KActionMenu *filterMenu() const { return mFilterMenu; }
123  KActionMenu *mailingListActionMenu() const { return mMsgActions->mailingListActionMenu(); }
124  KAction *editAction() const { return mMsgActions->editAction(); }
125  KAction *sendAgainAction() const { return mSendAgainAction; }
126  KAction *sendQueuedAction() const { return mSendQueued; }
127  KActionMenu *sendQueueViaMenu() const { return mSendActionMenu; }
128 
129  KMail::MessageActions *messageActions() const { return mMsgActions; }
130 
135  static const PtrList *mainWidgetList();
136 
137  QLabel* vacationScriptIndicator() const;
138  void updateVacationScriptStatus() { updateVacationScriptStatus( mVacationIndicatorActive ); }
139 
140  MailCommon::FolderTreeView *folderTreeView() const {
141  return mFolderTreeWidget->folderTreeView();
142  }
143 
145  KXMLGUIClient* guiClient() const { return mGUIClient; }
146 
147  KMail::TagActionManager *tagActionManager() const {
148  return mTagActionManager;
149  }
150 
151  KMail::FolderShortcutActionManager *folderShortcutActionManager() const {
152  return mFolderShortcutActionManager;
153  }
154  void savePaneSelection();
155 
156  void updatePaneTagComboBox();
157 
158  void clearViewer();
159 
160  void addRecentFile(const KUrl& mUrl);
161  public slots:
162  // Moving messages around
167  void slotMoveSelectedMessageToFolder();
168 
169  // Copying messages around
170 
175  void slotCopySelectedMessagesToFolder();
176 
180  void slotTrashSelectedMessages();
181 
182  void slotCheckMail();
183 
184  void slotCheckMailOnStartup();
185 
190  void folderSelected( const Akonadi::Collection & col );
191 
195  void slotMessageActivated( const Akonadi::Item & );
196 
200  void slotMessageSelected( const Akonadi::Item & );
201 
202  void slotItemsFetchedForActivation( const Akonadi::Item::List &list );
203  void slotMessageStatusChangeRequest( const Akonadi::Item &, const Akonadi::MessageStatus &, const Akonadi::MessageStatus & );
204 
205 
206  void slotReplaceMsgByUnencryptedVersion();
207 
211  void updateMessageMenu();
212 
216  void startUpdateMessageActionsTimer();
217 
219  void updateMessageActions( bool fast = false );
220  void updateMessageActionsDelayed();
221 
223  void clearFilterActions();
224  void initializeFilterActions();
225 
226 
228  void slotEditVacation();
229 
232  void slotUpdateMessageTagList( const QString &aLabel );
233  void slotSelectMoreMessageTagList();
234 
242  QList<KActionCollection*> actionCollections() const;
243 
244 
245  KAction *akonadiStandardAction( Akonadi::StandardActionManager::Type type );
246  KAction *akonadiStandardAction( Akonadi::StandardMailActionManager::Type type );
247  Akonadi::StandardMailActionManager *standardMailActionManager() const { return mAkonadiStandardActionManager; }
248 
249  void refreshMessageListSelection();
250 
251  void slotStartCheckMail();
252  void slotEndCheckMail();
253 
254  void slotCollectionProperties();
255  void slotRemoveDuplicates();
256  void slotRemoveDuplicatesDone( KJob* );
257  void slotRemoveDuplicatesCanceled( KPIM::ProgressItem* );
258  void slotRemoveDuplicatesUpdate( KJob *, const QString& );
259 
260  void slotSelectCollectionFolder( const Akonadi::Collection & col );
261 
262  signals:
263  void messagesTransfered( bool );
264  void captionChangeRequest( const QString &caption );
265  void recreateGui();
266 
267  protected:
268  void restoreCollectionFolderViewConfig(Akonadi::Collection::Id id = -1);
269  void setupActions();
270  void createWidgets();
271  void deleteWidgets();
272  void layoutSplitters();
273  void newFromTemplate( const Akonadi::Item& );
274  void moveSelectedMessagesToFolder( const Akonadi::Collection & dest );
275  void copySelectedMessagesToFolder( const Akonadi::Collection& dest );
276 
277 
278  virtual void showEvent( QShowEvent *event );
279 
280  KActionCollection *actionCollection() const { return mActionCollection; }
281 
287  KSharedConfig::Ptr config();
288 
289  protected slots:
290  void updateFileMenu();
291  void slotCheckOneAccount( QAction* );
292  void getAccountMenu();
293  void getTransportMenu();
294  void slotHelp();
295  void slotFilter();
296  void slotManageSieveScripts();
297  void slotAddrBook();
298  void slotImport();
299  void slotCompose();
300  void slotPostToML();
301  void slotFolderMailingListProperties();
302  void slotShowFolderShortcutDialog();
303  void slotExpireFolder();
304  void slotExpireAll();
305  void slotArchiveFolder();
306  void slotRemoveFolder();
307  void slotDelayedRemoveFolder( KJob* );
308  void slotEmptyFolder();
309  void slotAddFavoriteFolder();
310  void slotShowSelectedFolderInPane();
311  void slotOverrideHtml();
312  void slotOverrideHtmlLoadExt();
313  void slotMessageQueuedOrDrafted();
314  void slotUseTemplate();
315  void slotDeleteMsg( bool confirmDelete = true ); // completely delete message
316  void slotTrashThread();
317  void slotDeleteThread( bool confirmDelete = true ); // completely delete thread
318  void slotUndo();
319  void slotReadOn();
320  void slotSaveMsg();
321  void slotOpenMsg();
322  void slotSaveAttachments();
323  void slotJumpToFolder();
324  void slotResendMsg();
325  void slotCheckVacation();
326  void slotDebugSieve();
327  void slotStartCertManager();
328  void slotStartWatchGnuPG();
329  void slotApplyFilters();
330  void slotApplyFiltersOnFolder();
331  void slotExpandThread();
332  void slotExpandAllThreads();
333  void slotCollapseThread();
334  void slotCollapseAllThreads();
335  void slotSetThreadStatusUnread();
336  void slotSetThreadStatusRead();
337  void slotSetThreadStatusImportant();
338  void slotSetThreadStatusToAct();
339  void slotSetThreadStatusWatched();
340  void slotSetThreadStatusIgnored();
341  void slotSendQueued();
342  void slotSendQueuedVia( QAction* item );
343  void slotOnlineStatus();
344  void slotUpdateOnlineStatus( GlobalSettings::EnumNetworkState::type );
345  void slotMessagePopup(const Akonadi::Item& ,const KUrl&,const KUrl &imageUrl,const QPoint& );
346  void slotContactSearchJobForMessagePopupDone( KJob *job );
347  void slotMarkAll();
348  void slotFocusQuickSearch();
349  bool slotSearch();
350  void slotIntro();
351  void slotShowStartupFolder();
353  void slotShowTip();
354  void slotAntiSpamWizard();
355  void slotAntiVirusWizard();
356  void slotFilterLogViewer();
357  void slotAccountWizard();
358  void slotImportWizard();
359 
361  void slotSelectNextMessage();
362  void slotExtendSelectionToNextMessage();
363  void slotSelectNextUnreadMessage();
364  void slotSelectPreviousMessage();
365  void slotExtendSelectionToPreviousMessage();
366  void slotSelectPreviousUnreadMessage();
367  void slotFocusOnNextMessage();
368  void slotFocusOnPrevMessage();
369  void slotSelectFirstMessage();
370  void slotSelectLastMessage();
371  void slotSelectFocusedMessage();
372 
373  void slotNextUnreadFolder();
374  void slotPrevUnreadFolder();
375 
377  void slotDisplayCurrentMessage();
378 
379  void slotShowNewFromTemplate();
380  void slotDelayedShowNewFromTemplate( KJob* );
381  void slotNewFromTemplate( QAction* );
382 
384  void slotUpdateUndo();
385 
387  void updateFolderMenu();
388 
392  void slotEditNotifications();
393 
395  void slotCustomReplyToMsg( const QString &tmpl );
396  void slotCustomReplyAllToMsg( const QString &tmpl );
397  void slotForwardInlineMsg();
398  void slotForwardAttachedMsg();
399  void slotRedirectMsg();
400  void slotCustomForwardMsg( const QString &tmpl );
401  void slotSubjectFilter();
402  void slotFromFilter();
403  void slotToFilter();
404 
405  void slotConfigChanged();
406 
408  void slotShowBusySplash();
409 
414  void showOfflinePage();
415  void showResourceOfflinePage();
416  void updateVacationScriptStatus(bool active , const QString &serverName = QString());
417 
418 
419  void slotShowExpiryProperties();
420  void slotItemAdded( const Akonadi::Item &, const Akonadi::Collection& col);
421  void slotItemRemoved( const Akonadi::Item & );
422  void slotItemMoved( const Akonadi::Item &item, const Akonadi::Collection &from, const Akonadi::Collection &to );
423  void slotCollectionStatisticsChanged( const Akonadi::Collection::Id, const Akonadi::CollectionStatistics& );
424 
425  void slotAkonadiStandardActionUpdated();
426  void slotCollectionChanged( const Akonadi::Collection&, const QSet<QByteArray>& );
427  void slotCreateNewTab( bool );
428  void slotUpdateActionsAfterMailChecking();
429  void slotConfigureAutomaticArchiving();
430  void slotExportData();
431  void slotCreateAddressBookContact();
432  void slotOpenRecentMsg(const KUrl& url);
433  void slotConfigureSendLater();
434  void slotConfigureFolderArchiving();
435 
436  private:
437  void checkAkonadiServerManagerState();
438  void updateHtmlMenuEntry();
439 
440  void updateMoveAction( const Akonadi::CollectionStatistics& statistic );
441  void updateMoveAction( bool hasUnreadMails, bool hasMails );
442 
443  void updateAllToTrashAction(int statistics);
444 
446  QString overrideEncoding() const;
447 
448  void moveMessageSelected( MessageList::Core::MessageItemSetReference ref, const Akonadi::Collection &dest, bool confirmOnDeletion = true );
449 
450  void copyMessageSelected( const QList<Akonadi::Item> &selectMsg, const Akonadi::Collection &dest );
451 
452 
458  void trashMessageSelected( MessageList::Core::MessageItemSetReference ref );
463  void setMessageSetStatus( const QList<Akonadi::Item> &select,
464  const Akonadi::MessageStatus &status,
465  bool toggle
466  );
471  void toggleMessageSetTag( const QList<Akonadi::Item> &select, const QString &taglabel );
475  void setCurrentThreadStatus( const Akonadi::MessageStatus &status, bool toggle );
476 
477  void applyFilters( const QList< Akonadi::Item >& selectedMessages );
478 
484  MailCommon::FolderSelectionDialog* moveOrCopyToDialog();
485 
490  MailCommon::FolderSelectionDialog* selectFromAllFoldersDialog();
491 
492 
497  void refreshFavoriteFoldersViewProperties();
498 
499  void openFilterDialog(const QByteArray &field, const QString &value);
500 
501  void showMessagePopup(const Akonadi::Item&msg ,const KUrl&aUrl,const KUrl &imageUrl,const QPoint& aPoint, bool contactAlreadyExists, bool uniqueContactFound);
502 
503  void showCollectionProperties( const QString &pageToShow );
504  void showCollectionPropertiesContinued( const QString &pageToShow, QPointer<KPIM::ProgressItem> progressItem );
505 
506  private slots:
507  void slotMoveMessageToTrash();
511  void slotTrashMessagesCompleted( KMMoveCommand *command );
512 
516  void slotMoveMessagesCompleted( KMMoveCommand *command );
517 
521  void slotCopyMessagesCompleted( KMCommand *command );
522 
523  void slotRequestFullSearchFromQuickSearch();
524  void slotFolderChanged( const Akonadi::Collection& );
525  void slotCollectionFetched( int collectionId );
526 
527  void itemsReceived(const Akonadi::Item::List &list );
528  void itemsFetchDone( KJob *job );
529  void itemsFetchForActivationDone( KJob *job );
530 
531  void slotCollectionPropertiesContinued( KJob* job );
532  void slotCollectionPropertiesFinished( KJob *job );
533  void slotDeletionCollectionResult(KJob* job);
534  void slotServerSideSubscription();
535  void slotFetchItemsForFolderDone(KJob*job);
536  void slotServerStateChanged(Akonadi::ServerManager::State state);
537  void slotConfigureSubscriptionFinished(QDBusPendingCallWatcher* watcher);
538  void slotArchiveMails();
539 private:
540  // Message actions
541  KAction *mDeleteAction, *mTrashThreadAction,
542  *mDeleteThreadAction, *mSaveAsAction, *mUseAction,
543  *mSendAgainAction, *mApplyAllFiltersAction,
544  *mSaveAttachmentsAction, *mOpenAction,
545  *mMoveMsgToFolderAction, *mCollectionProperties, *mSendQueued;
546  KAction *mArchiveAction;
547  KActionMenu *mSendActionMenu;
548  // Filter actions
549  KActionMenu *mFilterMenu;
550  KAction *mExpireConfigAction;
551  KAction *mApplyFiltersOnFolder;
552  // Custom template actions menu
553  KActionMenu *mTemplateMenu;
554 
555  KActionMenu *mThreadStatusMenu, *mApplyFilterActionsMenu;
556  KAction *mCopyActionMenu;
557  KAction *mMoveActionMenu;
558  KAction *mMarkThreadAsReadAction;
559  KAction *mMarkThreadAsUnreadAction;
560  KToggleAction *mToggleThreadImportantAction;
561  KToggleAction *mToggleThreadToActAction;
562 
563  KToggleAction *mWatchThreadAction, *mIgnoreThreadAction;
564 
565  MailCommon::FavoriteCollectionWidget *mFavoriteCollectionsView;
566  Akonadi::FavoriteCollectionsModel *mFavoritesModel;
567  QWidget *mSearchAndTree;
568  KMReaderWin *mMsgView;
569  QSplitter *mSplitter1, *mSplitter2, *mFolderViewSplitter;
570  Akonadi::Collection mTemplateFolder;
571  QMenu *mActMenu;
572  QMenu *mSendMenu;
573  bool mLongFolderList;
574  bool mStartupDone;
575  bool mWasEverShown;
576  bool mHtmlPref, mHtmlLoadExtPref,
577  mFolderHtmlPref, mFolderHtmlLoadExtPref,
578  mReaderWindowActive, mReaderWindowBelow;
579  bool mEnableFavoriteFolderView;
580  bool mEnableFolderQuickSearch;
581 
582  QPointer<KMail::SearchWindow> mSearchWin;
583 
584  KAction *mExpireFolderAction,
585  *mFolderMailingListPropertiesAction,
586  *mShowFolderShortcutDialogAction,
587  *mArchiveFolderAction, *mMessageNewList;
588  KToggleAction *mPreferHtmlAction, *mPreferHtmlLoadExtAction;
589 
590  QTimer *menutimer;
591  QTimer *mShowBusySplashTimer;
592 
593  KMail::VacationManager *mVacationManager;
594 #if !defined(NDEBUG)
595  QPointer<KSieveUi::SieveDebugDialog> mSieveDebugDialog;
596 #endif
597  KActionCollection *mActionCollection;
598  QAction *mToolbarActionSeparator;
599  QVBoxLayout *mTopLayout;
600  bool mDestructed;
601  QList<QAction*> mFilterMenuActions;
602  QList<QAction*> mFilterTBarActions;
603  QList<KMMetaFilterActionCommand*> mFilterCommands;
604 
605  KMail::TagActionManager *mTagActionManager;
606  KMail::FolderShortcutActionManager *mFolderShortcutActionManager;
607  KSharedConfig::Ptr mConfig;
608  KXMLGUIClient *mGUIClient;
609 
610  KMail::MessageActions *mMsgActions;
611  Akonadi::StandardMailActionManager *mAkonadiStandardActionManager;
612  CollectionPane *mMessagePane;
613  QSharedPointer<MailCommon::FolderCollection> mCurrentFolder;
614 
615  MailCommon::FolderTreeWidget *mFolderTreeWidget;
616 
617  KMail::StatusBarLabel *mVacationScriptIndicator;
618  bool mVacationIndicatorActive;
619  bool mGoToFirstUnreadMessageInSelectedFolder;
620  MessageList::Core::PreSelectionMode mPreSelectionMode;
621 
622  QTimer mCheckMailTimer;
623 
624  QPointer<MailCommon::FolderSelectionDialog> mMoveOrCopyToDialog;
625  QPointer<MailCommon::FolderSelectionDialog> mSelectFromAllFoldersDialog;
626  KAction *mServerSideSubscription;
627  KRecentFilesAction *mOpenRecentAction;
628  QPointer<KSieveUi::ManageSieveScriptsDialog> mManageSieveDialog;
629 };
630 
631 #endif
632 
KMMainWidget::action
QAction * action(const QString &name)
Definition: kmmainwidget.h:121
QSharedPointer< MailCommon::FolderCollection >
KMMainWidget::editAction
KAction * editAction() const
Definition: kmmainwidget.h:124
KXMLGUIClient
kmail_export.h
KMReaderWin
This class implements a "reader window", that is a window used for reading or viewing messages...
Definition: kmreaderwin.h:50
QWidget
KMail::MessageActions
Manages common actions that can be performed on one or more messages.
Definition: messageactions.h:59
KMMainWidget::messageListPane
CollectionPane * messageListPane() const
Access to the header list pane.
Definition: kmmainwidget.h:116
KMMoveCommand
Definition: kmcommands.h:511
KMMainWidget::tagActionManager
KMail::TagActionManager * tagActionManager() const
Definition: kmmainwidget.h:147
KMMainWidget::messageActions
KMail::MessageActions * messageActions() const
Definition: kmmainwidget.h:129
KMMainWidget::folderShortcutActionManager
KMail::FolderShortcutActionManager * folderShortcutActionManager() const
Definition: kmmainwidget.h:151
from
QString from() const
KMKernel::self
static KMKernel * self()
normal control stuff
Definition: kmkernel.cpp:1451
kmreaderwin.h
KMail::TagActionManager
Creates actions related to the existing Nepomuk tags and plugs them into the GUI. ...
Definition: tagactionmanager.h:66
KMMainWidget::folderTreeView
MailCommon::FolderTreeView * folderTreeView() const
Definition: kmmainwidget.h:140
messageactions.h
KMMainWidget::PtrList
QList< KMMainWidget * > PtrList
Definition: kmmainwidget.h:88
KMMetaFilterActionCommand
Definition: kmcommands.h:464
KMMainWidget::actionCollection
KActionCollection * actionCollection() const
Definition: kmmainwidget.h:280
KMail::StatusBarLabel
Slightly extended QLabel for embedding into the status bar, providing mouse click signals and support...
Definition: statusbarlabel.h:31
KMCommand
Small helper structure which encapsulates the KMMessage created when creating a reply, and.
Definition: kmcommands.h:44
KMMainWidget::sendAgainAction
KAction * sendAgainAction() const
Definition: kmmainwidget.h:125
to
QString to() const
KMMainWidget
Definition: kmmainwidget.h:83
QMenu
KMAIL_EXPORT
#define KMAIL_EXPORT
Definition: kmail_export.h:35
kmkernel.h
QLabel
KPIM::ProgressItem
KMail::VacationManager
Definition: vacationmanager.h:29
KMMainWidget::updateVacationScriptStatus
void updateVacationScriptStatus()
Definition: kmmainwidget.h:138
KMail::FolderShortcutActionManager
Definition: foldershortcutactionmanager.h:61
KMMainWidget::filterMenu
KActionMenu * filterMenu() const
Definition: kmmainwidget.h:122
CollectionPane
Definition: collectionpane.h:25
KMMainWidget::sendQueuedAction
KAction * sendQueuedAction() const
Definition: kmmainwidget.h:126
KMMainWidget::sendQueueViaMenu
KActionMenu * sendQueueViaMenu() const
Definition: kmmainwidget.h:127
KJob
KMMainWidget::guiClient
KXMLGUIClient * guiClient() const
Returns the XML GUI client.
Definition: kmmainwidget.h:145
KMMainWidget::mailingListActionMenu
KActionMenu * mailingListActionMenu() const
Definition: kmmainwidget.h:123
QMap
Definition: kmmainwidget.h:58
KMMainWidget::standardMailActionManager
Akonadi::StandardMailActionManager * standardMailActionManager() const
Definition: kmmainwidget.h:247
KMMainWidget::messageView
KMReaderWin * messageView() const
Easy access to main components of the window.
Definition: kmmainwidget.h:114
QList
This file is part of the KDE documentation.
Documentation copyright © 1996-2014 The KDE developers.
Generated on Tue Oct 14 2014 22:58:52 by doxygen 1.8.7 written by Dimitri van Heesch, © 1997-2006

KDE's Doxygen guidelines are available online.

kmail

Skip menu "kmail"
  • Main Page
  • Namespace List
  • Namespace Members
  • Alphabetical List
  • Class List
  • Class Hierarchy
  • Class Members
  • File List
  • File Members

kdepim API Reference

Skip menu "kdepim API Reference"
  • akonadi_next
  • akregator
  • blogilo
  • calendarsupport
  • console
  •   kabcclient
  •   konsolekalendar
  • kaddressbook
  • kalarm
  •   lib
  • kdgantt2
  • kjots
  • kleopatra
  • kmail
  • knode
  • knotes
  • kontact
  • korgac
  • korganizer
  • ktimetracker
  • libkdepim
  • libkleo
  • libkpgp
  • mailcommon
  • messagelist
  • messageviewer

Search



Report problems with this website to our bug tracking system.
Contact the specific authors with questions and comments about the page contents.

KDE® and the K Desktop Environment® logo are registered trademarks of KDE e.V. | Legal