Added "Server" menu with "fetch items" and "post items" actions to trigger communication with the RESTful server.

This commit is contained in:
2026-01-29 09:00:12 +01:00
parent 8f61c6bc2f
commit 518bebcbb7
3 changed files with 44 additions and 2 deletions

View File

@ -297,11 +297,23 @@ void MainWindow::findItems() {
}
}
void MainWindow::fetchItems() {
showStatusMessage(tr("Invoked 'Server|Fetch items'"));
emit m_core->fetchItemsFromServer();
}
void MainWindow::postItems() {
showStatusMessage(tr("Invoked 'Server|Post items'"));
const int currentRow = ui->tableView->currentIndex().row();
emit m_core->sendItemToServer(currentRow);
}
void MainWindow::createActions() {
// TODO add generic menu actions (file/new, edit/cut, ...)
createFileActions();
createUndoActions();
createEditActions();
createServerActions();
}
void MainWindow::createFileActions() {
@ -433,7 +445,7 @@ void MainWindow::createEditActions() {
ui->menu_Edit->addAction(m_openEditItemDialogAct.get());
m_deleteItemAct = make_unique<QAction>(tr("&Delete item(s)"), this);
m_deleteItemAct->setShortcuts(QKeySequence::Delete);
m_deleteItemAct->setShortcut(QKeySequence::Delete);
m_deleteItemAct->setStatusTip(tr("Delete currently selected item(s)"));
// connect(m_deleteItemAct.get(), &QAction::triggered, this, &MainWindow::deleteSelectedtItems);
connect(m_deleteItemAct.get(), &QAction::triggered, this, &MainWindow::deleteCurrentItem);
@ -448,6 +460,21 @@ void MainWindow::createEditActions() {
ui->menu_Edit->addAction(m_findItemAct.get());
}
void MainWindow::createServerActions() {
m_fetchItemsAct = make_unique<QAction>(tr("&Fetch item(s)"), this);
m_fetchItemsAct->setShortcut(QKeySequence(Qt::CTRL | Qt::ALT | Qt::Key_Down));
m_fetchItemsAct->setStatusTip(tr("Fetches all item on configured server"));
connect(m_fetchItemsAct.get(), &QAction::triggered, this, &MainWindow::fetchItems);
ui->menu_Server->addAction(m_fetchItemsAct.get());
m_postItemsAct = make_unique<QAction>(tr("&Post item(s)"), this);
m_postItemsAct->setShortcut(QKeySequence(Qt::CTRL | Qt::ALT | Qt::Key_Up));
// m_postItemsAct->setStatusTip(tr("Posts the selected items on configured server"));
m_postItemsAct->setStatusTip(tr("Posts the current item on configured server"));
connect(m_postItemsAct.get(), &QAction::triggered, this, &MainWindow::postItems);
ui->menu_Server->addAction(m_postItemsAct.get());
}
void MainWindow::createHelpMenu() {
QMenu* helpMenu = ui->menu_Help;
helpMenu->addSeparator();

View File

@ -63,6 +63,10 @@ class MainWindow : public QMainWindow {
/// 'Edit' slots
void findItems();
/// 'Server' slots
void fetchItems();
void postItems();
private:
Ui::MainWindow* ui;
@ -89,6 +93,10 @@ class MainWindow : public QMainWindow {
unique_ptr<QAction> m_openEditItemDialogAct;
unique_ptr<QAction> m_deleteItemAct;
unique_ptr<QAction> m_findItemAct;
/// Server actions
unique_ptr<QAction> m_fetchItemsAct;
unique_ptr<QAction> m_postItemsAct;
/// View actions
unique_ptr<QAction> m_showModelUndoViewAct;
@ -101,6 +109,7 @@ class MainWindow : public QMainWindow {
void createFileActions();
void createUndoActions();
void createEditActions();
void createServerActions();
void createHelpMenu();
void createGuiDialogs();
};

View File

@ -40,7 +40,7 @@
<x>0</x>
<y>0</y>
<width>800</width>
<height>25</height>
<height>22</height>
</rect>
</property>
<widget class="QMenu" name="menu_File">
@ -64,9 +64,15 @@
</property>
<addaction name="actionCheck_for_update"/>
</widget>
<widget class="QMenu" name="menu_Server">
<property name="title">
<string>&amp;Server</string>
</property>
</widget>
<addaction name="menu_File"/>
<addaction name="menu_Edit"/>
<addaction name="menu_View"/>
<addaction name="menu_Server"/>
<addaction name="menu_Help"/>
</widget>
<widget class="QStatusBar" name="statusbar"/>