akregator/src
articleviewer.h00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026 #ifndef ARTICLEVIEWER_H
00027 #define ARTICLEVIEWER_H
00028
00029 #include <klocale.h>
00030
00031 #include <qcolor.h>
00032 #include <qfont.h>
00033
00034 #include "article.h"
00035 #include "articlefilter.h"
00036 #include "viewer.h"
00037
00038 class QKeyEvent;
00039
00040 namespace Akregator
00041 {
00042 class Feed;
00043 class Folder;
00044 class TreeNode;
00045
00048 class ArticleViewer : public Viewer
00049 {
00050 Q_OBJECT
00051 public:
00053 ArticleViewer(QWidget* parent, const char* name);
00054 virtual ~ArticleViewer();
00055
00056 virtual bool openURL(const KURL &url);
00057
00059 void reload();
00060
00061 void displayAboutPage();
00062
00063 public slots:
00064
00065
00066
00067
00070 void slotShowArticle(const Article& article);
00071
00074 void slotShowNode(TreeNode* node);
00075
00079 void slotSetFilter(const Akregator::Filters::ArticleMatcher& textFilter, const Akregator::Filters::ArticleMatcher& statusFilter);
00080
00082 void slotUpdateCombinedView();
00083
00085 void slotClear();
00086
00087 void slotShowSummary(TreeNode *node);
00088
00089 virtual void slotPaletteOrFontChanged();
00090
00091 protected slots:
00092
00093 void slotArticlesUpdated(TreeNode* node, const QValueList<Article>& list);
00094 void slotArticlesAdded(TreeNode* node, const QValueList<Article>& list);
00095 void slotArticlesRemoved(TreeNode* node, const QValueList<Article>& list);
00096
00097 protected:
00098
00099 virtual void keyPressEvent(QKeyEvent* e);
00100 virtual void urlSelected (const QString &url, int button, int state, const QString &_target, KParts::URLArgs args);
00101
00102 public:
00103
00104
00105 friend class ShowNodeSummaryVisitor;
00106 class ShowSummaryVisitor;
00107 ShowSummaryVisitor* m_showSummaryVisitor;
00108
00111 void renderContent(const QString& body);
00112
00117 QString formatArticleNormalMode(Feed* feed, const Article& article);
00118
00123 QString formatArticleCombinedMode(Feed* feed, const Article& article);
00124
00127 void beginWriting();
00128
00130 void endWriting();
00131
00133 void generateNormalModeCSS();
00135 void generateCombinedModeCSS();
00136 void connectToNode(TreeNode* node);
00137 void disconnectFromNode(TreeNode* node);
00138
00139 QString m_normalModeCSS;
00140 QString m_combinedModeCSS;
00141 QString m_htmlFooter;
00142 QString m_currentText;
00143 KURL m_imageDir;
00144 TreeNode* m_node;
00145 Article m_article;
00146 KURL m_link;
00147 Akregator::Filters::ArticleMatcher m_textFilter;
00148 Akregator::Filters::ArticleMatcher m_statusFilter;
00149 enum ViewMode { NormalView, CombinedView, SummaryView };
00150 ViewMode m_viewMode;
00151 };
00152 }
00153
00154 #endif // ARTICLEVIEWER_H
|