summaryrefslogtreecommitdiffstats
path: root/libkdepim/ksubscription.h
diff options
context:
space:
mode:
Diffstat (limited to 'libkdepim/ksubscription.h')
-rw-r--r--libkdepim/ksubscription.h382
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