From c7012ceff5c25c1a2b5d4c23d9faed0ddf1c03c2 Mon Sep 17 00:00:00 2001 From: Bent Witthold Date: Thu, 4 Dec 2025 16:44:31 +0100 Subject: [PATCH] Added menu action dummies for the menus "File" and "Edit". --- mainwindow.cpp | 117 +++++++++++++++++++++++++++++++++++++++++++++++++ mainwindow.h | 32 ++++++++++++-- 2 files changed, 145 insertions(+), 4 deletions(-) diff --git a/mainwindow.cpp b/mainwindow.cpp index 0af89ed..9dc7987 100644 --- a/mainwindow.cpp +++ b/mainwindow.cpp @@ -137,4 +137,121 @@ void MainWindow::createHelpMenu() { void MainWindow::createActions() { // TODO add generic menu actions (file/new, edit/cut, ...) + createFileActions(); + createEditActions(); +} + +void MainWindow::createFileActions() { + m_newFileAct = make_unique(tr("&New File"), this); + m_newFileAct->setShortcut(QKeySequence(Qt::CTRL | Qt::SHIFT | Qt::Key_N)); + m_newFileAct->setStatusTip(tr("Create a new file")); + // connect(m_newAct, &QAction::triggered, this, &MainWindow::newFile); + m_newFileAct->setEnabled(false); + ui->menu_File->addAction(m_newFileAct.get()); + + m_openAct = make_unique(tr("&Open..."), this); + m_openAct->setShortcuts(QKeySequence::Open); + m_openAct->setStatusTip(tr("Open an existing file")); + // connect(m_openAct, &QAction::triggered, this, &MainWindow::open); + m_openAct->setEnabled(false); + ui->menu_File->addAction(m_openAct.get()); + + m_saveAct = make_unique(tr("&Save"), this); + m_saveAct->setShortcuts(QKeySequence::Save); + m_saveAct->setStatusTip(tr("Save the document to disk")); + // connect(m_saveAct, &QAction::triggered, this, &MainWindow::save); + m_saveAct->setEnabled(false); + ui->menu_File->addAction(m_saveAct.get()); + + ui->menu_File->addSeparator(); + + m_importAct = make_unique(tr("&Import CSV..."), this); + m_importAct->setStatusTip(tr("Import an existing CSV file")); + // connect(m_importAct, &QAction::triggered, this, &MainWindow::importCSV); + m_importAct->setEnabled(false); + ui->menu_File->addAction(m_importAct.get()); + + m_exportAct = make_unique(tr("&Export CSV..."), this); + m_exportAct->setStatusTip(tr("Export content to a CSV document to disk")); + // connect(m_exportAct, &QAction::triggered, this, &MainWindow::exportCSV); + m_exportAct->setEnabled(false); + ui->menu_File->addAction(m_exportAct.get()); + + ui->menu_File->addSeparator(); + + m_printAct = make_unique(tr("&Print..."), this); + m_printAct->setShortcuts(QKeySequence::Print); + m_printAct->setStatusTip(tr("Print the document")); + // connect(m_printAct, &QAction::triggered, this, &MainWindow::print); + m_printAct->setEnabled(false); + ui->menu_File->addAction(m_printAct.get()); + + ui->menu_File->addSeparator(); + + m_exitAct = make_unique(tr("E&xit"), this); + m_exitAct->setShortcuts(QKeySequence::Quit); + m_exitAct->setStatusTip(tr("Exit the application")); + connect(m_exitAct.get(), &QAction::triggered, this, &QWidget::close); + ui->menu_File->addAction(m_exitAct.get()); +} + +void MainWindow::createEditActions() { + m_cutAct = make_unique(tr("Cu&t"), this); + m_cutAct->setShortcuts(QKeySequence::Cut); + m_cutAct->setStatusTip( + tr("Cut the current selection's contents to the " + "clipboard")); + // connect(m_cutAct, &QAction::triggered, this, &MainWindow::cut); + m_cutAct->setEnabled(false); + ui->menu_Edit->addAction(m_cutAct.get()); + + m_copyAct = make_unique(tr("&Copy"), this); + m_copyAct->setShortcuts(QKeySequence::Copy); + m_copyAct->setStatusTip( + tr("Copy the current selection's contents to the " + "clipboard")); + // connect(m_copyAct, &QAction::triggered, this, &MainWindow::copy); + m_copyAct->setEnabled(false); + ui->menu_Edit->addAction(m_copyAct.get()); + + m_pasteAct = make_unique(tr("&Paste"), this); + m_pasteAct->setShortcuts(QKeySequence::Paste); + m_pasteAct->setStatusTip( + tr("Paste the clipboard's contents into the current " + "selection")); + // connect(m_pasteAct, &QAction::triggered, this, &MainWindow::paste); + m_pasteAct->setEnabled(false); + ui->menu_Edit->addAction(m_pasteAct.get()); + + ui->menu_Edit->addSeparator(); + + m_openNewItemDialogAct = make_unique(tr("&New item"), this); + m_openNewItemDialogAct->setShortcut(QKeySequence::New); + m_openNewItemDialogAct->setStatusTip(tr("Opens a dialog to add a new item")); + // connect(m_openNewItemDialogAct, &QAction::triggered, this, &MainWindow::openNewItemDialog); + m_openNewItemDialogAct->setEnabled(false); + ui->menu_Edit->addAction(m_openNewItemDialogAct.get()); + + m_openEditItemDialogAct = make_unique(tr("&Edit item"), this); + m_openEditItemDialogAct->setShortcut(QKeySequence(Qt::CTRL | Qt::Key_E)); + m_openEditItemDialogAct->setStatusTip(tr("Opens a edit dialog for the current item")); + // connect(m_openEditItemDialogAct, &QAction::triggered, this, &MainWindow::openEditDialog); + m_openEditItemDialogAct->setEnabled(false); + ui->menu_Edit->addAction(m_openEditItemDialogAct.get()); + + m_deleteItemAct = make_unique(tr("&Delete item"), this); + m_deleteItemAct->setShortcuts(QKeySequence::Delete); + m_deleteItemAct->setStatusTip(tr("Delete currently selected items")); + // connect(m_deleteAct, &QAction::triggered, this, &MainWindow::deleteItem); + m_deleteItemAct->setEnabled(false); + ui->menu_Edit->addAction(m_deleteItemAct.get()); + + ui->menu_Edit->addSeparator(); + + m_findItemAct = make_unique(tr("&Find item(s)"), this); + m_findItemAct->setShortcuts(QKeySequence::Find); + m_findItemAct->setStatusTip(tr("Opens a dialog to find item(s) by containing text")); + // connect(m_findItemAct, &QAction::triggered, this, &MainWindow::findItems); + m_findItemAct->setEnabled(false); + ui->menu_Edit->addAction(m_findItemAct.get()); } diff --git a/mainwindow.h b/mainwindow.h index 5180283..40ea7ec 100644 --- a/mainwindow.h +++ b/mainwindow.h @@ -5,14 +5,17 @@ QT_BEGIN_NAMESPACE -class GenericCore; - class QAbstractItemModel; + namespace Ui { class MainWindow; } QT_END_NAMESPACE +class GenericCore; + +using namespace std; + class MainWindow : public QMainWindow { Q_OBJECT @@ -38,11 +41,32 @@ class MainWindow : public QMainWindow { Ui::MainWindow* ui; // GenericCore* m_core; - std::unique_ptr m_core; - std::shared_ptr m_tableModel; + unique_ptr m_core; + shared_ptr m_tableModel; + + /// File actions + unique_ptr m_newFileAct; + unique_ptr m_openAct; + unique_ptr m_saveAct; + unique_ptr m_importAct; + unique_ptr m_exportAct; + unique_ptr m_printAct; + unique_ptr m_exitAct; + /// Edit actions + unique_ptr m_undoAct; + unique_ptr m_redoAct; + unique_ptr m_cutAct; + unique_ptr m_copyAct; + unique_ptr m_pasteAct; + unique_ptr m_openNewItemDialogAct; + unique_ptr m_openEditItemDialogAct; + unique_ptr m_deleteItemAct; + unique_ptr m_findItemAct; /// Setup functions void createActions(); + void createFileActions(); + void createEditActions(); void createHelpMenu(); }; #endif // MAINWINDOW_H