STDMETHODIMP CHyperFeedPriceInfoWithNotify::Connect()
{
	try 
	{
		ConnectProvider();
	}
	_CATCH_COM_EXCEPTION_RETURN_COM( L"Connect Failed")
	_CATCH_UNHANDLED_EXCEPTION_RETURN_COM;
	return S_OK;
}
STDMETHODIMP CHyperFeedPriceProvider::Connect()
{
	try 
	{
		ConnectProvider();
	}
	catch(_com_error& err)
	{
		return EgLib::utils::ComError2ErrInfo (err,this);		
	}
	return S_OK;
}
GlobalSearch::GlobalSearch(Application* app, QObject* parent)
    : QObject(parent),
      app_(app),
      next_id_(1),
      url_provider_(new UrlSearchProvider(app, this)) {
  cover_loader_options_.desired_height_ = SearchProvider::kArtHeight;
  cover_loader_options_.pad_output_image_ = true;
  cover_loader_options_.scale_output_image_ = true;

  connect(app_->album_cover_loader(), SIGNAL(ImageLoaded(quint64, QImage)),
          SLOT(AlbumArtLoaded(quint64, QImage)));
  connect(this, SIGNAL(SearchAsyncSig(int,QString)),
          this, SLOT(DoSearchAsync(int,QString)));

  ConnectProvider(url_provider_);
}
void GlobalSearch::AddProvider(SearchProvider* provider) {
  Q_ASSERT(!provider->name().isEmpty());

  bool enabled = provider->is_enabled_by_default();

  // Check if there is saved enabled/disabled state for this provider.
  QSettings s;
  s.beginGroup(kSettingsGroup);
  QVariant enabled_variant = s.value("enabled_" + provider->id());
  if (enabled_variant.isValid()) {
    enabled = enabled_variant.toBool();
  }

  // Add data
  ProviderData data;
  data.enabled_ = enabled;
  providers_[provider] = data;

  ConnectProvider(provider);
  emit ProviderAdded(provider);
}