diff --git a/source/RobotAPI/gui-plugins/SkillManagerPlugin/aronTreeWidget/AronTreeWidgetController.cpp b/source/RobotAPI/gui-plugins/SkillManagerPlugin/aronTreeWidget/AronTreeWidgetController.cpp index 4154b24ee47488d66667da9f4b9b006961d76e36..3ea2f8b651af471dc7100068275ad0f1d0efe915 100644 --- a/source/RobotAPI/gui-plugins/SkillManagerPlugin/aronTreeWidget/AronTreeWidgetController.cpp +++ b/source/RobotAPI/gui-plugins/SkillManagerPlugin/aronTreeWidget/AronTreeWidgetController.cpp @@ -69,6 +69,7 @@ namespace armarx AronTreeWidgetContextMenuVisitor visitor(clickedItem,pos, tree, idx.row()); aron::type::visit(visitor, clickedItem->aronType); + visitor.showMenuAndExecute(); } } diff --git a/source/RobotAPI/gui-plugins/SkillManagerPlugin/aronTreeWidget/visitors/AronTreeWidgetContextMenu.cpp b/source/RobotAPI/gui-plugins/SkillManagerPlugin/aronTreeWidget/visitors/AronTreeWidgetContextMenu.cpp index 05ab18d65a854e35510ea3399fea74eda76769a1..a894b9bbee7b7c2b3ce620673a077086410c8ced 100644 --- a/source/RobotAPI/gui-plugins/SkillManagerPlugin/aronTreeWidget/visitors/AronTreeWidgetContextMenu.cpp +++ b/source/RobotAPI/gui-plugins/SkillManagerPlugin/aronTreeWidget/visitors/AronTreeWidgetContextMenu.cpp @@ -6,7 +6,6 @@ #include <QTreeWidget> #include <QMenu> -#include <QAction> namespace armarx { @@ -14,22 +13,35 @@ AronTreeWidgetContextMenuVisitor::AronTreeWidgetContextMenuVisitor(AronTreeWidge parentItem(i), contextMenuParent(contextMenuParent), pos(pos), index(x) {} -void AronTreeWidgetContextMenuVisitor::deleteItemMenu() { +void AronTreeWidgetContextMenuVisitor::addDeleteAction() { auto* castedParent = AronTreeWidgetItem::DynamicCast(parentItem->QTreeWidgetItem::parent()); if(!castedParent){ // must be top level element return; } auto aronType = castedParent->aronType->getDescriptor(); - //TODO: not only for dict - if(aron::type::Descriptor::DICT == aronType){ + //TODO: check if works for list + if(aron::type::Descriptor::DICT == aronType || aron::type::Descriptor::LIST == aronType){ QMenu contextMenu("Context menu", contextMenuParent); - QAction removeEl("remove element", contextMenuParent); - contextMenu.addAction(&removeEl); - auto* chosenAction = contextMenu.exec(contextMenuParent->mapToGlobal(pos)); + actions.emplace_back("remove element", contextMenuParent); + action_callbacks.push_back([this]() mutable { + this->executeDelete(); + }); + } +} + +void AronTreeWidgetContextMenuVisitor::executeDelete() +{ + auto* containerPtr = parentItem->QTreeWidgetItem::parent(); + containerPtr->removeChild(parentItem); + auto * castedContainer = AronTreeWidgetItem::DynamicCast(containerPtr); - if(chosenAction && chosenAction == &removeEl){ - castedParent->removeChild(parentItem); + // if the parent item is a List, we need to redo the numbers + if(castedContainer && castedContainer->aronType->getDescriptor() == aron::type::Descriptor::LIST) { + // start renumbering from the removed child onwards + for(int i = index; i < castedContainer->childCount(); ++i){ + std::string numberString = std::to_string(i); + castedContainer->child(i)->setText(0, numberString.c_str()); } } } @@ -37,108 +49,148 @@ void AronTreeWidgetContextMenuVisitor::deleteItemMenu() { void AronTreeWidgetContextMenuVisitor::visitAronVariant(const aron::type::ObjectPtr &) { -deleteItemMenu(); +addDeleteAction(); } -void AronTreeWidgetContextMenuVisitor::visitAronVariant(const aron::type::DictPtr &) +// lol +void armarx::AronTreeWidgetContextMenuVisitor::addAddAction() { - QMenu contextMenu("Context menu", contextMenuParent); - QAction addElem("Add element", contextMenuParent); - contextMenu.addAction(&addElem); + actions.emplace_back("Add element", contextMenuParent); + action_callbacks.push_back([this]() mutable { + this->executeAddElement(); + }); +} - auto* chosenAction = contextMenu.exec(contextMenuParent->mapToGlobal(pos)); +void AronTreeWidgetContextMenuVisitor::executeAddElement() +{ + AronTreeWidgetCreatorVisitor creator; + aron::type::visit(creator, parentItem->aronType->getChildren()[0]); - if(chosenAction == &addElem) - { - AronTreeWidgetCreatorVisitor creator; - aron::type::visit(creator, parentItem->aronType->getChildren()[0]); - if(!creator.createdQWidgetItem){ - throw std::runtime_error("Creation of TreeElementChild failed unexpectedly"); - } - parentItem->addChild(creator.createdQWidgetItem); + // TODO: this creator should check if it is contained in a list / dict -> set key val properly + if(!creator.createdQWidgetItem){ + throw std::runtime_error("Creation of TreeElementChild failed unexpectedly"); } + // add column 0 name to newly created item (this gets called from list and dict here) + std::string childNr = std::to_string(parentItem->childCount()); + creator.createdQWidgetItem->setText(0, childNr.c_str()); + parentItem->addChild(creator.createdQWidgetItem); +} + +void AronTreeWidgetContextMenuVisitor::visitAronVariant(const aron::type::DictPtr &) +{ + addAddAction(); + addDeleteAction(); } void AronTreeWidgetContextMenuVisitor::visitAronVariant(const aron::type::PairPtr &) { - deleteItemMenu(); + addDeleteAction(); } void AronTreeWidgetContextMenuVisitor::visitAronVariant(const aron::type::TuplePtr &) { - deleteItemMenu(); + addDeleteAction(); } void AronTreeWidgetContextMenuVisitor::visitAronVariant(const aron::type::ListPtr &) { - deleteItemMenu(); + addAddAction(); + addDeleteAction(); } void AronTreeWidgetContextMenuVisitor::visitAronVariant(const aron::type::NDArrayPtr &) { - deleteItemMenu(); + addDeleteAction(); } void AronTreeWidgetContextMenuVisitor::visitAronVariant(const aron::type::MatrixPtr &) { - + addDeleteAction(); } void AronTreeWidgetContextMenuVisitor::visitAronVariant(const aron::type::QuaternionPtr &) { - deleteItemMenu(); + addDeleteAction(); } void AronTreeWidgetContextMenuVisitor::visitAronVariant(const aron::type::ImagePtr &) { - deleteItemMenu(); + addDeleteAction(); } void AronTreeWidgetContextMenuVisitor::visitAronVariant(const aron::type::PointCloudPtr &) { - deleteItemMenu(); + addDeleteAction(); } void AronTreeWidgetContextMenuVisitor::visitAronVariant(const aron::type::IntEnumPtr &) { - deleteItemMenu(); + addDeleteAction(); } void AronTreeWidgetContextMenuVisitor::visitAronVariant(const aron::type::IntPtr &) { - deleteItemMenu(); + addDeleteAction(); } void AronTreeWidgetContextMenuVisitor::visitAronVariant(const aron::type::LongPtr &) { - deleteItemMenu(); + addDeleteAction(); } void AronTreeWidgetContextMenuVisitor::visitAronVariant(const aron::type::FloatPtr &) { - deleteItemMenu(); + addDeleteAction(); } void AronTreeWidgetContextMenuVisitor::visitAronVariant(const aron::type::DoublePtr &) { - deleteItemMenu(); + addDeleteAction(); } void AronTreeWidgetContextMenuVisitor::visitAronVariant(const aron::type::BoolPtr &) { - deleteItemMenu(); + addDeleteAction(); } void AronTreeWidgetContextMenuVisitor::visitAronVariant(const aron::type::StringPtr &) { - deleteItemMenu(); + addDeleteAction(); } void AronTreeWidgetContextMenuVisitor::visitUnknown(Input &) { ARMARX_WARNING << "Tried to open Context menu on unknown aron type"; } + +void AronTreeWidgetContextMenuVisitor::showMenuAndExecute() +{ + QMenu menu("Context Menu", contextMenuParent); + for(auto& el : actions){ + menu.addAction(&el); + } + auto* chosenAction = menu.exec(contextMenuParent->mapToGlobal(pos)); + + if(!chosenAction){ + return; + } + + // not elegant, but is a small loop anyway + auto it = actions.begin(); + size_t count = 0; + while(it != actions.end()) + { + if (chosenAction == &*it){ + action_callbacks[count](); + break; + } + ++it; + ++count; + } + +} } + diff --git a/source/RobotAPI/gui-plugins/SkillManagerPlugin/aronTreeWidget/visitors/AronTreeWidgetContextMenu.h b/source/RobotAPI/gui-plugins/SkillManagerPlugin/aronTreeWidget/visitors/AronTreeWidgetContextMenu.h index e568339d73bb50a7fa71eb44f49d39fe548ba02e..f3fa29ff85ff85ad8a94f182bd9a2d2faef6e1c0 100644 --- a/source/RobotAPI/gui-plugins/SkillManagerPlugin/aronTreeWidget/visitors/AronTreeWidgetContextMenu.h +++ b/source/RobotAPI/gui-plugins/SkillManagerPlugin/aronTreeWidget/visitors/AronTreeWidgetContextMenu.h @@ -4,6 +4,7 @@ #include <RobotAPI/libraries/aron/core/type/variant/All.h> #include <RobotAPI/libraries/aron/core/data/variant/All.h> #include <RobotAPI/libraries/aron/core/type/visitor/variant/VariantVisitor.h> +#include <QAction> class QTreeWidget; class QPoint; @@ -43,10 +44,17 @@ namespace armarx { void visitAronVariant(const aron::type::StringPtr&) final; void visitUnknown(Input&) final; + void showMenuAndExecute(); + private: + std::list<QAction> actions; + std::vector<std::function<void()>> action_callbacks; + // Creates a remove option if the element is a direct child of a list or dict - void deleteItemMenu(); - void createPlaceholderContextMenu(); + void addDeleteAction(); + void executeDelete(); + void addAddAction(); + void executeAddElement(); }; } diff --git a/source/RobotAPI/gui-plugins/SkillManagerPlugin/aronTreeWidget/visitors/AronTreeWidgetConverter.cpp b/source/RobotAPI/gui-plugins/SkillManagerPlugin/aronTreeWidget/visitors/AronTreeWidgetConverter.cpp index fbdc653abc5fa7cab715fc8abc7aa200de0243c1..45e5aedcf1b7f730c54964d948dd10015929e692 100644 --- a/source/RobotAPI/gui-plugins/SkillManagerPlugin/aronTreeWidget/visitors/AronTreeWidgetConverter.cpp +++ b/source/RobotAPI/gui-plugins/SkillManagerPlugin/aronTreeWidget/visitors/AronTreeWidgetConverter.cpp @@ -71,19 +71,29 @@ namespace armarx } void - AronTreeWidgetConverterVisitor::visitAronVariant(const aron::type::PairPtr& i) + AronTreeWidgetConverterVisitor::visitAronVariant(const aron::type::ListPtr& i) { - // TODO + auto createdAronList = std::make_shared<aron::data::List>(i->getPath()); + createdAron = createdAronList; + auto * parentTreeElem = parentItem->child(index); + + for(int j = 0; j < parentTreeElem->childCount(); ++j){ + AronTreeWidgetConverterVisitor convVisitor(parentTreeElem, j); + if(convVisitor.createdAron){ + createdAronList->addElement(convVisitor.createdAron); + } + } } + void - AronTreeWidgetConverterVisitor::visitAronVariant(const aron::type::TuplePtr& i) + AronTreeWidgetConverterVisitor::visitAronVariant(const aron::type::PairPtr& i) { // TODO } void - AronTreeWidgetConverterVisitor::visitAronVariant(const aron::type::ListPtr& i) + AronTreeWidgetConverterVisitor::visitAronVariant(const aron::type::TuplePtr& i) { // TODO } diff --git a/source/RobotAPI/gui-plugins/SkillManagerPlugin/aronTreeWidget/visitors/AronTreeWidgetCreator.cpp b/source/RobotAPI/gui-plugins/SkillManagerPlugin/aronTreeWidget/visitors/AronTreeWidgetCreator.cpp index e6c10f8c6cedc08a086a42ede8b35437b806c628..8e18b39d51c747612683ef609d0d9a32b6502894 100644 --- a/source/RobotAPI/gui-plugins/SkillManagerPlugin/aronTreeWidget/visitors/AronTreeWidgetCreator.cpp +++ b/source/RobotAPI/gui-plugins/SkillManagerPlugin/aronTreeWidget/visitors/AronTreeWidgetCreator.cpp @@ -32,7 +32,7 @@ namespace armarx { void - AronTreeWidgetCreatorVisitor::createSimpleTreeViewWidget(Input& i, const std::string& defaul) + AronTreeWidgetCreatorVisitor::createSimpleTreeViewWidget(Input& i, const std::string& defaul, bool isEditable) { ARMARX_CHECK_NOT_NULL(i); @@ -43,7 +43,10 @@ namespace armarx createdQWidgetItem->setText(1, QString::fromStdString(defaul)); createdQWidgetItem->setText(2, QString::fromStdString(i->getShortName())); createdQWidgetItem->setText(3, QString::fromStdString(aron_tree_widget::constantes::ITEM_EMPTY_MESSAGE) /*QString::fromStdString(i->getDefaultFromString())*/); - createdQWidgetItem->setFlags(createdQWidgetItem->flags() | Qt::ItemIsEditable); + if (isEditable) + { + createdQWidgetItem->setFlags(createdQWidgetItem->flags() | Qt::ItemIsEditable); + } } void @@ -79,27 +82,17 @@ namespace armarx ARMARX_CHECK_NOT_NULL(i); auto key = i->getShortName(); - if (i->getPath().hasElement()) + if (i->getPath().withDetachedLastElement().hasElement()) { - key = i->getPath().getLastElement(); + key = i->getPath().withDetachedLastElement().getLastElement(); } createdQWidgetItem = new AronTreeWidgetItem(); createdQWidgetItem->aronType = i; + createdQWidgetItem->setText(2, key.c_str()); - // TODO: this makes no sense here. The DictType has only one member, its key-type... Maybe handle the element created here as prototype! + // The DictType has only one member, its key-type. This also must be present ARMARX_CHECK_EQUAL(i->getChildren().size(),1); - const auto dictValueType = i->getChildren()[0]; - ARMARX_INFO << "Creating AronTreeWidget; As only child of dict, representing its type: " - << dictValueType->getShortName(); - AronTreeWidgetCreatorVisitor v; - aron::type::visit(v, dictValueType); - - if (v.createdQWidgetItem) - { - createdQWidgetItem->addChild(v.createdQWidgetItem); - } - } void AronTreeWidgetCreatorVisitor::visitAronVariant(const aron::type::PairPtr& i) @@ -109,7 +102,7 @@ namespace armarx { createSimpleTreeViewWidget(i, ""); } void AronTreeWidgetCreatorVisitor::visitAronVariant(const aron::type::ListPtr& i) - { createSimpleTreeViewWidget(i, ""); } + { createSimpleTreeViewWidget(i, "", false); } void AronTreeWidgetCreatorVisitor::visitAronVariant(const aron::type::NDArrayPtr& i) { createSimpleTreeViewWidget(i, ""); } @@ -127,7 +120,21 @@ namespace armarx { createSimpleTreeViewWidget(i, ""); } void AronTreeWidgetCreatorVisitor::visitAronVariant(const aron::type::IntEnumPtr& i) - { createSimpleTreeViewWidget(i, ""); } + { + ARMARX_CHECK_NOT_NULL(i); + ARMARX_CHECK_GREATER(i->getAcceptedValueNames().size(), 0); + + auto key = i->getPath().getLastElement(); + createdQWidgetItem = new AronTreeWidgetItem(); + createdQWidgetItem->aronType = i; + createdQWidgetItem->setText(0, ""); + createdQWidgetItem->setText(1, QString::fromStdString(i->getAcceptedValueNames()[0])); + createdQWidgetItem->setText(2, QString::fromStdString(i->getShortName())); + createdQWidgetItem->setText(3, QString::fromStdString(aron_tree_widget::constantes::ITEM_EMPTY_MESSAGE)); + + createdQWidgetItem->setFlags(createdQWidgetItem->flags() | Qt::ItemIsEditable); + + } void AronTreeWidgetCreatorVisitor::visitAronVariant(const aron::type::IntPtr& i) { createSimpleTreeViewWidget(i, "0"); } diff --git a/source/RobotAPI/gui-plugins/SkillManagerPlugin/aronTreeWidget/visitors/AronTreeWidgetCreator.h b/source/RobotAPI/gui-plugins/SkillManagerPlugin/aronTreeWidget/visitors/AronTreeWidgetCreator.h index 63dde7ef0be04d8d790c5f8434ae1b82faeb107a..86c2075498b80fb40beffe9c10270532dd0afaf1 100644 --- a/source/RobotAPI/gui-plugins/SkillManagerPlugin/aronTreeWidget/visitors/AronTreeWidgetCreator.h +++ b/source/RobotAPI/gui-plugins/SkillManagerPlugin/aronTreeWidget/visitors/AronTreeWidgetCreator.h @@ -38,7 +38,7 @@ namespace armarx AronTreeWidgetCreatorVisitor() = default; - void createSimpleTreeViewWidget(Input& i, const std::string&); + void createSimpleTreeViewWidget(Input& i, const std::string&, bool isEditable = true); void visitAronVariant(const aron::type::ObjectPtr&) final; void visitAronVariant(const aron::type::DictPtr& i) final; diff --git a/source/RobotAPI/gui-plugins/SkillManagerPlugin/aronTreeWidget/visitors/AronTreeWidgetSetter.cpp b/source/RobotAPI/gui-plugins/SkillManagerPlugin/aronTreeWidget/visitors/AronTreeWidgetSetter.cpp index b4c732b1a3f7549173803589462c6db8fe743340..a4a730171fa6bcb8a395a300d981e60ed9c0492d 100644 --- a/source/RobotAPI/gui-plugins/SkillManagerPlugin/aronTreeWidget/visitors/AronTreeWidgetSetter.cpp +++ b/source/RobotAPI/gui-plugins/SkillManagerPlugin/aronTreeWidget/visitors/AronTreeWidgetSetter.cpp @@ -31,6 +31,15 @@ namespace armarx bool AronTreeWidgetSetterVisitor::checkTreeWidgetItemForSimilarName(const std::string& name) const { QTreeWidgetItem* el = parentItem->child(index); + + // do not check attribute name, if the element is part of a list or map + auto* castedThis = AronTreeWidgetItem::DynamicCast(el->parent()); + if(castedThis){ + auto descr = castedThis->aronType->getDescriptor(); + if(descr == aron::type::Descriptor::LIST || descr == aron::type::Descriptor::DICT){ + return true; + } + } std::string n = el->text(0).toStdString(); if (name != n) { @@ -40,27 +49,42 @@ namespace armarx return true; } + void AronTreeWidgetSetterVisitor::adjustNumberOfChildren(AronTreeWidgetItem *parent, size_t numChildren) + { + if (((size_t) parent->childCount()) < numChildren){ + // The type to create must be the only child of the current aron type + ARMARX_CHECK_EQUAL(parent->aronType->childrenSize(),1); + size_t childrenToAdd= numChildren - parent->childCount(); + for(size_t j = 0; j < childrenToAdd; ++j){ + AronTreeWidgetCreatorVisitor childCreator; + aron::type::visit(childCreator,parent->aronType->getChildren()[0]); + ARMARX_CHECK_NOT_NULL(childCreator.createdQWidgetItem); + + parent->addChild(childCreator.createdQWidgetItem); + } + } + else if ((size_t) parent->childCount() > numChildren){ + size_t numChilds = (size_t) parent->childCount() - numChildren; + // pop the last child + for(size_t j = 0; j < numChilds; ++j){ + parent->removeChild(parent->child(parent->childCount()-1)); + } + } + } + + + void AronTreeWidgetSetterVisitor::visitAronVariant(const aron::data::DictPtr& i) { // either it is the root or it has a name if (i->getPath().size() == 0 || checkTreeWidgetItemForSimilarName(i->getPath().getLastElement())) { QTreeWidgetItem* el = parentItem->child(index); - auto aronTreeWidget = AronTreeWidgetItem::DynamicCastAndCheck(el); - - if (((size_t) el->childCount()) < i->getElements().size()){ - ARMARX_INFO << "missing enough child types to correctly display dict. -> creating rest."; - size_t numChilds = i->getElements().size() - (size_t) el->childCount(); - for(size_t j = 0; j < numChilds; ++j){ - AronTreeWidgetCreatorVisitor childCreator; - aron::type::visit(childCreator,aronTreeWidget->aronType->getChildren()[0]); - ARMARX_CHECK_NOT_NULL(childCreator.createdQWidgetItem); - childCreator.createdQWidgetItem->setFlags(childCreator.createdQWidgetItem->flags() | Qt::ItemIsEditable); - el->addChild(childCreator.createdQWidgetItem); - } - } - // TODO: remove if too much items + auto* aronTreeWidget = AronTreeWidgetItem::DynamicCastAndCheck(el); + // allocate enough child items + adjustNumberOfChildren(aronTreeWidget, i->childrenSize()); + // write child values unsigned int x = 0; for (const auto& [key, value] : i->getElements()) { @@ -74,15 +98,21 @@ namespace armarx void AronTreeWidgetSetterVisitor::visitAronVariant(const aron::data::ListPtr& i) { - if (checkTreeWidgetItemForSimilarName(i->getPath().getLastElement())) - { + if(checkTreeWidgetItemForSimilarName(i->getPath().getLastElement())){ QTreeWidgetItem* el = parentItem->child(index); + auto* aronTreeWidget = AronTreeWidgetItem::DynamicCastAndCheck(el); + adjustNumberOfChildren(aronTreeWidget, i->childrenSize()); unsigned int x = 0; for (const auto& value : i->getElements()) { - AronTreeWidgetSetterVisitor v(el, x++); + AronTreeWidgetSetterVisitor v(el, x); aron::data::visit(v, value); + auto* currChild = el->child(x); + std::string listNum = std::to_string(x); + currChild->setText(0, listNum.c_str()); + + ++x; } } } diff --git a/source/RobotAPI/gui-plugins/SkillManagerPlugin/aronTreeWidget/visitors/AronTreeWidgetSetter.h b/source/RobotAPI/gui-plugins/SkillManagerPlugin/aronTreeWidget/visitors/AronTreeWidgetSetter.h index 336be31e20d4ff44496a8a2f8424d7dd3c1419f1..d2a917f795923ca5183e7df97452e46ea2d797eb 100644 --- a/source/RobotAPI/gui-plugins/SkillManagerPlugin/aronTreeWidget/visitors/AronTreeWidgetSetter.h +++ b/source/RobotAPI/gui-plugins/SkillManagerPlugin/aronTreeWidget/visitors/AronTreeWidgetSetter.h @@ -58,6 +58,7 @@ namespace armarx private: bool checkTreeWidgetItemForSimilarName(const std::string& name) const; + void adjustNumberOfChildren(AronTreeWidgetItem* parent, size_t numChildren); }; } diff --git a/source/RobotAPI/gui-plugins/SkillManagerPlugin/build/.cmake/api/v1/query/cache-v2 b/source/RobotAPI/gui-plugins/SkillManagerPlugin/build/.cmake/api/v1/query/cache-v2 new file mode 100644 index 0000000000000000000000000000000000000000..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391 diff --git a/source/RobotAPI/gui-plugins/SkillManagerPlugin/build/.cmake/api/v1/query/cmakeFiles-v1 b/source/RobotAPI/gui-plugins/SkillManagerPlugin/build/.cmake/api/v1/query/cmakeFiles-v1 new file mode 100644 index 0000000000000000000000000000000000000000..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391 diff --git a/source/RobotAPI/gui-plugins/SkillManagerPlugin/build/.cmake/api/v1/query/codemodel-v2 b/source/RobotAPI/gui-plugins/SkillManagerPlugin/build/.cmake/api/v1/query/codemodel-v2 new file mode 100644 index 0000000000000000000000000000000000000000..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391 diff --git a/source/RobotAPI/gui-plugins/SkillManagerPlugin/build/qtcsettings.cmake b/source/RobotAPI/gui-plugins/SkillManagerPlugin/build/qtcsettings.cmake new file mode 100644 index 0000000000000000000000000000000000000000..fccf6a67eee120cbb1092f841fda5cca870a5a14 --- /dev/null +++ b/source/RobotAPI/gui-plugins/SkillManagerPlugin/build/qtcsettings.cmake @@ -0,0 +1,8 @@ +# This file is managed by Qt Creator, do not edit! + +set("CMAKE_BUILD_TYPE" "RelWithDebInfo" CACHE "STRING" "" FORCE) +set("CMAKE_PROJECT_INCLUDE_BEFORE" "/common/homes/students/bodmer/opt/qtcreator/qtcreator/share/qtcreator/package-manager/auto-setup.cmake" CACHE "PATH" "" FORCE) +set("QT_QMAKE_EXECUTABLE" "/usr/lib/qt5/bin/qmake" CACHE "STRING" "" FORCE) +set("CMAKE_PREFIX_PATH" "/usr" CACHE "STRING" "" FORCE) +set("CMAKE_C_COMPILER" "/usr/bin/gcc" CACHE "STRING" "" FORCE) +set("CMAKE_CXX_COMPILER" "/usr/bin/g++" CACHE "STRING" "" FORCE) \ No newline at end of file