void Profile::Load(PlacesOfInterestSettings &settings) { Get(szProfileHomeWaypoint, settings.home_waypoint); settings.home_location_available = GetGeoPoint(szProfileHomeLocation, settings.home_location); }
Item* RSS091Parser::ParseItem (const QDomElement& item, const IDType_t& channelId) const { Item *result = new Item (channelId); result->Title_ = UnescapeHTML (item.firstChildElement ("title").text ()); if (result->Title_.isEmpty ()) result->Title_ = "<>"; result->Link_ = item.firstChildElement ("link").text (); result->Description_ = item.firstChildElement ("description").text (); GetDescription (item, result->Description_); result->PubDate_ = RFC822TimeToQDateTime (item.firstChildElement ("pubDate").text ()); if (!result->PubDate_.isValid () || result->PubDate_.isNull ()) { qWarning () << "Aggregator RSS 0.91: Can't parse item pubDate: " << item.firstChildElement ("pubDate").text (); result->PubDate_ = QDateTime::currentDateTime (); } result->Guid_ = item.firstChildElement ("guid").text (); if (result->Guid_.isEmpty ()) result->Guid_ = "empty"; result->Categories_ = GetAllCategories (item); result->Unread_ = true; result->Author_ = GetAuthor (item); result->NumComments_ = GetNumComments (item); result->CommentsLink_ = GetCommentsRSS (item); result->CommentsPageLink_ = GetCommentsLink (item); result->Enclosures_ = GetEnclosures (item, result->ItemID_); result->Enclosures_ += GetEncEnclosures (item, result->ItemID_); QPair<double, double> point = GetGeoPoint (item); result->Latitude_ = point.first; result->Longitude_ = point.second; return result; }
Item* Atom10Parser::ParseItem (const QDomElement& entry, const IDType_t& channelId) const { Item *item = new Item (channelId); item->Title_ = entry.firstChildElement ("title").text (); item->Link_ = GetLink (entry); item->Guid_ = entry.firstChildElement ("id").text (); item->PubDate_ = FromRFC3339 (entry.firstChildElement ("updated").text ()); item->Unread_ = true; item->Categories_ = GetAllCategories (entry); item->Author_ = GetAuthor (entry); item->NumComments_ = GetNumComments (entry); item->CommentsLink_ = GetCommentsRSS (entry); item->CommentsPageLink_ = GetCommentsLink (entry); QDomElement summary = entry.firstChildElement ("content"); if (summary.isNull ()) summary = entry.firstChildElement ("summary"); item->Description_ = ParseEscapeAware (summary); GetDescription (entry, item->Description_); item->Enclosures_ = GetEnclosures (entry, item->ItemID_); item->Enclosures_ += GetEncEnclosures (entry, item->ItemID_); QPair<double, double> point = GetGeoPoint (entry); item->Latitude_ = point.first; item->Longitude_ = point.second; item->MRSSEntries_ = GetMediaRSS (entry, item->ItemID_); return item; }
Item* RSS20Parser::ParseItem (const QDomElement& item, const IDType_t& channelId) const { Item *result = new Item (channelId); result->Title_ = UnescapeHTML (item.firstChildElement ("title").text ()); if (result->Title_.isEmpty ()) result->Title_ = "<>"; result->Link_ = item.firstChildElement ("link").text (); result->Description_ = item.firstChildElement ("description").text (); GetDescription (item, result->Description_); QDomNodeList duration = item.elementsByTagNameNS (ITunes_, "duration"); if (duration.size ()) { if (!result->Description_.isEmpty ()) result->Description_ += "<br /><br />"; result->Description_ += QObject::tr ("Duration: %1") .arg (duration.at (0).toElement ().text ()); } QString pubDateText = item.firstChildElement ("pubDate").text (); if (pubDateText.size ()) { result->PubDate_ = RFC822TimeToQDateTime (pubDateText); if (!result->PubDate_.isValid () || result->PubDate_.isNull ()) result->PubDate_ = QDateTime::currentDateTime (); } result->Guid_ = item.firstChildElement ("guid").text (); if (result->Guid_.isEmpty ()) result->Guid_ = "empty"; result->Categories_ = GetAllCategories (item); result->Unread_ = true; result->Author_ = GetAuthor (item); result->NumComments_ = GetNumComments (item); result->CommentsLink_ = GetCommentsRSS (item); result->CommentsPageLink_ = GetCommentsLink (item); result->Enclosures_ = GetEnclosures (item, result->ItemID_); result->Enclosures_ += GetEncEnclosures (item, result->ItemID_); QPair<double, double> point = GetGeoPoint (item); result->Latitude_ = point.first; result->Longitude_ = point.second; result->MRSSEntries_ = GetMediaRSS (item, result->ItemID_); return result; }
void Profile::Use() { unsigned Temp = 0; LogStartUp(_T("Read registry settings")); OrderedTaskBehaviour &osettings_task = XCSoarInterface::SetSettingsComputer().ordered_defaults; TaskBehaviour &settings_task = XCSoarInterface::SetSettingsComputer(); Get(szProfileFinishMinHeight, osettings_task.finish_min_height); Get(szProfileStartHeightRef, osettings_task.start_max_height_ref); Get(szProfileStartMaxHeight, osettings_task.start_max_height); Get(szProfileStartMaxSpeed, osettings_task.start_max_speed); Get(szProfileStartMaxHeightMargin, settings_task.start_max_height_margin); Get(szProfileStartMaxSpeedMargin, settings_task.start_max_speed_margin); unsigned sdtemp = 0; Get(szProfileStartType, sdtemp); settings_task.sector_defaults.start_type = (AbstractTaskFactory::LegalPointType_t)sdtemp; Get(szProfileStartRadius, settings_task.sector_defaults.start_radius); Get(szProfileTurnpointType, sdtemp); settings_task.sector_defaults.turnpoint_type = (AbstractTaskFactory::LegalPointType_t)sdtemp; Get(szProfileTurnpointRadius, settings_task.sector_defaults.turnpoint_radius); Get(szProfileFinishType, sdtemp); settings_task.sector_defaults.finish_type = (AbstractTaskFactory::LegalPointType_t)sdtemp; Get(szProfileFinishRadius, settings_task.sector_defaults.finish_radius); Get(szProfileTaskType, sdtemp); settings_task.task_type_default = (TaskBehaviour::Factory_t)sdtemp; Get(szProfileAATMinTime, osettings_task.aat_min_time); Get(szProfileAATTimeMargin, settings_task.optimise_targets_margin); LoadUnits(); Profile::GetInfoBoxManagerConfig(infoBoxManagerConfig); SETTINGS_MAP &settings_map = XCSoarInterface::SetSettingsMap(); bool orientation_found = false; Temp = NORTHUP; if (Get(szProfileOrientationCircling, Temp)) orientation_found = true; switch (Temp) { case TRACKUP: settings_map.OrientationCircling = TRACKUP; break; case NORTHUP: settings_map.OrientationCircling = NORTHUP; break; case TARGETUP: settings_map.OrientationCircling = TARGETUP; break; } Temp = NORTHUP; if (Get(szProfileOrientationCruise, Temp)) orientation_found = true; switch (Temp) { case TRACKUP: settings_map.OrientationCruise = TRACKUP; break; case NORTHUP: settings_map.OrientationCruise = NORTHUP; break; case TARGETUP: settings_map.OrientationCruise = TARGETUP; break; } if (!orientation_found) { Temp = 1; Get(szProfileDisplayUpValue, Temp); switch (Temp) { case 0: settings_map.OrientationCruise = TRACKUP; settings_map.OrientationCircling = TRACKUP; break; case 1: settings_map.OrientationCruise = NORTHUP; settings_map.OrientationCircling = NORTHUP; break; case 2: settings_map.OrientationCruise = TRACKUP; settings_map.OrientationCircling = NORTHUP; break; case 3: settings_map.OrientationCruise = TRACKUP; settings_map.OrientationCircling = TARGETUP; break; case 4: settings_map.OrientationCruise = NORTHUP; settings_map.OrientationCircling = TRACKUP; break; } } GetEnum(szProfileMapShiftBias, settings_map.MapShiftBias); settings_map.waypoint.LoadFromProfile(); SETTINGS_COMPUTER &settings_computer = XCSoarInterface::SetSettingsComputer(); Get(szProfileSafetyAltitudeArrival, settings_computer.safety_height_arrival); Get(szProfileSafetyAltitudeTerrain, settings_computer.route_planner.safety_height_terrain); LoadAirspaceConfig(); GetEnum(szProfileSnailTrail, settings_map.trail_length); Get(szProfileTrailDrift, settings_map.EnableTrailDrift); Get(szProfileDetourCostMarker, settings_map.EnableDetourCostMarker); GetEnum(szProfileDisplayTrackBearing, settings_map.DisplayTrackBearing); Get(szProfileDrawTopography, settings_map.EnableTopography); LoadTerrainRendererSettings(settings_map.terrain); GetEnum(szProfileFinalGlideTerrain, settings_computer.FinalGlideTerrain); Get(szProfileAutoWind, settings_computer.AutoWindMode); Get(szProfileExternalWind, settings_computer.ExternalWind); Get(szProfileCircleZoom, settings_map.CircleZoom); Get(szProfileMaxAutoZoomDistance, settings_map.MaxAutoZoomDistance); Get(szProfileHomeWaypoint, settings_computer.HomeWaypoint); settings_computer.HomeLocationAvailable = GetGeoPoint(szProfileHomeLocation, settings_computer.HomeLocation); Get(szProfileSnailWidthScale, settings_map.SnailScaling); GetEnum(szProfileSnailType, settings_map.SnailType); Get(szProfileTeamcodeRefWaypoint, settings_computer.TeamCodeRefWaypoint); Get(szProfileSoundVolume, settings_computer.SoundVolume); Get(szProfileSoundDeadband, settings_computer.SoundDeadband); Get(szProfileSoundAudioVario, settings_computer.EnableSoundVario); Get(szProfileSoundTask, settings_computer.EnableSoundTask); Get(szProfileSoundModes, settings_computer.EnableSoundModes); #ifdef HAVE_BLANK Get(szProfileAutoBlank, settings_map.EnableAutoBlank); #endif if (Get(szProfileAverEffTime, Temp)) settings_computer.AverEffTime = Temp; Get(szProfileDebounceTimeout, XCSoarInterface::debounceTimeout); /* JMW broken if (Get(szProfileAccelerometerZero, Temp)) AccelerometerZero = Temp; if (AccelerometerZero==0.0) { AccelerometerZero= 100.0; Temp = 100; Set(szProfileAccelerometerZero, Temp); } */ // new appearance variables Get(szProfileAppInverseInfoBox, Appearance.InverseInfoBox); GetEnum(szProfileAppInfoBoxBorder, Appearance.InfoBoxBorder); GetEnum(szProfileAppStatusMessageAlignment, Appearance.StateMessageAlign); GetEnum(szProfileAppTextInputStyle, Appearance.TextInputStyle); GetEnum(szProfileAppDialogTabStyle, Appearance.DialogTabStyle); GetEnum(szProfileAppDialogStyle, DialogStyleSetting); Get(szProfileAppInfoBoxColors, Appearance.InfoBoxColors); Get(szProfileAutoMc, settings_computer.auto_mc); GetEnum(szProfileAutoMcMode, settings_computer.auto_mc_mode); if (GetEnum(szProfileOLCRules, settings_computer.contest)) { if ( settings_computer.contest == OLC_Sprint ) settings_computer.contest = OLC_League; // Handle out-dated Sprint rule in profile } Get(szProfileEnableExternalTriggerCruise, settings_computer.EnableExternalTriggerCruise); Get(szProfileUTCOffset, settings_computer.UTCOffset); if (settings_computer.UTCOffset > 12 * 3600) settings_computer.UTCOffset -= 24 * 3600; Get(szProfileBlockSTF, settings_computer.EnableBlockSTF); Get(szProfileAutoZoom, settings_map.AutoZoom); Get(szProfileMenuTimeout, XCSoarInterface::MenuTimeoutMax); Get(szProfileLoggerShort, settings_computer.LoggerShortName); Get(szProfileEnableFLARMMap, settings_map.EnableFLARMMap); Get(szProfileEnableFLARMGauge, settings_map.EnableFLARMGauge); Get(szProfileAutoCloseFlarmDialog, settings_map.AutoCloseFlarmDialog); Get(szProfileEnableTAGauge, settings_map.EnableTAGauge); Get(szProfileEnableThermalProfile, settings_map.EnableThermalProfile); Get(szProfileGliderScreenPosition, settings_map.GliderScreenPosition); Get(szProfileSetSystemTimeFromGPS, settings_map.SetSystemTimeFromGPS); Get(szProfileUseCustomFonts, Appearance.UseCustomFonts); Get(szProfileVoiceClimbRate, settings_computer.EnableVoiceClimbRate); Get(szProfileVoiceTerrain, settings_computer.EnableVoiceTerrain); Get(szProfileVoiceWaypointDistance, settings_computer.EnableVoiceWaypointDistance); Get(szProfileVoiceTaskAltitudeDifference, settings_computer.EnableVoiceTaskAltitudeDifference); Get(szProfileVoiceMacCready, settings_computer.EnableVoiceMacCready); Get(szProfileVoiceNewWaypoint, settings_computer.EnableVoiceNewWaypoint); Get(szProfileVoiceInSector, settings_computer.EnableVoiceInSector); Get(szProfileVoiceAirspace, settings_computer.EnableVoiceAirspace); Get(szProfileEnableNavBaroAltitude, settings_computer.EnableNavBaroAltitude); Get(szProfileLoggerTimeStepCruise, settings_computer.LoggerTimeStepCruise); Get(szProfileLoggerTimeStepCircling, settings_computer.LoggerTimeStepCircling); if (Get(szProfileSafetyMacCready, Temp)) settings_computer.safety_mc = fixed(Temp) / 10; GetEnum(szProfileAbortTaskMode, settings_computer.abort_task_mode); GetEnum(szProfileRoutePlannerMode, settings_computer.route_planner.mode); Get(szProfileRoutePlannerAllowClimb, settings_computer.route_planner.allow_climb); Get(szProfileRoutePlannerUseCeiling, settings_computer.route_planner.use_ceiling); GetEnum(szProfileTurningReach, settings_computer.route_planner.reach_calc_mode); GetEnum(szProfileReachPolarMode, settings_computer.route_planner.reach_polar_mode); if (Get(szProfileRiskGamma, Temp)) settings_computer.risk_gamma = fixed(Temp) / 10; if (Get(szProfileWindArrowStyle, Temp)) settings_map.WindArrowStyle = Temp; Get(szProfileDisableAutoLogger, settings_computer.DisableAutoLogger); GetEnum(szProfileAircraftSymbol, Appearance.AircraftSymbol); }
channels_container_t RSS10Parser::Parse (const QDomDocument& doc, const IDType_t& feedId) const { channels_container_t result; QMap<QString, Channel_ptr> item2Channel; QDomElement root = doc.documentElement (); QDomElement channelDescr = root.firstChildElement ("channel"); while (!channelDescr.isNull ()) { Channel_ptr channel (new Channel (feedId)); channel->Title_ = channelDescr.firstChildElement ("title").text ().trimmed (); channel->Link_ = channelDescr.firstChildElement ("link").text (); channel->Description_ = channelDescr.firstChildElement ("description").text (); channel->PixmapURL_ = channelDescr.firstChildElement ("image") .firstChildElement ("url").text (); channel->LastBuild_ = GetDCDateTime (channelDescr); QDomElement itemsRoot = channelDescr.firstChildElement ("items"); QDomNodeList seqs = itemsRoot.elementsByTagNameNS (RDF_, "Seq"); channelDescr = channelDescr.nextSiblingElement ("channel"); if (!seqs.size ()) continue; QDomElement seqElem = seqs.at (0).toElement (); QDomNodeList lis = seqElem.elementsByTagNameNS (RDF_, "li"); for (int i = 0; i < lis.size (); ++i) item2Channel [lis.at (i).toElement ().attribute ("resource")] = channel; result.push_back (channel); } QDomElement itemDescr = root.firstChildElement ("item"); while (!itemDescr.isNull ()) { QString about = itemDescr.attributeNS (RDF_, "about"); if (item2Channel.contains (about)) { Item_ptr item (new Item (item2Channel [about]->ChannelID_)); item->Title_ = itemDescr.firstChildElement ("title").text (); item->Link_ = itemDescr.firstChildElement ("link").text (); item->Description_ = itemDescr.firstChildElement ("description").text (); GetDescription (itemDescr, item->Description_); item->Categories_ = GetAllCategories (itemDescr); item->Author_ = GetAuthor (itemDescr); item->PubDate_ = GetDCDateTime (itemDescr); item->Unread_ = true; item->NumComments_ = GetNumComments (itemDescr); item->CommentsLink_ = GetCommentsRSS (itemDescr); item->CommentsPageLink_ = GetCommentsLink (itemDescr); item->Enclosures_ = GetEncEnclosures (itemDescr, item->ItemID_); QPair<double, double> point = GetGeoPoint (itemDescr); item->Latitude_ = point.first; item->Longitude_ = point.second; if (item->Guid_.isEmpty ()) item->Guid_ = "empty"; item2Channel [about]->Items_.push_back (item); } itemDescr = itemDescr.nextSiblingElement ("item"); } return result; }