MCPcopy Create free account
hub / github.com/CalcProgrammer1/OpenRGB / selectSegment

Method selectSegment

qt/DeviceView.cpp:955–994  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

953}
954
955bool DeviceView::selectSegment(int zone, int segment, bool add)
956{
957 if(zone < 0 || size_t(zone) >= controller->zones.size())
958 {
959 return false;
960 }
961
962 if(segment < 0 || size_t(segment) >= controller->zones[zone].segments.size())
963 {
964 return false;
965 }
966
967 if(!add)
968 {
969 selectedLeds.clear();
970 selectionFlags.clear();
971 selectionFlags.resize(controller->leds.size());
972 }
973
974 int zoneStart = controller->zones[zone].start_idx;
975 int segStart = controller->zones[zone].segments[segment].start_idx;
976
977 for(std::size_t led_idx = 0; led_idx < controller->zones[zone].segments[segment].leds_count; ++led_idx)
978 {
979 if(!selectionFlags[zoneStart + segStart + led_idx])
980 {
981 selectedLeds.push_back(zoneStart + segStart + led_idx);
982 selectionFlags[zoneStart + segStart + led_idx] = 1;
983 }
984 }
985
986 update();
987
988 /*-----------------------------------------------------*\
989 | Send selection changed signal |
990 \*-----------------------------------------------------*/
991 emit selectionChanged(selectedLeds);
992
993 return true;
994}
995
996bool DeviceView::selectZone(int zone, bool add)
997{

Calls 3

updateFunction · 0.50
sizeMethod · 0.45
push_backMethod · 0.45

Tested by

no test coverage detected