• Skip to content
  • Skip to link menu
KDE API Reference
  • KDE API Reference
  • kdepim API Reference
  • KDE Home
  • Contact Us
 

akregator

  • sources
  • kde-4.14
  • kdepim
  • akregator
  • src
abstractselectioncontroller.h
Go to the documentation of this file.
1 /*
2  This file is part of Akregator.
3 
4  Copyright (C) 2007 Frank Osterfeld <osterfeld@kde.org>
5 
6  This program is free software; you can redistribute it and/or modify
7  it under the terms of the GNU General Public License as published by
8  the Free Software Foundation; either version 2 of the License, or
9  (at your option) any later version.
10 
11  This program is distributed in the hope that it will be useful,
12  but WITHOUT ANY WARRANTY; without even the implied warranty of
13  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14  GNU General Public License for more details.
15 
16  You should have received a copy of the GNU General Public License
17  along with this program; if not, write to the Free Software
18  Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
19 
20  As a special exception, permission is given to link this program
21  with any edition of Qt, and distribute the resulting executable,
22  without including the source code for Qt in the source distribution.
23 */
24 #ifndef AKREGATOR_ABSTRACTSELECTIONCONTROLLER_H
25 #define AKREGATOR_ABSTRACTSELECTIONCONTROLLER_H
26 
27 #include <QObject>
28 
29 #ifndef Q_MOC_RUN
30 #include <boost/shared_ptr.hpp>
31 #endif
32 #include <vector>
33 
34 class QAbstractItemView;
35 class QItemSelectionModel;
36 class QPoint;
37 class QModelIndex;
38 
39 namespace Akregator {
40 
41 class Article;
42 class ArticleModel;
43 class FeedList;
44 class FolderExpansionHandler;
45 class SubscriptionListModel;
46 class TreeNode;
47 
48 namespace Filters {
49  class AbstractMatcher;
50 }
51 
52 class ArticleLister
53 {
54 public:
55 
56  virtual ~ArticleLister() {}
57 
58  virtual void setArticleModel( Akregator::ArticleModel* model ) = 0;
59 
60  virtual QItemSelectionModel* articleSelectionModel() const = 0;
61 
62  virtual void setIsAggregation( bool isAggregation ) = 0;
63 
64  virtual void setFilters( const std::vector<boost::shared_ptr<const Filters::AbstractMatcher> >& ) = 0;
65 
66  virtual void forceFilterUpdate() = 0;
67 
68  virtual QPoint scrollBarPositions() const = 0;
69 
70  virtual void setScrollBarPositions( const QPoint& p ) = 0;
71 
72  virtual const QAbstractItemView* itemView() const = 0;
73 
74  virtual QAbstractItemView* itemView() = 0;
75 };
76 
77 class SingleArticleDisplay
78 {
79 public:
80  virtual ~SingleArticleDisplay() {}
81 
82  virtual void showArticle( const Akregator::Article & article ) = 0;
83 };
84 
85 class SubscriptionLister
86 {
87 public:
88  virtual ~SubscriptionLister() {}
89 
90  virtual void setSubscriptionListModel( Akregator::SubscriptionListModel* model ) = 0;
91  virtual QItemSelectionModel* subscriptionSelectionModel() const = 0;
92 };
93 
94 class AbstractSelectionController : public QObject
95 {
96  Q_OBJECT
97 
98 public:
99  explicit AbstractSelectionController( QObject* parent = 0 );
100  virtual ~AbstractSelectionController();
101 
102  virtual void setFeedList( const boost::shared_ptr<FeedList>& list ) = 0;
103 
104  virtual void setFeedSelector( QAbstractItemView* feedSelector ) = 0;
105 
106  virtual void setArticleLister( Akregator::ArticleLister* lister ) = 0;
107 
108  virtual void setFolderExpansionHandler( Akregator::FolderExpansionHandler* handler ) = 0;
109 
110  virtual void setSingleArticleDisplay( Akregator::SingleArticleDisplay* display ) = 0;
111 
112  virtual Akregator::Article currentArticle() const = 0;
113 
114  virtual QModelIndex currentArticleIndex() const = 0;
115 
116  virtual QList<Akregator::Article> selectedArticles() const = 0;
117 
118  virtual Akregator::TreeNode* selectedSubscription() const = 0;
119 
120 public Q_SLOTS:
121 
122  virtual void setFilters( const std::vector<boost::shared_ptr<const Akregator::Filters::AbstractMatcher> >& ) = 0;
123 
124  virtual void forceFilterUpdate() = 0;
125 
126 Q_SIGNALS:
127  void currentSubscriptionChanged( Akregator::TreeNode* node );
128 
129  void currentArticleChanged( const Akregator::Article& );
130 
131  void articleDoubleClicked( const Akregator::Article& );
132 };
133 
134 } // namespace Akregator
135 
136 #endif // AKREGATOR_ABSTRACTSELECTIONCONTROLLER_H
QModelIndex
Akregator::SingleArticleDisplay::showArticle
virtual void showArticle(const Akregator::Article &article)=0
Akregator::AbstractSelectionController::currentArticle
virtual Akregator::Article currentArticle() const =0
Akregator::AbstractSelectionController::currentArticleChanged
void currentArticleChanged(const Akregator::Article &)
QAbstractItemView
Akregator::SingleArticleDisplay
Definition: abstractselectioncontroller.h:77
Akregator::Filters::AbstractMatcher
Abstract base class for matchers, a matcher just takes an article and checks whether the article matc...
Definition: articlematcher.h:50
Akregator::ArticleLister::forceFilterUpdate
virtual void forceFilterUpdate()=0
Akregator::SubscriptionLister::~SubscriptionLister
virtual ~SubscriptionLister()
Definition: abstractselectioncontroller.h:88
Akregator::AbstractSelectionController::currentSubscriptionChanged
void currentSubscriptionChanged(Akregator::TreeNode *node)
Akregator::FolderExpansionHandler
Definition: subscriptionlistmodel.h:135
Akregator::ArticleLister::articleSelectionModel
virtual QItemSelectionModel * articleSelectionModel() const =0
Akregator::SubscriptionListModel
Definition: subscriptionlistmodel.h:42
QPoint
Akregator::AbstractSelectionController::selectedArticles
virtual QList< Akregator::Article > selectedArticles() const =0
Akregator::ArticleLister::~ArticleLister
virtual ~ArticleLister()
Definition: abstractselectioncontroller.h:56
Akregator::AbstractSelectionController::articleDoubleClicked
void articleDoubleClicked(const Akregator::Article &)
Akregator::AbstractSelectionController
Definition: abstractselectioncontroller.h:94
Akregator::ArticleLister::scrollBarPositions
virtual QPoint scrollBarPositions() const =0
Akregator::AbstractSelectionController::setFeedList
virtual void setFeedList(const boost::shared_ptr< FeedList > &list)=0
QObject
Akregator::ArticleLister::setIsAggregation
virtual void setIsAggregation(bool isAggregation)=0
Akregator::AbstractSelectionController::setFeedSelector
virtual void setFeedSelector(QAbstractItemView *feedSelector)=0
QList< Akregator::Article >
Akregator::ArticleLister
Definition: abstractselectioncontroller.h:52
Akregator::AbstractSelectionController::~AbstractSelectionController
virtual ~AbstractSelectionController()
Definition: abstractselectioncontroller.cpp:31
Akregator::ArticleLister::setArticleModel
virtual void setArticleModel(Akregator::ArticleModel *model)=0
Akregator::AbstractSelectionController::setArticleLister
virtual void setArticleLister(Akregator::ArticleLister *lister)=0
Akregator::AbstractSelectionController::setSingleArticleDisplay
virtual void setSingleArticleDisplay(Akregator::SingleArticleDisplay *display)=0
Akregator::AbstractSelectionController::currentArticleIndex
virtual QModelIndex currentArticleIndex() const =0
Akregator::Article
A proxy class for Syndication::ItemPtr with some additional methods to assist sorting.
Definition: article.h:63
Akregator::SubscriptionLister::setSubscriptionListModel
virtual void setSubscriptionListModel(Akregator::SubscriptionListModel *model)=0
Akregator::SingleArticleDisplay::~SingleArticleDisplay
virtual ~SingleArticleDisplay()
Definition: abstractselectioncontroller.h:80
Akregator::AbstractSelectionController::setFolderExpansionHandler
virtual void setFolderExpansionHandler(Akregator::FolderExpansionHandler *handler)=0
Akregator::AbstractSelectionController::forceFilterUpdate
virtual void forceFilterUpdate()=0
QItemSelectionModel
QObject::parent
QObject * parent() const
Akregator::ArticleLister::setScrollBarPositions
virtual void setScrollBarPositions(const QPoint &p)=0
Akregator::AbstractSelectionController::setFilters
virtual void setFilters(const std::vector< boost::shared_ptr< const Akregator::Filters::AbstractMatcher > > &)=0
Akregator::TreeNode
Abstract base class for all kind of elements in the feed tree, like feeds and feed groups (and search...
Definition: treenode.h:58
Akregator::SubscriptionLister::subscriptionSelectionModel
virtual QItemSelectionModel * subscriptionSelectionModel() const =0
Akregator::SubscriptionLister
Definition: abstractselectioncontroller.h:85
Akregator::ArticleLister::itemView
virtual const QAbstractItemView * itemView() const =0
Akregator::AbstractSelectionController::selectedSubscription
virtual Akregator::TreeNode * selectedSubscription() const =0
Akregator::ArticleLister::setFilters
virtual void setFilters(const std::vector< boost::shared_ptr< const Filters::AbstractMatcher > > &)=0
Akregator::AbstractSelectionController::AbstractSelectionController
AbstractSelectionController(QObject *parent=0)
Definition: abstractselectioncontroller.cpp:27
Akregator::ArticleModel
Definition: articlemodel.h:46
This file is part of the KDE documentation.
Documentation copyright © 1996-2020 The KDE developers.
Generated on Mon Jun 22 2020 13:34:00 by doxygen 1.8.7 written by Dimitri van Heesch, © 1997-2006

KDE's Doxygen guidelines are available online.

akregator

Skip menu "akregator"
  • Main Page
  • Namespace List
  • Namespace Members
  • Alphabetical List
  • Class List
  • Class Hierarchy
  • Class Members
  • File List
  • File Members

kdepim API Reference

Skip menu "kdepim API Reference"
  • akonadi_next
  • akregator
  • blogilo
  • calendarsupport
  • console
  •   kabcclient
  •   konsolekalendar
  • kaddressbook
  • kalarm
  •   lib
  • kdgantt2
  • kjots
  • kleopatra
  • kmail
  • knode
  • knotes
  • kontact
  • korgac
  • korganizer
  • ktimetracker
  • libkdepim
  • libkleo
  • libkpgp
  • mailcommon
  • messagelist
  • messageviewer
  • pimprint

Search



Report problems with this website to our bug tracking system.
Contact the specific authors with questions and comments about the page contents.

KDE® and the K Desktop Environment® logo are registered trademarks of KDE e.V. | Legal