Merge branch 'master' of https://github.com/FirestormViewer/phoenix-firestorm
commit
f30e9c2057
|
|
@ -316,11 +316,12 @@ jobs:
|
|||
echo "viewer_build=$viewer_build" >> "$GITHUB_OUTPUT"
|
||||
echo "viewer_channel=${{ env.FS_RELEASE_CHAN }}" >> "$GITHUB_OUTPUT"
|
||||
echo "viewer_release_type=${{ env.FS_RELEASE_TYPE }}" >> "$GITHUB_OUTPUT"
|
||||
# - name: Install node-dump-syms
|
||||
# if: runner.os == 'Linux'
|
||||
# run: |
|
||||
# npm install -g node-pre-gyp
|
||||
# npm install -g node-dump-syms
|
||||
|
||||
- name: Unzip xcarchive.zip files
|
||||
if: runner.os == 'macOS'
|
||||
run: |
|
||||
find . -name '*.xcarchive.zip' -exec sh -c 'unzip -o "{}" -d "$(dirname "{}")"' \;
|
||||
|
||||
|
||||
- name: Post Bugsplat Symbols
|
||||
uses: BugSplat-Git/symbol-upload@main
|
||||
|
|
@ -348,7 +349,7 @@ jobs:
|
|||
secrets.BUGSPLAT_DEFAULT_DB }}
|
||||
application: "Firestorm-${{ steps.version.outputs.viewer_channel}}"
|
||||
version: ${{ steps.version.outputs.viewer_version }}.${{ steps.version.outputs.viewer_build }}
|
||||
files: ${{ runner.os == 'Windows' && '**/Release/*.{pdb,exe,dll}' || runner.os == 'macOS' && '**/*.xcarchive.zip' || '**/{do-not-run-directly-firestorm-bin,*.sym}' }}
|
||||
files: ${{ runner.os == 'Windows' && '**/Release/*.{pdb,exe,dll}' || runner.os == 'macOS' && '**/Release/{Firestorm,*.dSYM}' || '**/{do-not-run-directly-firestorm-bin,*.sym}' }}
|
||||
directory: "build-*"
|
||||
node-version: "20"
|
||||
dumpSyms: false
|
||||
|
|
@ -432,6 +433,31 @@ jobs:
|
|||
run: ls -R
|
||||
working-directory: ${{steps.download.outputs.download-path}}
|
||||
|
||||
- name: Create Build Info artifact
|
||||
env:
|
||||
FS_VIEWER_CHANNEL: ${{ needs.build_matrix.outputs.viewer_channel }}
|
||||
FS_VIEWER_VERSION:
|
||||
FS_VIEWER_BUILD:
|
||||
FS_VIEWER_RELEASE_TYPE:
|
||||
id: create_build_info
|
||||
run: |
|
||||
cat <<EOF > build_info.json
|
||||
{
|
||||
"build_run_number": "${{ github.run_number }}",
|
||||
"release_type": "${{ needs.build_matrix.outputs.viewer_release_type }}",
|
||||
"viewer_version": "${{ needs.build_matrix.outputs.viewer_version }}",
|
||||
"viewer_build": "${{ needs.build_matrix.outputs.viewer_build }}"
|
||||
}
|
||||
EOF
|
||||
echo "Build info created: $(cat build_info.json)"
|
||||
|
||||
# Upload Build Info Artifact
|
||||
- name: Upload Tag Info
|
||||
uses: actions/upload-artifact@v4
|
||||
with:
|
||||
name: build_info
|
||||
path: build_info.json
|
||||
|
||||
- name: Reorganise artifacts ready for server upload.
|
||||
env:
|
||||
FS_VIEWER_CHANNEL: ${{ needs.build_matrix.outputs.viewer_channel }}
|
||||
|
|
|
|||
|
|
@ -3,10 +3,9 @@ name: Deploy Viewer
|
|||
on:
|
||||
workflow_dispatch:
|
||||
inputs:
|
||||
build_run_id:
|
||||
description: 'Workflow Run ID of the build to deploy'
|
||||
build_run_number:
|
||||
description: 'GitHub Run Number (per build_viewer.yml workflow)'
|
||||
required: true
|
||||
default: ''
|
||||
viewer_channel:
|
||||
description: 'viewer_channel'
|
||||
required: true
|
||||
|
|
@ -50,7 +49,7 @@ jobs:
|
|||
id: download
|
||||
with:
|
||||
workflow: build_viewer.yml
|
||||
run_number: ${{ github.event.inputs.build_run_id }}
|
||||
run_number: ${{ github.event.inputs.build_run_number }}
|
||||
path: to_deploy
|
||||
- name: Install discord-webhook library
|
||||
run: pip install discord-webhook
|
||||
|
|
|
|||
|
|
@ -0,0 +1,164 @@
|
|||
name: Tag FS Build
|
||||
|
||||
on:
|
||||
workflow_run:
|
||||
workflows: ["Build Viewer"] # Exact name of the build workflow
|
||||
types:
|
||||
- completed
|
||||
workflow_dispatch:
|
||||
inputs:
|
||||
build_run_number:
|
||||
description: 'GitHub Run Number (per build_viewer.yml workflow)'
|
||||
required: true
|
||||
release_type:
|
||||
description: "Type of build"
|
||||
required: false
|
||||
type: choice
|
||||
default: "undefined"
|
||||
options:
|
||||
- "undefined"
|
||||
- "Manual"
|
||||
- "Nightly"
|
||||
- "Beta"
|
||||
- "Alpha"
|
||||
- "Release"
|
||||
viewer_version:
|
||||
description: 'Viewer version'
|
||||
required: false
|
||||
default: "undefined"
|
||||
viewer_build:
|
||||
description: 'Viewer build number'
|
||||
required: false
|
||||
default: "undefined"
|
||||
dry_run:
|
||||
description: 'Execute as dry run (no tag will be created)'
|
||||
required: false
|
||||
default: 'true'
|
||||
|
||||
permissions:
|
||||
contents: write # Grants write access to repository contents
|
||||
|
||||
jobs:
|
||||
tag-build:
|
||||
# Run the job only if:
|
||||
# - The event is workflow_run **and** the conclusion is success
|
||||
# OR
|
||||
# - The event is workflow_dispatch (manual trigger)
|
||||
if: ${{ ( github.event_name == 'workflow_run' && github.event.workflow_run.conclusion == 'success' ) || ( github.event_name == 'workflow_dispatch' ) }}
|
||||
runs-on: ubuntu-latest
|
||||
|
||||
steps:
|
||||
# Checkout the Repository
|
||||
- name: Checkout repository
|
||||
uses: actions/checkout@v4
|
||||
with:
|
||||
fetch-depth: 0 # Necessary to fetch all history for tagging
|
||||
|
||||
# Install jq for JSON Parsing
|
||||
- name: Install jq
|
||||
run: sudo apt-get update && sudo apt-get install -y jq
|
||||
|
||||
- name: Get Run Number
|
||||
id: get_run_number
|
||||
run: |
|
||||
if [ ${{ github.event_name == 'workflow_run' }} ]; then
|
||||
echo "Triggered by workflow_run event."
|
||||
echo "Using run number of triggering workflow"
|
||||
echo "build_run_number=${{ github.event.inputs.build_run_number }}" >> "$GITHUB_OUTPUT"
|
||||
elif [ "${{ github.event_name }}" == "workflow_dispatch" ]; then
|
||||
echo "Triggered by workflow_dispatch event."
|
||||
echo "Using run number of manual dispatch"
|
||||
echo "build_run_number=${{ github.event.inputs.build_run_number }}" >> "$GITHUB_OUTPUT"
|
||||
fi
|
||||
- name: Download Build Artifacts
|
||||
uses: dawidd6/action-download-artifact@v6
|
||||
id: download_build_info
|
||||
with:
|
||||
workflow: build_viewer.yml
|
||||
run_number: ${{ steps.get_run_number.outputs.build_run_number }}
|
||||
name: build_info
|
||||
skip_unpack: false
|
||||
path: build_info
|
||||
|
||||
# workout the inputs based on the trigger type
|
||||
- name: Query the json and get input overrides if applicable
|
||||
id: get_inputs
|
||||
run: |
|
||||
# Parse the JSON file
|
||||
RELEASE_TYPE=$(jq -r '.release_type' build_info/build_info.json)
|
||||
VIEWER_VERSION=$(jq -r '.viewer_version' build_info/build_info.json)
|
||||
VIEWER_BUILD=$(jq -r '.viewer_build' build_info/build_info.json)
|
||||
DRY_RUN=false
|
||||
if [ "${{ github.event_name }}" == "workflow_dispatch" ]; then
|
||||
echo "Triggered by workflow_dispatch event."
|
||||
echo "Allowing manual inputs to override."
|
||||
if [ "${{ github.event.inputs.release_type }}" != "undefined" ]; then
|
||||
RELEASE_TYPE=${{ github.event.inputs.release_type }}
|
||||
fi
|
||||
if [ "${{ github.event.inputs.viewer_version }}" != "undefined" ]; then
|
||||
VIEWER_VERSION=${{ github.event.inputs.viewer_version }}
|
||||
fi
|
||||
if [ "${{ github.event.inputs.viewer_build }}" != "undefined" ]; then
|
||||
VIEWER_BUILD=${{ github.event.inputs.viewer_build }}
|
||||
fi
|
||||
DRY_RUN=${{ github.event.inputs.dry_run }}
|
||||
fi
|
||||
# Set outputs
|
||||
echo "build_run_number=$BUILD_RUN_NUMBER" >> $GITHUB_OUTPUT
|
||||
echo "release_type=$RELEASE_TYPE" >> $GITHUB_OUTPUT
|
||||
echo "viewer_version=$VIEWER_VERSION" >> $GITHUB_OUTPUT
|
||||
echo "viewer_build=$VIEWER_BUILD" >> $GITHUB_OUTPUT
|
||||
echo "dry_run=$DRY_RUN" >> $GITHUB_OUTPUT
|
||||
shell: bash
|
||||
|
||||
# Check if Tag Already Exists
|
||||
- name: Determine tag
|
||||
id: get_tag
|
||||
run: |
|
||||
TAG_NAME="Firestorm_${{ steps.get_inputs.outputs.release_type }}_${{ steps.get_inputs.outputs.viewer_version }}.${{ steps.get_inputs.outputs.viewer_build }}"
|
||||
echo "Proposed Tag: $TAG_NAME"
|
||||
echo "tag_name=$TAG_NAME" >> $GITHUB_OUTPUT
|
||||
|
||||
- name: Check if tag exists
|
||||
id: check_tag
|
||||
run: |
|
||||
if git rev-parse "${{ steps.get_tag.outputs.tag_name }}" >/dev/null 2>&1; then
|
||||
echo "Tag ${{ steps.get_tag.outputs.tag_name }} already exists."
|
||||
echo "tag_exists=true" >> $GITHUB_OUTPUT
|
||||
else
|
||||
echo "Tag ${{ steps.get_tag.outputs.tag_name }} does not exist."
|
||||
echo "tag_exists=false" >> $GITHUB_OUTPUT
|
||||
fi
|
||||
shell: bash
|
||||
|
||||
# Create the Tag (Conditional)
|
||||
- name: Create tag
|
||||
if: >
|
||||
${{ steps.get_inputs.outputs.dry_run != 'true' &&
|
||||
steps.check_tag.outputs.tag_exists == 'false' }}
|
||||
run: |
|
||||
echo "Creating tag: ${{ steps.get_tag.outputs.tag_name }}"
|
||||
git tag ${{ steps.get_tag.outputs.tag_name }}
|
||||
shell: bash
|
||||
|
||||
# Push the Tag to the Repository (Conditional)
|
||||
- name: Push tag
|
||||
if: >
|
||||
${{ steps.get_inputs.outputs.dry_run != 'true' &&
|
||||
steps.check_tag.outputs.tag_exists == 'false' }}
|
||||
env:
|
||||
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
||||
run: |
|
||||
git push origin "${{ steps.get_tag.outputs.tag_name }}"
|
||||
|
||||
# Tagging Confirmation
|
||||
- name: Tagging Confirmation
|
||||
run: |
|
||||
if [ "${{ steps.get_inputs.outputs.dry_run }}" == "true" ]; then
|
||||
echo "Dry run mode enabled. Tag '$TAG_NAME' was not created or pushed."
|
||||
elif [ "${{ steps.check_tag.outputs.tag_exists }}" == "true" ]; then
|
||||
echo "Tag '${{ steps.get_tag.outputs.tag_name }}' already exists. No new tag was created."
|
||||
else
|
||||
echo "Tag '${{ steps.get_tag.outputs.tag_name }}' has been created and pushed successfully."
|
||||
fi
|
||||
shell: bash
|
||||
|
|
@ -343,7 +343,7 @@ def update_fs_version_mgr(build_info, config):
|
|||
sys.exit(1)
|
||||
|
||||
secret_for_api = generate_secret(secret_key)
|
||||
build_type = build_info["build_type"]
|
||||
build_type = build_info["build_type"].lower()
|
||||
version = os.environ.get('FS_VIEWER_VERSION')
|
||||
channel = os.environ.get('FS_VIEWER_CHANNEL')
|
||||
build_number = os.environ.get('FS_VIEWER_BUILD')
|
||||
|
|
|
|||
|
|
@ -846,6 +846,7 @@ set(viewer_SOURCE_FILES
|
|||
noise.cpp
|
||||
particleeditor.cpp
|
||||
permissionstracker.cpp
|
||||
pieautohide.cpp
|
||||
piemenu.cpp
|
||||
pieseparator.cpp
|
||||
pieslice.cpp
|
||||
|
|
@ -1647,6 +1648,7 @@ set(viewer_HEADER_FILES
|
|||
noise.h
|
||||
particleeditor.h
|
||||
permissionstracker.h
|
||||
pieautohide.h
|
||||
piemenu.h
|
||||
pieseparator.h
|
||||
pieslice.h
|
||||
|
|
|
|||
|
|
@ -6645,7 +6645,7 @@
|
|||
<key>Type</key>
|
||||
<string>String</string>
|
||||
<key>Value</key>
|
||||
<string>https://status.secondlifegrid.net/history.rss</string>
|
||||
<string>https://status.secondlifegrid.net/history.atom</string>
|
||||
</map>
|
||||
<key>GridStatusUpdateDelay</key>
|
||||
<map>
|
||||
|
|
|
|||
|
|
@ -5680,6 +5680,7 @@ void FSPanelPreferenceBackup:: doRestoreSettings(const LLSD& notification, const
|
|||
// start clean
|
||||
LL_INFOS("SettingsBackup") << "clearing global settings" << LL_ENDL;
|
||||
gSavedSettings.resetToDefaults();
|
||||
LLFeatureManager::getInstance()->applyRecommendedSettings();
|
||||
|
||||
// run restore on global controls
|
||||
LL_INFOS("SettingsBackup") << "restoring global settings from backup" << LL_ENDL;
|
||||
|
|
|
|||
|
|
@ -2075,7 +2075,10 @@ bool is_inventorysp_active()
|
|||
}
|
||||
|
||||
// static
|
||||
LLInventoryPanel* LLInventoryPanel::getActiveInventoryPanel(bool auto_open)
|
||||
// <FS:Beq> [FIRE-34532] Bugsplat Crash when uploading assets with non-tabbed inventory window active.
|
||||
// LLInventoryPanel* LLInventoryPanel::getActiveInventoryPanel(bool auto_open)
|
||||
LLInventoryPanel* LLInventoryPanel::getActiveInventoryPanel(bool auto_open, bool ignore_secondary)
|
||||
// </FS:Beq>
|
||||
{
|
||||
S32 z_min = S32_MAX;
|
||||
LLInventoryPanel* res = NULL;
|
||||
|
|
@ -2236,7 +2239,7 @@ void LLInventoryPanel::openInventoryPanelAndSetSelection(bool auto_open, const L
|
|||
}
|
||||
// </FS:Ansariel>
|
||||
|
||||
LLInventoryPanel *active_panel = LLInventoryPanel::getActiveInventoryPanel(auto_open);
|
||||
LLInventoryPanel *active_panel = LLInventoryPanel::getActiveInventoryPanel(auto_open, true);// <FS:Beq/> [FIRE-34532] ignore secondary folder views that are probably single folder
|
||||
if (active_panel)
|
||||
{
|
||||
LL_DEBUGS("Messaging", "Inventory") << "Highlighting" << obj_id << LL_ENDL;
|
||||
|
|
@ -2261,15 +2264,18 @@ void LLInventoryPanel::openInventoryPanelAndSetSelection(bool auto_open, const L
|
|||
}
|
||||
else if (auto_open)
|
||||
{
|
||||
// <FS:Ansariel> FIRE-22167: Make "Show in Main View" work properly
|
||||
//LLFloater* floater_inventory = LLFloaterReg::getInstance("inventory");
|
||||
LLFloater* floater_inventory = LLFloaterReg::getInstance("inventory");
|
||||
// <FS:Beq> [FIRE-34532] make sure the active panel has a tabbed view and avoid crash
|
||||
if (use_main_panel)
|
||||
{
|
||||
active_panel->getParentByType<LLTabContainer>()->selectFirstTab();
|
||||
active_panel = getActiveInventoryPanel(false);
|
||||
if (auto* tab_container = active_panel->getParentByType<LLTabContainer>())
|
||||
{
|
||||
tab_container->selectFirstTab();
|
||||
active_panel = getActiveInventoryPanel(false, true);
|
||||
floater_inventory = active_panel->getParentByType<LLFloater>();
|
||||
}
|
||||
}
|
||||
LLFloater* floater_inventory = active_panel->getParentByType<LLFloater>();
|
||||
// </FS:Ansariel>
|
||||
// </FS:Beq>
|
||||
if (floater_inventory)
|
||||
{
|
||||
floater_inventory->setFocus(true);
|
||||
|
|
|
|||
|
|
@ -258,8 +258,10 @@ public:
|
|||
|
||||
// Find whichever inventory panel is active / on top.
|
||||
// "Auto_open" determines if we open an inventory panel if none are open.
|
||||
static LLInventoryPanel *getActiveInventoryPanel(bool auto_open = true);
|
||||
|
||||
// <FS:Beq> FIRE-34532: don't try top open snapshots in the secondary windows.
|
||||
// static LLInventoryPanel *getActiveInventoryPanel(bool auto_open = true);
|
||||
static LLInventoryPanel* getActiveInventoryPanel(bool auto_open = true, bool ignore_secondary = false);
|
||||
// </FS:Beq>
|
||||
static void openInventoryPanelAndSetSelection(bool auto_open,
|
||||
const LLUUID& obj_id,
|
||||
bool use_main_panel = false,
|
||||
|
|
|
|||
|
|
@ -37,6 +37,7 @@
|
|||
|
||||
// newview
|
||||
#include "llsidetraypanelcontainer.h"
|
||||
#include "llsnapshotlivepreview.h"
|
||||
#include "llviewercontrol.h" // gSavedSettings
|
||||
|
||||
#include "llagentbenefits.h"
|
||||
|
|
@ -108,6 +109,17 @@ void LLPanelSnapshot::onOpen(const LLSD& key)
|
|||
{
|
||||
getParentByType<LLFloater>()->notify(LLSD().with("image-format-change", true));
|
||||
}
|
||||
|
||||
// If resolution is set to "Current Window", force a snapshot update
|
||||
// each time a snapshot panel is opened to determine the correct
|
||||
// image size (and upload fee) depending on the snapshot type.
|
||||
if (mSnapshotFloater && getChild<LLUICtrl>(getImageSizeComboName())->getValue().asString() == "[i0,i0]")
|
||||
{
|
||||
if (LLSnapshotLivePreview* preview = mSnapshotFloater->getPreviewView())
|
||||
{
|
||||
preview->mForceUpdateSnapshot = true;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
LLSnapshotModel::ESnapshotFormat LLPanelSnapshot::getImageFormat() const
|
||||
|
|
|
|||
|
|
@ -48,78 +48,36 @@
|
|||
/**
|
||||
* The panel provides UI for saving snapshot as an inventory texture.
|
||||
*/
|
||||
class LLPanelSnapshotInventoryBase
|
||||
: public LLPanelSnapshot
|
||||
{
|
||||
LOG_CLASS(LLPanelSnapshotInventoryBase);
|
||||
|
||||
public:
|
||||
LLPanelSnapshotInventoryBase();
|
||||
|
||||
/*virtual*/ bool postBuild();
|
||||
protected:
|
||||
void onSend();
|
||||
/*virtual*/ LLSnapshotModel::ESnapshotType getSnapshotType();
|
||||
};
|
||||
|
||||
class LLPanelSnapshotInventory
|
||||
: public LLPanelSnapshotInventoryBase
|
||||
: public LLPanelSnapshot
|
||||
{
|
||||
LOG_CLASS(LLPanelSnapshotInventory);
|
||||
|
||||
public:
|
||||
LLPanelSnapshotInventory();
|
||||
/*virtual*/ ~LLPanelSnapshotInventory(); // <FS:Ansariel> Store settings at logout
|
||||
/*virtual*/ bool postBuild();
|
||||
/*virtual*/ void onOpen(const LLSD& key);
|
||||
~LLPanelSnapshotInventory() override; // <FS:Ansariel> Store settings at logout
|
||||
bool postBuild() override;
|
||||
void onOpen(const LLSD& key) override;
|
||||
|
||||
void onResolutionCommit(LLUICtrl* ctrl);
|
||||
|
||||
private:
|
||||
/*virtual*/ std::string getWidthSpinnerName() const { return "inventory_snapshot_width"; }
|
||||
/*virtual*/ std::string getHeightSpinnerName() const { return "inventory_snapshot_height"; }
|
||||
/*virtual*/ std::string getAspectRatioCBName() const { return "inventory_keep_aspect_check"; }
|
||||
/*virtual*/ std::string getImageSizeComboName() const { return "texture_size_combo"; }
|
||||
/*virtual*/ std::string getImageSizePanelName() const { return LLStringUtil::null; }
|
||||
/*virtual*/ void updateControls(const LLSD& info);
|
||||
std::string getWidthSpinnerName() const override { return "inventory_snapshot_width"; }
|
||||
std::string getHeightSpinnerName() const override { return "inventory_snapshot_height"; }
|
||||
std::string getAspectRatioCBName() const override { return "inventory_keep_aspect_check"; }
|
||||
std::string getImageSizeComboName() const override { return "texture_size_combo"; }
|
||||
std::string getImageSizePanelName() const override { return LLStringUtil::null; }
|
||||
LLSnapshotModel::ESnapshotType getSnapshotType() override;
|
||||
void updateControls(const LLSD& info) override;
|
||||
|
||||
};
|
||||
|
||||
class LLPanelOutfitSnapshotInventory
|
||||
: public LLPanelSnapshotInventoryBase
|
||||
{
|
||||
LOG_CLASS(LLPanelOutfitSnapshotInventory);
|
||||
|
||||
public:
|
||||
LLPanelOutfitSnapshotInventory();
|
||||
/*virtual*/ bool postBuild();
|
||||
/*virtual*/ void onOpen(const LLSD& key);
|
||||
|
||||
private:
|
||||
/*virtual*/ std::string getWidthSpinnerName() const { return ""; }
|
||||
/*virtual*/ std::string getHeightSpinnerName() const { return ""; }
|
||||
/*virtual*/ std::string getAspectRatioCBName() const { return ""; }
|
||||
/*virtual*/ std::string getImageSizeComboName() const { return "texture_size_combo"; }
|
||||
/*virtual*/ std::string getImageSizePanelName() const { return LLStringUtil::null; }
|
||||
/*virtual*/ void updateControls(const LLSD& info);
|
||||
|
||||
/*virtual*/ void cancel();
|
||||
void onSend();
|
||||
void updateUploadCost();
|
||||
S32 calculateUploadCost();
|
||||
};
|
||||
|
||||
static LLPanelInjector<LLPanelSnapshotInventory> panel_class1("llpanelsnapshotinventory");
|
||||
|
||||
static LLPanelInjector<LLPanelOutfitSnapshotInventory> panel_class2("llpaneloutfitsnapshotinventory");
|
||||
|
||||
LLPanelSnapshotInventoryBase::LLPanelSnapshotInventoryBase()
|
||||
{
|
||||
}
|
||||
|
||||
bool LLPanelSnapshotInventoryBase::postBuild()
|
||||
{
|
||||
return LLPanelSnapshot::postBuild();
|
||||
}
|
||||
|
||||
LLSnapshotModel::ESnapshotType LLPanelSnapshotInventoryBase::getSnapshotType()
|
||||
LLSnapshotModel::ESnapshotType LLPanelSnapshotInventory::getSnapshotType()
|
||||
{
|
||||
return LLSnapshotModel::SNAPSHOT_TEXTURE;
|
||||
}
|
||||
|
|
@ -130,6 +88,15 @@ LLPanelSnapshotInventory::LLPanelSnapshotInventory()
|
|||
mCommitCallbackRegistrar.add("Inventory.Cancel", boost::bind(&LLPanelSnapshotInventory::cancel, this));
|
||||
}
|
||||
|
||||
// <FS:Ansariel> Store settings at logout
|
||||
LLPanelSnapshotInventory::~LLPanelSnapshotInventory()
|
||||
{
|
||||
gSavedSettings.setS32("LastSnapshotToInventoryResolution", getImageSizeComboBox()->getCurrentIndex());
|
||||
gSavedSettings.setS32("LastSnapshotToInventoryWidth", getTypedPreviewWidth());
|
||||
gSavedSettings.setS32("LastSnapshotToInventoryHeight", getTypedPreviewHeight());
|
||||
}
|
||||
// </FS:Ansariel>
|
||||
|
||||
// virtual
|
||||
bool LLPanelSnapshotInventory::postBuild()
|
||||
{
|
||||
|
|
@ -145,15 +112,16 @@ bool LLPanelSnapshotInventory::postBuild()
|
|||
getHeightSpinner()->setValue(gSavedSettings.getS32("LastSnapshotToInventoryHeight"));
|
||||
// </FS:Ansariel>
|
||||
|
||||
return LLPanelSnapshotInventoryBase::postBuild();
|
||||
return LLPanelSnapshot::postBuild();
|
||||
}
|
||||
|
||||
// virtual
|
||||
void LLPanelSnapshotInventory::onOpen(const LLSD& key)
|
||||
{
|
||||
updateUploadCost();
|
||||
|
||||
// <FS:CR> FIRE-10537 - Temp texture uploads aren't functional on SSB regions
|
||||
if (LLAgentBenefitsMgr::current().getTextureUploadCost() == 0
|
||||
|| gAgent.getRegion()->getCentralBakeVersion() > 0)
|
||||
if (LLAgentBenefitsMgr::current().getTextureUploadCost() == 0 || gAgent.getRegion()->getCentralBakeVersion() > 0)
|
||||
{
|
||||
gSavedSettings.setBOOL("TemporaryUpload", false);
|
||||
}
|
||||
|
|
@ -167,6 +135,8 @@ void LLPanelSnapshotInventory::updateControls(const LLSD& info)
|
|||
{
|
||||
const bool have_snapshot = info.has("have-snapshot") ? info["have-snapshot"].asBoolean() : true;
|
||||
getChild<LLUICtrl>("save_btn")->setEnabled(have_snapshot);
|
||||
|
||||
updateUploadCost();
|
||||
}
|
||||
|
||||
void LLPanelSnapshotInventory::onResolutionCommit(LLUICtrl* ctrl)
|
||||
|
|
@ -176,30 +146,9 @@ void LLPanelSnapshotInventory::onResolutionCommit(LLUICtrl* ctrl)
|
|||
getChild<LLSpinCtrl>(getHeightSpinnerName())->setVisible(!current_window_selected);
|
||||
}
|
||||
|
||||
// <FS:Ansariel> Store settings at logout
|
||||
LLPanelSnapshotInventory::~LLPanelSnapshotInventory()
|
||||
void LLPanelSnapshotInventory::onSend()
|
||||
{
|
||||
gSavedSettings.setS32("LastSnapshotToInventoryResolution", getImageSizeComboBox()->getCurrentIndex());
|
||||
gSavedSettings.setS32("LastSnapshotToInventoryWidth", getTypedPreviewWidth());
|
||||
gSavedSettings.setS32("LastSnapshotToInventoryHeight", getTypedPreviewHeight());
|
||||
}
|
||||
// </FS:Ansariel>
|
||||
|
||||
void LLPanelSnapshotInventoryBase::onSend()
|
||||
{
|
||||
S32 w = 0;
|
||||
S32 h = 0;
|
||||
|
||||
if( mSnapshotFloater )
|
||||
{
|
||||
LLSnapshotLivePreview* preview = mSnapshotFloater->getPreviewView();
|
||||
if( preview )
|
||||
{
|
||||
preview->getSize(w, h);
|
||||
}
|
||||
}
|
||||
|
||||
S32 expected_upload_cost = LLAgentBenefitsMgr::current().getTextureUploadCost(w, h);
|
||||
S32 expected_upload_cost = calculateUploadCost();
|
||||
if (can_afford_transaction(expected_upload_cost))
|
||||
{
|
||||
if (mSnapshotFloater)
|
||||
|
|
@ -220,36 +169,24 @@ void LLPanelSnapshotInventoryBase::onSend()
|
|||
}
|
||||
}
|
||||
|
||||
LLPanelOutfitSnapshotInventory::LLPanelOutfitSnapshotInventory()
|
||||
void LLPanelSnapshotInventory::updateUploadCost()
|
||||
{
|
||||
mCommitCallbackRegistrar.add("Inventory.SaveOutfitPhoto", boost::bind(&LLPanelOutfitSnapshotInventory::onSend, this));
|
||||
mCommitCallbackRegistrar.add("Inventory.SaveOutfitCancel", boost::bind(&LLPanelOutfitSnapshotInventory::cancel, this));
|
||||
getChild<LLUICtrl>("hint_lbl")->setTextArg("[UPLOAD_COST]", llformat("%d", calculateUploadCost()));
|
||||
}
|
||||
|
||||
// virtual
|
||||
bool LLPanelOutfitSnapshotInventory::postBuild()
|
||||
S32 LLPanelSnapshotInventory::calculateUploadCost()
|
||||
{
|
||||
return LLPanelSnapshotInventoryBase::postBuild();
|
||||
}
|
||||
S32 w = 0;
|
||||
S32 h = 0;
|
||||
|
||||
// virtual
|
||||
void LLPanelOutfitSnapshotInventory::onOpen(const LLSD& key)
|
||||
{
|
||||
getChild<LLUICtrl>("hint_lbl")->setTextArg("[UPLOAD_COST]", llformat("%d", LLAgentBenefitsMgr::current().getTextureUploadCost()));
|
||||
LLPanelSnapshot::onOpen(key);
|
||||
}
|
||||
|
||||
// virtual
|
||||
void LLPanelOutfitSnapshotInventory::updateControls(const LLSD& info)
|
||||
{
|
||||
const bool have_snapshot = info.has("have-snapshot") ? info["have-snapshot"].asBoolean() : true;
|
||||
getChild<LLUICtrl>("save_btn")->setEnabled(have_snapshot);
|
||||
}
|
||||
|
||||
void LLPanelOutfitSnapshotInventory::cancel()
|
||||
{
|
||||
if (mSnapshotFloater)
|
||||
{
|
||||
mSnapshotFloater->closeFloater();
|
||||
if (LLSnapshotLivePreview* preview = mSnapshotFloater->getPreviewView())
|
||||
{
|
||||
w = preview->getEncodedImageWidth();
|
||||
h = preview->getEncodedImageHeight();
|
||||
}
|
||||
}
|
||||
|
||||
return LLAgentBenefitsMgr::current().getTextureUploadCost(w, h);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -30,13 +30,9 @@
|
|||
#include "llsidetraypanelcontainer.h"
|
||||
|
||||
#include "llfloatersnapshot.h" // FIXME: create a snapshot model
|
||||
#include "llsnapshotlivepreview.h"
|
||||
#include "llfloaterreg.h"
|
||||
#include "llfloaterflickr.h" // <FS:Ansariel> Share to Flickr
|
||||
|
||||
#include "llagentbenefits.h"
|
||||
|
||||
|
||||
/**
|
||||
* Provides several ways to save a snapshot.
|
||||
*/
|
||||
|
|
@ -47,9 +43,7 @@ class LLPanelSnapshotOptions
|
|||
|
||||
public:
|
||||
LLPanelSnapshotOptions();
|
||||
~LLPanelSnapshotOptions();
|
||||
/*virtual*/ bool postBuild();
|
||||
/*virtual*/ void onOpen(const LLSD& key);
|
||||
bool postBuild() override;
|
||||
|
||||
private:
|
||||
void updateUploadCost();
|
||||
|
|
@ -74,10 +68,6 @@ LLPanelSnapshotOptions::LLPanelSnapshotOptions()
|
|||
mCommitCallbackRegistrar.add("Snapshot.SendToFlickr", boost::bind(&LLPanelSnapshotOptions::onSendToFlickr, this)); // <FS:Ansariel> Share to Flickr
|
||||
}
|
||||
|
||||
LLPanelSnapshotOptions::~LLPanelSnapshotOptions()
|
||||
{
|
||||
}
|
||||
|
||||
// virtual
|
||||
bool LLPanelSnapshotOptions::postBuild()
|
||||
{
|
||||
|
|
@ -85,30 +75,6 @@ bool LLPanelSnapshotOptions::postBuild()
|
|||
return LLPanel::postBuild();
|
||||
}
|
||||
|
||||
// virtual
|
||||
void LLPanelSnapshotOptions::onOpen(const LLSD& key)
|
||||
{
|
||||
updateUploadCost();
|
||||
}
|
||||
|
||||
void LLPanelSnapshotOptions::updateUploadCost()
|
||||
{
|
||||
S32 w = 0;
|
||||
S32 h = 0;
|
||||
|
||||
if( mSnapshotFloater )
|
||||
{
|
||||
LLSnapshotLivePreview* preview = mSnapshotFloater->getPreviewView();
|
||||
if( preview )
|
||||
{
|
||||
preview->getSize(w, h);
|
||||
}
|
||||
}
|
||||
|
||||
S32 upload_cost = LLAgentBenefitsMgr::current().getTextureUploadCost(w, h);
|
||||
getChild<LLUICtrl>("save_to_inventory_btn")->setLabelArg("[AMOUNT]", llformat("%d", upload_cost));
|
||||
}
|
||||
|
||||
void LLPanelSnapshotOptions::openPanel(const std::string& panel_name)
|
||||
{
|
||||
LLSideTrayPanelContainer* parent = dynamic_cast<LLSideTrayPanelContainer*>(getParent());
|
||||
|
|
|
|||
|
|
@ -988,7 +988,7 @@ void LLViewerAssetUpload::AssetInventoryUploadCoproc(LLCoreHttpUtil::HttpCorouti
|
|||
|
||||
// Show the preview panel for textures and sounds to let
|
||||
// user know that the image (or snapshot) arrived intact.
|
||||
LLInventoryPanel* panel = LLInventoryPanel::getActiveInventoryPanel(false);
|
||||
LLInventoryPanel* panel = LLInventoryPanel::getActiveInventoryPanel(false, true); // <FS:Beq> pick the main view not a secondary view.
|
||||
// <FS:Ansariel> Use correct inventory floater for showing the upload
|
||||
if (!panel)
|
||||
{
|
||||
|
|
|
|||
|
|
@ -1000,13 +1000,13 @@ bool LLViewerTexture::isLargeImage()
|
|||
return (S32)mTexelsPerImage > LLViewerTexture::sMinLargeImageSize;
|
||||
}
|
||||
|
||||
bool LLViewerTexture::isInvisiprim()
|
||||
bool LLViewerTexture::isInvisiprim() const
|
||||
{
|
||||
return isInvisiprim(mID);
|
||||
}
|
||||
|
||||
//static
|
||||
bool LLViewerTexture::isInvisiprim(LLUUID id)
|
||||
bool LLViewerTexture::isInvisiprim(const LLUUID& id)
|
||||
{
|
||||
return (id == sInvisiprimTexture1) || (id == sInvisiprimTexture2);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -167,8 +167,8 @@ public:
|
|||
const ll_volume_list_t* getVolumeList(U32 channel) const { return &mVolumeList[channel]; }
|
||||
|
||||
bool isLargeImage() ;
|
||||
bool isInvisiprim() ;
|
||||
static bool isInvisiprim(LLUUID id) ;
|
||||
bool isInvisiprim() const;
|
||||
static bool isInvisiprim(const LLUUID& id);
|
||||
|
||||
void setParcelMedia(LLViewerMediaTexture* media) {mParcelMedia = media;}
|
||||
bool hasParcelMedia() const { return mParcelMedia != NULL;}
|
||||
|
|
|
|||
|
|
@ -1179,6 +1179,7 @@ void LLVOTree::updateSpatialExtents(LLVector4a& newMin, LLVector4a& newMax)
|
|||
mDrawable->setPositionGroup(pos);
|
||||
|
||||
LLFace* facep = mDrawable->getFace(0);
|
||||
if (!facep) return; // <FS:Beq/> FIRE-34565 Repeatable Bugsplat crash while driving on mainland.
|
||||
facep->mExtents[0] = newMin;
|
||||
facep->mExtents[1] = newMax;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -6568,7 +6568,7 @@ U32 LLVolumeGeometryManager::genDrawInfo(LLSpatialGroup* group, U32 mask, LLFace
|
|||
{
|
||||
U8 cur_tex = 0;
|
||||
facep->setTextureIndex(cur_tex);
|
||||
if (texture_count < MAX_TEXTURE_COUNT)
|
||||
if (texture_count < MAX_TEXTURE_COUNT && tex) // <FS:Beq/> [FIRE-34534] guard additional cases of tex == null
|
||||
{
|
||||
texture_list[texture_count++] = tex;
|
||||
}
|
||||
|
|
@ -6622,7 +6622,7 @@ U32 LLVolumeGeometryManager::genDrawInfo(LLSpatialGroup* group, U32 mask, LLFace
|
|||
// <FS:Beq> Quick hack test of proper batching logic
|
||||
// if (texture_count < MAX_TEXTURE_COUNT)
|
||||
// only add to the batch if this is a new texture
|
||||
if (cur_tex == texture_count && texture_count < MAX_TEXTURE_COUNT)
|
||||
if (cur_tex == texture_count && texture_count < MAX_TEXTURE_COUNT && tex) // <FS:Beq/> [FIRE-34534] guard additional cases of tex == null
|
||||
// </FS:Beq>
|
||||
{
|
||||
texture_list[texture_count++] = tex;
|
||||
|
|
@ -6999,7 +6999,7 @@ U32 LLVolumeGeometryManager::genDrawInfo(LLSpatialGroup* group, U32 mask, LLFace
|
|||
&& te->getShiny()
|
||||
&& can_be_shiny)
|
||||
{ //shiny
|
||||
if (tex->getPrimaryFormat() == GL_ALPHA)
|
||||
if (tex && tex->getPrimaryFormat() == GL_ALPHA) // <FS:Beq/> [FIRE-34534] guard additional cases of tex == null
|
||||
{ //invisiprim+shiny
|
||||
registerFace(group, facep, LLRenderPass::PASS_INVISI_SHINY);
|
||||
registerFace(group, facep, LLRenderPass::PASS_INVISIBLE);
|
||||
|
|
@ -7036,7 +7036,7 @@ U32 LLVolumeGeometryManager::genDrawInfo(LLSpatialGroup* group, U32 mask, LLFace
|
|||
}
|
||||
else
|
||||
{ //not alpha and not shiny
|
||||
if (!is_alpha && tex->getPrimaryFormat() == GL_ALPHA)
|
||||
if (!is_alpha && tex && tex->getPrimaryFormat() == GL_ALPHA) // <FS:Beq/> FIRE-34540 bugsplat crash caused by tex==nullptr. This stops the crash, but should we continue and leave the face unregistered instead of falling through?
|
||||
{ //invisiprim
|
||||
registerFace(group, facep, LLRenderPass::PASS_INVISIBLE);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -0,0 +1,45 @@
|
|||
/**
|
||||
* @file pieautohide.cpp
|
||||
* @brief Pie menu autohide base class
|
||||
*
|
||||
* $LicenseInfo:firstyear=2024&license=fsviewerlgpl$
|
||||
* Phoenix Firestorm Viewer Source Code
|
||||
* Copyright (C) 2024, The Phoenix Firestorm Project, Inc.
|
||||
*
|
||||
* This library is free software; you can redistribute it and/or
|
||||
* modify it under the terms of the GNU Lesser General Public
|
||||
* License as published by the Free Software Foundation;
|
||||
* version 2.1 of the License only.
|
||||
*
|
||||
* This library is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
* Lesser General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU Lesser General Public
|
||||
* License along with this library; if not, write to the Free Software
|
||||
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
|
||||
*
|
||||
* The Phoenix Firestorm Project, Inc., 1831 Oakwood Drive, Fairmont, Minnesota 56031-3225 USA
|
||||
* http://www.firestormviewer.org
|
||||
* $/LicenseInfo$
|
||||
*/
|
||||
|
||||
#include "llviewerprecompiledheaders.h"
|
||||
|
||||
#include "pieautohide.h"
|
||||
|
||||
|
||||
PieAutohide::PieAutohide(bool autohide, bool startAutohide) : mAutohide(autohide), mStartAutohide(startAutohide) {}
|
||||
|
||||
// accessor
|
||||
bool PieAutohide::getStartAutohide() const
|
||||
{
|
||||
return mStartAutohide;
|
||||
}
|
||||
|
||||
// accessor
|
||||
bool PieAutohide::getAutohide() const
|
||||
{
|
||||
return mStartAutohide || mAutohide;
|
||||
}
|
||||
|
|
@ -0,0 +1,48 @@
|
|||
/**
|
||||
* @file pieautohide.h
|
||||
* @brief Pie menu autohide base class
|
||||
*
|
||||
* $LicenseInfo:firstyear=2024&license=fsviewerlgpl$
|
||||
* Phoenix Firestorm Viewer Source Code
|
||||
* Copyright (C) 2024, The Phoenix Firestorm Project, Inc.
|
||||
*
|
||||
* This library is free software; you can redistribute it and/or
|
||||
* modify it under the terms of the GNU Lesser General Public
|
||||
* License as published by the Free Software Foundation;
|
||||
* version 2.1 of the License only.
|
||||
*
|
||||
* This library is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
* Lesser General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU Lesser General Public
|
||||
* License along with this library; if not, write to the Free Software
|
||||
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
|
||||
*
|
||||
* The Phoenix Firestorm Project, Inc., 1831 Oakwood Drive, Fairmont, Minnesota 56031-3225 USA
|
||||
* http://www.firestormviewer.org
|
||||
* $/LicenseInfo$
|
||||
*/
|
||||
|
||||
#ifndef PIEAUTOHIDE_H
|
||||
#define PIEAUTOHIDE_H
|
||||
|
||||
#include "lluictrl.h"
|
||||
|
||||
// A slice in the pie that supports the auto-hide function.
|
||||
class PieAutohide
|
||||
{
|
||||
public:
|
||||
PieAutohide(bool autohide, bool startAutohide);
|
||||
|
||||
// accessor to expose the autohide feature
|
||||
bool getStartAutohide() const;
|
||||
bool getAutohide() const;
|
||||
|
||||
protected:
|
||||
bool mStartAutohide{ false };
|
||||
bool mAutohide{ false };
|
||||
};
|
||||
|
||||
#endif // PIEAUTOHIDE_H
|
||||
|
|
@ -56,8 +56,9 @@ constexpr F32 PIE_OUTER_SHADE_FACTOR = 1.09f; // size factor of the outer shad
|
|||
constexpr F32 PIE_SLICE_DIVIDER_WIDTH = 0.04f; // width of a slice divider in radians
|
||||
constexpr F32 PIE_MAX_SLICES_F = F32(PIE_MAX_SLICES);
|
||||
|
||||
PieMenu::PieMenu(const LLMenuGL::Params& p) :
|
||||
PieMenu::PieMenu(const Params& p) :
|
||||
LLMenuGL(p),
|
||||
PieAutohide(p.autohide, p.start_autohide),
|
||||
mCurrentSegment(-1),
|
||||
mOldSlice(nullptr),
|
||||
mSlice(nullptr),
|
||||
|
|
@ -305,22 +306,21 @@ void PieMenu::draw()
|
|||
gl_washer_2d(PIE_OUTER_SIZE * factor, PIE_INNER_SIZE, steps, bgColor, borderColor);
|
||||
|
||||
// set up an item list iterator to point at the beginning of the item list
|
||||
slice_list_t::iterator cur_item_iter;
|
||||
cur_item_iter = mSlices->begin();
|
||||
slice_list_t::iterator cur_item_iter{ mSlices->begin() };
|
||||
|
||||
// clear current slice pointer
|
||||
mSlice = nullptr;
|
||||
|
||||
// current slice number is 0
|
||||
S32 num = 0;
|
||||
bool wasAutohide = false;
|
||||
S32 num{ 0 };
|
||||
bool wasAutohide{ false };
|
||||
do
|
||||
{
|
||||
// standard item text color
|
||||
LLColor4 itemColor = textColor;
|
||||
|
||||
// clear the label and set up the starting angle to draw in
|
||||
std::string label("");
|
||||
std::string label{ "" };
|
||||
F32 segmentStart = F_PI / (PIE_MAX_SLICES_F / 2.f) * (F32)num - F_PI / PIE_MAX_SLICES_F;
|
||||
|
||||
// iterate through the list of slices
|
||||
|
|
@ -328,16 +328,76 @@ void PieMenu::draw()
|
|||
{
|
||||
// get current slice item
|
||||
LLView* item = (*cur_item_iter);
|
||||
|
||||
// check if this is a submenu or a normal click slice
|
||||
PieSlice* currentSlice = dynamic_cast<PieSlice*>(item);
|
||||
PieMenu* currentSubmenu = dynamic_cast<PieMenu*>(item);
|
||||
// advance internally to the next slice item
|
||||
cur_item_iter++;
|
||||
bool isSliceOrSubmenu{ false };
|
||||
|
||||
auto checkAutohide = [&](PieAutohide* autohideSlice)
|
||||
{
|
||||
// if the current slice is the start of an autohide chain, clear out previous chains
|
||||
if (autohideSlice->getStartAutohide())
|
||||
{
|
||||
wasAutohide = false;
|
||||
}
|
||||
|
||||
// check if the current slice is part of an autohide chain
|
||||
if (autohideSlice->getAutohide())
|
||||
{
|
||||
// if the previous item already won the autohide, skip this item
|
||||
if (wasAutohide)
|
||||
{
|
||||
return true;
|
||||
}
|
||||
|
||||
// look at the next item in the pie
|
||||
LLView* lookAhead = (*cur_item_iter);
|
||||
// check if this is a normal click slice
|
||||
if (PieSlice* lookSlice = dynamic_cast<PieSlice*>(lookAhead))
|
||||
{
|
||||
// if the next item is part of the current autohide chain as well ...
|
||||
if (lookSlice->getAutohide() && !lookSlice->getStartAutohide())
|
||||
{
|
||||
// ... it's visible and it's enabled, skip the current one.
|
||||
// the first visible and enabled item in autohide chains wins
|
||||
// this is useful for Sit/Stand toggles
|
||||
lookSlice->updateEnabled();
|
||||
lookSlice->updateVisible();
|
||||
if (lookSlice->getVisible() && lookSlice->getEnabled())
|
||||
{
|
||||
return true;
|
||||
}
|
||||
|
||||
// this item won the autohide contest
|
||||
wasAutohide = true;
|
||||
}
|
||||
}
|
||||
else if (PieMenu* lookSlice = dynamic_cast<PieMenu*>(lookAhead))
|
||||
{
|
||||
if (lookSlice->getAutohide() && !lookSlice->getStartAutohide())
|
||||
{
|
||||
if (/*lookSlice->getVisible() &&*/ lookSlice->getEnabled()) // Menu is somehow always set to not visible...
|
||||
{
|
||||
return true;
|
||||
}
|
||||
|
||||
// this item won the autohide contest
|
||||
wasAutohide = true;
|
||||
}
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
// reset autohide chain
|
||||
wasAutohide = false;
|
||||
}
|
||||
|
||||
return false;
|
||||
};
|
||||
|
||||
// in case it is regular click slice
|
||||
if (currentSlice)
|
||||
if (PieSlice* currentSlice = dynamic_cast<PieSlice*>(item))
|
||||
{
|
||||
isSliceOrSubmenu = true;
|
||||
|
||||
// get the slice label and tell the slice to check if it's supposed to be visible
|
||||
label = currentSlice->getLabel();
|
||||
currentSlice->updateVisible();
|
||||
|
|
@ -350,50 +410,8 @@ void PieMenu::draw()
|
|||
label = "";
|
||||
}
|
||||
|
||||
// if the current slice is the start of an autohide chain, clear out previous chains
|
||||
if (currentSlice->getStartAutohide())
|
||||
{
|
||||
wasAutohide = false;
|
||||
}
|
||||
|
||||
// check if the current slice is part of an autohide chain
|
||||
if (currentSlice->getAutohide())
|
||||
{
|
||||
// if the previous item already won the autohide, skip this item
|
||||
if (wasAutohide)
|
||||
{
|
||||
continue;
|
||||
}
|
||||
|
||||
// look at the next item in the pie
|
||||
LLView* lookAhead = (*cur_item_iter);
|
||||
// check if this is a normal click slice
|
||||
PieSlice* lookSlice = dynamic_cast<PieSlice*>(lookAhead);
|
||||
if (lookSlice)
|
||||
{
|
||||
// if the next item is part of the current autohide chain as well ...
|
||||
if (lookSlice->getAutohide() && !lookSlice->getStartAutohide())
|
||||
{
|
||||
// ... it's visible and it's enabled, skip the current one.
|
||||
// the first visible and enabled item in autohide chains wins
|
||||
// this is useful for Sit/Stand toggles
|
||||
lookSlice->updateEnabled();
|
||||
lookSlice->updateVisible();
|
||||
if (lookSlice->getVisible() && lookSlice->getEnabled())
|
||||
{
|
||||
continue;
|
||||
}
|
||||
|
||||
// this item won the autohide contest
|
||||
wasAutohide = true;
|
||||
}
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
// reset autohide chain
|
||||
wasAutohide = false;
|
||||
}
|
||||
if (checkAutohide(currentSlice))
|
||||
continue;
|
||||
|
||||
// check if the slice is currently enabled
|
||||
currentSlice->updateEnabled();
|
||||
|
|
@ -404,9 +422,14 @@ void PieMenu::draw()
|
|||
itemColor %= 0.3f;
|
||||
}
|
||||
}
|
||||
// if it's a submenu just get the label
|
||||
else if (currentSubmenu)
|
||||
// if it's a submenu
|
||||
else if (PieMenu* currentSubmenu = dynamic_cast<PieMenu*>(item))
|
||||
{
|
||||
isSliceOrSubmenu = true;
|
||||
|
||||
if (checkAutohide(currentSubmenu))
|
||||
continue;
|
||||
|
||||
label = currentSubmenu->getLabel();
|
||||
if (sPieMenuOuterRingShade)
|
||||
{
|
||||
|
|
@ -415,7 +438,7 @@ void PieMenu::draw()
|
|||
}
|
||||
|
||||
// if it's a slice or submenu, the mouse pointer is over the same segment as our counter and the item is enabled
|
||||
if ((currentSlice || currentSubmenu) && (mCurrentSegment == num) && item->getEnabled())
|
||||
if (isSliceOrSubmenu && (mCurrentSegment == num) && item->getEnabled())
|
||||
{
|
||||
// memorize the currently highlighted slice for later
|
||||
mSlice = item;
|
||||
|
|
|
|||
|
|
@ -30,6 +30,7 @@
|
|||
|
||||
#include "llmenugl.h"
|
||||
#include "llframetimer.h"
|
||||
#include "pieautohide.h"
|
||||
|
||||
constexpr S32 PIE_MAX_SLICES = 8;
|
||||
|
||||
|
|
@ -39,15 +40,21 @@ struct PieChildRegistry : public LLChildRegistry<PieChildRegistry>
|
|||
LLSINGLETON_EMPTY_CTOR(PieChildRegistry);
|
||||
};
|
||||
|
||||
class PieMenu : public LLMenuGL
|
||||
class PieMenu : public LLMenuGL, public PieAutohide
|
||||
{
|
||||
public:
|
||||
// parameter block for the XUI factory
|
||||
struct Params : public LLInitParam::Block<Params, LLMenuGL::Params>
|
||||
{
|
||||
Optional<std::string> name;
|
||||
// autohide feature to hide a disabled pie slice
|
||||
Optional<bool> start_autohide;
|
||||
// next item in an autohide chain
|
||||
Optional<bool> autohide;
|
||||
|
||||
Params()
|
||||
Params() :
|
||||
start_autohide("start_autohide", false),
|
||||
autohide("autohide", false)
|
||||
{
|
||||
visible = false;
|
||||
}
|
||||
|
|
@ -56,7 +63,7 @@ public:
|
|||
// PieChildRegistry contains a list of allowed child types for the XUI definition
|
||||
typedef PieChildRegistry child_registry_t;
|
||||
|
||||
PieMenu(const LLMenuGL::Params& p);
|
||||
PieMenu(const Params& p);
|
||||
|
||||
/*virtual*/ void setVisible(bool visible);
|
||||
|
||||
|
|
|
|||
|
|
@ -43,9 +43,8 @@ PieSlice::Params::Params() :
|
|||
// create a new slice and memorize the XUI parameters
|
||||
PieSlice::PieSlice(const PieSlice::Params& p) :
|
||||
LLUICtrl(p),
|
||||
PieAutohide(p.autohide, p.start_autohide),
|
||||
mLabel(p.label),
|
||||
mStartAutohide(p.start_autohide),
|
||||
mAutohide(p.autohide),
|
||||
mCheckEnableOnce(p.check_enable_once),
|
||||
mDoUpdateEnabled(true)
|
||||
{
|
||||
|
|
@ -140,18 +139,6 @@ void PieSlice::setLabel(std::string_view newLabel)
|
|||
mLabel = newLabel;
|
||||
}
|
||||
|
||||
// accessor
|
||||
bool PieSlice::getStartAutohide() const
|
||||
{
|
||||
return mStartAutohide;
|
||||
}
|
||||
|
||||
// accessor
|
||||
bool PieSlice::getAutohide() const
|
||||
{
|
||||
return mStartAutohide || mAutohide;
|
||||
}
|
||||
|
||||
void PieSlice::resetUpdateEnabledCheck()
|
||||
{
|
||||
mDoUpdateEnabled = true;
|
||||
|
|
|
|||
|
|
@ -29,10 +29,11 @@
|
|||
#define PIESLICE_H
|
||||
|
||||
#include "lluictrl.h"
|
||||
#include "pieautohide.h"
|
||||
|
||||
// A slice in the pie. Does nothing by itself, just stores the function and
|
||||
// parameter to be execued when the user clicks on this item
|
||||
class PieSlice : public LLUICtrl
|
||||
class PieSlice : public LLUICtrl, public PieAutohide
|
||||
{
|
||||
public:
|
||||
// parameter block for the XUI factory
|
||||
|
|
@ -70,10 +71,6 @@ public:
|
|||
LLSD getValue() const;
|
||||
void setValue(const LLSD& value);
|
||||
|
||||
// accessor to expose the autohide feature
|
||||
bool getStartAutohide() const;
|
||||
bool getAutohide() const;
|
||||
|
||||
// callback connection for the onCommit method to launch the specified function
|
||||
boost::signals2::connection setClickCallback(const commit_signal_t::slot_type& cb)
|
||||
{
|
||||
|
|
@ -91,8 +88,6 @@ public:
|
|||
protected:
|
||||
// accessor store
|
||||
std::string mLabel;
|
||||
bool mStartAutohide;
|
||||
bool mAutohide;
|
||||
bool mCheckEnableOnce;
|
||||
bool mDoUpdateEnabled;
|
||||
|
||||
|
|
|
|||
|
|
@ -6,12 +6,14 @@
|
|||
<pie_slice label="Otur" name="Pie Object Sit"/>
|
||||
<pie_slice label="Dur" name="Object Stand Up"/>
|
||||
<pie_slice label="Al" name="Buy..."/>
|
||||
<pie_slice label="Götür" name="Pie Object Take"/>
|
||||
<pie_menu label="Götür >" name="Take Submenu">
|
||||
<pie_slice label="Köçürtməsin götür" name="Take Copy" />
|
||||
<pie_slice label="Götür" name="Take" />
|
||||
</pie_menu>
|
||||
<pie_slice label="Ödə" name="Pay..."/>
|
||||
<pie_menu label="İrəli >" name="Object Pie More 1">
|
||||
<pie_slice label="Sil" name="Delete"/>
|
||||
<pie_slice label="Geyin" name="Wear"/>
|
||||
<pie_slice label="Köçürtməsin götür" name="Take Copy"/>
|
||||
<pie_menu label="HUD Əlavə et >" name="Pie Object Attach HUD" />
|
||||
<pie_menu label="Birləşdir >" name="Pie Object Attach">
|
||||
<pie_menu label="Əlv.Skelet >" name="Enhanced Skeleton">
|
||||
|
|
|
|||
|
|
@ -7,7 +7,7 @@
|
|||
Tekstur kimi saxlamaq üçün kvadrat formatlarından birini seçin.
|
||||
</text>
|
||||
<combo_box label="Ölçü" name="texture_size_combo">
|
||||
<combo_box.item label="Cari pəncərə (512x512)" name="CurrentWindow"/>
|
||||
<combo_box.item label="Cari pəncərə" name="CurrentWindow"/>
|
||||
<combo_box.item label="Kiçik (128x128)" name="Small(128x128)"/>
|
||||
<combo_box.item label="Orta (256x256)" name="Medium(256x256)"/>
|
||||
<combo_box.item label="Böyük (512x512)" name="Large(512x512)"/>
|
||||
|
|
|
|||
|
|
@ -5,7 +5,7 @@
|
|||
<button label="Diskə yadda saxla" name="save_to_computer_btn"/>
|
||||
</layout_panel>
|
||||
<layout_panel name="lp_inventory">
|
||||
<button label="Avadanlıq siyahısı (L$[AMOUNT])" name="save_to_inventory_btn"/>
|
||||
<button label="Avadanlıq siyahısı" name="save_to_inventory_btn"/>
|
||||
</layout_panel>
|
||||
<layout_panel name="lp_profile">
|
||||
<button label="Profilə yüklə" name="save_to_profile_btn"/>
|
||||
|
|
|
|||
|
|
@ -6,12 +6,18 @@
|
|||
<pie_slice label="Hier sitzen" name="Pie Object Sit"/>
|
||||
<pie_slice label="Aufstehen" name="Object Stand Up"/>
|
||||
<pie_slice label="Kaufen" name="Buy..."/>
|
||||
<pie_slice label="Nehmen" name="Pie Object Take"/>
|
||||
<pie_menu label="Nehmen >" name="Take Submenu">
|
||||
<pie_slice label="Kopien sep. Obj." name="Take Copy Separate" />
|
||||
<pie_slice label="Kopie nehmen" name="Take Copy" />
|
||||
<pie_slice label="Nehmen" name="Take" />
|
||||
<pie_slice label="Kombin. Obj." name="Take combined" />
|
||||
<pie_slice label="Kopie kombin. Obj." name="Take Copy combined" />
|
||||
<pie_slice label="Separate Obj." name="Take Separate" />
|
||||
</pie_menu>
|
||||
<pie_slice label="Zahlen" name="Pay..."/>
|
||||
<pie_menu label="Mehr >" name="Object Pie More 1">
|
||||
<pie_slice label="Löschen" name="Delete"/>
|
||||
<pie_slice label="Anziehen" name="Wear"/>
|
||||
<pie_slice label="Kopie nehmen" name="Take Copy"/>
|
||||
<pie_menu label="HUD anhängen >" name="Pie Object Attach HUD"/>
|
||||
<pie_menu label="Anhängen >" name="Pie Object Attach">
|
||||
<pie_menu label="Erw. Skelett >" name="Enhanced Skeleton">
|
||||
|
|
|
|||
|
|
@ -7,7 +7,7 @@
|
|||
<combo_box.item label="Klein (128x128)" name="Small(128x128)"/>
|
||||
<combo_box.item label="Mittel (256x256)" name="Medium(256x256)"/>
|
||||
<combo_box.item label="Groß (512x512)" name="Large(512x512)"/>
|
||||
<combo_box.item label="Aktuelles Fenster (512x512)" name="CurrentWindow"/>
|
||||
<combo_box.item label="Aktuelles Fenster" name="CurrentWindow"/>
|
||||
<combo_box.item label="Benutzerdefiniert" name="Custom"/>
|
||||
</combo_box>
|
||||
<spinner label="Breite x Höhe" name="inventory_snapshot_width"/>
|
||||
|
|
@ -15,6 +15,8 @@
|
|||
<check_box label="Seitenverhältnis beibehalten" name="inventory_keep_aspect_check"/>
|
||||
<text name="hint_lbl">
|
||||
Um das Bild als Textur zu speichern, wählen Sie eines der quadratischen Formate aus.
|
||||
|
||||
Upload-Kosten: [UPLOAD_COST] L$
|
||||
</text>
|
||||
<button label="▶ Auswahl" name="cancel_btn"/>
|
||||
<button label="Speichern" name="save_btn"/>
|
||||
|
|
|
|||
|
|
@ -5,7 +5,7 @@
|
|||
<button label="Auf Festplatte speichern" name="save_to_computer_btn"/>
|
||||
</layout_panel>
|
||||
<layout_panel name="lp_inventory">
|
||||
<button label="Im Inventar speich. ([AMOUNT] L$)" name="save_to_inventory_btn"/>
|
||||
<button label="Im Inventar speichern" name="save_to_inventory_btn"/>
|
||||
</layout_panel>
|
||||
<layout_panel name="lp_profile">
|
||||
<button label="Auf Profil teilen" name="save_to_profile_btn"/>
|
||||
|
|
|
|||
|
|
@ -165,7 +165,7 @@ Additional code generously contributed to Firestorm by:
|
|||
top_pad="4"
|
||||
width="450"
|
||||
wrap="true">
|
||||
Albatroz Hird, Alexie Birman, Andromeda Rage, Angeldark Raymaker, Angus Boyd, Animats, Armin Weatherwax, Casper Warden, Chalice Yao, Chaser Zaks, Chorazin Allen, Cron Stardust, Damian Zhaoying, Dan Threebeards, Dawa Gurbux, Denver Maksim, Drake Arconis, Felyza Wishbringer, f0rbidden, Fractured Crystal, Geenz Spad, Gibson Firehawk, Hitomi Tiponi, humbletim, Inusaito Sayori, Jean Severine, Katharine Berry, Kittin Ninetails, Kool Koolhoven, Lance Corrimal, Lassie, Latif Khalifa, Laurent Bechir, Magne Metaverse LLC, Magus Freston, Makidoll, Manami Hokkigai, MartinRJ Fayray, McCabe Maxstead, Melancholy Lemon, Melysmile, Mimika Oh, Mister Acacia, MorganMegan, Morgan Pennent, Mysty Saunders, Nagi Michinaga, Name Short, nhede Core, NiranV Dean, Nogardrevlis Lectar, Oren Hurvitz, Paladin Forzane, paperwork, Penny Patton, Peyton Menges, programmtest, Qwerty Venom, Rebecca Ashbourne, Revolution Smythe, Romka Swallowtail, Sahkolihaa Contepomi, sal Kaligawa, Samm Florian, Satomi Ahn, Sei Lisa, Sempervirens Oddfellow, Shin Wasp, Shyotl Kuhr, Sione Lomu, Skills Hak, StarlightShining, Sunset Faulkes, Tapple Gao, Testicular Slingshot, Thickbrick Sleaford, Ubit Umarov, Vaalith Jinn, Vincent Sylvester, Whirly Fizzle, Xenhat Liamano, Zwagoth Klaar and others.
|
||||
Albatroz Hird, Alexie Birman, Andromeda Rage, Angeldark Raymaker, Angus Boyd, Animats, Armin Weatherwax, Casper Warden, Chalice Yao, Chaser Zaks, Chorazin Allen, Cron Stardust, Damian Zhaoying, Dan Threebeards, Dawa Gurbux, Denver Maksim, Dragonborn Forzane, Drake Arconis, Felyza Wishbringer, f0rbidden, Fractured Crystal, Geenz Spad, Gibson Firehawk, Hitomi Tiponi, humbletim, Inusaito Sayori, Jean Severine, Katharine Berry, Kittin Ninetails, Kool Koolhoven, Lance Corrimal, Lassie, Latif Khalifa, Laurent Bechir, Magne Metaverse LLC, Magus Freston, Makidoll, Manami Hokkigai, MartinRJ Fayray, McCabe Maxstead, Melancholy Lemon, Melysmile, Mimika Oh, Mister Acacia, MorganMegan, Morgan Pennent, Mysty Saunders, Nagi Michinaga, Name Short, nhede Core, NiranV Dean, Nogardrevlis Lectar, Oren Hurvitz, paperwork, Penny Patton, Peyton Menges, programmtest, Qwerty Venom, Rebecca Ashbourne, Revolution Smythe, Romka Swallowtail, Sahkolihaa Contepomi, sal Kaligawa, Samm Florian, Satomi Ahn, Sei Lisa, Sempervirens Oddfellow, Shin Wasp, Shyotl Kuhr, Sione Lomu, Skills Hak, StarlightShining, Sunset Faulkes, Tapple Gao, Testicular Slingshot, Thickbrick Sleaford, Ubit Umarov, Vaalith Jinn, Vincent Sylvester, Whirly Fizzle, Xenhat Liamano, Zwagoth Klaar and others.
|
||||
</text>
|
||||
<text
|
||||
follows="top|left"
|
||||
|
|
@ -217,7 +217,7 @@ UI Artists and Designers:
|
|||
top_pad="4"
|
||||
width="450"
|
||||
wrap="true">
|
||||
Adam Frisby, Alexandrea Fride, DarkAgent Baphomet, David Rowe, Digital Scribe, Hitomi Tiponi, Hugh Helendale, KirstenLee Cinquetti, Mobius Ryba, Nadin, Naomah Beaumont, Paladin Forzane, psi Merlin, samm florian, Sammie Benoir, Tommi Waydelich and Vincent Nacon.
|
||||
Adam Frisby, Alexandrea Fride, DarkAgent Baphomet, David Rowe, Digital Scribe, Dragonborn Forzane, Hitomi Tiponi, Hugh Helendale, KirstenLee Cinquetti, Mobius Ryba, Nadin, Naomah Beaumont, psi Merlin, samm florian, Sammie Benoir, Tommi Waydelich and Vincent Nacon.
|
||||
</text>
|
||||
</panel>
|
||||
</scroll_container>
|
||||
|
|
|
|||
|
|
@ -56,8 +56,8 @@ Please add these to your AV folder exclusions as shown on the above wiki page.
|
|||
top_pad="5"
|
||||
width="689"
|
||||
wrap="true">
|
||||
The following box is the name and full path of the viewer executables.
|
||||
Add these to you AV executable exclusions as shown in the above wiki.
|
||||
The following box shows the names and full paths of the viewer executables.
|
||||
Add the full paths to your AV executable exclusions as shown in the above wiki.
|
||||
</text>
|
||||
<text_editor
|
||||
parse_urls="true"
|
||||
|
|
|
|||
|
|
@ -58,15 +58,81 @@
|
|||
<pie_slice.on_enable
|
||||
function="Object.EnableBuy" />
|
||||
</pie_slice>
|
||||
<pie_slice
|
||||
|
||||
<pie_menu
|
||||
autohide="true"
|
||||
label="Take"
|
||||
name="Pie Object Take">
|
||||
<pie_slice.on_click
|
||||
function="Object.Take"/>
|
||||
<pie_slice.on_enable
|
||||
function="Object.VisibleTake"/>
|
||||
</pie_slice>
|
||||
label="Take >"
|
||||
name="Take Submenu">
|
||||
<pie_slice
|
||||
enabled="false"
|
||||
label="Copies: Separately"
|
||||
name="Take Copy Separate">
|
||||
<pie_slice.on_click
|
||||
function="Object.TakeSeparateCopy"/>
|
||||
<pie_slice.on_enable
|
||||
function="Tools.EnableCopySeparate"/>
|
||||
<pie_slice.on_visible
|
||||
function="Object.VisibleTakeMultiple"/>
|
||||
</pie_slice>
|
||||
<pie_separator/>
|
||||
<pie_separator/>
|
||||
<pie_slice
|
||||
enabled="false"
|
||||
label="Take copy"
|
||||
name="Take Copy">
|
||||
<pie_slice.on_click
|
||||
function="Tools.TakeCopy"/>
|
||||
<pie_slice.on_enable
|
||||
function="Tools.EnableTakeCopy"/>
|
||||
<pie_slice.on_visible
|
||||
function="Object.VisibleTakeSingle"/>
|
||||
</pie_slice>
|
||||
<pie_slice
|
||||
enabled="false"
|
||||
label="Take"
|
||||
name="Take">
|
||||
<pie_slice.on_click
|
||||
function="Object.Take"/>
|
||||
<pie_slice.on_enable
|
||||
function="Object.VisibleTake"/>
|
||||
<pie_slice.on_visible
|
||||
function="Object.VisibleTakeSingle"/>
|
||||
</pie_slice>
|
||||
<pie_slice
|
||||
enabled="false"
|
||||
label="Take: Combined"
|
||||
name="Take combined">
|
||||
<pie_slice.on_click
|
||||
function="Object.Take"/>
|
||||
<pie_slice.on_enable
|
||||
function="Object.VisibleTake"/>
|
||||
<pie_slice.on_visible
|
||||
function="Object.VisibleTakeMultiple"/>
|
||||
</pie_slice>
|
||||
<pie_slice
|
||||
enabled="false"
|
||||
label="Copy: Combined"
|
||||
name="Take Copy combined">
|
||||
<pie_slice.on_click
|
||||
function="Tools.TakeCopy"/>
|
||||
<pie_slice.on_enable
|
||||
function="Tools.EnableTakeCopy"/>
|
||||
<pie_slice.on_visible
|
||||
function="Object.VisibleTakeMultiple"/>
|
||||
</pie_slice>
|
||||
<pie_slice
|
||||
enabled="false"
|
||||
label="Take: Separately"
|
||||
name="Take Separate">
|
||||
<pie_slice.on_click
|
||||
function="Object.TakeSeparate"/>
|
||||
<pie_slice.on_enable
|
||||
function="Object.EnableTakeMultiple"/>
|
||||
<pie_slice.on_visible
|
||||
function="Object.VisibleTakeMultiple"/>
|
||||
</pie_slice>
|
||||
</pie_menu>
|
||||
|
||||
<pie_slice
|
||||
enabled="false"
|
||||
label="Pay"
|
||||
|
|
@ -99,15 +165,6 @@
|
|||
<pie_slice.on_enable
|
||||
function="Object.EnableWear" />
|
||||
</pie_slice>
|
||||
<pie_slice
|
||||
enabled="false"
|
||||
label="Take Copy"
|
||||
name="Take Copy">
|
||||
<pie_slice.on_click
|
||||
function="Tools.TakeCopy" />
|
||||
<pie_slice.on_enable
|
||||
function="Tools.EnableTakeCopy" />
|
||||
</pie_slice>
|
||||
<pie_menu
|
||||
label="Attach HUD >"
|
||||
name="Pie Object Attach HUD" />
|
||||
|
|
|
|||
|
|
@ -60,7 +60,7 @@
|
|||
name="Large(512x512)"
|
||||
value="[i512,i512]" />
|
||||
<combo_box.item
|
||||
label="Current Window(512x512)"
|
||||
label="Current Window"
|
||||
name="CurrentWindow"
|
||||
value="[i0,i0]" />
|
||||
<combo_box.item
|
||||
|
|
@ -128,6 +128,8 @@
|
|||
type="string"
|
||||
word_wrap="true">
|
||||
To save your image as a texture select one of the square formats.
|
||||
|
||||
Upload cost: L$ [UPLOAD_COST]
|
||||
</text>
|
||||
<button
|
||||
follows="right|bottom"
|
||||
|
|
|
|||
|
|
@ -54,7 +54,7 @@
|
|||
image_overlay_alignment="left"
|
||||
image_top_pad="-1"
|
||||
imgoverlay_label_space="10"
|
||||
label="Save to Inventory (L$[AMOUNT])"
|
||||
label="Save to Inventory"
|
||||
layout="topleft"
|
||||
left="9"
|
||||
name="save_to_inventory_btn"
|
||||
|
|
|
|||
|
|
@ -6,12 +6,14 @@
|
|||
<pie_slice label="Sentarme" name="Pie Object Sit"/>
|
||||
<pie_slice label="Levantarme" name="Object Stand Up"/>
|
||||
<pie_slice label="Comprar" name="Buy..."/>
|
||||
<pie_slice label="Tomar" name="Pie Object Take"/>
|
||||
<pie_menu label="Tomar >" name="Take Submenu">
|
||||
<pie_slice label="Tomar una copia" name="Take Copy" />
|
||||
<pie_slice label="Tomar" name="Take" />
|
||||
</pie_menu>
|
||||
<pie_slice label="Pagar" name="Pay..."/>
|
||||
<pie_menu label="Más >" name="Object Pie More 1">
|
||||
<pie_slice label="Eliminar" name="Delete"/>
|
||||
<pie_slice label="Vestir" name="Wear"/>
|
||||
<pie_slice label="Tomar una copia" name="Take Copy"/>
|
||||
<pie_menu label="Anexar HUD >" name="Pie Object Attach HUD"/>
|
||||
<pie_menu label="Anexar >" name="Pie Object Attach"/>
|
||||
<pie_slice label="Devolver" name="Return..."/>
|
||||
|
|
|
|||
|
|
@ -1,10 +1,10 @@
|
|||
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
|
||||
<panel name="panel_snapshot_inventory">
|
||||
<text name="hint_lbl">
|
||||
Para guardar una imagen como textura, selecciona uno de los formatos cuadrados.
|
||||
Guardar una imagen en el inventario cuesta [UPLOAD_COST] L$. Para guardar una imagen como textura, selecciona uno de los formatos cuadrados.
|
||||
</text>
|
||||
<combo_box label="Resolución" name="texture_size_combo">
|
||||
<combo_box.item label="Ventana actual (512 × 512)" name="CurrentWindow"/>
|
||||
<combo_box.item label="Ventana actual" name="CurrentWindow"/>
|
||||
<combo_box.item label="Pequeña (128x128)" name="Small(128x128)"/>
|
||||
<combo_box.item label="Mediana (256x256)" name="Medium(256x256)"/>
|
||||
<combo_box.item label="Grande (512x512)" name="Large(512x512)"/>
|
||||
|
|
|
|||
|
|
@ -2,7 +2,7 @@
|
|||
<panel name="panel_snapshot_options">
|
||||
<button label="Publicar en los comentarios de mi perfil" name="save_to_profile_btn"/>
|
||||
<button label="Enviar por correo electrónico" name="save_to_email_btn"/>
|
||||
<button label="Guardar en mi inventario ([AMOUNT] L$)" name="save_to_inventory_btn"/>
|
||||
<button label="Guardar en mi inventario" name="save_to_inventory_btn"/>
|
||||
<button label="Guardar en mi ordenador" name="save_to_computer_btn"/>
|
||||
<button label="Subir a Flickr" name="save_to_flickr_btn"/>
|
||||
</panel>
|
||||
|
|
|
|||
|
|
@ -1,5 +1,5 @@
|
|||
<?xml version="1.0" encoding="utf-8" standalone="yes" ?>
|
||||
<floater name="floater_region_restart_schedule">
|
||||
<floater name="floater_region_restart_schedule" title="Planning de redémarrage de la région">
|
||||
<text name="days_general">
|
||||
Redémarrer la région ces jours-ci :
|
||||
</text>
|
||||
|
|
|
|||
|
|
@ -11,7 +11,7 @@ Pour vous simplifier la tâche, l'encadré ci-dessous indique les dossiers utili
|
|||
Veuillez les ajouter à vos exclusions de dossiers AV, comme indiqué sur la page wiki ci-dessus.
|
||||
</text>
|
||||
<text name="whitelist_exe_instruction">
|
||||
La case suivante indique le nom et le chemin d'accès complet des exécutables de la visionneuse.
|
||||
Ajoutez-les à vos exclusions d'exécutables AV comme indiqué dans le wiki ci-dessus.
|
||||
La case suivante indique les noms et chemins d'accès complets des exécutables de la visionneuse.
|
||||
Ajoutez les chemins d'accès complet à vos exclusions d'exécutables AV comme indiqué dans le wiki ci-dessus.
|
||||
</text>
|
||||
</floater>
|
||||
|
|
@ -38,8 +38,14 @@
|
|||
<menu_item_call label="Faire disparaître" name="Derender"/>
|
||||
<menu_item_call label="Faire disparaître & Blacklister" name="DerenderPermanent"/>
|
||||
<menu_item_call label="Renvoyer" name="Return..."/>
|
||||
<menu_item_call label="Prendre" name="Pie Object Take"/>
|
||||
<menu_item_call label="Prendre une copie" name="Take Copy"/>
|
||||
<context_menu label="Prendre" name="Take Submenu">
|
||||
<menu_item_call label="Prendre" name="Pie Object Take"/>
|
||||
<menu_item_call label="Copier" name="Take Copy"/>
|
||||
<menu_item_call label="Le groupe" name="Take combined"/>
|
||||
<menu_item_call label="Copie du groupe" name="Take Copy combined"/>
|
||||
<menu_item_call label="Objets séparés" name="Take Separate"/>
|
||||
<menu_item_call label="Copies séparées" name="Take Copy Separate"/>
|
||||
</context_menu>
|
||||
<menu_item_call label="Payer" name="Pay..."/>
|
||||
<menu_item_call label="Acheter" name="Buy..."/>
|
||||
<context_menu label="Enregistrer sous" name="Export Menu">
|
||||
|
|
|
|||
|
|
@ -6,12 +6,18 @@
|
|||
<pie_slice label="S'asseoir" name="Pie Object Sit"/>
|
||||
<pie_slice label="Se lever" name="Object Stand Up"/>
|
||||
<pie_slice label="Acheter" name="Buy..."/>
|
||||
<pie_slice label="Prendre" name="Pie Object Take"/>
|
||||
<pie_menu label="Prendre >" name="Take Submenu">
|
||||
<pie_slice label="Copies séparées" name="Take Copy Separate"/>
|
||||
<pie_slice label="Copier" name="Take Copy" />
|
||||
<pie_slice label="Prendre" name="Take" />
|
||||
<pie_slice label="Le groupe" name="Take combined"/>
|
||||
<pie_slice label="Copie du groupe" name="Take Copy combined"/>
|
||||
<pie_slice label="Objets séparés" name="Take Separate"/>
|
||||
</pie_menu>
|
||||
<pie_slice label="Payer" name="Pay..."/>
|
||||
<pie_menu label="Plus >" name="Object Pie More 1">
|
||||
<pie_slice label="Supprimer" name="Delete"/>
|
||||
<pie_slice label="Porter" name="Wear"/>
|
||||
<pie_slice label="Prendre une copie" name="Take Copy"/>
|
||||
<pie_menu label="Attacher au HUD >" name="Pie Object Attach HUD"/>
|
||||
<pie_menu label="Attacher >" name="Pie Object Attach">
|
||||
<pie_menu label="Squelette (ext) >" name="Enhanced Skeleton">
|
||||
|
|
|
|||
|
|
@ -34,4 +34,5 @@
|
|||
<button label="Téléporter chez eux tous les résidents..." name="kick_all_btn"/>
|
||||
<button label="Envoyer un message à la région..." name="im_btn"/>
|
||||
<button label="Gérer le Téléhub..." name="manage_telehub_btn"/>
|
||||
<button label="Planifier les redémarrages..." name="manage_restart_btn" />
|
||||
</panel>
|
||||
|
|
|
|||
|
|
@ -12,7 +12,7 @@
|
|||
<spinner width="50" name="inventory_snapshot_height"/>
|
||||
<check_box label="Conserver les proportions" name="inventory_keep_aspect_check"/>
|
||||
<check_box label="Uploader temporairement" name="inventory_temp_upload"/>
|
||||
<text name="hint_lbl">Pour enregistrer votre image en tant que texture, sélectionnez un des formats listés.</text>
|
||||
<text name="hint_lbl">L'enregistrement d'une image dans l'inventaire coûte [UPLOAD_COST] L$. Pour enregistrer votre image en tant que texture, sélectionnez un des formats listés.</text>
|
||||
<button label="▶ Sélection" name="cancel_btn"/>
|
||||
<button label="Enregistrer" name="save_btn"/>
|
||||
</panel>
|
||||
|
|
|
|||
|
|
@ -2,7 +2,7 @@
|
|||
<panel name="panel_snapshot_options">
|
||||
<layout_stack name="option_buttons">
|
||||
<layout_panel name="lp_download"><button label="Sur le disque" name="save_to_computer_btn"/></layout_panel>
|
||||
<layout_panel name="lp_inventory"><button label="Dans l'inventaire ([AMOUNT] L$)" name="save_to_inventory_btn"/></layout_panel>
|
||||
<layout_panel name="lp_inventory"><button label="Dans l'inventaire" name="save_to_inventory_btn"/></layout_panel>
|
||||
<layout_panel name="lp_profile"><button label="En ligne sur mon profil" name="save_to_profile_btn"/></layout_panel>
|
||||
<layout_panel name="lp_facebook"><button label="En ligne sur Facebook" name="send_to_facebook_btn"/></layout_panel>
|
||||
<layout_panel name="lp_twitter"><button label="En ligne sur Twitter" name="send_to_twitter_btn"/></layout_panel>
|
||||
|
|
|
|||
|
|
@ -51,6 +51,12 @@
|
|||
<rows name="spin_around_cw">
|
||||
<columns name="lst_action" tool_tip="Ruota la camera attorno al punto di focus in senso orario." value="Ruota camera verso sinistra" />
|
||||
</rows>
|
||||
<rows name="roll_left">
|
||||
<columns name="lst_action" tool_tip="Inclina camera a sinistra" value="Inclina a sinistra" />
|
||||
</rows>
|
||||
<rows name="roll_right">
|
||||
<columns name="lst_action" tool_tip="Inclina camera a destra" value="Inclina a destra" />
|
||||
</rows>
|
||||
<rows name="move_forward_sitting">
|
||||
<columns name="lst_action" value="Camera in avanti (s)" />
|
||||
</rows>
|
||||
|
|
|
|||
|
|
@ -0,0 +1,33 @@
|
|||
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
|
||||
<floater name="bulk_upload">
|
||||
<layout_stack name="maint_layout">
|
||||
<layout_panel name="count_panel">
|
||||
<text name="number_of_items">
|
||||
Elementi da caricare: [COUNT]
|
||||
</text>
|
||||
</layout_panel>
|
||||
<layout_panel name="warning_panel">
|
||||
<text name="textures_2k_warning">
|
||||
Per impostazione predefinita, una o più texture verranno ridimensionate a 2048px.
|
||||
</text>
|
||||
</layout_panel>
|
||||
<layout_panel name="checkbox_panel">
|
||||
<check_box label="Ridimensiona le texture ad un massimo di 1024px" name="upload_2k" />
|
||||
</layout_panel>
|
||||
<layout_panel name="cost_panel">
|
||||
<text name="upload_cost">
|
||||
Costo: [COST]L$
|
||||
</text>
|
||||
</layout_panel>
|
||||
<layout_panel name="buttoms_panel">
|
||||
<button label="Carica" name="upload_btn" />
|
||||
<button label="Annulla" name="cancel_btn" />
|
||||
</layout_panel>
|
||||
<layout_panel name="link_panel">
|
||||
<text name="new_folder_textbox">
|
||||
Come vengono ridimensionate le texture caricate:
|
||||
https://wiki.secondlife.com/wiki/Limits#All_Viewers
|
||||
</text>
|
||||
</layout_panel>
|
||||
</layout_stack>
|
||||
</floater>
|
||||
|
|
@ -0,0 +1,24 @@
|
|||
<?xml version="1.0" encoding="utf-8" standalone="yes" ?>
|
||||
<floater name="gltf asset editor">
|
||||
<floater.string name="floater_title" value="Editor Scena GLTF" />
|
||||
<floater.string name="scene_tittle" value="Scena" />
|
||||
<floater.string name="node_tittle" value="Nodo" />
|
||||
<floater.string name="mesh_tittle" value="Mesh" />
|
||||
<floater.string name="skin_tittle" value="Skin" />
|
||||
<layout_stack name="main_layout">
|
||||
<layout_panel name="transforms_panel">
|
||||
<menu_button name="clipboard_pos_btn" tool_tip="Opzioni incolla" />
|
||||
<text name="label position" tool_tip="Posizione (metri)">
|
||||
Posizione (m)
|
||||
</text>
|
||||
<menu_button name="clipboard_size_btn" tool_tip="Opzioni incolla" />
|
||||
<text name="label size" tool_tip="Dimensioni (metri)">
|
||||
Dimensioni (m)
|
||||
</text>
|
||||
<menu_button name="clipboard_rot_btn" tool_tip="Opzioni incolla" />
|
||||
<text name="label rotation" tool_tip="Rotazione (gradi)">
|
||||
Rotazione (°)
|
||||
</text>
|
||||
</layout_panel>
|
||||
</layout_stack>
|
||||
</floater>
|
||||
|
|
@ -0,0 +1,39 @@
|
|||
<?xml version="1.0" encoding="utf-8" standalone="yes" ?>
|
||||
<floater name="floater_region_restart_schedule" title="Pianifica Riavvio Regione">
|
||||
<text name="days_general">
|
||||
Riavvia regione nei seguenti giorni:
|
||||
</text>
|
||||
<check_box name="s_chk" tool_tip="Domenica" />
|
||||
<check_box name="m_chk" tool_tip="Lunedì" />
|
||||
<check_box name="t_chk" tool_tip="Martedì" />
|
||||
<check_box name="w_chk" tool_tip="Mercoledì" />
|
||||
<check_box name="r_chk" tool_tip="Giovedì" />
|
||||
<check_box name="f_chk" tool_tip="Venerdì" />
|
||||
<check_box name="a_chk" tool_tip="Sabato" />
|
||||
<text name="su_label">
|
||||
Do
|
||||
</text>
|
||||
<text name="mo_label">
|
||||
Lu
|
||||
</text>
|
||||
<text name="tu_label">
|
||||
Ma
|
||||
</text>
|
||||
<text name="we_label">
|
||||
Me
|
||||
</text>
|
||||
<text name="th_label">
|
||||
Gi
|
||||
</text>
|
||||
<text name="fr_label">
|
||||
Ve
|
||||
</text>
|
||||
<text name="sa_label">
|
||||
Sa
|
||||
</text>
|
||||
<text name="at_label">
|
||||
alle
|
||||
</text>
|
||||
<button name="save_btn" label="Salva" />
|
||||
<button name="cancel_btn" label="Annulla" />
|
||||
</floater>
|
||||
|
|
@ -0,0 +1,13 @@
|
|||
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
|
||||
<floater name="settings_color" title="Impostazioni Colore">
|
||||
<filter_editor label="Filtro di ricerca" name="filter_input" />
|
||||
<scroll_list name="setting_list">
|
||||
<scroll_list.columns label="Colore" name="color" />
|
||||
</scroll_list>
|
||||
<text name="color_name_txt">
|
||||
Nome colore
|
||||
</text>
|
||||
<spinner label="Traspar." name="alpha_spinner" />
|
||||
<button label="Ripristina predefiniti" name="default_btn" />
|
||||
<check_box label="Mostra solo colori cambiati" name="hide_default" />
|
||||
</floater>
|
||||
|
|
@ -0,0 +1,5 @@
|
|||
<?xml version="1.0" encoding="utf-8" standalone="yes" ?>
|
||||
<toggleable_menu name="Copy Paste Color Menu">
|
||||
<menu_item_call label="Copia" name="params_copy" />
|
||||
<menu_item_call label="Incolla" name="params_paste" />
|
||||
</toggleable_menu>
|
||||
|
|
@ -0,0 +1,5 @@
|
|||
<?xml version="1.0" encoding="utf-8" standalone="yes" ?>
|
||||
<toggleable_menu name="Copy Paste Features Menu">
|
||||
<menu_item_call label="Copia" name="params_copy" />
|
||||
<menu_item_call label="Incolla" name="params_paste" />
|
||||
</toggleable_menu>
|
||||
|
|
@ -0,0 +1,5 @@
|
|||
<?xml version="1.0" encoding="utf-8" standalone="yes" ?>
|
||||
<toggleable_menu name="Copy Paste Light Menu">
|
||||
<menu_item_call label="Copia" name="params_copy" />
|
||||
<menu_item_call label="Incolla" name="params_paste" />
|
||||
</toggleable_menu>
|
||||
|
|
@ -0,0 +1,5 @@
|
|||
<?xml version="1.0" encoding="utf-8" standalone="yes" ?>
|
||||
<toggleable_menu name="Copy Paste Object Menu">
|
||||
<menu_item_call label="Copia" name="params_copy" />
|
||||
<menu_item_call label="Incolla" name="params_paste" />
|
||||
</toggleable_menu>
|
||||
|
|
@ -0,0 +1,7 @@
|
|||
<?xml version="1.0" encoding="utf-8" standalone="yes" ?>
|
||||
<toggleable_menu name="Copy Paste Position Menu">
|
||||
<menu_item_call label="Copia tutto" name="psr_copy" />
|
||||
<menu_item_call label="Copia posizione" name="pos_copy" />
|
||||
<menu_item_call label="Incolla tutto" name="psr_paste" />
|
||||
<menu_item_call label="Incolla posizione" name="pos_paste" />
|
||||
</toggleable_menu>
|
||||
|
|
@ -0,0 +1,7 @@
|
|||
<?xml version="1.0" encoding="utf-8" standalone="yes" ?>
|
||||
<toggleable_menu name="Copy Paste Rotation Menu">
|
||||
<menu_item_call label="Copia tutto" name="psr_copy" />
|
||||
<menu_item_call label="Copia rotazione" name="rot_copy" />
|
||||
<menu_item_call label="Incolla tutto" name="psr_paste" />
|
||||
<menu_item_call label="Incolla rotazione" name="rot_paste" />
|
||||
</toggleable_menu>
|
||||
|
|
@ -0,0 +1,7 @@
|
|||
<?xml version="1.0" encoding="utf-8" standalone="yes" ?>
|
||||
<toggleable_menu name="Copy Paste Size Menu">
|
||||
<menu_item_call label="Copia tutto" name="psr_copy" />
|
||||
<menu_item_call label="Copia dimensioni" name="size_copy" />
|
||||
<menu_item_call label="Incolla tutto" name="psr_paste" />
|
||||
<menu_item_call label="Incolla dimensioni" name="size_paste" />
|
||||
</toggleable_menu>
|
||||
|
|
@ -0,0 +1,5 @@
|
|||
<?xml version="1.0" encoding="utf-8" standalone="yes" ?>
|
||||
<toggleable_menu name="Copy Paste Texture Menu">
|
||||
<menu_item_call label="Copia" name="params_copy" />
|
||||
<menu_item_call label="Incolla" name="params_paste" />
|
||||
</toggleable_menu>
|
||||
|
|
@ -24,7 +24,8 @@
|
|||
<menu_item_check label="Mostra menu Debug" name="Show Debug Menu"/>
|
||||
<menu label="Debug" name="Debug">
|
||||
<menu_item_call label="Impostazioni di debug" name="Debug Settings"/>
|
||||
<menu_item_call label="Strumento anteprima XUI" name="UI Preview Tool"/>
|
||||
<menu_item_call label="Mostra Impostazioni Colore" name="Color Settings" />
|
||||
<menu_item_call label="Strumento Anteprima XUI" name="UI Preview Tool"/>
|
||||
<menu label="Caratteri" name="Fonts">
|
||||
<menu_item_call label="Mostra test carattere" name="Show Font Test" />
|
||||
<menu_item_call label="Scarica caratteri" name="Dump Fonts" />
|
||||
|
|
@ -37,7 +38,7 @@
|
|||
<menu_item_call label="Ispeziona" name="Inspectors" />
|
||||
</menu>
|
||||
<menu_item_call label="Imposta dimensioni della finestra..." name="Set Window Size..."/>
|
||||
<menu_item_call label="Mostra i Termini del servizio (TOS)" name="TOS"/>
|
||||
<menu_item_call label="Mostra Termini del servizio (TOS)" name="TOS"/>
|
||||
<menu_item_call label="Mostra messaggio critico" name="Critical"/>
|
||||
<menu_item_call label="Browser media" name="Media Browser"/>
|
||||
<menu_item_call label="Mostra Console notifiche" name="Show Notifications Console"/>
|
||||
|
|
|
|||
|
|
@ -6,12 +6,18 @@
|
|||
<pie_slice label="Siediti qui" name="Pie Object Sit"/>
|
||||
<pie_slice label="Alzati" name="Object Stand Up"/>
|
||||
<pie_slice label="Compra" name="Buy..."/>
|
||||
<pie_slice label="Prendi" name="Pie Object Take"/>
|
||||
<pie_menu label="Prendi >" name="Take Submenu">
|
||||
<pie_slice label="Copie come ogg. separati" name="Take Copy Separate" />
|
||||
<pie_slice label="Prendi copia" name="Take Copy" />
|
||||
<pie_slice label="Prendi" name="Take" />
|
||||
<pie_slice label="Come multi-ogg." name="Take combined" />
|
||||
<pie_slice label="Copia come multi-ogg." name="Take Copy combined" />
|
||||
<pie_slice label="Come ogg. separati" name="Take Separate" />
|
||||
</pie_menu>
|
||||
<pie_slice label="Paga" name="Pay..."/>
|
||||
<pie_menu label="Altro >" name="Object Pie More 1">
|
||||
<pie_slice label="Elimina" name="Delete"/>
|
||||
<pie_slice label="Indossa" name="Wear"/>
|
||||
<pie_slice label="Prendi copia" name="Take Copy"/>
|
||||
<pie_menu label="Attacca HUD >" name="Pie Object Attach HUD"/>
|
||||
<pie_menu label="Attacca >" name="Pie Object Attach">
|
||||
<pie_menu label="Schel. avanz. >" name="Enhanced Skeleton">
|
||||
|
|
|
|||
|
|
@ -466,6 +466,7 @@
|
|||
<menu_item_call label="Apri..." name="Open..." />
|
||||
<menu_item_call label="Salva come..." name="Save As..." />
|
||||
<menu_item_call label="Carica..." name="Upload..." />
|
||||
<menu_item_call label="Modifica..." name="Edit..." />
|
||||
</menu>
|
||||
<menu label="Test rendering" name="Render Tests">
|
||||
<menu_item_check label="Camera Offset" name="Camera Offset"/>
|
||||
|
|
@ -508,25 +509,25 @@
|
|||
</menu>
|
||||
</menu>
|
||||
<menu label="Rendering" name="Rendering">
|
||||
<menu_item_check label="Axes" name="Axes"/>
|
||||
<menu_item_check label="Tangent Basis" name="Tangent Basis"/>
|
||||
<menu_item_call label="Selected Texture Info Basis" name="Selected Texture Info Basis"/>
|
||||
<menu_item_call label="Info materiale selezionato" name="Selected Material Info"/>
|
||||
<menu_item_check label="Wireframe" name="Wireframe"/>
|
||||
<menu_item_check label="Object-Object Occlusion" name="Object-Object Occlusion"/>
|
||||
<menu_item_check label="Advanced Lighting Model" name="Advanced Lighting Model"/>
|
||||
<menu_item_check label=" Shadows from Sun/Moon/Projectors" name="Shadows from Sun/Moon/Projectors"/>
|
||||
<menu_item_check label=" SSAO and Shadow Smoothing" name="SSAO and Shadow Smoothing"/>
|
||||
<menu_item_check label="Debug GL" name="Debug GL"/>
|
||||
<menu_item_check label="Debug Pipeline" name="Debug Pipeline"/>
|
||||
<menu_item_check label="Automatic Alpha Masks (deferred)" name="Automatic Alpha Masks (deferred)"/>
|
||||
<menu_item_check label="Automatic Alpha Masks (non-deferred)" name="Automatic Alpha Masks (non-deferred)"/>
|
||||
<menu_item_check label="Animation Textures" name="Animation Textures"/>
|
||||
<menu_item_check label="Disable Textures" name="Disable Textures"/>
|
||||
<menu_item_check label="Full Res Textures (dangerous)" name="Full Res Textures"/>
|
||||
<menu_item_check label="Render Attached Lights" name="Render Attached Lights"/>
|
||||
<menu_item_check label="Render Attached Particles" name="Render Attached Particles"/>
|
||||
<menu_item_check label="Hover Glow Objects" name="Hover Glow Objects"/>
|
||||
<menu_item_check label="Assi" name="Axes"/>
|
||||
<menu_item_check label="Info di base sulle tangenti" name="Tangent Basis"/>
|
||||
<menu_item_call label="Info di base sulla texture selezionata" name="Selected Texture Info Basis"/>
|
||||
<menu_item_call label="Info sul materiale selezionato" name="Selected Material Info"/>
|
||||
<menu_item_check label="Modalità immagine wireframe" name="Wireframe"/>
|
||||
<menu_item_check label="Occlusione da oggetto a oggetto" name="Object-Object Occlusion"/>
|
||||
<menu_item_check label="Ombre sole/luna/proiettori" name="Shadows from Sun/Moon/Projectors"/>
|
||||
<menu_item_check label="SSAO e attenuazione delle ombre" name="SSAO and Shadow Smoothing"/>
|
||||
<menu_item_check label="Debug GL al prossimo avvio" name="Debug GL"/>
|
||||
<menu_item_check label="Debug delle pipeline" name="Debug Pipeline"/>
|
||||
<menu_item_check label="Mascherature alfa automatiche" name="Automatic Alpha Masks (deferred)"/>
|
||||
<menu_item_check label="Texture animate" name="Animation Textures"/>
|
||||
<menu_item_check label="Disabilita texture" name="Disable Textures"/>
|
||||
<menu_item_call label="Derenderizza tutte le animesh" name="Derender Animesh"/>
|
||||
<menu_item_check label="Risoluzione massima della texture (pericoloso)" name="Full Res Textures"/>
|
||||
<menu_item_check label="Renderizza luci indossate" name="Render Attached Lights"/>
|
||||
<menu_item_check label="Renderizza particelle indossate" name="Render Attached Particles"/>
|
||||
<menu_item_check label="Abilita cache degli shader" name="Enable Shader Cache" />
|
||||
<menu_item_call label="Cancella cache degli shader" name="Shader Cache Clear" />
|
||||
</menu>
|
||||
<menu label="Rete" name="Network">
|
||||
<menu_item_check label="Pausa agente" name="AgentPause"/>
|
||||
|
|
@ -553,6 +554,11 @@
|
|||
<menu_item_call label="Scarica Region Object Cache" name="Dump Region Object Cache"/>
|
||||
<menu_item_call label="Scarica Simulator Features to Nearby Chat" name="DumpSimFeaturesToChat"/>
|
||||
</menu>
|
||||
<menu label="Terreno" name="DevelopTerrain">
|
||||
<menu_item_call label="Ricostruisci terreno" name="Rebuild Terrain" />
|
||||
<menu_item_call label="Crea paintmap locale" name="Create Local Paintmap" />
|
||||
<menu_item_call label="Elimina paintmap locale" name="Delete Local Paintmap" />
|
||||
</menu>
|
||||
<menu label="UI" name="UI">
|
||||
<menu_item_call label="Test browser multimediale" name="Web Browser Test"/>
|
||||
<menu_item_check label="Test riavvio regione" name="Region Restart Test"/>
|
||||
|
|
@ -580,15 +586,16 @@
|
|||
<menu_item_check label="Debug processi finestra" name="Debug WindowProc"/>
|
||||
</menu>
|
||||
<menu label="XUI" name="XUI">
|
||||
<menu_item_call label="Mostra Impostazioni Colore" name="Color Settings" />
|
||||
<menu_item_call label="Ricarica impostazioni colori" name="Reload Color Settings"/>
|
||||
<menu_item_call label="Mostra Font Test" name="Show Font Test"/>
|
||||
<menu_item_call label="Mostra Test Carattere" name="Show Font Test"/>
|
||||
<menu_item_call label="Carica da XML" name="Load from XML"/>
|
||||
<menu_item_call label="Salva su XML" name="Save to XML"/>
|
||||
<menu_item_check label="Mostra nomi XUI" name="Show XUI Names"/>
|
||||
<menu_item_check label="Mostra debugging info for views" name="DebugViews"/>
|
||||
<menu_item_call label="XUI Preview Tool" name="UI Preview Tool"/>
|
||||
<menu_item_call label="Manda IM test" name="Send Test IMs"/>
|
||||
<menu_item_call label="Vuota cache nomi" name="Flush Names Caches"/>
|
||||
<menu_item_check label="Mostra informazioni di debug per le visualizzazioni" name="DebugViews"/>
|
||||
<menu_item_call label="Strumento di anteprima XUI" name="UI Preview Tool"/>
|
||||
<menu_item_call label="Invia IM di prova" name="Send Test IMs"/>
|
||||
<menu_item_call label="Svuota le cache dei nomi" name="Flush Names Caches"/>
|
||||
</menu>
|
||||
<menu label="Avatar" name="Character">
|
||||
<menu label="Cattura texture combinate" name="Grab Baked Texture">
|
||||
|
|
@ -600,10 +607,11 @@
|
|||
</menu>
|
||||
<menu label="Test avatar" name="Character Tests">
|
||||
<menu_item_call label="Aspetto a XML" name="Appearance To XML"/>
|
||||
<menu_item_call label="Commuta Character Geometry" name="Toggle Character Geometry"/>
|
||||
<menu_item_call label="Commuta geometria personaggio" name="Toggle Character Geometry"/>
|
||||
<menu_item_call label="Test maschio" name="Test Male"/>
|
||||
<menu_item_call label="Test femmina" name="Test Female"/>
|
||||
<menu_item_check label="Permetti di selezionare gli avatar" name="Allow Select Avatar"/>
|
||||
<menu_item_check label="Disabilita l'animazione dello sguardo" name="Disable Look At Animation" />
|
||||
<menu_item_check label="Renderizza solo gli amici" name="Render Only Friends" />
|
||||
</menu>
|
||||
<menu label="Velocità animazioni" name="Animation Speed">
|
||||
|
|
|
|||
|
|
@ -852,6 +852,16 @@ Se si riavvia il viewer con le impostazioni precedenti potrebbe essere possibile
|
|||
<notification name="CannotUploadReason">
|
||||
Impossibile importare il file [FILE] a causa del seguente motivo: [REASON]
|
||||
Riprova più tardi.
|
||||
</notification>
|
||||
<notification name="CannotUploadSnapshotEmailTooBig">
|
||||
Il caricamento della foto [FILE] non è riuscito a causa di: [REASON]
|
||||
|
||||
Il file potrebbe essere troppo grande. Prova ad abbassare la risoluzione, la qualità o riprova più tardi.
|
||||
</notification>
|
||||
<notification name="CannotUploadSnapshotWebTooBig">
|
||||
Caricamento foto non riuscito.
|
||||
|
||||
Il file potrebbe essere troppo grande. Prova ad abbassare la risoluzione, la qualità o riprova più tardi.
|
||||
</notification>
|
||||
<notification name="LandmarkCreated">
|
||||
Hai aggiunto "[LANDMARK_NAME]" alla tua cartella [FOLDER_NAME].
|
||||
|
|
@ -1146,6 +1156,9 @@ Unire il terreno?
|
|||
Non è possibile salvare [NAME] nel database centrale degli asset.
|
||||
In genere si tratta di un problema temporaneo. Attendere alcuni minuti per modificare e salvare nuovamente gli elementi indossabili.
|
||||
</notification>
|
||||
<notification name="OutOfDiskSpace">
|
||||
Spazio sul disco esaurito. È necessario liberare spazio sul computer o svuotare la cache.
|
||||
</notification>
|
||||
<notification name="YouHaveBeenLoggedOut">
|
||||
Sei stato scollegato da [CURRENT_GRID].
|
||||
[MESSAGE]
|
||||
|
|
@ -1602,6 +1615,10 @@ Eccede il [MAX_AGENTS] [LIST_TYPE] limite di [NUM_EXCESS].
|
|||
<notification name="CanNotChangeAppearanceUntilLoaded">
|
||||
Impossibile cambiare l'aspetto fisico finchè i vestiti non sono caricati.
|
||||
</notification>
|
||||
<notification name="UsavedWearableChanges">
|
||||
Sono presenti modifiche non salvate.
|
||||
<usetemplate ignoretext="Conferma prima di eliminare le modifiche all'abbigliamento non salvate" name="okcancelignore" notext="Continua a modificare" yestext="Scarta" />
|
||||
</notification>
|
||||
<notification name="ClassifiedMustBeAlphanumeric">
|
||||
Il nome del tuo annuncio deve iniziare con una lettera da A a Z oppure con un numero. Non sono consentiti caratteri di punteggiatura.
|
||||
</notification>
|
||||
|
|
|
|||
|
|
@ -23,8 +23,8 @@
|
|||
<text name="options_text_lbl">
|
||||
Opzioni:
|
||||
</text>
|
||||
<check_box label="Con script" name="return_scripts" tool_tip="Restituisci solo oggetti che hanno script"/>
|
||||
<check_box label="Sul terreno di un altro residente" name="return_other_land" tool_tip="Restituisci solo gli oggetti che sono in terreni appartenenti a qualcun altro"/>
|
||||
<check_box label="Con script" name="return_scripts" tool_tip="Restituisci solo gli oggetti scriptati"/>
|
||||
<check_box label="Sui terreni di altri residenti" name="return_other_land" tool_tip="Restituisci solo gli oggetti che si trovano sui terreni che non sono di proprietà dell'utente selezionato"/>
|
||||
<check_box label="In tutte le regioni di questa proprietà" name="return_estate_wide" tool_tip="Restituisci tutti gli oggetti nelle varie regioni che costituiscono l'insieme dei possedimenti terrieri"/>
|
||||
<button label="Restituisci" name="return_btn"/>
|
||||
<button label="Vedi elenco maggiori collidenti..." name="top_colliders_btn" tool_tip="Elenco degli oggetti che stanno potenzialmente subendo le maggiori collisioni" width="200"/>
|
||||
|
|
|
|||
|
|
@ -10,31 +10,31 @@
|
|||
ID Proprietà:
|
||||
</text>
|
||||
<line_editor name="estate_id" initial_value="sconosciuto" width="85" />
|
||||
<text name="version_channel_text_lbl">
|
||||
Versione:
|
||||
</text>
|
||||
<text name="version_channel_text" left_delta="60">
|
||||
sconosciuta
|
||||
</text>
|
||||
<text name="grid_position_lbl" right="-75">
|
||||
Pos. grid:
|
||||
</text>
|
||||
<line_editor name="grid_position_x" default_text="scon"/>
|
||||
<line_editor name="grid_position_y" default_text="scon"/>
|
||||
<text name="region_type_lbl">
|
||||
Tipo:
|
||||
</text>
|
||||
<text name="region_type" left_delta="60">
|
||||
sconosciuto
|
||||
</text>
|
||||
<check_box label="Proibisci modifica del terreno" name="block_terraform_check"/>
|
||||
<check_box label="Impedisci volo" name="block_fly_check"/>
|
||||
<check_box label="Blocca sorvolo" name="block_fly_over_check" tool_tip="Espandi il controllo dell'accesso in alto per impedire il volo sopra un lotto"/>
|
||||
<check_box label="Abilita danni" name="allow_damage_check"/>
|
||||
<check_box label="Limita urti" name="restrict_pushobject"/>
|
||||
<text name="grid_position_lbl" right="-75">
|
||||
Pos. grid:
|
||||
</text>
|
||||
<text name="version_channel_text_lbl">
|
||||
Versione:
|
||||
</text>
|
||||
<text name="version_channel_text" left_delta="60">
|
||||
sconosciuta
|
||||
</text>
|
||||
<line_editor name="grid_position_x" default_text="scon"/>
|
||||
<line_editor name="grid_position_y" default_text="scon"/>
|
||||
<check_box label="Disabilita modifica del terreno" name="block_terraform_check"/>
|
||||
<check_box label="Disabilita il volo" name="block_fly_check"/>
|
||||
<check_box label="Disabilita il sorvolo sul terreno" name="block_fly_over_check" tool_tip="Espandi il controllo dell'accesso in alto per impedire il volo sopra un lotto"/>
|
||||
<check_box label="Abilita il danno" name="allow_damage_check"/>
|
||||
<check_box label="Disabilita la spinta" name="restrict_pushobject"/>
|
||||
<check_box label="Abilita rivendita del terreno" name="allow_land_resell_check"/>
|
||||
<check_box label="Abilita unione/suddivisione del terreno" name="allow_parcel_changes_check"/>
|
||||
<check_box label="Proibisci che il terreno appaia nelle ricerche" name="block_parcel_search_check" tool_tip="Permetti che le persone vedano questa regione e le sue suddivisioni nei risultati delle ricerche"/>
|
||||
<check_box label="Non permettere che il terreno appaia nelle ricerche" name="block_parcel_search_check" tool_tip="Permetti che le persone vedano questa regione e le sue suddivisioni nei risultati delle ricerche"/>
|
||||
<spinner label="Limite massimo di avatar" label_width="150" name="agent_limit_spin" width="223"/>
|
||||
<spinner label="Bonus di oggetti" label_width="150" name="object_bonus_spin" width="223"/>
|
||||
<text label="Maturità" name="access_text" width="160">
|
||||
|
|
@ -50,4 +50,5 @@
|
|||
<button label="Teleport a casa tutti i residenti..." name="kick_all_btn"/>
|
||||
<button label="Invia messaggio alla regione..." name="im_btn"/>
|
||||
<button label="Gestisci snodo di teleport..." name="manage_telehub_btn" width="210"/>
|
||||
<button label="Pianifica riavvio regione..." name="manage_restart_btn" />
|
||||
</panel>
|
||||
|
|
|
|||
|
|
@ -14,7 +14,7 @@
|
|||
<check_box label="Mantieni proporzioni" name="inventory_keep_aspect_check"/>
|
||||
<check_box label="Temporaneo" name="inventory_temp_upload" />
|
||||
<text name="hint_lbl">
|
||||
Per salvare come texture, seleziona un formato quadrato.
|
||||
Salvare un'immagine nell'inventario costa L$[UPLOAD_COST]. Per salvare come texture, seleziona un formato quadrato.
|
||||
</text>
|
||||
<button label="▶ Seleziona" name="cancel_btn"/>
|
||||
<button label="Salva" name="save_btn"/>
|
||||
|
|
|
|||
|
|
@ -5,7 +5,7 @@
|
|||
<button label="Salva sul disco fisso" name="save_to_computer_btn"/>
|
||||
</layout_panel>
|
||||
<layout_panel name="lp_inventory">
|
||||
<button label="Salva in inventario ([AMOUNT]L$)" name="save_to_inventory_btn"/>
|
||||
<button label="Salva in inventario" name="save_to_inventory_btn"/>
|
||||
</layout_panel>
|
||||
<layout_panel name="lp_profile">
|
||||
<button label="Condividi sul feed" name="save_to_profile_btn"/>
|
||||
|
|
|
|||
|
|
@ -19,12 +19,13 @@
|
|||
<pie_slice
|
||||
label="購入"
|
||||
name="Buy..."/>
|
||||
<pie_slice
|
||||
label="取る"
|
||||
name="Pie Object Take"/>
|
||||
<pie_menu label="取る >" name="Take Submenu">
|
||||
<pie_slice label="コピーを取る" name="Take Copy" />
|
||||
<pie_slice label="取る" name="Take" />
|
||||
</pie_menu>
|
||||
<pie_slice
|
||||
label="支払い"
|
||||
name="Pay..."/>
|
||||
name="Pay..."/>
|
||||
<pie_menu
|
||||
label="詳細 >"
|
||||
name="Object Pie More 1">
|
||||
|
|
@ -34,9 +35,6 @@
|
|||
<pie_slice
|
||||
label="装着"
|
||||
name="Wear"/>
|
||||
<pie_slice
|
||||
label="コピーを取る"
|
||||
name="Take Copy"/>
|
||||
<pie_menu
|
||||
label="HUD装着先 >"
|
||||
name="Pie Object Attach HUD" />
|
||||
|
|
@ -45,7 +43,7 @@
|
|||
name="Pie Object Attach" />
|
||||
<pie_slice
|
||||
label="返却"
|
||||
name="Return..."/>
|
||||
name="Return..."/>
|
||||
<pie_menu
|
||||
label="詳細 >"
|
||||
name="Object Pie More 2">
|
||||
|
|
|
|||
|
|
@ -5,13 +5,10 @@
|
|||
</text>
|
||||
<view_border name="hr" />
|
||||
<combo_box label="解像度" name="texture_size_combo">
|
||||
<!--
|
||||
<combo_box.item label="現在のウィンドウ" name="CurrentWindow"/>
|
||||
-->
|
||||
<combo_box.item label="小(128x128)" name="Small(128x128)"/>
|
||||
<combo_box.item label="中(256x256)" name="Medium(256x256)"/>
|
||||
<combo_box.item label="大(512x512)" name="Large(512x512)"/>
|
||||
<combo_box.item label="現在のウィンドウ (512x512)" name="CurrentWindow" />
|
||||
<combo_box.item label="現在のウィンドウ" name="CurrentWindow" />
|
||||
<combo_box.item label="カスタム" name="Custom"/>
|
||||
</combo_box>
|
||||
<spinner label="幅 x 高さ" name="inventory_snapshot_width"/>
|
||||
|
|
|
|||
|
|
@ -5,7 +5,7 @@
|
|||
<button label="ディスクに保存" name="save_to_computer_btn"/>
|
||||
</layout_panel>
|
||||
<layout_panel name="lp_inventory">
|
||||
<button label="インベントリに保存 (L$[AMOUNT])" name="save_to_inventory_btn"/>
|
||||
<button label="インベントリに保存" name="save_to_inventory_btn"/>
|
||||
</layout_panel>
|
||||
<layout_panel name="lp_profile">
|
||||
<button label="プロフィールにアップロード" name="save_to_profile_btn"/>
|
||||
|
|
|
|||
|
|
@ -1,7 +1,7 @@
|
|||
<?xml version="1.0" encoding="utf-8" standalone="yes" ?>
|
||||
<toggleable_menu name="Copy Paste Rotation Menu">
|
||||
<menu_item_call label="Kopiuj wszystko" name="psr_copy" />
|
||||
<menu_item_call label="Wklej obrót" name="rot_copy" />
|
||||
<menu_item_call label="Kopiuj obrót" name="rot_copy" />
|
||||
<menu_item_call label="Wklej wszystko" name="psr_paste" />
|
||||
<menu_item_call label="Wklej obrót" name="rot_paste" />
|
||||
</toggleable_menu>
|
||||
|
|
|
|||
|
|
@ -1,7 +1,7 @@
|
|||
<?xml version="1.0" encoding="utf-8" standalone="yes" ?>
|
||||
<toggleable_menu name="Copy Paste Size Menu">
|
||||
<menu_item_call label="Kopiuj wszystko" name="psr_copy" />
|
||||
<menu_item_call label="Wklej rozmiar" name="size_copy" />
|
||||
<menu_item_call label="Kopiuj rozmiar" name="size_copy" />
|
||||
<menu_item_call label="Wklej wszystko" name="psr_paste" />
|
||||
<menu_item_call label="Wklej rozmiar" name="size_paste" />
|
||||
</toggleable_menu>
|
||||
|
|
|
|||
|
|
@ -6,12 +6,18 @@
|
|||
<pie_slice label="Usiądź tutaj" name="Pie Object Sit"/>
|
||||
<pie_slice label="Wstań" name="Object Stand Up"/>
|
||||
<pie_slice label="Kup" name="Buy..."/>
|
||||
<pie_slice label="Weź" name="Pie Object Take"/>
|
||||
<pie_menu label="Weź >" name="Take Submenu">
|
||||
<pie_slice label="Kopie jako: oddzielne obiekty" name="Take Copy Separate" />
|
||||
<pie_slice label="Weź kopię" name="Take Copy" />
|
||||
<pie_slice label="Weź" name="Take" />
|
||||
<pie_slice label="Jako: podniesione razem" name="Take combined" />
|
||||
<pie_slice label="Kopię jako: podniesione razem" name="Take Copy combined" />
|
||||
<pie_slice label="Jako: oddzielne obiekty" name="Take Separate" />
|
||||
</pie_menu>
|
||||
<pie_slice label="Zapłać" name="Pay..."/>
|
||||
<pie_menu label="Więcej >" name="Object Pie More 1">
|
||||
<pie_slice label="Usuń" name="Delete"/>
|
||||
<pie_slice label="Załóż" name="Wear"/>
|
||||
<pie_slice label="Weź kopię" name="Take Copy"/>
|
||||
<pie_menu label="Dołącz HUD >" name="Pie Object Attach HUD"/>
|
||||
<pie_menu label="Dołącz >" name="Pie Object Attach">
|
||||
<pie_menu label="Roz. szkielet >" name="Enhanced Skeleton">
|
||||
|
|
|
|||
|
|
@ -14,7 +14,7 @@
|
|||
<check_box label="Zachowaj proporcje" name="inventory_keep_aspect_check" />
|
||||
<check_box label="Tymczasowe" name="inventory_temp_upload" />
|
||||
<text name="hint_lbl">
|
||||
Aby zapisać je jako teksturę wybierz jeden z kwadratowych formatów.
|
||||
Zapisanie zdjęcia do Szafy kosztuje [UPLOAD_COST]L$. Aby zapisać je jako teksturę wybierz jeden z kwadratowych formatów.
|
||||
</text>
|
||||
<button label="▶ Wybór" name="cancel_btn" />
|
||||
<button label="Zapisz" name="save_btn" />
|
||||
|
|
|
|||
|
|
@ -5,7 +5,7 @@
|
|||
<button label="Zapisz na dysku twardym" name="save_to_computer_btn" />
|
||||
</layout_panel>
|
||||
<layout_panel name="lp_inventory">
|
||||
<button label="Zapisz do Szafy ([AMOUNT]L$)" name="save_to_inventory_btn" />
|
||||
<button label="Zapisz do Szafy " name="save_to_inventory_btn" />
|
||||
</layout_panel>
|
||||
<layout_panel name="lp_profile">
|
||||
<button label="Wrzuć na mój Kanał" name="save_to_profile_btn" />
|
||||
|
|
|
|||
|
|
@ -4,10 +4,10 @@
|
|||
Inventário
|
||||
</text>
|
||||
<text name="hint_lbl">
|
||||
Para salvar sua imagem como uma textura, selecione um dos formatos quadrados.
|
||||
Salvar uma imagem em seu inventário custa L$[UPLOAD_COST]. Para salvar sua imagem como uma textura, selecione um dos formatos quadrados.
|
||||
</text>
|
||||
<combo_box label="Resolução" name="texture_size_combo">
|
||||
<combo_box.item label="Janela ativa (512x512)" name="CurrentWindow"/>
|
||||
<combo_box.item label="Janela ativa" name="CurrentWindow"/>
|
||||
<combo_box.item label="Pequeno (128x128)" name="Small(128x128)"/>
|
||||
<combo_box.item label="Médio (256x256)" name="Medium(256x256)"/>
|
||||
<combo_box.item label="Grande (512x512)" name="Large(512x512)"/>
|
||||
|
|
|
|||
|
|
@ -1,7 +1,7 @@
|
|||
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
|
||||
<panel name="panel_snapshot_options">
|
||||
<button label="Salvar no disco" name="save_to_computer_btn"/>
|
||||
<button label="Salvar em inventário (L$[AMOUNT])" name="save_to_inventory_btn"/>
|
||||
<button label="Salvar em inventário" name="save_to_inventory_btn"/>
|
||||
<button label="Compartilhar no feed do perfil" name="save_to_profile_btn"/>
|
||||
<button label="Compartilhar no Facebook" name="send_to_facebook_btn"/>
|
||||
<button label="Compartilhar no Twitter" name="send_to_twitter_btn"/>
|
||||
|
|
|
|||
|
|
@ -6,12 +6,18 @@
|
|||
<pie_slice label="Сесть" name="Pie Object Sit"/>
|
||||
<pie_slice label="Встать" name="Object Stand Up"/>
|
||||
<pie_slice label="Купить" name="Buy..."/>
|
||||
<pie_slice label="Взять" name="Pie Object Take"/>
|
||||
<pie_menu label="Взять >" name="Take Submenu">
|
||||
<pie_slice label="Копии как отдельные предметы" name="Take Copy Separate" />
|
||||
<pie_slice label="Взять Копию" name="Take Copy" />
|
||||
<pie_slice label="Взять" name="Take" />
|
||||
<pie_slice label="Как комбинированный предмет" name="Take combined" />
|
||||
<pie_slice label="Копию как комбинированный предмет" name="Take Copy combined" />
|
||||
<pie_slice label="Как отдельные предметы" name="Take Separate" />
|
||||
</pie_menu>
|
||||
<pie_slice label="Заплатить" name="Pay..."/>
|
||||
<pie_menu label="Далее >" name="Object Pie More 1">
|
||||
<pie_slice label="Удалить" name="Delete"/>
|
||||
<pie_slice label="Надеть" name="Wear"/>
|
||||
<pie_slice label="Взять Копию" name="Take Copy"/>
|
||||
<pie_menu label="Добавить HUD >" name="Pie Object Attach HUD" />
|
||||
<pie_menu label="Прикрепить >" name="Pie Object Attach">
|
||||
<pie_menu label="Доп.Скелет >" name="Enhanced Skeleton">
|
||||
|
|
|
|||
|
|
@ -4,10 +4,10 @@
|
|||
Инвентарь
|
||||
</text>
|
||||
<text name="hint_lbl">
|
||||
Чтобы сохранить его как текстуру, выберите один из квадратных форматов.
|
||||
Сохранение изображения в инвентаре стоит L$[UPLOAD_COST]. Чтобы сохранить его как текстуру, выберите один из квадратных форматов.
|
||||
</text>
|
||||
<combo_box label="Размер" name="texture_size_combo">
|
||||
<combo_box.item label="Текущее окно (512x512)" name="CurrentWindow"/>
|
||||
<combo_box.item label="Текущее окно" name="CurrentWindow"/>
|
||||
<combo_box.item label="Маленький (128x128)" name="Small(128x128)"/>
|
||||
<combo_box.item label="Средний (256x256)" name="Medium(256x256)"/>
|
||||
<combo_box.item label="Большой (512x512)" name="Large(512x512)"/>
|
||||
|
|
|
|||
|
|
@ -5,7 +5,7 @@
|
|||
<button label="Сохранить на диск" name="save_to_computer_btn"/>
|
||||
</layout_panel>
|
||||
<layout_panel name="lp_inventory">
|
||||
<button label="В инвентарь (L$[AMOUNT])" name="save_to_inventory_btn"/>
|
||||
<button label="В инвентарь" name="save_to_inventory_btn"/>
|
||||
</layout_panel>
|
||||
<layout_panel name="lp_profile">
|
||||
<button label="Загрузить в профиль" name="save_to_profile_btn"/>
|
||||
|
|
|
|||
|
|
@ -4,10 +4,10 @@
|
|||
Envanter
|
||||
</text>
|
||||
<text name="hint_lbl">
|
||||
Görüntünüzü bir doku olarak kaydetmek için kare formatlardan birini seçin.
|
||||
Bir görüntüyü envanterinize kaydetmenin maliyeti L$[UPLOAD_COST] olur. Görüntünüzü bir doku olarak kaydetmek için kare formatlardan birini seçin.
|
||||
</text>
|
||||
<combo_box label="Çözünürlük" name="texture_size_combo">
|
||||
<combo_box.item label="Mevcut Pencere(512x512)" name="CurrentWindow"/>
|
||||
<combo_box.item label="Mevcut Pencere" name="CurrentWindow"/>
|
||||
<combo_box.item label="Küçük (128x128)" name="Small(128x128)"/>
|
||||
<combo_box.item label="Orta (256x256)" name="Medium(256x256)"/>
|
||||
<combo_box.item label="Büyük (512x512)" name="Large(512x512)"/>
|
||||
|
|
|
|||
|
|
@ -1,7 +1,7 @@
|
|||
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
|
||||
<panel name="panel_snapshot_options">
|
||||
<button label="Diske Kaydet" name="save_to_computer_btn"/>
|
||||
<button label="Envantere Kaydet (L$[AMOUNT])" name="save_to_inventory_btn"/>
|
||||
<button label="Envantere Kaydet" name="save_to_inventory_btn"/>
|
||||
<button label="Profil Akışında Paylaş" name="save_to_profile_btn"/>
|
||||
<button label="Facebook'ta Paylaş" name="send_to_facebook_btn"/>
|
||||
<button label="Twitter'da Paylaş" name="send_to_twitter_btn"/>
|
||||
|
|
|
|||
|
|
@ -4,10 +4,10 @@
|
|||
收納區
|
||||
</text>
|
||||
<text name="hint_lbl">
|
||||
若要將圖像存為材質,請選擇一個正方格式。
|
||||
將圖像儲存到收納區的費用為 L$[UPLOAD_COST]。 若要將圖像存為材質,請選擇一個正方格式。
|
||||
</text>
|
||||
<combo_box label="解析度" name="texture_size_combo">
|
||||
<combo_box.item label="目前視窗(512x512)" name="CurrentWindow"/>
|
||||
<combo_box.item label="目前視窗" name="CurrentWindow"/>
|
||||
<combo_box.item label="小(128x128)" name="Small(128x128)"/>
|
||||
<combo_box.item label="中(256x256)" name="Medium(256x256)"/>
|
||||
<combo_box.item label="大(512x512)" name="Large(512x512)"/>
|
||||
|
|
|
|||
|
|
@ -1,7 +1,7 @@
|
|||
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
|
||||
<panel name="panel_snapshot_options">
|
||||
<button label="儲存到硬碟" name="save_to_computer_btn"/>
|
||||
<button label="儲存到收納區(L$[AMOUNT])" name="save_to_inventory_btn"/>
|
||||
<button label="儲存到收納區" name="save_to_inventory_btn"/>
|
||||
<button label="分享至檔案訊息發佈" name="save_to_profile_btn"/>
|
||||
<button label="分享到臉書" name="send_to_facebook_btn"/>
|
||||
<button label="分享到推特" name="send_to_twitter_btn"/>
|
||||
|
|
|
|||
|
|
@ -1454,7 +1454,7 @@ class Darwin_x86_64_Manifest(ViewerManifest):
|
|||
self.path2basename(relpkgdir, "BugsplatMac.framework")
|
||||
|
||||
with self.prefix(dst="MacOS"):
|
||||
executable = self.dst_path_of("Firestorm")
|
||||
executable = self.dst_path_of(CHANNEL_VENDOR_BASE)
|
||||
if self.args.get('bugsplat'):
|
||||
# According to Apple Technical Note TN2206:
|
||||
# https://developer.apple.com/library/archive/technotes/tn2206/_index.html#//apple_ref/doc/uid/DTS40007919-CH1-TNTAG207
|
||||
|
|
@ -2151,7 +2151,7 @@ class LinuxManifest(ViewerManifest):
|
|||
self.path("ca-bundle.crt")
|
||||
|
||||
with self.prefix(src=os.path.join(pkgdir, 'lib', 'release'), dst="lib"):
|
||||
self.path("libfreetype.so*")
|
||||
# self.path("libfreetype.so*")
|
||||
self.path("libapr-1.so*")
|
||||
self.path("libaprutil-1.so*")
|
||||
#self.path("libboost_context-mt.so*")
|
||||
|
|
|
|||
Loading…
Reference in New Issue