From 53c9cf446448adcf1b0616158a9390ace5598c0a 2017-11-28 13:37:12 From: Alexandre Leroux Date: 2017-11-28 13:37:12 Subject: [PATCH] Updates data sources UI representation (1) Uses a single top level item that will contain all data source items merged together --- diff --git a/gui/include/DataSource/DataSourceWidget.h b/gui/include/DataSource/DataSourceWidget.h index 615adfd..388dbd8 100644 --- a/gui/include/DataSource/DataSourceWidget.h +++ b/gui/include/DataSource/DataSourceWidget.h @@ -3,6 +3,8 @@ #include +#include + namespace Ui { class DataSourceWidget; } // Ui @@ -29,7 +31,10 @@ public slots: void addDataSource(DataSourceItem *dataSource) noexcept; private: + void updateTreeWidget() noexcept; + Ui::DataSourceWidget *ui; + std::unique_ptr m_Root; private slots: /// Slot called when the filtering text has changed diff --git a/gui/src/DataSource/DataSourceWidget.cpp b/gui/src/DataSource/DataSourceWidget.cpp index 454f76b..d4c3452 100644 --- a/gui/src/DataSource/DataSourceWidget.cpp +++ b/gui/src/DataSource/DataSourceWidget.cpp @@ -36,7 +36,11 @@ DataSourceTreeWidgetItem *createTreeWidgetItem(DataSourceItem *dataSource) } // namespace -DataSourceWidget::DataSourceWidget(QWidget *parent) : QWidget{parent}, ui{new Ui::DataSourceWidget} +DataSourceWidget::DataSourceWidget(QWidget *parent) + : QWidget{parent}, + ui{new Ui::DataSourceWidget}, + m_Root{ + std::make_unique(DataSourceItemType::NODE, QStringLiteral("Sources"))} { ui->setupUi(this); @@ -51,6 +55,9 @@ DataSourceWidget::DataSourceWidget(QWidget *parent) : QWidget{parent}, ui{new Ui // Connection to filter tree connect(ui->filterLineEdit, &QLineEdit::textChanged, this, &DataSourceWidget::filterChanged); + + // First init + updateTreeWidget(); } DataSourceWidget::~DataSourceWidget() noexcept @@ -67,6 +74,19 @@ void DataSourceWidget::addDataSource(DataSourceItem *dataSource) noexcept } } +void DataSourceWidget::updateTreeWidget() noexcept +{ + ui->treeWidget->clear(); + + auto rootItem = createTreeWidgetItem(m_Root.get()); + ui->treeWidget->addTopLevelItem(rootItem); + rootItem->setExpanded(true); + + // Sorts tree + ui->treeWidget->setSortingEnabled(true); + ui->treeWidget->sortByColumn(0, Qt::AscendingOrder); +} + void DataSourceWidget::filterChanged(const QString &text) noexcept { auto validateItem = [&text](const DataSourceTreeWidgetItem &item) {