kaddressbook Library API Documentation

viewmanager.h

00001 /*
00002     This file is part of KAddressBook.
00003     Copyright (c) 2002 Mike Pilone <mpilone@slac.com>
00004 
00005     This program is free software; you can redistribute it and/or modify
00006     it under the terms of the GNU General Public License as published by
00007     the Free Software Foundation; either version 2 of the License, or
00008     (at your option) any later version.
00009 
00010     This program is distributed in the hope that it will be useful,
00011     but WITHOUT ANY WARRANTY; without even the implied warranty of
00012     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
00013     GNU General Public License for more details.
00014 
00015     You should have received a copy of the GNU General Public License
00016     along with this program; if not, write to the Free Software
00017     Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.
00018 
00019     As a special exception, permission is given to link this program
00020     with any edition of Qt, and distribute the resulting executable,
00021     without including the source code for Qt in the source distribution.
00022 */
00023 
00024 #ifndef VIEWMANAGER_H
00025 #define VIEWMANAGER_H
00026 
00027 #include <qdict.h>
00028 #include <qwidget.h>
00029 #include <kaddressbookview.h>
00030 
00031 class QDropEvent;
00032 class QWidgetStack;
00033 
00034 class KAction;
00035 class KSelectAction;
00036 
00037 class FilterSelectionWidget;
00038 
00039 namespace KAB { class Core; }
00040 namespace KABC { class AddressBook; }
00041 
00050 class ViewManager : public QWidget
00051 {
00052   Q_OBJECT
00053 
00054   public:
00055     ViewManager( KAB::Core *core, QWidget *parent, const char *name = 0 );
00056     ~ViewManager();
00057 
00058     void restoreSettings();
00059     void saveSettings();
00060 
00061     void unloadViews();
00062 
00063     QStringList selectedUids() const;
00064     QStringList selectedEmails() const;
00065     KABC::Addressee::List selectedAddressees() const;
00066 
00067     void setFilterSelectionWidget( FilterSelectionWidget *wdg );
00068 
00069     KABC::Field *currentSortField() const;
00070 
00071   public slots:
00072     void setSelected( const QString &uid = QString::null, bool selected = true );
00073 
00074     void refreshView( const QString &uid = QString::null );
00075     void editView();
00076     void deleteView();
00077     void addView();
00078 
00079   protected slots:
00085     void dropped( QDropEvent* );
00086 
00092     void startDrag();
00093 
00094   signals:
00098     void selected( const QString &uid );
00099 
00103     void executed( const QString &uid );
00104 
00108     void modified();
00109 
00113     void urlDropped( const KURL& );
00114 
00118     void sortFieldChanged();
00119 
00120   private slots:
00121     void setActiveView( const QString &name );
00122     void setActiveFilter( int index );
00123     void configureFilters();
00124 
00125   private:
00126     void createViewFactories();
00127     QStringList filterNames() const;    
00128     int filterPosition( const QString &name ) const;
00129     QStringList viewNames() const;
00130     int viewPosition( const QString &name ) const;
00131     void initActions();
00132     void initGUI();
00133 
00134     KAB::Core *mCore;
00135 
00136     Filter mCurrentFilter;
00137     Filter::List mFilterList;
00138 
00139     QDict<KAddressBookView> mViewDict;
00140     QDict<ViewFactory> mViewFactoryDict;
00141     QStringList mViewNameList;
00142 
00143     QWidgetStack *mViewWidgetStack;
00144     KAddressBookView *mActiveView;
00145 
00146     KAction *mActionDeleteView;
00147     KSelectAction *mActionSelectView;
00148 
00149     FilterSelectionWidget *mFilterSelectionWidget;
00150 };
00151 
00152 #endif
KDE Logo
This file is part of the documentation for kaddressbook Library Version 3.2.2.
Documentation copyright © 1996-2004 the KDE developers.
Generated on Sat May 1 11:38:53 2004 by doxygen 1.2.15 written by Dimitri van Heesch, © 1997-2003