fix out of bound crash when edit or remove a board, add board config dialog, fix glibc version in about dialog
This commit is contained in:
@@ -17,6 +17,7 @@
|
||||
#include "namedialog.h"
|
||||
#include "taskdialog.h"
|
||||
#include "filterdialog.h"
|
||||
#include "boardconfigdialog.h"
|
||||
#include "../tools.h"
|
||||
#include "../services/taskstateservice.h"
|
||||
|
||||
@@ -197,7 +198,16 @@ void MainWindow::onBoardSelected(int i)
|
||||
{
|
||||
Board *b = boards[selectedBoardIndex];
|
||||
ui->label->setText(b->getName());
|
||||
ui->boardDescription->setText(b->getDescription());
|
||||
if (b->getDescription().length() > 0)
|
||||
{
|
||||
ui->boardDescription->setText(b->getDescription());
|
||||
ui->boardDescription->setEnabled(true);
|
||||
}
|
||||
else
|
||||
{
|
||||
ui->boardDescription->setText("No description");
|
||||
ui->boardDescription->setEnabled(false);
|
||||
}
|
||||
ui->actionNew_task->setDisabled(false);
|
||||
}
|
||||
else
|
||||
@@ -224,7 +234,16 @@ void MainWindow::onFilterSelected(int i)
|
||||
{
|
||||
Filter f = filters[selectedFilterIndex];
|
||||
ui->label->setText(f.getName());
|
||||
ui->boardDescription->setText(f.getDescription());
|
||||
if (f.getDescription().length() > 0)
|
||||
{
|
||||
ui->boardDescription->setText(f.getDescription());
|
||||
ui->boardDescription->setEnabled(true);
|
||||
}
|
||||
else
|
||||
{
|
||||
ui->boardDescription->setText("No description");
|
||||
ui->boardDescription->setEnabled(false);
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
@@ -259,7 +278,11 @@ void MainWindow::onRemoveBoardMenu()
|
||||
{
|
||||
if (menuSelectedBoardItem != nullptr)
|
||||
{
|
||||
int i = ui->filterListWidget->indexFromItem(menuSelectedFilterItem).row();
|
||||
int i = ui->boardList->indexFromItem(menuSelectedBoardItem).row();
|
||||
if (i == -1)
|
||||
{
|
||||
return;
|
||||
}
|
||||
QMessageBox::StandardButton result = QMessageBox::question(this, "Delete a board", "Do you want to delete this board?");
|
||||
if (result == QMessageBox::Yes)
|
||||
{
|
||||
@@ -296,6 +319,10 @@ void MainWindow::onRemoveFilterMenu()
|
||||
if (menuSelectedFilterItem != nullptr)
|
||||
{
|
||||
int i = ui->filterListWidget->indexFromItem(menuSelectedFilterItem).row();
|
||||
if (i == -1)
|
||||
{
|
||||
return;
|
||||
}
|
||||
QMessageBox::StandardButton result = QMessageBox::question(this, "Delete a filter", "Do you want to delete this filter?");
|
||||
if (result == QMessageBox::Yes)
|
||||
{
|
||||
@@ -315,20 +342,50 @@ void MainWindow::onEditNameBoardMenu()
|
||||
{
|
||||
if (menuSelectedBoardItem != nullptr)
|
||||
{
|
||||
int i = ui->filterListWidget->indexFromItem(menuSelectedFilterItem).row();
|
||||
int i = ui->boardList->indexFromItem(menuSelectedBoardItem).row();
|
||||
if (i == -1)
|
||||
{
|
||||
return;
|
||||
}
|
||||
Board *b = boards.at(i);
|
||||
NameDialog dialog("Edit board name", b->getName(), b->getDescription(), this);
|
||||
BoardConfigDialog dialog(b, this);
|
||||
if (dialog.exec() == QDialog::DialogCode::Accepted)
|
||||
{
|
||||
QString newName = dialog.getChoosenName();
|
||||
QString newName = dialog.getName();
|
||||
QString newDesc = dialog.getDescription();
|
||||
b->setName(newName);
|
||||
b->setDescription(newDesc);
|
||||
if (!dialog.isAutoStatus())
|
||||
{
|
||||
std::optional<Status> status = TaskStateService::getInstance()->getStatusByUUID(dialog.getStatus());
|
||||
if (status.has_value())
|
||||
{
|
||||
b->setDirtyStatus(status.value());
|
||||
}
|
||||
else
|
||||
{
|
||||
b->removeDirtyStatus();
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
b->removeDirtyStatus();
|
||||
}
|
||||
QListWidgetItem *item = ui->boardList->item(i);
|
||||
item->setText(newName);
|
||||
item->setToolTip(newDesc);
|
||||
ui->label->setText(newName);
|
||||
ui->boardDescription->setText(newDesc);
|
||||
if (newDesc.length() > 0)
|
||||
{
|
||||
ui->boardDescription->setText(newDesc);
|
||||
ui->boardDescription->setEnabled(true);
|
||||
}
|
||||
else
|
||||
{
|
||||
ui->boardDescription->setText("No description");
|
||||
ui->boardDescription->setEnabled(false);
|
||||
}
|
||||
redrawBoardStatus();
|
||||
save();
|
||||
}
|
||||
}
|
||||
@@ -358,7 +415,16 @@ void MainWindow::onEditFilterMenu()
|
||||
item->setText(f.getName());
|
||||
item->setToolTip(f.getDescription());
|
||||
ui->label->setText(f.getName());
|
||||
ui->boardDescription->setText(f.getDescription());
|
||||
if (f.getDescription().length() > 0)
|
||||
{
|
||||
ui->boardDescription->setText(f.getDescription());
|
||||
ui->boardDescription->setEnabled(true);
|
||||
}
|
||||
else
|
||||
{
|
||||
ui->boardDescription->setText("No description");
|
||||
ui->boardDescription->setEnabled(false);
|
||||
}
|
||||
redrawTaskTree();
|
||||
save();
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user