Beispiel #1
0
void ComDialog::dnsResultsReady(DnsLookup &)
{
  if (dns->addresses().empty())
  {
    MyMessageBox *mb = new MyMessageBox(trUtf8("Qtel Error"),
	trUtf8("Could not create connection to remote host") + " \"" +
	dns->label().c_str() + "\"");
    mb->show();
    connect(mb, SIGNAL(closed()), this, SLOT(close()));
    delete con;
    con = 0;
    return;
  }
  
  StationData *station = new StationData;
  station->setIp(dns->addresses()[0]);
  updateStationData(station);
  createConnection(station);  
  
  delete dns;
  dns = 0;
  
} /* ComDialog::dnsResultsReady */
Beispiel #2
0
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 */