upgrade to JUCE 5.4.3. Remove (probably) unused JUCE modules. Remove VST2 target (it's been end-of-life'd by Steinberg and by JUCE)

This commit is contained in:
Alex Birch
2019-06-22 20:41:38 +01:00
parent d22c2cd4fa
commit 9ee566b251
1140 changed files with 67534 additions and 105952 deletions

View File

@ -111,9 +111,7 @@ private:
if (tempFile.create().wasOk())
{
std::unique_ptr<FileOutputStream> outputStream (tempFile.createOutputStream());
if (outputStream != nullptr)
if (auto outputStream = std::unique_ptr<FileOutputStream> (tempFile.createOutputStream()))
{
size_t pos = 0;
size_t totalSize = data.getSize();
@ -185,7 +183,7 @@ void ContentSharer::startNewShare (std::function<void (bool, const String&)> cal
// You need to pass a valid callback.
jassert (callbackToUse);
callback = static_cast<std::function<void (bool, const String&)>&&> (callbackToUse);
callback = std::move (callbackToUse);
pimpl.reset (createPimpl());
}

View File

@ -139,13 +139,6 @@ private:
void deleteTemporaryFiles();
void sharingFinished (bool, const String&);
#if JUCE_ANDROID
friend void* juce_contentSharerOpenFile (void*, void*, void*);
friend void* juce_contentSharerQuery (void*, void*, void*, void*, void*, void*);
friend void* juce_contentSharerGetStreamTypes (void*, void*);
friend void juce_contentSharingCompleted (int);
#endif
};
} // namespace juce

View File

@ -28,9 +28,7 @@ namespace juce
{
DirectoryContentsList::DirectoryContentsList (const FileFilter* f, TimeSliceThread& t)
: fileFilter (f), thread (t),
fileTypeFlags (File::ignoreHiddenFiles | File::findFiles),
shouldStop (true)
: fileFilter (f), thread (t)
{
}
@ -55,7 +53,7 @@ void DirectoryContentsList::setDirectory (const File& directory,
const bool includeDirectories,
const bool includeFiles)
{
jassert (includeDirectories || includeFiles); // you have to speciify at least one of these!
jassert (includeDirectories || includeFiles); // you have to specify at least one of these!
if (directory != root)
{
@ -67,9 +65,13 @@ void DirectoryContentsList::setDirectory (const File& directory,
fileTypeFlags &= ~(File::findDirectories | File::findFiles);
}
int newFlags = fileTypeFlags;
if (includeDirectories) newFlags |= File::findDirectories; else newFlags &= ~File::findDirectories;
if (includeFiles) newFlags |= File::findFiles; else newFlags &= ~File::findFiles;
auto newFlags = fileTypeFlags;
if (includeDirectories) newFlags |= File::findDirectories;
else newFlags &= ~File::findDirectories;
if (includeFiles) newFlags |= File::findFiles;
else newFlags &= ~File::findFiles;
setTypeFlags (newFlags);
}
@ -103,7 +105,9 @@ void DirectoryContentsList::clear()
void DirectoryContentsList::refresh()
{
clear();
stopSearching();
wasEmpty = files.isEmpty();
files.clear();
if (root.isDirectory())
{
@ -123,7 +127,6 @@ void DirectoryContentsList::setFileFilter (const FileFilter* newFileFilter)
int DirectoryContentsList::getNumFiles() const noexcept
{
const ScopedLock sl (fileListLock);
return files.size();
}
@ -174,7 +177,7 @@ void DirectoryContentsList::changed()
//==============================================================================
int DirectoryContentsList::useTimeSlice()
{
const uint32 startTime = Time::getApproximateMillisecondCounter();
auto startTime = Time::getApproximateMillisecondCounter();
bool hasChanged = false;
for (int i = 100; --i >= 0;)
@ -218,6 +221,9 @@ bool DirectoryContentsList::checkNextFile (bool& hasChanged)
}
fileFindHandle.reset();
if (! wasEmpty && files.isEmpty())
hasChanged = true;
}
return false;
@ -234,14 +240,14 @@ bool DirectoryContentsList::addFile (const File& file, const bool isDir,
|| ((! isDir) && fileFilter->isFileSuitable (file))
|| (isDir && fileFilter->isDirectorySuitable (file)))
{
std::unique_ptr<FileInfo> info (new FileInfo());
auto info = std::make_unique<FileInfo>();
info->filename = file.getFileName();
info->fileSize = fileSize;
info->filename = file.getFileName();
info->fileSize = fileSize;
info->modificationTime = modTime;
info->creationTime = creationTime;
info->isDirectory = isDir;
info->isReadOnly = isReadOnly;
info->creationTime = creationTime;
info->isDirectory = isDir;
info->isReadOnly = isReadOnly;
for (int i = files.size(); --i >= 0;)
if (files.getUnchecked(i)->filename == info->filename)

View File

@ -66,7 +66,7 @@ public:
TimeSliceThread& threadToUse);
/** Destructor. */
~DirectoryContentsList();
~DirectoryContentsList() override;
//==============================================================================
@ -201,15 +201,17 @@ public:
private:
File root;
const FileFilter* fileFilter;
const FileFilter* fileFilter = nullptr;
TimeSliceThread& thread;
int fileTypeFlags;
int fileTypeFlags = File::ignoreHiddenFiles | File::findFiles;
CriticalSection fileListLock;
OwnedArray<FileInfo> files;
std::unique_ptr<DirectoryIterator> fileFindHandle;
bool volatile shouldStop;
std::atomic<bool> shouldStop { true };
bool wasEmpty = true;
int useTimeSlice() override;
void stopSearching();

View File

@ -88,7 +88,7 @@ public:
FilePreviewComponent* previewComp);
/** Destructor. */
~FileBrowserComponent();
~FileBrowserComponent() override;
//==============================================================================
/** Returns the number of files that the user has got selected.
@ -183,7 +183,7 @@ public:
*/
struct JUCE_API LookAndFeelMethods
{
virtual ~LookAndFeelMethods() {}
virtual ~LookAndFeelMethods() = default;
// These return a pointer to an internally cached drawable - make sure you don't keep
// a copy of this pointer anywhere, as it may become invalid in the future.

View File

@ -39,10 +39,11 @@ public:
filter (selectsFiles ? owner.filters : String(), selectsDirectories ? "*" : String(), {}),
browserComponent (flags, owner.startingFile, &filter, preview),
dialogBox (owner.title, {}, browserComponent, warnAboutOverwrite, browserComponent.findColour (AlertWindow::backgroundColourId))
dialogBox (owner.title, {}, browserComponent, warnAboutOverwrite,
browserComponent.findColour (AlertWindow::backgroundColourId), owner.parent)
{}
~NonNative()
~NonNative() override
{
dialogBox.exitModalState (0);
}
@ -92,10 +93,12 @@ FileChooser::FileChooser (const String& chooserBoxTitle,
const File& currentFileOrDirectory,
const String& fileFilters,
const bool useNativeBox,
const bool treatFilePackagesAsDirectories)
const bool treatFilePackagesAsDirectories,
Component* parentComponentToUse)
: title (chooserBoxTitle),
filters (fileFilters),
startingFile (currentFileOrDirectory),
parent (parentComponentToUse),
useNativeDialogBox (useNativeBox && isPlatformDialogAvailable()),
treatFilePackagesAsDirs (treatFilePackagesAsDirectories)
{
@ -175,7 +178,7 @@ void FileChooser::launchAsync (int flags, std::function<void (const FileChooser&
// you cannot run two file chooser dialog boxes at the same time
jassert (asyncCallback == nullptr);
asyncCallback = static_cast<std::function<void (const FileChooser&)>&&> (callback);
asyncCallback = std::move (callback);
pimpl.reset (createPimpl (flags, previewComp));
pimpl->launch();

View File

@ -75,7 +75,7 @@ public:
initialFileOrDirectory will be used as the initial
directory of the native file chooser.
Note: on iOS when saving a file, a user will not
Note: On iOS when saving a file, a user will not
be able to change a file name, so it may be a good
idea to include at least a valid file name in
initialFileOrDirectory. When no filename is found,
@ -107,6 +107,11 @@ public:
selection of files inside packages when
invoked on OS X and when using native dialog
boxes.
@param parentComponent An optional component which should be the parent
for the file chooser. If this is a nullptr then the
FileChooser will be a top-level window. AUv3s on iOS
must specify this parameter as opening a top-level window
in an AUv3 is forbidden due to sandbox restrictions.
@see browseForFileToOpen, browseForFileToSave, browseForDirectory
*/
@ -114,7 +119,8 @@ public:
const File& initialFileOrDirectory = File(),
const String& filePatternsAllowed = String(),
bool useOSNativeDialogBox = true,
bool treatFilePackagesAsDirectories = false);
bool treatFilePackagesAsDirectories = false,
Component* parentComponent = nullptr);
/** Destructor. */
~FileChooser();
@ -245,7 +251,7 @@ public:
may return a URL to a remote document. If a local file is chosen then you can
convert this file to a JUCE File class via the URL::getLocalFile method.
Note: on iOS you must use the returned URL object directly (you are also
Note: On iOS you must use the returned URL object directly (you are also
allowed to copy- or move-construct another URL from the returned URL), rather
than just storing the path as a String and then creating a new URL from that
String. This is because the returned URL contains internally a security
@ -268,7 +274,7 @@ public:
This array may be empty if no files were chosen, or can contain multiple entries
if multiple files were chosen.
Note: on iOS you must use the returned URL object directly (you are also
Note: On iOS you must use the returned URL object directly (you are also
allowed to copy- or move-construct another URL from the returned URL), rather
than just storing the path as a String and then creating a new URL from that
String. This is because the returned URL contains internally a security
@ -300,6 +306,7 @@ private:
//==============================================================================
String title, filters;
File startingFile;
Component* parent;
Array<URL> results;
const bool useNativeDialogBox;
const bool treatFilePackagesAsDirs;
@ -311,7 +318,7 @@ private:
//==============================================================================
struct Pimpl
{
virtual ~Pimpl() {}
virtual ~Pimpl() = default;
virtual void launch() = 0;
virtual void runModally() = 0;

View File

@ -94,8 +94,9 @@ FileChooserDialogBox::FileChooserDialogBox (const String& name,
const String& instructions,
FileBrowserComponent& chooserComponent,
bool shouldWarn,
Colour backgroundColour)
: ResizableWindow (name, backgroundColour, true),
Colour backgroundColour,
Component* parentComponent)
: ResizableWindow (name, backgroundColour, parentComponent == nullptr),
warnAboutOverwritingExistingFiles (shouldWarn)
{
content = new ContentComponent (name, instructions, chooserComponent);
@ -111,6 +112,9 @@ FileChooserDialogBox::FileChooserDialogBox (const String& name,
content->chooserComponent.addListener (this);
FileChooserDialogBox::selectionChanged();
if (parentComponent != nullptr)
parentComponent->addAndMakeVisible (this);
}
FileChooserDialogBox::~FileChooserDialogBox()

View File

@ -81,6 +81,11 @@ public:
if they try to select a file that already exists. (This
flag is only used when saving files)
@param backgroundColour the background colour for the top level window
@param parentComponent an optional component which should be the parent
for the file chooser. If this is a nullptr then the
dialog box will be a top-level window. AUv3s on iOS
must specify this parameter as opening a top-level window
in an AUv3 is forbidden due to sandbox restrictions.
@see FileBrowserComponent, FilePreviewComponent
*/
@ -88,10 +93,11 @@ public:
const String& instructions,
FileBrowserComponent& browserComponent,
bool warnAboutOverwritingExistingFiles,
Colour backgroundColour);
Colour backgroundColour,
Component* parentComponent = nullptr);
/** Destructor. */
~FileChooserDialogBox();
~FileChooserDialogBox() override;
//==============================================================================
#if JUCE_MODAL_LOOPS_PERMITTED

View File

@ -109,7 +109,7 @@ public:
{
}
~ItemComponent()
~ItemComponent() override
{
thread.removeTimeSliceClient (this);
}

View File

@ -52,7 +52,7 @@ public:
FileListComponent (DirectoryContentsList& listToShow);
/** Destructor. */
~FileListComponent();
~FileListComponent() override;
//==============================================================================
/** Returns the number of files the user has got selected.

View File

@ -49,7 +49,7 @@ public:
FilePreviewComponent();
/** Destructor. */
~FilePreviewComponent();
~FilePreviewComponent() override;
/** Called to indicate that the user's currently selected file has changed.

View File

@ -47,7 +47,7 @@ public:
FileSearchPathListComponent();
/** Destructor. */
~FileSearchPathListComponent();
~FileSearchPathListComponent() override;
//==============================================================================
/** Returns the path as it is currently shown. */

View File

@ -63,7 +63,7 @@ public:
}
}
~FileListTreeItem()
~FileListTreeItem() override
{
thread.removeTimeSliceClient (this);
clearSubItems();

View File

@ -51,7 +51,7 @@ public:
FileTreeComponent (DirectoryContentsList& listToShow);
/** Destructor. */
~FileTreeComponent();
~FileTreeComponent() override;
//==============================================================================
/** Returns the number of files the user has got selected.

View File

@ -42,7 +42,7 @@ class JUCE_API FilenameComponentListener
{
public:
/** Destructor. */
virtual ~FilenameComponentListener() {}
virtual ~FilenameComponentListener() = default;
/** This method is called after the FilenameComponent's file has been changed. */
virtual void filenameComponentChanged (FilenameComponent* fileComponentThatHasChanged) = 0;
@ -100,7 +100,7 @@ public:
const String& textWhenNothingSelected);
/** Destructor. */
~FilenameComponent();
~FilenameComponent() override;
//==============================================================================
/** Returns the currently displayed filename. */
@ -191,7 +191,7 @@ public:
/** This abstract base class is implemented by LookAndFeel classes. */
struct JUCE_API LookAndFeelMethods
{
virtual ~LookAndFeelMethods() {}
virtual ~LookAndFeelMethods() = default;
virtual Button* createFilenameComponentBrowseButton (const String& text) = 0;
virtual void layoutFilenameComponent (FilenameComponent&, ComboBox* filenameBox, Button* browseButton) = 0;

View File

@ -38,12 +38,12 @@ ImagePreviewComponent::~ImagePreviewComponent()
//==============================================================================
void ImagePreviewComponent::getThumbSize (int& w, int& h) const
{
const int availableW = proportionOfWidth (0.97f);
const int availableH = getHeight() - 13 * 4;
auto availableW = proportionOfWidth (0.97f);
auto availableH = getHeight() - 13 * 4;
const double scale = jmin (1.0,
availableW / (double) w,
availableH / (double) h);
auto scale = jmin (1.0,
availableW / (double) w,
availableH / (double) h);
w = roundToInt (scale * w);
h = roundToInt (scale * h);
@ -66,18 +66,18 @@ void ImagePreviewComponent::timerCallback()
currentDetails.clear();
repaint();
std::unique_ptr<FileInputStream> in (fileToLoad.createInputStream());
FileInputStream in (fileToLoad);
if (in != nullptr && in->getFile().existsAsFile())
if (in.openedOk() && fileToLoad.existsAsFile())
{
if (ImageFileFormat* const format = ImageFileFormat::findImageFormatForStream (*in))
if (auto format = ImageFileFormat::findImageFormatForStream (in))
{
currentThumbnail = format->decodeImage (*in);
currentThumbnail = format->decodeImage (in);
if (currentThumbnail.isValid())
{
int w = currentThumbnail.getWidth();
int h = currentThumbnail.getHeight();
auto w = currentThumbnail.getWidth();
auto h = currentThumbnail.getHeight();
currentDetails
<< fileToLoad.getFileName() << "\n"
@ -99,13 +99,13 @@ void ImagePreviewComponent::paint (Graphics& g)
{
g.setFont (13.0f);
int w = currentThumbnail.getWidth();
int h = currentThumbnail.getHeight();
auto w = currentThumbnail.getWidth();
auto h = currentThumbnail.getHeight();
getThumbSize (w, h);
const int numLines = 4;
const int totalH = 13 * numLines + h + 4;
const int y = (getHeight() - totalH) / 2;
auto totalH = 13 * numLines + h + 4;
auto y = (getHeight() - totalH) / 2;
g.drawImageWithin (currentThumbnail,
(getWidth() - w) / 2, y, w, h,

View File

@ -44,7 +44,7 @@ public:
ImagePreviewComponent();
/** Destructor. */
~ImagePreviewComponent();
~ImagePreviewComponent() override;
//==============================================================================