26 #include "akregatorconfig.h"
43 #include <kactionmenu.h>
44 #include <ktoolbarpopupaction.h>
46 #include <KToggleAction>
47 #include <kactioncollection.h>
51 #include <kshortcut.h>
52 #include <kstandardshortcut.h>
53 #include <kstandardaction.h>
54 #include <kxmlguifactory.h>
57 #include <QApplication>
69 virtual bool visitFeed(Feed* node)
71 QAction*
remove = m_manager->action(
"feed_remove");
74 QAction* hp = m_manager->action(
"feed_homepage");
77 m_manager->action(
"feed_fetch")->setText(i18n(
"&Fetch Feed"));
78 m_manager->action(
"feed_remove")->setText(i18n(
"&Delete Feed"));
79 m_manager->action(
"feed_modify")->setText(i18n(
"&Edit Feed..."));
80 m_manager->action(
"feed_mark_all_as_read")->setText(i18n(
"&Mark Feed as Read"));
85 virtual bool visitFolder(Folder* node)
87 QAction*
remove = m_manager->action(
"feed_remove");
90 QAction* hp = m_manager->action(
"feed_homepage");
94 m_manager->action(
"feed_fetch")->setText(i18n(
"&Fetch Feeds"));
95 m_manager->action(
"feed_remove")->setText(i18n(
"&Delete Folder"));
96 m_manager->action(
"feed_modify")->setText(i18n(
"&Rename Folder"));
97 m_manager->action(
"feed_mark_all_as_read")->setText(i18n(
"&Mark Feeds as Read"));
106 class ActionManagerImpl::ActionManagerImplPrivate
111 ArticleListView* articleList;
112 SubscriptionListView* subscriptionListView;
113 MainWidget* mainWidget;
114 ArticleViewer* articleViewer;
117 KActionMenu* tagMenu;
119 TabWidget* tabWidget;
120 KAction* speakSelectedArticlesAction;
121 FrameManager* frameManager;
128 d->nodeSelectVisitor->visit(node);
135 d->subscriptionListView = 0;
138 d->articleViewer = 0;
143 d->speakSelectedArticlesAction = 0;
144 d->actionCollection = part->actionCollection();
150 delete d->nodeSelectVisitor;
164 else d->trayIcon = trayIcon;
166 QMenu* traypop = trayIcon->contextMenu();
174 void ActionManagerImpl::initPart()
176 KAction *
action = d->actionCollection->addAction(
"file_import");
177 action->setText(i18n(
"&Import Feeds..."));
178 action->setIcon(KIcon(
"document-import"));
179 connect(action, SIGNAL(triggered(
bool)), d->part, SLOT(fileImport()));
180 action = d->actionCollection->addAction(
"file_export");
181 action->setText(i18n(
"&Export Feeds..." ));
182 action->setIcon(KIcon(
"document-export"));
183 connect(action, SIGNAL(triggered(
bool)), d->part, SLOT(fileExport()));
185 KAction *configure = d->actionCollection->addAction(
"options_configure");
186 configure->setText(i18n(
"&Configure Akregator..."));
187 configure->setIcon(KIcon(
"configure"));
188 connect(configure, SIGNAL(triggered()), d->part, SLOT(showOptions()));
190 KStandardAction::configureNotifications(d->part, SLOT(showNotificationOptions()), d->actionCollection);
203 d->mainWidget = mainWidget;
208 KAction* action = coll->addAction(
"feed_homepage");
209 action->setText(i18n(
"&Open Homepage"));
210 connect(action, SIGNAL(triggered(
bool)), d->mainWidget, SLOT(slotOpenHomepage()));
211 action->setShortcuts(KShortcut(
"Ctrl+H" ));
213 action = coll->addAction(
"reload_all_tabs");
214 action->setIcon(KIcon(
"view-refresh"));
215 action->setText(i18n(
"Reload All Tabs"));
216 connect(action, SIGNAL(triggered(
bool)), d->mainWidget, SLOT(slotReloadAllTabs()));
217 action->setShortcuts(KShortcut(
"Shift+F5" ));
220 action = coll->addAction(
"feed_add");
221 action->setIcon(KIcon(
"feed-subscribe"));
222 action->setText(i18n(
"&Add Feed..."));
223 connect(action, SIGNAL(triggered(
bool)), d->mainWidget, SLOT(slotFeedAdd()));
224 action->setShortcuts(KShortcut(
"Insert" ));
226 action = coll->addAction(
"feed_add_group");
227 action->setIcon(KIcon(
"folder-new"));
228 action->setText(i18n(
"Ne&w Folder..."));
229 connect(action, SIGNAL(triggered(
bool)), d->mainWidget, SLOT(slotFeedAddGroup()));
230 action->setShortcuts(KShortcut(
"Shift+Insert" ));
232 action = coll->addAction(
"feed_remove");
233 action->setIcon(KIcon(
"edit-delete"));
234 action->setText(i18n(
"&Delete Feed"));
235 connect(action, SIGNAL(triggered(
bool)), d->mainWidget, SLOT(slotFeedRemove()));
236 action->setShortcuts(KShortcut(
"Alt+Delete" ));
238 action = coll->addAction(
"feed_modify");
239 action->setIcon(KIcon(
"document-properties"));
240 action->setText(i18n(
"&Edit Feed..."));
241 connect(action, SIGNAL(triggered(
bool)), d->mainWidget, SLOT(slotFeedModify()));
242 action->setShortcuts(KShortcut(
"F2" ));
245 action = coll->addAction(
"normal_view");
246 action->setIcon(KIcon(
"view-split-top-bottom"));
247 action->setText(i18n(
"&Normal View"));
248 connect(action, SIGNAL(triggered(
bool)), d->mainWidget, SLOT(slotNormalView()));
249 action->setShortcuts(KShortcut(
"Ctrl+Shift+1" ));
251 action = coll->addAction(
"widescreen_view");
252 action->setIcon(KIcon(
"view-split-left-right"));
253 action->setText(i18n(
"&Widescreen View"));
254 connect(action, SIGNAL(triggered(
bool)), d->mainWidget, SLOT(slotWidescreenView()));
255 action->setShortcuts(KShortcut(
"Ctrl+Shift+2" ));
257 action = coll->addAction(
"combined_view");
258 action->setIcon(KIcon(
"view-list-text"));
259 action->setText(i18n(
"C&ombined View"));
260 connect(action, SIGNAL(triggered(
bool)), d->mainWidget, SLOT(slotCombinedView()));
261 action->setShortcuts(KShortcut(
"Ctrl+Shift+3" ));
264 action = coll->addAction(
"feed_fetch");
265 action->setIcon(KIcon(
"go-down"));
266 action->setText(i18n(
"&Fetch Feed"));
267 connect(action, SIGNAL(triggered(
bool)), d->mainWidget, SLOT(slotFetchCurrentFeed()));
268 action->setShortcuts(KStandardShortcut::shortcut(KStandardShortcut::Reload));
270 action = coll->addAction(
"feed_fetch_all");
271 action->setIcon(KIcon(
"go-bottom"));
272 action->setText(i18n(
"Fe&tch All Feeds"));
273 connect(action, SIGNAL(triggered(
bool)), d->mainWidget, SLOT(slotFetchAllFeeds()));
274 action->setShortcuts(KShortcut(
"Ctrl+L" ));
276 KAction *stopAction = coll->addAction(
"feed_stop");
277 stopAction->setIcon(KIcon(
"process-stop"));
278 stopAction->setText(i18n(
"C&ancel Feed Fetches"));
279 connect(stopAction, SIGNAL(triggered(
bool)),
Kernel::self()->fetchQueue(), SLOT(slotAbort()));
281 stopAction->setEnabled(
false);
283 action = coll->addAction(
"feed_mark_all_as_read");
284 action->setIcon(KIcon(
"mail-mark-read"));
285 action->setText(i18n(
"&Mark Feed as Read"));
286 connect(action, SIGNAL(triggered(
bool)), d->mainWidget, SLOT(slotMarkAllRead()));
287 action->setShortcuts(KShortcut(
"Ctrl+R" ));
289 action = coll->addAction(
"feed_mark_all_feeds_as_read");
290 action->setIcon(KIcon(
"mail-mark-read"));
291 action->setText(i18n(
"Ma&rk All Feeds as Read"));
292 connect(action, SIGNAL(triggered(
bool)), d->mainWidget, SLOT(slotMarkAllFeedsRead()));
293 action->setShortcuts(KShortcut(
"Ctrl+Shift+R" ));
296 KToggleAction *sqf = coll->add<KToggleAction>(
"show_quick_filter");
297 sqf->setText(i18n(
"Show Quick Filter"));
298 connect(sqf, SIGNAL(triggered(
bool)), d->mainWidget, SLOT(slotToggleShowQuickFilter()));
299 sqf->setChecked( Settings::showQuickFilter() );
301 action = coll->addAction(
"article_open" );
302 action->setIcon(KIcon(
"tab-new"));
303 action->setText(i18n(
"Open in Tab"));
304 connect(action, SIGNAL(triggered(
bool)), d->mainWidget, SLOT(slotOpenSelectedArticles()));
305 action->setShortcuts(KShortcut(
"Shift+Return" ));
307 action = coll->addAction(
"article_open_in_background" );
308 action->setIcon(KIcon(
"tab-new"));
309 action->setText(i18n(
"Open in Background Tab"));
310 connect(action, SIGNAL(triggered(
bool)), d->mainWidget, SLOT(slotOpenSelectedArticlesInBackground()));
311 action->setShortcuts(KShortcut(
"Return" ));
313 action = coll->addAction(
"article_open_external" );
314 action->setIcon(KIcon(
"window-new"));
315 action->setText(i18n(
"Open in External Browser"));
316 connect(action, SIGNAL(triggered(
bool)), d->mainWidget, SLOT(slotOpenSelectedArticlesInBrowser()));
317 action->setShortcuts(KShortcut(
"Ctrl+Shift+Return" ));
319 action = coll->addAction(
"article_copy_link_address" );
320 action->setText(i18n(
"Copy Link Address"));
321 connect(action, SIGNAL(triggered(
bool)), d->mainWidget, SLOT(slotCopyLinkAddress()));
323 action = coll->addAction(
"go_prev_unread_article");
324 action->setIcon(KIcon(
"go-previous"));
325 action->setText(i18n(
"Pre&vious Unread Article"));
326 connect(action, SIGNAL(triggered(
bool)), d->mainWidget, SLOT(slotPrevUnreadArticle()));
329 action = coll->addAction(
"go_next_unread_article");
330 action->setIcon(KIcon(
"go-next"));
331 action->setText(i18n(
"Ne&xt Unread Article"));
332 connect(action, SIGNAL(triggered(
bool)), d->mainWidget, SLOT(slotNextUnreadArticle()));
333 action->setShortcuts(KShortcut(Qt::Key_Plus, Qt::Key_Equal));
335 action = coll->addAction(
"article_delete");
336 action->setIcon(KIcon(
"edit-delete"));
337 action->setText(i18n(
"&Delete"));
338 connect(action, SIGNAL(triggered(
bool)), d->mainWidget, SLOT(slotArticleDelete()));
339 action->setShortcuts(KShortcut(
"Delete" ));
341 KActionMenu* statusMenu = coll->add<KActionMenu>(
"article_set_status");
342 statusMenu->setText(i18n(
"&Mark As"));
343 statusMenu->setEnabled(
false );
345 d->speakSelectedArticlesAction = coll->addAction(
"akr_texttospeech");
346 d->speakSelectedArticlesAction->setIcon(KIcon(
"media-playback-start"));
347 d->speakSelectedArticlesAction->setText(i18n(
"&Speak Selected Articles"));
348 connect(d->speakSelectedArticlesAction, SIGNAL(triggered(
bool)), d->mainWidget, SLOT(slotTextToSpeechRequest()));
351 action = coll->addAction(
"akr_aborttexttospeech");
352 action->setText(i18n(
"&Stop Speaking" ));
353 action->setIcon(KIcon(
"media-playback-stop"));
356 action->setEnabled(
false);
360 action = coll->addAction(
"article_set_status_read");
361 action->setText(i18nc(
"as in: mark as read",
"&Read"));
362 action->setIcon(KIcon(
"mail-mark-read"));
363 action->setToolTip(i18n(
"Mark selected article as read"));
364 action->setShortcuts(KShortcut(
"Ctrl+E" ));
365 connect(action, SIGNAL(triggered(
bool)), d->mainWidget, SLOT(slotSetSelectedArticleRead()));
366 statusMenu->addAction(action);
368 action = coll->addAction(
"article_set_status_new");
369 action->setText(i18nc(
"as in: mark as new",
"&New"));
370 action->setIcon(KIcon(
"mail-mark-unread-new"));
371 action->setShortcuts(KShortcut(
"Ctrl+N" ));
372 action->setToolTip(i18n(
"Mark selected article as new"));
373 connect(action, SIGNAL(triggered(
bool)), d->mainWidget, SLOT(slotSetSelectedArticleNew()));
374 statusMenu->addAction(action);
377 action = coll->addAction(
"article_set_status_unread");
378 action->setText(i18nc(
"as in: mark as unread",
"&Unread"));
379 action->setIcon(KIcon(
"mail-mark-unread"));
380 action->setToolTip(i18n(
"Mark selected article as unread"));
381 action->setShortcuts(KShortcut(
"Ctrl+U" ));
382 connect(action, SIGNAL(triggered(
bool)), d->mainWidget, SLOT(slotSetSelectedArticleUnread()));
383 statusMenu->addAction(action);
385 KToggleAction* importantAction = coll->add<KToggleAction>(
"article_set_status_important");
386 importantAction->setText(i18n(
"&Mark as Important"));
387 importantAction->setIcon(KIcon(
"mail-mark-important"));
388 KShortcut importantSC(
"Ctrl+I" );
389 importantSC.setAlternate( Qt::Key_I );
390 importantAction->setShortcuts( importantSC );
391 importantAction->setCheckedState(KGuiItem(i18n(
"Remove &Important Mark")));
392 connect(importantAction, SIGNAL(triggered(
bool)), d->mainWidget, SLOT(slotArticleToggleKeepFlag(
bool)));
394 action = coll->addAction(
"feedstree_move_up");
395 action->setText(i18n(
"Move Node Up"));
396 connect(action, SIGNAL(triggered(
bool)), mainWidget, SLOT(slotMoveCurrentNodeUp()));
397 action->setShortcuts(KShortcut(
"Shift+Alt+Up" ));
399 action = coll->addAction(
"feedstree_move_down");
400 action->setText(i18n(
"Move Node Down"));
401 connect(action, SIGNAL(triggered(
bool)), mainWidget, SLOT(slotMoveCurrentNodeDown()));
402 action->setShortcuts(KShortcut(
"Shift+Alt+Down" ));
404 action = coll->addAction(i18n(
"Move Node Left"));
405 action->setText(i18n(
"Move Node Left"));
406 connect(action, SIGNAL(triggered(
bool)), mainWidget, SLOT(slotMoveCurrentNodeLeft()));
407 action->setShortcuts(KShortcut(
"Shift+Alt+Left" ));
409 action = coll->addAction(
"feedstree_move_right");
410 action->setText(i18n(
"Move Node Right"));
411 connect(action, SIGNAL(triggered(
bool)), mainWidget, SLOT(slotMoveCurrentNodeRight()));
412 action->setShortcuts(KShortcut(
"Shift+Alt+Right" ));
414 action = coll->addAction(
"file_sendlink");
415 action->setIcon(KIcon(
"mail-message-new"));
416 action->setText(i18n(
"Send &Link Address..."));
417 connect(action, SIGNAL(triggered(
bool)), mainWidget, SLOT(slotSendLink()));
419 action = coll->addAction(
"file_sendfile");
420 action->setIcon(KIcon(
"mail-message-new"));
421 action->setText(i18n(
"Send &File..."));
422 connect(action, SIGNAL(triggered(
bool)), mainWidget, SLOT(slotSendFile()));
429 if (d->articleViewer)
432 d->articleViewer = articleViewer;
437 action = KStandardAction::print(articleViewer, SLOT(slotPrint()),
actionCollection());
438 coll->addAction(
"viewer_print", action);
440 action = KStandardAction::copy(articleViewer, SLOT(slotCopy()), coll);
441 coll->addAction(
"viewer_copy", action);
443 connect(d->tabWidget, SIGNAL(signalZoomInFrame(
int)), d->articleViewer, SLOT(slotZoomIn(
int)));
444 connect(d->tabWidget, SIGNAL(signalZoomOutFrame(
int)), d->articleViewer, SLOT(slotZoomOut(
int)));
452 d->articleList = articleList;
455 action->setText(i18n(
"&Previous Article"));
456 connect(action, SIGNAL(triggered(
bool)), articleList, SLOT(slotPreviousArticle()));
457 action->setShortcuts(KShortcut(
"Left" ));
459 action->setText(i18n(
"&Next Article"));
460 connect(action, SIGNAL(triggered(
bool)), articleList, SLOT(slotNextArticle()));
461 action->setShortcuts(KShortcut(
"Right" ));
466 if (d->subscriptionListView)
469 d->subscriptionListView = subscriptionListView;
473 KAction *action = coll->addAction(
"go_prev_feed");
474 action->setText(i18n(
"&Previous Feed"));
475 connect(action, SIGNAL(triggered(
bool)), subscriptionListView, SLOT(slotPrevFeed()));
476 action->setShortcuts(KShortcut(
"P" ));
478 action = coll->addAction(
"go_next_feed");
479 action->setText(i18n(
"&Next Feed"));
480 connect(action, SIGNAL(triggered(
bool)), subscriptionListView, SLOT(slotNextFeed()));
481 action->setShortcuts(KShortcut(
"N" ));
483 action = coll->addAction(
"go_next_unread_feed");
484 action->setIcon(KIcon(
"go-down"));
485 action->setText(i18n(
"N&ext Unread Feed"));
486 connect(action, SIGNAL(triggered(
bool)), subscriptionListView, SLOT(slotNextUnreadFeed()));
487 action->setShortcut(
QKeySequence(Qt::ALT+Qt::Key_Plus) );
489 action = coll->addAction(
"go_prev_unread_feed");
490 action->setIcon(KIcon(
"go-up"));
491 action->setText(i18n(
"Prev&ious Unread Feed"));
492 connect(action, SIGNAL(triggered(
bool)), subscriptionListView, SLOT(slotPrevUnreadFeed()));
493 action->setShortcut(
QKeySequence(Qt::ALT+Qt::Key_Minus) );
495 action = coll->addAction(
"feedstree_home");
496 action->setText(i18n(
"Go to Top of Tree"));
497 connect(action, SIGNAL(triggered(
bool)), subscriptionListView, SLOT(slotItemBegin()));
498 action->setShortcuts(KShortcut(
"Ctrl+Home" ));
500 action = coll->addAction(
"feedstree_end");
501 action->setText(i18n(
"Go to Bottom of Tree"));
502 connect(action, SIGNAL(triggered(
bool)), subscriptionListView, SLOT(slotItemEnd()));
503 action->setShortcuts(KShortcut(
"Ctrl+End" ));
505 action = coll->addAction(
"feedstree_left");
506 action->setText(i18n(
"Go Left in Tree"));
507 connect(action, SIGNAL(triggered(
bool)), subscriptionListView, SLOT(slotItemLeft()));
508 action->setShortcuts(KShortcut(
"Ctrl+Left" ));
510 action = coll->addAction(
"feedstree_right");
511 action->setText(i18n(
"Go Right in Tree"));
512 connect(action, SIGNAL(triggered(
bool)), subscriptionListView, SLOT(slotItemRight()));
513 action->setShortcuts(KShortcut(
"Ctrl+Right" ));
515 action = coll->addAction(
"feedstree_up");
516 action->setText(i18n(
"Go Up in Tree"));
517 connect(action, SIGNAL(triggered(
bool)), subscriptionListView, SLOT(slotItemUp()));
518 action->setShortcuts(KShortcut(
"Ctrl+Up" ));
520 action = coll->addAction(
"feedstree_down" );
521 action->setText(i18n(
"Go Down in Tree"));
522 connect(action, SIGNAL(triggered(
bool)), subscriptionListView, SLOT(slotItemDown()));
523 action->setShortcuts(KShortcut(
"Ctrl+Down" ));
531 d->tabWidget = tabWidget;
535 KAction *action = coll->addAction(
"select_next_tab");
536 action->setText(i18n(
"Select Next Tab"));
537 connect(action, SIGNAL(triggered(
bool)), d->tabWidget, SLOT(slotNextTab()));
538 action->setShortcuts(KShortcut(
"Ctrl+Period" ));
540 action = coll->addAction(
"select_previous_tab");
541 action->setText(i18n(
"Select Previous Tab"));
542 connect(action, SIGNAL(triggered(
bool)), d->tabWidget, SLOT(slotPreviousTab()));
543 action->setShortcuts(KShortcut(
"Ctrl+Comma" ));
545 action = coll->addAction(
"tab_detach");
546 action->setIcon(KIcon(
"tab-detach"));
547 action->setText(i18n(
"Detach Tab"));
548 connect(action, SIGNAL(triggered(
bool)), d->tabWidget, SLOT(slotDetachTab()));
549 action->setShortcut(
QKeySequence(Qt::CTRL+Qt::SHIFT+Qt::Key_B));
551 action = coll->addAction(
"tab_copylinkaddress");
552 action->setText(i18n(
"Copy Link Address"));
553 connect(action, SIGNAL(triggered(
bool)), d->tabWidget, SLOT(slotCopyLinkAddress()));
555 action = coll->addAction(
"tab_remove");
556 action->setIcon(KIcon(
"tab-close"));
557 action->setText(i18n(
"Close Tab"));
558 connect(action, SIGNAL(triggered(
bool)), d->tabWidget, SLOT(slotCloseTab()));
559 action->setShortcuts(KStandardShortcut::close());
561 action = coll->addAction(
"inc_font_sizes");
562 action->setIcon(KIcon(
"format-font-size-more"));
563 action->setText(i18n(
"Enlarge Font"));
564 connect(action, SIGNAL(triggered(
bool)), d->tabWidget, SLOT(slotFrameZoomIn()));
565 action->setShortcut( QKeySequence::ZoomIn );
567 action = coll->addAction(
"dec_font_sizes");
568 action->setIcon(KIcon(
"format-font-size-less"));
569 action->setText(i18n(
"Shrink Font"));
570 connect(action, SIGNAL(triggered(
bool)), d->tabWidget, SLOT(slotFrameZoomOut()));
571 action->setShortcut( QKeySequence::ZoomOut );
574 for (
int i=1;i<10;++i) {
575 actionname.
sprintf(
"activate_tab_%02d", i);
576 action =
new KAction( i18n(
"Activate Tab %1", i),
this );
578 coll->addAction( actionname, action );
579 connect( action, SIGNAL(triggered(
bool)), d->tabWidget, SLOT(slotActivateTab()) );
590 d->frameManager = frameManager;
594 KToolBarPopupAction* forward =
new KToolBarPopupAction(KIcon(isRTL ?
"go-previous" :
"go-next"), i18nc(
"Go forward in browser history",
"Forward"),
this);
595 d->actionCollection->addAction(
"browser_forward", forward);
596 forward->setShortcuts(KShortcut(isRTL ?
"Alt+Left" :
"Alt+Right"));
597 connect(forward, SIGNAL(triggered()), frameManager, SLOT(slotBrowserForward()));
599 connect(forward->menu(), SIGNAL(aboutToShow()), frameManager, SLOT(slotBrowserForwardAboutToShow()));
601 KToolBarPopupAction* back =
new KToolBarPopupAction(KIcon(isRTL ?
"go-next" :
"go-previous"), i18nc(
"Go back in browser history",
"Back"),
this);
602 d->actionCollection->addAction(
"browser_back", back);
603 back->setShortcuts(KShortcut(isRTL ?
"Alt+Right" :
"Alt+Left"));
604 connect(back, SIGNAL(triggered()), frameManager, SLOT(slotBrowserBack()));
606 connect(back->menu(), SIGNAL(aboutToShow()), frameManager, SLOT(slotBrowserBackAboutToShow()));
608 KAction *action = d->actionCollection->addAction(
"browser_reload");
609 action->setIcon(KIcon(
"view-refresh"));
610 action->setText(i18nc(
"Reload current page",
"Reload"));
611 connect(action, SIGNAL(triggered(
bool)), frameManager, SLOT(slotBrowserReload()));
613 action = d->actionCollection->addAction(
"browser_stop");
614 action->setIcon(KIcon(
"process-stop"));
615 action->setText(i18n(
"Stop"));
616 connect(action, SIGNAL(triggered(
bool)), frameManager, SLOT(slotBrowserStop()));
621 if ( d->part->factory() ) {
622 return d->part->factory()->container(name, d->part);
631 return d->actionCollection;
636 return d->actionCollection != 0 ? d->actionCollection->action(name) : 0;
640 #undef setActionEnabled
641 #define setActionEnabled(name) { QAction* const a = action( name ); if ( a ) a->setEnabled( enabled ); }
650 #undef setActionEnabled
virtual ~ActionManagerImpl()
void initTabWidget(TabWidget *tabWidget)
KActionCollection * actionCollection()
virtual QWidget * container(const char *name)
This is the main widget of the view, containing tree view, article list, viewer etc.
void initMainWidget(MainWidget *mainWidget)
static SpeechClient * self()
void slotNodeSelected(Akregator::TreeNode *node)
This is a RSS Aggregator "Part".
void initFrameManager(FrameManager *frameManager)
interface for accessing actions, popup menus etc.
void setTrayIcon(TrayIcon *trayIcon)
void setArticleActionsEnabled(bool enabled)
virtual QAction * action(const char *name)
void initArticleListView(ArticleListView *articleList)
void initArticleViewer(ArticleViewer *articleViewer)
friend class NodeSelectVisitor
QString & sprintf(const char *cformat,...)
#define setActionEnabled(name)
QString fromLatin1(const char *str, int size)
bool connect(const QObject *sender, const char *signal, const QObject *receiver, const char *method, Qt::ConnectionType type)
Abstract base class for all kind of elements in the feed tree, like feeds and feed groups (and search...
void initSubscriptionListView(SubscriptionListView *subscriptionListView)
ActionManagerImpl(Part *part, QObject *parent=0)