Open timlau opened 9 years ago
Relates to #54 Relates to #70
Make a test UI for how the search in yumex could look like
git clone https://github.com/timlau/poc.git cd poc/python/gtk/yumex_ui python3 app.py
@genodeftest @gitjod please take a look at this UI
Big improvement, I think. I would try to implement the search options Prefix, Keyword, Fields and Name, Summary, Description using 6 radio buttons as follows:
@gitjod the problem with that it is harder for the user to see what type of searching is active
I think from a discoverability point of view the radio buttons would be acceptable because as per the implementation in Gnome-Music the Gtk Arrow is inside the search box so in this way every thing relating to search is linked whereas the link between the search box & the search options is still somewhat broken in your current design
Ok @gitjod , here is another try
Looks good to me. I would be interested to know what others think. It's consistent with gnome applications like Gnome-Music or Gnome-Boxes
I like the usage of a separate search bar.
I'd prefer putting all options into the search bar, but that won't be possible (consider localizations). So your proposal is very good. I like the way the options are visible besides the search field.
Quite an improval too. I'd prefer putting those options in a GtkPopover so users actually see where these options belong to. This is more like e.g. gnome-calendar does it.
In both cases I would not use an arrow button since:
preferences-other-symbolic
icon. And (optionally) separate the button from the search entry.As far as I know those options still exist because searching the whole package database is horribly slow. Is there any chance of speeding search up so these buttons won't be necessary any more? To me it looks like these buttons (UI) exist to work around technical limitations. Ideally (in a perfect UI) this won't happen. Is it possible to e.g. load the whole package database into RAM when yumex-dnf/dnfdeamon starts?
open-menu-symbolic
icon.I'd prefer GtkPopovers instead of menus. They fit better to buttons and have a visual indication to where they belong to. Furthermore you can move to GMenu and don't have to create all the Gtk*Buttons manually.
This is what I thought:
I forked your poc
repo and put some of these changes there.
I changed to look a little and used popover for seach options
Here is how it will look in gnome
Happy with that. Popover for search option is good
I have made a new-ui branch of yumex-dnf with the gui changes.
Use the following to test it.
git clone https://github.com/timlau/yumex-dnf.git cd yumex-dnf git checkout new-ui cd src python3 new-main.py
It is only the basic seach & filtering is implemented yet.
Wow, yumex feels way more responsive now! Making the UI not disabled while still adding new packages improves user experience a lot. I hope this change can be permanent! It causes an issue though: If changing the view (left buttons in GtkHeaderBar) while yumex is still adding packages to its GtkTreeView, packages end up in the new GtkTreeView where they don't belong.
I see you improved the dark theme handling. I see two issues:
GTK_THEME=Adwaita:light
on command line (or the other way round) widget behavior is inconsistent. You are reading the gtk-application-prefer-dark-theme
GSettings property which is correct. Looks like a Gtk+ bug to me, but they keep say the GTK_THEME
environment variable is only intended for debugging so this is not an issue for yumex. I'm just noting it here so nobody will stumble upon that later.The GtkPopover
s should have a useful direction set (in this case: down) by using Gtk.Popver.set_position(Gtk.PositionType.BOTTOM)
. If not they will be placed topwards on wayland which makes them partly unreachable on wayland. This is a known issue in Gtk+ with no permanent solution on the toolkit side yet. See these bugs: 1, 2, 3, 4, 5.
In GtkHeaderBar, the GtkSpinner is placed most right which will make the search, apply, menu buttons move around. I guess this is not intended. You could remove it completely in my (weak) opinion since there is another progress indication below.
There is one major thing I don't like yet (but don't have a solution for). Due to its impact on #74 I post it now although it is not finished. Please put it into a separate issue if you think this is better (I am undecided about that). It is affecting the way how views work (and are chosen/activated) in yumex.
show primary-level view switcher (History, Packages) in GtkHeaderBar instead of current second-level view switcher. If History is active, show history (as yumex does currently) but without all the disabled second-level views. If Packages view is active, show the secondary-level switcher (Updates, Installed, Available, Pending, All) with another button to toggle Groups. I don't really know where to place it. Probably in the Packages view stack, maybe in some kind of toolbar.
I hope this proposal is not too hard to implement on limited time and will have some upsides on the code (reduced number of views ⇒ less lines of code to maintain). I'm open for suggestions. I'll make some mockups if you are interested.
PS: You could use a GtkStackSwitcher for those view switchers. It is supported by F23's glade 3.19.0 and has been in Gtk3 since 3.10, should be available on all dnf-based Linux distributions.
I agree with it is not logic that the primary views (pages) is not visible but the second-level (filters) is.
I have added a StackSwitcher for selecting the pages and is only showing the filters when the Packages page is selected.
Maybe the filters shold be moved to a toolbar instead of being shown in the headerbar ?
I have added all the new UI parts to current master branch there will become yumex-dnf 4.2 yumex-dnf 4.1.x is move to the rel_41X branch. So the new UI can be tested by
git clone https://github.com/timlau/yumex-dnf.git cd yumex-dnf cd src ./main.py
Most features is moved to the new UI.
The following is not implemented yet:
Maybe the filters shold be moved to a toolbar instead of being shown in the headerbar ?
That's what I suggested in https://github.com/timlau/yumex-dnf/issues/74#issuecomment-157045271, same with the group thing. Users then would be able (again) to half-maximize yumex-dnf on a fullHD monitor or to maximize on small (≤ 1024 px wide) monitors
Latest updates
Hm, infobar applies to all views, doesn't it? So I guess it should be displayed in every view. I'm not sure about the search bar.
If you by infobar, mean the progress bar, then it applies to all views. searchbar is currently only used by the packages view, but for future use it could be useful in history and groups view too.
Yes, I mean the GtkRevealer including the progress bar.
I don't like the latest update. I think it is confused. I think the solution here is a SideBar. The primary filters can remain Packages, Groups, History & Actions and these filters should be located on the HeaderBar. They should be centred.
If Packages is selected then the options in the SideBar should be Updates, Installed, Available & All with the list of packages appearing in the main window. As these options in the SideBar are currently searchable then the search icon should be available in the HeaderBar.
If Groups is selected then the options in the SideBar should be as currently implemented with the list of packages appearing in the main window. As these options in the SideBar are not currently searchable then the search icon should disappear when the Groups filter has been selected in the HeaderBar.
If History is selected then the options in the SideBar should be the History date & time with the list of packages installed/updated/removed appearing in the main window. As these options in the SideBar are not currently searchable then the search icon should disappear when the History filter has been selected in the HeaderBar.
If Actions is selected then the options in the SideBar should be Updates, Installed, Available & All with the list of packages appearing in the main window. As these options in the SideBar are currently searchable then the search icon should be available in the HeaderBar.
See these screenshots of an implementation of a sidebar in Gnome-Music
@gitjod: Interesting idea. Only downside I find for that is that it takes quite much horizontal space. I thought about putting the font vertically but I guess that will break readability.
Here is a version with filters in a sidebar
Very nice work Tim. I have tested it & like it very much now. Thanks for taking on the ideas of both myself & Christian. The only change now that I would make would be to center Packages, Groups, History & Actions on the HeaderBar but that is a minor criticism. Thanks again, John
More gui tweaks.
@gitjod, the page switcher is now centered on the Headerbar
I have made build of the current master branch available on the yumex-dnf Copr Repository https://copr.fedoraproject.org/coprs/timlau/yumex-dnf/
To make it easier to test.
I will update them frequently
Hi Tim
Just a few remaining inconsistencies I have found in the new design:
Packages, Groups, History & Actions (Pending Changes) appear in both the Headerbar & the Main Menu button. Should these filters be removed now from the Main Menu button?
Also shouldn't the Main Menu button be a popover to match the search options button?
Also perhaps the Run button should only appear in the Headerbar when there is a package selected by the user to install/delete/update? See example from Gnome-Boxes below:
Just a minor point in that there is an inconsistency in the lines or lack thereof that divide the panes in the windows for Packages, Groups, History & Actions:
I hope these observations are of help to you.
Oh, thank you! What I noticed from your copr build:
Pending actions
was renamed to Actions
. Is that intended? I'd prefer Pending Actions
since the Actions
is a bit unclear.Packages, Groups, History & Actions (Pending Changes) appear in both the Headerbar & the Main Menu button. Should these filters be remove now from the Main Menu button?
+1
6.
Also shouldn't the Main Menu button be a popover to match the search options button?
+1
7.
Also perhaps the Run button should only appear when there is a package selected by the user to install/delete/update?
I'd not say "only appear when packages selected" but rather "only be sensitive when packages are selected to install/delete/update/…". Same for Pending Actions
.
@gitjod : Thanks for your feedback.
@genodeftest: Thanks for the feedback.
Tooltips work now (except for being misplaced on wayland, but that's a known Gtk bug), flickering is gone, main menu is cleaned of view switcher. "Pending" was re-renamed to "Pending Actions". That was fast ;)
Without a status icon, "Close will minimize window" doesn't make sense any more and could be removed.
Making the 'Apply pending actions' button insensitive works very well. I think you could go this route for the search icon in the headerbar (rather than making it appear/disappear depending on the primary filter chosen as I had originally suggested).
In relation to the popover for the search options, I think this should be right beside the search box or inside it as it seems a bit detached at the moment. I think you need to remove the gap between them.
As for renaming Actions to Pending Actions, I think Pending Actions is too long & this button isnow out of proportion with the other ones for Packages, Groups & History. Could you use Pending instead or keep it as Actions & use a tooltip to give an explanation of what these buttons mean?
This is my last comment on this issue. Thanks for all the work. The redesign has progressed greatly!
@genodeftest, that do you think about @gitjod proposals.
[Enter]
key. Putting the button directly besides a search bar might make users not expect a menu at this button.Not a new observation just a clarification of my comment in relation to the search box & the popover.
Currently there is a space:
If the space was removed:
Or if the popover was inside the box as in Gnome Videos:
@gitjod I understood that. My previous comment (3.) applies for your screenshots.
Investigated the search box used in gnome-music and totem, they use a special Gd.TaggedEntry custom widget defined i a special gnome libgd.
https://git.gnome.org/browse/libgd/tree/README
This lib has no API/ABI stability and is meant to be included as a private lib in each project. So this is not something I will use. Hope this widget will be included in GTK at some point in time.
@gitjod @genodeftest
I have reworked the the options in the main menu and added a new look for the Preferences and added a new Extra Filter option menu, let me know what you think.
I have a hard time testing yumex-dnf due to an dnf issue when a mirror is offline. Reporting that against dnf on Fedora Bugzilla.
I like this filter option menu. Maybe you could put it above the GtkStackSwitcher?
I'd use a 'preferences-other-symbolic' or 'view-list-symbolic' icon instead of 'open-menu-symbolic'. 'open-menu-symbolic' is already in use for the main menu and shouldn't be reused for semething completely different I think. What do you think?
Btw: The main menu GtkPopover is nice. It has an issue on wayland though: The GtkPopover gets placed topwards in some cases being painted outside of the screen. See https://bugzilla.gnome.org/show_bug.cgi?id=757474 for a more detailed explanation and a workaround.
@genodeftest :
The following placement could be used.
Another idea i have is to have a pref button in the right side of the headerbar where the content is changing based on the selected page. On packages it would show extra filters, on groups something else etc.
I thought about placing it above filters. I wouldn't change menu contents based on UI state.
Besides: I noticed that the search bar filter menu behaves slightly wrong. Steps to reproduce:
What happens: Filter is set to "Fields" but checkboxes are insensitive (greyed out).
What should happen: checkboxes should be sensitive in this case
@genodeftest ok, I have moved the button, check latest copr build to test it.
The fields insensitive problem is fixed here: (not in build) https://github.com/timlau/yumex-dnf/commit/1fe4b33061ce9ea1970e783eebda1fc8bf6f56fe
Oh, nice. I prefer it that way. @gitjod what do you think?
Hi Tim, I am not convinced by moving the extra filter button from below the filters (updates, installed etc) to the left of the headerbar. I think your first idea of placing it below the filters was correct or you could look at this very similar implementation in the application gitg where there are 2 buttons below some filters:
I very much like the bottom bar in the History page where you have placed a button Undo. I think this is a good idea, though it doesn't seem to be very reliable at the moment. Perhaps you could do a similar implementation on the Packages page & on the Queue page with a button called Apply instead of the current button on the headerbar to apply the pending actions. Perhaps the extra filter button could be on this bottom bar on the Packages page.
Hm, I was just running yumex-dnf in a KDE plasma session with dark Breeze theme. Dark theme detection doesn't work correctly there. Any ideas?
Sorry for being MIA for a couple of months, Work and Life, has stolen all my time.
A button bar could be an option i could try out in the other pages, but could feel a little confusing for the extra filter, but I will give it a try, to see how it feels
Welcome back!
I think the extra filter should go where you had it originally....see your own screenshot of 15th December or my screenshot from the 22nd. The extra filter shouldn't be the first thing a user encounters in the application and given its present location on the top left corner on the headerbar it currently is the first filter you encounter.
I think the pending actions button should go on the button bar on the bottom as per the History page where you have placed a button Undo
Tracker isssue for make the Search/filter UI better