Skip to content

Commit 272ade8

Browse files
authored
Merge af7a73c into a86d1cb
2 parents a86d1cb + af7a73c commit 272ade8

4 files changed

Lines changed: 12 additions & 7 deletions

File tree

source/gui/_addonStoreGui/controls/details.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -201,7 +201,7 @@ def _refresh(self):
201201
self.otherDetailsTextCtrl.SetValue("")
202202
if not details:
203203
self.contentsPanel.Hide()
204-
if self._detailsVM._isLoading:
204+
if self._detailsVM._listVM._isLoading:
205205
self.updateAddonName(AddonDetails._loadingAddonsLabelText)
206206
else:
207207
self.updateAddonName(AddonDetails._noAddonSelectedLabelText)

source/gui/_addonStoreGui/controls/storeDialog.py

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -309,6 +309,8 @@ def _toggleFilterControls(self):
309309
self.includeIncompatibleCtrl.Disable()
310310

311311
def onListTabPageChange(self, evt: wx.EVT_CHOICE):
312+
self.searchFilterCtrl.SetValue("")
313+
312314
self._storeVM._filterEnabledDisabled = EnabledStatus.ALL
313315
self.enabledFilterCtrl.SetSelection(0)
314316

source/gui/_addonStoreGui/viewModels/addonList.py

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -127,9 +127,9 @@ def __repr__(self) -> str:
127127

128128

129129
class AddonDetailsVM:
130-
def __init__(self, listItem: Optional[AddonListItemVM] = None):
131-
self._listItem: Optional[AddonListItemVM] = listItem
132-
self._isLoading: bool = False
130+
def __init__(self, listVM: AddonListVM):
131+
self._listVM = listVM
132+
self._listItem: Optional[AddonListItemVM] = listVM.getSelection()
133133
self.updated = extensionPoints.Action() # triggered by setting L{self._listItem}
134134

135135
@property
@@ -158,6 +158,7 @@ def __init__(
158158
addons: List[AddonListItemVM],
159159
storeVM: "AddonStoreVM",
160160
):
161+
self._isLoading: bool = False
161162
self._addons: CaseInsensitiveDict[AddonListItemVM] = CaseInsensitiveDict()
162163
self._storeVM = storeVM
163164
self.itemUpdated = extensionPoints.Action()

source/gui/_addonStoreGui/viewModels/store.py

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -98,7 +98,7 @@ def __init__(self):
9898
storeVM=self,
9999
)
100100
self.detailsVM: AddonDetailsVM = AddonDetailsVM(
101-
listItem=self.listVM.getSelection()
101+
listVM=self.listVM
102102
)
103103
self.actionVMList = self._makeActionsList()
104104
self.listVM.selectionChanged.register(self._onSelectedItemChanged)
@@ -370,7 +370,7 @@ def refresh(self):
370370
raise NotImplementedError(f"Unhandled status filter key {self._filteredStatusKey}")
371371

372372
def _getAvailableAddonsInBG(self):
373-
self.detailsVM._isLoading = True
373+
self.listVM._isLoading = True
374374
self.listVM.resetListItems([])
375375
log.debug("getting available addons in the background")
376376
assert addonDataManager
@@ -393,7 +393,9 @@ def _getAvailableAddonsInBG(self):
393393
self._availableAddons = availableAddons
394394
self.listVM.resetListItems(self._createListItemVMs())
395395
self.detailsVM.listItem = self.listVM.getSelection()
396-
self.detailsVM._isLoading = False
396+
self.listVM._isLoading = False
397+
# ensure calling on the main thread.
398+
core.callLater(delay=0, callable=self.detailsVM.updated.notify, addonDetailsVM=self.detailsVM)
397399
log.debug("completed refresh")
398400

399401
def cancelDownloads(self):

0 commit comments

Comments
 (0)