Пример #1
0
// virtual
void LLPanelDirPlaces::performQuery()
{
	LLString name = childGetValue("name").asString();
	if (name.length() < mMinSearchChars)
	{
		return;
	}

	LLString catstring = childGetValue("Category").asString();
	
	// Because LLParcel::C_ANY is -1, must do special check
	S32 category = 0;
	if (catstring == "any")
	{
		category = LLParcel::C_ANY;
	}
	else
	{
		category = LLParcel::getCategoryFromString(catstring.c_str());
	}

	U32 flags = 0x0;
	bool adult_enabled = gAgent.canAccessAdult();
	bool mature_enabled = gAgent.canAccessMature();

	if (gSavedSettings.getBOOL("ShowPGSims") ||
	    (!adult_enabled && !mature_enabled)) // if they can't have either of the others checked, force this one true 
	{
		flags |= DFQ_INC_PG;
	}

	if( gSavedSettings.getBOOL("ShowMatureSims") && mature_enabled)
	{
		flags |= DFQ_INC_MATURE;
	}

	if( gSavedSettings.getBOOL("ShowAdultSims") && adult_enabled)
	{
		flags |= DFQ_INC_ADULT;
	}
	
	// Pack old query flag in case we are talking to an old server
	if ( ((flags & DFQ_INC_PG) == DFQ_INC_PG) && !((flags & DFQ_INC_MATURE) == DFQ_INC_MATURE) )
	{
		flags |= DFQ_PG_PARCELS_ONLY;
	}
 
	if (0x0 == flags)
	{
		LLNotifyBox::showXml("NoContentToSearch");
		return; 
	}

	queryCore(name, category, flags);
}
Пример #2
0
BOOL process_secondlife_url(LLString url)
{
	S32 strpos, strpos2;

	LLString slurlID = "slurl.com/secondlife/";
	strpos = url.find(slurlID);
	
	if (strpos < 0)
	{
		slurlID="secondlife://";
		strpos = url.find(slurlID);
	}
	
	if (strpos >= 0) 
	{
		LLString simname;

		strpos+=slurlID.length();
		strpos2=url.find("/",strpos);
		if (strpos2 < strpos) strpos2=url.length();
		simname="secondlife://" + url.substr(strpos,url.length() - strpos);

		LLURLSimString::setString( simname );
		LLURLSimString::parse();

		// if there is a world map
		if ( gFloaterWorldMap )
		{
			// mark where the destination is
			gFloaterWorldMap->trackURL( LLURLSimString::sInstance.mSimName.c_str(),
										LLURLSimString::sInstance.mX,
										LLURLSimString::sInstance.mY,
										LLURLSimString::sInstance.mZ );

			// display map
			LLFloaterWorldMap::show( NULL, TRUE );
		};

		return TRUE;
	}
	return FALSE;
}
Пример #3
0
bool LLPreviewNotecard::saveIfNeeded(LLInventoryItem* copyitem)
{
    if(!gAssetStorage)
    {
        llwarns << "Not connected to an asset storage system." << llendl;
        return false;
    }


    LLViewerTextEditor* editor = LLViewerUICtrlFactory::getViewerTextEditorByName(this, "Notecard Editor");

    if(!editor->isPristine())
    {
        // We need to update the asset information
        LLTransactionID tid;
        LLAssetID asset_id;
        tid.generate();
        asset_id = tid.makeAssetID(gAgent.getSecureSessionID());

        LLVFile file(gVFS, asset_id, LLAssetType::AT_NOTECARD, LLVFile::APPEND);

        LLString buffer;
        if (!editor->exportBuffer(buffer))
        {
            return false;
        }

        editor->makePristine();

        S32 size = buffer.length() + 1;
        file.setMaxSize(size);
        file.write((U8*)buffer.c_str(), size);

        const LLInventoryItem* item = getItem();
        // save it out to database
        if (item)
        {
            std::string agent_url = gAgent.getRegion()->getCapability("UpdateNotecardAgentInventory");
            std::string task_url = gAgent.getRegion()->getCapability("UpdateNotecardTaskInventory");
            if (mObjectUUID.isNull() && !agent_url.empty())
            {
                // Saving into agent inventory
                mAssetStatus = PREVIEW_ASSET_LOADING;
                setEnabled(FALSE);
                LLSD body;
                body["item_id"] = mItemUUID;
                llinfos << "Saving notecard " << mItemUUID
                        << " into agent inventory via " << agent_url << llendl;
                LLHTTPClient::post(agent_url, body,
                                   new LLUpdateAgentInventoryResponder(body, asset_id, LLAssetType::AT_NOTECARD));
            }
            else if (!mObjectUUID.isNull() && !task_url.empty())
            {
                // Saving into task inventory
                mAssetStatus = PREVIEW_ASSET_LOADING;
                setEnabled(FALSE);
                LLSD body;
                body["task_id"] = mObjectUUID;
                body["item_id"] = mItemUUID;
                llinfos << "Saving notecard " << mItemUUID << " into task "
                        << mObjectUUID << " via " << task_url << llendl;
                LLHTTPClient::post(task_url, body,
                                   new LLUpdateTaskInventoryResponder(body, asset_id, LLAssetType::AT_NOTECARD));
            }
            else if (gAssetStorage)
            {
                LLSaveNotecardInfo* info = new LLSaveNotecardInfo(this, mItemUUID, mObjectUUID,
                        tid, copyitem);
                gAssetStorage->storeAssetData(tid, LLAssetType::AT_NOTECARD,
                                              &onSaveComplete,
                                              (void*)info,
                                              FALSE);
            }
        }
    }
    return true;
}