feat: added information dialog and handle selection change
This commit is contained in:
@@ -40,3 +40,35 @@ target_link_libraries(
|
|||||||
Qt5::Widgets
|
Qt5::Widgets
|
||||||
)
|
)
|
||||||
|
|
||||||
|
find_package(Git QUIET)
|
||||||
|
|
||||||
|
set(GIT_BRANCH "unknown")
|
||||||
|
set(GIT_COMMIT_HASH "unknown")
|
||||||
|
|
||||||
|
if(GIT_FOUND)
|
||||||
|
execute_process(
|
||||||
|
COMMAND "${GIT_EXECUTABLE}" rev-parse --abbrev-ref HEAD
|
||||||
|
WORKING_DIRECTORY "${CMAKE_SOURCE_DIR}"
|
||||||
|
OUTPUT_VARIABLE GIT_BRANCH
|
||||||
|
OUTPUT_STRIP_TRAILING_WHITESPACE
|
||||||
|
ERROR_QUIET
|
||||||
|
)
|
||||||
|
|
||||||
|
execute_process(
|
||||||
|
COMMAND "${GIT_EXECUTABLE}" rev-parse HEAD
|
||||||
|
WORKING_DIRECTORY "${CMAKE_SOURCE_DIR}"
|
||||||
|
OUTPUT_VARIABLE GIT_COMMIT_HASH
|
||||||
|
OUTPUT_STRIP_TRAILING_WHITESPACE
|
||||||
|
ERROR_QUIET
|
||||||
|
)
|
||||||
|
|
||||||
|
if(GIT_BRANCH STREQUAL "HEAD")
|
||||||
|
set(GIT_BRANCH "detached")
|
||||||
|
endif()
|
||||||
|
endif()
|
||||||
|
|
||||||
|
target_compile_definitions(${PROJECT_NAME} PRIVATE
|
||||||
|
PROJECT_VERSION_STR=\"${PROJECT_NAME}\"
|
||||||
|
GIT_BRANCH_STR=\"${GIT_BRANCH}\"
|
||||||
|
GIT_COMMIT_HASH_STR=\"${GIT_COMMIT_HASH}\"
|
||||||
|
)
|
||||||
|
|||||||
@@ -72,10 +72,10 @@ QVariant LicenseModel::headerData(int section, Qt::Orientation orientation, int
|
|||||||
|
|
||||||
LicenseModel::Status LicenseModel::getStatus()
|
LicenseModel::Status LicenseModel::getStatus()
|
||||||
{
|
{
|
||||||
|
return Status::Ok;
|
||||||
}
|
}
|
||||||
|
|
||||||
QString LicenseModel::getStatusText()
|
QString LicenseModel::getStatusText()
|
||||||
{
|
{
|
||||||
|
return m_errors.join('n');
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,8 +1,10 @@
|
|||||||
#include "MainWidget.h"
|
#include "MainWidget.h"
|
||||||
|
|
||||||
// Qt
|
// Qt
|
||||||
|
#include <QHeaderView>
|
||||||
|
#include <QLabel>
|
||||||
#include <QMenu>
|
#include <QMenu>
|
||||||
#include <QMessageBox>
|
#include <QPushButton>
|
||||||
#include <QTableView>
|
#include <QTableView>
|
||||||
#include <QToolBar>
|
#include <QToolBar>
|
||||||
#include <QVBoxLayout>
|
#include <QVBoxLayout>
|
||||||
@@ -12,6 +14,8 @@
|
|||||||
#include <QAction>
|
#include <QAction>
|
||||||
|
|
||||||
// Self
|
// Self
|
||||||
|
#include <QMessageBox>
|
||||||
|
|
||||||
#include "LicenseModel/LicenseModel.h"
|
#include "LicenseModel/LicenseModel.h"
|
||||||
|
|
||||||
MainWidget::MainWidget(QWidget *parent)
|
MainWidget::MainWidget(QWidget *parent)
|
||||||
@@ -25,9 +29,12 @@ MainWidget::MainWidget(QWidget *parent)
|
|||||||
// Ui
|
// Ui
|
||||||
{
|
{
|
||||||
m_tableView = new QTableView(this);
|
m_tableView = new QTableView(this);
|
||||||
|
m_tableView->horizontalHeader()->setStretchLastSection(true);
|
||||||
m_tableView->setModel(m_licenseModel);
|
m_tableView->setModel(m_licenseModel);
|
||||||
setCentralWidget(m_tableView);
|
setCentralWidget(m_tableView);
|
||||||
|
|
||||||
|
connect(m_tableView->selectionModel(), &QItemSelectionModel::selectionChanged, this, &MainWidget::selectionChanged);
|
||||||
|
|
||||||
// ToolTip
|
// ToolTip
|
||||||
{
|
{
|
||||||
m_toolBar = addToolBar("ToolBar");
|
m_toolBar = addToolBar("ToolBar");
|
||||||
@@ -61,6 +68,7 @@ MainWidget::MainWidget(QWidget *parent)
|
|||||||
}
|
}
|
||||||
|
|
||||||
m_tableView->resizeColumnsToContents();
|
m_tableView->resizeColumnsToContents();
|
||||||
|
selectionChanged({}, {});
|
||||||
loadSettings();
|
loadSettings();
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -76,7 +84,32 @@ void MainWidget::onCustomContextMenuRequested(const QPoint &pos)
|
|||||||
|
|
||||||
void MainWidget::onGetInfoTriggered()
|
void MainWidget::onGetInfoTriggered()
|
||||||
{
|
{
|
||||||
|
QDialog dialog(this);
|
||||||
|
dialog.setModal(true);
|
||||||
|
auto vLayout = new QVBoxLayout;
|
||||||
|
dialog.setLayout(vLayout);
|
||||||
|
QIcon icon(":/deps/icon.png");
|
||||||
|
QLabel *iconLabel = new QLabel;
|
||||||
|
iconLabel->setPixmap(icon.pixmap(300, 300));
|
||||||
|
iconLabel->setAlignment(Qt::AlignCenter);
|
||||||
|
vLayout->addWidget(iconLabel);
|
||||||
|
auto projectLabel = new QLabel(QString(tr("Project name: %1")).arg(PROJECT_VERSION_STR), &dialog);
|
||||||
|
projectLabel->setTextInteractionFlags(Qt::TextSelectableByMouse);
|
||||||
|
vLayout->addWidget(projectLabel);
|
||||||
|
auto gitBranchLabel = new QLabel(QString("Git branch: %1").arg(GIT_BRANCH_STR), &dialog);
|
||||||
|
gitBranchLabel->setTextInteractionFlags(Qt::TextSelectableByMouse);
|
||||||
|
vLayout->addWidget(gitBranchLabel);
|
||||||
|
auto gitCommitLabel = new QLabel(QString("Git commit: %1").arg(GIT_COMMIT_HASH_STR), &dialog);
|
||||||
|
gitCommitLabel->setTextInteractionFlags(Qt::TextSelectableByMouse);
|
||||||
|
vLayout->addWidget(gitCommitLabel);
|
||||||
|
vLayout->addStretch();
|
||||||
|
auto hLayout = new QHBoxLayout;
|
||||||
|
hLayout->addStretch();
|
||||||
|
auto closeButton = new QPushButton(tr("Close"), &dialog);
|
||||||
|
hLayout->addWidget(closeButton);
|
||||||
|
vLayout->addItem(hLayout);
|
||||||
|
connect(closeButton, &QPushButton::clicked, &dialog, &QDialog::reject);
|
||||||
|
dialog.exec();
|
||||||
}
|
}
|
||||||
|
|
||||||
void MainWidget::onReloadTableTriggered()
|
void MainWidget::onReloadTableTriggered()
|
||||||
@@ -99,6 +132,15 @@ void MainWidget::onDeleteClientTriggered()
|
|||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void MainWidget::selectionChanged(const QItemSelection &selected, const QItemSelection &deselected)
|
||||||
|
{
|
||||||
|
Q_UNUSED(deselected);
|
||||||
|
|
||||||
|
auto selectedCount = selected.size();
|
||||||
|
m_editClientsMenuAction->setEnabled(selectedCount == 1);
|
||||||
|
m_deleteClientsMenuAction->setEnabled(selectedCount > 0);
|
||||||
|
}
|
||||||
|
|
||||||
void MainWidget::closeEvent(QCloseEvent *event)
|
void MainWidget::closeEvent(QCloseEvent *event)
|
||||||
{
|
{
|
||||||
QMessageBox::StandardButton reply;
|
QMessageBox::StandardButton reply;
|
||||||
|
|||||||
@@ -3,6 +3,7 @@
|
|||||||
|
|
||||||
// Qt
|
// Qt
|
||||||
#include <QMainWindow>
|
#include <QMainWindow>
|
||||||
|
#include <QItemSelection>
|
||||||
class QTableView;
|
class QTableView;
|
||||||
class QMenu;
|
class QMenu;
|
||||||
class QAction;
|
class QAction;
|
||||||
@@ -27,6 +28,7 @@ private slots:
|
|||||||
void onAddClientTriggered();
|
void onAddClientTriggered();
|
||||||
void onEditClientTriggered();
|
void onEditClientTriggered();
|
||||||
void onDeleteClientTriggered();
|
void onDeleteClientTriggered();
|
||||||
|
void selectionChanged(const QItemSelection &selected, const QItemSelection &deselected);
|
||||||
|
|
||||||
private:
|
private:
|
||||||
void saveSettings();
|
void saveSettings();
|
||||||
|
|||||||
Reference in New Issue
Block a user