void SimonView::setupActions() { connectAction = new KAction(this); connectAction->setText(i18n("Connect")); connectAction->setCheckable(true); connectAction->setIcon(KIcon("network-disconnect")); connect(connectAction, SIGNAL(triggered(bool)), this, SLOT(toggleConnection())); actionCollection()->addAction("connect", connectAction); this->trayManager->addAction("connect", connectAction); activateAction = new KAction(this); activateAction->setText(i18n("Activate")); activateAction->setIcon(KIcon("media-playback-start")); activateAction->setCheckable(true); connect(activateAction, SIGNAL(triggered(bool)), this, SLOT(toggleActivation())); this->trayManager->addAction("activate", activateAction); activateAction->setEnabled(false); actionCollection()->addAction("activate", activateAction); //must be set after addAction() because of the unique name set in addAction(name,...) // deactivated because of KDE bug #307225 //activateAction->setGlobalShortcut(KShortcut(Qt::SHIFT + Qt::Key_Pause)); disconnectAction = new KAction(this); disconnectAction->setText(i18n("Disconnect")); disconnectAction->setIcon(KIcon("network-disconnect")); connect(disconnectAction, SIGNAL(triggered(bool)), control, SLOT(disconnectFromServer())); KToolBarPopupAction* connectActivate = new KToolBarPopupAction(KIcon("network-disconnect"), i18n("Connect"), this); connectActivate->setCheckable(true); connectActivate->setShortcut(Qt::CTRL + Qt::Key_C); actionCollection()->addAction("connectActivate", connectActivate); connect(connectActivate, SIGNAL(triggered(bool)), this, SLOT(toggleConnection())); KAction* recompile = new KAction(this); recompile->setEnabled(control->getStatus() != SimonControl::Disconnected); recompile->setText(i18n("Synchronize")); recompile->setIcon(KIcon("view-refresh")); recompile->setShortcut(Qt::CTRL + Qt::Key_F5); actionCollection()->addAction("compileModel", recompile); connect(recompile, SIGNAL(triggered(bool)), control, SLOT(compileModel())); KAction* sendSampleShareAction = new KAction(this); sendSampleShareAction->setText(i18n("Contribute samples")); sendSampleShareAction->setIcon(KIcon("repository")); actionCollection()->addAction("sampleShare", sendSampleShareAction); connect(sendSampleShareAction, SIGNAL(triggered(bool)),this, SLOT(showSampleShare())); actionCollection()->addAction(KStandardAction::Preferences, "configuration", this, SLOT(showSystemDialog())); KStandardAction::quit(this, SLOT(closeSimon()), actionCollection()); }
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())); }
KCommandHistory::KCommandHistory(KActionCollection * actionCollection, bool withMenus) : m_undoLimit(50), m_redoLimit(30), m_first(false) { d=new KCommandHistoryPrivate(); if (withMenus) { KToolBarPopupAction * undo = new KToolBarPopupAction( i18n("&Undo"), "undo", KStdAccel::shortcut(KStdAccel::Undo), this, SLOT( undo() ), actionCollection, KStdAction::stdName( KStdAction::Undo ) ); connect( undo->popupMenu(), SIGNAL( aboutToShow() ), this, SLOT( slotUndoAboutToShow() ) ); connect( undo->popupMenu(), SIGNAL( activated( int ) ), this, SLOT( slotUndoActivated( int ) ) ); m_undo = undo; m_undoPopup = undo->popupMenu(); KToolBarPopupAction * redo = new KToolBarPopupAction( i18n("&Redo"), "redo", KStdAccel::shortcut(KStdAccel::Redo), this, SLOT( redo() ), actionCollection, KStdAction::stdName( KStdAction::Redo ) ); connect( redo->popupMenu(), SIGNAL( aboutToShow() ), this, SLOT( slotRedoAboutToShow() ) ); connect( redo->popupMenu(), SIGNAL( activated( int ) ), this, SLOT( slotRedoActivated( int ) ) ); m_redo = redo; m_redoPopup = redo->popupMenu(); } else {
/** * \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(); }
//BEGIN class ItemView ItemView::ItemView(ItemDocument * itemDocument, ViewContainer *viewContainer, uint viewAreaId, const char *name) : View(itemDocument, viewContainer, viewAreaId, name) { KActionCollection * ac = actionCollection(); KStdAction::selectAll(itemDocument, SLOT(selectAll()), ac); KStdAction::zoomIn(this, SLOT(zoomIn()), ac); KStdAction::zoomOut(this, SLOT(zoomOut()), ac); KStdAction::actualSize(this, SLOT(actualSize()), ac)->setEnabled(false); KAccel *pAccel = new KAccel(this); pAccel->insert("Cancel", i18n("Cancel"), i18n("Cancel the current operation"), Qt::Key_Escape, itemDocument, SLOT(cancelCurrentOperation())); pAccel->readSettings(); new KAction(i18n("Delete"), "editdelete", Qt::Key_Delete, itemDocument, SLOT(deleteSelection()), ac, "edit_delete"); new KAction(i18n("Export as Image..."), 0, 0, itemDocument, SLOT(exportToImage()), ac, "file_export_image"); //BEGIN Item Alignment actions new KAction(i18n("Align Horizontally"), 0, 0, itemDocument, SLOT(alignHorizontally()), ac, "align_horizontally"); new KAction(i18n("Align Vertically"), 0, 0, itemDocument, SLOT(alignVertically()), ac, "align_vertically"); new KAction(i18n("Distribute Horizontally"), 0, 0, itemDocument, SLOT(distributeHorizontally()), ac, "distribute_horizontally"); new KAction(i18n("Distribute Vertically"), 0, 0, itemDocument, SLOT(distributeVertically()), ac, "distribute_vertically"); //END Item Alignment actions //BEGIN Draw actions KToolBarPopupAction * pa = new KToolBarPopupAction(i18n("Draw"), "paintbrush", 0, 0, 0, ac, "edit_draw"); pa->setDelayed(false); KPopupMenu * m = pa->popupMenu(); m->insertTitle(i18n("Draw")); m->insertItem(KGlobal::iconLoader()->loadIcon("tool_text", KIcon::Small), i18n("Text"), DrawPart::da_text); m->insertItem(KGlobal::iconLoader()->loadIcon("tool_line", KIcon::Small), i18n("Line"), DrawPart::da_line); m->insertItem(KGlobal::iconLoader()->loadIcon("tool_arrow", KIcon::Small), i18n("Arrow"), DrawPart::da_arrow); m->insertItem(KGlobal::iconLoader()->loadIcon("tool_ellipse", KIcon::Small), i18n("Ellipse"), DrawPart::da_ellipse); m->insertItem(KGlobal::iconLoader()->loadIcon("tool_rectangle", KIcon::Small), i18n("Rectangle"), DrawPart::da_rectangle); m->insertItem(KGlobal::iconLoader()->loadIcon("imagegallery", KIcon::Small), i18n("Image"), DrawPart::da_image); connect(m, SIGNAL(activated(int)), itemDocument, SLOT(slotSetDrawAction(int))); //END Draw actions //BEGIN Item Control actions new KAction(i18n("Raise Selection"), "bring_forward", Qt::Key_PageUp, itemDocument, SLOT(raiseZ()), ac, "edit_raise"); new KAction(i18n("Lower Selection"), "send_backward", Qt::Key_PageDown, itemDocument, SLOT(lowerZ()), ac, "edit_lower"); //END Item Control actions KAction * na = new KAction("", 0, 0, 0, 0, ac, "null_action"); na->setEnabled(false); setXMLFile("ktechlabitemviewui.rc"); m_pUpdateStatusTmr = new QTimer(this); connect(m_pUpdateStatusTmr, SIGNAL(timeout()), this, SLOT(updateStatus())); connect(this, SIGNAL(unfocused()), this, SLOT(stopUpdatingStatus())); m_pDragItem = 0l; p_itemDocument = itemDocument; m_zoomLevel = 1.; m_CVBEditor = new CVBEditor(p_itemDocument->canvas(), this, "cvbEditor"); m_CVBEditor->setLineWidth(1); connect(m_CVBEditor, SIGNAL(horizontalSliderReleased()), itemDocument, SLOT(requestCanvasResize())); connect(m_CVBEditor, SIGNAL(verticalSliderReleased()), itemDocument, SLOT(requestCanvasResize())); m_layout->insertWidget(0, m_CVBEditor); setAcceptDrops(true); setFocusWidget(m_CVBEditor->viewport()); }