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)); } } } }
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(); }