void RecentFileMenu::onRecentFileTriggered() { QAction* action = ( QAction* )QObject::sender(); QString filePath = action->data().toString(); if ( !filePath.isEmpty() ) { emit loadRecentFile( filePath ); } }
void MainWindow2::createMenus() { // ---------- File Menu ------------- connect( ui->actionNew, &QAction::triggered, this, &MainWindow2::newDocument ); connect( ui->actionOpen, &QAction::triggered, this, &MainWindow2::openDocument ); connect( ui->actionSave_as, &QAction::triggered, this, &MainWindow2::saveAsNewDocument ); connect( ui->actionSave, &QAction::triggered, this, &MainWindow2::saveDocument ); connect( ui->actionExit, &QAction::triggered, this, &MainWindow2::close ); /// --- Export Menu --- connect( ui->actionExport_X_sheet, &QAction::triggered, editor, &Editor::exportX ); connect( ui->actionExport_Image_Sequence, &QAction::triggered, editor, &Editor::exportSeq ); connect( ui->actionExport_Image, &QAction::triggered, editor, &Editor::exportImage ); connect( ui->actionExport_Movie, &QAction::triggered, editor, &Editor::exportMov ); //exportFlashAct = new QAction(tr("&Flash/SWF..."), this); //exportFlashAct->setShortcut(tr("Ctrl+Alt+F")); //connect(exportFlashAct, SIGNAL(triggered()), editor, SLOT(exportFlash())); connect( ui->actionExport_Palette, &QAction::triggered, this, &MainWindow2::exportPalette ); /// --- Import Menu --- //connect( ui->actionExport_Svg_Image, &QAction::triggered, editor, &Editor::saveSvg ); connect( ui->actionImport_Image, &QAction::triggered, editor, &Editor::importImageFromDialog ); connect( ui->actionImport_Image_Sequence, &QAction::triggered, editor, &Editor::importImageSequence ); connect( ui->actionImport_Movie, &QAction::triggered, editor, &Editor::importMov ); //connect( ui->actionImport_Sound, &QAction::triggered, editor, &Editor::importSound ); ui->actionImport_Sound->setEnabled( false ); connect( ui->actionImport_Palette, &QAction::triggered, this, &MainWindow2::importPalette ); /// --- Edit Menu --- connect( ui->actionUndo, &QAction::triggered, editor, &Editor::undo ); connect( ui->actionRedo, &QAction::triggered, editor, &Editor::redo ); connect( ui->actionCut, &QAction::triggered, editor, &Editor::cut ); connect( ui->actionCopy, &QAction::triggered, editor, &Editor::copy ); connect( ui->actionPaste, &QAction::triggered, editor, &Editor::paste ); connect( ui->actionClearFrame, &QAction::triggered, editor, &Editor::clearCurrentFrame ); connect( ui->actionCrop, &QAction::triggered, editor, &Editor::crop ); connect( ui->actionCrop_To_Selection, &QAction::triggered, editor, &Editor::croptoselect ); connect( ui->actionSelect_All, &QAction::triggered, editor, &Editor::selectAll ); connect( ui->actionDeselect_All, &QAction::triggered, editor, &Editor::deselectAll ); connect( ui->actionPreference, &QAction::triggered, this, &MainWindow2::showPreferences ); ui->actionRedo->setEnabled( false ); /// --- Layer Menu --- connect( ui->actionNew_Bitmap_Layer, &QAction::triggered, editor, &Editor::newBitmapLayer ); connect( ui->actionNew_Vector_Layer, &QAction::triggered, editor, &Editor::newVectorLayer ); connect( ui->actionNew_Sound_Layer, &QAction::triggered, editor, &Editor::newSoundLayer ); connect( ui->actionNew_Camera_Layer, &QAction::triggered, editor, &Editor::newCameraLayer ); connect( ui->actionDelete_Current_Layer, &QAction::triggered, editor, &Editor::deleteCurrentLayer ); /// --- View Menu --- connect( ui->actionZoom_In, &QAction::triggered, editor, &Editor::setzoom ); connect( ui->actionZoom_Out, &QAction::triggered, editor, &Editor::setzoom1 ); connect( ui->actionRotate_Clockwise, &QAction::triggered, editor, &Editor::rotatecw ); connect( ui->actionRotate_Anticlosewise, &QAction::triggered, editor, &Editor::rotateacw ); connect( ui->actionReset_Windows, &QAction::triggered, this, &MainWindow2::dockAllPalettes ); connect( ui->actionReset_View, &QAction::triggered, editor, &Editor::resetView ); connect( ui->actionHorizontal_Flip, &QAction::triggered, editor, &Editor::toggleMirror ); connect( ui->actionVertical_Flip, &QAction::triggered, editor, &Editor::toggleMirrorV ); ui->actionPreview->setEnabled( false ); //# connect(previewAct, SIGNAL(triggered()), editor, SLOT(getCameraLayer()));//TODO: Preview view ui->actionGrid->setEnabled( false ); connect( ui->actionGrid, &QAction::triggered, editor, &Editor::gridview ); //TODO: Grid view connect( ui->actionOnionPrevious, &QAction::triggered, editor, &Editor::toggleOnionPrev ); connect( ui->actionOnionNext, &QAction::triggered, editor, &Editor::toggleOnionNext ); connect( ui->actionMultiLayerOnionSkin, &QAction::triggered, editor, &Editor::toggleMultiLayerOnionSkin ); connect( editor, SIGNAL( onionPrevChanged( bool ) ), ui->actionOnionPrevious, SLOT( setChecked( bool ) ) ); connect( editor, SIGNAL( onionNextChanged( bool ) ), ui->actionOnionNext, SLOT( setChecked( bool ) ) ); connect( editor, SIGNAL(multiLayerOnionSkinChanged(bool)), ui->actionMultiLayerOnionSkin, SLOT(setChecked(bool))); /// --- Animation Menu --- connect( ui->actionPlay, &QAction::triggered, editor, &Editor::play ); connect( ui->actionLoop, &QAction::triggered, editor, &Editor::setLoop ); connect( ui->actionLoop, SIGNAL(toggled(bool) ), editor, SIGNAL(toggleLoop(bool)) ); //TODO: WTF? connect( editor, SIGNAL( loopToggled(bool) ), ui->actionLoop, SLOT(setChecked(bool)) ); // Loop Control connect(ui->actionLoopControl, SIGNAL(triggered(bool)), editor, SLOT(setLoopControl(bool))); connect(ui->actionLoopControl, SIGNAL(toggled(bool)), editor, SIGNAL(toggleLoopControl(bool))); connect(editor, SIGNAL(loopControlToggled(bool)), ui->actionLoopControl, SLOT(setChecked(bool))); // Loop Control connect(ui->actionAdd_Frame, &QAction::triggered, editor, &Editor::addNewKey ); connect(ui->actionRemove_Frame, &QAction::triggered, editor, &Editor::removeKey ); connect(ui->actionNext_Frame, &QAction::triggered, editor, &Editor::playNextFrame ); connect(ui->actionPrevious_Frame, &QAction::triggered, editor, &Editor::playPrevFrame ); connect(ui->actionNext_Keyframe, &QAction::triggered, editor, &Editor::scrubNextKeyframe ); connect(ui->actionPrev_Keyframe, &QAction::triggered, editor, &Editor::scrubPreviousKeyframe ); connect(ui->actionDuplicate_Frame, &QAction::triggered, editor, &Editor::duplicateKey ); /// --- Tool Menu --- connect(ui->actionMove, &QAction::triggered, m_pToolSet, &ToolSetWidget::moveOn ); connect(ui->actionSelect, &QAction::triggered, m_pToolSet, &ToolSetWidget::selectOn ); connect(ui->actionBrush, &QAction::triggered, m_pToolSet, &ToolSetWidget::brushOn ); connect(ui->actionPolyline, &QAction::triggered, m_pToolSet, &ToolSetWidget::polylineOn ); connect(ui->actionSmudge, &QAction::triggered, m_pToolSet, &ToolSetWidget::smudgeOn ); connect(ui->actionPen, &QAction::triggered, m_pToolSet, &ToolSetWidget::penOn ); connect(ui->actionHand, &QAction::triggered, m_pToolSet, &ToolSetWidget::handOn ); connect(ui->actionPencil, &QAction::triggered, m_pToolSet, &ToolSetWidget::pencilOn ); connect(ui->actionBucket, &QAction::triggered, m_pToolSet, &ToolSetWidget::bucketOn ); connect(ui->actionEyedropper, &QAction::triggered, m_pToolSet, &ToolSetWidget::eyedropperOn ); connect(ui->actionEraser, &QAction::triggered, m_pToolSet, &ToolSetWidget::eraserOn ); connect(ui->actionTogglePalette, &QAction::triggered, m_pScribbleArea,&ScribbleArea::togglePopupPalette ); connect(ui->actionResetToolsDefault, &QAction::triggered, this, &MainWindow2::resetToolsSettings ); /// --- Window Menu --- connect(ui->actionToolsWidget, SIGNAL(toggled(bool)), editor->m_pToolSet, SLOT(setVisible(bool))); connect(editor->m_pToolSet, SIGNAL(visibilityChanged(bool)), ui->actionToolsWidget, SLOT(setChecked(bool))); connect(ui->actionOptionsWidget, SIGNAL(toggled(bool)), m_pToolOptionWidget, SLOT(setVisible(bool))); connect(m_pToolOptionWidget, SIGNAL(visibilityChanged(bool)), ui->actionOptionsWidget, SLOT(setChecked(bool))); connect(ui->actionColorWheel, SIGNAL(toggled(bool)), m_pColorPalette, SLOT(setVisible(bool))); connect(m_pColorPalette, SIGNAL(visibilityChanged(bool)), ui->actionColorWheel, SLOT(setChecked(bool))); connect(ui->actionTimeline, SIGNAL(toggled(bool)), m_pTimeLine, SLOT(setVisible(bool))); connect(m_pTimeLine, SIGNAL(visibilityChanged(bool)), ui->actionTimeline, SLOT(setChecked(bool))); connect(ui->actionDisplayOptions, SIGNAL(toggled(bool)), m_pDisplayOptionWidget, SLOT(setVisible(bool))); connect(m_pDisplayOptionWidget, SIGNAL(visibilityChanged(bool)), ui->actionDisplayOptions, SLOT(setChecked(bool))); /// --- Help Menu --- connect( ui->actionHelp, &QAction::triggered, this, &MainWindow2::helpBox); connect( ui->actionAbout, &QAction::triggered, this, &MainWindow2::aboutPencil ); // --------------- Menus ------------------ m_recentFileMenu = new RecentFileMenu( tr("Open Recent"), this ); m_recentFileMenu->loadFromDisk(); ui->menuFile->insertMenu( ui->actionSave, m_recentFileMenu ); QObject::connect( m_recentFileMenu, SIGNAL( loadRecentFile( QString ) ), this, SLOT( openFile( QString ) ) ); connect( ui->menuEdit, SIGNAL( aboutToShow() ), this, SLOT( undoActSetText() ) ); connect( ui->menuEdit, SIGNAL( aboutToHide() ), this, SLOT( undoActSetEnabled() ) ); }