fix: added toolbar buttons and fixed qmenu actions logic

This commit is contained in:
2026-01-20 15:03:18 +03:00
parent 8a10b6013b
commit 3241dd674d
2 changed files with 19 additions and 13 deletions

View File

@@ -69,11 +69,16 @@ MainWidget::MainWidget(QWidget *parent)
connect(m_tableView->selectionModel(), &QItemSelectionModel::selectionChanged, this, &MainWidget::selectionChanged); connect(m_tableView->selectionModel(), &QItemSelectionModel::selectionChanged, this, &MainWidget::selectionChanged);
// ToolTip // ToolBar
{ {
m_toolBar = addToolBar("ToolBar"); m_toolBar = addToolBar("ToolBar");
m_toolBar->setMovable(false); m_toolBar->setMovable(false);
m_addClientToolBarAction = m_toolBar->addAction(QIcon(QStringLiteral(":/deps/add.png")), tr("Add client")); m_addClientToolBarAction = m_toolBar->addAction(QIcon(QStringLiteral(":/deps/add.png")), tr("Add client"));
m_editClientToolBarAction = m_toolBar->addAction(QIcon(QStringLiteral(":/deps/edit.png")), tr("Edit client"));
m_deleteClientToolBarAction = m_toolBar->addAction(QIcon(QStringLiteral(":/deps/delete.png")), tr("Delete client"));
auto *spacer = new QWidget(m_toolBar);
spacer->setSizePolicy(QSizePolicy::Expanding, QSizePolicy::Preferred);
m_toolBar->addWidget(spacer);
m_infoToolBarAction = m_toolBar->addAction(QIcon(QStringLiteral(":/deps/info.png")), tr("Get info")); m_infoToolBarAction = m_toolBar->addAction(QIcon(QStringLiteral(":/deps/info.png")), tr("Get info"));
connect(m_addClientToolBarAction, &QAction::triggered, this, &MainWidget::onAddClientTriggered); connect(m_addClientToolBarAction, &QAction::triggered, this, &MainWidget::onAddClientTriggered);
@@ -108,7 +113,7 @@ MainWidget::MainWidget(QWidget *parent)
} }
m_tableView->resizeColumnsToContents(); m_tableView->resizeColumnsToContents();
selectionChanged({}, {}); selectionChanged();
modelStatusChanged(); modelStatusChanged();
loadSettings(); loadSettings();
} }
@@ -194,13 +199,15 @@ void MainWidget::onDeleteClientTriggered()
m_licenseModel->deleteClient(list); m_licenseModel->deleteClient(list);
} }
void MainWidget::selectionChanged(const QItemSelection &selected, const QItemSelection &deselected) void MainWidget::selectionChanged()
{ {
Q_UNUSED(deselected); auto selectedCount = m_tableView->selectionModel()->selectedRows().size();
m_addClientToolBarAction->setEnabled(m_licenseModel->getStatus() == LicenseModel::Status::Ok);
auto selectedCount = selected.size(); m_editClientToolBarAction->setEnabled(selectedCount == 1 && m_licenseModel->getStatus() == LicenseModel::Status::Ok);
m_editClientsMenuAction->setEnabled(selectedCount == 1); m_deleteClientToolBarAction->setEnabled(selectedCount > 0 && m_licenseModel->getStatus() == LicenseModel::Status::Ok);
m_deleteClientsMenuAction->setEnabled(selectedCount > 0); m_addClientsMenuAction->setEnabled(m_licenseModel->getStatus() == LicenseModel::Status::Ok);
m_editClientsMenuAction->setEnabled(selectedCount == 1 && m_licenseModel->getStatus() == LicenseModel::Status::Ok);
m_deleteClientsMenuAction->setEnabled(selectedCount > 0 && m_licenseModel->getStatus() == LicenseModel::Status::Ok);
} }
void MainWidget::closeEvent(QCloseEvent *event) void MainWidget::closeEvent(QCloseEvent *event)
@@ -273,9 +280,6 @@ void MainWidget::modelStatusChanged()
break; break;
} }
m_addClientToolBarAction->setEnabled(m_licenseModel->getStatus() == LicenseModel::Status::Ok); selectionChanged();
m_addClientsMenuAction->setEnabled(m_licenseModel->getStatus() == LicenseModel::Status::Ok);
m_editClientsMenuAction->setEnabled(m_licenseModel->getStatus() == LicenseModel::Status::Ok);
m_deleteClientsMenuAction->setEnabled(m_licenseModel->getStatus() == LicenseModel::Status::Ok);
} }

View File

@@ -32,7 +32,7 @@ private slots:
void onEditClientTriggered(); void onEditClientTriggered();
void onDeleteClientTriggered(); void onDeleteClientTriggered();
void onEditClientDialogClosed(int result); void onEditClientDialogClosed(int result);
void selectionChanged(const QItemSelection &selected, const QItemSelection &deselected); void selectionChanged();
void modelStatusChanged(); void modelStatusChanged();
private: private:
void saveSettings(); void saveSettings();
@@ -44,6 +44,8 @@ private:
QToolBar* m_toolBar{nullptr}; QToolBar* m_toolBar{nullptr};
QMenu* m_menu{nullptr}; QMenu* m_menu{nullptr};
QAction* m_addClientToolBarAction{nullptr}; QAction* m_addClientToolBarAction{nullptr};
QAction* m_editClientToolBarAction{nullptr};
QAction* m_deleteClientToolBarAction{nullptr};
QAction* m_infoToolBarAction{nullptr}; QAction* m_infoToolBarAction{nullptr};
QAction* m_reloadTableMenuAction{nullptr}; QAction* m_reloadTableMenuAction{nullptr};
QAction* m_addClientsMenuAction{nullptr}; QAction* m_addClientsMenuAction{nullptr};