== mainwindow.h == ... public: QList pChannels; ... == mainwindow.cpp == ... void MainWindow::loadChannels() { QSettings tmpSet("/sierra.conf", QSettings::IniFormat); int tmpCount = tmpSet.beginReadArray("channels"); for( int i=0; iclear(); for(int i=0; ipChannels.size(); i++) { cl = pWorld->pChannels.value(i); tmpItem = new QListWidgetItem( fChannelList ); tmpItem->setText(cl.channelName); tmpItem->setIcon( QIcon(":/chat-icon.png") ); tmpItem->setData( Qt::UserRole, i ); } } ... ==winprefs.cpp (alter the item) -- PROBLEM == ... void winPrefs::onChannelNameChanged() { QListWidgetItem *tmpItem = fChannelList->currentItem(); classChannel cc = pWorld->pChannels.value( tmpItem->data(Qt::UserRole).toInt() ); cc.channelName.append("test123"); // this won't update! } ...