Код: Выделить всё
m_ui->languagesBox->setModel(Database::instance()->availableLanguagesModel());
m_ui->languagesBox->view()->setSelectionModel(Database::instance()->languageSelectionModel());По идее пользователь выбирает из списка язык и нажимает кнопку, при этом вызывается метод Database::setCurrentLanguage(), который смотрит, что выбрано в QItemSelectionModel, и, соответственно, устанавливает нужный язык.
Проблема заключается в том, что если выбирать элемент QComboBox'а обычным способом - то есть нажатием на него и выбором из появившегося списка - вся эта конструкция работает, но если листать элементы мышью или стрелками на клавиатуре, QItemSelectionModel не обновляется. У QComboBox'а есть сигнал, высылаемый при изменении текущего индекса, он срабатывает при любом способе выбора элемента, но для его использования надо как-то связать текущий индекс с ID языка в базе данных. Есть ли более простой способ отследить выделение элементов?