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

Method updateSelection

qt/DeviceView.cpp:843–887  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

841}
842
843void DeviceView::updateSelection()
844{
845 selectedLeds.clear();
846 selectionFlags.clear();
847 selectionFlags.resize(controller->leds.size());
848
849 QRect sel = selectionRect.normalized();
850 std::vector<led>& leds = controller->leds;
851
852 for(std::size_t led_idx = 0; led_idx < leds.size(); ++led_idx)
853 {
854 /*-----------------------------------------------------*\
855 | Check intersection |
856 \*-----------------------------------------------------*/
857 int posx = led_pos[led_idx].matrix_x * size + offset_x;
858 int posy = led_pos[led_idx].matrix_y * size;
859 int posw = led_pos[led_idx].matrix_w * size;
860 int posh = led_pos[led_idx].matrix_h * size;
861
862 QRect rect = {posx, posy, posw, posh};
863
864 selectionFlags[led_idx] = 0;
865
866 if(sel.intersects(rect))
867 {
868 selectionFlags[led_idx] = 1;
869 }
870 if(ctrlDown)
871 {
872 selectionFlags[led_idx] ^= previousFlags[led_idx];
873 }
874
875 if(selectionFlags[led_idx])
876 {
877 selectedLeds.push_back(led_idx);
878 }
879 }
880
881 update();
882
883 /*-----------------------------------------------------*\
884 | Send selection changed signal |
885 \*-----------------------------------------------------*/
886 emit selectionChanged(selectedLeds);
887}
888
889bool DeviceView::selectLed(int target)
890{

Callers

nothing calls this directly

Calls 3

updateFunction · 0.50
sizeMethod · 0.45
push_backMethod · 0.45

Tested by

no test coverage detected