From 98ea8b34e77677600a766320d8b3354a283eb5e3 Mon Sep 17 00:00:00 2001 From: JJ Allaire Date: Thu, 23 Jun 2011 07:47:55 -0400 Subject: [PATCH] use project derived r environment directory for workspace save --- src/cpp/session/SessionMain.cpp | 1 + .../org/rstudio/studio/client/projects/Projects.java | 1 - .../studio/client/workbench/WorkbenchContext.java | 12 +++++++++++- .../client/workbench/views/workspace/Workspace.java | 6 +++--- 4 files changed, 15 insertions(+), 5 deletions(-) diff --git a/src/cpp/session/SessionMain.cpp b/src/cpp/session/SessionMain.cpp index b6083444322..b5b34e006ae 100644 --- a/src/cpp/session/SessionMain.cpp +++ b/src/cpp/session/SessionMain.cpp @@ -1724,6 +1724,7 @@ void detectParentTermination() } } +// NOTE: mirrors behavior of WorkbenchContext.getREnvironmentPath on the client FilePath rEnvironmentDir() { // for projects we always use the project directory diff --git a/src/gwt/src/org/rstudio/studio/client/projects/Projects.java b/src/gwt/src/org/rstudio/studio/client/projects/Projects.java index 0bf3a0dd53b..c1fd3fe27a6 100644 --- a/src/gwt/src/org/rstudio/studio/client/projects/Projects.java +++ b/src/gwt/src/org/rstudio/studio/client/projects/Projects.java @@ -1,6 +1,5 @@ package org.rstudio.studio.client.projects; -import org.rstudio.core.client.Debug; import org.rstudio.core.client.command.CommandBinder; import org.rstudio.core.client.command.Handler; import org.rstudio.core.client.widget.MessageDialog; diff --git a/src/gwt/src/org/rstudio/studio/client/workbench/WorkbenchContext.java b/src/gwt/src/org/rstudio/studio/client/workbench/WorkbenchContext.java index c6de26d88a9..21e4b313433 100644 --- a/src/gwt/src/org/rstudio/studio/client/workbench/WorkbenchContext.java +++ b/src/gwt/src/org/rstudio/studio/client/workbench/WorkbenchContext.java @@ -61,18 +61,28 @@ public void setDefaultFileDialogDir(FileSystemItem dir) defaultFileDialogDir_ = dir; } - // mirrors behavior of rEnvironmentDir in SessionMain.cpp + // NOTE: mirrors behavior of rEnvironmentDir in SessionMain.cpp public String getREnvironmentPath() { SessionInfo sessionInfo = session_.getSessionInfo(); if (sessionInfo != null) { FileSystemItem rEnvDir = null; + + if (sessionInfo.getActiveProjectFile() != null) + { + rEnvDir = FileSystemItem.createFile( + sessionInfo.getActiveProjectFile()).getParentPath(); + } if (sessionInfo.getMode().equals(SessionInfo.DESKTOP_MODE)) + { rEnvDir = currentWorkingDir_; + } else + { rEnvDir = FileSystemItem.createDir( sessionInfo.getInitialWorkingDir()); + } return rEnvDir.completePath(".RData"); } else diff --git a/src/gwt/src/org/rstudio/studio/client/workbench/views/workspace/Workspace.java b/src/gwt/src/org/rstudio/studio/client/workbench/views/workspace/Workspace.java index 9d8b5376b26..f71b0fe799b 100644 --- a/src/gwt/src/org/rstudio/studio/client/workbench/views/workspace/Workspace.java +++ b/src/gwt/src/org/rstudio/studio/client/workbench/views/workspace/Workspace.java @@ -241,9 +241,9 @@ public void execute(ProgressIndicator indicator) private void sendDefaultWorkspaceCommandToConsole(String command) { - FileSystemItem cwd = workbenchContext_.getCurrentWorkingDir(); - FileSystemItem wsPath = FileSystemItem.createFile(cwd.completePath(".RData")); - consoleDispatcher_.executeCommand(command, wsPath); + String renvPath = workbenchContext_.getREnvironmentPath(); + consoleDispatcher_.executeCommand(command, + FileSystemItem.createFile(renvPath)); }