@@ -256,7 +256,8 @@ private: | |||
class WizardComp : public Component, | |||
private ButtonListener, | |||
private ComboBoxListener, | |||
private TextEditorListener | |||
private TextEditorListener, | |||
private FileBrowserListener | |||
{ | |||
public: | |||
WizardComp() | |||
@@ -264,7 +265,9 @@ public: | |||
projectName (TRANS("Project name")), | |||
nameLabel (String::empty, TRANS("Project Name") + ":"), | |||
typeLabel (String::empty, TRANS("Project Type") + ":"), | |||
fileBrowser (FileBrowserComponent::saveMode | FileBrowserComponent::canSelectDirectories, | |||
fileBrowser (FileBrowserComponent::saveMode | |||
| FileBrowserComponent::canSelectDirectories | |||
| FileBrowserComponent::doNotClearFileNameOnRootChange, | |||
NewProjectWizardClasses::getLastWizardFolder(), nullptr, nullptr), | |||
fileOutline (String::empty, TRANS("Project Folder") + ":"), | |||
targetsOutline (String::empty, TRANS("Target Platforms") + ":"), | |||
@@ -303,6 +306,8 @@ public: | |||
addChildAndSetID (&fileBrowser, "fileBrowser"); | |||
fileBrowser.setBounds ("fileOutline.left + 10, fileOutline.top + 20, fileOutline.right - 10, fileOutline.bottom - 32"); | |||
fileBrowser.setFilenameBoxLabel ("Folder:"); | |||
fileBrowser.setFileName (File::createLegalFileName (projectName.getText())); | |||
fileBrowser.addListener (this); | |||
addChildAndSetID (&createButton, "createButton"); | |||
createButton.setBounds ("right - 130, bottom - 34, parent.width - 30, parent.height - 30"); | |||
@@ -409,6 +414,16 @@ public: | |||
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; | |||
PlatformTargetsComp platformTargets; | |||
@@ -387,7 +387,7 @@ void FileBrowserComponent::fileDoubleClicked (const File& f) | |||
{ | |||
setRoot (f); | |||
if ((flags & canSelectDirectories) != 0) | |||
if ((flags & canSelectDirectories) != 0 && (flags & doNotClearFileNameOnRootChange) == 0) | |||
filenameBox.setText (String::empty); | |||
} | |||
else | |||
@@ -432,7 +432,9 @@ void FileBrowserComponent::textEditorReturnKeyPressed (TextEditor&) | |||
{ | |||
setRoot (f); | |||
chosenFiles.clear(); | |||
filenameBox.setText (String::empty); | |||
if ((flags & doNotClearFileNameOnRootChange) == 0) | |||
filenameBox.setText (String()); | |||
} | |||
else | |||
{ | |||
@@ -51,18 +51,19 @@ public: | |||
*/ | |||
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. */ | |||
}; | |||
//============================================================================== | |||