From be454e17a13002e64ee4a034062462b489277579 Mon Sep 17 00:00:00 2001 From: Fredrik Modeen Date: Thu, 13 Aug 2009 22:54:05 +0000 Subject: [PATCH] - Added Chris Roberts OpenTerminal. - Added him to Contributors - Missing a icon thoug, any thoughts about how it should look? git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@32334 a95241bf-73f2-0310-859d-f6bbb57e9c96 --- build/jam/HaikuImage | 2 +- src/add-ons/tracker/Jamfile | 1 + src/add-ons/tracker/OpenTerminal/Jamfile | 9 ++++ .../tracker/OpenTerminal/OpenTerminal.cpp | 52 +++++++++++++++++++ src/apps/aboutsystem/AboutSystem.cpp | 1 + 5 files changed, 64 insertions(+), 1 deletion(-) create mode 100644 src/add-ons/tracker/OpenTerminal/Jamfile create mode 100644 src/add-ons/tracker/OpenTerminal/OpenTerminal.cpp diff --git a/build/jam/HaikuImage b/build/jam/HaikuImage index 44c924f901..c2fe774ecb 100644 --- a/build/jam/HaikuImage +++ b/build/jam/HaikuImage @@ -473,7 +473,7 @@ AddFilesToHaikuImage system add-ons media : $(SYSTEM_ADD_ONS_MEDIA) ; AddFilesToHaikuImage system add-ons media plugins : $(SYSTEM_ADD_ONS_MEDIA_PLUGINS) ; AddFilesToHaikuImage system add-ons Tracker - : FileType-F ZipOMatic-Z Open\ Target\ Folder-T ; + : FileType-F ZipOMatic-Z Open\ Target\ Folder-T OpenTerminal-T ; AddSymlinkToHaikuImage system add-ons Tracker : /boot/system/preferences/Backgrounds : Background-B ; AddSymlinkToHaikuImage system add-ons Tracker diff --git a/src/add-ons/tracker/Jamfile b/src/add-ons/tracker/Jamfile index 04d8c78a2b..3a6f1107e8 100644 --- a/src/add-ons/tracker/Jamfile +++ b/src/add-ons/tracker/Jamfile @@ -4,5 +4,6 @@ SubInclude HAIKU_TOP src add-ons tracker filetype ; SubInclude HAIKU_TOP src add-ons tracker iconvader ; SubInclude HAIKU_TOP src add-ons tracker opentargetfolder ; SubInclude HAIKU_TOP src add-ons tracker mark_as ; +SubInclude HAIKU_TOP src add-ons tracker OpenTerminal ; SubInclude HAIKU_TOP src add-ons tracker zipomatic ; diff --git a/src/add-ons/tracker/OpenTerminal/Jamfile b/src/add-ons/tracker/OpenTerminal/Jamfile new file mode 100644 index 0000000000..8e2f2b9544 --- /dev/null +++ b/src/add-ons/tracker/OpenTerminal/Jamfile @@ -0,0 +1,9 @@ +SubDir HAIKU_TOP src add-ons tracker OpenTerminal ; + +SetSubDirSupportedPlatformsBeOSCompatible ; + +Addon OpenTerminal-T : + OpenTerminal.cpp + + : be tracker +; diff --git a/src/add-ons/tracker/OpenTerminal/OpenTerminal.cpp b/src/add-ons/tracker/OpenTerminal/OpenTerminal.cpp new file mode 100644 index 0000000000..d8da9890e3 --- /dev/null +++ b/src/add-ons/tracker/OpenTerminal/OpenTerminal.cpp @@ -0,0 +1,52 @@ +/* + * Copyright 2007 - 2008 Chris Roberts. All rights reserved. + * Distributed under the terms of the MIT License. + * + * Authors: + * Chris Roberts, cpr420@gmail.com + */ + +#include +#include + +#include + +#define APPLICATION "/boot/system/apps/Terminal &" +// The trailing '&' is so that it forks to the background and doesn't block +//execution + +void +launch_terminal(BEntry* entry) +{ + BPath path; + if (entry->GetPath(&path) != B_OK) + return; + + chdir(path.Path()); + system (APPLICATION); +} + + +void +process_refs(entry_ref base_ref, BMessage* message, void* reserved) +{ + BEntry entry; + int32 i; + entry_ref tracker_ref; + + for (i = 0; message->FindRef("refs", i, &tracker_ref) == B_OK; i++) { + // Pass 'true' as the traverse argument so that if the ref is a + // symbolic link, we get the target of the link to ensure that it + // actually exists + if (entry.SetTo(&tracker_ref, true) == B_OK) { + if (entry.IsDirectory()) + launch_terminal(&entry); + } + } + + // No folders were selected so we'll use the base folder + if (i == 0) { + if (entry.SetTo(&base_ref) == B_OK) + launch_terminal(&entry); + } +} diff --git a/src/apps/aboutsystem/AboutSystem.cpp b/src/apps/aboutsystem/AboutSystem.cpp index 21a8e91dc6..d2d7ecb970 100644 --- a/src/apps/aboutsystem/AboutSystem.cpp +++ b/src/apps/aboutsystem/AboutSystem.cpp @@ -836,6 +836,7 @@ AboutView::_CreateCreditsView() "Jeremy Rand\n" "Hartmut Reh\n" "Daniel Reinhold\n" + "Chris Roberts\n" "Samuel Rodriguez Perez\n" "Thomas Roell\n" "Rafael Romo\n"