mirror of
https://github.com/qbittorrent/qBittorrent.git
synced 2026-03-02 22:57:32 -05:00
Configurable UI appearance and corresponding options page #5214
Labels
No labels
Accessibility
AppImage
Bounty
Build system
CI
Can't reproduce
Code cleanup
Confirmed bug
Confirmed bug
Core
Crash
Data loss
Discussion
Docker
Documentation
Duplicate
Feature
Feature request
Feature request
Feature request
Filters
Flatpak
GUI
Has workaround
I2P
Invalid
Libtorrent
Look and feel
Meta
NSIS
Network
Not an issue
OS: *BSD
OS: Linux
OS: Windows
OS: macOS
PPA
Performance
Project management
Proxy/VPN
Qt bugs
Qt6 compat
RSS
Search engine
Security
Temp folder
Themes
Translations
Triggers
Waiting diagnosis
Waiting info
Waiting upstream
Waiting web implementation
Watched folders
WebAPI
WebUI
autoCloseOldIssue
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set.
Reference
starred/qBittorrent#5214
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Originally created by @zeule on GitHub (Feb 8, 2017).
Dear @qbittorrent/qbittorrent-frequent-contributors, @magao, @Zalewa,
and everyone interested, of course.
Let's discuss possible implementations for the appearance settings here. It turns out (#6196) various appearance settings may not only be required to satisfy user taste or preferences, but also be a
requirement for a specific environment. Therefore let's try to summaries requirements and desires for those settings.
I quote @magao comment from PR #6196 here:
I think a user additionally might want to change:
We can provide defaults for colours that depends on an environment (Plasma and Gnome (not really sure) have enough colours in their colour schemes to cover all torrent states).
Referencing related PRs: #3936 #4057 #6156 #6186 #6196
Want to back this issue? Post a bounty on it! We accept bounties via Bountysource.
@sledgehammer999 commented on GitHub (Feb 8, 2017):
Copying my https://github.com/qbittorrent/qBittorrent/pull/6196#issuecomment-278489098:
IMO, these belong to Behavior:
Talking from memory here, but I think this also controls the icons for the toolbar and any other icon that follows the icon theme naming spec.
@zeule commented on GitHub (Feb 8, 2017):
Confirm.
@sledgehammer999 commented on GitHub (Feb 8, 2017):
What do you mean by this? Complete skinning support? -I think we'll open a can of worms implementing it-
@zeule commented on GitHub (Feb 8, 2017):
Torrent state colours may be applied to the whole lines in the transfers list (text and icon), to the icon only or not applied at all, leaving icons monochrome too.
@magao commented on GitHub (Feb 8, 2017):
Yes - I was thinking that as well. We'd need most of the changes from PR #6186 to do this.
@sledgehammer999 commented on GitHub (Feb 8, 2017):
Ok, I understand now.
@zeule commented on GitHub (Feb 8, 2017):
To synchronise our thoughts:
I'm thinking about a couple of singletons that implement respective interfaces (e.g.
ColorThemeandFontTheme). Those singletons implement the Bridge pattern using a number of implementations:DefaultColorThemeProvider,CustomColorThemeProvider,PlasmaColorThemeProvider, etc. The same for fonts. The providers returns set of colours/fonts, either predefined or loaded from the config file or obtained from environment. TheThemeobjects handle enabling/disabling colour/font for a particular UI element returning either specific or default colour/font. The options page allows user to select a theme provider (predefined qBt theme, system, custom) and enable/disable theming of UI element.@magao, @sledgehammer999: would you agree?
@magao commented on GitHub (Feb 8, 2017):
Sounds reasonable. Think it needs to be done in several steps (PRs):
Consolidate all the existing appearance-related options into a single tab.
Create the new code structure, with just the default providers.
Hook in theme change detection and set up signals.
Start adding new customisation features (colours, fonts, etc).
I'm happy to work on step 1 this weekend. This should be purely a UI task, step 2 could be done in parallel. Do you want to start on step 2 @evsh?
@zeule commented on GitHub (Feb 8, 2017):
@magao: yes, this makes sense. Would be happy to implement the second task, but will be busy this weekend and not sure yet about the next one.
@zeule commented on GitHub (Feb 8, 2017):
Another little idea: perhaps we should save colour schemes in a separate file. This would allow us to unify default and custom themes (just by distributing a file with the default theme), move colours specification out of the code and allow users to save and exchange the themes. I can think of a few default ones, like Light, Dark, Solarized...
@magao commented on GitHub (Feb 8, 2017):
Sounds good. I could do that as part of step 1.Note sure what I was replying to here - not about saving colour schemes in separate file ...Step 3 would use bits from my PR #6174. I'd probably change it so the
themeChanged()signal was onPreferences, and it would only be sent if one or more of the appearance options changed. We also will need to be careful to make sure that all the providers have been notified before any users of the providers are (currently I'm doing that by directly calling intoGuiIconProvider).@magao commented on GitHub (Feb 9, 2017):
Did a quick implementation of step 1 after work - main issue was moving options around the tabs. QtCreator wasn't much help.
Use system icon theme is hidden except on non-MacOS UNIX. If the Desktop section is empty then it is hidden (implemented that way so if we add other desktop things here it will show automatically)..
All three prefs are migrated to
Preferences/Appearance/...I'm no artist, so I just moved the icon from Behaviour to Appearance, and gave Behaviour the gear. I also changed the WebUI icon to
qbt-theme/webui.pngwhich I think it was probably intended to be.I also want to set up the them change detection and signals before submitting a PR, but does this look like how you want it?
@birdie-github commented on GitHub (Feb 9, 2017):
Let me chime in:
I'd have:
@glassez commented on GitHub (Feb 9, 2017):
IMO, more correct is "Add Torrent from File" (and "Add Torrent from URL").
Described action: ADDING torrent to session from some source (file or URL).
@magao commented on GitHub (Feb 9, 2017):
From PR #6186 ...
Thinking about this - maybe the monochrome text theme should be:
Actively uploading/downloading - > QPalette::Active
Paused/stalled/complete -> QPalette::Inactive
I'll prototype it and see how it looks.
@thalieht commented on GitHub (Feb 9, 2017):
👍
@zeule commented on GitHub (Feb 11, 2017):
@magao Excuse me, but since you do not show any code and the illustration is obvious, what feedback do you expect?
@magao commented on GitHub (Feb 11, 2017):
@ech @sledgehammer999 Sorry - whether the right options had been moved to the Appearance tab, and if the icon selection was reasonable.
@allanlaal commented on GitHub (Feb 22, 2019):
this is discussed in #7360