diff options
Diffstat (limited to 'indra/newview/llfloatereditextdaycycle.h')
-rw-r--r-- | indra/newview/llfloatereditextdaycycle.h | 157 |
1 files changed, 79 insertions, 78 deletions
diff --git a/indra/newview/llfloatereditextdaycycle.h b/indra/newview/llfloatereditextdaycycle.h index c67cfdd274..287d2fe2dc 100644 --- a/indra/newview/llfloatereditextdaycycle.h +++ b/indra/newview/llfloatereditextdaycycle.h @@ -31,13 +31,18 @@ #include "llsettingsdaycycle.h" #include <boost/signals2.hpp> +#include "llenvironment.h" + class LLCheckBoxCtrl; class LLComboBox; +class LLFlyoutComboBtnCtrl; class LLLineEditor; class LLMultiSliderCtrl; class LLTextBox; class LLTimeCtrl; +class LLInventoryItem; + typedef std::shared_ptr<LLSettingsBase> LLSettingsBasePtr_t; /** @@ -48,114 +53,110 @@ class LLFloaterEditExtDayCycle : public LLFloater LOG_CLASS(LLFloaterEditExtDayCycle); public: + // **RIDER** + static const std::string KEY_INVENTORY_ID; + static const std::string KEY_LIVE_ENVIRONMENT; + static const std::string KEY_DAY_LENGTH; + // **RIDER** + typedef boost::signals2::signal<void(LLSettingsDay::ptr_t)> edit_commit_signal_t; typedef boost::signals2::connection connection_t; - LLFloaterEditExtDayCycle(const LLSD &key); - - BOOL postBuild(); - void onOpen(const LLSD& key); - void onClose(bool app_quitting); + LLFloaterEditExtDayCycle(const LLSD &key); + ~LLFloaterEditExtDayCycle(); + //void openFloater(LLSettingsDay::ptr_t settings, S64Seconds daylength = S64Seconds(0), S64Seconds dayoffset = S64Seconds(0)); - /*TEMP*/ - void onUpload(); + BOOL postBuild(); + void onOpen(const LLSD& key); + void onClose(bool app_quitting); void onVisibilityChange(BOOL new_visibility); -// /*virtual*/ void draw(); connection_t setEditCommitSignal(edit_commit_signal_t::slot_type cb); private: -// /// sync the time slider with day cycle structure -// void syncTimeSlider(); -// -// // makes sure key slider has what's in day cycle -// void loadTrack(); -// -// /// makes sure day cycle data structure has what's in menu -// void applyTrack(); -// -// /// refresh the sky presets combobox - - void onBtnSave(); + // flyout response/click + void onButtonApply(LLUICtrl *ctrl, const LLSD &data); void onBtnCancel(); void onAddTrack(); void onRemoveTrack(); void onCommitName(class LLLineEditor* caller, void* user_data); void onTrackSelectionCallback(const LLSD& user_data); - void onTimeSliderMoved(); /// time slider moved - void onFrameSliderCallback(); /// a frame moved or frame selection changed + // time slider moved + void onTimeSliderMoved(); + // a frame moved or frame selection changed + void onFrameSliderCallback(); void selectTrack(U32 track_index); + void clearTabs(); void updateTabs(); - void updateSkyTabs(); - void updateWaterTabs(); + void updateWaterTabs(const LLSettingsWaterPtr_t &p_water); + void updateSkyTabs(const LLSettingsSkyPtr_t &p_sky); + void setWaterTabsEnabled(BOOL enable); + void setSkyTabsEnabled(BOOL enable); + void updateButtons(); void updateSlider(); //track to slider - void addSliderFrame(const F32 frame, LLSettingsBase::ptr_t setting); + void updateTimeAndLabel(); + void addSliderFrame(const F32 frame, LLSettingsBase::ptr_t &setting, bool update_ui = true); void removeCurrentSliderFrame(); - //void updateTrack(); // slider->track, todo: better name - -// /// refresh the day cycle combobox -// void refreshDayCyclesList(); -// -// /// add a slider to the track -// -// void initCallbacks(); -// // LLWLParamKey getSelectedDayCycle(); -// bool isNewDay() const; -// void dumpTrack(); -// void enableEditing(bool enable); -// void reset(); -// void saveRegionDayCycle(); -// -// void setApplyProgress(bool started); -// bool getApplyProgress() const; -// -// void onKeyTimeChanged(); /// a key frame's time changed -// void onAddKey(); /// new key added on slider -// void onDeleteKey(); /// a key frame deleted -// -// void onRegionSettingsChange(); -// void onRegionChange(); -// void onRegionSettingsApplied(bool success); -// void onRegionInfoUpdate(); -// -// void onDayCycleNameEdited(); -// void onDayCycleSelected(); -// -// bool onSaveAnswer(const LLSD& notification, const LLSD& response); -// void onSaveConfirmed(); -// -// void onDayCycleListChange(); -// void onSkyPresetListChange(); -// -// static std::string getRegionName(); - - LLSettingsDay::ptr_t mSavedDay; - LLSettingsDay::ptr_t mEditDay; + + // **RIDER** + void loadInventoryItem(const LLUUID &inventoryId); + void onAssetLoaded(LLUUID asset_id, LLSettingsBase::ptr_t settings, S32 status); + void loadLiveEnvironment(LLEnvironment::EnvSelection_t env); + + void updateEditEnvironment(); + void syncronizeTabs(); + void reblendSettings(); + // **RIDER** + + // data for restoring previous displayed environment + + S32 mSavedEnvironment; + + LLSettingsDay::ptr_t mEditDay; // edited copy + LLSettingsDay::ptr_t mOriginalDay; // the one we are editing S64Seconds mDayLength; - S64Seconds mDayOffset; U32 mCurrentTrack; std::string mLastFrameSlider; - LLButton* mSaveButton; LLButton* mCancelButton; - LLButton* mUploadButton; + LLButton* mAddFrameButton; + LLButton* mDeleteFrameButton; + + LLMultiSliderCtrl* mTimeSlider; + LLMultiSliderCtrl* mFramesSlider; + LLView* mSkyTabLayoutContainer; + LLView* mWaterTabLayoutContainer; + LLTextBox* mCurrentTimeLabel; + + // **RIDER** + LLUUID mInventoryId; + LLInventoryItem * mInventoryItem; + LLEnvironment::EnvSelection_t mEditingEnv; + LLTrackBlenderLoopingManual::ptr_t mSkyBlender; + LLTrackBlenderLoopingManual::ptr_t mWaterBlender; + LLSettingsSky::ptr_t mScratchSky; + LLSettingsWater::ptr_t mScratchWater; + // **RIDER** + + LLFlyoutComboBtnCtrl * mFlyoutControl; edit_commit_signal_t mCommitSignal; - LLMultiSliderCtrl* mTimeSlider; - LLMultiSliderCtrl* mFramesSlider; - LLView* mSkyTabLayoutContainer; - LLView* mWaterTabLayoutContainer; - LLTextBox* mCurrentTimeLabel; - - // map of sliders to parameters - typedef std::pair<F32, LLSettingsBase::ptr_t> framedata_t; - typedef std::map<std::string, framedata_t> keymap_t; - keymap_t mSliderKeyMap; + // For map of sliders to parameters + class FrameData + { + public: + FrameData() : mFrame(0) {}; + FrameData(F32 frame, LLSettingsBase::ptr_t settings) : mFrame(frame), pSettings(settings) {}; + F32 mFrame; + LLSettingsBase::ptr_t pSettings; + }; + typedef std::map<std::string, FrameData> keymap_t; + keymap_t mSliderKeyMap; //slider's keys vs old_frames&settings, shadows mFramesSlider }; #endif // LL_LLFloaterEditExtDayCycle_H |