| @@ -406,7 +406,7 @@ bool ProjectTreeViewBase::mightContainSubItems() | |||||
| return item.getNumChildren() > 0; | return item.getNumChildren() > 0; | ||||
| } | } | ||||
| const String ProjectTreeViewBase::getUniqueName() const | |||||
| String ProjectTreeViewBase::getUniqueName() const | |||||
| { | { | ||||
| jassert (item.getID().isNotEmpty()); | jassert (item.getID().isNotEmpty()); | ||||
| return item.getID(); | return item.getID(); | ||||
| @@ -487,12 +487,12 @@ void ProjectTreeViewBase::itemSelectionChanged (bool isNowSelected) | |||||
| } | } | ||||
| } | } | ||||
| const String ProjectTreeViewBase::getTooltip() | |||||
| String ProjectTreeViewBase::getTooltip() | |||||
| { | { | ||||
| return String::empty; | return String::empty; | ||||
| } | } | ||||
| const var ProjectTreeViewBase::getDragSourceDescription() | |||||
| var ProjectTreeViewBase::getDragSourceDescription() | |||||
| { | { | ||||
| delayedSelectionTimer = nullptr; | delayedSelectionTimer = nullptr; | ||||
| return projectItemDragType; | return projectItemDragType; | ||||
| @@ -79,14 +79,14 @@ public: | |||||
| //============================================================================== | //============================================================================== | ||||
| // TreeViewItem stuff.. | // TreeViewItem stuff.. | ||||
| bool mightContainSubItems(); | bool mightContainSubItems(); | ||||
| const String getUniqueName() const; | |||||
| String getUniqueName() const; | |||||
| void itemOpennessChanged (bool isNowOpen); | void itemOpennessChanged (bool isNowOpen); | ||||
| void refreshSubItems(); | void refreshSubItems(); | ||||
| bool canBeSelected() const { return true; } | bool canBeSelected() const { return true; } | ||||
| void itemDoubleClicked (const MouseEvent& e); | void itemDoubleClicked (const MouseEvent& e); | ||||
| void itemSelectionChanged (bool isNowSelected); | void itemSelectionChanged (bool isNowSelected); | ||||
| const String getTooltip(); | |||||
| const var getDragSourceDescription(); | |||||
| String getTooltip(); | |||||
| var getDragSourceDescription(); | |||||
| //============================================================================== | //============================================================================== | ||||
| // Drag-and-drop stuff.. | // Drag-and-drop stuff.. | ||||
| @@ -133,11 +133,6 @@ void AbstractFifo::finishedRead (int numRead) noexcept | |||||
| //============================================================================== | //============================================================================== | ||||
| #if JUCE_UNIT_TESTS | #if JUCE_UNIT_TESTS | ||||
| #include "../unit_tests/juce_UnitTest.h" | |||||
| #include "../maths/juce_Random.h" | |||||
| #include "../threads/juce_Thread.h" | |||||
| class AbstractFifoTests : public UnitTest | class AbstractFifoTests : public UnitTest | ||||
| { | { | ||||
| public: | public: | ||||
| @@ -901,11 +901,6 @@ File File::createTempFile (const String& fileNameEnding) | |||||
| //============================================================================== | //============================================================================== | ||||
| #if JUCE_UNIT_TESTS | #if JUCE_UNIT_TESTS | ||||
| #include "../unit_tests/juce_UnitTest.h" | |||||
| #include "../maths/juce_Random.h" | |||||
| #include "juce_MemoryMappedFile.h" | |||||
| class FileTests : public UnitTest | class FileTests : public UnitTest | ||||
| { | { | ||||
| public: | public: | ||||
| @@ -525,10 +525,6 @@ void JSON::writeToStream (OutputStream& output, const var& data, const bool allO | |||||
| //============================================================================== | //============================================================================== | ||||
| #if JUCE_UNIT_TESTS | #if JUCE_UNIT_TESTS | ||||
| #include "../unit_tests/juce_UnitTest.h" | |||||
| #include "../maths/juce_Random.h" | |||||
| class JSONTests : public UnitTest | class JSONTests : public UnitTest | ||||
| { | { | ||||
| public: | public: | ||||
| @@ -95,10 +95,6 @@ int64 MemoryInputStream::getPosition() | |||||
| //============================================================================== | //============================================================================== | ||||
| #if JUCE_UNIT_TESTS | #if JUCE_UNIT_TESTS | ||||
| #include "../unit_tests/juce_UnitTest.h" | |||||
| #include "../maths/juce_Random.h" | |||||
| #include "juce_MemoryOutputStream.h" | |||||
| class MemoryStreamTests : public UnitTest | class MemoryStreamTests : public UnitTest | ||||
| { | { | ||||
| public: | public: | ||||
| @@ -103,17 +103,17 @@ void MemoryOutputStream::writeRepeatedByte (uint8 byte, int howMany) | |||||
| } | } | ||||
| } | } | ||||
| const MemoryBlock& MemoryOutputStream::getMemoryBlock() const noexcept | |||||
| MemoryBlock MemoryOutputStream::getMemoryBlock() const | |||||
| { | { | ||||
| if (data.getSize() > size) | |||||
| static_cast <char*> (data.getData()) [size] = 0; | |||||
| return data; | |||||
| return MemoryBlock (getData(), getDataSize()); | |||||
| } | } | ||||
| const void* MemoryOutputStream::getData() const noexcept | const void* MemoryOutputStream::getData() const noexcept | ||||
| { | { | ||||
| return getMemoryBlock().getData(); | |||||
| if (data.getSize() > size) | |||||
| static_cast <char*> (data.getData()) [size] = 0; | |||||
| return data.getData(); | |||||
| } | } | ||||
| bool MemoryOutputStream::setPosition (int64 newPosition) | bool MemoryOutputStream::setPosition (int64 newPosition) | ||||
| @@ -160,7 +160,8 @@ String MemoryOutputStream::toString() const | |||||
| OutputStream& JUCE_CALLTYPE operator<< (OutputStream& stream, const MemoryOutputStream& streamToRead) | OutputStream& JUCE_CALLTYPE operator<< (OutputStream& stream, const MemoryOutputStream& streamToRead) | ||||
| { | { | ||||
| return stream << streamToRead.getMemoryBlock(); | |||||
| stream.write (streamToRead.getData(), streamToRead.getDataSize()); | |||||
| return stream; | |||||
| } | } | ||||
| END_JUCE_NAMESPACE | END_JUCE_NAMESPACE | ||||
| @@ -97,8 +97,8 @@ public: | |||||
| */ | */ | ||||
| String toString() const; | String toString() const; | ||||
| /** Returns the memory block that is being used internally to hold the data. */ | |||||
| const MemoryBlock& getMemoryBlock() const noexcept; | |||||
| /** Returns a copy of the stream's data as a memory block. */ | |||||
| MemoryBlock getMemoryBlock() const; | |||||
| //============================================================================== | //============================================================================== | ||||
| /** If the stream is writing to a user-supplied MemoryBlock, this will trim any excess | /** If the stream is writing to a user-supplied MemoryBlock, this will trim any excess | ||||
| @@ -2095,10 +2095,6 @@ void String::Concatenator::append (const String& s) | |||||
| //============================================================================== | //============================================================================== | ||||
| #if JUCE_UNIT_TESTS | #if JUCE_UNIT_TESTS | ||||
| #include "../unit_tests/juce_UnitTest.h" | |||||
| #include "../maths/juce_Random.h" | |||||
| #include "juce_StringArray.h" | |||||
| class StringTests : public UnitTest | class StringTests : public UnitTest | ||||
| { | { | ||||
| public: | public: | ||||
| @@ -63,8 +63,6 @@ String ChildProcess::readAllProcessOutput() | |||||
| //============================================================================== | //============================================================================== | ||||
| #if JUCE_UNIT_TESTS | #if JUCE_UNIT_TESTS | ||||
| #include "../unit_tests/juce_UnitTest.h" | |||||
| class ChildProcessTests : public UnitTest | class ChildProcessTests : public UnitTest | ||||
| { | { | ||||
| public: | public: | ||||
| @@ -333,8 +333,6 @@ void SpinLock::enter() const noexcept | |||||
| //============================================================================== | //============================================================================== | ||||
| #if JUCE_UNIT_TESTS | #if JUCE_UNIT_TESTS | ||||
| #include "../unit_tests/juce_UnitTest.h" | |||||
| class AtomicTests : public UnitTest | class AtomicTests : public UnitTest | ||||
| { | { | ||||
| public: | public: | ||||
| @@ -195,4 +195,58 @@ bool GZIPCompressorOutputStream::setPosition (int64 /*newPosition*/) | |||||
| return false; | return false; | ||||
| } | } | ||||
| //============================================================================== | |||||
| #if JUCE_UNIT_TESTS | |||||
| class GZIPTests : public UnitTest | |||||
| { | |||||
| public: | |||||
| GZIPTests() : UnitTest ("GZIP") {} | |||||
| void runTest() | |||||
| { | |||||
| beginTest ("GZIP"); | |||||
| Random rng; | |||||
| for (int i = 100; --i >= 0;) | |||||
| { | |||||
| MemoryOutputStream original, compressed, uncompressed; | |||||
| { | |||||
| GZIPCompressorOutputStream zipper (&compressed, rng.nextInt (10), false); | |||||
| for (int j = rng.nextInt (100); --j >= 0;) | |||||
| { | |||||
| MemoryBlock data (rng.nextInt (2000) + 1); | |||||
| for (int k = data.getSize(); --k >= 0;) | |||||
| data[k] = (char) rng.nextInt (255); | |||||
| original.write (data.getData(), data.getSize()); | |||||
| zipper .write (data.getData(), data.getSize()); | |||||
| } | |||||
| } | |||||
| { | |||||
| MemoryInputStream compressedInput (compressed.getData(), compressed.getDataSize(), false); | |||||
| GZIPDecompressorInputStream unzipper (compressedInput); | |||||
| uncompressed.writeFromInputStream (unzipper, -1); | |||||
| } | |||||
| expectEquals ((int) uncompressed.getDataSize(), | |||||
| (int) original.getDataSize()); | |||||
| if (original.getDataSize() == uncompressed.getDataSize()) | |||||
| expect (memcmp (uncompressed.getData(), | |||||
| original.getData(), | |||||
| original.getDataSize()) == 0); | |||||
| } | |||||
| } | |||||
| }; | |||||
| static GZIPTests gzipTests; | |||||
| #endif | |||||
| END_JUCE_NAMESPACE | END_JUCE_NAMESPACE | ||||
| @@ -294,7 +294,7 @@ void FileBrowserComponent::setFileFilter (const FileFilter* const newFileFilter) | |||||
| } | } | ||||
| } | } | ||||
| const String FileBrowserComponent::getActionVerb() const | |||||
| String FileBrowserComponent::getActionVerb() const | |||||
| { | { | ||||
| return isSaveMode() ? TRANS("Save") : TRANS("Open"); | return isSaveMode() ? TRANS("Save") : TRANS("Open"); | ||||
| } | } | ||||
| @@ -153,7 +153,7 @@ public: | |||||
| E.g. if browsing in "load file" mode, this will be "Open", if in "save file" | E.g. if browsing in "load file" mode, this will be "Open", if in "save file" | ||||
| mode, it'll be "Save", etc. | mode, it'll be "Save", etc. | ||||
| */ | */ | ||||
| virtual const String getActionVerb() const; | |||||
| virtual String getActionVerb() const; | |||||
| /** Returns true if the saveMode flag was set when this component was created. | /** Returns true if the saveMode flag was set when this component was created. | ||||
| */ | */ | ||||
| @@ -205,7 +205,6 @@ public: | |||||
| return columnComponents [owner.getHeader().getIndexOfColumnId (columnId, true)]; | return columnComponents [owner.getHeader().getIndexOfColumnId (columnId, true)]; | ||||
| } | } | ||||
| private: | private: | ||||
| TableListBox& owner; | TableListBox& owner; | ||||
| OwnedArray<Component> columnComponents; | OwnedArray<Component> columnComponents; | ||||
| @@ -269,7 +268,6 @@ TableListBox::TableListBox (const String& name, TableListBoxModel* const model_) | |||||
| TableListBox::~TableListBox() | TableListBox::~TableListBox() | ||||
| { | { | ||||
| header = nullptr; | |||||
| } | } | ||||
| void TableListBox::setModel (TableListBoxModel* const newModel) | void TableListBox::setModel (TableListBoxModel* const newModel) | ||||
| @@ -332,8 +330,8 @@ bool TableListBox::isAutoSizeMenuOptionShown() const | |||||
| return autoSizeOptionsShown; | return autoSizeOptionsShown; | ||||
| } | } | ||||
| const Rectangle<int> TableListBox::getCellPosition (const int columnId, const int rowNumber, | |||||
| const bool relativeToComponentTopLeft) const | |||||
| Rectangle<int> TableListBox::getCellPosition (const int columnId, const int rowNumber, | |||||
| const bool relativeToComponentTopLeft) const | |||||
| { | { | ||||
| Rectangle<int> headerCell (header->getColumnPosition (header->getIndexOfColumnId (columnId, true))); | Rectangle<int> headerCell (header->getColumnPosition (header->getIndexOfColumnId (columnId, true))); | ||||
| @@ -479,8 +477,8 @@ void TableListBoxModel::deleteKeyPressed (int) {} | |||||
| void TableListBoxModel::returnKeyPressed (int) {} | void TableListBoxModel::returnKeyPressed (int) {} | ||||
| void TableListBoxModel::listWasScrolled() {} | void TableListBoxModel::listWasScrolled() {} | ||||
| const String TableListBoxModel::getCellTooltip (int /*rowNumber*/, int /*columnId*/) { return String::empty; } | |||||
| var TableListBoxModel::getDragSourceDescription (const SparseSet<int>&) { return var::null; } | |||||
| String TableListBoxModel::getCellTooltip (int /*rowNumber*/, int /*columnId*/) { return String::empty; } | |||||
| var TableListBoxModel::getDragSourceDescription (const SparseSet<int>&) { return var::null; } | |||||
| Component* TableListBoxModel::refreshComponentForCell (int, int, bool, Component* existingComponentToUpdate) | Component* TableListBoxModel::refreshComponentForCell (int, int, bool, Component* existingComponentToUpdate) | ||||
| { | { | ||||
| @@ -489,5 +487,4 @@ Component* TableListBoxModel::refreshComponentForCell (int, int, bool, Component | |||||
| return nullptr; | return nullptr; | ||||
| } | } | ||||
| END_JUCE_NAMESPACE | END_JUCE_NAMESPACE | ||||
| @@ -146,7 +146,7 @@ public: | |||||
| /** Returns a tooltip for a particular cell in the table. | /** Returns a tooltip for a particular cell in the table. | ||||
| */ | */ | ||||
| virtual const String getCellTooltip (int rowNumber, int columnId); | |||||
| virtual String getCellTooltip (int rowNumber, int columnId); | |||||
| //============================================================================== | //============================================================================== | ||||
| /** Override this to be informed when rows are selected or deselected. | /** Override this to be informed when rows are selected or deselected. | ||||
| @@ -275,8 +275,8 @@ public: | |||||
| If relativeToComponentTopLeft is false, the co-ords are relative to the | If relativeToComponentTopLeft is false, the co-ords are relative to the | ||||
| top-left of the table's top-left cell. | top-left of the table's top-left cell. | ||||
| */ | */ | ||||
| const Rectangle<int> getCellPosition (int columnId, int rowNumber, | |||||
| bool relativeToComponentTopLeft) const; | |||||
| Rectangle<int> getCellPosition (int columnId, int rowNumber, | |||||
| bool relativeToComponentTopLeft) const; | |||||
| /** Returns the component that currently represents a given cell. | /** Returns the component that currently represents a given cell. | ||||
| If the component for this cell is off-screen or if the position is out-of-range, | If the component for this cell is off-screen or if the position is out-of-range, | ||||