BOOL LLMenuButton::handleMouseDown(S32 x, S32 y, MASK mask) { LLButton::handleMouseDown(x, y, mask); toggleMenu(); return TRUE; }
void MenuBarButton::onMouseDown(APoint m_pos, MouseButton b, bool direct) { if(direct) { toggleMenu(); //openMenu(); } //else //{ // closeMenu(); //} }
void TDDSubMenu::touchUpInsideAction(Ref *sender, Control::EventType controlEvent) { ControlButton *button = (ControlButton *)sender; log("Button is clicked"); int tag = button->getTag(); switch(tag) { case kActionTagToggle: { toggleMenu(); break; } case kActionTagBack: { closeTest(); break; } } }
BOOL LLMenuButton::handleKeyHere(KEY key, MASK mask ) { if (mMenuHandle.isDead()) return FALSE; if( KEY_RETURN == key && mask == MASK_NONE && !gKeyboard->getKeyRepeated(key)) { // *HACK: We emit the mouse down signal to fire the callback bound to the // menu emerging event before actually displaying the menu. See STORM-263. LLUICtrl::handleMouseDown(-1, -1, MASK_NONE); toggleMenu(); return TRUE; } LLToggleableMenu* menu = dynamic_cast<LLToggleableMenu*>(mMenuHandle.get()); if (menu && menu->getVisible() && key == KEY_ESCAPE && mask == MASK_NONE) { menu->setVisible(FALSE); return TRUE; } return FALSE; }
bool ScriptableProxyHelper::toggleMenu() { INVOKE(toggleMenu()); return m_wnd->toggleMenu(); }
bool ScriptableProxyHelper::toggleMenu(const QString &tabName) { INVOKE(toggleMenu(tabName)); ClipboardBrowser *c = fetchBrowser(tabName); return c && m_wnd->toggleMenu(c); }
MediaWidget::MediaWidget(KMenu *menu_, KToolBar *toolBar, KActionCollection *collection, QWidget *parent) : QWidget(parent), menu(menu_), displayMode(NormalMode), automaticResize(ResizeOff), blockBackendUpdates(false), muted(false), screenSaverSuspended(false), showElapsedTime(true) { dummySource.reset(new MediaSource()); source = dummySource.data(); QBoxLayout *layout = new QVBoxLayout(this); layout->setMargin(0); QPalette palette = QWidget::palette(); palette.setColor(backgroundRole(), Qt::black); setPalette(palette); setAutoFillBackground(true); setAcceptDrops(true); setFocusPolicy(Qt::StrongFocus); backend = VlcMediaWidget::createVlcMediaWidget(this); if (backend == NULL) { backend = new DummyMediaWidget(this); } backend->connectToMediaWidget(this); layout->addWidget(backend); osdWidget = new OsdWidget(this); actionPrevious = new KAction(KIcon(QLatin1String("media-skip-backward")), i18n("Previous"), this); actionPrevious->setShortcut(KShortcut(Qt::Key_PageUp, Qt::Key_MediaPrevious)); connect(actionPrevious, SIGNAL(triggered()), this, SLOT(previous())); toolBar->addAction(collection->addAction(QLatin1String("controls_previous"), actionPrevious)); menu->addAction(actionPrevious); actionPlayPause = new KAction(this); actionPlayPause->setShortcut(KShortcut(Qt::Key_Space, Qt::Key_MediaPlay)); textPlay = i18n("Play"); textPause = i18n("Pause"); iconPlay = KIcon(QLatin1String("media-playback-start")); iconPause = KIcon(QLatin1String("media-playback-pause")); connect(actionPlayPause, SIGNAL(triggered(bool)), this, SLOT(pausedChanged(bool))); toolBar->addAction(collection->addAction(QLatin1String("controls_play_pause"), actionPlayPause)); menu->addAction(actionPlayPause); actionStop = new KAction(KIcon(QLatin1String("media-playback-stop")), i18n("Stop"), this); actionStop->setShortcut(KShortcut(Qt::Key_Backspace, Qt::Key_MediaStop)); connect(actionStop, SIGNAL(triggered()), this, SLOT(stop())); toolBar->addAction(collection->addAction(QLatin1String("controls_stop"), actionStop)); menu->addAction(actionStop); actionNext = new KAction(KIcon(QLatin1String("media-skip-forward")), i18n("Next"), this); actionNext->setShortcut(KShortcut(Qt::Key_PageDown, Qt::Key_MediaNext)); connect(actionNext, SIGNAL(triggered()), this, SLOT(next())); toolBar->addAction(collection->addAction(QLatin1String("controls_next"), actionNext)); menu->addAction(actionNext); menu->addSeparator(); fullScreenAction = new KAction(KIcon(QLatin1String("view-fullscreen")), i18nc("'Playback' menu", "Full Screen Mode"), this); fullScreenAction->setShortcut(Qt::Key_F); connect(fullScreenAction, SIGNAL(triggered()), this, SLOT(toggleFullScreen())); menu->addAction(collection->addAction(QLatin1String("view_fullscreen"), fullScreenAction)); minimalModeAction = new KAction(KIcon(QLatin1String("view-fullscreen")), i18nc("'Playback' menu", "Minimal Mode"), this); minimalModeAction->setShortcut(Qt::Key_Period); connect(minimalModeAction, SIGNAL(triggered()), this, SLOT(toggleMinimalMode())); menu->addAction(collection->addAction(QLatin1String("view_minimal_mode"), minimalModeAction)); audioStreamBox = new KComboBox(toolBar); connect(audioStreamBox, SIGNAL(currentIndexChanged(int)), this, SLOT(currentAudioStreamChanged(int))); toolBar->addWidget(audioStreamBox); audioStreamModel = new QStringListModel(toolBar); audioStreamBox->setModel(audioStreamModel); subtitleBox = new KComboBox(toolBar); textSubtitlesOff = i18nc("subtitle selection entry", "off"); connect(subtitleBox, SIGNAL(currentIndexChanged(int)), this, SLOT(currentSubtitleChanged(int))); toolBar->addWidget(subtitleBox); subtitleModel = new QStringListModel(toolBar); subtitleBox->setModel(subtitleModel); KMenu *audioMenu = new KMenu(i18nc("'Playback' menu", "Audio"), this); KAction *action = new KAction(KIcon(QLatin1String("audio-volume-high")), i18nc("'Audio' menu", "Increase Volume"), this); action->setShortcut(KShortcut(Qt::Key_Plus, Qt::Key_VolumeUp)); connect(action, SIGNAL(triggered()), this, SLOT(increaseVolume())); audioMenu->addAction(collection->addAction(QLatin1String("controls_increase_volume"), action)); action = new KAction(KIcon(QLatin1String("audio-volume-low")), i18nc("'Audio' menu", "Decrease Volume"), this); action->setShortcut(KShortcut(Qt::Key_Minus, Qt::Key_VolumeDown)); connect(action, SIGNAL(triggered()), this, SLOT(decreaseVolume())); audioMenu->addAction(collection->addAction(QLatin1String("controls_decrease_volume"), action)); muteAction = new KAction(i18nc("'Audio' menu", "Mute Volume"), this); mutedIcon = KIcon(QLatin1String("audio-volume-muted")); unmutedIcon = KIcon(QLatin1String("audio-volume-medium")); muteAction->setIcon(unmutedIcon); muteAction->setShortcut(KShortcut(Qt::Key_M, Qt::Key_VolumeMute)); connect(muteAction, SIGNAL(triggered()), this, SLOT(mutedChanged())); toolBar->addAction(collection->addAction(QLatin1String("controls_mute_volume"), muteAction)); audioMenu->addAction(muteAction); menu->addMenu(audioMenu); KMenu *videoMenu = new KMenu(i18nc("'Playback' menu", "Video"), this); menu->addMenu(videoMenu); menu->addSeparator(); deinterlaceAction = new KAction(KIcon(QLatin1String("format-justify-center")), i18nc("'Video' menu", "Deinterlace"), this); deinterlaceAction->setCheckable(true); deinterlaceAction->setChecked( KGlobal::config()->group("MediaObject").readEntry("Deinterlace", true)); deinterlaceAction->setShortcut(Qt::Key_I); connect(deinterlaceAction, SIGNAL(toggled(bool)), this, SLOT(deinterlacingChanged(bool))); backend->setDeinterlacing(deinterlaceAction->isChecked()); videoMenu->addAction(collection->addAction(QLatin1String("controls_deinterlace"), deinterlaceAction)); KMenu *aspectMenu = new KMenu(i18nc("'Video' menu", "Aspect Ratio"), this); QActionGroup *aspectGroup = new QActionGroup(this); connect(aspectGroup, SIGNAL(triggered(QAction*)), this, SLOT(aspectRatioChanged(QAction*))); action = new KAction(i18nc("'Aspect Ratio' menu", "Automatic"), aspectGroup); action->setCheckable(true); action->setChecked(true); action->setData(AspectRatioAuto); aspectMenu->addAction(collection->addAction(QLatin1String("controls_aspect_auto"), action)); action = new KAction(i18nc("'Aspect Ratio' menu", "Fit to Window"), aspectGroup); action->setCheckable(true); action->setData(AspectRatioWidget); aspectMenu->addAction(collection->addAction(QLatin1String("controls_aspect_widget"), action)); action = new KAction(i18nc("'Aspect Ratio' menu", "4:3"), aspectGroup); action->setCheckable(true); action->setData(AspectRatio4_3); aspectMenu->addAction(collection->addAction(QLatin1String("controls_aspect_4_3"), action)); action = new KAction(i18nc("'Aspect Ratio' menu", "16:9"), aspectGroup); action->setCheckable(true); action->setData(AspectRatio16_9); aspectMenu->addAction(collection->addAction(QLatin1String("controls_aspect_16_9"), action)); // Changes aspect ratio "a la VLC" currentAspectRatio=AspectRatioAuto; action = new KAction(KIcon(QLatin1String("chainAspectRatio")), i18nc("'Aspect Ratio' menu", "Chain ratio"), this); action->setShortcut(Qt::CTRL+Qt::Key_A); connect(action, SIGNAL(triggered()), this, SLOT(chainAspectRatio())); aspectMenu->addAction(collection->addAction(QLatin1String("chainAspectRatio"), action)); // Switches scale "a la VLC" currentAspectRatio=AspectRatioAuto; action = new KAction(KIcon(QLatin1String("switchScale")), i18nc("'Aspect Ratio' menu", "Switch scale"), this); action->setShortcut(Qt::SHIFT+Qt::Key_O); connect(action, SIGNAL(triggered()), this, SLOT(switchScale())); aspectMenu->addAction(collection->addAction(QLatin1String("switchScale"), action)); videoMenu->addMenu(aspectMenu); KMenu *autoResizeMenu = new KMenu(i18n("Automatic Resize"), this); QActionGroup *autoResizeGroup = new QActionGroup(this); // we need an event even if you select the currently selected item autoResizeGroup->setExclusive(false); connect(autoResizeGroup, SIGNAL(triggered(QAction*)), this, SLOT(autoResizeTriggered(QAction*))); action = new KAction(i18nc("automatic resize", "Off"), autoResizeGroup); action->setCheckable(true); action->setData(0); autoResizeMenu->addAction(collection->addAction(QLatin1String("controls_autoresize_off"), action)); action = new KAction(i18nc("automatic resize", "Original Size"), autoResizeGroup); action->setCheckable(true); action->setData(1); autoResizeMenu->addAction(collection->addAction(QLatin1String("controls_autoresize_original"), action)); action = new KAction(i18nc("automatic resize", "Double Size"), autoResizeGroup); action->setCheckable(true); action->setData(2); autoResizeMenu->addAction(collection->addAction(QLatin1String("controls_autoresize_double"), action)); int autoResizeFactor = KGlobal::config()->group("MediaObject").readEntry("AutoResizeFactor", 0); switch (autoResizeFactor) { case 1: automaticResize = OriginalSize; autoResizeGroup->actions().at(1)->setChecked(true); break; case 2: automaticResize = DoubleSize; autoResizeGroup->actions().at(2)->setChecked(true); break; default: automaticResize = ResizeOff; autoResizeGroup->actions().at(0)->setChecked(true); break; } videoMenu->addMenu(autoResizeMenu); action = new KAction(i18n("Volume Slider"), this); volumeSlider = new QSlider(toolBar); volumeSlider->setFocusPolicy(Qt::NoFocus); volumeSlider->setOrientation(Qt::Horizontal); volumeSlider->setRange(0, 100); volumeSlider->setSizePolicy(QSizePolicy::Preferred, QSizePolicy::Fixed); volumeSlider->setToolTip(action->text()); volumeSlider->setValue(KGlobal::config()->group("MediaObject").readEntry("Volume", 100)); connect(volumeSlider, SIGNAL(valueChanged(int)), this, SLOT(volumeChanged(int))); backend->setVolume(volumeSlider->value()); action->setDefaultWidget(volumeSlider); toolBar->addAction(collection->addAction(QLatin1String("controls_volume_slider"), action)); jumpToPositionAction = new KAction(KIcon(QLatin1String("go-jump")), i18nc("@action:inmenu", "Jump to Position..."), this); jumpToPositionAction->setShortcut(Qt::CTRL + Qt::Key_J); connect(jumpToPositionAction, SIGNAL(triggered()), this, SLOT(jumpToPosition())); menu->addAction(collection->addAction(QLatin1String("controls_jump_to_position"), jumpToPositionAction)); navigationMenu = new KMenu(i18nc("playback menu", "Skip"), this); menu->addMenu(navigationMenu); menu->addSeparator(); int shortSkipDuration = Configuration::instance()->getShortSkipDuration(); int longSkipDuration = Configuration::instance()->getLongSkipDuration(); connect(Configuration::instance(), SIGNAL(shortSkipDurationChanged(int)), this, SLOT(shortSkipDurationChanged(int))); connect(Configuration::instance(), SIGNAL(longSkipDurationChanged(int)), this, SLOT(longSkipDurationChanged(int))); longSkipBackwardAction = new KAction(KIcon(QLatin1String("media-skip-backward")), i18nc("submenu of 'Skip'", "Skip %1s Backward", longSkipDuration), this); longSkipBackwardAction->setShortcut(Qt::SHIFT + Qt::Key_Left); connect(longSkipBackwardAction, SIGNAL(triggered()), this, SLOT(longSkipBackward())); navigationMenu->addAction( collection->addAction(QLatin1String("controls_long_skip_backward"), longSkipBackwardAction)); shortSkipBackwardAction = new KAction(KIcon(QLatin1String("media-skip-backward")), i18nc("submenu of 'Skip'", "Skip %1s Backward", shortSkipDuration), this); shortSkipBackwardAction->setShortcut(Qt::Key_Left); connect(shortSkipBackwardAction, SIGNAL(triggered()), this, SLOT(shortSkipBackward())); navigationMenu->addAction( collection->addAction(QLatin1String("controls_skip_backward"), shortSkipBackwardAction)); shortSkipForwardAction = new KAction(KIcon(QLatin1String("media-skip-forward")), i18nc("submenu of 'Skip'", "Skip %1s Forward", shortSkipDuration), this); shortSkipForwardAction->setShortcut(Qt::Key_Right); connect(shortSkipForwardAction, SIGNAL(triggered()), this, SLOT(shortSkipForward())); navigationMenu->addAction( collection->addAction(QLatin1String("controls_skip_forward"), shortSkipForwardAction)); longSkipForwardAction = new KAction(KIcon(QLatin1String("media-skip-forward")), i18nc("submenu of 'Skip'", "Skip %1s Forward", longSkipDuration), this); longSkipForwardAction->setShortcut(Qt::SHIFT + Qt::Key_Right); connect(longSkipForwardAction, SIGNAL(triggered()), this, SLOT(longSkipForward())); navigationMenu->addAction( collection->addAction(QLatin1String("controls_long_skip_forward"), longSkipForwardAction)); toolBar->addAction(KIcon(QLatin1String("player-time")), i18n("Seek Slider"))->setEnabled(false); action = new KAction(i18n("Seek Slider"), this); seekSlider = new SeekSlider(toolBar); seekSlider->setFocusPolicy(Qt::NoFocus); seekSlider->setOrientation(Qt::Horizontal); seekSlider->setToolTip(action->text()); connect(seekSlider, SIGNAL(valueChanged(int)), this, SLOT(seek(int))); action->setDefaultWidget(seekSlider); toolBar->addAction(collection->addAction(QLatin1String("controls_position_slider"), action)); menuAction = new KAction(KIcon(QLatin1String("media-optical-video")), i18nc("dvd navigation", "DVD Menu"), this); connect(menuAction, SIGNAL(triggered()), this, SLOT(toggleMenu())); menu->addAction(collection->addAction(QLatin1String("controls_toggle_menu"), menuAction)); titleMenu = new KMenu(i18nc("dvd navigation", "Title"), this); titleGroup = new QActionGroup(this); connect(titleGroup, SIGNAL(triggered(QAction*)), this, SLOT(currentTitleChanged(QAction*))); menu->addMenu(titleMenu); chapterMenu = new KMenu(i18nc("dvd navigation", "Chapter"), this); chapterGroup = new QActionGroup(this); connect(chapterGroup, SIGNAL(triggered(QAction*)), this, SLOT(currentChapterChanged(QAction*))); menu->addMenu(chapterMenu); angleMenu = new KMenu(i18nc("dvd navigation", "Angle"), this); angleGroup = new QActionGroup(this); connect(angleGroup, SIGNAL(triggered(QAction*)), this, SLOT(currentAngleChanged(QAction*))); menu->addMenu(angleMenu); action = new KAction(i18n("Switch between elapsed and remaining time display"), this); timeButton = new QPushButton(toolBar); timeButton->setFocusPolicy(Qt::NoFocus); timeButton->setToolTip(action->text()); connect(timeButton, SIGNAL(clicked(bool)), this, SLOT(timeButtonClicked())); action->setDefaultWidget(timeButton); toolBar->addAction(collection->addAction(QLatin1String("controls_time_button"), action)); QTimer *timer = new QTimer(this); timer->start(50000); connect(timer, SIGNAL(timeout()), this, SLOT(checkScreenSaver())); }
clearAct = new QAction(tr("C&lear Screen"), this); clearAct->setShortcut(tr("Alt+U")); connect(clearAct, SIGNAL(triggered()), scribbleArea, SLOT(clearImage())); penColorAct = new QAction(tr("&Pen Color..."), this); penColorAct->setShortcut(tr("Ctrl+C")); connect(penColorAct, SIGNAL(triggered()), this, SLOT(penColor())); penWidthAct = new QAction(tr("Pen &Width..."), this); penWidthAct->setShortcut(tr("Ctrl+W")); connect(penWidthAct, SIGNAL(triggered()), this, SLOT(penWidth())); toggleMenuAct = new QAction(tr("&Toggle Menu"), this); toggleMenuAct->setShortcut(tr("Ctrl+Alt+T")); connect(toggleMenuAct, SIGNAL(triggered()), this, SLOT(toggleMenu())); aboutAct = new QAction(tr("&About"), this); connect(aboutAct, SIGNAL(triggered()), this, SLOT(about())); aboutQtAct = new QAction(tr("About &Qt"), this); connect(aboutQtAct, SIGNAL(triggered()), qApp, SLOT(aboutQt())); // Add these right to the main window. addAction(toggleMenuAct); addAction(penColorAct); addAction(penWidthAct); addAction(clearAct); } void MainWindow::createMenus() {
void onPreExchange( arMasterSlaveFramework &fw ) { fw.navUpdate(); // update the input state (placement matrix & button states) of our effector. primary.updateState( fw.getInputState() ); secondary.updateState( fw.getInputState() ); if( primary.getButton( WiiMote::HOME ) && secondary.getButton( WiiMote::HOME ) ) { helpOn = true; setMenuOff(); fw.setDrawCallback( drawHelp ); } if( helpOn ) { if( primary.getButton( WiiMote::A ) || secondary.getButton( WiiMote::A ) ) { helpOn = false; fw.setDrawCallback( doSceneGraph ); return; } } else { //used for scale the world (and possibly other scales later) WiiMote::updateTipDistance(primary, secondary); scaleWorld(); moveWorld( fw ); std::map<WiiMote::button_t, std::list<WiiMote*> > buttonMap; WiiMote::ButtonList buttons = secondary.getDownButtons(); for( WiiMote::ButtonList::iterator it = buttons.begin(); it != buttons.end(); ++it ) { // Process all butons just pressed on secondary if( buttonMap.find( *it ) == buttonMap.end() ) buttonMap.insert( std::make_pair( *it, std::list<WiiMote*>( 1, &secondary ) ) ); else buttonMap[*it].push_back( &secondary ); } buttons = primary.getDownButtons(); for( WiiMote::ButtonList::iterator it = buttons.begin(); it != buttons.end(); ++it ) { // Process all butons just pressed on primary if( buttonMap.find( *it ) == buttonMap.end() ) buttonMap.insert( std::make_pair( *it, std::list<WiiMote*>( 1, &primary ) ) ); else buttonMap[*it].push_back( &primary ); } buttons = primary.getUpButtons(); for( WiiMote::ButtonList::iterator it = buttons.begin(); it != buttons.end(); ++it ) { switch( *it ) { case WiiMote::A: case WiiMote::B: if( primary.getGrabbedObject() ) primary.requestUngrab( primary.getGrabbedObject() ); break; default: break; } } buttons = secondary.getUpButtons(); for( WiiMote::ButtonList::iterator it = buttons.begin(); it != buttons.end(); ++it ) { switch( *it ) { case WiiMote::A: case WiiMote::B: if( secondary.getGrabbedObject() ) secondary.requestUngrab( secondary.getGrabbedObject() ); break; default: break; } } for( std::map<WiiMote::button_t, std::list<WiiMote*> >::iterator it = buttonMap.begin(); it != buttonMap.end(); ++it ) { switch( it->first ) { case WiiMote::HOME: toggleMenu(); break; case WiiMote::DOWN: if( menuOn ) menu->pressedDown(); break; case WiiMote::RIGHT: if( menuOn ) menu->pressedRight(); break; case WiiMote::LEFT: if( menuOn ) menu->pressedLeft(); break; case WiiMote::UP: if( menuOn ) menu->pressedUp(); break; case WiiMote::MINUS: cout << "MINUS was pressed" << endl; if( !menuOn ) { iSelectMenuObj = 1; for( std::list<arInteractable*>::iterator it = SelectedObjects.begin(); it != SelectedObjects.end(); ++it ) if( Node *n = dynamic_cast<Node*>( *it ) ) n->setSelected( false ); SelectedObjects.clear(); } break; case WiiMote::PLUS: cout << "PLUS was pressed" << endl; if( !menuOn ) iSelectMenuObj = 2; break; case WiiMote::A: iSelectMenuObj = 0; if( menuOn ) { switch( menu->pressedA() ) { case REDRAW: setMenuOff(); setMenuOn(); break; case CLOSE: setMenuOff(); break; default: break; } } break; case WiiMote::ONE: for(std::list<WiiMote*>::iterator itt = it->second.begin(); itt != it->second.end(); ++itt) { (*itt)->toggleLightSaber(); } break; default: break; } } // do ray-casting after menu actions if ( !menuOn ) { rightClosest = primary.closestObject(interactableObjects); leftClosest = secondary.closestObject(interactableObjects); } if( rightClosest ) { rightClosest->touch( primary ); if( primary.getButton( WiiMote::A ) && primary.getButton( WiiMote::B ) ) { primary.requestScaleGrab( rightClosest ); } else if( primary.getButton( WiiMote::A ) ) { primary.requestPosGrab( rightClosest ); } else if( primary.getButton( WiiMote::B ) ) { primary.requestRotGrab( rightClosest ); } else if(((primary.getButton( WiiMote::PLUS )) || (primary.getButton( WiiMote::MINUS ))) && ((iSelectMenuObj == 1) || (iSelectMenuObj == 2))) { bool found = false; std::list<arInteractable*> tempSelectedObjects; while (!SelectedObjects.empty()) { if ( SelectedObjects.front() == rightClosest ) { cout << "Removing right hand object to selected list" << endl; rightClosest->setSelected( false ); SelectedObjects.pop_front(); found = true; iSelectMenuObj = 0; break; } else { tempSelectedObjects.push_back( SelectedObjects.front() ); SelectedObjects.pop_front(); } } while (!tempSelectedObjects.empty()) { SelectedObjects.push_back( tempSelectedObjects.front() ); if( Node *n = dynamic_cast<Node*>( tempSelectedObjects.front() ) ) n->setSelected( true ); tempSelectedObjects.pop_front(); } if (!found) { cout << "Adding right hand object to selected list" << endl; SelectedObjects.push_back( rightClosest ); rightClosest->setSelected( true ); iSelectMenuObj = 0; } } } if( leftClosest ) { leftClosest->touch( secondary ); if( secondary.getButton( WiiMote::A ) && secondary.getButton( WiiMote::B ) ) { secondary.requestScaleGrab( leftClosest ); } else if( secondary.getButton( WiiMote::A ) ) { secondary.requestPosGrab( leftClosest ); } else if( secondary.getButton( WiiMote::B ) ) { secondary.requestRotGrab( leftClosest ); } else if(((secondary.getButton( WiiMote::PLUS )) || (secondary.getButton( WiiMote::MINUS ))) && ((iSelectMenuObj == 1) || (iSelectMenuObj == 2))) { bool found = false; std::list<arInteractable*> tempSelectedObjects; while (!SelectedObjects.empty()) { if ( SelectedObjects.front() == leftClosest ) { cout << "Removing left hand object to selected list" << endl; leftClosest->setSelected( false ); SelectedObjects.pop_front(); found = true; iSelectMenuObj = 0; break; } else { tempSelectedObjects.push_back( SelectedObjects.front() ); SelectedObjects.pop_front(); } } while (!tempSelectedObjects.empty()) { SelectedObjects.push_back( tempSelectedObjects.front() ); if( Node *n = dynamic_cast<Node*>( tempSelectedObjects.front() ) ) n->setSelected( true ); tempSelectedObjects.pop_front(); } if (!found) { cout << "Adding left hand object to selected list" << endl; SelectedObjects.push_back( leftClosest ); leftClosest->setSelected( true ); iSelectMenuObj = 0; } } } } }
void TermMainWindow::setup_ActionsMenu_Actions() { QSettings settings; settings.beginGroup("Shortcuts"); QKeySequence seq; Properties::Instance()->actions[CLEAR_TERMINAL] = new QAction(QIcon::fromTheme("edit-clear"), tr("Clear Current Tab"), this); seq = QKeySequence::fromString(settings.value(CLEAR_TERMINAL, CLEAR_TERMINAL_SHORTCUT).toString()); Properties::Instance()->actions[CLEAR_TERMINAL]->setShortcut(seq); connect(Properties::Instance()->actions[CLEAR_TERMINAL], SIGNAL(triggered()), consoleTabulator, SLOT(clearActiveTerminal())); menu_Actions->addAction(Properties::Instance()->actions[CLEAR_TERMINAL]); menu_Actions->addSeparator(); // Copy and Paste are only added to the table for the sake of bindings at the moment; there is no Edit menu, only a context menu. Properties::Instance()->actions[COPY_SELECTION] = new QAction(QIcon::fromTheme("edit-copy"), tr("Copy Selection"), this); seq = QKeySequence::fromString( settings.value(COPY_SELECTION, COPY_SELECTION_SHORTCUT).toString() ); Properties::Instance()->actions[COPY_SELECTION]->setShortcut(seq); connect(Properties::Instance()->actions[COPY_SELECTION], SIGNAL(triggered()), consoleTabulator, SLOT(copySelection())); menu_Edit->addAction(Properties::Instance()->actions[COPY_SELECTION]); Properties::Instance()->actions[PASTE_CLIPBOARD] = new QAction(QIcon::fromTheme("edit-paste"), tr("Paste Clipboard"), this); seq = QKeySequence::fromString( settings.value(PASTE_CLIPBOARD, PASTE_CLIPBOARD_SHORTCUT).toString() ); Properties::Instance()->actions[PASTE_CLIPBOARD]->setShortcut(seq); connect(Properties::Instance()->actions[PASTE_CLIPBOARD], SIGNAL(triggered()), consoleTabulator, SLOT(pasteClipboard())); menu_Edit->addAction(Properties::Instance()->actions[PASTE_CLIPBOARD]); Properties::Instance()->actions[PASTE_SELECTION] = new QAction(QIcon::fromTheme("edit-paste"), tr("Paste Selection"), this); seq = QKeySequence::fromString( settings.value(PASTE_SELECTION, PASTE_SELECTION_SHORTCUT).toString() ); Properties::Instance()->actions[PASTE_SELECTION]->setShortcut(seq); connect(Properties::Instance()->actions[PASTE_SELECTION], SIGNAL(triggered()), consoleTabulator, SLOT(pasteSelection())); menu_Edit->addAction(Properties::Instance()->actions[PASTE_SELECTION]); menu_Actions->addSeparator(); Properties::Instance()->actions[ZOOM_IN] = new QAction(QIcon::fromTheme("zoom-in"), tr("Zoom in"), this); seq = QKeySequence::fromString( settings.value(ZOOM_IN, ZOOM_IN_SHORTCUT).toString() ); Properties::Instance()->actions[ZOOM_IN]->setShortcut(seq); connect(Properties::Instance()->actions[ZOOM_IN], SIGNAL(triggered()), consoleTabulator, SLOT(zoomIn())); menu_Edit->addAction(Properties::Instance()->actions[ZOOM_IN]); Properties::Instance()->actions[ZOOM_OUT] = new QAction(QIcon::fromTheme("zoom-out"), tr("Zoom out"), this); seq = QKeySequence::fromString( settings.value(ZOOM_OUT, ZOOM_OUT_SHORTCUT).toString() ); Properties::Instance()->actions[ZOOM_OUT]->setShortcut(seq); connect(Properties::Instance()->actions[ZOOM_OUT], SIGNAL(triggered()), consoleTabulator, SLOT(zoomOut())); menu_Edit->addAction(Properties::Instance()->actions[ZOOM_OUT]); Properties::Instance()->actions[ZOOM_RESET] = new QAction(QIcon::fromTheme("zoom-original"), tr("Zoom reset"), this); seq = QKeySequence::fromString( settings.value(ZOOM_RESET, ZOOM_RESET_SHORTCUT).toString() ); Properties::Instance()->actions[ZOOM_RESET]->setShortcut(seq); connect(Properties::Instance()->actions[ZOOM_RESET], SIGNAL(triggered()), consoleTabulator, SLOT(zoomReset())); menu_Edit->addAction(Properties::Instance()->actions[ZOOM_RESET]); menu_Actions->addSeparator(); Properties::Instance()->actions[FIND] = new QAction(QIcon::fromTheme("edit-find"), tr("Find..."), this); seq = QKeySequence::fromString( settings.value(FIND, FIND_SHORTCUT).toString() ); Properties::Instance()->actions[FIND]->setShortcut(seq); connect(Properties::Instance()->actions[FIND], SIGNAL(triggered()), this, SLOT(find())); menu_Actions->addAction(Properties::Instance()->actions[FIND]); Properties::Instance()->actions[TOGGLE_MENU] = new QAction(tr("Toggle Menu"), this); seq = QKeySequence::fromString( settings.value(TOGGLE_MENU, TOGGLE_MENU_SHORTCUT).toString() ); Properties::Instance()->actions[TOGGLE_MENU]->setShortcut(seq); connect(Properties::Instance()->actions[TOGGLE_MENU], SIGNAL(triggered()), this, SLOT(toggleMenu())); // tis is correct - add action to main window - not to menu to keep toggle working settings.endGroup(); // apply props propertiesChanged(); }