Skip to content
37 changes: 37 additions & 0 deletions .clang-format
Original file line number Diff line number Diff line change
@@ -0,0 +1,37 @@
# .clang-format

# Specify the formatting style. Here, we use LLVM style.
BasedOnStyle: LLVM

# Set the column limit (maximum line width).
ColumnLimit: 120

# Indentation width (number of spaces for each level of indentation).
TabWidth: 4
IndentWidth: 4
IndentAccessModifiers: false
AccessModifierOffset: -4

# Whether to use spaces or tabs for indentation.
UseTab: Never

BreakBeforeBraces: Allman

AllowShortFunctionsOnASingleLine: None

AllowShortIfStatementsOnASingleLine: false

NamespaceIndentation: All

BreakConstructorInitializers: BeforeComma
BreakInheritanceList: BeforeComma

FixNamespaceComments: false

PointerAlignment: Right

Cpp11BracedListStyle: false

AlignArrayOfStructures: Left

SortIncludes: Never
99 changes: 99 additions & 0 deletions .clang-tidy
Original file line number Diff line number Diff line change
@@ -0,0 +1,99 @@
Checks: >-
-*
,bugprone-*
,-bugprone-suspicious-include
,cert-dcl21-cpp
,cert-dcl58-cpp
,cert-err34-c
,cert-err52-cpp
,cert-err60-cpp
,cert-flp30-c
,cert-msc50-cpp
,cert-msc51-cpp
,cert-str34-c
,clang-analyzer-*
,cppcoreguidelines-interfaces-global-init
,cppcoreguidelines-narrowing-conversions
,cppcoreguidelines-pro-type-member-init
,cppcoreguidelines-pro-type-static-cast-downcast
,cppcoreguidelines-slicing
,google-default-arguments
,google-explicit-constructor
,google-runtime-operator
,hicpp-exception-baseclass
,hicpp-multiway-paths-covered
,misc-misplaced-const
,misc-new-delete-overloads
,misc-no-recursion
,misc-non-copyable-objects
,misc-throw-by-value-catch-by-reference
,misc-unconventional-assign-operator
,misc-uniqueptr-reset-release
,modernize-avoid-bind
,modernize-concat-nested-namespaces
,modernize-deprecated-headers
,modernize-deprecated-ios-base-aliases
,modernize-loop-convert
,modernize-make-shared
,modernize-make-unique
,modernize-pass-by-value
,modernize-raw-string-literal
,modernize-redundant-void-arg
,modernize-replace-auto-ptr
,modernize-replace-disallow-copy-and-assign-macro
,modernize-replace-random-shuffle
,modernize-return-braced-init-list
,modernize-shrink-to-fit
,modernize-unary-static-assert
,modernize-use-auto
,modernize-use-bool-literals
,modernize-use-emplace
,modernize-use-equals-default
,modernize-use-equals-delete
,modernize-use-nodiscard
,modernize-use-noexcept
,modernize-use-nullptr
,modernize-use-override
,modernize-use-transparent-functors
,modernize-use-uncaught-exceptions
,mpi-buffer-deref
,mpi-type-mismatch
,openmp-use-default-none
,performance-faster-string-find
,performance-for-range-copy
,performance-implicit-conversion-in-loop
,performance-inefficient-algorithm
,performance-inefficient-string-concatenation
,performance-inefficient-vector-operation
,performance-move-const-arg
,performance-move-constructor-init
,performance-no-automatic-move
,performance-noexcept-move-constructor
,performance-trivially-destructible
,performance-type-promotion-in-math-fn
,performance-unnecessary-copy-initialization
,performance-unnecessary-value-param
,readability-avoid-const-params-in-decls
,readability-const-return-type
,readability-container-size-empty
,readability-convert-member-functions-to-static
,readability-delete-null-pointer
,readability-deleted-default
,readability-inconsistent-declaration-parameter-name
,readability-make-member-function-const
,readability-misleading-indentation
,readability-misplaced-array-index
,readability-non-const-parameter
,readability-redundant-control-flow
,readability-redundant-declaration
,readability-redundant-function-ptr-dereference
,readability-redundant-smartptr-get
,readability-redundant-string-cstr
,readability-redundant-string-init
,readability-simplify-subscript-expr
,readability-static-accessed-through-instance
,readability-static-definition-in-anonymous-namespace
,readability-string-compare
,readability-uniqueptr-delete-release
,readability-use-anyofallof

12 changes: 0 additions & 12 deletions CMakeLists.txt
Original file line number Diff line number Diff line change
@@ -1,17 +1,5 @@
cmake_minimum_required(VERSION 3.24)

# TODO figure this out
# https://stackoverflow.com/questions/47087237/cmake-and-ninja-rebuild-unnecessary-files
option(LINUX_REBUILD_WORKAROUND "ignore system headers for detecting dirty files" OFF)
if(LINUX_REBUILD_WORKAROUND)
file(
WRITE "${CMAKE_BINARY_DIR}/GNUMakeRulesOverwrite.cmake"
"STRING(REPLACE \"-MD\" \"-MMD\" CMAKE_DEPFILE_FLAGS_C \"\${CMAKE_DEPFILE_FLAGS_C}\")\n"
"STRING(REPLACE \"-MD\" \"-MMD\" CMAKE_DEPFILE_FLAGS_CXX \"\${CMAKE_DEPFILE_FLAGS_CXX}\")\n"
)
set(CMAKE_USER_MAKE_RULES_OVERRIDE "${CMAKE_BINARY_DIR}/GNUMakeRulesOverwrite.cmake" CACHE INTERNAL "")
endif()

project(VainDirectoryModel VERSION 0.0.1)

set(CMAKE_CXX_STANDARD 20)
Expand Down
34 changes: 18 additions & 16 deletions Demo/DirectoryModelDemo/DirectoryModelDemoComponent.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -43,7 +43,8 @@ DirectoryModelDemoComponent::DirectoryModelDemoComponent()
m_pathSelectionToggle.setButtonText("path selection");
m_pathSelectionToggle.onStateChange = [this]()
{
m_selectionModel.setSelectionMode(m_pathSelectionToggle.getToggleState() ? vdm::PathSelectionHandler::Mode : vdm::SingleSelectionHandler::Mode );
m_selectionModel.setSelectionMode(m_pathSelectionToggle.getToggleState() ? vdm::PathSelectionHandler::Mode
: vdm::SingleSelectionHandler::Mode);
};

getLookAndFeel().setColour(juce::ToggleButton::ColourIds::textColourId, juce::Colours::black);
Expand All @@ -59,21 +60,22 @@ DirectoryModelDemoComponent::DirectoryModelDemoComponent()
switch (m_treeViewTypeCbx.getSelectedId())
{
case 1:
{
auto ptr = std::make_unique<DirectoryModelDemoJuceTreeView>();
ptr->setValueTree(m_dirModel.getValueTree());
m_treeView = std::move(ptr);
break;
}
{
auto ptr = std::make_unique<DirectoryModelDemoJuceTreeView>();
ptr->setValueTree(m_dirModel.getValueTree());
m_treeView = std::move(ptr);
break;
}
case 2:
{
auto ptr = std::make_unique<DirectoryModelDemoTreeView>();
ptr->setValueTree(m_dirModel.getValueTree());
ptr->setSelectionValueTree(m_dirModel.getValueTree());
m_treeView = std::move(ptr);
break;
}
default: jassertfalse;
{
auto ptr = std::make_unique<DirectoryModelDemoTreeView>();
ptr->setValueTree(m_dirModel.getValueTree());
ptr->setSelectionValueTree(m_dirModel.getValueTree());
m_treeView = std::move(ptr);
break;
}
default:
jassertfalse;
}

addAndMakeVisible(*m_treeView);
Expand Down Expand Up @@ -109,7 +111,7 @@ void DirectoryModelDemoComponent::resized()

//--------------------------------------------------------------------------------

void DirectoryModelDemoComponent::modifierKeysChanged(const juce::ModifierKeys& modifiers)
void DirectoryModelDemoComponent::modifierKeysChanged(const juce::ModifierKeys &modifiers)
{
if (m_pathSelectionToggle.getToggleState())
return;
Expand Down
2 changes: 1 addition & 1 deletion Demo/DirectoryModelDemo/DirectoryModelDemoComponent.h
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,7 @@ class DirectoryModelDemoComponent : public juce::Component
~DirectoryModelDemoComponent() override;

void resized() override;
void modifierKeysChanged(const juce::ModifierKeys& modifiers) override;
void modifierKeysChanged(const juce::ModifierKeys &modifiers) override;

private:
vdm::NameUpdateHandler m_nameUpdateHandler;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -24,7 +24,7 @@ DirectoryModelDemoJuceTreeViewItemComponent::~DirectoryModelDemoJuceTreeViewItem

//--------------------------------------------------------------------------------

void DirectoryModelDemoJuceTreeViewItemComponent::paint(juce::Graphics& g)
void DirectoryModelDemoJuceTreeViewItemComponent::paint(juce::Graphics &g)
{
const auto b{ getLocalBounds() };

Expand All @@ -38,7 +38,7 @@ void DirectoryModelDemoJuceTreeViewItemComponent::paint(juce::Graphics& g)

//--------------------------------------------------------------------------------

void DirectoryModelDemoJuceTreeViewItemComponent::mouseUp(const juce::MouseEvent& event)
void DirectoryModelDemoJuceTreeViewItemComponent::mouseUp(const juce::MouseEvent &event)
{
if (!event.mods.isLeftButtonDown())
return;
Expand All @@ -49,7 +49,7 @@ void DirectoryModelDemoJuceTreeViewItemComponent::mouseUp(const juce::MouseEvent

//--------------------------------------------------------------------------------

void DirectoryModelDemoJuceTreeViewItemComponent::mouseDoubleClick(const juce::MouseEvent& event)
void DirectoryModelDemoJuceTreeViewItemComponent::mouseDoubleClick(const juce::MouseEvent &event)
{
using vdm = vdm::DirectoryModel;
if (event.mods.isLeftButtonDown() && vdm::IsDir(m_tree))
Expand All @@ -74,21 +74,20 @@ void DirectoryModelDemoJuceTreeViewItemComponent::onItemIsDirOpenChanged(bool is

//--------------------------------------------------------------------------------

void DirectoryModelDemoJuceTreeViewItemComponent::valueTreePropertyChanged(juce::ValueTree& treeWhosePropertyHasChanged, const juce::Identifier& property)
void DirectoryModelDemoJuceTreeViewItemComponent::valueTreePropertyChanged(juce::ValueTree &treeWhosePropertyHasChanged,
const juce::Identifier &property)
{
if (treeWhosePropertyHasChanged != m_tree)
return;

if (property == vdm::FileSizeUpdateHandler::Key)
{
constexpr std::array<const char *, 5> sizes
{{
"B",
"kB",
"mB",
"gB",
"tB",
}};
constexpr std::array<const char *, 5> sizes{
{
"B", "kB",
"mB", "gB",
"tB", }
};

const float bytes{ m_tree.getProperty(vdm::FileSizeUpdateHandler::Key) };
for (int i = sizes.size() - 1; i >= 0; i--)
Expand All @@ -97,7 +96,8 @@ void DirectoryModelDemoJuceTreeViewItemComponent::valueTreePropertyChanged(juce:
if (value <= bytes)
{
const float fileSize{ bytes / value };
m_sizeString = juce::String(fileSize, juce::exactlyEqual(fileSize, std::floor(fileSize)) ? 0 : 2) + sizes[static_cast<std::size_t>(i)];
m_sizeString = juce::String(fileSize, juce::exactlyEqual(fileSize, std::floor(fileSize)) ? 0 : 2) +
sizes[static_cast<std::size_t>(i)];
break;
}
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -17,16 +17,17 @@ class DirectoryModelDemoJuceTreeViewItemComponent
explicit DirectoryModelDemoJuceTreeViewItemComponent(juce::ValueTree tree);
~DirectoryModelDemoJuceTreeViewItemComponent() override;

void paint(juce::Graphics& g) override;
void paint(juce::Graphics &g) override;

void mouseUp(const juce::MouseEvent& event) override;
void mouseDoubleClick(const juce::MouseEvent& event) override;
void mouseUp(const juce::MouseEvent &event) override;
void mouseDoubleClick(const juce::MouseEvent &event) override;

void onItemSelectedChanged(bool isSelected) override;
void onItemIsDirOpenChanged(bool isDirOpen) override;

private:
void valueTreePropertyChanged(juce::ValueTree& treeWhosePropertyHasChanged, const juce::Identifier& property) override;
void valueTreePropertyChanged(juce::ValueTree &treeWhosePropertyHasChanged,
const juce::Identifier &property) override;

juce::ValueTree m_tree;
juce::String m_sizeString;
Expand Down
4 changes: 2 additions & 2 deletions Demo/DirectoryModelDemo/SelectionViewer.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@ SelectionViewer::~SelectionViewer() = default;

//--------------------------------------------------------------------------------

void SelectionViewer::onSelectedTreeChanged(juce::ValueTree tree)
void SelectionViewer::onTreeSelectionChanged(juce::ValueTree tree)
{
if (vdm::SelectionModel::IsSelected(tree))
m_selectedTrees.insert(m_selectedTrees.begin(), tree);
Expand All @@ -22,7 +22,7 @@ void SelectionViewer::onSelectedTreeChanged(juce::ValueTree tree)

//--------------------------------------------------------------------------------

void SelectionViewer::paint(juce::Graphics& g)
void SelectionViewer::paint(juce::Graphics &g)
{
auto b{ getLocalBounds() };

Expand Down
4 changes: 2 additions & 2 deletions Demo/DirectoryModelDemo/SelectionViewer.h
Original file line number Diff line number Diff line change
Expand Up @@ -14,10 +14,10 @@ class SelectionViewer
public:
~SelectionViewer() override;

void paint(juce::Graphics& g) override;
void paint(juce::Graphics &g) override;

private:
void onSelectedTreeChanged(juce::ValueTree tree) override;
void onTreeSelectionChanged(juce::ValueTree tree) override;

std::vector<juce::ValueTree> m_selectedTrees;
};
Expand Down
Loading
Loading