вернёмся к нашим баранам!
решил решить проблему в лоб как говориться:
QMessageBox msg(QMessageBox::Question, "AXTUNG!!!", "Are you shure?", QMessageBox::Yes | QMessageBox::No);
if(msg.exec() == QMessageBox::No)
{
QBrush bcolor = current->background();
QBrush fcolor = current->foreground();
current->setBackground(previous->background());
previous->setBackground(bcolor);
current->setForeground(previous->foreground());
previous->setForeground(fcolor);
disconnect(&macList, SIGNAL(currentItemChanged ( QListWidgetItem * , QListWidgetItem * )), this, SLOT(ItemChanged(QListWidgetItem * , QListWidgetItem * )));
macList.setCurrentItem(previous);
macList.setCurrentRow(macList.row(previous));
macList.setItemSelected(previous, true);
macList.setItemSelected(current, false);
// macList.setCurrentIndex(macList.indexFromItem(previous));
connect(&macList, SIGNAL(currentItemChanged ( QListWidgetItem * , QListWidgetItem * )), this, SLOT(ItemChanged(QListWidgetItem * , QListWidgetItem * )));
}
label.setText(macList.currentItem()->text());
при помощи молотка и такой-то матери, а именно label.setText(macList.currentItem()->text()); выяснил, что текущее значение остаётся правильным, но вот подсветка переходит на последний выбранный элемент, уже пробовал танцы с бубном вокруг заднего фона - не помогло, ткните носом, что может ещё подсвечиваться? :-)