diff options
Diffstat (limited to 'libkdepim/kfoldertree.h')
-rw-r--r-- | libkdepim/kfoldertree.h | 319 |
1 files changed, 0 insertions, 319 deletions
diff --git a/libkdepim/kfoldertree.h b/libkdepim/kfoldertree.h deleted file mode 100644 index 5ee255731..000000000 --- a/libkdepim/kfoldertree.h +++ /dev/null @@ -1,319 +0,0 @@ -/* -*- mode: C++; c-file-style: "gnu" -*- - - This file is part of libtdepim. - - Copyright (C) 2002 Carsten Burghardt <burghardt@kde.org> - Copyright (C) 2002 Marc Mutz <mutz@kde.org> - - This library is free software; you can redistribute it and/or - modify it under the terms of the GNU Library General Public - License version 2 as published by the Free Software Foundation. - - This library is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - Library General Public License for more details. - - You should have received a copy of the GNU Library General Public License - along with this library; see the file COPYING.LIB. If not, write to - the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, - Boston, MA 02110-1301, USA. -*/ -#ifndef __KFOLDERTREE -#define __KFOLDERTREE - -#include <tqpixmap.h> -#include <tqbitarray.h> -#include <tqdragobject.h> -#include <tqcolor.h> -#include <klistview.h> -#include <tdepimmacros.h> - -class KFolderTree; - -/** Information shared by all items in a list view */ -struct KPaintInfo { - - // Popup ids for toggle-able columns - enum ColumnIds - { - COL_SIZE, - COL_ATTACHMENT, - COL_INVITATION, - COL_IMPORTANT, - COL_TODO, - COL_SPAM_HAM, - COL_WATCHED_IGNORED, - COL_STATUS, - COL_SIGNED, - COL_CRYPTO, - COL_RECEIVER, - COL_SCORE - }; - - KPaintInfo() : - pixmapOn(false), - - showSize(false), - showAttachment(false), - showInvitation(false), - showImportant(false), - showTodo(false), - showSpamHam(false), - showWatchedIgnored(false), - showtqStatus(false), - showSigned(false), - showCrypto(false), - showReceiver(false), - showScore(false), - - scoreCol(-1), - flagCol(-1), - senderCol(-1), - receiverCol(-1), - subCol(-1), - dateCol(-1), - sizeCol(-1), - attachmentCol(-1), - invitationCol(-1), - importantCol(-1), - todoCol(-1), - spamHamCol(-1), - watchedIgnoredCol(-1), - statusCol(-1), - signedCol(-1), - cryptoCol(-1), - - orderOfArrival(false), - status(false), - showCryptoIcons(false), - showAttachmentIcon(false), - showInvitationIcon(false) - {} - - bool pixmapOn; - TQPixmap pixmap; - TQColor colFore; - TQColor colBack; - TQColor colNew; - TQColor colUnread; - TQColor colFlag; - TQColor colTodo; - TQColor colCloseToQuota; - - bool showSize; - bool showAttachment; - bool showInvitation; - bool showImportant; - bool showTodo; - bool showSpamHam; - bool showWatchedIgnored; - bool showtqStatus; - bool showSigned; - bool showCrypto; - bool showReceiver; - bool showScore; - - int scoreCol; - int flagCol; - int senderCol; - int receiverCol; - int subCol; - int dateCol; - int sizeCol; - int attachmentCol; - int invitationCol; - int importantCol; - int todoCol; - int spamHamCol; - int watchedIgnoredCol; - int statusCol; - int signedCol; - int cryptoCol; - - bool orderOfArrival; - bool status; - bool showCryptoIcons; - bool showAttachmentIcon; - bool showInvitationIcon; -}; - -//========================================================================== - -class KDE_EXPORT KFolderTreeItem : public KListViewItem -{ - public: - /** Protocol information */ - enum Protocol { - Imap, - Local, - News, - CachedImap, - Search, - NONE - }; - - /** Type information */ - enum Type { - Inbox, - Outbox, - SentMail, - Trash, - Drafts, - Templates, - Root, - Calendar, - Tasks, - Journals, - Contacts, - Notes, - Other - }; - - /** constructs a root-item */ - KFolderTreeItem( KFolderTree *parent, const TQString & label=TQString(), - Protocol protocol=NONE, Type type=Root ); - - /** constructs a child-item */ - KFolderTreeItem( KFolderTreeItem *parent, const TQString & label=TQString(), - Protocol protocol=NONE, Type type=Other, int unread=0, int total=0 ); - - /** compare */ - virtual int compare( TQListViewItem * i, int col, - bool ascending ) const; - - /** set/get the unread-count */ - int unreadCount() { return mUnread; } - virtual void setUnreadCount( int aUnread ); - - /** set/get the total-count */ - int totalCount() { return mTotal; } - virtual void setTotalCount( int aTotal ); - - /** set/get the total-count */ - TQ_INT64 folderSize() { return mSize; } - virtual void setFolderSize( TQ_INT64 aSize ); - - /** set/get the protocol of the item */ - Protocol protocol() const { return mProtocol; } - virtual void setProtocol( Protocol aProtocol ) { mProtocol = aProtocol; } - - /** set/get the type of the item */ - Type type() const { return mType; } - virtual void setType( Type aType ) { mType = aType; } - - /** recursive unread count */ - virtual int countUnreadRecursive(); - - virtual TQ_INT64 recursiveFolderSize() const; - - /** paints the cell */ - virtual void paintCell( TQPainter * p, const TQColorGroup & cg, - int column, int width, int align ); - - /** dnd */ - virtual bool acceptDrag(TQDropEvent* ) const { return true; } - - void setFolderIsCloseToQuota( bool ); - bool folderIsCloseToQuota() const; - - private: - /** returns a sorting key based on the folder's protocol */ - int protocolSortingKey() const; - /** returns a sorting key based on the folder's type */ - int typeSortingKey() const; - - protected: - /** reimplement to use special squeezing algorithm for the folder name */ - virtual TQString squeezeFolderName( const TQString &text, - const TQFontMetrics &fm, - uint width ) const; - - Protocol mProtocol; - Type mType; - int mUnread; - int mTotal; - TQ_INT64 mSize; - bool mFolderIsCloseToQuota; -}; - -//========================================================================== - -class KDE_EXPORT KFolderTree : public KListView -{ - Q_OBJECT - TQ_OBJECT - - public: - KFolderTree( TQWidget *parent, const char *name=0 ); - - /** registers MIMETypes that are handled - @param mimeType the name of the MIMEType - @param outsideOk accept drops of this type even if - the mouse cursor is not on top of an item */ - virtual void addAcceptableDropMimetype( const char *mimeType, bool outsideOk ); - - /** checks if the drag is acceptable */ - virtual bool acceptDrag( TQDropEvent* event ) const; - - /** returns the KPaintInfo */ - KPaintInfo paintInfo() const { return mPaintInfo; } - - /** add/remove unread/total-columns */ - virtual void addUnreadColumn( const TQString & name, int width=70 ); - virtual void removeUnreadColumn(); - virtual void addTotalColumn( const TQString & name, int width=70 ); - virtual void removeTotalColumn(); - virtual void addSizeColumn( const TQString & name, int width=70 ); - virtual void removeSizeColumn(); - - - /** the current index of the unread/total column */ - int unreadIndex() const { return mUnreadIndex; } - int totalIndex() const { return mTotalIndex; } - int sizeIndex() const { return mSizeIndex; } - - /** is the unread/total-column active? */ - bool isUnreadActive() const { return mUnreadIndex >= 0; } - bool isTotalActive() const { return mTotalIndex >= 0; } - bool isSizeActive() const { return mSizeIndex >= 0; } - - /** reimp to set full width of the _first_ column */ - virtual void setFullWidth( bool fullWidth ); - - protected: - /** reimplemented in order to update the frame width in case of a changed - GUI style */ - void styleChange( TQStyle& oldStyle ); - - /** Set the width of the frame to a reasonable value for the current GUI - style */ - void setStyleDependantFrameWidth(); - - virtual void drawContentsOffset( TQPainter * p, int ox, int oy, - int cx, int cy, int cw, int ch ); - - virtual void contentsMousePressEvent( TQMouseEvent *e ); - virtual void contentsMouseReleaseEvent( TQMouseEvent *e ); - - /** for mimetypes */ - TQMemArray<const char*> mAcceptableDropMimetypes; - TQBitArray mAcceptOutside; - - /** shared information */ // ### why isn't it then static? ;-) - KPaintInfo mPaintInfo; - - /** current index of unread/total-column - * -1 is deactivated */ - int mUnreadIndex; - int mTotalIndex; - int mSizeIndex; - - private slots: - /** repaints the complete column (instead of only parts of it as done in - TQListView) if the size has changed */ - void slotSizeChanged( int section, int oldSize, int newSize ); - -}; - -#endif |