diff options
| -rwxr-xr-x | indra/newview/llfloatermarketplacelistings.cpp | 73 | ||||
| -rwxr-xr-x | indra/newview/llfloatermarketplacelistings.h | 3 | ||||
| -rwxr-xr-x | indra/newview/llmarketplacefunctions.cpp | 21 | ||||
| -rwxr-xr-x | indra/newview/llmarketplacefunctions.h | 6 | 
4 files changed, 45 insertions, 58 deletions
diff --git a/indra/newview/llfloatermarketplacelistings.cpp b/indra/newview/llfloatermarketplacelistings.cpp index 27b31518a1..ccfca71df9 100755 --- a/indra/newview/llfloatermarketplacelistings.cpp +++ b/indra/newview/llfloatermarketplacelistings.cpp @@ -160,8 +160,7 @@ public:  			if (added_category_type == LLFolderType::FT_MARKETPLACE_LISTINGS)  			{ -				//mMarketplaceListingsFloater->initializeMarketPlace(); -                LLMarketplaceData::instance().initializeSLM(); +				mMarketplaceListingsFloater->initializeMarketPlace();  			}  		}  	} @@ -235,11 +234,9 @@ void LLFloaterMarketplaceListings::onOpen(const LLSD& key)  	//  	// Initialize the Market Place or go update the marketplace listings  	// -	//if (LLMarketplaceInventoryImporter::getInstance()->getMarketPlaceStatus() == MarketplaceStatusCodes::MARKET_PLACE_NOT_INITIALIZED)      if (LLMarketplaceData::instance().getSLMStatus() == MarketplaceStatusCodes::MARKET_PLACE_NOT_INITIALIZED)  	{ -		//initializeMarketPlace(); -        LLMarketplaceData::instance().initializeSLM(); +		initializeMarketPlace();  	}  	else  	{ @@ -272,7 +269,6 @@ void LLFloaterMarketplaceListings::fetchContents()  void LLFloaterMarketplaceListings::setup()  { -	//if (LLMarketplaceInventoryImporter::getInstance()->getMarketPlaceStatus() != MarketplaceStatusCodes::MARKET_PLACE_MERCHANT)      if (LLMarketplaceData::instance().getSLMStatus() != MarketplaceStatusCodes::MARKET_PLACE_MERCHANT)  	{  		// If we are *not* a merchant or we have no market place connection established yet, do nothing @@ -327,18 +323,7 @@ void LLFloaterMarketplaceListings::setup()  void LLFloaterMarketplaceListings::initializeMarketPlace()  { -	// -	// Initialize the marketplace import API -	// -	LLMarketplaceInventoryImporter& importer = LLMarketplaceInventoryImporter::instance(); -	 -    if (!importer.isInitialized()) -    { -        importer.setInitializationErrorCallback(boost::bind(&LLFloaterMarketplaceListings::initializationReportError, this, _1, _2)); -        importer.setStatusChangedCallback(boost::bind(&LLFloaterMarketplaceListings::importStatusChanged, this, _1)); -        importer.setStatusReportCallback(boost::bind(&LLFloaterMarketplaceListings::importReportResults, this, _1, _2)); -        importer.initialize(); -    } +    LLMarketplaceData::instance().initializeSLM(boost::bind(&LLFloaterMarketplaceListings::updateView, this));  }  S32 LLFloaterMarketplaceListings::getFolderCount() @@ -379,9 +364,27 @@ void LLFloaterMarketplaceListings::updateView()          std::string tooltip;          const LLSD& subs = getMarketplaceStringSubstitutions(); -        //U32 mkt_status = LLMarketplaceInventoryImporter::getInstance()->getMarketPlaceStatus();          U32 mkt_status = LLMarketplaceData::instance().getSLMStatus(); +        // Get or create the root folder if we are a merchant and it hasn't been done already +        if (mRootFolderId.isNull() && (mkt_status == MarketplaceStatusCodes::MARKET_PLACE_MERCHANT)) +        { +            setup(); +        } + +        // Update the bottom initializing status and progress dial +        if (mkt_status == MarketplaceStatusCodes::MARKET_PLACE_INITIALIZING) +        { +            setStatusString(getString("MarketplaceListingsInitializing")); +            mInventoryInitializationInProgress->setVisible(true); +        } +        else +        { +            setStatusString(""); +            mInventoryInitializationInProgress->setVisible(false); +        } +         +        // Update the top message or flip to the tabs and folders view          // *TODO : check those messages and create better appropriate ones in strings.xml          if (mRootFolderId.notNull())          { @@ -483,38 +486,6 @@ void LLFloaterMarketplaceListings::onChanged()      }  } -void LLFloaterMarketplaceListings::initializationReportError(U32 status, const LLSD& content) -{ -	updateView(); -} - -void LLFloaterMarketplaceListings::importStatusChanged(bool inProgress) -{ -	//if (mRootFolderId.isNull() && (LLMarketplaceInventoryImporter::getInstance()->getMarketPlaceStatus() == MarketplaceStatusCodes::MARKET_PLACE_MERCHANT)) -    if (mRootFolderId.isNull() && (LLMarketplaceData::instance().getSLMStatus() == MarketplaceStatusCodes::MARKET_PLACE_MERCHANT)) -	{ -		setup(); -	} - -	if (inProgress) -	{ -        setStatusString(getString("MarketplaceListingsInitializing")); -		mInventoryInitializationInProgress->setVisible(true); -	} -	else -	{ -		setStatusString(""); -		mInventoryInitializationInProgress->setVisible(false); -	} -	 -	updateView(); -} - -void LLFloaterMarketplaceListings::importReportResults(U32 status, const LLSD& content) -{	 -	updateView(); -} -  //-----------------------------------------------------------------------------  // LLFloaterAssociateListing  //----------------------------------------------------------------------------- diff --git a/indra/newview/llfloatermarketplacelistings.h b/indra/newview/llfloatermarketplacelistings.h index cb900c903c..f68097f156 100755 --- a/indra/newview/llfloatermarketplacelistings.h +++ b/indra/newview/llfloatermarketplacelistings.h @@ -94,9 +94,6 @@ protected:  	void setup();  	void fetchContents(); -	void importReportResults(U32 status, const LLSD& content); -	void importStatusChanged(bool inProgress); -	void initializationReportError(U32 status, const LLSD& content);  	void setStatusString(const std::string& statusString);  	void onClose(bool app_quitting); diff --git a/indra/newview/llmarketplacefunctions.cpp b/indra/newview/llmarketplacefunctions.cpp index 607f907ed1..c3aaf66071 100755 --- a/indra/newview/llmarketplacefunctions.cpp +++ b/indra/newview/llmarketplacefunctions.cpp @@ -602,7 +602,8 @@ LLMarketplaceTuple::LLMarketplaceTuple(const LLUUID& folder_id, S32 listing_id,  // Data map  LLMarketplaceData::LLMarketplaceData() :  - mMarketPlaceStatus(MarketplaceStatusCodes::MARKET_PLACE_NOT_INITIALIZED) + mMarketPlaceStatus(MarketplaceStatusCodes::MARKET_PLACE_NOT_INITIALIZED), + mStatusUpdatedSignal(NULL)  {      mTestCurrentMarketplaceID = 1234567;  } @@ -612,9 +613,14 @@ S32 LLMarketplaceData::getTestMarketplaceID()      return mTestCurrentMarketplaceID++;  } -void LLMarketplaceData::initializeSLM() +void LLMarketplaceData::initializeSLM(const status_updated_signal_t::slot_type& cb)  {      mMarketPlaceStatus = MarketplaceStatusCodes::MARKET_PLACE_INITIALIZING; +	if (mStatusUpdatedSignal == NULL) +	{ +		mStatusUpdatedSignal = new status_updated_signal_t(); +	} +	mStatusUpdatedSignal->connect(cb);      // Get DirectDelivery cap      std::string url = ""; @@ -638,6 +644,17 @@ void LLMarketplaceData::initializeSLM()  	LLHTTPClient::get(url, new LLSLMMerchantResponder(), LLSD());  } +void LLMarketplaceData::setSLMStatus(U32 status) +{ +    mMarketPlaceStatus = status; /* call cb if status is "done" */ + +    // Make sure we trigger the status change with the current state +    if (mStatusUpdatedSignal) +    { +        (*mStatusUpdatedSignal)(); +    } +} +  // Creation / Deletion  bool LLMarketplaceData::addListing(const LLUUID& folder_id)  { diff --git a/indra/newview/llmarketplacefunctions.h b/indra/newview/llmarketplacefunctions.h index a71ccfd53e..237432068c 100755 --- a/indra/newview/llmarketplacefunctions.h +++ b/indra/newview/llmarketplacefunctions.h @@ -146,9 +146,10 @@ public:  	LLMarketplaceData();      // SLM +	typedef boost::signals2::signal<void ()> status_updated_signal_t;  	U32  getSLMStatus() const { return mMarketPlaceStatus; } -	void setSLMStatus(U32 status) { mMarketPlaceStatus = status; } -    void initializeSLM(); +	void setSLMStatus(U32 status); +    void initializeSLM(const status_updated_signal_t::slot_type& cb);      bool isEmpty() { return (mMarketplaceItems.size() == 0); } @@ -179,6 +180,7 @@ public:  private:      marketplace_items_list_t mMarketplaceItems;  	U32  mMarketPlaceStatus; +	status_updated_signal_t *	mStatusUpdatedSignal;      // Merov : This is for test only, waiting for SLM API      S32 mTestCurrentMarketplaceID;  };  | 
