##// END OF EJS Templates
The data of the variable is now requested with the new provided...
The data of the variable is now requested with the new provided parameters

File last commit:

r216:cc34eb0c628d
r282:88a58e69d383
Show More
DataSourceWidget.cpp
77 lines | 2.2 KiB | text/x-c | CppLexer
/ gui / src / DataSource / DataSourceWidget.cpp
Alexandre Leroux
Creates the data source widget...
r81 #include <DataSource/DataSourceWidget.h>
#include <ui_DataSourceWidget.h>
#include <DataSource/DataSourceItem.h>
#include <DataSource/DataSourceTreeWidgetItem.h>
Alexandre Leroux
Handles right clicking on the tree of the data sources...
r134 #include <QMenu>
Alexandre Leroux
Creates the data source widget...
r81 namespace {
/// Number of columns displayed in the tree
const auto TREE_NB_COLUMNS = 1;
/// Header labels for the tree
const auto TREE_HEADER_LABELS = QStringList{QObject::tr("Name")};
Alexandre Leroux
Implements method to add a data source in the widget...
r82 /**
* Creates the item associated to a data source
* @param dataSource the data source for which to create the item
* @return the new item
*/
DataSourceTreeWidgetItem *createTreeWidgetItem(DataSourceItem *dataSource)
{
// Creates item for the data source
auto item = new DataSourceTreeWidgetItem{dataSource};
// Generates items for the children of the data source
for (auto i = 0; i < dataSource->childCount(); ++i) {
item->addChild(createTreeWidgetItem(dataSource->child(i)));
}
return item;
}
Alexandre Leroux
Creates the data source widget...
r81 } // namespace
Alexandre Leroux
(Minor) Extracts ui of DataSourceWidget
r104 DataSourceWidget::DataSourceWidget(QWidget *parent) : QWidget{parent}, ui{new Ui::DataSourceWidget}
Alexandre Leroux
Creates the data source widget...
r81 {
Alexandre Leroux
(Minor) Extracts ui of DataSourceWidget
r104 ui->setupUi(this);
// Set tree properties
ui->treeWidget->setColumnCount(TREE_NB_COLUMNS);
ui->treeWidget->setHeaderLabels(TREE_HEADER_LABELS);
Alexandre Leroux
Handles right clicking on the tree of the data sources...
r134 ui->treeWidget->setContextMenuPolicy(Qt::CustomContextMenu);
// Connection to show a menu when right clicking on the tree
connect(ui->treeWidget, &QTreeWidget::customContextMenuRequested, this,
&DataSourceWidget::onTreeMenuRequested);
Alexandre Leroux
Creates the data source widget...
r81 }
Alexandre Leroux
Implements method to add a data source in the widget...
r82
add missing delete ui
r216 DataSourceWidget::~DataSourceWidget() noexcept
{
delete ui;
}
Alexandre Leroux
Change signal/slot signature for data source
r90 void DataSourceWidget::addDataSource(DataSourceItem *dataSource) noexcept
Alexandre Leroux
Implements method to add a data source in the widget...
r82 {
// Creates the item associated to the source and adds it to the tree widget. The tree widget
// takes the ownership of the item
Alexandre Leroux
Change signal/slot signature for data source
r90 if (dataSource) {
Alexandre Leroux
(Minor) Extracts ui of DataSourceWidget
r104 ui->treeWidget->addTopLevelItem(createTreeWidgetItem(dataSource));
Alexandre Leroux
Change signal/slot signature for data source
r90 }
Alexandre Leroux
Implements method to add a data source in the widget...
r82 }
Alexandre Leroux
Handles right clicking on the tree of the data sources...
r134
void DataSourceWidget::onTreeMenuRequested(const QPoint &pos) noexcept
{
// Retrieves the selected item in the tree, and build the menu from its actions
if (auto selectedItem = dynamic_cast<DataSourceTreeWidgetItem *>(ui->treeWidget->itemAt(pos))) {
QMenu treeMenu{};
treeMenu.addActions(selectedItem->actions());
if (!treeMenu.isEmpty()) {
treeMenu.exec(mapToGlobal(pos));
}
}
}