| 56 | } |
| 57 | |
| 58 | void MyCanvas::CreateSettings(int radius){ |
| 59 | /* create settings page */ |
| 60 | settings = new SlidePage(radius, "SETTINGS", this->parentWidget()); |
| 61 | singleSelectGroup *structureSetting = new singleSelectGroup("Structure", this); |
| 62 | selectionItem *setAL = new selectionItem("AL", "Adjacent list structure", this); |
| 63 | selectionItem *setAML = new selectionItem("AML", "Adjacent multiple list", this); |
| 64 | structureSetting->AddItem(setAL); |
| 65 | structureSetting->AddItem(setAML); |
| 66 | structureSetting->SetSelection(structure_type == AL ? setAL : setAML); |
| 67 | connect(structureSetting, &singleSelectGroup::selectedItemChange, this, [=](int id){ |
| 68 | if(id == 1){ |
| 69 | ALGraph *old = (ALGraph*)g; |
| 70 | g = old->ConvertToAML(); |
| 71 | old->~ALGraph(); |
| 72 | structure_type = AML; |
| 73 | } |
| 74 | else{ |
| 75 | AMLGraph *old = (AMLGraph*)g; |
| 76 | g = old->ConvertToAL(); |
| 77 | old->~AMLGraph(); |
| 78 | structure_type = AL; |
| 79 | } |
| 80 | }); |
| 81 | singleSelectGroup *dirSetting = new singleSelectGroup("Mode", this); |
| 82 | selectionItem *setDG = new selectionItem("DG", "Directed graph", this); |
| 83 | selectionItem *setUDG = new selectionItem("UDG", "Undirected graph", this); |
| 84 | dirSetting->AddItem(setDG); |
| 85 | dirSetting->AddItem(setUDG); |
| 86 | dirSetting->SetSelection(type == DG ? setDG : setUDG); |
| 87 | connect(dirSetting, &singleSelectGroup::selectedItemChange, this, [=](int id){ |
| 88 | g->ConvertType(id == 0 ? AbstractGraph::DG : AbstractGraph::UDG); |
| 89 | view->setType(id == 0 ? MyGraphicsView::DG : MyGraphicsView::UDG); |
| 90 | type = id == 0 ? DG : UDG; |
| 91 | }); |
| 92 | singleSelectGroup *dfsSetting = new singleSelectGroup("Traverse Mode", this); |
| 93 | selectionItem *setGenerateTree = new selectionItem("Tree", "Generate tree", this); |
| 94 | selectionItem *setGenerateForest = new selectionItem("Forest", "Generate forest", this); |
| 95 | dfsSetting->AddItem(setGenerateTree); |
| 96 | dfsSetting->AddItem(setGenerateForest); |
| 97 | connect(dfsSetting, &singleSelectGroup::selectedItemChange, this, [=](int id){ |
| 98 | generateForest = id == 1; |
| 99 | }); |
| 100 | QWidget *whiteSpace = new QWidget(this); |
| 101 | whiteSpace->setFixedHeight(30); |
| 102 | horizontalValueAdjuster *aniSpeed = new horizontalValueAdjuster("Animation speed", 0.1, 20, 0.1, this); |
| 103 | aniSpeed->setValue(1.0); |
| 104 | connect(aniSpeed, &horizontalValueAdjuster::valueChanged, view, [=](qreal value){view->setAniRate(value);}); |
| 105 | textInputItem *rename = new textInputItem("Name", this); |
| 106 | rename->setValue(canvasName); |
| 107 | connect(rename, &textInputItem::textEdited, this, [=](QString text){canvasName = text; emit nameChanged(text);}); |
| 108 | textInputItem *redesc = new textInputItem("Detail", this); |
| 109 | redesc->setValue(canvasDescription); |
| 110 | connect(redesc, &textInputItem::textEdited, this, [=](QString text){canvasDescription = text; emit descChanged(text);}); |
| 111 | textButton *hideBtn = new textButton("Hide Unvisited Items", this); |
| 112 | connect(hideBtn, &textButton::clicked, this, [=](){view->HideUnvisited();}); |
| 113 | textButton *showBtn = new textButton("Show Unvisited Items", this); |
| 114 | connect(showBtn, &textButton::clicked, this, [=](){view->ShowUnvisited();}); |
| 115 | QWidget *whiteSpace2 = new QWidget(this); |
nothing calls this directly
no test coverage detected