Have id field on ModelItem base class
This commit is contained in:
parent
5b2c131fd1
commit
592a9fe8e7
9
TODO.md
9
TODO.md
|
@ -3,6 +3,7 @@
|
||||||
- add account number binds
|
- add account number binds
|
||||||
- rename goto*account → scrollto*account
|
- rename goto*account → scrollto*account
|
||||||
|
|
||||||
|
- fix opacity
|
||||||
- fix python error
|
- fix python error
|
||||||
- fix back/front buttons in small window
|
- fix back/front buttons in small window
|
||||||
- fix message delegate too tall
|
- fix message delegate too tall
|
||||||
|
@ -17,6 +18,9 @@
|
||||||
|
|
||||||
- if last room event is a membership change, it won't be visible in timeline
|
- if last room event is a membership change, it won't be visible in timeline
|
||||||
- use uiState instead of open_room
|
- use uiState instead of open_room
|
||||||
|
- clicking on a room with unread counter to see it move right away is weird
|
||||||
|
- rooms without messages on first sync
|
||||||
|
- avatar loading performance problem?
|
||||||
|
|
||||||
## Refactoring
|
## Refactoring
|
||||||
|
|
||||||
|
@ -35,8 +39,6 @@
|
||||||
|
|
||||||
- Drag-scrolling in room pane a tiny bit activates the delegates
|
- Drag-scrolling in room pane a tiny bit activates the delegates
|
||||||
|
|
||||||
- When zooming in enough, "Mirage <version>" label overflows
|
|
||||||
|
|
||||||
- Catch server 5xx errors when sending message and retry
|
- Catch server 5xx errors when sending message and retry
|
||||||
|
|
||||||
- Popups and room settings can't be scrolled when not enough height to show all
|
- Popups and room settings can't be scrolled when not enough height to show all
|
||||||
|
@ -44,9 +46,6 @@
|
||||||
- Handle cases where a known account's access token is invalid
|
- Handle cases where a known account's access token is invalid
|
||||||
- If an account is gone from the user's config, discard UI state last page
|
- If an account is gone from the user's config, discard UI state last page
|
||||||
|
|
||||||
- First sent message in E2E room is sometimes undecryptable
|
|
||||||
(can be fixed by logging out and in again) (still valid?)
|
|
||||||
|
|
||||||
- After forgetting a room, it comes back because of the "you left" event
|
- After forgetting a room, it comes back because of the "you left" event
|
||||||
|
|
||||||
- `code` and links in quote ("> http://example.com") aren't properly colored
|
- `code` and links in quote ("> http://example.com") aren't properly colored
|
||||||
|
|
|
@ -1,5 +1,6 @@
|
||||||
# SPDX-License-Identifier: LGPL-3.0-or-later
|
# SPDX-License-Identifier: LGPL-3.0-or-later
|
||||||
|
|
||||||
|
from dataclasses import dataclass, field
|
||||||
from typing import TYPE_CHECKING, Any, Dict
|
from typing import TYPE_CHECKING, Any, Dict
|
||||||
|
|
||||||
from ..pyotherside_events import ModelItemSet
|
from ..pyotherside_events import ModelItemSet
|
||||||
|
@ -10,6 +11,7 @@ if TYPE_CHECKING:
|
||||||
from .model import Model
|
from .model import Model
|
||||||
|
|
||||||
|
|
||||||
|
@dataclass
|
||||||
class ModelItem:
|
class ModelItem:
|
||||||
"""Base class for items stored inside a `Model`.
|
"""Base class for items stored inside a `Model`.
|
||||||
|
|
||||||
|
@ -21,6 +23,9 @@ class ModelItem:
|
||||||
and thus allow a `Model` to keep its data sorted.
|
and thus allow a `Model` to keep its data sorted.
|
||||||
"""
|
"""
|
||||||
|
|
||||||
|
id: Any = field()
|
||||||
|
|
||||||
|
|
||||||
def __new__(cls, *_args, **_kwargs) -> "ModelItem":
|
def __new__(cls, *_args, **_kwargs) -> "ModelItem":
|
||||||
cls.parent_models: Dict[SyncId, Model] = {}
|
cls.parent_models: Dict[SyncId, Model] = {}
|
||||||
return super().__new__(cls)
|
return super().__new__(cls)
|
||||||
|
|
Loading…
Reference in New Issue
Block a user