Ejemplo n.º 1
0
void
Profile::Load(PlacesOfInterestSettings &settings)
{
  Get(szProfileHomeWaypoint, settings.home_waypoint);
  settings.home_location_available =
    GetGeoPoint(szProfileHomeLocation, settings.home_location);
}
Ejemplo n.º 2
0
	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;
	}
Ejemplo n.º 3
0
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;
}
Ejemplo n.º 4
0
			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;
			}
Ejemplo n.º 5
0
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);
}
Ejemplo n.º 6
0
	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;
	}