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

knode

  • sources
  • kde-4.12
  • kdepim
  • knode
knmainwidget.h
Go to the documentation of this file.
1 /*
2  KNode, the KDE newsreader
3  Copyright (c) 2003 Zack Rusin <zack@kde.org>
4  Copyright (c) 2004-2006 Volker Krause <vkrause@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  You should have received a copy of the GNU General Public License
11  along with this program; if not, write to the Free Software Foundation,
12  Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, US
13 */
14 #ifndef KNMAINWIDGET_H
15 #define KNMAINWIDGET_H
16 
17 #include "knarticle.h"
18 #include "knode_export.h"
19 
20 #include "resource.h"
21 #include <kdialog.h>
22 #include <kvbox.h>
23 
24 #include <QList>
25 
26 
27 class Q3ListViewItem;
28 class QLineEdit;
29 class QSplitter;
30 class QTreeWidget;
31 class QTreeWidgetItem;
32 class K3ListView;
33 class KAction;
34 class KToggleAction;
35 class KSelectAction;
36 class KSqueezedTextLabel;
37 class KLineEdit;
38 class KToolBar;
39 class KXMLGUIClient;
40 class KNHeaderView;
41 class KNCollectionView;
42 class KNConfigManager;
43 class KNAccountManager;
44 class KNGroupManager;
45 class KNFolderManager;
46 class KNArticleManager;
47 class KNArticleFactory;
48 class KNFilterManager;
49 class KNScoringManager;
50 class KNFilterSelectAction;
51 namespace KNode {
52  class ArticleWidget;
53 }
54 class KActionCollection;
55 
57 class KNODE_EXPORT KNMainWidget : public KVBox
58 {
59  Q_OBJECT
60 public:
61  KNMainWidget( KXMLGUIClient *client, QWidget* parent );
62  ~KNMainWidget();
63 
65  bool queryClose();
66  void prepareShutdown();
67 
68  //GUI
69  void setStatusMsg(const QString& = QString(), int id=SB_MAIN);
70  void setStatusHelpMsg(const QString& text);
71  void updateCaption();
72  void disableAccels(bool b=true);
74  void secureProcessEvents();
75 
77  virtual QSize sizeHint() const;
78 
80  void openURL(const KUrl &url);
81  void openURL(const QString &url);
82 
84  void configChanged();
85 
87  KNCollectionView* collectionView()const { return c_olView; }
89  KNHeaderView* headerView()const { return h_drView; }
91  KNode::ArticleWidget* articleViewer() const { return mArticleViewer; }
92  KSqueezedTextLabel* statusBarLabelGroup() const { return s_tatusGroup; }
93  KSqueezedTextLabel* statusBarLabelFilter() const { return s_tatusFilter; }
94  public slots: //The dcop interface
95  // Implementation of KNodeIface
96  /* Navigation */
98  Q_SCRIPTABLE void nextArticle();
100  Q_SCRIPTABLE void previousArticle();
102  Q_SCRIPTABLE void nextUnreadArticle();
104  Q_SCRIPTABLE void nextUnreadThread();
106  Q_SCRIPTABLE void nextGroup();
108  Q_SCRIPTABLE void previousGroup();
109 
110  /* Group options */
112  Q_SCRIPTABLE void postArticle();
114  Q_SCRIPTABLE void fetchHeadersInCurrentGroup();
116  Q_SCRIPTABLE void expireArticlesInCurrentGroup();
118  Q_SCRIPTABLE void markAllAsRead();
120  Q_SCRIPTABLE void markAllAsUnread();
121 
122  /* Header view */
124  Q_SCRIPTABLE void markAsRead();
126  Q_SCRIPTABLE void markAsUnread();
128  Q_SCRIPTABLE void markThreadAsRead();
130  Q_SCRIPTABLE void markThreadAsUnread();
131 
132  /* Articles */
133 
135  Q_SCRIPTABLE void sendPendingMessages();
137  Q_SCRIPTABLE void deleteArticle();
139  Q_SCRIPTABLE void sendNow();
141  Q_SCRIPTABLE void editArticle();
143  Q_SCRIPTABLE void fetchHeaders();
145  Q_SCRIPTABLE void expireArticles();
146 
147  /* Kontact integration */
149  Q_SCRIPTABLE bool handleCommandLine();
150 
151  //end dcop interface
152 signals:
153  void signalCaptionChangeRequest( const QString& );
154 
155 protected:
156 
157  KActionCollection* actionCollection() const;
161  QMenu * popupMenu( const QString &name ) const;
162 
163  void initActions();
164  void initStatusBar();
165 
167  bool firstStart();
168 
169  void readOptions();
170  void saveOptions();
171 
172  bool requestShutdown();
173 
175  virtual void fontChange( const QFont & );
176  virtual void paletteChange ( const QPalette & );
177 
178  bool eventFilter(QObject *, QEvent *);
179 
180  // convenience methods...
181  void getSelectedArticles( KNArticle::List &l );
182  void getSelectedArticles( KNRemoteArticle::List &l );
183  void getSelectedThreads( KNRemoteArticle::List &l );
184  void getSelectedArticles( KNLocalArticle::List &l );
185  void closeCurrentThread();
186 
187  //GUI
188  //KAccel *a_ccel;
189  KNode::ArticleWidget *mArticleViewer;
190  KNCollectionView *c_olView;
191  KNHeaderView *h_drView;
192  bool b_lockui;
193  KToolBar *q_uicksearch;
194  QLineEdit *s_earchLineEdit;
195 
196  //Core
197  KNConfigManager *c_fgManager;
198  KNAccountManager *a_ccManager;
199  KNGroupManager *g_rpManager;
200  KNArticleManager *a_rtManager;
201  KNArticleFactory *a_rtFactory;
202  KNFolderManager *f_olManager;
203  KNFilterManager *f_ilManager;
204  KNScoringManager *s_coreManager;
205 
206 protected slots:
207  //listview slots
208  void slotArticleSelected(Q3ListViewItem*);
209  void slotArticleSelectionChanged();
211  void slotCollectionSelected();
213  void slotCollectionRenamed( QTreeWidgetItem *i );
214  void slotArticleRMB(K3ListView*, Q3ListViewItem *i, const QPoint &p);
216  void slotCollectionRMB( QTreeWidgetItem *i, const QPoint &pos );
218  void slotOpenArticle(Q3ListViewItem *item);
219  void slotHdrViewSortingChanged(int i);
220 
221  //network slots
222  void slotNetworkActive(bool b);
223 
224  //---------------------------------- <Actions> ----------------------------------
225 
226 protected:
227 
228  //navigation
229  KAction *a_ctNavNextArt,
230  *a_ctNavPrevArt,
231  *a_ctNavNextUnreadArt,
232  *a_ctNavNextUnreadThread,
233  *a_ctNavNextGroup,
234  *a_ctNavPrevGroup,
235  *a_ctNavReadThrough;
236 
237  //collection-view - accounts
238  KAction *a_ctAccProperties,
239  *a_ctAccRename,
240  *a_ctAccSubscribe,
241  *a_ctAccExpireAll,
242  *a_ctAccGetNewHdrs,
243  *a_ctAccGetNewHdrsAll,
244  *a_ctAccDelete,
245  *a_ctAccPostNewArticle;
246 
247  //collection-view - groups
248  KAction *a_ctGrpProperties,
249  *a_ctGrpRename,
250  *a_ctGrpGetNewHdrs,
251  *a_ctGrpExpire,
252  *a_ctGrpReorganize,
253  *a_ctGrpUnsubscribe,
254  *a_ctGrpSetAllRead,
255  *a_ctGrpSetAllUnread,
256  *a_ctGrpSetUnread;
257 
258  //collection-view - folder
259  KAction *a_ctFolNew,
260  *a_ctFolNewChild,
261  *a_ctFolDelete,
262  *a_ctFolRename,
263  *a_ctFolCompact,
264  *a_ctFolCompactAll,
265  *a_ctFolEmpty,
266  *a_ctFolMboxImport,
267  *a_ctFolMboxExport;
268 
269  //header-view - list-handling
270  KSelectAction *a_ctArtSortHeaders;
271  KNFilterSelectAction *a_ctArtFilter;
272  KAction *a_ctArtSortHeadersKeyb,
273  *a_ctArtFilterKeyb,
274  *a_ctArtSearch,
275  *a_ctArtRefreshList,
276  *a_ctArtCollapseAll,
277  *a_ctArtExpandAll,
278  *a_ctArtToggleThread;
279  KToggleAction *a_ctArtToggleShowThreads;
280 
281  //header-view - remote articles
282  KAction *a_ctArtSetArtRead,
283  *a_ctArtSetArtUnread,
284  *a_ctArtSetThreadRead,
285  *a_ctArtSetThreadUnread,
286  *a_ctArtOpenNewWindow;
287 
288  // scoring
289  KAction *a_ctScoresEdit,
290  *a_ctReScore,
291  *a_ctScoreLower,
292  *a_ctScoreRaise,
293  *a_ctArtToggleIgnored,
294  *a_ctArtToggleWatched;
295 
296  //header-view local articles
297  KAction *a_ctArtSendOutbox,
298  *a_ctArtDelete,
299  *a_ctArtSendNow,
300  *a_ctArtEdit;
301 
302  //network
303  KAction *a_ctNetCancel;
304 
305  KAction *a_ctFetchArticleWithID;
306 
307  // settings menu
308  KToggleAction *a_ctToggleQuickSearch;
309 
310 protected slots:
311  void slotNavNextUnreadArt();
312  void slotNavNextUnreadThread();
313  void slotNavReadThrough();
314 
315  void slotAccProperties();
316  void slotAccRename();
317  void slotAccSubscribe();
318  void slotAccExpireAll();
319  void slotAccGetNewHdrs();
320  void slotAccGetNewHdrsAll();
321  void slotAccDelete();
322  void slotAccPostNewArticle();
323 
324  void slotGrpProperties();
325  void slotGrpRename();
326  void slotGrpGetNewHdrs();
327  void slotGrpExpire();
328  void slotGrpReorganize();
329  void slotGrpUnsubscribe();
330  void slotGrpSetAllRead();
331  void slotGrpSetAllUnread();
332  void slotGrpSetUnread();
333 
334  void slotFolNew();
335  void slotFolNewChild();
336  void slotFolDelete();
337  void slotFolRename();
338  void slotFolCompact();
339  void slotFolCompactAll();
340  void slotFolEmpty();
341  void slotFolMBoxImport();
342  void slotFolMBoxExport();
343 
344  void slotArtSortHeaders(int i);
345  void slotArtSortHeadersKeyb();
346  void slotArtSearch();
347  void slotArtRefreshList();
348  void slotArtCollapseAll();
349  void slotArtExpandAll();
350  void slotArtToggleThread();
351  void slotArtToggleShowThreads();
352 
353  void slotArtSetArtRead();
354  void slotArtSetArtUnread();
355  void slotArtSetThreadRead();
356  void slotArtSetThreadUnread();
357 
358  void slotScoreEdit();
359  void slotReScore();
360  void slotScoreLower();
361  void slotScoreRaise();
362  void slotArtToggleIgnored();
363  void slotArtToggleWatched();
364 
365  void slotArtOpenNewWindow();
366  void slotArtSendOutbox();
367  void slotArtDelete();
368  void slotArtSendNow();
369  void slotArtEdit();
370 
371  void slotNetCancel();
372 
373  void slotFetchArticleWithID();
374 
375  void slotToggleQuickSearch();
376  void slotSettings();
377 
378  //--------------------------- </Actions> -----------------------------
379 
380 private:
381  KSqueezedTextLabel *s_tatusGroup; // widget used in the statusBar() for the group status
382  KSqueezedTextLabel *s_tatusFilter;
383  KXMLGUIClient *m_GUIClient;
384  QSplitter *mPrimarySplitter, *mSecondSplitter;
385 };
386 
387 
388 namespace KNode {
389 
391 class FetchArticleIdDlg : public KDialog
392 {
393  Q_OBJECT
394 public:
395  explicit FetchArticleIdDlg( QWidget *parent );
396  QString messageId() const;
397 
398 protected slots:
399  void slotTextChanged(const QString & );
400 protected:
401  KLineEdit *edit;
402 };
403 
404 }
405 
406 #endif
KNMainWidget::f_olManager
KNFolderManager * f_olManager
Definition: knmainwidget.h:202
KNMainWidget::a_ctArtToggleShowThreads
KToggleAction * a_ctArtToggleShowThreads
Definition: knmainwidget.h:279
KVBox
KNHeaderView
Header view, displays the article listing of the currently selected news group or folder...
Definition: headerview.h:130
KNMainWidget::b_lockui
bool b_lockui
Definition: knmainwidget.h:192
KNFilterManager
Filter manager.
Definition: knfiltermanager.h:55
KNMainWidget::a_ctGrpUnsubscribe
KAction * a_ctGrpUnsubscribe
Definition: knmainwidget.h:248
KNMainWidget::c_fgManager
KNConfigManager * c_fgManager
Definition: knmainwidget.h:197
QTreeWidget
KNMainWidget::f_ilManager
KNFilterManager * f_ilManager
Definition: knmainwidget.h:203
text
virtual QByteArray text(quint32 serialNumber) const =0
QWidget
KNArticleFactory
Article factory, responsible for creating and sending news articles.
Definition: knarticlefactory.h:35
KNMainWidget::collectionView
KNCollectionView * collectionView() const
Returns the folder tree widget.
Definition: knmainwidget.h:87
KDialog
KNMainWidget::a_rtManager
KNArticleManager * a_rtManager
Definition: knmainwidget.h:200
KNMainWidget::a_ctArtSetThreadUnread
KAction * a_ctArtSetThreadUnread
Definition: knmainwidget.h:282
QObject
KNMainWidget
This is the central part of the KNode GUI.
Definition: knmainwidget.h:57
KNMainWidget::articleViewer
KNode::ArticleWidget * articleViewer() const
Returns the article viewer.
Definition: knmainwidget.h:91
SB_MAIN
#define SB_MAIN
Definition: resource.h:26
KNMainWidget::a_rtFactory
KNArticleFactory * a_rtFactory
Definition: knmainwidget.h:201
knode_export.h
KNMainWidget::h_drView
KNHeaderView * h_drView
Definition: knmainwidget.h:191
KNMainWidget::q_uicksearch
KToolBar * q_uicksearch
Definition: knmainwidget.h:193
KNMainWidget::a_ctToggleQuickSearch
KToggleAction * a_ctToggleQuickSearch
Definition: knmainwidget.h:308
KNMainWidget::a_ctNetCancel
KAction * a_ctNetCancel
Definition: knmainwidget.h:303
KNMainWidget::g_rpManager
KNGroupManager * g_rpManager
Definition: knmainwidget.h:199
KNode::FetchArticleIdDlg
Dialog to request a message ID.
Definition: knmainwidget.h:391
KNMainWidget::a_ctFetchArticleWithID
KAction * a_ctFetchArticleWithID
Definition: knmainwidget.h:305
KNMainWidget::c_olView
KNCollectionView * c_olView
Definition: knmainwidget.h:190
KNMainWidget::a_ctAccSubscribe
KAction * a_ctAccSubscribe
Definition: knmainwidget.h:238
KNMainWidget::a_ctArtToggleThread
KAction * a_ctArtToggleThread
Definition: knmainwidget.h:272
KNScoringManager
Scoring manager.
Definition: knscoring.h:62
KNMainWidget::statusBarLabelGroup
KSqueezedTextLabel * statusBarLabelGroup() const
Definition: knmainwidget.h:92
KNCollectionView
The group/folder tree.
Definition: kncollectionview.h:30
resource.h
KNFolderManager
Folder manager.
Definition: knfoldermanager.h:28
KNMainWidget::mArticleViewer
KNode::ArticleWidget * mArticleViewer
Definition: knmainwidget.h:189
K3ListView
KNode::FetchArticleIdDlg::slotTextChanged
void slotTextChanged(const QString &)
Definition: knmainwidget.cpp:1967
Q3ListViewItem
QTreeWidgetItem
KNMainWidget::statusBarLabelFilter
KSqueezedTextLabel * statusBarLabelFilter() const
Definition: knmainwidget.h:93
KNMainWidget::a_ctNavReadThrough
KAction * a_ctNavReadThrough
Definition: knmainwidget.h:229
KNMainWidget::s_earchLineEdit
QLineEdit * s_earchLineEdit
Definition: knmainwidget.h:194
KNode::ArticleWidget
Widget to display a news article.
Definition: articlewidget.h:47
QMenu
KLineEdit
KNArticleManager
Article manager.
Definition: knarticlemanager.h:38
KNODE_EXPORT
#define KNODE_EXPORT
Definition: knode_export.h:35
KNode::FetchArticleIdDlg::FetchArticleIdDlg
FetchArticleIdDlg(QWidget *parent)
Definition: knmainwidget.cpp:1943
knarticle.h
KNMainWidget::a_ctScoresEdit
KAction * a_ctScoresEdit
Definition: knmainwidget.h:289
KNMainWidget::a_ctArtFilter
KNFilterSelectAction * a_ctArtFilter
Definition: knmainwidget.h:271
KNAccountManager
Account manager.
Definition: knaccountmanager.h:33
KNMainWidget::a_ccManager
KNAccountManager * a_ccManager
Definition: knmainwidget.h:198
KNFilterSelectAction
Filter selection action.
Definition: knfiltermanager.h:32
KNode::FetchArticleIdDlg::edit
KLineEdit * edit
Definition: knmainwidget.h:401
KNMainWidget::a_ctFolRename
KAction * a_ctFolRename
Definition: knmainwidget.h:259
KNMainWidget::a_ctArtSortHeaders
KSelectAction * a_ctArtSortHeaders
Definition: knmainwidget.h:270
KNMainWidget::a_ctArtSendOutbox
KAction * a_ctArtSendOutbox
Definition: knmainwidget.h:297
KNConfigManager
Manages config objects.
Definition: knconfigmanager.h:28
KNMainWidget::s_coreManager
KNScoringManager * s_coreManager
Definition: knmainwidget.h:204
QSplitter
KNGroupManager
Group manager.
Definition: kngroupmanager.h:83
KNode::FetchArticleIdDlg::messageId
QString messageId() const
Definition: knmainwidget.cpp:1962
QList< KNArticle::Ptr >
KNMainWidget::headerView
KNHeaderView * headerView() const
Returns the article list view.
Definition: knmainwidget.h:89
This file is part of the KDE documentation.
Documentation copyright © 1996-2014 The KDE developers.
Generated on Tue Oct 14 2014 22:58:36 by doxygen 1.8.7 written by Dimitri van Heesch, © 1997-2006

KDE's Doxygen guidelines are available online.

knode

Skip menu "knode"
  • Main Page
  • Namespace List
  • Alphabetical List
  • Class List
  • Class Hierarchy
  • Class Members
  • File List
  • File Members
  • Related Pages

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

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