diff --git a/include/eepp/ui/uiicon.hpp b/include/eepp/ui/uiicon.hpp index e082781ec..9dcd6db0a 100644 --- a/include/eepp/ui/uiicon.hpp +++ b/include/eepp/ui/uiicon.hpp @@ -34,6 +34,8 @@ class EE_API UIGlyphIcon : public UIIcon { public: static UIIcon* New( const std::string& name, FontTrueType* font, const Uint32& codePoint ); + virtual ~UIGlyphIcon(); + virtual Drawable* getSize( const int& size ) const; protected: @@ -41,6 +43,7 @@ class EE_API UIGlyphIcon : public UIIcon { mutable FontTrueType* mFont; Uint32 mCodePoint; + Uint32 mCloseCb{0}; }; }} // namespace EE::UI diff --git a/projects/windows/ee.files b/projects/windows/ee.files index b22f377fa..14d74e6ea 100644 --- a/projects/windows/ee.files +++ b/projects/windows/ee.files @@ -1,4 +1,5 @@ ../../README.md +../../TODO.md ../../bin/assets/colorschemes/colorschemes.conf ../../bin/assets/ee.ini ../../bin/assets/layouts/imported.css @@ -233,6 +234,7 @@ ../../include/eepp/system/condition.hpp ../../include/eepp/system/container.hpp ../../include/eepp/system/directorypack.hpp +../../include/eepp/system/fileinfo.hpp ../../include/eepp/system/filesystem.hpp ../../include/eepp/system.hpp ../../include/eepp/system/functionstring.hpp @@ -247,7 +249,7 @@ ../../include/eepp/system/iostreamzip.hpp ../../include/eepp/system/lock.hpp ../../include/eepp/system/log.hpp -../../include/eepp/system/luapatternmatcher.hpp +../../include/eepp/system/luapattern.hpp ../../include/eepp/system/md5.hpp ../../include/eepp/system/mutex.hpp ../../include/eepp/system/pack.hpp @@ -293,8 +295,14 @@ ../../include/eepp/thirdparty/chipmunk/cpSpatialIndex.h ../../include/eepp/thirdparty/chipmunk/cpVect.h ../../include/eepp/thirdparty/PlusCallback/callback.hpp +../../include/eepp/ui/models/model.hpp +../../include/eepp/ui/abstract/uiabstracttableview.hpp +../../include/eepp/ui/abstract/uiabstractview.hpp ../../include/eepp/ui/base.hpp ../../include/eepp/ui.hpp +../../include/eepp/ui/models/modeleditingdelegate.hpp +../../include/eepp/ui/models/modelindex.hpp +../../include/eepp/ui/models/modelselection.hpp ../../include/eepp/ui/border.hpp ../../include/eepp/ui/css/animationdefinition.hpp ../../include/eepp/ui/css/drawableimageparser.hpp @@ -330,8 +338,17 @@ ../../include/eepp/ui/doc/undostack.hpp ../../include/eepp/ui/keyboardshortcut.hpp ../../include/eepp/ui/marginmove/scale.hpp +../../include/eepp/ui/models/filesystemmodel.hpp +../../include/eepp/ui/models/itemlistmodel.hpp +../../include/eepp/ui/models/model.hpp +../../include/eepp/ui/models/modelindex.hpp +../../include/eepp/ui/models/modelselection.hpp +../../include/eepp/ui/models/sortingproxymodel.hpp +../../include/eepp/ui/models/widgettreemodel.hpp ../../include/eepp/ui/tools/textureatlaseditor.hpp +../../include/eepp/ui/tools/uicodeeditorsplitter.hpp ../../include/eepp/ui/tools/uicolorpicker.hpp +../../include/eepp/ui/uiabstractview.hpp ../../include/eepp/ui/uibackgrounddrawable.hpp ../../include/eepp/ui/uiborderdrawable.hpp ../../include/eepp/ui/uicheckbox.hpp @@ -343,6 +360,7 @@ ../../include/eepp/ui/uifontstyleconfig.hpp ../../include/eepp/ui/uigridlayout.hpp ../../include/eepp/ui/uihelper.hpp +../../include/eepp/ui/uiicon.hpp ../../include/eepp/ui/uiicontheme.hpp ../../include/eepp/ui/uiiconthememanager.hpp ../../include/eepp/ui/uiimage.hpp @@ -351,6 +369,7 @@ ../../include/eepp/ui/uilinearlayout.hpp ../../include/eepp/ui/uilistbox.hpp ../../include/eepp/ui/uilistboxitem.hpp +../../include/eepp/ui/uilistview.hpp ../../include/eepp/ui/uiloader.hpp ../../include/eepp/ui/uimanager.hpp ../../include/eepp/ui/uimenubar.hpp @@ -369,6 +388,7 @@ ../../include/eepp/ui/uiradiobutton.hpp ../../include/eepp/ui/uirelativelayout.hpp ../../include/eepp/ui/uiscenenode.hpp +../../include/eepp/ui/uiscrollablewidget.hpp ../../include/eepp/ui/uiscrollbar.hpp ../../include/eepp/ui/uiscrollview.hpp ../../include/eepp/ui/uiselectbutton.hpp @@ -382,7 +402,9 @@ ../../include/eepp/ui/uistyle.hpp ../../include/eepp/ui/uitab.hpp ../../include/eepp/ui/uitablecell.hpp -../../include/eepp/ui/uitable.hpp +../../include/eepp/ui/uitableheadercolumn.hpp +../../include/eepp/ui/uitablerow.hpp +../../include/eepp/ui/uitableview.hpp ../../include/eepp/ui/uitabwidget.hpp ../../include/eepp/ui/uitextedit.hpp ../../include/eepp/ui/uitextinput.hpp @@ -393,9 +415,12 @@ ../../include/eepp/ui/uithememanager.hpp ../../include/eepp/ui/uitooltip.hpp ../../include/eepp/ui/uitouchdraggablewidget.hpp +../../include/eepp/ui/uitreeview.hpp ../../include/eepp/ui/uiviewpager.hpp ../../include/eepp/ui/uiwidgetcreator.hpp ../../include/eepp/ui/uiwidget.hpp +../../include/eepp/ui/uiwidgettable.hpp +../../include/eepp/ui/uiwidgettablerow.hpp ../../include/eepp/ui/uiwindow.hpp ../../include/eepp/version.hpp ../../include/eepp/window/base.hpp @@ -700,6 +725,7 @@ ../../src/eepp/system/compression.cpp ../../src/eepp/system/condition.cpp ../../src/eepp/system/directorypack.cpp +../../src/eepp/system/fileinfo.cpp ../../src/eepp/system/filesystem.cpp ../../src/eepp/system/functionstring.cpp ../../src/eepp/system/inifile.cpp @@ -714,7 +740,7 @@ ../../src/eepp/system/log.cpp ../../src/eepp/system/lua-str.cpp ../../src/eepp/system/lua-str.hpp -../../src/eepp/system/luapatternmatcher.cpp +../../src/eepp/system/luapattern.cpp ../../src/eepp/system/md5.cpp ../../src/eepp/system/mutex.cpp ../../src/eepp/system/objectloader.cpp @@ -752,6 +778,11 @@ ../../src/eepp/system/translator.cpp ../../src/eepp/system/virtualfilesystem.cpp ../../src/eepp/system/zip.cpp +../../src/eepp/ui/abstract/filesystemmodel.hpp +../../src/eepp/ui/models/model.cpp +../../src/eepp/ui/models/modelselection.cpp +../../src/eepp/ui/abstract/uiabstracttableview.cpp +../../src/eepp/ui/abstract/uiabstractview.cpp ../../src/eepp/ui/border.cpp ../../src/eepp/ui/css/animationdefinition.cpp ../../src/eepp/ui/css/drawableimageparser.cpp @@ -782,12 +813,19 @@ ../../src/eepp/ui/doc/textdocument.cpp ../../src/eepp/ui/doc/undostack.cpp ../../src/eepp/ui/keyboardshortcut.cpp +../../src/eepp/ui/models/filesystemmodel.cpp +../../src/eepp/ui/models/model.cpp +../../src/eepp/ui/models/modelselection.cpp +../../src/eepp/ui/models/sortingproxymodel.cpp +../../src/eepp/ui/models/widgettreemodel.cpp ../../src/eepp/ui/tools/textureatlaseditor.cpp ../../src/eepp/ui/tools/textureatlasnew.cpp ../../src/eepp/ui/tools/textureatlasnew.hpp ../../src/eepp/ui/tools/textureatlastextureregioneditor.cpp ../../src/eepp/ui/tools/textureatlastextureregioneditor.hpp +../../src/eepp/ui/tools/uicodeeditorsplitter.cpp ../../src/eepp/ui/tools/uicolorpicker.cpp +../../src/eepp/ui/uiabstractview.cpp ../../src/eepp/ui/uibackgrounddrawable.cpp ../../src/eepp/ui/uiborderdrawable.cpp ../../src/eepp/ui/uicheckbox.cpp @@ -797,6 +835,7 @@ ../../src/eepp/ui/uieventdispatcher.cpp ../../src/eepp/ui/uifiledialog.cpp ../../src/eepp/ui/uigridlayout.cpp +../../src/eepp/ui/uiicon.cpp ../../src/eepp/ui/uiicontheme.cpp ../../src/eepp/ui/uiiconthememanager.cpp ../../src/eepp/ui/uiimage.cpp @@ -804,6 +843,7 @@ ../../src/eepp/ui/uilinearlayout.cpp ../../src/eepp/ui/uilistbox.cpp ../../src/eepp/ui/uilistboxitem.cpp +../../src/eepp/ui/uilistview.cpp ../../src/eepp/ui/uiloader.cpp ../../src/eepp/ui/uimanager.cpp ../../src/eepp/ui/uimenubar.cpp @@ -822,6 +862,7 @@ ../../src/eepp/ui/uiradiobutton.cpp ../../src/eepp/ui/uirelativelayout.cpp ../../src/eepp/ui/uiscenenode.cpp +../../src/eepp/ui/uiscrollablewidget.cpp ../../src/eepp/ui/uiscrollbar.cpp ../../src/eepp/ui/uiscrollview.cpp ../../src/eepp/ui/uiselectbutton.cpp @@ -834,8 +875,8 @@ ../../src/eepp/ui/uistate.cpp ../../src/eepp/ui/uistyle.cpp ../../src/eepp/ui/uitab.cpp -../../src/eepp/ui/uitablecell.cpp -../../src/eepp/ui/uitable.cpp +../../src/eepp/ui/uitableheadercolumn.cpp +../../src/eepp/ui/uitableview.cpp ../../src/eepp/ui/uitabwidget.cpp ../../src/eepp/ui/uitextedit.cpp ../../src/eepp/ui/uitextinput.cpp @@ -846,9 +887,12 @@ ../../src/eepp/ui/uithememanager.cpp ../../src/eepp/ui/uitooltip.cpp ../../src/eepp/ui/uitouchdraggablewidget.cpp +../../src/eepp/ui/uitreeview.cpp ../../src/eepp/ui/uiviewpager.cpp ../../src/eepp/ui/uiwidget.cpp ../../src/eepp/ui/uiwidgetcreator.cpp +../../src/eepp/ui/uiwidgettable.cpp +../../src/eepp/ui/uiwidgettablerow.cpp ../../src/eepp/ui/uiwindow.cpp ../../src/eepp/window/backend/allegro5/cbackendal.hpp ../../src/eepp/window/backend/allegro5/cclipboardal.cpp @@ -969,8 +1013,18 @@ ../../src/thirdparty/SOIL2/src/SOIL2/stbi_pkm.h ../../src/thirdparty/SOIL2/src/SOIL2/stbi_pvr_c.h ../../src/thirdparty/SOIL2/src/SOIL2/stbi_pvr.h +../../src/tools/codeeditor/autocompletemodule.cpp +../../src/tools/codeeditor/autocompletemodule.hpp ../../src/tools/codeeditor/codeeditor.cpp ../../src/tools/codeeditor/codeeditor.hpp +../../src/tools/codeeditor/ignorematcher.cpp +../../src/tools/codeeditor/ignorematcher.hpp +../../src/tools/codeeditor/projectdirectorytree.cpp +../../src/tools/codeeditor/projectdirectorytree.hpp +../../src/tools/codeeditor/projectsearch.cpp +../../src/tools/codeeditor/projectsearch.hpp +../../src/tools/codeeditor/uicodeeditorsplitter.cpp +../../src/tools/codeeditor/uicodeeditorsplitter.hpp ../../src/tools/mapeditor/mapeditor.cpp ../../src/tools/textureatlaseditor/textureatlaseditor.cpp ../../src/tools/texturepacker/texturepacker.cpp diff --git a/src/eepp/graphics/fonttruetype.cpp b/src/eepp/graphics/fonttruetype.cpp index 65b5dd759..1e8d500b4 100644 --- a/src/eepp/graphics/fonttruetype.cpp +++ b/src/eepp/graphics/fonttruetype.cpp @@ -446,6 +446,9 @@ FontTrueType& FontTrueType::operator=( const FontTrueType& right ) { void FontTrueType::cleanup() { sendEvent( Event::Unload ); + mCallbacks.clear(); + mNumCallBacks = 0; + // Check if we must destroy the FreeType pointers if ( mRefCount ) { // Decrease the reference counter diff --git a/src/eepp/ui/models/sortingproxymodel.cpp b/src/eepp/ui/models/sortingproxymodel.cpp index ecb7060bc..6c6fe5ff8 100644 --- a/src/eepp/ui/models/sortingproxymodel.cpp +++ b/src/eepp/ui/models/sortingproxymodel.cpp @@ -105,8 +105,9 @@ void SortingProxyModel::resort( unsigned flags ) { return; } std::sort( mRowMappings.begin(), mRowMappings.end(), [&]( auto row1, auto row2 ) -> bool { - Variant data1 = target().data( target().index( row1, mKeyColumn ), mSortRole ); - Variant data2 = target().data( target().index( row2, mKeyColumn ), mSortRole ); + Model& target = this->target(); + Variant data1 = target.data( target.index( row1, mKeyColumn ), mSortRole ); + Variant data2 = target.data( target.index( row2, mKeyColumn ), mSortRole ); if ( data1 == data2 ) return 0; bool isLessThan; diff --git a/src/eepp/ui/uiicon.cpp b/src/eepp/ui/uiicon.cpp index 22fd32564..ab6dccfc1 100644 --- a/src/eepp/ui/uiicon.cpp +++ b/src/eepp/ui/uiicon.cpp @@ -53,10 +53,18 @@ Drawable* UIGlyphIcon::getSize( const int& size ) const { UIGlyphIcon::UIGlyphIcon( const std::string& name, FontTrueType* font, const Uint32& codePoint ) : UIIcon( name ), mFont( font ), mCodePoint( codePoint ) { eeASSERT( mFont ); - mFont->pushFontEventCallback( [&]( Uint32, Font::Event event, Font* ) { + mCloseCb = mFont->pushFontEventCallback( [&]( Uint32, Font::Event event, Font* ) { if ( event == Font::Event::Unload ) mFont = nullptr; } ); } +UIGlyphIcon::~UIGlyphIcon() { + if ( mFont && mCloseCb != 0 ) { + mFont->popFontEventCallback( mCloseCb ); + mFont = nullptr; + mCloseCb = 0; + } +} + }} // namespace EE::UI