diff --git a/bin/assets/ui/breeze.css b/bin/assets/ui/breeze.css index 9cbf2c076..0e03ea909 100644 --- a/bin/assets/ui/breeze.css +++ b/bin/assets/ui/breeze.css @@ -248,7 +248,9 @@ pushbutton:disabled, selectbutton:disabled, textinput:disabled, textedit:disabled, -textarea:disabled { +textarea:disabled, +DropDownList:disabled, +DropDownModelList:disabled { color: var(--disabled-color); border-color: var(--disabled-border); } diff --git a/include/eepp/ui/abstract/uiabstracttableview.hpp b/include/eepp/ui/abstract/uiabstracttableview.hpp index 4c06f52ee..beb8dce2f 100644 --- a/include/eepp/ui/abstract/uiabstracttableview.hpp +++ b/include/eepp/ui/abstract/uiabstracttableview.hpp @@ -148,6 +148,8 @@ class EE_API UIAbstractTableView : public UIAbstractView { void setSetupCellCb( const std::function& onSetupCellCb ); + void resetSearchText(); + protected: friend class EE::UI::UITableHeaderColumn; friend class EE::UI::UIDropDownModelList; diff --git a/include/eepp/ui/uimultimodelview.hpp b/include/eepp/ui/uimultimodelview.hpp index 41bbc2e12..332e2e5d4 100644 --- a/include/eepp/ui/uimultimodelview.hpp +++ b/include/eepp/ui/uimultimodelview.hpp @@ -19,7 +19,7 @@ class EE_API UIMultiModelView : public UIStackWidget { void setViewMode( const ViewMode& mode ); - UIAbstractView* getCurrentView() const; + UIAbstractTableView* getCurrentView() const; std::shared_ptr getModel() const; diff --git a/src/eepp/ui/abstract/uiabstracttableview.cpp b/src/eepp/ui/abstract/uiabstracttableview.cpp index 2b8e2eb29..dd6e331a2 100644 --- a/src/eepp/ui/abstract/uiabstracttableview.cpp +++ b/src/eepp/ui/abstract/uiabstracttableview.cpp @@ -539,8 +539,7 @@ UITableRow* UIAbstractTableView::createRow() { } } ); rowWidget->on( Event::MouseClick, [this]( const Event* event ) { - if ( !( event->asMouseEvent()->getFlags() & ( EE_BUTTON_LMASK ) ) || - !isRowSelection() ) + if ( !( event->asMouseEvent()->getFlags() & ( EE_BUTTON_LMASK ) ) || !isRowSelection() ) return; auto index = event->getNode()->asType()->getCurIndex(); @@ -919,12 +918,8 @@ Uint32 UIAbstractTableView::onTextInput( const TextInputEvent& event ) { return 0; if ( mSearchTextAction ) removeAction( mSearchTextAction ); - mSearchTextAction = Actions::Runnable::New( - [this] { - mSearchTextAction = nullptr; - mSearchText = ""; - }, - Milliseconds( 750 ) ); + mSearchTextAction = + Actions::Runnable::New( [this] { resetSearchText(); }, Milliseconds( 750 ) ); runAction( mSearchTextAction ); mSearchText += String::trim( String::toLower( event.getText() ) ); if ( mSearchText.empty() ) @@ -960,6 +955,13 @@ Uint32 UIAbstractTableView::onTextInput( const TextInputEvent& event ) { return 1; } +void UIAbstractTableView::resetSearchText() { + if ( mSearchTextAction ) + removeAction( mSearchTextAction ); + mSearchTextAction = nullptr; + mSearchText = ""; +} + bool UIAbstractTableView::tryBeginEditing( KeyBindings::Shortcut fromShortcut ) { if ( isEditable() && getSelection().first().isValid() && getModel() && getModel()->isEditable( getSelection().first() ) && diff --git a/src/eepp/ui/uifiledialog.cpp b/src/eepp/ui/uifiledialog.cpp index a5dbbf1fa..68351ac74 100644 --- a/src/eepp/ui/uifiledialog.cpp +++ b/src/eepp/ui/uifiledialog.cpp @@ -180,7 +180,7 @@ UIFileDialog::UIFileDialog( Uint32 dialogFlags, const std::string& defaultFilePa if ( event->asKeyEvent()->getKeyCode() == KEY_BACKSPACE ) goFolderUp(); } ); - mMultiView->on( Event::OnModelEvent, [&]( const Event* event ) { + mMultiView->on( Event::OnModelEvent, [this]( const Event* event ) { const ModelEvent* modelEvent = static_cast( event ); if ( modelEvent->getModelEventType() == ModelEventType::Open ) { Variant vPath( @@ -195,6 +195,7 @@ UIFileDialog::UIFileDialog( Uint32 dialogFlags, const std::string& defaultFilePa shouldOpenFolder = true; } } + mMultiView->getCurrentView()->resetSearchText(); openFileOrFolder( shouldOpenFolder ); } } diff --git a/src/eepp/ui/uimultimodelview.cpp b/src/eepp/ui/uimultimodelview.cpp index c133e25f2..c54f34126 100644 --- a/src/eepp/ui/uimultimodelview.cpp +++ b/src/eepp/ui/uimultimodelview.cpp @@ -64,7 +64,7 @@ void UIMultiModelView::setViewMode( const ViewMode& mode ) { } } -UIAbstractView* UIMultiModelView::getCurrentView() const { +UIAbstractTableView* UIMultiModelView::getCurrentView() const { switch ( mMode ) { case Table: return mTable;