akregator/src

actionmanagerimpl.h

00001 /*
00002     This file is part of Akregator.
00003 
00004     Copyright (C) 2005 Frank Osterfeld <frank.osterfeld at kdemail.net>
00005 
00006     This program is free software; you can redistribute it and/or modify
00007     it under the terms of the GNU General Public License as published by
00008     the Free Software Foundation; either version 2 of the License, or
00009     (at your option) any later version.
00010 
00011     This program is distributed in the hope that it will be useful,
00012     but WITHOUT ANY WARRANTY; without even the implied warranty of
00013     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
00014     GNU General Public License for more details.
00015 
00016     You should have received a copy of the GNU General Public License
00017     along with this program; if not, write to the Free Software
00018     Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
00019 
00020     As a special exception, permission is given to link this program
00021     with any edition of Qt, and distribute the resulting executable,
00022     without including the source code for Qt in the source distribution.
00023 */
00024 
00025 #ifndef AKREGATOR_ACTIONMANAGERIMPL_H
00026 #define AKREGATOR_ACTIONMANAGERIMPL_H
00027 
00028 #include "actionmanager.h"
00029 
00030 class QStringList;
00031 class QWidget;
00032 class KAction;
00033 class KActionMenu;
00034 class KActionCollection;
00035 
00036 namespace Akregator {
00037 
00038 class ArticleListView;
00039 class ArticleViewer;
00040 class ListTabWidget;
00041 class Part;
00042 class TrayIcon;
00043 class Tag;
00044 class TagSet;
00045 class TreeNode;
00046 class View;
00047 class TabWidget;
00048 
00050 class ActionManagerImpl : public ActionManager
00051 {
00052     Q_OBJECT
00053 
00054     public:
00055         ActionManagerImpl(Part* part, QObject* parent=0, const char* name=0);
00056         virtual ~ActionManagerImpl();
00057 
00058         virtual KAction* action(const char* name, const char* classname=0);
00059         virtual QWidget* container(const char* name);
00060 
00061         void initView(View* view);
00062         void initTrayIcon(TrayIcon* trayIcon);
00063         void initArticleViewer(ArticleViewer* articleViewer);
00064         void initArticleListView(ArticleListView* articleList);
00065         void initListTabWidget(ListTabWidget* listTabWidget);
00066         void initTabWidget(TabWidget* tabWidget);
00067         void setTagSet(TagSet* tagSet);
00068 
00069     public slots:
00070 
00073         void slotUpdateTagActions(bool enabled, const QStringList& tagIds);
00074         
00075         void slotNodeSelected(TreeNode* node);
00076         
00077         void slotTagAdded(const Tag& tag);
00078         void slotTagRemoved(const Tag& tag);
00079         
00080     protected:
00081     
00082         KActionCollection* actionCollection();
00083         
00084     private:
00085 
00086         void initPart();
00087 
00088         friend class NodeSelectVisitor;
00089         class NodeSelectVisitor;
00090         
00091         class ActionManagerImplPrivate;
00092         ActionManagerImplPrivate* d;
00093 };
00094 
00095 } // namespace Akregator
00096 
00097 #endif // AKREGATOR_ACTIONMANAGERIMPL_H
KDE Home | KDE Accessibility Home | Description of Access Keys