Adding filters
This commit is contained in:
@@ -1,13 +1,66 @@
|
||||
#include "filterdialog.h"
|
||||
#include "ui_filterdialog.h"
|
||||
|
||||
#include <QMessageBox>
|
||||
|
||||
FilterDialog::FilterDialog(QString dialogTitle, QVector<Board*> boards, QVector<Status> status, QVector<Priority> priorities, QWidget *parent) :
|
||||
QDialog(parent),
|
||||
ui(new Ui::FilterDialog)
|
||||
{
|
||||
ui->setupUi(this);
|
||||
this->setWindowTitle(dialogTitle);
|
||||
init(boards, status, priorities);
|
||||
}
|
||||
|
||||
FilterDialog::FilterDialog(QString dialogTitle, Filter f, QVector<Board*> boards, QVector<Status> status, QVector<Priority> priorities, QWidget *parent) :
|
||||
QDialog(parent),
|
||||
ui(new Ui::FilterDialog)
|
||||
{
|
||||
ui->setupUi(this);
|
||||
this->setWindowTitle(dialogTitle);
|
||||
init(boards, status, priorities);
|
||||
|
||||
ui->nameEdit->setText(f.getName());
|
||||
ui->descriptionEdit->setPlainText(f.getDescription());
|
||||
ui->dateComparationCombobox->setCurrentIndex(f.getExpectedForComparator());
|
||||
foreach (QString uuid, f.getBoards())
|
||||
{
|
||||
for (int i = 0; i < ui->boardListWidget->count(); ++i)
|
||||
{
|
||||
QListWidgetItem *item = ui->boardListWidget->item(i);
|
||||
if (item->data(1).toString() == uuid)
|
||||
{
|
||||
item->setCheckState(Qt::Checked);
|
||||
}
|
||||
}
|
||||
}
|
||||
foreach (QString uuid, f.getStatus())
|
||||
{
|
||||
for (int i = 0; i < ui->statusListWidget->count(); ++i)
|
||||
{
|
||||
QListWidgetItem *item = ui->statusListWidget->item(i);
|
||||
if (item->data(1).toString() == uuid)
|
||||
{
|
||||
item->setCheckState(Qt::Checked);
|
||||
}
|
||||
}
|
||||
}
|
||||
foreach (QString uuid, f.getPriorities())
|
||||
{
|
||||
for (int i = 0; i < ui->priorityListWidget->count(); ++i)
|
||||
{
|
||||
QListWidgetItem *item = ui->priorityListWidget->item(i);
|
||||
if (item->data(1).toString() == uuid)
|
||||
{
|
||||
item->setCheckState(Qt::Checked);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
void FilterDialog::init(QVector<Board *> boards, QVector<Status> status, QVector<Priority> priorities)
|
||||
{
|
||||
for (Board *b : boards)
|
||||
{
|
||||
QListWidgetItem *item = new QListWidgetItem();
|
||||
@@ -37,6 +90,8 @@ FilterDialog::FilterDialog(QString dialogTitle, QVector<Board*> boards, QVector<
|
||||
item->setData(1, p.getUUID());
|
||||
ui->priorityListWidget->addItem(item);
|
||||
}
|
||||
|
||||
connect(ui->buttonBox, &QDialogButtonBox::accepted, this, &FilterDialog::validateAndAccept);
|
||||
}
|
||||
|
||||
FilterDialog::~FilterDialog()
|
||||
@@ -47,6 +102,7 @@ FilterDialog::~FilterDialog()
|
||||
const Filter FilterDialog::getFilter()
|
||||
{
|
||||
QString name = ui->nameEdit->text();
|
||||
QString description = ui->descriptionEdit->toPlainText();
|
||||
uint8_t dateComparation = 0;
|
||||
if (ui->dateComparationCombobox->currentIndex() > -1)
|
||||
{
|
||||
@@ -76,5 +132,15 @@ const Filter FilterDialog::getFilter()
|
||||
priorities.append(item->data(1).toString());
|
||||
}
|
||||
}
|
||||
return Filter(name, dateComparation, boards, status, priorities);
|
||||
return Filter(name, description, dateComparation, boards, status, priorities);
|
||||
}
|
||||
|
||||
void FilterDialog::validateAndAccept()
|
||||
{
|
||||
if (ui->nameEdit->text().count() == 0)
|
||||
{
|
||||
QMessageBox::critical(this, "This filter needs a name", "You need to enter a name to save this filter");
|
||||
return;
|
||||
}
|
||||
accept();
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user