diff options
Diffstat (limited to 'libkdepim/ksubscription.h')
-rw-r--r-- | libkdepim/ksubscription.h | 382 |
1 files changed, 0 insertions, 382 deletions
diff --git a/libkdepim/ksubscription.h b/libkdepim/ksubscription.h deleted file mode 100644 index c819701d..00000000 --- a/libkdepim/ksubscription.h +++ /dev/null @@ -1,382 +0,0 @@ -/* - This file is part of libtdepim. - - Copyright (C) 2002 Carsten Burghardt <burghardt@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. -*/ - -/** @file -* This file defines a generic subscription widget and some support classes. -*/ - -#ifndef __KSUBSCRIPTION -#define __KSUBSCRIPTION - -#include <tqlistview.h> -#include <tqcheckbox.h> - -#include <kdialogbase.h> -#include <tdepimmacros.h> -#include "kfoldertree.h" - -class KSubscription; - -class KLineEdit; -class TQLayout; -class TQLabel; -class TQGridLayout; -class KAccount; - -//========================================================================== - -class KDE_EXPORT KGroupInfo -{ - public: - enum tqStatus { - unknown, - readOnly, - postingAllowed, - moderated - }; - - KGroupInfo( const TQString &name, const TQString &description = TQString(), - bool newGroup = false, bool subscribed = false, - tqStatus status = unknown, TQString path = TQString() ); - - TQString name, description; - bool newGroup, subscribed; - tqStatus status; - TQString path; - - bool operator== (const KGroupInfo &gi2); - bool operator< (const KGroupInfo &gi2); - -}; - -//========================================================================== - -/** A class representing a single group item (what's that?) */ -class KDE_EXPORT GroupItem : public TQCheckListItem -{ - public: - GroupItem( TQListView *v, const KGroupInfo &gi, KSubscription* browser, - bool isCheckItem = false ); - GroupItem( TQListViewItem *i, const KGroupInfo &gi, KSubscription* browser, - bool isCheckItem = false ); - - /** - * Get/Set the KGroupInfo - */ - KGroupInfo info() { return mInfo; } - void setInfo( KGroupInfo info ); - - /** - * Get/Set the original parent - */ - TQListViewItem* originalParent() { return mOriginalParent; } - void setOriginalParent( TQListViewItem* parent ) { mOriginalParent = parent; } - - /** - * Get/Set the last open state - */ - bool lastOpenState() { return mLastOpenState; } - void setLastOpenState( bool last ) { mLastOpenState = last; } - - /** - * Sets the description from the KGroupInfo - * Reimplement this for special cases - */ - virtual void setDescription(); - - /** - * Get if this is a checkable item - */ - bool isCheckItem() const { return mIsCheckItem; } - - /** - * Get/Set if state changes should be ignored - */ - bool ignoreStateChange() { return mIgnoreStateChange; } - void setIgnoreStateChange( bool ignore ) { mIgnoreStateChange = ignore; } - - /** - * Reimplemented - * Sets the subscribed property (only while items are loaded) - */ - virtual void setOn( bool on ); - - /** - * Reimlemented - * Calls KSubscription::changeItemState if mIgnoreStateChange == false - */ - virtual void stateChange( bool on ); - - /** - * Reimplemented - * Sets items invisible or disabled or even moves them - */ - void setVisible( bool b ); - - /** - * Reimplemented - * Calls TQListViewItem or TQCheckListItem - */ - virtual void paintCell( TQPainter * p, const TQColorGroup & cg, - int column, int width, int align ); - - /** - * Reimplemented - * Calls TQListViewItem or TQCheckListItem - */ - virtual void paintFocus( TQPainter *, const TQColorGroup & cg, - const TQRect & r ); - - /** - * Reimplemented - * Calls TQListViewItem or TQCheckListItem - */ - virtual int width( const TQFontMetrics&, const TQListView*, int column) const; - - /** - * Reimplemented - * Calls TQListViewItem or TQCheckListItem - */ - virtual void setup(); - - /** Reimplemented */ - virtual int rtti () const { return 15689; } - - protected: - KGroupInfo mInfo; - KSubscription* mBrowser; - TQListViewItem* mOriginalParent; - // remember last open state - bool mLastOpenState; - // is this a checkable item - bool mIsCheckItem; - // ignore state changes - bool mIgnoreStateChange; -}; - -//========================================================================== - -/** - * This class provides a generic subscription widget - * The dialog itself has a main listview that holds all items and two listviews that - * show all changes. The user can change the state of the items via checkable items. - * When you construct a new instance you need to provide an account and a caption - * After inserting your items (checkable or not) you need to call slotLoadingComplete() - * You should at least connect slots to the signals okClicked() (to save your changes) - * and user1Clicked() (to reload the list) - * You can hide unwanted checkboxes via the respective hide<checkboxname> methods - * - */ - -class KDE_EXPORT KSubscription : public KDialogBase -{ - Q_OBJECT - TQ_OBJECT - - public: - /** - * The direction of the buttons - */ - enum Direction { - Left, - Right - }; - - KSubscription( TQWidget *parent, const TQString &caption, KAccount* acct, - int buttons = 0, const TQString &user1 = TQString(), - bool descriptionColumn = true ); - - ~KSubscription(); - - /** - * Get/Set the account - */ - KAccount* account() { return mAcct; } - void setAccount( KAccount * acct ) { mAcct = acct; } - - /** - * Access to the treewidget that holds the GroupItems - */ - TQListView* folderTree() { return groupView; } - - /** - * Access to the searchfield - */ - KLineEdit* searchField() { return filterEdit; } - - /** - * The item that should be selected on startup - */ - void setStartItem( const KGroupInfo &info ); - - /** - * Removes the item from the listview - */ - void removeListItem( TQListView *view, const KGroupInfo &gi ); - - /** - * Gets the item from the listview - * Returns 0 if the item can't be found - */ - TQListViewItem* getListItem( TQListView *view, const KGroupInfo &gi ); - - /** - * Is the item in the given listview - */ - bool itemInListView( TQListView *view, const KGroupInfo &gi ); - - /** - * Makes all changes after an item is toggled - * called by the item's stateChange-method - */ - void changeItemState( GroupItem* item, bool on ); - - /** - * Get/Set the direction of button1 - */ - Direction directionButton1() { return mDirButton1; } - void setDirectionButton1( Direction dir ); - - /** - * Get/Set the direction of button2 - */ - Direction directionButton2() { return mDirButton2; } - void setDirectionButton2( Direction dir ); - - /** - * Returns true if items are being constructed - * Call 'slotLoadingComplete' to switch this - */ - bool isLoading() { return mLoading; } - - /** - * Hide 'Disable tree view' checkbox - */ - void hideTreeCheckbox() { noTreeCB->hide(); } - - /** - * Hide 'New Only' checkbox - */ - void hideNewOnlyCheckbox() { newCB->hide(); } - - /** - * Update the item-states (visible, enabled) when a filter - * criteria changed - */ - void filterChanged( TQListViewItem* item = 0, - const TQString & text = TQString() ); - - /** - * The amount of items that are visible and enabled - */ - uint activeItemCount(); - - /** - * Moves all items from toplevel back to their original position - */ - void restoreOriginalParent(); - - /** - * Saves the open states - */ - void saveOpenStates(); - - /** - * Restores the saved open state - */ - void restoreOpenStates(); - - - public slots: - /** - * Call this slot when you have created all items - */ - void slotLoadingComplete(); - - /** - * Changes the current state of the buttons - */ - void slotChangeButtonState( TQListViewItem* ); - - /** - * Buttons are clicked - */ - void slotButton1(); - void slotButton2(); - - /** - * Updates the status-label - */ - void slotUpdateStatusLabel(); - - /** - * The reload-button is pressed - */ - void slotLoadFolders(); - - protected slots: - /** - * Slot for the checkboxes - */ - void slotCBToggled(); - - /** - * Filter text changed - */ - void slotFilterTextChanged( const TQString & text ); - - signals: - /** - * Emitted when the amount of items in the - * groupView changes (e.g. on filtering) - */ - void listChanged(); - - - protected: - // current account - KAccount* mAcct; - - // widgets - TQWidget *page; - TQListView *groupView; - TQListView *subView, *unsubView; - KLineEdit *filterEdit; - TQCheckBox *noTreeCB, *subCB, *newCB; - TQPushButton *arrowBtn1, *arrowBtn2; - TQIconSet pmRight, pmLeft; - TQGridLayout *listL; - TQLabel *leftLabel, *rightLabel; - - // false if all items are loaded - bool mLoading; - - // directions - Direction mDirButton1; - Direction mDirButton2; - - // remember last searchtext - TQString mLastText; - - // remember description column - int mDescrColumn; -}; - -#endif |