diff --git a/indra/llcommon/llsys.cpp b/indra/llcommon/llsys.cpp index 0272c55db21a812978de298b25463be1dd13429b..36fec973b3ba220edb98591f1fc97ecc78720ea3 100644 --- a/indra/llcommon/llsys.cpp +++ b/indra/llcommon/llsys.cpp @@ -775,6 +775,35 @@ void LLMemoryInfo::stream(std::ostream& s) const #endif } +S32 LLDisplayInfo::getDisplayWidth() const +{ +#if LL_WINDOWS + return ::GetSystemMetrics(SM_CXVIRTUALSCREEN); +#elif LL_DARWIN + return 1024; //*FIXME +#elif LL_SOLARIS + return 1024; //*FIXME +else + return 1024; //*FIXME +#endif + return 1024; // to make compiler happy +} + +S32 LLDisplayInfo::getDisplayHeight() const +{ +#if LL_WINDOWS + return ::GetSystemMetrics(SM_CYVIRTUALSCREEN); +#elif LL_DARWIN + return 768; //*FIXME +#elif LL_SOLARIS + return 768; //*FIXME +#else + return 768; //*FIXME +#endif + return 768; // to make compiler happy +} + + std::ostream& operator<<(std::ostream& s, const LLOSInfo& info) { info.stream(s); diff --git a/indra/llcommon/llsys.h b/indra/llcommon/llsys.h index c2c45bec9a2a01ea8ce735a70d4d0995176a0a56..aa3fdd485bca84d7c6088daaf80890be06a5edf6 100644 --- a/indra/llcommon/llsys.h +++ b/indra/llcommon/llsys.h @@ -122,6 +122,21 @@ class LL_COMMON_API LLMemoryInfo U32 getPhysicalMemoryClamped() const; ///< Memory size in clamped bytes }; +//============================================================================= +// +// CLASS LLDisplayInfo +class LL_COMMON_API LLDisplayInfo + +/*! @brief Class to query the information about some display settings +*/ +{ +public: + LLDisplayInfo(){}; ///< Default constructor + + S32 getDisplayWidth() const; ///< display width + S32 getDisplayHeight() const; ///< display height + +}; LL_COMMON_API std::ostream& operator<<(std::ostream& s, const LLOSInfo& info); LL_COMMON_API std::ostream& operator<<(std::ostream& s, const LLCPUInfo& info); diff --git a/indra/newview/installers/windows/install_icon.ico b/indra/newview/installers/windows/install_icon.ico index 1e00530c9016b16548de6890ab5562bbe2cbbe1d..efe6c4f323d216cdced45fdcf0d67ac217440841 100644 Binary files a/indra/newview/installers/windows/install_icon.ico and b/indra/newview/installers/windows/install_icon.ico differ diff --git a/indra/newview/installers/windows/uninstall_icon.ico b/indra/newview/installers/windows/uninstall_icon.ico index c4ec6c70bd7f325369d8763afef61ee8e93f2960..05e154686092d89fec551319a8ab9ffd906cdd44 100644 Binary files a/indra/newview/installers/windows/uninstall_icon.ico and b/indra/newview/installers/windows/uninstall_icon.ico differ diff --git a/indra/newview/llappviewer.cpp b/indra/newview/llappviewer.cpp index 948d38befb7d4c89e4fa876948c19b663386aac2..6d4c90c2b95a9b368dc8c10c58f73fccacecdf90 100644 --- a/indra/newview/llappviewer.cpp +++ b/indra/newview/llappviewer.cpp @@ -304,7 +304,8 @@ static std::string gLaunchFileOnQuit; // Used on Win32 for other apps to identify our window (eg, win_setup) const char* const VIEWER_WINDOW_CLASSNAME = "Second Life"; - +static const S32 FIRST_RUN_WINDOW_WIDTH = 1024; +static const S32 FIRST_RUN_WINDOW_HRIGHT = 768; //---------------------------------------------------------------------------- // List of entries from strings.xml to always replace @@ -2362,12 +2363,35 @@ bool LLAppViewer::initWindow() // store setting in a global for easy access and modification gNoRender = gSavedSettings.getBOOL("DisableRendering"); + S32 window_x = gSavedSettings.getS32("WindowX"); + S32 window_y = gSavedSettings.getS32("WindowY"); + S32 window_width = gSavedSettings.getS32("WindowWidth"); + S32 window_height = gSavedSettings.getS32("WindowHeight"); + + bool show_maximized = gSavedSettings.getBOOL("WindowMaximized"); + + bool first_run = gSavedSettings.getBOOL("FirstLoginThisInstall"); + + if (first_run)//for first login + { + window_width = FIRST_RUN_WINDOW_WIDTH;//yep hardcoded + window_height = FIRST_RUN_WINDOW_HRIGHT; + + //if screen resolution is lower then 1024*768 then show maximized + LLDisplayInfo display_info; + if(display_info.getDisplayWidth() <= FIRST_RUN_WINDOW_WIDTH + || display_info.getDisplayHeight()<=FIRST_RUN_WINDOW_HRIGHT) + { + show_maximized = true; + } + } + // always start windowed BOOL ignorePixelDepth = gSavedSettings.getBOOL("IgnorePixelDepth"); gViewerWindow = new LLViewerWindow(gWindowTitle, VIEWER_WINDOW_CLASSNAME, - gSavedSettings.getS32("WindowX"), gSavedSettings.getS32("WindowY"), - gSavedSettings.getS32("WindowWidth"), gSavedSettings.getS32("WindowHeight"), + window_x, window_y, + window_width, window_height, FALSE, ignorePixelDepth); LLNotificationsUI::LLNotificationManager::getInstance(); @@ -2378,7 +2402,7 @@ bool LLAppViewer::initWindow() gViewerWindow->toggleFullscreen(FALSE); } - if (gSavedSettings.getBOOL("WindowMaximized")) + if (show_maximized) { gViewerWindow->mWindow->maximize(); gViewerWindow->getWindow()->setNativeAspectRatio(gSavedSettings.getF32("FullScreenAspectRatio")); diff --git a/indra/newview/llfloaterpreference.cpp b/indra/newview/llfloaterpreference.cpp index 224514dd483c4548d3c20d81f21e77026d0e4517..839d3f0c21cabae0d276fa5ea019c4da5c31f457 100644 --- a/indra/newview/llfloaterpreference.cpp +++ b/indra/newview/llfloaterpreference.cpp @@ -1289,7 +1289,7 @@ BOOL LLPanelPreference::postBuild() if (hasChild("media_enabled")) { bool media_enabled = gSavedSettings.getBOOL("AudioStreamingMedia"); - getChild<LLCheckBoxCtrl>("voice_call_friends_only_check")->setCommitCallback(boost::bind(&showFriendsOnlyWarning, _1, _2)); + getChild<LLCheckBoxCtrl>("media_enabled")->set(media_enabled); getChild<LLCheckBoxCtrl>("autoplay_enabled")->setEnabled(media_enabled); } @@ -1297,7 +1297,11 @@ BOOL LLPanelPreference::postBuild() { getChild<LLCheckBoxCtrl>("music_enabled")->set(gSavedSettings.getBOOL("AudioStreamingMusic")); } - + if (hasChild("voice_call_friends_only_check")) + { + getChild<LLCheckBoxCtrl>("voice_call_friends_only_check")->setCommitCallback(boost::bind(&showFriendsOnlyWarning, _1, _2)); + } + apply(); return true; } diff --git a/indra/newview/res/ll_icon.ico b/indra/newview/res/ll_icon.ico index c35a3fa3a3423e3ce6de9568c28978930ca99fe8..87985b9285118128e6e9e3eb344fdde0b60481d7 100644 Binary files a/indra/newview/res/ll_icon.ico and b/indra/newview/res/ll_icon.ico differ diff --git a/indra/newview/secondlife.icns b/indra/newview/secondlife.icns index ceb6036e0ef7805a2386693a5baf872e87c5427e..4560d4bb2440bbeed09e95039ba4a42450d61af7 100644 Binary files a/indra/newview/secondlife.icns and b/indra/newview/secondlife.icns differ diff --git a/indra/newview/skins/default/xui/en/notifications.xml b/indra/newview/skins/default/xui/en/notifications.xml index 4264b86a7205b2ffcf7d7d59829f3923782d5925..a2540237c86dd1157d153391be17e11c48dbdb72 100644 --- a/indra/newview/skins/default/xui/en/notifications.xml +++ b/indra/newview/skins/default/xui/en/notifications.xml @@ -249,7 +249,7 @@ Save all changes to clothing/body parts? Non-friends won't know that you've choosen to ignore their calls and instant messages. <usetemplate name="okbutton" - yestext="Yes"/> + yestext="OK"/> </notification> <notification