diff options
author | Andrey Kleshchev <andreykproductengine@lindenlab.com> | 2022-06-02 00:17:54 +0300 |
---|---|---|
committer | Andrey Kleshchev <andreykproductengine@lindenlab.com> | 2022-06-02 00:20:30 +0300 |
commit | 3efe64619b772ce8cab596d7e74de48dcc7f6c20 (patch) | |
tree | b951db7f2784ab5af8301151b01cccff5a7bd0b0 /indra/newview/llpanelprofile.h | |
parent | d7459d87e0b7507b3452aa4effa4dc97e06e8551 (diff) |
SL-15312 Confirm usaved changes dialog when closing floater
Diffstat (limited to 'indra/newview/llpanelprofile.h')
-rw-r--r-- | indra/newview/llpanelprofile.h | 49 |
1 files changed, 32 insertions, 17 deletions
diff --git a/indra/newview/llpanelprofile.h b/indra/newview/llpanelprofile.h index 4985ec0015..5b30a6c536 100644 --- a/indra/newview/llpanelprofile.h +++ b/indra/newview/llpanelprofile.h @@ -75,27 +75,27 @@ public: LLPanelProfileSecondLife(); /*virtual*/ ~LLPanelProfileSecondLife(); - /*virtual*/ void onOpen(const LLSD& key); + void onOpen(const LLSD& key) override; /** * LLFriendObserver trigger */ - virtual void changed(U32 mask); + void changed(U32 mask) override; // Implements LLVoiceClientStatusObserver::onChange() to enable the call // button when voice is available - /*virtual*/ void onChange(EStatusType status, const std::string &channelURI, bool proximal); + void onChange(EStatusType status, const std::string &channelURI, bool proximal) override; - /*virtual*/ void setAvatarId(const LLUUID& avatar_id); + void setAvatarId(const LLUUID& avatar_id) override; - /*virtual*/ BOOL postBuild(); + BOOL postBuild() override; void resetData(); /** * Sends update data request to server. */ - /*virtual*/ void updateData(); + void updateData() override; void onAvatarNameCache(const LLUUID& agent_id, const LLAvatarName& av_name); @@ -103,6 +103,9 @@ public: void setProfileImageUploading(bool loading); void setProfileImageUploaded(const LLUUID &image_asset_id); + bool hasUnsavedChanges() override; + void commitUnsavedChanges() override; + friend void request_avatar_properties_coro(std::string cap_url, LLUUID agent_id); protected: @@ -171,7 +174,7 @@ protected: void processOnlineStatus(bool is_friend, bool show_online, bool online); private: - /*virtual*/ void setLoaded(); + void setLoaded() override; void onCommitMenu(const LLSD& userdata); bool onEnableMenu(const LLSD& userdata); bool onCheckMenu(const LLSD& userdata); @@ -208,6 +211,7 @@ private: LLHandle<LLFloater> mFloaterPermissionsHandle; + bool mHasUnsavedDescriptionChanges; bool mVoiceStatus; bool mWaitingForImageUpload; bool mAllowPublish; @@ -270,9 +274,9 @@ public: LLPanelProfileFirstLife(); /*virtual*/ ~LLPanelProfileFirstLife(); - /*virtual*/ void onOpen(const LLSD& key); + void onOpen(const LLSD& key) override; - /*virtual*/ BOOL postBuild(); + BOOL postBuild() override; void processProperties(const LLAvatarData* avatar_data); @@ -281,10 +285,13 @@ public: void setProfileImageUploading(bool loading); void setProfileImageUploaded(const LLUUID &image_asset_id); + bool hasUnsavedChanges() override { return mHasUnsavedChanges; } + void commitUnsavedChanges() override; + friend void request_avatar_properties_coro(std::string cap_url, LLUUID agent_id); protected: - /*virtual*/ void setLoaded(); + void setLoaded() override; void onChangePhoto(); void onRemovePhoto(); @@ -301,6 +308,7 @@ protected: LLButton* mDiscardChanges; std::string mCurrentDescription; + bool mHasUnsavedChanges; }; /** @@ -313,17 +321,20 @@ public: LLPanelProfileNotes(); /*virtual*/ ~LLPanelProfileNotes(); - virtual void setAvatarId(const LLUUID& avatar_id); + void setAvatarId(const LLUUID& avatar_id) override; - /*virtual*/ void onOpen(const LLSD& key); + void onOpen(const LLSD& key) override; - /*virtual*/ BOOL postBuild(); + BOOL postBuild() override; void processProperties(LLAvatarNotes* avatar_notes); void resetData(); - /*virtual*/ void updateData(); + void updateData() override; + + bool hasUnsavedChanges() override { return mHasUnsavedChanges; } + void commitUnsavedChanges() override; protected: void setNotesText(const std::string &text); @@ -336,6 +347,7 @@ protected: LLButton* mDiscardChanges; std::string mCurrentNotes; + bool mHasUnsavedChanges; }; @@ -349,16 +361,19 @@ public: LLPanelProfile(); /*virtual*/ ~LLPanelProfile(); - /*virtual*/ BOOL postBuild(); + BOOL postBuild() override; - /*virtual*/ void updateData(); + void updateData() override; - /*virtual*/ void onOpen(const LLSD& key); + void onOpen(const LLSD& key) override; void createPick(const LLPickData &data); void showPick(const LLUUID& pick_id = LLUUID::null); bool isPickTabSelected(); bool isNotesTabSelected(); + bool hasUnsavedChanges() override; + bool hasUnpublishedClassifieds(); + void commitUnsavedChanges() override; void showClassified(const LLUUID& classified_id = LLUUID::null, bool edit = false); |