-
Notifications
You must be signed in to change notification settings - Fork 136
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
PR: Implement Profile Sidebar and New Setting Interface #1809
Conversation
Current TODO:
Anything else that should be added, or suggestions for improving the sidebar design/implementation please let me know :) |
…ified profile add button
Screenshot looks good and there is space for a full list of profiles. 👍 |
As I said I dought we need a profile management tab but a repe management tab could be useful. Can you make it so that the settings button has different states when the settings are open or closed? |
What features would we like to see in the repo management tab? Maybe we move the repo actions from the archive tab to here?
Sure - maybe have the button label change to " <- Home " or "Exit Settings"? Or simply fill it in with a background color? |
I think you're on the right track. My thoughts:
|
When I tested this PR that wasn't the case. |
Maybe
It would be. The tab would resolve #1198. |
I may need additional clarity here, or maybe an example of the Apple window you have in mind? I can allow the profile list to dynamically expand further down to accommodate more profiles, and this would cover most use cases, however with enough profiles there would inevitably be some vertical scrolling.
This is not the current behavior, but I could implement it. I'm open to other ideas too, maybe a 'back' or 'home' button in the top left of the interface that always takes users back to the repository tab?
@real-yfprojects idea of a |
That would be great!
You can make the list expand automatically filling the room that currently resides between the list and the settings button. |
I implemented both of those features this morning. Check it out and LMK when you think! Also, regarding the repo management tab - did we want this to be a separate PR, or combine it here? |
Can you swap the trash can through a minus sign? And right align the plus and minus sign while left aligning the others? |
I would rather leave that for a separate PR. Regarding the about view can you add the following?
|
Done 👍
Certainly.
|
Then you could also add one of the GPL logos and a python logo. |
After talking with @m3nu, a few ideas came up for discussion:
@real-yfprojects Do you have any feedback/ideas for these topics? |
Actually, I would make the size dependent on the window size. Basically like it is done in the screenshot of the network dialog you shared.
Didn't we already decide to do that?
Not sure how this will look in Qt, but feel free to share a screenshot once possible. |
@m3nu Added changes:
Next I will work to allow changing the size between profile list and the rest of the app, and then I will write tests for the new features. |
Hey Ted, thanks for those latest changes. I think it's coming along nicely and gives it a new and polished look. Regarding the button state, we need to be careful with colors due to different skins in Qt, as well as dark/light node. Maybe just make the button font bold, if that's possible? I couldn't find a suitable "button active" state in the docs. |
I implemented this change 👍 |
Marked as ready for review. Slightly reduced scope from the original outline, but this profile sidebar should make our users happy. After this is merged into master, I will create a follow-up post about features that remain to be implemented. |
Work well here. Can be merged. What do you think @real-yfprojects @Hofer-Julian ? Some screenshots: |
Is Where is |
Looks pretty cool! That's exactly what I had in mind when added this task to the ideas page. |
src/vorta/views/utils.py
Outdated
def get_colored_pixmap(icon_name, scaled_height): | ||
""" | ||
Return SVG icon in the correct color. | ||
""" | ||
with open(get_asset(f"icons/{icon_name}.svg"), 'rb') as svg_file: | ||
svg_str = svg_file.read() | ||
if uses_dark_mode(): | ||
svg_str = svg_str.replace(b'#000000', b'#ffffff') | ||
# Reduce image size to specified scaled height | ||
svg_img = QImage.fromData(svg_str).scaledToHeight(scaled_height) | ||
|
||
return QPixmap(svg_img) |
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.
It would make sense to alter get_colored_icon
so that it uses this new method.
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 added a couple optional args in get_colored_icon
to accomplish this 👍
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.
Screenshots look good to me
@m3nu removed extra icon, switched to Material for the settings_wheel, and removed the extra utils function @real-yfprojects pointed out. Please let me know if there is anything else to button up before merge 👍 |
Nothing left to add from me. If nobody objects, I'll merge this and do a new beta-release to get even broader testing. Thanks all! |
This concludes @bigtedde's GSoC projects. Thanks again for the great work and for extending to finish everything. |
Description
Vorta allows configuring profiles. A profile defines a number of sources, a backup destination, a schedule and some more settings. Currently there is a ComboBox for selecting a profile at the top of the window alongside buttons for adding or removing profiles. All profiles are active at the same time. However you can only edit the profile selected. This happens in the tabs below. The Misc tab is an exception. It contains the global settings that aren't associated to a profile.
In this task you will implement a sidebar next to the tab widget that replaces the current way of selecting a profile to edit. The sidebar should be comprised of a list with the configured profiles that can be selected and a visually distinct Misc item that gives access to the global settings. The old Misc tab will be removed in favour of this new user interface. The new Misc item now provides space for an about view and a way to manage profiles configured in Vorta.
Task outline: Implement the profile list that will be part of the sidebar. Add buttons for editing the profile list. Remove the old profile management GUI elements. Implement Misc item and the corresponding view. Move global settings to the new Misc view. Create an About tab and add it to the new Misc view. Implement a repository management tab and add it to the new Misc view. Write unittests for the new GUI parts.
Related Issue
Addresses #1677
Motivation and Context
Easier management of profiles, separates the global settings tab from profile-specific tabs
How Has This Been Tested?
Due to the nature of a main window redesign, some current tests will be broken until the final design is approved and I refactor the tests.
Most Recent Demo:
Types of changes
Checklist:
I provide my contribution under the terms of the license of this repository and I affirm the Developer Certificate of Origin.
@m3nu @real-yfprojects