From c732cbe28b5266e3ea92ffb1c6565932582f941a Mon Sep 17 00:00:00 2001 From: baydam Date: Mon, 24 Aug 2015 17:25:20 +0000 Subject: [PATCH 1/2] Rearrange hotkeys --- .gitignore | 4 +-- MainWindow.cpp | 79 ++++++++++++++++++++++++++++---------------------- 2 files changed, 47 insertions(+), 36 deletions(-) diff --git a/.gitignore b/.gitignore index 2698053..ec07a35 100644 --- a/.gitignore +++ b/.gitignore @@ -18,7 +18,7 @@ *.tar *.rar *.qm -Makefile +Makefile* prototypes/sdl/run prototypes/wx-01-simple/run prototypes/wx-03-polyline/run @@ -38,5 +38,5 @@ html/ .qmake.stash Info.plist *.xcodeproj/ -*.pro.user +*.pro.user* *.app diff --git a/MainWindow.cpp b/MainWindow.cpp index 244dade..7fd6b7e 100644 --- a/MainWindow.cpp +++ b/MainWindow.cpp @@ -299,7 +299,11 @@ bool MainWindow::eventFilter(QObject *obj, QEvent *event) switch (keyEvent->key()) { case Qt::Key_F: if (outputWindow->windowState() != Qt::WindowFullScreen) + { outputWindow->setFullScreen(true); + outputWindowFullScreenAction->setChecked(true); + outputWindowFullScreenAction->setEnabled(true); + } break; case Qt::Key_N: newFile(); @@ -325,19 +329,9 @@ bool MainWindow::eventFilter(QObject *obj, QEvent *event) case Qt::Key_E: addEllipse(); break; - case Qt::Key_D: + case Qt::Key_W: outputWindow->setVisible(true); break; - case Qt::Key_P: - if (_isPlaying) - { - pause(); - } - else - { - play(); - } - break; case Qt::Key_R: rewind(); break; @@ -353,6 +347,19 @@ bool MainWindow::eventFilter(QObject *obj, QEvent *event) else if (keyEvent->key() == Qt::Key_Escape) { outputWindow->setFullScreen(false); + outputWindowFullScreenAction->setChecked(false); + outputWindowFullScreenAction->setEnabled(false); + } + else if (keyEvent->key() == Qt::Key_Space) + { + if (_isPlaying) + { + pause(); + } + else + { + play(); + } } eventKey = false; @@ -1280,6 +1287,7 @@ void MainWindow::createActions() // Save as. saveAsAction = new QAction(tr("Save &As..."), this); saveAsAction->setIcon(QIcon(":/save-as")); + saveAsAction->setShortcut(tr("Ctrl+Shift+S")); saveAsAction->setStatusTip(tr("Save the project as...")); saveAsAction->setIconVisibleInMenu(false); connect(saveAsAction, SIGNAL(triggered()), this, SLOT(saveAs())); @@ -1307,26 +1315,29 @@ void MainWindow::createActions() connect(clearRecentFileActions, SIGNAL(triggered()), this, SLOT(clearRecentFileList())); // Empty list of recent video action - emptyRecentVideos = new QAction(tr("No Videos"), this); + emptyRecentVideos = new QAction(tr("No Recents Videos"), this); emptyRecentVideos->setEnabled(false); // Import video. - importVideoAction = new QAction(tr("&Import media source file..."), this); + importVideoAction = new QAction(tr("&Import Video File..."), this); + importVideoAction->setShortcut(tr("Ctrl+I")); importVideoAction->setIcon(QIcon(":/add-video")); - importVideoAction->setStatusTip(tr("Import a media source file...")); + importVideoAction->setStatusTip(tr("Import a video source file...")); importVideoAction->setIconVisibleInMenu(false); connect(importVideoAction, SIGNAL(triggered()), this, SLOT(importVideo())); // Import imiage. - importImageAction = new QAction(tr("&Import media source file..."), this); + importImageAction = new QAction(tr("&Import Image File..."), this); + importImageAction->setShortcut(tr("Ctrl+Shift+I")); importImageAction->setIcon(QIcon(":/add-image")); - importImageAction->setStatusTip(tr("Import a media source file...")); + importImageAction->setStatusTip(tr("Import a image source file...")); importImageAction->setIconVisibleInMenu(false); connect(importImageAction, SIGNAL(triggered()), this, SLOT(importImage())); // Add color. - addColorAction = new QAction(tr("Add &Color paint..."), this); + addColorAction = new QAction(tr("Add &Color Paint..."), this); + addColorAction->setShortcut(tr("Ctrl+A")); addColorAction->setIcon(QIcon(":/add-color")); addColorAction->setStatusTip(tr("Add a color paint...")); addColorAction->setIconVisibleInMenu(false); @@ -1359,7 +1370,7 @@ void MainWindow::createActions() // Duplicate. cloneAction = new QAction(tr("Duplicate"), this); - cloneAction->setShortcut(tr("CTRL+V")); + cloneAction->setShortcut(tr("Ctrl+D")); cloneAction->setStatusTip(tr("Duplicate item")); cloneAction->setIconVisibleInMenu(false); connect(cloneAction, SIGNAL(triggered()), this, SLOT(cloneItem())); @@ -1381,7 +1392,7 @@ void MainWindow::createActions() // Preferences... preferencesAction = new QAction(tr("&Preferences..."), this); //preferencesAction->setIcon(QIcon(":/preferences")); - preferencesAction->setShortcut(QKeySequence::Preferences); + preferencesAction->setShortcut(tr("CTRL+,")); preferencesAction->setStatusTip(tr("Configure preferences...")); //preferencesAction->setIconVisibleInMenu(false); connect(preferencesAction, SIGNAL(triggered()), this, SLOT(preferences())); @@ -1415,7 +1426,7 @@ void MainWindow::createActions() // Play. playAction = new QAction(tr("Play"), this); - playAction->setShortcut(tr("CTRL+P")); + playAction->setShortcut(Qt::Key_Space); playAction->setIcon(QIcon(":/play")); playAction->setStatusTip(tr("Play")); playAction->setIconVisibleInMenu(false); @@ -1424,7 +1435,7 @@ void MainWindow::createActions() // Pause. pauseAction = new QAction(tr("Pause"), this); - pauseAction->setShortcut(tr("CTRL+P")); + pauseAction->setShortcut(Qt::Key_Space); pauseAction->setIcon(QIcon(":/pause")); pauseAction->setStatusTip(tr("Pause")); pauseAction->setIconVisibleInMenu(false); @@ -1440,8 +1451,8 @@ void MainWindow::createActions() connect(rewindAction, SIGNAL(triggered()), this, SLOT(rewind())); // Toggle display of output window. - displayOutputWindowAction = new QAction(tr("&Display output window"), this); - displayOutputWindowAction->setShortcut(tr("Ctrl+D")); + displayOutputWindowAction = new QAction(tr("&Display Output Window"), this); + displayOutputWindowAction->setShortcut(tr("Ctrl+W")); displayOutputWindowAction->setIcon(QIcon(":/output-window")); displayOutputWindowAction->setStatusTip(tr("Display output window")); displayOutputWindowAction->setIconVisibleInMenu(false); @@ -1453,7 +1464,7 @@ void MainWindow::createActions() connect(outputWindow, SIGNAL(closed()), displayOutputWindowAction, SLOT(toggle())); // Toggle display of output window. - outputWindowFullScreenAction = new QAction(tr("&Full screen"), this); + outputWindowFullScreenAction = new QAction(tr("&Fullscreen"), this); outputWindowFullScreenAction->setIcon(QIcon(":/fullscreen")); outputWindowFullScreenAction->setShortcut(tr("Ctrl+F")); outputWindowFullScreenAction->setStatusTip(tr("Full screen")); @@ -1468,8 +1479,8 @@ void MainWindow::createActions() connect(displayOutputWindowAction, SIGNAL(toggled(bool)), outputWindowFullScreenAction, SLOT(setEnabled(bool))); // Toggle display of canvas controls. - displayControlsAction = new QAction(tr("&Display canvas controls"), this); - // displayCanvasControls->setShortcut(tr("Ctrl+E")); + displayControlsAction = new QAction(tr("&Display Canvas Controls"), this); + displayControlsAction->setShortcut(tr("Alt+D")); displayControlsAction->setIcon(QIcon(":/control-points")); displayControlsAction->setStatusTip(tr("Display canvas controls")); displayControlsAction->setIconVisibleInMenu(false); @@ -1479,8 +1490,8 @@ void MainWindow::createActions() connect(displayControlsAction, SIGNAL(toggled(bool)), this, SLOT(enableDisplayControls(bool))); // Toggle sticky vertices - stickyVerticesAction = new QAction(tr("&Sticky vertices"), this); - // stickyVertices->setShortcut(tr("Ctrl+E")); + stickyVerticesAction = new QAction(tr("&Sticky Vertices"), this); + stickyVerticesAction->setShortcut(tr("Alt+S")); stickyVerticesAction->setIcon(QIcon(":/control-points")); stickyVerticesAction->setStatusTip(tr("Enable sticky vertices")); stickyVerticesAction->setIconVisibleInMenu(false); @@ -1489,8 +1500,8 @@ void MainWindow::createActions() // Manage sticky vertices connect(stickyVerticesAction, SIGNAL(toggled(bool)), this, SLOT(enableStickyVertices(bool))); - displayTestSignalAction = new QAction(tr("&Display test signal"), this); - // displayTestSignal->setShortcut(tr("Ctrl+T")); + displayTestSignalAction = new QAction(tr("&Display Test Signal"), this); + displayTestSignalAction->setShortcut(tr("Alt+T")); displayTestSignalAction->setIcon(QIcon(":/control-points")); displayTestSignalAction->setStatusTip(tr("Display test signal")); displayTestSignalAction->setIconVisibleInMenu(false); @@ -1534,13 +1545,13 @@ void MainWindow::createMenus() // Recent file separator separatorAction = fileMenu->addSeparator(); - recentFileMenu = fileMenu->addMenu(tr("Recents projects")); + recentFileMenu = fileMenu->addMenu(tr("Open Recents Projects")); for (int i = 0; i < MaxRecentFiles; ++i) recentFileMenu->addAction(recentFileActions[i]); recentFileMenu->addAction(clearRecentFileActions); // Recent import video - recentVideoMenu = fileMenu->addMenu(tr("Recents video")); + recentVideoMenu = fileMenu->addMenu(tr("Open Recents Videos")); recentVideoMenu->addAction(emptyRecentVideos); for (int i = 0; i < MaxRecentVideo; ++i) recentVideoMenu->addAction(recentVideoActions[i]); @@ -1857,10 +1868,10 @@ void MainWindow::updateRecentFileActions() if (numRecentFiles > 0) { separatorAction->setVisible(true); - clearRecentFileActions->setText(tr("Clear list")); + clearRecentFileActions->setText(tr("Clear List")); clearRecentFileActions->setEnabled(true); } else { - clearRecentFileActions->setText(tr("No Document")); + clearRecentFileActions->setText(tr("No Recents Projects")); clearRecentFileActions->setEnabled(false); } } From 092553a30b3ccdacda787760ac8774dbf6fa0a72 Mon Sep 17 00:00:00 2001 From: baydam Date: Tue, 1 Sep 2015 12:27:41 +0000 Subject: [PATCH 2/2] Add paint context menu --- MainWindow.cpp | 105 +++++++++++++++++++++++++++++++++++++++---------- MainWindow.h | 21 +++++++--- 2 files changed, 99 insertions(+), 27 deletions(-) diff --git a/MainWindow.cpp b/MainWindow.cpp index 7fd6b7e..86f6fc4 100644 --- a/MainWindow.cpp +++ b/MainWindow.cpp @@ -58,7 +58,8 @@ MainWindow::MainWindow() createLayout(); createActions(); createMenus(); - createContextMenu(); + createMappingContextMenu(); + createPaintContextMenu(); createToolBars(); createStatusBar(); updateRecentFileActions(); @@ -736,12 +737,34 @@ void MainWindow::cloneItem() } } -void MainWindow::renameItem() +void MainWindow::renameMappingItem() { // Set current item editable and rename it QListWidgetItem* item = mappingList->currentItem(); item->setFlags(item->flags() | Qt::ItemIsEditable); mappingList->editItem(item); + contentTab->setCurrentWidget(mappingSplitter); +} + +void MainWindow::deletePaintItem() +{ + if(currentSelectedItem) + { + deletePaint(getItemId(*paintList->currentItem()), false); + } + else + { + qCritical() << "No selected paint" << endl; + } +} + +void MainWindow::renamePaintItem() +{ + // Set current item editable and rename it + QListWidgetItem* item = paintList->currentItem(); + item->setFlags(item->flags() | Qt::ItemIsEditable); + paintList->editItem(item); + contentTab->setCurrentWidget(paintSplitter); } void MainWindow::openRecentFile() @@ -1375,19 +1398,33 @@ void MainWindow::createActions() cloneAction->setIconVisibleInMenu(false); connect(cloneAction, SIGNAL(triggered()), this, SLOT(cloneItem())); - // Delete. - deleteAction = new QAction(tr("Delete"), this); - deleteAction->setShortcut(tr("CTRL+DEL")); - deleteAction->setStatusTip(tr("Delete item")); - deleteAction->setIconVisibleInMenu(false); - connect(deleteAction, SIGNAL(triggered()), this, SLOT(deleteItem())); + // Delete mapping. + deleteMappingAction = new QAction(tr("Delete"), this); + deleteMappingAction->setShortcut(tr("CTRL+DEL")); + deleteMappingAction->setStatusTip(tr("Delete item")); + deleteMappingAction->setIconVisibleInMenu(false); + connect(deleteMappingAction, SIGNAL(triggered()), this, SLOT(deleteItem())); - // Rename. - renameAction = new QAction(tr("Rename"), this); - renameAction->setShortcut(Qt::Key_F2); - renameAction->setStatusTip(tr("Rename item")); - renameAction->setIconVisibleInMenu(false); - connect(renameAction, SIGNAL(triggered()), this, SLOT(renameItem())); + // Rename mapping. + renameMappingAction = new QAction(tr("Rename"), this); + renameMappingAction->setShortcut(Qt::Key_F2); + renameMappingAction->setStatusTip(tr("Rename item")); + renameMappingAction->setIconVisibleInMenu(false); + connect(renameMappingAction, SIGNAL(triggered()), this, SLOT(renameMappingItem())); + + // Delete paint. + deletePaintAction = new QAction(tr("Delete"), this); + //deletePaintAction->setShortcut(tr("CTRL+DEL")); + deletePaintAction->setStatusTip(tr("Delete item")); + deletePaintAction->setIconVisibleInMenu(false); + connect(deletePaintAction, SIGNAL(triggered()), this, SLOT(deletePaintItem())); + + // Rename paint. + renamePaintAction = new QAction(tr("Rename"), this); + //renamePaintAction->setShortcut(Qt::Key_F2); + renamePaintAction->setStatusTip(tr("Rename item")); + renamePaintAction->setIconVisibleInMenu(false); + connect(renamePaintAction, SIGNAL(triggered()), this, SLOT(renamePaintItem())); // Preferences... preferencesAction = new QAction(tr("&Preferences..."), this); @@ -1565,7 +1602,7 @@ void MainWindow::createMenus() editMenu = menuBar->addMenu(tr("&Edit")); editMenu->addAction(undoAction); editMenu->addAction(redoAction); - editMenu->addAction(deleteAction); + editMenu->addAction(deleteMappingAction); editMenu->addAction(preferencesAction); // View. @@ -1589,15 +1626,15 @@ void MainWindow::createMenus() } -void MainWindow::createContextMenu() +void MainWindow::createMappingContextMenu() { // Context menu. - contextMenu = new QMenu(); + mappingContextMenu = new QMenu(); // Add different Action - contextMenu->addAction(cloneAction); - contextMenu->addAction(deleteAction); - contextMenu->addAction(renameAction); + mappingContextMenu->addAction(cloneAction); + mappingContextMenu->addAction(deleteMappingAction); + mappingContextMenu->addAction(renameMappingAction); // Set context menu policy mappingList->setContextMenuPolicy(Qt::CustomContextMenu); @@ -1610,6 +1647,24 @@ void MainWindow::createContextMenu() connect(outputWindow, SIGNAL(customContextMenuRequested(const QPoint&)), this, SLOT(showMappingContextMenu(const QPoint&))); } +void MainWindow::createPaintContextMenu() +{ + // Paint Context Menu + paintContextMenu = new QMenu(); + + // Add Actions + paintContextMenu->addAction(deletePaintAction); + paintContextMenu->addAction(renamePaintAction); + + // Define Context policy + paintList->setContextMenuPolicy(Qt::CustomContextMenu); + sourceCanvas->setContextMenuPolicy(Qt::CustomContextMenu); + + // Connexions + connect(paintList, SIGNAL(customContextMenuRequested(const QPoint&)), this, SLOT(showPaintContextMenu(const QPoint&))); + connect(sourceCanvas, SIGNAL(customContextMenuRequested(const QPoint&)), this, SLOT(showPaintContextMenu(const QPoint&))); +} + void MainWindow::createToolBars() { mainToolBar = addToolBar(tr("&File")); @@ -2276,7 +2331,15 @@ void MainWindow::showMappingContextMenu(const QPoint &point) QWidget *objectSender = dynamic_cast(sender()); if (objectSender != NULL && mappingList->count() > 0) - contextMenu->exec(objectSender->mapToGlobal(point)); + mappingContextMenu->exec(objectSender->mapToGlobal(point)); +} + +void MainWindow::showPaintContextMenu(const QPoint &point) +{ + QWidget *objectSender = dynamic_cast(sender()); + + if (objectSender != NULL && paintList->count() > 0) + paintContextMenu->exec(objectSender->mapToGlobal(point)); } QString MainWindow::strippedName(const QString &fullFileName) diff --git a/MainWindow.h b/MainWindow.h index ae4dda6..171f612 100644 --- a/MainWindow.h +++ b/MainWindow.h @@ -91,8 +91,11 @@ private slots: void openRecentVideo(); // Edit menu. void deleteItem(); + // Context menu. void cloneItem(); - void renameItem(); + void renameMappingItem(); + void deletePaintItem(); + void renamePaintItem(); // Widget callbacks. void handlePaintItemSelectionChanged(); @@ -185,8 +188,10 @@ public slots: void enableStickyVertices(bool display); void enableTestSignal(bool enable); - // Show Context Menu + // Show Mapping Context Menu void showMappingContextMenu(const QPoint &point); + // Show Paint Context Menu + void showPaintContextMenu(const QPoint &point); public: bool setTextureUri(int texture_id, const std::string &uri); @@ -199,7 +204,8 @@ private: void createLayout(); void createActions(); void createMenus(); - void createContextMenu(); + void createMappingContextMenu(); + void createPaintContextMenu(); void createToolBars(); void createStatusBar(); void updateRecentFileActions(); @@ -259,7 +265,8 @@ private: QMenu *helpMenu; QMenu *recentFileMenu; QMenu *recentVideoMenu; - QMenu *contextMenu; + QMenu *mappingContextMenu; + QMenu *paintContextMenu; // Toolbar. QToolBar *mainToolBar; @@ -278,8 +285,10 @@ private: QAction *undoAction; QAction *redoAction; QAction *cloneAction; - QAction *deleteAction; - QAction *renameAction; + QAction *deleteMappingAction; + QAction *renameMappingAction; + QAction *deletePaintAction; + QAction *renamePaintAction; QAction *preferencesAction; QAction *aboutAction; QAction *clearRecentFileActions;