void MainWindow::explorerViewClicked(QListViewItem* item) { list<StationData> station_list; //stationView->setUpdatesEnabled(FALSE); if (item == 0) { //stationView->clear(); } else if (item->text(0) == MainWindowBase::trUtf8("Bookmarks")) { //stationView->clear(); QStringList bookmarks = Settings::instance()->bookmarks(); QStringList::iterator it; for (it = bookmarks.begin(); it != bookmarks.end(); ++it) { const StationData *station = dir.findCall((*it).latin1()); if (station != 0) { station_list.push_back(*station); } else { StationData stn; stn.setCallsign((*it).latin1()); stn.setStatus(StationData::STAT_OFFLINE); stn.setIp(Async::IpAddress("0.0.0.0")); station_list.push_back(stn); } } } else if (item->text(0) == MainWindowBase::trUtf8("Links")) { station_list = dir.links(); } else if (item->text(0) == MainWindowBase::trUtf8("Repeaters")) { station_list = dir.repeaters(); } else if (item->text(0) == MainWindowBase::trUtf8("Conferences")) { station_list = dir.conferences(); } else if (item->text(0) == MainWindowBase::trUtf8("Stations")) { station_list = dir.stations(); } stationView->clear(); list<StationData>::const_iterator iter; for (iter=station_list.begin(); iter!=station_list.end(); ++iter) { char id_str[256] = ""; if (iter->id() != -1) { sprintf(id_str, "%d", iter->id()); } new QListViewItem(stationView, iter->callsign().c_str(), iter->description().c_str(), iter->statusStr().c_str(), iter->time().c_str(), id_str); } if (stationView->firstChild() != 0) { QListViewItem *selected_item = stationView->findItem(select_map[item], 0); if (selected_item == 0) { selected_item = stationView->firstChild(); select_map[item] = selected_item->text(0); } if (selected_item != 0) { stationView->setSelected(selected_item, true); stationView->ensureItemVisible(selected_item); QRect rect = stationView->itemRect(selected_item); int target_top = stationView->viewport()->height() / 2 - selected_item->height() / 2; if (rect.top() > target_top) { stationView->scrollBy(0, rect.top() - target_top); } } } //stationView->setUpdatesEnabled(TRUE); //stationView->update(); } /* MainWindow::explorerViewClicked */