ide: Open file directory, open package directory

git-svn-id: svn://ultimatepp.org/upp/trunk@3845 f0d560ea-af0d-0410-9eb7-867de7ffcac7
This commit is contained in:
cxl 2011-09-09 12:26:08 +00:00
parent b1bd0fa9aa
commit d3a2b4c002
7 changed files with 35 additions and 6 deletions

View file

@ -188,9 +188,5 @@ void Ide::CreateMakefile()
void Ide::OpenOutputFolder()
{
#if defined(PLATFORM_WIN32)
LaunchWebBrowser(GetFileFolder(target));
#else
system("xdg-open " + GetFileFolder(target) + " &");
#endif
ShellOpenFolder(GetFileFolder(target));
}

View file

@ -147,3 +147,12 @@ FileSel& OutputFs() {
fsp->Multi();
return *fsp;
}
void ShellOpenFolder(const String& dir)
{
#if defined(PLATFORM_WIN32)
LaunchWebBrowser(dir);
#else
system("xdg-open " + dir + " &");
#endif
}

View file

@ -27,6 +27,8 @@ FileSel& AnyPackageFs();
FileSel& BasedSourceFs();
FileSel& OutputFs();
void ShellOpenFolder(const String& dir);
Image IdeFileImage(const String& filename, bool fast = false, bool include_path = false);
bool FinishSave(String tmpfile, String outfile);

View file

@ -190,8 +190,11 @@ struct WorkspaceWork {
void ShowFile(int pi);
String GetActivePackage() const { return package.GetCurrentName(); }
String GetActivePackagePath() const { return PackagePath(package.GetCurrentName()); }
String GetActiveFileName() const;
String GetActiveFilePath() const;
void OpenFileFolder();
void OpenPackageFolder();
bool IsActiveFile() const;
Package::File& ActiveFile();
String FileName(int i) const;

View file

@ -710,6 +710,15 @@ void WorkspaceWork::SpecialFileMenu(Bar& menu)
#endif
menu.Add("Import directory tree sources..", THISBACK(Import));
}
void WorkspaceWork::OpenFileFolder()
{
ShellOpenFolder(GetFileDirectory(GetActiveFilePath()));
}
void WorkspaceWork::OpenPackageFolder()
{
ShellOpenFolder(GetFileDirectory(GetActivePackagePath()));
}
void WorkspaceWork::FileMenu(Bar& menu)
{
@ -741,6 +750,8 @@ void WorkspaceWork::FileMenu(Bar& menu)
menu.Add(filelist.IsCursor() && !sel, "Delete", THISBACK(DelFile))
.Help("Remove file / topic group reference from package & delete file / folder on disk");
menu.Separator();
menu.Add("Open File Directory",THISBACK(OpenFileFolder));
menu.Separator();
menu.Add(filelist.GetCursor() > 0, "Move up", THISBACK1(MoveFile, -1))
.Key(organizer ? K_CTRL_UP : K_SHIFT_CTRL_UP)
.Help("Move current file one position towards package beginning");
@ -866,6 +877,8 @@ void WorkspaceWork::PackageMenu(Bar& menu)
.Check(actual.optimize_speed);
menu.Separator();
BuildPackageMenu(menu);
menu.Separator();
menu.Add("Open Package Directory",THISBACK(OpenPackageFolder));
}
}
}

View file

@ -75,6 +75,9 @@ KEY(CONDBREAKPOINT, "Conditional breakpoint..", K_ALT_F9)
KEY(CLEARBREAKPOINTS, "Clear all breakpoints", K_CTRL_F9|K_SHIFT)
KEY(OPENLOG, "View the logfile", K_ALT_L)
KEY(OPENFILEDIR, "Open file directory", 0)
KEY(OPENOUTDIR, "Open output directory", 0)
KEY(TOGGLEBROWSER, "Show Browser++", K_CTRL_B)
KEY(NAVIGATOR, "Navigator bar", K_CTRL_N)
KEY(SEARCHTOPICS, "Search word in Help & Topics", K_CTRL_F1)

View file

@ -81,6 +81,9 @@ void Ide::File(Bar& menu) {
menu.Add(split, AK_SWAP, THISBACK(SwapEditors));
menu.MenuSeparator();
menu.Add(AK_OPENFILEDIR, THISBACK(OpenFileFolder));
menu.MenuSeparator();
menu.Add(AK_STATISTICS, THISBACK(Statistics))
.Help("Display various statistics");
@ -455,7 +458,7 @@ void Ide::BuildMenu(Bar& menu) {
+ "according to console pane");
#if defined(PLATFORM_WIN32) || defined(PLATFORM_POSIX)
menu.MenuSeparator();
menu.Add(!IsNull(target), "Open output directory", THISBACK(OpenOutputFolder));
menu.Add(!IsNull(target), AK_OPENOUTDIR, THISBACK(OpenOutputFolder));
#endif
}