summaryrefslogtreecommitdiffstats
path: root/kmail/kmfolderseldlg.h
diff options
context:
space:
mode:
Diffstat (limited to 'kmail/kmfolderseldlg.h')
-rw-r--r--kmail/kmfolderseldlg.h119
1 files changed, 119 insertions, 0 deletions
diff --git a/kmail/kmfolderseldlg.h b/kmail/kmfolderseldlg.h
new file mode 100644
index 000000000..3adef4159
--- /dev/null
+++ b/kmail/kmfolderseldlg.h
@@ -0,0 +1,119 @@
+/* KMail Folder Selection Dialog
+ * Pops up a small window with a list of folders and Ok/Cancel buttons.
+ * Author: Stefan Taferner <taferner@kde.org>
+ * Carsten Burghardt <burghardt@kde.org>
+ */
+#ifndef kmfolderseldlg_h
+#define kmfolderseldlg_h
+
+#include <kdialogbase.h>
+#include <kfoldertree.h>
+
+class KMFolder;
+class KMFolderTree;
+class KMMainWidget;
+
+namespace KMail {
+
+ class SimpleFolderTree : public KFolderTree
+ {
+ Q_OBJECT
+
+ public:
+ SimpleFolderTree( QWidget * parent, KMFolderTree * folderTree,
+ const QString & preSelection, bool mustBeReadWrite );
+
+ /** Reload the tree and select what folders to show and what not */
+ void reload( bool mustBeReadWrite, bool showOutbox, bool showImapFolders,
+ const QString& preSelection = QString::null );
+
+ /** Return the current folder */
+ const KMFolder * folder() const;
+
+ /** Set the current folder */
+ void setFolder( KMFolder* );
+ void setFolder( const QString& idString );
+
+ /** Apply the given filter. */
+ void applyFilter( const QString& filter );
+
+ public slots:
+ void addChildFolder();
+
+ protected slots:
+ void slotContextMenuRequested( QListViewItem *, const QPoint & );
+ virtual void recolorRows();
+
+ protected:
+ /** Read color options and set palette. */
+ virtual void readColorConfig(void);
+ virtual void keyPressEvent( QKeyEvent *e );
+
+ /** Folder and path column IDs. */
+ friend class KMFolderSelDlg;
+ int mFolderColumn;
+ int mPathColumn;
+
+ private:
+ KMFolderTree* mFolderTree;
+ QString mFilter;
+ bool mLastMustBeReadWrite;
+ bool mLastShowOutbox;
+ bool mLastShowImapFolders;
+};
+
+ //-----------------------------------------------------------------------------
+ class KMFolderSelDlg: public KDialogBase
+ {
+ Q_OBJECT
+
+ public:
+ /**
+ * Constructor with KMMainWidget
+ * @p parent @em must be a KMMainWin, because we
+ * need its foldertree.
+ * @param mustBeReadWrite if true, readonly folders are disabled
+ * @param useGlobalSettings if true, the current folder is read and
+ * written to GlobalSettings
+ */
+ KMFolderSelDlg( KMMainWidget * parent, const QString& caption,
+ bool mustBeReadWrite, bool useGlobalSettings = true );
+ /**
+ * Constructor with separate KMFolderTree
+ * @param mustBeReadWrite if true, readonly folders are disabled
+ * @param useGlobalSettings if true, the current folder is read and
+ * written to GlobalSettings
+ */
+ KMFolderSelDlg( QWidget * parent, KMFolderTree * tree,
+ const QString& caption, bool mustBeReadWrite,
+ bool useGlobalSettings = true );
+
+ virtual ~KMFolderSelDlg();
+
+ /** Returns selected folder */
+ virtual KMFolder* folder( void );
+
+ /** Set selected folder */
+ void setFolder( KMFolder* folder );
+
+ /** Set some flags what folders to show and what not */
+ void setFlags( bool mustBeReadWrite, bool showOutbox, bool showImapFolders );
+
+ protected slots:
+ void slotSelect();
+ void slotUser1();
+ void slotUpdateBtnStatus();
+
+ protected:
+ void readConfig();
+ void writeConfig();
+ /** Init the dialog */
+ void init();
+
+ SimpleFolderTree * mTreeView;
+ bool mUseGlobalSettings;
+ };
+
+} // namespace KMail
+
+#endif /*kmfolderseldlg_h*/