@@ -678,6 +678,11 @@ BacklightSourceItemModel::BacklightSourceItemModel(const GeneralSettings * const
678678 setId (IMID_BacklightSource);
679679 setUpdateMask (IMUE_SystemRefresh);
680680
681+ // Descending source direction: inverted (!) sources
682+ addItems (SOURCE_TYPE_SWITCH, -board->getCapability (Board::Switches));
683+ addItems (SOURCE_TYPE_INPUT, -board->getCapability (Board::Inputs), -board->getCapability (Board::Sticks));
684+
685+ // Ascending source direction (including zero)
681686 addItems (SOURCE_TYPE_NONE, 1 );
682687 addItems (SOURCE_TYPE_INPUT, board->getCapability (Board::Inputs), board->getCapability (Board::Sticks));
683688 addItems (SOURCE_TYPE_SWITCH, board->getCapability (Board::Switches));
@@ -686,14 +691,17 @@ BacklightSourceItemModel::BacklightSourceItemModel(const GeneralSettings * const
686691void BacklightSourceItemModel::setDynamicItemData (QStandardItem * item, const RawSource & src) const
687692{
688693 item->setText (src.toString (modelData, generalSettings, boardType));
689- item->setData (src.isAvailable (modelData, generalSettings, boardType), IMDR_Available);
694+ item->setData (src.isAvailable (modelData, generalSettings, boardType, RawSource::AVAILABLE_BACKLIGHTSRC ), IMDR_Available);
690695}
691696
692697void BacklightSourceItemModel::addItems (const RawSourceType & type, int count, const int start)
693698{
694699 const int idxAdj = (type == SOURCE_TYPE_NONE ? -1 : 0 );
695700
696- for (int i = 1 + start; i <= count; ++i) {
701+ int first = start + count < 0 ? start + count : start + 1 ;
702+ int last = start + count < 0 ? start : start + count + 1 ;
703+
704+ for (int i = first; i < last; ++i) {
697705 const RawSource src = RawSource (type, i + idxAdj);
698706 QStandardItem * modelItem = new QStandardItem ();
699707 modelItem->setData (src.toValue (), IMDR_Id);
0 commit comments