diff --git a/.github/workflows/build_viewer.yml b/.github/workflows/build_viewer.yml
index 5c8697fc82..790502eb8a 100644
--- a/.github/workflows/build_viewer.yml
+++ b/.github/workflows/build_viewer.yml
@@ -35,12 +35,9 @@ jobs:
build_matrix:
strategy:
matrix:
- os: [macos-15,ubuntu-24.04,windows-2022]
+ os: [macos-15,ubuntu-22.04,windows-2022]
grid: [sl,os]
variant: [regular, avx]
- include:
- - os: ubuntu-24.04
- container_image: ubuntu:22.04 # only Linux uses a container
runs-on: ${{ matrix.os }}
container: ${{ matrix.container_image }}
outputs:
@@ -62,16 +59,39 @@ jobs:
echo "$(brew --prefix)/opt/gnu-sed/libexec/gnubin" >> $GITHUB_PATH
- uses: actions/checkout@v4
- - uses: actions/setup-python@v5
- id: py311
+ # Use apt-based Python when inside the Ubuntu 22.04 container
+ - name: Install Python 3.11 (container case)
+ if: matrix.container_image == 'ubuntu:22.04'
+ id: py311_apt
+ run: |
+ apt-get update
+ DEBIAN_FRONTEND=noninteractive apt-get install -y \
+ python3.11 python3.11-venv python3-pip python-is-python3
+ python3.11 -m pip install --upgrade pip setuptools wheel
+ echo "python-path=$(command -v python3.11)" >> "$GITHUB_OUTPUT"
+ # Use setup-python for all other jobs
+ - name: Set up Python (normal case)
+ if: matrix.container_image != 'ubuntu:22.04'
+ id: py311_setup
+ uses: actions/setup-python@v5
with:
python-version: '3.11'
-
+ check-latest: true
+ - name: resolve python path
+ id: py311
+ shell: bash
+ run: |
+ if [ -n "${{ steps.py311_apt.outputs.python-path }}" ]; then
+ PY="${{ steps.py311_apt.outputs.python-path }}"
+ else
+ PY="${{ steps.py311_setup.outputs.python-path }}"
+ fi
+ echo "python-path=$PY" >> "$GITHUB_OUTPUT"
+ echo "Resolved Python at: $PY"
- name: Set PYTHON environment for CMake
run: |
echo "PYTHON=${{ steps.py311.outputs.python-path }}" >> $GITHUB_ENV
shell: bash
-
- name: Install python requirements
run: |
python3 -m pip install -r requirements.txt
@@ -105,17 +125,16 @@ jobs:
with:
swap-storage: false
- - name: Install GCC-14
+ - name: Install GCC-13
if: runner.os == 'Linux'
run: |
sudo apt-get update
- sudo apt-get install -y software-properties-common
sudo add-apt-repository -y ppa:ubuntu-toolchain-r/test
- sudo apt-get update
- sudo apt-get install -y gcc-14 g++-14
- echo "CC=gcc-14" >> $GITHUB_ENV
- echo "CXX=g++-14" >> $GITHUB_ENV
-
+ sudo apt-get install -y gcc-13 g++-13
+ sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-13 130 \
+ --slave /usr/bin/g++ g++ /usr/bin/g++-13
+ echo "CC=gcc-13" >> $GITHUB_ENV
+ echo "CXX=g++-13" >> $GITHUB_ENV
- name: Setup rclone and download the folder
uses: beqjanus/setup-rclone@main
with:
diff --git a/indra/llui/llfloater.cpp b/indra/llui/llfloater.cpp
index c33bf14354..548ee2037d 100644
--- a/indra/llui/llfloater.cpp
+++ b/indra/llui/llfloater.cpp
@@ -338,8 +338,10 @@ void LLFloater::initFloater(const Params& p)
// Help button: '?'
//SL-14050 Disable all Help question marks
- // Nope!
- mButtonsEnabled[BUTTON_HELP] = !mHelpTopic.empty();// false;
+ // Disable the help button only if the debug setting is on
+ static LLUICachedControl hide_help_buttons ("FSHideHelpButtons", false);
+ mButtonsEnabled[BUTTON_HELP] = !mHelpTopic.empty() && !hide_help_buttons;// false;
+ //
// Minimize button only for top draggers
if ( !mDragOnLeft && mCanMinimize )
diff --git a/indra/newview/app_settings/settings.xml b/indra/newview/app_settings/settings.xml
index 48bf1bb2f3..4e7f801f1c 100644
--- a/indra/newview/app_settings/settings.xml
+++ b/indra/newview/app_settings/settings.xml
@@ -26927,5 +26927,16 @@ Change of this parameter will affect the layout of buttons in notification toast
0
+ FSHideHelpButtons
+
diff --git a/indra/newview/llfloaterworldmap.cpp b/indra/newview/llfloaterworldmap.cpp
index 85bff9a29e..71a3aa0c01 100644
--- a/indra/newview/llfloaterworldmap.cpp
+++ b/indra/newview/llfloaterworldmap.cpp
@@ -632,8 +632,9 @@ void LLFloaterWorldMap::reshape( S32 width, S32 height, bool called_from_parent
void LLFloaterWorldMap::draw()
{
// Performance improvement
- static LLView* show_destination_btn = getChildView("Show Destination");
- static LLUICtrl* zoom_slider = getChild("zoom slider");
+ static LLView* show_destination_btn = getChildView("Show Destination");
+ static LLUICtrl* zoom_slider = getChild("zoom slider");
+ static LLButton* track_region_btn = getChild("track_region");
// Performance improvement
static LLUIColor map_track_color = LLUIColorTable::instance().getColor("MapTrackColor", LLColor4::white);
@@ -709,7 +710,7 @@ void LLFloaterWorldMap::draw()
mGoHomeButton->setEnabled((!rlv_handler_t::isEnabled()) || !(gRlvHandler.hasBehaviour(RLV_BHVR_TPLM) && gRlvHandler.hasBehaviour(RLV_BHVR_TPLOC)));
// Performance improvement
// Alchemy region tracker
- getChild("track_region")->setEnabled((bool) tracking_status || LLWorldMap::getInstance()->isTracking());
+ track_region_btn->setEnabled((bool) tracking_status || LLWorldMap::getInstance()->isTracking());
setMouseOpaque(true);
getDragHandle()->setMouseOpaque(true);
@@ -1270,13 +1271,13 @@ void LLFloaterWorldMap::buildAvatarIDList()
//}
std::multimap buddymap;
- for(; it != end; ++it)
+ for (; it != end; ++it)
{
- buddymap.insert(std::make_pair((*it).second, (*it).first));
+ buddymap.emplace(it->second, it->first);
}
- for (std::multimap::iterator bit = buddymap.begin(); bit != buddymap.end(); ++bit)
+ for (const auto& [name, id] : buddymap)
{
- mFriendCombo->addSimpleElement((*bit).first, ADD_BOTTOM, (*bit).second);
+ mFriendCombo->addSimpleElement(name, ADD_BOTTOM, id);
}
//
@@ -1331,11 +1332,11 @@ void LLFloaterWorldMap::buildLandmarkIDLists()
// Filter duplicate landmarks on world map
if (filterLandmarks)
{
- if (used_landmarks.find(item->getAssetUUID()) != used_landmarks.end())
+ if (used_landmarks.contains(item->getAssetUUID()))
{
continue;
}
- used_landmarks.insert(item->getAssetUUID());
+ used_landmarks.emplace(item->getAssetUUID());
}
//
@@ -1982,7 +1983,7 @@ void LLFloaterWorldMap::updateSims(bool found_null_sim)
if (num_results > 0)
{
- // Ansariel: Let's sort the list to make it more user-friendly
+ // Let's sort the list to make it more user-friendly
mSearchResults->sortByColumn("sim_name", true);
// if match found, highlight it and go
diff --git a/indra/newview/llnetmap.cpp b/indra/newview/llnetmap.cpp
index 09f7ec42a6..13370a4cca 100644
--- a/indra/newview/llnetmap.cpp
+++ b/indra/newview/llnetmap.cpp
@@ -318,12 +318,12 @@ void LLNetMap::draw()
}
// : Synchronize netmap scale throughout instances
-// Aurora Sim
+ // Aurora Sim
if (!LLWorld::getInstance()->getAllowMinimap())
{
return;
}
-// Aurora Sim
+ // Aurora Sim
static LLUIColor map_avatar_color = LLUIColorTable::instance().getColor("MapAvatarColor", LLColor4::white);
static LLUIColor map_track_color = LLUIColorTable::instance().getColor("MapTrackColor", LLColor4::white);
@@ -699,7 +699,9 @@ void LLNetMap::draw()
// Draw avatars
for (U32 i = 0; i < avatar_ids.size(); i++)
{
- LLUUID uuid = avatar_ids[i];
+ // Performance improvement
+ //LLUUID uuid = avatar_ids[i];
+ const LLUUID& uuid = avatar_ids.at(i);
// Skip self, we'll draw it later
if (uuid == gAgent.getID()) continue;
@@ -872,8 +874,8 @@ void LLNetMap::draw()
F32 ctr_x = (F32)center_sw_left;
F32 ctr_y = (F32)center_sw_bottom;
- const F32 steps_per_circle = 40.0f;
- const F32 steps_per_radian = steps_per_circle / F_TWO_PI;
+ constexpr F32 steps_per_circle = 40.0f;
+ constexpr F32 steps_per_radian = steps_per_circle / F_TWO_PI;
const F32 arc_start = -(horiz_fov / 2.0f) + F_PI_BY_TWO;
const F32 arc_end = (horiz_fov / 2.0f) + F_PI_BY_TWO;
const S32 steps = llmax(1, (S32)((horiz_fov * steps_per_radian) + 0.5f));
@@ -1958,8 +1960,7 @@ void LLNetMap::handleClearMarks()
// static
bool LLNetMap::getAvatarMarkColor(const LLUUID& avatar_id, LLColor4& color)
{
- avatar_marks_map_t::iterator found = sAvatarMarksMap.find(avatar_id);
- if (found != sAvatarMarksMap.end())
+ if (auto found = sAvatarMarksMap.find(avatar_id); found != sAvatarMarksMap.end())
{
color = found->second;
return true;
@@ -2025,8 +2026,7 @@ LLColor4 LLNetMap::getAvatarColor(const LLUUID& avatar_id)
cs_instance.hasFriendColorThatShouldShow(avatar_id, ContactSetType::MINIMAP, color);
// Mark Avatars with special colors
- avatar_marks_map_t::iterator found = sAvatarMarksMap.find(avatar_id);
- if (found != sAvatarMarksMap.end())
+ if (auto found = sAvatarMarksMap.find(avatar_id); found != sAvatarMarksMap.end())
{
color = found->second;
}
diff --git a/indra/newview/particleeditor.cpp b/indra/newview/particleeditor.cpp
index 5f8e591dc7..70fab5970d 100644
--- a/indra/newview/particleeditor.cpp
+++ b/indra/newview/particleeditor.cpp
@@ -22,8 +22,6 @@
#include "llviewerprecompiledheaders.h"
#include "particleeditor.h"
-#include
-
#include "llagent.h"
#include "llappviewer.h"
#include "llcheckboxctrl.h"
@@ -47,10 +45,7 @@
#include "llwindow.h"
#include "llviewerassetupload.h"
-ParticleEditor::ParticleEditor(const LLSD& key)
-: LLFloater(key),
- mObject(0),
- mParticleScriptInventoryItem(0)
+ParticleEditor::ParticleEditor(const LLSD& key) : LLFloater(key)
{
mPatternMap["drop"] = LLPartSysData::LL_PART_SRC_PATTERN_DROP;
mPatternMap["explode"] = LLPartSysData::LL_PART_SRC_PATTERN_EXPLODE;
@@ -325,11 +320,11 @@ void ParticleEditor::updateUI()
bool targetLinear = mTargetLinearCheckBox->getValue();
bool interpolateColor = mInterpolateColorCheckBox->getValue();
bool interpolateScale = mInterpolateScaleCheckBox->getValue();
- bool targetEnabled = targetLinear | (mTargetPositionCheckBox->getValue().asBoolean() ? true : false);
+ bool targetEnabled = targetLinear || (mTargetPositionCheckBox->getValue().asBoolean() ? true : false);
- mBurstRadiusSpinner->setEnabled(!(targetLinear | (mFollowSourceCheckBox->getValue().asBoolean() ? true : false) | dropPattern));
- mBurstSpeedMinSpinner->setEnabled(!(targetLinear | dropPattern));
- mBurstSpeedMaxSpinner->setEnabled(!(targetLinear | dropPattern));
+ mBurstRadiusSpinner->setEnabled(!targetLinear && !(mFollowSourceCheckBox->getValue().asBoolean() ? true : false) && !dropPattern);
+ mBurstSpeedMinSpinner->setEnabled(!targetLinear && !dropPattern);
+ mBurstSpeedMaxSpinner->setEnabled(!targetLinear && !dropPattern);
// disabling a color swatch does nothing visually, so we also set alpha
LLColor4 endColor = mEndColorSelector->get();
@@ -355,8 +350,8 @@ void ParticleEditor::updateUI()
mOmegaYSpinner->setEnabled(!targetLinear);
mOmegaZSpinner->setEnabled(!targetLinear);
- mAngleBeginSpinner->setEnabled(!(explodePattern | dropPattern));
- mAngleEndSpinner->setEnabled(!(explodePattern | dropPattern));
+ mAngleBeginSpinner->setEnabled(!explodePattern && !dropPattern);
+ mAngleEndSpinner->setEnabled(!explodePattern && !dropPattern);
}
void ParticleEditor::onClearTargetButtonClicked()
@@ -369,15 +364,13 @@ void ParticleEditor::onTargetPickerButtonClicked()
{
mPickTargetButton->setToggleState(true);
mPickTargetButton->setEnabled(false);
- startPicking(this);
+ startPicking();
}
// inspired by the LLFloaterReporter object picker
-// static
-void ParticleEditor::startPicking(void* userdata)
+void ParticleEditor::startPicking()
{
- ParticleEditor* self = (ParticleEditor*) userdata;
- LLToolObjPicker::getInstance()->setExitCallback(ParticleEditor::onTargetPicked, self);
+ LLToolObjPicker::getInstance()->setExitCallback(ParticleEditor::onTargetPicked, this);
LLToolMgr::getInstance()->setTransientTool(LLToolObjPicker::getInstance());
}
@@ -386,14 +379,12 @@ void ParticleEditor::onTargetPicked(void* userdata)
{
ParticleEditor* self = (ParticleEditor*)userdata;
- LLUUID picked = LLToolObjPicker::getInstance()->getObjectID();
-
LLToolMgr::getInstance()->clearTransientTool();
self->mPickTargetButton->setEnabled(true);
self->mPickTargetButton->setToggleState(false);
- if (picked.notNull())
+ if (LLUUID picked = LLToolObjPicker::getInstance()->getObjectID(); picked.notNull())
{
self->mTargetKeyInput->setValue(picked.asString());
self->onParameterChange();
@@ -522,8 +513,7 @@ default\n\
void ParticleEditor::onCopyButtonClicked()
{
- std::string script = createScript();
- if (!script.empty())
+ if (std::string script = createScript(); !script.empty())
{
getWindow()->copyTextToClipboard(utf8str_to_wstring(script));
LLNotificationsUtil::add("ParticleScriptCopiedToClipboard");
@@ -608,9 +598,7 @@ void ParticleEditor::callbackReturned(const LLUUID& inventoryItemID)
gInventory.notifyObservers();
//caps import
- std::string url = gAgent.getRegionCapability("UpdateScriptAgent");
-
- if (!url.empty())
+ if (std::string url = gAgent.getRegionCapability("UpdateScriptAgent"); !url.empty())
{
std::string script = createScript();
@@ -633,30 +621,23 @@ void ParticleEditor::callbackReturned(const LLUUID& inventoryItemID)
void ParticleEditor::scriptInjectReturned()
{
setCanClose(true);
+ mMainPanel->setEnabled(true);
// play it safe, because some time may have passed
- LLViewerObject* object = gObjectList.findObject(mObject->getID());
- if (!object || mObject->isDead())
+ if (LLViewerObject* object = gObjectList.findObject(mObject->getID()); object && mObject&& !mObject->isDead())
+ {
+ mObject->saveScript(mParticleScriptInventoryItem, true, false);
+ LLNotificationsUtil::add("ParticleScriptInjected");
+ }
+ else
{
LL_WARNS() << "Can't inject script - object is dead or went away!" << LL_ENDL;
- mMainPanel->setEnabled(true);
- return;
}
-
- mObject->saveScript(mParticleScriptInventoryItem, true, false);
- LLNotificationsUtil::add("ParticleScriptInjected");
-
- delete this;
}
// ---------------------------------- Callbacks ----------------------------------
-ParticleScriptCreationCallback::ParticleScriptCreationCallback(ParticleEditor* editor)
-{
- mEditor = editor;
-}
-
-ParticleScriptCreationCallback::~ParticleScriptCreationCallback()
+ParticleScriptCreationCallback::ParticleScriptCreationCallback(ParticleEditor* editor) : mEditor(editor)
{
}
diff --git a/indra/newview/particleeditor.h b/indra/newview/particleeditor.h
index d0865d8644..c930866822 100644
--- a/indra/newview/particleeditor.h
+++ b/indra/newview/particleeditor.h
@@ -43,117 +43,117 @@ class ParticleEditor : public LLFloater
friend class ParticleScriptCreationCallback;
friend class ParticleScriptUploadResponder;
- public:
- ParticleEditor(const LLSD& key);
- ~ParticleEditor();
+public:
+ ParticleEditor(const LLSD& key);
+ ~ParticleEditor();
- bool postBuild() override;
+ bool postBuild() override;
- void setObject(LLViewerObject* objectp);
- void scriptInjectReturned( );
+ void setObject(LLViewerObject* objectp);
+ void scriptInjectReturned();
- protected:
- void clearParticles();
- void updateParticles();
- void updateUI();
+protected:
+ void clearParticles();
+ void updateParticles();
+ void updateUI();
- std::string createScript();
- void createScriptInventoryItem(LLUUID categoryID);
+ std::string createScript();
+ void createScriptInventoryItem(LLUUID categoryID);
- void onParameterChange();
- void onCopyButtonClicked();
- void onInjectButtonClicked();
+ void onParameterChange();
+ void onCopyButtonClicked();
+ void onInjectButtonClicked();
- void onClearTargetButtonClicked();
- void onTargetPickerButtonClicked();
- static void startPicking(void* userdata);
- static void onTargetPicked(void* userdata);
+ void onClearTargetButtonClicked();
+ void onTargetPickerButtonClicked();
+ void startPicking();
+ static void onTargetPicked(void* userdata);
- void callbackReturned(const LLUUID& inv_item);
+ void callbackReturned(const LLUUID& inv_item);
- std::string lslVector(F32 x, F32 y, F32 z);
- std::string lslColor(const LLColor4& color);
+ std::string lslVector(F32 x, F32 y, F32 z);
+ std::string lslColor(const LLColor4& color);
- LLViewerObject* mObject;
- LLViewerTexture* mTexture;
- LLViewerInventoryItem* mParticleScriptInventoryItem;
+ LLViewerObject* mObject{ nullptr };
+ LLViewerTexture* mTexture{ nullptr };
+ LLViewerInventoryItem* mParticleScriptInventoryItem{ nullptr };
- LLViewerTexture* mDefaultParticleTexture;
+ LLViewerTexture* mDefaultParticleTexture{ nullptr };
- LLPartSysData mParticles;
+ LLPartSysData mParticles;
- std::map mPatternMap;
- std::map mScriptPatternMap;
+ std::map mPatternMap;
+ std::map mScriptPatternMap;
- std::map mBlendMap;
- std::map mScriptBlendMap;
+ std::map mBlendMap;
+ std::map mScriptBlendMap;
- LLPanel* mMainPanel;
+ LLPanel* mMainPanel{ nullptr };
- LLComboBox* mPatternTypeCombo;
- LLTextureCtrl* mTexturePicker;
+ LLComboBox* mPatternTypeCombo{ nullptr };
+ LLTextureCtrl* mTexturePicker{ nullptr };
- LLSpinCtrl* mBurstRateSpinner;
- LLSpinCtrl* mBurstCountSpinner;
- LLSpinCtrl* mBurstRadiusSpinner;
- LLSpinCtrl* mAngleBeginSpinner;
- LLSpinCtrl* mAngleEndSpinner;
- LLSpinCtrl* mBurstSpeedMinSpinner;
- LLSpinCtrl* mBurstSpeedMaxSpinner;
- LLSpinCtrl* mStartAlphaSpinner;
- LLSpinCtrl* mEndAlphaSpinner;
- LLSpinCtrl* mScaleStartXSpinner;
- LLSpinCtrl* mScaleStartYSpinner;
- LLSpinCtrl* mScaleEndXSpinner;
- LLSpinCtrl* mScaleEndYSpinner;
- LLSpinCtrl* mSourceMaxAgeSpinner;
- LLSpinCtrl* mParticlesMaxAgeSpinner;
- LLSpinCtrl* mStartGlowSpinner;
- LLSpinCtrl* mEndGlowSpinner;
+ LLSpinCtrl* mBurstRateSpinner{ nullptr };
+ LLSpinCtrl* mBurstCountSpinner{ nullptr };
+ LLSpinCtrl* mBurstRadiusSpinner{ nullptr };
+ LLSpinCtrl* mAngleBeginSpinner{ nullptr };
+ LLSpinCtrl* mAngleEndSpinner{ nullptr };
+ LLSpinCtrl* mBurstSpeedMinSpinner{ nullptr };
+ LLSpinCtrl* mBurstSpeedMaxSpinner{ nullptr };
+ LLSpinCtrl* mStartAlphaSpinner{ nullptr };
+ LLSpinCtrl* mEndAlphaSpinner{ nullptr };
+ LLSpinCtrl* mScaleStartXSpinner{ nullptr };
+ LLSpinCtrl* mScaleStartYSpinner{ nullptr };
+ LLSpinCtrl* mScaleEndXSpinner{ nullptr };
+ LLSpinCtrl* mScaleEndYSpinner{ nullptr };
+ LLSpinCtrl* mSourceMaxAgeSpinner{ nullptr };
+ LLSpinCtrl* mParticlesMaxAgeSpinner{ nullptr };
+ LLSpinCtrl* mStartGlowSpinner{ nullptr };
+ LLSpinCtrl* mEndGlowSpinner{ nullptr };
- LLComboBox* mBlendFuncSrcCombo;
- LLComboBox* mBlendFuncDestCombo;
+ LLComboBox* mBlendFuncSrcCombo{ nullptr };
+ LLComboBox* mBlendFuncDestCombo{ nullptr };
- LLCheckBoxCtrl* mBounceCheckBox;
- LLCheckBoxCtrl* mEmissiveCheckBox;
- LLCheckBoxCtrl* mFollowSourceCheckBox;
- LLCheckBoxCtrl* mFollowVelocityCheckBox;
- LLCheckBoxCtrl* mInterpolateColorCheckBox;
- LLCheckBoxCtrl* mInterpolateScaleCheckBox;
- LLCheckBoxCtrl* mTargetPositionCheckBox;
- LLCheckBoxCtrl* mTargetLinearCheckBox;
- LLCheckBoxCtrl* mWindCheckBox;
- LLCheckBoxCtrl* mRibbonCheckBox;
+ LLCheckBoxCtrl* mBounceCheckBox{ nullptr };
+ LLCheckBoxCtrl* mEmissiveCheckBox{ nullptr };
+ LLCheckBoxCtrl* mFollowSourceCheckBox{ nullptr };
+ LLCheckBoxCtrl* mFollowVelocityCheckBox{ nullptr };
+ LLCheckBoxCtrl* mInterpolateColorCheckBox{ nullptr };
+ LLCheckBoxCtrl* mInterpolateScaleCheckBox{ nullptr };
+ LLCheckBoxCtrl* mTargetPositionCheckBox{ nullptr };
+ LLCheckBoxCtrl* mTargetLinearCheckBox{ nullptr };
+ LLCheckBoxCtrl* mWindCheckBox{ nullptr };
+ LLCheckBoxCtrl* mRibbonCheckBox{ nullptr };
- LLLineEditor* mTargetKeyInput;
- LLButton* mClearTargetButton;
- LLButton* mPickTargetButton;
+ LLLineEditor* mTargetKeyInput{ nullptr };
+ LLButton* mClearTargetButton{ nullptr };
+ LLButton* mPickTargetButton{ nullptr };
- LLSpinCtrl* mAcellerationXSpinner;
- LLSpinCtrl* mAcellerationYSpinner;
- LLSpinCtrl* mAcellerationZSpinner;
+ LLSpinCtrl* mAcellerationXSpinner{ nullptr };
+ LLSpinCtrl* mAcellerationYSpinner{ nullptr };
+ LLSpinCtrl* mAcellerationZSpinner{ nullptr };
- LLSpinCtrl* mOmegaXSpinner;
- LLSpinCtrl* mOmegaYSpinner;
- LLSpinCtrl* mOmegaZSpinner;
+ LLSpinCtrl* mOmegaXSpinner{ nullptr };
+ LLSpinCtrl* mOmegaYSpinner{ nullptr };
+ LLSpinCtrl* mOmegaZSpinner{ nullptr };
- LLColorSwatchCtrl* mStartColorSelector;
- LLColorSwatchCtrl* mEndColorSelector;
+ LLColorSwatchCtrl* mStartColorSelector{ nullptr };
+ LLColorSwatchCtrl* mEndColorSelector{ nullptr };
- LLButton* mCopyToLSLButton;
- LLButton* mInjectScriptButton;
+ LLButton* mCopyToLSLButton{ nullptr };
+ LLButton* mInjectScriptButton{ nullptr };
};
class ParticleScriptCreationCallback : public LLInventoryCallback
{
- public:
- ParticleScriptCreationCallback(ParticleEditor* editor);
- void fire(const LLUUID& inventoryItem);
+public:
+ ParticleScriptCreationCallback(ParticleEditor* editor);
+ void fire(const LLUUID& inventoryItem);
- protected:
- ~ParticleScriptCreationCallback();
+protected:
+ ~ParticleScriptCreationCallback() = default;
- ParticleEditor* mEditor;
+ ParticleEditor* mEditor;
};
#endif // PARTICLEEDITOR_H