1
0
Fork 0
mirror of https://github.com/juce-framework/JUCE.git synced 2026-01-16 00:34:19 +00:00

Added a method RecentlyOpenedFilesList::registerRecentFileNatively() and updated the introjucer to register its recent documents with the OS.

This commit is contained in:
jules 2012-05-22 16:24:06 +01:00
parent 1dd3774af3
commit 220114d04b
5 changed files with 34 additions and 8 deletions

View file

@ -202,6 +202,13 @@ void Project::addDefaultModules (bool shouldCopyFilesLocally)
}
//==============================================================================
static void registerRecentFile (const File& file)
{
RecentlyOpenedFilesList::registerRecentFileNatively (file);
StoredSettings::getInstance()->recentFiles.addFile (file);
StoredSettings::getInstance()->flush();
}
const String Project::loadDocument (const File& file)
{
ScopedPointer <XmlElement> xml (XmlDocument::parse (file));
@ -214,8 +221,7 @@ const String Project::loadDocument (const File& file)
if (! newTree.hasType (Tags::projectRoot))
return "The document contains errors and couldn't be parsed!";
StoredSettings::getInstance()->recentFiles.addFile (file);
StoredSettings::getInstance()->flush();
registerRecentFile (file);
projectRoot = newTree;
removeDefunctExporters();
@ -229,15 +235,16 @@ const String Project::saveDocument (const File& file)
return saveProject (file, true);
}
String Project::saveProject (const File& file, bool showProgressBox)
String Project::saveProject (const File& file, bool isCommandLineApp)
{
updateProjectSettings();
sanitiseConfigFlags();
StoredSettings::getInstance()->recentFiles.addFile (file);
if (isCommandLineApp)
registerRecentFile (file);
ProjectSaver saver (*this, file);
return saver.save (showProgressBox);
return saver.save (isCommandLineApp);
}
String Project::saveResourcesOnly (const File& file)

View file

@ -46,7 +46,7 @@ public:
const String getDocumentTitle();
const String loadDocument (const File& file);
const String saveDocument (const File& file);
String saveProject (const File& file, bool showProgressBox);
String saveProject (const File& file, bool isCommandLineApp);
String saveResourcesOnly (const File& file);
const File getLastDocumentOpened();
void setLastDocumentOpened (const File& file);

View file

@ -79,7 +79,7 @@
namespace juce
{
// START_AUTOINCLUDE documents/*.cpp, code_editor/*.cpp, embedding/*.cpp, lookandfeel/*.cpp, misc/*.cpp
#include "../juce_core/native/juce_osx_ObjCHelpers.h"
#include "documents/juce_FileBasedDocument.cpp"
#include "code_editor/juce_CodeDocument.cpp"
#include "code_editor/juce_CodeEditorComponent.cpp"
@ -92,7 +92,6 @@ namespace juce
#include "misc/juce_RecentlyOpenedFilesList.cpp"
#include "misc/juce_SplashScreen.cpp"
#include "misc/juce_SystemTrayIconComponent.cpp"
// END_AUTOINCLUDE
}

View file

@ -130,3 +130,17 @@ void RecentlyOpenedFilesList::restoreFromString (const String& stringifiedVersio
setMaxNumberOfItems (maxNumberOfItems);
}
//==============================================================================
void RecentlyOpenedFilesList::registerRecentFileNatively (const File& file)
{
#if JUCE_MAC
JUCE_AUTORELEASEPOOL
[[NSDocumentController sharedDocumentController]
noteNewRecentDocumentURL: [NSURL fileURLWithPath: juceStringToNS (file.getFullPathName())]];
#else
(void) file;
#endif
}

View file

@ -102,6 +102,12 @@ public:
*/
void removeNonExistentFiles();
/** Tells the OS to add a file to the OS-managed list of recent documents for this app.
Not all OSes maintain a list of recent files for an application, so this
function will have no effect on some OSes. Currently it's just implemented for OSX.
*/
static void registerRecentFileNatively (const File& file);
//==============================================================================
/** Adds entries to a menu, representing each of the files in the list.