kmail
foldertreebase.h
Go to the documentation of this file.00001 /* 00002 Copyright (c) 2007 Volker Krause <vkrause@kde.org> 00003 00004 This program is free software; you can redistribute it and/or modify 00005 it under the terms of the GNU General Public License as published by 00006 the Free Software Foundation; either version 2 of the License, or 00007 (at your option) any later version. 00008 00009 This program is distributed in the hope that it will be useful, 00010 but WITHOUT ANY WARRANTY; without even the implied warranty of 00011 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 00012 GNU General Public License for more details. 00013 00014 You should have received a copy of the GNU General Public License 00015 along with this program; if not, write to the Free Software 00016 Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. 00017 */ 00018 00019 #ifndef KMAIL_FOLDERTREEBASE_H 00020 #define KMAIL_FOLDERTREEBASE_H 00021 00022 #include <libkdepim/kfoldertree.h> 00023 00024 class KMFolder; 00025 class KMMainWidget; 00026 00027 namespace KMail { 00028 00029 class FolderTreeBase : public KFolderTree 00030 { 00031 Q_OBJECT 00032 public: 00033 FolderTreeBase( KMMainWidget *mainWidget, QWidget *parent = 0, const char *name = 0 ); 00034 00036 KMMainWidget* mainWidget() const { return mMainWidget; } 00037 00039 virtual QListViewItem* indexOfFolder( const KMFolder* folder ) const 00040 { 00041 if ( mFolderToItem.contains( folder ) ) 00042 return mFolderToItem[ folder ]; 00043 else 00044 return 0; 00045 } 00046 00047 void insertIntoFolderToItemMap( const KMFolder *folder, QListViewItem* item ) 00048 { 00049 mFolderToItem.insert( folder, item ); 00050 } 00051 00052 void removeFromFolderToItemMap( const KMFolder *folder ) 00053 { 00054 mFolderToItem.remove( folder ); 00055 } 00056 00057 signals: 00059 void folderDrop(KMFolder*); 00060 00062 void folderDropCopy(KMFolder*); 00063 00064 void triggerRefresh(); 00065 00066 public slots: 00068 void slotUpdateCounts(KMFolder * folder, bool force = false ); 00069 00070 protected: 00071 enum { 00072 DRAG_COPY = 0, 00073 DRAG_MOVE = 1, 00074 DRAG_CANCEL = 2 00075 }; 00076 int dndMode( bool alwaysAsk = false ); 00077 void contentsDropEvent( QDropEvent *e ); 00078 00080 virtual bool event(QEvent *e); 00081 00083 virtual void readColorConfig(); 00084 00086 bool hideLocalInbox() const; 00087 00089 void handleMailListDrop( QDropEvent *event, KMFolder *destination ); 00090 00091 protected: 00092 KMMainWidget *mMainWidget; 00093 QMap<const KMFolder*, QListViewItem*> mFolderToItem; 00094 }; 00095 00096 } 00097 00098 #endif