Skip to content
Snippets Groups Projects
Commit 7a263209 authored by jsiegle's avatar jsiegle
Browse files

Add reloadOnStartup flag

parent 4d85302a
Branches
Tags
No related merge requests found
......@@ -35,7 +35,7 @@ MainWindow::MainWindow()
setResizable(true, // isResizable
false); // useBottomCornerRisizer -- doesn't work very well
shouldReloadOnStartup = false;
// Create ProcessorGraph and AudioComponent, and connect them.
// Callbacks will be set by the play button in the control panel
......@@ -70,6 +70,17 @@ MainWindow::MainWindow()
// Constraining the window's size doesn't seem to work:
setResizeLimits(300, 200, 10000, 10000);
if (shouldReloadOnStartup)
{
File executable = File::getSpecialLocation(File::currentExecutableFile);
File executableDirectory = executable.getParentDirectory();
File file = executableDirectory.getChildFile("lastConfig.xml");
ui->getEditorViewport()->loadState(file);
}
}
MainWindow::~MainWindow()
......@@ -87,6 +98,12 @@ MainWindow::~MainWindow()
UIComponent* ui = (UIComponent*) getContentComponent();
ui->disableDataViewport();
File executable = File::getSpecialLocation(File::currentExecutableFile);
File executableDirectory = executable.getParentDirectory();
File file = executableDirectory.getChildFile("lastConfig.xml");
ui->getEditorViewport()->saveState(file);
setMenuBar(0);
#if JUCE_MAC
......@@ -121,6 +138,7 @@ void MainWindow::saveWindowBounds()
XmlElement* xml = new XmlElement("MAINWINDOW");
xml->setAttribute("version", JUCEApplication::getInstance()->getApplicationVersion());
xml->setAttribute("shouldReloadOnStartup", shouldReloadOnStartup);
XmlElement* bounds = new XmlElement("BOUNDS");
bounds->setAttribute("x",getScreenX());
......@@ -183,6 +201,8 @@ void MainWindow::loadWindowBounds()
String description;
shouldReloadOnStartup = xml->getBoolAttribute("shouldReloadOnStartup", false);
forEachXmlChildElement(*xml, e)
{
......
......@@ -59,6 +59,9 @@ public:
commands. */
ApplicationCommandManager commandManager;
/** Determines whether the last used configuration reloads upon startup. */
bool shouldReloadOnStartup;
private:
/** Saves the MainWindow's boundaries into the file "windowState.xml", located in the directory
......@@ -75,6 +78,8 @@ private:
/** A pointer to the application's ProcessorGraph (owned by the MainWindow). */
ScopedPointer<ProcessorGraph> processorGraph;
JUCE_DECLARE_NON_COPYABLE_WITH_LEAK_DETECTOR(MainWindow)
};
......
......@@ -300,6 +300,8 @@ PopupMenu UIComponent::getMenuForIndex(int menuIndex, const String& menuName)
{
menu.addCommandItem(commandManager, openConfiguration);
menu.addCommandItem(commandManager, saveConfiguration);
menu.addSeparator();
menu.addCommandItem(commandManager, reloadOnStartup);
#if !JUCE_MAC
menu.addSeparator();
......@@ -356,6 +358,7 @@ void UIComponent::getAllCommands(Array <CommandID>& commands)
{
const CommandID ids[] = {openConfiguration,
saveConfiguration,
reloadOnStartup,
undo,
redo,
copySignalChain,
......@@ -388,7 +391,12 @@ void UIComponent::getCommandInfo(CommandID commandID, ApplicationCommandInfo& re
case saveConfiguration:
result.setInfo("Save configuration", "Save the current processor graph.", "General", 0);
result.addDefaultKeypress('S', ModifierKeys::commandModifier);
break;
case reloadOnStartup:
result.setInfo("Reload on startup", "Load the last used configuration on startup.", "General", 0);
result.setActive(!acquisitionStarted);
result.setTicked(mainWindow->shouldReloadOnStartup);
break;
case undo:
......@@ -499,6 +507,14 @@ bool UIComponent::perform(const InvocationInfo& info)
break;
}
case reloadOnStartup:
{
mainWindow->shouldReloadOnStartup = !mainWindow->shouldReloadOnStartup;
}
break;
case clearSignalChain:
{
getEditorViewport()->clearSignalChain();
......
......@@ -206,7 +206,8 @@ private:
toggleSignalChain = 0x2009,
toggleFileInfo = 0x2010,
showHelp = 0x2011,
resizeWindow = 0x2012
resizeWindow = 0x2012,
reloadOnStartup = 0x2013
};
JUCE_DECLARE_NON_COPYABLE_WITH_LEAK_DETECTOR(UIComponent);
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment