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);
// ToolTip
// ToolBar
{
m_toolBar = addToolBar("ToolBar");
m_toolBar->setMovable(false);
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"));
connect(m_addClientToolBarAction, &QAction::triggered, this, &MainWidget::onAddClientTriggered);
@@ -108,7 +113,7 @@ MainWidget::MainWidget(QWidget *parent)
}
m_tableView->resizeColumnsToContents();
selectionChanged({}, {});
selectionChanged();
modelStatusChanged();
loadSettings();
}
@@ -194,13 +199,15 @@ void MainWidget::onDeleteClientTriggered()
m_licenseModel->deleteClient(list);
}
void MainWidget::selectionChanged(const QItemSelection &selected, const QItemSelection &deselected)
void MainWidget::selectionChanged()
{
Q_UNUSED(deselected);
auto selectedCount = selected.size();
m_editClientsMenuAction->setEnabled(selectedCount == 1);
m_deleteClientsMenuAction->setEnabled(selectedCount > 0);
auto selectedCount = m_tableView->selectionModel()->selectedRows().size();
m_addClientToolBarAction->setEnabled(m_licenseModel->getStatus() == LicenseModel::Status::Ok);
m_editClientToolBarAction->setEnabled(selectedCount == 1 && m_licenseModel->getStatus() == LicenseModel::Status::Ok);
m_deleteClientToolBarAction->setEnabled(selectedCount > 0 && m_licenseModel->getStatus() == LicenseModel::Status::Ok);
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)
@@ -273,9 +280,6 @@ void MainWidget::modelStatusChanged()
break;
}
m_addClientToolBarAction->setEnabled(m_licenseModel->getStatus() == LicenseModel::Status::Ok);
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);
selectionChanged();
}

View File

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