From 8c2a6a691ad2d747d29db8d168783deb7ba91710 Mon Sep 17 00:00:00 2001 From: Dmitry Zaporozhan Date: Fri, 12 Feb 2010 13:41:34 +0200 Subject: Fixed low bug EXT-5166 - Undocked lldialogs respawn in chiclet tray. LLDialog floater position is saved per originating object. --HG-- branch : product-engine --- indra/newview/llscriptfloater.h | 35 +++++++++++++++++++++++++++++++---- 1 file changed, 31 insertions(+), 4 deletions(-) (limited to 'indra/newview/llscriptfloater.h') diff --git a/indra/newview/llscriptfloater.h b/indra/newview/llscriptfloater.h index f7efff83f9..f0d489dcf6 100644 --- a/indra/newview/llscriptfloater.h +++ b/indra/newview/llscriptfloater.h @@ -84,9 +84,9 @@ public: static std::string getObjectName(const LLUUID& notification_id); - /** - * Callback for notification toast buttons. - */ + /** + * Callback for notification toast buttons. + */ static void onToastButtonClick(const LLSD¬ification, const LLSD&response); typedef boost::signals2::signal object_signal_t; @@ -94,6 +94,16 @@ public: boost::signals2::connection addNewObjectCallback(const object_signal_t::slot_type& cb) { return mNewObjectSignal.connect(cb); } boost::signals2::connection addToggleObjectFloaterCallback(const object_signal_t::slot_type& cb) { return mToggleFloaterSignal.connect(cb); } + struct FloaterPositionInfo + { + LLRect mRect; + bool mDockState; + }; + + void saveFloaterPosition(const LLUUID& object_id, const FloaterPositionInfo& fpi); + + bool getFloaterPosition(const LLUUID& object_id, FloaterPositionInfo& fpi); + protected: typedef std::map object_type_map; @@ -111,6 +121,11 @@ private: object_signal_t mNewObjectSignal; object_signal_t mToggleFloaterSignal; + + // + typedef std::map floater_position_map_t; + + floater_position_map_t mFloaterPositions; }; /** @@ -141,7 +156,7 @@ public: const LLUUID& getNotificationId() { return mNotificationId; } - void setNotificationId(const LLUUID& id) { mNotificationId = id; } + void setNotificationId(const LLUUID& id); /** * Close notification if script floater is closed. @@ -158,6 +173,14 @@ public: */ /*virtual*/ void setVisible(BOOL visible); + bool getSavePosition() { return mSaveFloaterPosition; } + + void setSavePosition(bool save) { mSaveFloaterPosition = save; } + + void savePosition(); + + void restorePosition(); + protected: /** @@ -181,9 +204,13 @@ protected: /*virtual*/ void onFocusReceived(); + void dockToChiclet(bool dock); + private: LLToastNotifyPanel* mScriptForm; LLUUID mNotificationId; + LLUUID mObjectId; + bool mSaveFloaterPosition; }; #endif //LL_SCRIPTFLOATER_H -- cgit v1.2.3 From 074a5b65665938512920825ab026d1e592450909 Mon Sep 17 00:00:00 2001 From: Dmitry Zaporozhan Date: Fri, 12 Feb 2010 13:42:07 +0200 Subject: Removed old function declaration. --HG-- branch : product-engine --- indra/newview/llscriptfloater.h | 5 ----- 1 file changed, 5 deletions(-) (limited to 'indra/newview/llscriptfloater.h') diff --git a/indra/newview/llscriptfloater.h b/indra/newview/llscriptfloater.h index f0d489dcf6..ec3ec4b540 100644 --- a/indra/newview/llscriptfloater.h +++ b/indra/newview/llscriptfloater.h @@ -84,11 +84,6 @@ public: static std::string getObjectName(const LLUUID& notification_id); - /** - * Callback for notification toast buttons. - */ - static void onToastButtonClick(const LLSD¬ification, const LLSD&response); - typedef boost::signals2::signal object_signal_t; boost::signals2::connection addNewObjectCallback(const object_signal_t::slot_type& cb) { return mNewObjectSignal.connect(cb); } -- cgit v1.2.3