-
Notifications
You must be signed in to change notification settings - Fork 784
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Core: KivyMD and Launcher overhaul #3934
base: main
Are you sure you want to change the base?
Conversation
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I doubled the movement on each scroll wheel tick, but we can probably adjust that one to taste with a proper beta version. The "not scrolling by click and drag" was intentional because of some weirdness with it, but I think this is more an issue of the base KivyMD scroll effect. Gonna mess with it some and see if I can't just swap in the base Kivy version.
Fixed, to the point we don't even need the |
code and functionality looks good on first blush, will test a bit more extensively later |
FYI the imageloader stuff in #3629 does require use of the ApAsyncImage class in kvui instead of AsyncImage directly, else it should be plug and play |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
all my previous comments were addressed and noticed no new issues in using the UI
@@ -58,8 +60,9 @@ class Component: | |||
def __init__(self, display_name: str, script_name: Optional[str] = None, frozen_name: Optional[str] = None, | |||
cli: bool = False, icon: str = 'icon', component_type: Optional[Type] = None, | |||
func: Optional[Callable] = None, file_identifier: Optional[Callable[[str], bool]] = None, | |||
game_name: Optional[str] = None, supports_uri: Optional[bool] = False): | |||
game_name: Optional[str] = None, supports_uri: Optional[bool] = False, description: Optional[str] = None): |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Why not make description non-optional and set the default to ""
? Seems like it would save a few characters and simplify the type.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
at least one argument against doing this is that this would make it so that if anyone modified the description without replacing it, it'd change it for all components using the default, so this is good practice for the intention.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Python strings are immutable, though, it's impossible to modify without replacing.
What is this fixing or adding?
Shifts the contents of
kvui.py
, and thus all CommonClient-based clients as well as Launcher, to using KivyMD. KivyMD is an extension for Kivy that is almost fully compatible with pre-existing Kivy components, while providing Material Design support for theming and overall visual design as well as useful pre-existing built in components such as Snackbars, Tooltips, and a built-in File Manager (not currently being used).As a part of this shift, the launcher was completely overhauled, adding the ability to filter the list of components down to each type of component, the ability to define favorite components and filter to them, and add shortcuts for launcher components to the desktop. An optional description field was added to Component for display within the new launcher.
The theme (Light/Dark) and primary palette have also been exposed to users via client/user.kv.
How was this tested?
Manually, across the span of numerous unsupported games. I'm considering putting out a pre-release version for wider testing as well.
The Launcher changes were tested manually, both in a frozen build and on source.
If this makes graphical changes, please attach screenshots.
Launcher - Dark/Green
![image](https://private-user-images.githubusercontent.com/58583688/367146300-34a0277f-e4e7-4ca8-af77-d722911480af.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3Mzg4MTcyODYsIm5iZiI6MTczODgxNjk4NiwicGF0aCI6Ii81ODU4MzY4OC8zNjcxNDYzMDAtMzRhMDI3N2YtZTRlNy00Y2E4LWFmNzctZDcyMjkxMTQ4MGFmLnBuZz9YLUFtei1BbGdvcml0aG09QVdTNC1ITUFDLVNIQTI1NiZYLUFtei1DcmVkZW50aWFsPUFLSUFWQ09EWUxTQTUzUFFLNFpBJTJGMjAyNTAyMDYlMkZ1cy1lYXN0LTElMkZzMyUyRmF3czRfcmVxdWVzdCZYLUFtei1EYXRlPTIwMjUwMjA2VDA0NDMwNlomWC1BbXotRXhwaXJlcz0zMDAmWC1BbXotU2lnbmF0dXJlPTAxM2YzNTllZjY2ZGM0OTYwNzc0MmU4YzgwOTJlYjk2Y2FjYmQ3NGM5MTVkYjcxMmE1ZDRmMzc1MDRhMzIxNGMmWC1BbXotU2lnbmVkSGVhZGVycz1ob3N0In0.cZbaIc2KOVp3v5KBa-Jkwb_WtWT6hat-mYCPcEVLYW8)
Launcher - Light/Lavenderblush
![image](https://private-user-images.githubusercontent.com/58583688/367147948-3364c1e8-78ff-4537-ad3e-d7bae6fe20bf.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3Mzg4MTcyODYsIm5iZiI6MTczODgxNjk4NiwicGF0aCI6Ii81ODU4MzY4OC8zNjcxNDc5NDgtMzM2NGMxZTgtNzhmZi00NTM3LWFkM2UtZDdiYWU2ZmUyMGJmLnBuZz9YLUFtei1BbGdvcml0aG09QVdTNC1ITUFDLVNIQTI1NiZYLUFtei1DcmVkZW50aWFsPUFLSUFWQ09EWUxTQTUzUFFLNFpBJTJGMjAyNTAyMDYlMkZ1cy1lYXN0LTElMkZzMyUyRmF3czRfcmVxdWVzdCZYLUFtei1EYXRlPTIwMjUwMjA2VDA0NDMwNlomWC1BbXotRXhwaXJlcz0zMDAmWC1BbXotU2lnbmF0dXJlPTRlMTlhN2RjYzg4ODRlYTE5YjQ2NGJhMTczYWMxYzBlYjdhNjIzNGUxZDQ3MTQ4NjIxYjAwYWFjMjc1NDRkOGMmWC1BbXotU2lnbmVkSGVhZGVycz1ob3N0In0.H1_pvQiEBxXDjw4CQofXHWLSpRyBoW8uM7dfmrdfDuk)
Launcher - Dark/Violet
![image](https://private-user-images.githubusercontent.com/58583688/367152992-86d74e93-371e-421d-b2fc-c67a30b48fc0.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3Mzg4MTcyODYsIm5iZiI6MTczODgxNjk4NiwicGF0aCI6Ii81ODU4MzY4OC8zNjcxNTI5OTItODZkNzRlOTMtMzcxZS00MjFkLWIyZmMtYzY3YTMwYjQ4ZmMwLnBuZz9YLUFtei1BbGdvcml0aG09QVdTNC1ITUFDLVNIQTI1NiZYLUFtei1DcmVkZW50aWFsPUFLSUFWQ09EWUxTQTUzUFFLNFpBJTJGMjAyNTAyMDYlMkZ1cy1lYXN0LTElMkZzMyUyRmF3czRfcmVxdWVzdCZYLUFtei1EYXRlPTIwMjUwMjA2VDA0NDMwNlomWC1BbXotRXhwaXJlcz0zMDAmWC1BbXotU2lnbmF0dXJlPTIxNzVkNThlZTc3MWNiMDM5NGI0OTBjY2U4MmMwNDlmZjA4MTVlYTllOGFiNTZhYmM2ZjAyNDk3M2E5ZjUzMGImWC1BbXotU2lnbmVkSGVhZGVycz1ob3N0In0.LwC_AA8ITVXRexxxfp6O7uArGQi6EAA7hFCSnO-_5K8)
Text Client - Dark/Red
![image](https://private-user-images.githubusercontent.com/58583688/367148124-378d2649-76b9-46fe-a333-f7e3ee044832.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3Mzg4MTcyODYsIm5iZiI6MTczODgxNjk4NiwicGF0aCI6Ii81ODU4MzY4OC8zNjcxNDgxMjQtMzc4ZDI2NDktNzZiOS00NmZlLWEzMzMtZjdlM2VlMDQ0ODMyLnBuZz9YLUFtei1BbGdvcml0aG09QVdTNC1ITUFDLVNIQTI1NiZYLUFtei1DcmVkZW50aWFsPUFLSUFWQ09EWUxTQTUzUFFLNFpBJTJGMjAyNTAyMDYlMkZ1cy1lYXN0LTElMkZzMyUyRmF3czRfcmVxdWVzdCZYLUFtei1EYXRlPTIwMjUwMjA2VDA0NDMwNlomWC1BbXotRXhwaXJlcz0zMDAmWC1BbXotU2lnbmF0dXJlPWZkMGQ3NDg3ODdlNGZiZmQ2MzEzZTk1NmFmMjBkYmJkNWQyNWRmNTVhMzkzNTIzNDI0ODE2MjdlYjFkNWUyNTgmWC1BbXotU2lnbmVkSGVhZGVycz1ob3N0In0.b9EbjdK_Jtj6o2dj0RZe1SZqB9AC5L_65jYS4i3zGWA)
Text Client - Dark/Cyan
![image](https://private-user-images.githubusercontent.com/58583688/367148532-a6fd812a-81ca-4684-9fc7-b08cda9b6b49.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3Mzg4MTcyODYsIm5iZiI6MTczODgxNjk4NiwicGF0aCI6Ii81ODU4MzY4OC8zNjcxNDg1MzItYTZmZDgxMmEtODFjYS00Njg0LTlmYzctYjA4Y2RhOWI2YjQ5LnBuZz9YLUFtei1BbGdvcml0aG09QVdTNC1ITUFDLVNIQTI1NiZYLUFtei1DcmVkZW50aWFsPUFLSUFWQ09EWUxTQTUzUFFLNFpBJTJGMjAyNTAyMDYlMkZ1cy1lYXN0LTElMkZzMyUyRmF3czRfcmVxdWVzdCZYLUFtei1EYXRlPTIwMjUwMjA2VDA0NDMwNlomWC1BbXotRXhwaXJlcz0zMDAmWC1BbXotU2lnbmF0dXJlPTY1MzY3N2JhZDg0YmI0MDQ5ODRhMzllN2UyYmU3MWVjZTZlN2MzODUxY2QyNGVmNTlkMGVhZWFiOTAwZGFkZjImWC1BbXotU2lnbmVkSGVhZGVycz1ob3N0In0.rT7EkIFOyXIpXYzCy4yeIbXm8zmKUjRiLVIeYRdMVyM)