fix: added toolbar buttons and fixed qmenu actions logic
This commit is contained in:
@@ -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);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -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};
|
||||||
|
|||||||
Reference in New Issue
Block a user