MCPcopy Create free account
hub / github.com/Linloir/GraphBuilder / CreateSettings

Method CreateSettings

mycanvas.cpp:58–143  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

56}
57
58void 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);

Callers

nothing calls this directly

Calls 13

AddItemMethod · 0.80
SetSelectionMethod · 0.80
ConvertToAMLMethod · 0.80
~ALGraphMethod · 0.80
ConvertToALMethod · 0.80
~AMLGraphMethod · 0.80
ConvertTypeMethod · 0.80
setTypeMethod · 0.80
setValueMethod · 0.80
setAniRateMethod · 0.80
HideUnvisitedMethod · 0.80
ShowUnvisitedMethod · 0.80

Tested by

no test coverage detected