| @@ -256,7 +256,8 @@ private: | |||||
| class WizardComp : public Component, | class WizardComp : public Component, | ||||
| private ButtonListener, | private ButtonListener, | ||||
| private ComboBoxListener, | private ComboBoxListener, | ||||
| private TextEditorListener | |||||
| private TextEditorListener, | |||||
| private FileBrowserListener | |||||
| { | { | ||||
| public: | public: | ||||
| WizardComp() | WizardComp() | ||||
| @@ -264,7 +265,9 @@ public: | |||||
| projectName (TRANS("Project name")), | projectName (TRANS("Project name")), | ||||
| nameLabel (String::empty, TRANS("Project Name") + ":"), | nameLabel (String::empty, TRANS("Project Name") + ":"), | ||||
| typeLabel (String::empty, TRANS("Project Type") + ":"), | typeLabel (String::empty, TRANS("Project Type") + ":"), | ||||
| fileBrowser (FileBrowserComponent::saveMode | FileBrowserComponent::canSelectDirectories, | |||||
| fileBrowser (FileBrowserComponent::saveMode | |||||
| | FileBrowserComponent::canSelectDirectories | |||||
| | FileBrowserComponent::doNotClearFileNameOnRootChange, | |||||
| NewProjectWizardClasses::getLastWizardFolder(), nullptr, nullptr), | NewProjectWizardClasses::getLastWizardFolder(), nullptr, nullptr), | ||||
| fileOutline (String::empty, TRANS("Project Folder") + ":"), | fileOutline (String::empty, TRANS("Project Folder") + ":"), | ||||
| targetsOutline (String::empty, TRANS("Target Platforms") + ":"), | targetsOutline (String::empty, TRANS("Target Platforms") + ":"), | ||||
| @@ -303,6 +306,8 @@ public: | |||||
| addChildAndSetID (&fileBrowser, "fileBrowser"); | addChildAndSetID (&fileBrowser, "fileBrowser"); | ||||
| fileBrowser.setBounds ("fileOutline.left + 10, fileOutline.top + 20, fileOutline.right - 10, fileOutline.bottom - 32"); | fileBrowser.setBounds ("fileOutline.left + 10, fileOutline.top + 20, fileOutline.right - 10, fileOutline.bottom - 32"); | ||||
| fileBrowser.setFilenameBoxLabel ("Folder:"); | fileBrowser.setFilenameBoxLabel ("Folder:"); | ||||
| fileBrowser.setFileName (File::createLegalFileName (projectName.getText())); | |||||
| fileBrowser.addListener (this); | |||||
| addChildAndSetID (&createButton, "createButton"); | addChildAndSetID (&createButton, "createButton"); | ||||
| createButton.setBounds ("right - 130, bottom - 34, parent.width - 30, parent.height - 30"); | createButton.setBounds ("right - 130, bottom - 34, parent.width - 30, parent.height - 30"); | ||||
| @@ -409,6 +414,16 @@ public: | |||||
| fileBrowser.setFileName (File::createLegalFileName (projectName.getText())); | fileBrowser.setFileName (File::createLegalFileName (projectName.getText())); | ||||
| } | } | ||||
| void selectionChanged() override {} | |||||
| void fileClicked (const File&, const MouseEvent&) override {} | |||||
| void fileDoubleClicked (const File&) override {} | |||||
| void browserRootChanged (const File&) override | |||||
| { | |||||
| fileBrowser.setFileName (File::createLegalFileName (projectName.getText())); | |||||
| } | |||||
| ComboBox projectType; | ComboBox projectType; | ||||
| PlatformTargetsComp platformTargets; | PlatformTargetsComp platformTargets; | ||||
| @@ -387,7 +387,7 @@ void FileBrowserComponent::fileDoubleClicked (const File& f) | |||||
| { | { | ||||
| setRoot (f); | setRoot (f); | ||||
| if ((flags & canSelectDirectories) != 0) | |||||
| if ((flags & canSelectDirectories) != 0 && (flags & doNotClearFileNameOnRootChange) == 0) | |||||
| filenameBox.setText (String::empty); | filenameBox.setText (String::empty); | ||||
| } | } | ||||
| else | else | ||||
| @@ -432,7 +432,9 @@ void FileBrowserComponent::textEditorReturnKeyPressed (TextEditor&) | |||||
| { | { | ||||
| setRoot (f); | setRoot (f); | ||||
| chosenFiles.clear(); | chosenFiles.clear(); | ||||
| filenameBox.setText (String::empty); | |||||
| if ((flags & doNotClearFileNameOnRootChange) == 0) | |||||
| filenameBox.setText (String()); | |||||
| } | } | ||||
| else | else | ||||
| { | { | ||||
| @@ -51,18 +51,19 @@ public: | |||||
| */ | */ | ||||
| enum FileChooserFlags | enum FileChooserFlags | ||||
| { | { | ||||
| openMode = 1, /**< specifies that the component should allow the user to | |||||
| choose an existing file with the intention of opening it. */ | |||||
| saveMode = 2, /**< specifies that the component should allow the user to specify | |||||
| the name of a file that will be used to save something. */ | |||||
| canSelectFiles = 4, /**< specifies that the user can select files (can be used in | |||||
| conjunction with canSelectDirectories). */ | |||||
| canSelectDirectories = 8, /**< specifies that the user can select directories (can be used in | |||||
| conjuction with canSelectFiles). */ | |||||
| canSelectMultipleItems = 16, /**< specifies that the user can select multiple items. */ | |||||
| useTreeView = 32, /**< specifies that a tree-view should be shown instead of a file list. */ | |||||
| filenameBoxIsReadOnly = 64, /**< specifies that the user can't type directly into the filename box. */ | |||||
| warnAboutOverwriting = 128 /**< specifies that the dialog should warn about overwriting existing files (if possible). */ | |||||
| openMode = 1, /**< specifies that the component should allow the user to | |||||
| choose an existing file with the intention of opening it. */ | |||||
| saveMode = 2, /**< specifies that the component should allow the user to specify | |||||
| the name of a file that will be used to save something. */ | |||||
| canSelectFiles = 4, /**< specifies that the user can select files (can be used in | |||||
| conjunction with canSelectDirectories). */ | |||||
| canSelectDirectories = 8, /**< specifies that the user can select directories (can be used in | |||||
| conjuction with canSelectFiles). */ | |||||
| canSelectMultipleItems = 16, /**< specifies that the user can select multiple items. */ | |||||
| useTreeView = 32, /**< specifies that a tree-view should be shown instead of a file list. */ | |||||
| filenameBoxIsReadOnly = 64, /**< specifies that the user can't type directly into the filename box. */ | |||||
| warnAboutOverwriting = 128, /**< specifies that the dialog should warn about overwriting existing files (if possible). */ | |||||
| doNotClearFileNameOnRootChange = 256 /**< specifies that the file name should not be cleared upon root change. */ | |||||
| }; | }; | ||||
| //============================================================================== | //============================================================================== | ||||