##// END OF EJS Templates
Adds read compatibility for local AMDA server...
Adds read compatibility for local AMDA server The local AMDA server uses another regex than the default server to read the units in x. We manage the compatibility by adding in the parser the possibility of testing several regexes to read a property

File last commit:

r1105:342312d662e7
r1121:98220c931c83
Show More
CatalogueSideBarWidget.cpp
101 lines | 3.6 KiB | text/x-c | CppLexer
/ gui / src / Catalogue / CatalogueSideBarWidget.cpp
Sub widget classes
r1095 #include "Catalogue/CatalogueSideBarWidget.h"
#include "ui_CatalogueSideBarWidget.h"
Basic interactions
r1103 constexpr auto ALL_EVENT_ITEM_TYPE = QTreeWidgetItem::UserType;
constexpr auto TRASH_ITEM_TYPE = QTreeWidgetItem::UserType + 1;
constexpr auto CATALOGUE_ITEM_TYPE = QTreeWidgetItem::UserType + 2;
constexpr auto DATABASE_ITEM_TYPE = QTreeWidgetItem::UserType + 3;
Catalog side bar
r1098
struct CatalogueSideBarWidget::CatalogueSideBarWidgetPrivate {
void configureTreeWidget(QTreeWidget *treeWidget);
Methods to add some catalogue items
r1102 QTreeWidgetItem *addDatabaseItem(const QString &name, QTreeWidget *treeWidget);
void addCatalogueItem(const QString &name, QTreeWidgetItem *parentDatabaseItem);
Catalog side bar
r1098 };
Sub widget classes
r1095 CatalogueSideBarWidget::CatalogueSideBarWidget(QWidget *parent)
Catalog side bar
r1098 : QWidget(parent),
ui(new Ui::CatalogueSideBarWidget),
impl{spimpl::make_unique_impl<CatalogueSideBarWidgetPrivate>()}
Sub widget classes
r1095 {
ui->setupUi(this);
Catalog side bar
r1098 impl->configureTreeWidget(ui->treeWidget);
Basic interactions
r1103
Skeleton to fill the inspector with the selection
r1105 auto emitSelection = [this](auto item) {
Basic interactions
r1103 switch (item->type()) {
case CATALOGUE_ITEM_TYPE:
emit this->catalogueSelected(item->text(0));
break;
case ALL_EVENT_ITEM_TYPE:
emit this->allEventsSelected();
break;
case TRASH_ITEM_TYPE:
emit this->trashSelected();
break;
case DATABASE_ITEM_TYPE:
default:
break;
}
Skeleton to fill the inspector with the selection
r1105 };
connect(ui->treeWidget, &QTreeWidget::itemClicked, emitSelection);
connect(ui->treeWidget, &QTreeWidget::currentItemChanged, emitSelection);
Sub widget classes
r1095 }
CatalogueSideBarWidget::~CatalogueSideBarWidget()
{
delete ui;
}
Catalog side bar
r1098
void CatalogueSideBarWidget::CatalogueSideBarWidgetPrivate::configureTreeWidget(
QTreeWidget *treeWidget)
{
auto allEventsItem = new QTreeWidgetItem({"All Events"}, ALL_EVENT_ITEM_TYPE);
allEventsItem->setIcon(0, QIcon(":/icones/allEvents.png"));
treeWidget->addTopLevelItem(allEventsItem);
auto trashItem = new QTreeWidgetItem({"Trash"}, TRASH_ITEM_TYPE);
trashItem->setIcon(0, QIcon(":/icones/trash.png"));
treeWidget->addTopLevelItem(trashItem);
auto separator = new QFrame(treeWidget);
separator->setFrameShape(QFrame::HLine);
auto separatorItem = new QTreeWidgetItem();
separatorItem->setFlags(Qt::NoItemFlags);
treeWidget->addTopLevelItem(separatorItem);
treeWidget->setItemWidget(separatorItem, 0, separator);
Methods to add some catalogue items
r1102
// Test
auto db = addDatabaseItem("Database 1", treeWidget);
addCatalogueItem("Catalogue 1", db);
addCatalogueItem("Catalogue 2", db);
addCatalogueItem("Catalogue 3", db);
addCatalogueItem("Catalogue 4", db);
auto db2 = addDatabaseItem("Database 2", treeWidget);
addCatalogueItem("Catalogue A", db2);
addCatalogueItem("Catalogue B", db2);
addCatalogueItem("Catalogue C", db2);
treeWidget->expandAll();
}
QTreeWidgetItem *
CatalogueSideBarWidget::CatalogueSideBarWidgetPrivate::addDatabaseItem(const QString &name,
QTreeWidget *treeWidget)
{
auto databaseItem = new QTreeWidgetItem({name}, DATABASE_ITEM_TYPE);
databaseItem->setIcon(0, QIcon(":/icones/database.png"));
treeWidget->addTopLevelItem(databaseItem);
return databaseItem;
}
void CatalogueSideBarWidget::CatalogueSideBarWidgetPrivate::addCatalogueItem(
const QString &name, QTreeWidgetItem *parentDatabaseItem)
{
auto catalogueItem = new QTreeWidgetItem({name}, CATALOGUE_ITEM_TYPE);
catalogueItem->setIcon(0, QIcon(":/icones/catalogue.png"));
parentDatabaseItem->addChild(catalogueItem);
Catalog side bar
r1098 }