Beispiel #1
0
void LightMap::drawMarks(QPainter& painter)
{
  //    QList<QSharedPointer<DataMark> > marks = m_marks.values();
  double tdim=256.;
  QPointF center=tileForCoordinate(m_normalMap->latitude,m_normalMap->longitude,m_normalMap->zoom);
  QPointF pos,posOnMap,winCenter(m_normalMap->width/2,m_normalMap->height/2);
  //Add here time and count filter
  QSettings settings(QSettings::SystemScope,"osll","libs");
  int markAge=0;
  int maxAgeOfMark=settings.value("timeLimit").toInt();
  int marksCount=settings.value("marksCount").toInt();
  //Getting list of all channels, wich marks are in request
  QList<QSharedPointer<DataMark> > marks;
  QList<QSharedPointer<Channel> > channels=m_marks.uniqueKeys();
  for (int j=0;j<channels.size();j++)
  {
    marks=m_marks.values(channels.at(j));
    qSort(marks.begin(), marks.end(), qGreater<QSharedPointer<DataMark> >());
    for (int i=0; i < qMin(marksCount, marks.size()) ; i++)
    {
      markAge=marks.at(i)->getTime().toUTC().secsTo(QDateTime::currentDateTime())/60;
      qDebug() << "current mark age "<< markAge;
      if( markAge<maxAgeOfMark)
      {
        pos=center-tileForCoordinate(marks.at(i)->getLatitude(),marks.at(i)->getLongitude(),m_normalMap->zoom);
        posOnMap=winCenter-pos*qreal(tdim);
        this->drawMarkIco(painter, posOnMap, marks.at(i),channels.at(j));
      }

    }
  }
}
Beispiel #2
0
void View::HandleMetaData(){
  /* Get data */
  MetaData = page()->mainFrame()->metaData();

  /* Title */
  if(MetaData.contains("win_title"))
    setWindowTitle(MetaData.values("win_title").at(0));
  else
    setWindowTitle(page()->mainFrame()->title());
  /* Size */
  if(MetaData.contains("win_size")){
    QString tmp_size = MetaData.values("win_size").at(0);
    if(tmp_size=="auto"){
      resize(this->page()->mainFrame()->contentsSize());
    }else{
      QStringList sizeXY = tmp_size.split("x");
      if(sizeXY.size() == 2)
        resize(sizeXY[0].toInt(),sizeXY[1].toInt());
    }
  }
  if(MetaData.contains("win_fixed")){
    setFixedSize(this->size());
  }
  if(MetaData.contains("win_fullscreen")){
    showFullScreen();
  }
  /* Position */
  if(MetaData.contains("win_position")){
    QString tmp_pos = MetaData.values("win_position").at(0);
    if(tmp_pos == "center")
      winCenter();
    // elif Set by settings or last
  }
  /* Flag */
  if(MetaData.contains("win_flag")){
    QStringList tmp_flag = MetaData.values("win_flag");
    if(tmp_flag[0] == "below")
      setWindowFlags(this->windowFlags() | Qt::WindowStaysOnBottomHint);
    else if(tmp_flag[0] == "above")
      setWindowFlags(this->windowFlags() | Qt::WindowStaysOnTopHint);
  }
  /* Scrollbar */
  if(MetaData.contains("win_scrollbar")){
    QStringList tmp_scroll = MetaData.values("win_scrollbar");
    for(int i=0; i<tmp_scroll.size(); i++){
      Qt::ScrollBarPolicy val;
      if(tmp_scroll[i] == "AlwaysOn"){
	val = Qt::ScrollBarAlwaysOn;
      }else if(tmp_scroll[i] == "AlwaysOff"){
	val = Qt::ScrollBarAlwaysOff;
      }else{
	val = Qt::ScrollBarAsNeeded;
      }
      if(i == 0){
	this->page()->mainFrame()->setScrollBarPolicy(Qt::Vertical, val);
      }else{
	this->page()->mainFrame()->setScrollBarPolicy(Qt::Horizontal, val);
      }
    }
  }
  /* DBus Interface */
  if(MetaData.contains("dbus_service_name")){
    createInterface(MetaData.values("dbus_service_name").at(0), Mainview);
  }
  /* Events */
  if(MetaData.contains("win_events")){
    QStringList tmp_events = MetaData.values("win_events").at(0).split(" ");
    for(int i=0; i<tmp_events.size(); i++)
      EventsEnabled[tmp_events[i]] = true;
  }
  /* Init Function */
  QString InitScript;
  if(MetaData.contains("init_script"))
    InitScript = MetaData.values("init_script").at(0);
  if(!InitScript.isEmpty())
    page() -> mainFrame() -> evaluateJavaScript(InitScript);

  /* Show */
  if(MetaData.contains("win_fullscreen"))
    showFullScreen();
  else
    show();
}