void ActionManagerImpl::initFrameManager(FrameManager* frameManager) { if (d->frameManager) return; d->frameManager = frameManager; bool isRTL = QApplication::isRightToLeft(); KToolBarPopupAction* forward = new KToolBarPopupAction(KIcon(isRTL ? "go-previous" : "go-next"), i18nc("Go forward in browser history", "Forward"), this); d->actionCollection->addAction("browser_forward", forward); forward->setShortcuts(KShortcut(isRTL ? "Alt+Left" : "Alt+Right")); connect(forward, SIGNAL(triggered()), frameManager, SLOT(slotBrowserForward())); connect(forward->menu(), SIGNAL(aboutToShow()), frameManager, SLOT(slotBrowserForwardAboutToShow())); KToolBarPopupAction* back = new KToolBarPopupAction(KIcon(isRTL ? "go-next" : "go-previous"), i18nc("Go back in browser history", "Back"), this); d->actionCollection->addAction("browser_back", back); back->setShortcuts(KShortcut(isRTL ? "Alt+Right" : "Alt+Left")); connect(back, SIGNAL(triggered()), frameManager, SLOT(slotBrowserBack())); connect(back->menu(), SIGNAL(aboutToShow()), frameManager, SLOT(slotBrowserBackAboutToShow())); KAction *action = d->actionCollection->addAction("browser_reload"); action->setIcon(KIcon("view-refresh")); action->setText(i18nc("Reload current page", "Reload")); connect(action, SIGNAL(triggered(bool)), frameManager, SLOT(slotBrowserReload())); action = d->actionCollection->addAction("browser_stop"); action->setIcon(KIcon("process-stop")); action->setText(i18n("Stop")); connect(action, SIGNAL(triggered(bool)), frameManager, SLOT(slotBrowserStop())); }
/** * \brief Make the widgets represent the current state (connected / disconnected, active/inactive) * * \author Peter Grasch */ void SimonView::representState(SimonControl::SystemStatus status) { guiUpdateMutex.lock(); KToolBarPopupAction *connectActivate = dynamic_cast<KToolBarPopupAction*>(actionCollection()->action("connectActivate")); QAction *compileAction = actionCollection()->action("compileModel"); if (compileAction) compileAction->setEnabled(status != SimonControl::Disconnected); switch (status) { case SimonControl::Disconnected: { displayConnectionStatus(i18nc("Disconnected from the server", "Disconnected")); if (connectActivate) { connectActivate->setText(i18n ( "Connect" )); connectActivate->setChecked(false); connectActivate->setIcon(KIcon("network-disconnect")); if (connectActivate->menu()->actions().contains(disconnectAction)) connectActivate->menu()->removeAction(disconnectAction); disconnect(connectActivate,0,0,0); connect(connectActivate, SIGNAL(triggered(bool)), this, SLOT(toggleConnection())); } SimonInfo::showMessage ( i18n ( "Connection to server lost" ), 4000 ); // krazy:exclude=qmethods activateAction->setEnabled(false); activateAction->setText(i18n("Activate")); activateAction->setIcon(KIcon("media-playback-start")); activateAction->setChecked(false); if (trayManager) trayManager->createIcon ( KIcon ( KIconLoader().loadIcon("simon", KIconLoader::Panel, KIconLoader::SizeMedium, KIconLoader::DisabledState) ), i18n ( "Simon - Deactivated" ) ); connectAction->setText(i18n("Connect")); connectAction->setChecked(false); connectAction->setIcon(KIcon("network-disconnect")); break; } case SimonControl::Connecting: { QString connectionStr = i18nc("Connecting to the server", "Connecting..."); if (connectActivate) { connectActivate->setText(connectionStr); connectActivate->setChecked(true); connectActivate->setIcon(KIcon("network-disconnect")); disconnect(connectActivate,0,0,0); connect(connectActivate, SIGNAL(triggered(bool)), this, SLOT(toggleConnection())); } displayConnectionStatus(connectionStr); if (connectActivate->menu()->actions().contains(disconnectAction)) connectActivate->menu()->removeAction(disconnectAction); connectAction->setText(connectionStr); connectAction->setChecked(true); connectAction->setIcon(KIcon("network-disconnect")); break; } case SimonControl::ConnectedDeactivating: { displayConnectionStatus(i18n("Connected: Deactivating...")); if (connectActivate) { connectActivate->setText(i18n("Deactivating...")); connectActivate->setChecked(false); } activateAction->setEnabled(true); activateAction->setText("Deactivating..."); activateAction->setChecked(false); break; } case SimonControl::ConnectedDeactivatedNotReady: case SimonControl::ConnectedPaused: case SimonControl::ConnectedDeactivatedReady: { displayConnectionStatus(i18n("Connected but Deactivated")); if (connectActivate) { connectActivate->setText(i18n ( "Activate" )); connectActivate->setChecked(false); connectActivate->setIcon(KIcon("media-playback-start")); disconnect(connectActivate,0,0,0); connect(connectActivate, SIGNAL(triggered(bool)), this, SLOT(toggleActivation())); //add disconnect action with icon network-disconnect if (!connectActivate->menu()->actions().contains(disconnectAction)) connectActivate->menu()->addAction(disconnectAction); } activateAction->setEnabled(true); activateAction->setText(i18n("Activate")); activateAction->setChecked(false); activateAction->setIcon(KIcon("media-playback-start")); connectAction->setText(i18n("Connected")); connectAction->setIcon(KIcon("network-connect")); connectAction->setChecked(true); SimonInfo::showMessage ( i18n ( "Simon has been deactivated" ), 2000 ); this->trayManager->createIcon ( KIcon ( KIconLoader().loadIcon("simon", KIconLoader::Panel, KIconLoader::SizeMedium, KIconLoader::DisabledState) ), i18n ( "simon - Deactivated" ) ); //repaint(); break; } case SimonControl::ConnectedResuming: case SimonControl::ConnectedActivating: { displayConnectionStatus(i18n("Connected: Activating...")); if (connectActivate) { connectActivate->setText(i18n("Activating...")); connectActivate->setChecked(false); } activateAction->setText(i18n("Activating...")); activateAction->setChecked(false); } case SimonControl::ConnectedActivated: { displayConnectionStatus(i18n("Connected and Activated")); if (connectActivate) { connectActivate->setText(i18n ( "Activated" )); connectActivate->setChecked(true); connectActivate->setIcon(KIcon("media-playback-start")); disconnect(connectActivate,0,0,0); connect(connectActivate, SIGNAL(triggered(bool)), this, SLOT(toggleActivation())); if (!connectActivate->menu()->actions().contains(disconnectAction)) connectActivate->menu()->addAction(disconnectAction); } activateAction->setText(i18n("Activated")); activateAction->setChecked(true); activateAction->setIcon(KIcon("media-playback-start")); this->trayManager->createIcon ( KIcon ( "simon" ), "Simon" ); SimonInfo::showMessage ( i18n ( "Simon has been activated" ), 2000 ); break; } } guiUpdateMutex.unlock(); }