diff --git a/src/MainWidget/MainWidget.cpp b/src/MainWidget/MainWidget.cpp index 9c59b4b..223dfb2 100644 --- a/src/MainWidget/MainWidget.cpp +++ b/src/MainWidget/MainWidget.cpp @@ -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(); } diff --git a/src/MainWidget/MainWidget.h b/src/MainWidget/MainWidget.h index f68298f..dcb9151 100644 --- a/src/MainWidget/MainWidget.h +++ b/src/MainWidget/MainWidget.h @@ -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};