params = _params;
// creating the widget : tree, buttons, ...
- layout = new QBoxLayout(QBoxLayout::TopToBottom, this);
+ QBoxLayout* layout = new QBoxLayout(QBoxLayout::TopToBottom, this);
tree = new QTreeWidget(this);
- buttonAdd = new QPushButton("add", this);
+
+ buttonAdd = new QPushButton("add to", this);
buttonAdd->setEnabled(false);
+ comboScenes = new QComboBox();
+
+ QHBoxLayout* layBottom = new QHBoxLayout;
+ layBottom->addWidget(buttonAdd);
+ layBottom->addWidget(comboScenes);
connect(tree, SIGNAL(itemClicked(QTreeWidgetItem*,int)), this, SLOT(clicked()));
connect(tree, SIGNAL(itemDoubleClicked(QTreeWidgetItem*,int)), this, SLOT(doubleClicked()));
QTreeWidgetItem* item = tree->invisibleRootItem();
tree->setHeaderLabel("Blocks list");
-
addChild(cat,item);
layout->addWidget(tree);
- layout->addWidget(buttonAdd);
+ layout->addLayout(layBottom);
this->setLayout(layout);
this->setFixedSize(300,230);
if(item->data(1,Qt::DisplayRole).isValid() && item->data(2,Qt::DisplayRole).isValid()){
int idParent = item->data(1,Qt::DisplayRole).toInt();
int idBlock = item->data(2,Qt::DisplayRole).toInt();
- dispatcher->addBlock(idParent, idBlock);
+ QVariant v = comboScenes->currentData();
+ cout << "adding block to scene " << v.toInt() << endl;
+ dispatcher->addBlock(idParent, idBlock, v.toInt());
}
// only take the first selected
// calling dispatcher addBlock() method.
}
-
-void BlockLibraryWidget::clicked()
-{
+void BlockLibraryWidget::clicked() {
if(tree->selectedItems().length() > 0){
QTreeWidgetItem *item = tree->selectedItems().at(0);
if(item->data(1,Qt::DisplayRole).isValid())
}
}
-void BlockLibraryWidget::doubleClicked()
-{
+void BlockLibraryWidget::doubleClicked() {
addClicked();
}
+
+void BlockLibraryWidget::updateComboScene() {
+ comboScenes->clear();
+ QMap<int,QString> list = dispatcher->getAllGroupNames();
+ QMapIterator<int,QString> iter(list);
+ while (iter.hasNext()) {
+ iter.next();
+ comboScenes->addItem(iter.value(),QVariant(iter.key()));
+ }
+}