aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/linden
diff options
context:
space:
mode:
Diffstat (limited to '')
-rw-r--r--linden/indra/llui/lltexteditor.cpp11
-rw-r--r--linden/indra/llvfs/lldir.cpp3
-rw-r--r--linden/indra/llvfs/lldir.h2
-rw-r--r--linden/indra/llvfs/lldir_linux.cpp2
-rw-r--r--linden/indra/llvfs/lldir_solaris.cpp2
-rw-r--r--linden/indra/newview/llappviewer.cpp20
-rw-r--r--linden/indra/newview/llimview.cpp2
-rw-r--r--linden/indra/newview/llmutelist.cpp2
-rw-r--r--linden/indra/newview/llstartup.cpp6
-rw-r--r--linden/indra/newview/llurlhistory.cpp2
-rw-r--r--linden/indra/newview/llviewermedia.cpp2
-rw-r--r--linden/indra/newview/llviewerwindow.cpp70
-rw-r--r--linden/indra/newview/llviewerwindow.h1
13 files changed, 75 insertions, 50 deletions
diff --git a/linden/indra/llui/lltexteditor.cpp b/linden/indra/llui/lltexteditor.cpp
index fdf8bcf..004d063 100644
--- a/linden/indra/llui/lltexteditor.cpp
+++ b/linden/indra/llui/lltexteditor.cpp
@@ -57,6 +57,7 @@
57#include "llimagegl.h" 57#include "llimagegl.h"
58#include "llwindow.h" 58#include "llwindow.h"
59#include "lltextparser.h" 59#include "lltextparser.h"
60#include "lldir.h"
60#include <queue> 61#include <queue>
61 62
62#include "llmenugl.h" 63#include "llmenugl.h"
@@ -4205,7 +4206,10 @@ void LLTextEditor::appendColoredText(const std::string &new_text,
4205 const std::string& font_name) 4206 const std::string& font_name)
4206{ 4207{
4207 LLColor4 lcolor=color; 4208 LLColor4 lcolor=color;
4208 if (mParseHighlights) 4209 // If LindenUserDir is empty then we didn't login yet.
4210 // In that case we can't instantiate LLTextParser, which
4211 // is initialized per user.
4212 if (mParseHighlights && !gDirUtilp->getLindenUserDir(true).empty())
4209 { 4213 {
4210 LLTextParser* highlight = LLTextParser::getInstance(); 4214 LLTextParser* highlight = LLTextParser::getInstance();
4211 highlight->parseFullLineHighlights(new_text, &lcolor); 4215 highlight->parseFullLineHighlights(new_text, &lcolor);
@@ -4285,7 +4289,10 @@ void LLTextEditor::appendHighlightedText(const std::string &new_text,
4285 S32 highlight_part, 4289 S32 highlight_part,
4286 LLStyleSP stylep) 4290 LLStyleSP stylep)
4287{ 4291{
4288 if (mParseHighlights) 4292 // If LindenUserDir is empty then we didn't login yet.
4293 // In that case we can't instantiate LLTextParser, which
4294 // is initialized per user.
4295 if (mParseHighlights && !gDirUtilp->getLindenUserDir(true).empty())
4289 { 4296 {
4290 LLTextParser* highlight = LLTextParser::getInstance(); 4297 LLTextParser* highlight = LLTextParser::getInstance();
4291 4298
diff --git a/linden/indra/llvfs/lldir.cpp b/linden/indra/llvfs/lldir.cpp
index 5567fdd..cd1e98d 100644
--- a/linden/indra/llvfs/lldir.cpp
+++ b/linden/indra/llvfs/lldir.cpp
@@ -192,8 +192,9 @@ const std::string &LLDir::getOSUserAppDir() const
192 return mOSUserAppDir; 192 return mOSUserAppDir;
193} 193}
194 194
195const std::string &LLDir::getLindenUserDir() const 195const std::string &LLDir::getLindenUserDir(bool empty_ok) const
196{ 196{
197 llassert(empty_ok || !mLindenUserDir.empty());
197 return mLindenUserDir; 198 return mLindenUserDir;
198} 199}
199 200
diff --git a/linden/indra/llvfs/lldir.h b/linden/indra/llvfs/lldir.h
index 55574d6..766f351 100644
--- a/linden/indra/llvfs/lldir.h
+++ b/linden/indra/llvfs/lldir.h
@@ -92,7 +92,7 @@ class LLDir
92 const std::string &getAppRODataDir() const; // Location of read-only data files 92 const std::string &getAppRODataDir() const; // Location of read-only data files
93 const std::string &getOSUserDir() const; // Location of the os-specific user dir 93 const std::string &getOSUserDir() const; // Location of the os-specific user dir
94 const std::string &getOSUserAppDir() const; // Location of the os-specific user app dir 94 const std::string &getOSUserAppDir() const; // Location of the os-specific user app dir
95 const std::string &getLindenUserDir() const; // Location of the Linden user dir. 95 const std::string &getLindenUserDir(bool empty_ok = false) const; // Location of the Linden user dir.
96 const std::string &getChatLogsDir() const; // Location of the chat logs dir. 96 const std::string &getChatLogsDir() const; // Location of the chat logs dir.
97 const std::string &getPerAccountChatLogsDir() const; // Location of the per account chat logs dir. 97 const std::string &getPerAccountChatLogsDir() const; // Location of the per account chat logs dir.
98 const std::string &getTempDir() const; // Common temporary directory 98 const std::string &getTempDir() const; // Common temporary directory
diff --git a/linden/indra/llvfs/lldir_linux.cpp b/linden/indra/llvfs/lldir_linux.cpp
index ec0a4f4..5f1eabb 100644
--- a/linden/indra/llvfs/lldir_linux.cpp
+++ b/linden/indra/llvfs/lldir_linux.cpp
@@ -97,7 +97,7 @@ LLDir_Linux::LLDir_Linux()
97 mAppRODataDir = tmp_str; 97 mAppRODataDir = tmp_str;
98 mOSUserDir = getCurrentUserHome(tmp_str); 98 mOSUserDir = getCurrentUserHome(tmp_str);
99 mOSUserAppDir = ""; 99 mOSUserAppDir = "";
100 mLindenUserDir = tmp_str; 100 mLindenUserDir = "";
101 101
102 char path [32]; /* Flawfinder: ignore */ 102 char path [32]; /* Flawfinder: ignore */
103 103
diff --git a/linden/indra/llvfs/lldir_solaris.cpp b/linden/indra/llvfs/lldir_solaris.cpp
index c647e2b..5132455 100644
--- a/linden/indra/llvfs/lldir_solaris.cpp
+++ b/linden/indra/llvfs/lldir_solaris.cpp
@@ -100,7 +100,7 @@ LLDir_Solaris::LLDir_Solaris()
100 mAppRODataDir = strdup(tmp_str); 100 mAppRODataDir = strdup(tmp_str);
101 mOSUserDir = getCurrentUserHome(tmp_str); 101 mOSUserDir = getCurrentUserHome(tmp_str);
102 mOSUserAppDir = ""; 102 mOSUserAppDir = "";
103 mLindenUserDir = tmp_str; 103 mLindenUserDir = "";
104 104
105 char path [LL_MAX_PATH]; /* Flawfinder: ignore */ 105 char path [LL_MAX_PATH]; /* Flawfinder: ignore */
106 106
diff --git a/linden/indra/newview/llappviewer.cpp b/linden/indra/newview/llappviewer.cpp
index 9fad9f1..1d45575 100644
--- a/linden/indra/newview/llappviewer.cpp
+++ b/linden/indra/newview/llappviewer.cpp
@@ -1205,7 +1205,10 @@ bool LLAppViewer::cleanup()
1205 1205
1206 //reset balance for not playing the UI-Sound 1206 //reset balance for not playing the UI-Sound
1207 //when relogging into another account 1207 //when relogging into another account
1208 gStatusBar->clearBalance(); 1208 if (gStatusBar)
1209 {
1210 gStatusBar->clearBalance();
1211 }
1209 1212
1210 if (mQuitRequested) 1213 if (mQuitRequested)
1211 { 1214 {
@@ -3282,12 +3285,15 @@ void LLAppViewer::saveFinalSnapshot()
3282 gSavedSettings.setBOOL("ShowParcelOwners", FALSE); 3285 gSavedSettings.setBOOL("ShowParcelOwners", FALSE);
3283 idle(); 3286 idle();
3284 3287
3285 std::string snap_filename = gDirUtilp->getLindenUserDir(); 3288 std::string snap_filename = gDirUtilp->getLindenUserDir(true);
3286 snap_filename += gDirUtilp->getDirDelimiter(); 3289 if (!snap_filename.empty())
3287 snap_filename += SCREEN_LAST_FILENAME; 3290 {
3288 // use full pixel dimensions of viewer window (not post-scale dimensions) 3291 snap_filename += gDirUtilp->getDirDelimiter();
3289 gViewerWindow->saveSnapshot(snap_filename, gViewerWindow->getWindowDisplayWidth(), gViewerWindow->getWindowDisplayHeight(), FALSE, TRUE); 3292 snap_filename += SCREEN_LAST_FILENAME;
3290 mSavedFinalSnapshot = TRUE; 3293 // use full pixel dimensions of viewer window (not post-scale dimensions)
3294 gViewerWindow->saveSnapshot(snap_filename, gViewerWindow->getWindowDisplayWidth(), gViewerWindow->getWindowDisplayHeight(), FALSE, TRUE);
3295 mSavedFinalSnapshot = TRUE;
3296 }
3291 } 3297 }
3292} 3298}
3293 3299
diff --git a/linden/indra/newview/llimview.cpp b/linden/indra/newview/llimview.cpp
index a6eaeb3..0b71030 100644
--- a/linden/indra/newview/llimview.cpp
+++ b/linden/indra/newview/llimview.cpp
@@ -1360,7 +1360,7 @@ void LLIMMgr::saveIgnoreGroup()
1360{ 1360{
1361 // llinfos << "saving ignore_groups.xml" << llendl; 1361 // llinfos << "saving ignore_groups.xml" << llendl;
1362 1362
1363 std::string user_dir = gDirUtilp->getLindenUserDir(); 1363 std::string user_dir = gDirUtilp->getLindenUserDir(true);
1364 if (!user_dir.empty()) 1364 if (!user_dir.empty())
1365 { 1365 {
1366 std::string filename = gDirUtilp->getExpandedFilename(LL_PATH_PER_SL_ACCOUNT, "ignore_groups.xml"); 1366 std::string filename = gDirUtilp->getExpandedFilename(LL_PATH_PER_SL_ACCOUNT, "ignore_groups.xml");
diff --git a/linden/indra/newview/llmutelist.cpp b/linden/indra/newview/llmutelist.cpp
index 0e03509..fff5558 100644
--- a/linden/indra/newview/llmutelist.cpp
+++ b/linden/indra/newview/llmutelist.cpp
@@ -265,7 +265,7 @@ LLMuteList::~LLMuteList()
265 // If we quit from the login screen we will not have an SL account 265 // If we quit from the login screen we will not have an SL account
266 // name. Don't try to save, otherwise we'll dump a file in 266 // name. Don't try to save, otherwise we'll dump a file in
267 // C:\Program Files\SecondLife\ JC 267 // C:\Program Files\SecondLife\ JC
268 std::string user_dir = gDirUtilp->getLindenUserDir(); 268 std::string user_dir = gDirUtilp->getLindenUserDir(true);
269 if (!user_dir.empty()) 269 if (!user_dir.empty())
270 { 270 {
271 std::string filename = gDirUtilp->getExpandedFilename(LL_PATH_PER_SL_ACCOUNT, "volume_settings.xml"); 271 std::string filename = gDirUtilp->getExpandedFilename(LL_PATH_PER_SL_ACCOUNT, "volume_settings.xml");
diff --git a/linden/indra/newview/llstartup.cpp b/linden/indra/newview/llstartup.cpp
index 7bd5fff..fad3df2 100644
--- a/linden/indra/newview/llstartup.cpp
+++ b/linden/indra/newview/llstartup.cpp
@@ -839,7 +839,7 @@ bool idle_startup()
839 LLToolMgr::getInstance()->initTools(); 839 LLToolMgr::getInstance()->initTools();
840 840
841 // Quickly get something onscreen to look at. 841 // Quickly get something onscreen to look at.
842 gViewerWindow->initWorldUI(); 842 gViewerWindow->pre_initWorldUI();
843 } 843 }
844 844
845 gViewerWindow->setNormalControlsVisible( FALSE ); 845 gViewerWindow->setNormalControlsVisible( FALSE );
@@ -1823,6 +1823,10 @@ bool idle_startup()
1823 { 1823 {
1824 LL_DEBUGS("AppInitStartupState") << "STATE_WORLD_INIT" << LL_ENDL; 1824 LL_DEBUGS("AppInitStartupState") << "STATE_WORLD_INIT" << LL_ENDL;
1825 set_startup_status(0.40f, LLTrans::getString("LoginInitializingWorld"), gAgent.mMOTD); 1825 set_startup_status(0.40f, LLTrans::getString("LoginInitializingWorld"), gAgent.mMOTD);
1826
1827 // Initialize the rest of the world.
1828 gViewerWindow->initWorldUI();
1829
1826 gDisconnected=FALSE; 1830 gDisconnected=FALSE;
1827 display_startup(); 1831 display_startup();
1828 // We should have an agent id by this point. 1832 // We should have an agent id by this point.
diff --git a/linden/indra/newview/llurlhistory.cpp b/linden/indra/newview/llurlhistory.cpp
index fbd14bc..b187f3b 100644
--- a/linden/indra/newview/llurlhistory.cpp
+++ b/linden/indra/newview/llurlhistory.cpp
@@ -74,7 +74,7 @@ bool LLURLHistory::loadFile(const std::string& filename)
74// static 74// static
75bool LLURLHistory::saveFile(const std::string& filename) 75bool LLURLHistory::saveFile(const std::string& filename)
76{ 76{
77 std::string temp_str = gDirUtilp->getLindenUserDir(); 77 std::string temp_str = gDirUtilp->getLindenUserDir(true);
78 if( temp_str.empty() ) 78 if( temp_str.empty() )
79 { 79 {
80 llwarns << "Can't save " << filename 80 llwarns << "Can't save " << filename
diff --git a/linden/indra/newview/llviewermedia.cpp b/linden/indra/newview/llviewermedia.cpp
index 57c2111..5c01b25 100644
--- a/linden/indra/newview/llviewermedia.cpp
+++ b/linden/indra/newview/llviewermedia.cpp
@@ -471,7 +471,7 @@ LLPluginClassMedia* LLViewerMediaImpl::newSourceFromMediaType(std::string media_
471 // at the login page displaying login Web page or Web browser test via Develop menu. 471 // at the login page displaying login Web page or Web browser test via Develop menu.
472 // In this case we just use whatever gDirUtilp->getOSUserAppDir() gives us (this 472 // In this case we just use whatever gDirUtilp->getOSUserAppDir() gives us (this
473 // is what we always used before this change) 473 // is what we always used before this change)
474 std::string linden_user_dir = gDirUtilp->getLindenUserDir(); 474 std::string linden_user_dir = gDirUtilp->getLindenUserDir(true);
475 if ( ! linden_user_dir.empty() ) 475 if ( ! linden_user_dir.empty() )
476 { 476 {
477 // gDirUtilp->getLindenUserDir() is whole path, not just Linden name 477 // gDirUtilp->getLindenUserDir() is whole path, not just Linden name
diff --git a/linden/indra/newview/llviewerwindow.cpp b/linden/indra/newview/llviewerwindow.cpp
index 5cd730a..07fef53 100644
--- a/linden/indra/newview/llviewerwindow.cpp
+++ b/linden/indra/newview/llviewerwindow.cpp
@@ -1652,7 +1652,7 @@ void LLViewerWindow::adjustControlRectanglesForFirstUse(const LLRect& window)
1652 adjust_rect_top_center("FloaterCameraRect3", window); 1652 adjust_rect_top_center("FloaterCameraRect3", window);
1653} 1653}
1654 1654
1655void LLViewerWindow::initWorldUI() 1655void LLViewerWindow::pre_initWorldUI()
1656{ 1656{
1657 pre_init_menus(); 1657 pre_init_menus();
1658 1658
@@ -1672,9 +1672,45 @@ void LLViewerWindow::initWorldUI()
1672 gHoverView = new LLHoverView(std::string("gHoverView"), full_window); 1672 gHoverView = new LLHoverView(std::string("gHoverView"), full_window);
1673 gHoverView->setVisible(TRUE); 1673 gHoverView->setVisible(TRUE);
1674 mRootView->addChild(gHoverView); 1674 mRootView->addChild(gHoverView);
1675 1675
1676 gIMMgr = LLIMMgr::getInstance(); 1676 gIMMgr = LLIMMgr::getInstance();
1677 1677
1678 // Make sure we only create menus once per session -- MC
1679 if (!gMenuHolder)
1680 {
1681 init_menus();
1682 }
1683
1684 if (!gFloaterTools)
1685 {
1686 gFloaterTools = new LLFloaterTools();
1687 gFloaterTools->setVisible(FALSE);
1688 }
1689
1690 // menu holder appears on top to get first pass at all mouse events
1691
1692 mRootView->sendChildToFront(gMenuHolder);
1693
1694 if ( gHUDView == NULL )
1695 {
1696 LLRect hud_rect = full_window;
1697 hud_rect.mBottom += 50;
1698 if (gMenuBarView)
1699 {
1700 hud_rect.mTop -= gMenuBarView->getRect().getHeight();
1701 }
1702 gHUDView = new LLHUDView(hud_rect);
1703 // put behind everything else in the UI
1704 mRootView->addChildAtEnd(gHUDView);
1705 }
1706}
1707
1708void LLViewerWindow::initWorldUI()
1709{
1710 S32 height = mRootView->getRect().getHeight();
1711 S32 width = mRootView->getRect().getWidth();
1712 LLRect full_window(0, height, width, 0);
1713
1678 if ( gSavedPerAccountSettings.getBOOL("LogShowHistory") ) 1714 if ( gSavedPerAccountSettings.getBOOL("LogShowHistory") )
1679 { 1715 {
1680 LLFloaterChat::getInstance(LLSD())->loadHistory(); 1716 LLFloaterChat::getInstance(LLSD())->loadHistory();
@@ -1715,18 +1751,6 @@ void LLViewerWindow::initWorldUI()
1715 1751
1716 // Toolbox floater 1752 // Toolbox floater
1717 1753
1718 // Make sure we only create menus once per session -- MC
1719 if (!gMenuHolder)
1720 {
1721 init_menus();
1722 }
1723
1724 if (!gFloaterTools)
1725 {
1726 gFloaterTools = new LLFloaterTools();
1727 gFloaterTools->setVisible(FALSE);
1728 }
1729
1730 if (!gStatusBar) 1754 if (!gStatusBar)
1731 { 1755 {
1732 // Status bar 1756 // Status bar
@@ -1744,24 +1768,6 @@ void LLViewerWindow::initWorldUI()
1744 } 1768 }
1745 1769
1746 LLFloaterChatterBox::createInstance(LLSD()); 1770 LLFloaterChatterBox::createInstance(LLSD());
1747
1748
1749 // menu holder appears on top to get first pass at all mouse events
1750
1751 mRootView->sendChildToFront(gMenuHolder);
1752
1753 if ( gHUDView == NULL )
1754 {
1755 LLRect hud_rect = full_window;
1756 hud_rect.mBottom += 50;
1757 if (gMenuBarView)
1758 {
1759 hud_rect.mTop -= gMenuBarView->getRect().getHeight();
1760 }
1761 gHUDView = new LLHUDView(hud_rect);
1762 // put behind everything else in the UI
1763 mRootView->addChildAtEnd(gHUDView);
1764 }
1765} 1771}
1766 1772
1767// Destroy the UI 1773// Destroy the UI
diff --git a/linden/indra/newview/llviewerwindow.h b/linden/indra/newview/llviewerwindow.h
index 85cdc52..ee8f3fe 100644
--- a/linden/indra/newview/llviewerwindow.h
+++ b/linden/indra/newview/llviewerwindow.h
@@ -143,6 +143,7 @@ public:
143 void initBase(); 143 void initBase();
144 void adjustRectanglesForFirstUse(const LLRect& window); 144 void adjustRectanglesForFirstUse(const LLRect& window);
145 void adjustControlRectanglesForFirstUse(const LLRect& window); 145 void adjustControlRectanglesForFirstUse(const LLRect& window);
146 void pre_initWorldUI();
146 void initWorldUI(); 147 void initWorldUI();
147 148
148 // 149 //