mirror of
https://github.com/Ultimaker/Cura.git
synced 2025-07-24 23:23:57 -06:00
Type in the search-bar and the remote package list reacts.
It doesn't do any actual searching yet though. Also switching between page doesn't work like it's supposed to yet (and probalby more of that sort of cases). part of CURA-8559
This commit is contained in:
parent
bc0b7301e5
commit
d7ac307ace
2 changed files with 30 additions and 3 deletions
|
@ -32,6 +32,7 @@ class RemotePackageList(PackageList):
|
|||
self._scope = JsonDecoratorScope(UltimakerCloudScope(CuraApplication.getInstance()))
|
||||
|
||||
self._package_type_filter = ""
|
||||
self._search_string = ""
|
||||
self._request_url = self._initialRequestUrl()
|
||||
self.isLoadingChanged.emit()
|
||||
|
||||
|
@ -69,6 +70,7 @@ class RemotePackageList(PackageList):
|
|||
self._request_url = self._initialRequestUrl()
|
||||
|
||||
packageTypeFilterChanged = pyqtSignal()
|
||||
searchStringChanged = pyqtSignal()
|
||||
|
||||
def setPackageTypeFilter(self, new_filter: str) -> None:
|
||||
if new_filter != self._package_type_filter:
|
||||
|
@ -76,6 +78,12 @@ class RemotePackageList(PackageList):
|
|||
self.reset()
|
||||
self.packageTypeFilterChanged.emit()
|
||||
|
||||
def setSearchString(self, new_search: str) -> None:
|
||||
if new_search != self._search_string:
|
||||
self._search_string = new_search
|
||||
self.reset()
|
||||
self.searchStringChanged.emit()
|
||||
|
||||
@pyqtProperty(str, fset = setPackageTypeFilter, notify = packageTypeFilterChanged)
|
||||
def packageTypeFilter(self) -> str:
|
||||
"""
|
||||
|
@ -84,14 +92,26 @@ class RemotePackageList(PackageList):
|
|||
"""
|
||||
return self._package_type_filter
|
||||
|
||||
@pyqtProperty(str, fset = setSearchString, notify = searchStringChanged)
|
||||
def searchString(self) -> str:
|
||||
"""
|
||||
Get the string the user is currently searching for within the packages, or an empty string if no extra search
|
||||
filter has to be applied. Does not override package-type filter!
|
||||
:return: String the user is searching for. Empty denotes 'no search filter'.
|
||||
"""
|
||||
return self._search_string
|
||||
|
||||
def _initialRequestUrl(self) -> str:
|
||||
"""
|
||||
Get the URL to request the first paginated page with.
|
||||
:return: A URL to request.
|
||||
"""
|
||||
request_url = f"{Marketplace.PACKAGES_URL}?limit={self.ITEMS_PER_PAGE}"
|
||||
if self._package_type_filter != "":
|
||||
return f"{Marketplace.PACKAGES_URL}?package_type={self._package_type_filter}&limit={self.ITEMS_PER_PAGE}"
|
||||
return f"{Marketplace.PACKAGES_URL}?limit={self.ITEMS_PER_PAGE}"
|
||||
request_url += f"&package_type={self._package_type_filter}"
|
||||
if self._search_string != "":
|
||||
request_url += f"" # TODO
|
||||
return request_url
|
||||
|
||||
def _parseResponse(self, reply: "QNetworkReply") -> None:
|
||||
"""
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue