A few tiny suggestions for ProJucer UX


#1

As it says on the can…

  • When switching from Files tab to Config tab, it should update the right pane depending on what was showing last time the Config tab was selected. Currently it doesn’t update.
  • When creating a new project, it should use the location used for the last new project you created. Similarly when opening a project.
  • You can right click on a file -> ‘Reveal in Finder’, it would be nice to be able to do this for the project as well. And groups if they happen to correspond to a folder (sounds potentially thorny).
  • have the “save project and open in IDE” button outside the Files/Config/Build panes

π


#2

plus one more:

  • if you open a .jucer file from finder, don’t open all last used projects, but only that one you actively chose

#3

Seems like it was intended that way, but it doesn’t work. See ProjucerApplication::initialiseWindows (const String& commandLine):

void ProjucerApplication::initialiseWindows (const String& commandLine)
{
    const String commandLineWithoutNSDebug (commandLine.replace ("-NSDocumentRevisionsDebugMode YES", StringRef()));
    
    if (commandLineWithoutNSDebug.trim().isNotEmpty() && ! commandLineWithoutNSDebug.trim().startsWithChar ('-'))
        anotherInstanceStarted (commandLine);
    else
        mainWindowList.reopenLastProjects(); 
    
    mainWindowList.createWindowIfNoneAreOpen();
}

It works, if you simply change to:

void ProjucerApplication::initialiseWindows (const String& commandLine)
{
    if (commandLine.containsIgnoreCase (Project::projectFileExtension))
        anotherInstanceStarted (commandLine);
    else
        mainWindowList.reopenLastProjects();

    mainWindowList.createWindowIfNoneAreOpen();
}

…if you are afraid of false positives (would only happen, if an argument contains the string .jucer) you can tokenize the commandline and query for an argument endsWith (Project::projectFileExtension). But this naive approach improves the accuracy already…