After an evaluation, GNOME has moved from Bugzilla to GitLab. Learn more about GitLab.
No new issues can be reported in GNOME Bugzilla anymore.
To report an issue in a GNOME project, go to GNOME GitLab.
Do not go to GNOME Gitlab for: Bluefish, Doxygen, GnuCash, GStreamer, java-gnome, LDTP, NetworkManager, Tomboy.
Bug 100622 - UI is problematic if you want to create your own theme
UI is problematic if you want to create your own theme
Status: RESOLVED FIXED
Product: gnome-control-center
Classification: Core
Component: [obsolete] theme-manager
git master
Other other
: Normal major
: ---
Assigned To: Thomas Wood
Control-Center Maintainers
: 95306 (view as bug list)
Depends on:
Blocks:
 
 
Reported: 2002-12-07 21:42 UTC by Luis Villa
Modified: 2007-11-11 20:00 UTC
See Also:
GNOME target: ---
GNOME version: ---


Attachments
Glade implementation of Seth's suggestions (64.04 KB, application/x-glade)
2006-01-07 18:13 UTC, Thomas Wood
Details

Description Luis Villa 2002-12-07 21:42:13 UTC
To the naive user (including myself) the theme manager offers no way to
customize a theme that's not already present. Here was my first experience
with the theme manager:

*run
*see 'save custom theme', ignore it, figuring I can do it later
*switch to high contrast theme, figuring that I want to see what bill h.
has wrought
*discover that I can no longer switch to a custom theme.
*'install theme' goes nowhere [presumably a bug]
*'details' apparently lets me edit the current theme, though the name
'details' doesn't indicate that at all. 
*Since the details window pops up in front of the main window, there is no
indication that I'm now changing a 'custom theme' instead of the theme I
was previously using.

So, suggestions:
*'details...' be renamed to 'customize theme details...' or something along
those lines.
*'custom theme' always be present, so that it can be more obvious that a
custom theme can be created. [I assumed that 'details' on a theme modified
that theme, not the custom theme. Having a custom theme option always
present would make it more clear that editing a theme won't permanently
screw up a pre-existing theme.]
*when a custom theme is saved, it show up in the theme list. [This may be a
bug instead of a design choice, not sure?]

Anyway, that's my two cents. I'm marking it a 2.2.0 target/blocker because
the current UI will surely confuse Real Users if it confused me.
Comment 1 Andrew Sobala 2002-12-21 11:39:25 UTC
Luis: is this still applicable for 2.2.0 considering the UI freeze? If
it is we should probably get some usability comments fairly quickly.
Hard string freeze is 10 days away IIRC.
Comment 2 Andrew Sobala 2002-12-31 13:06:27 UTC
Look at bug 102274 for more about a custom theme not always being present
Comment 3 Andrew Sobala 2002-12-31 13:07:55 UTC
FWIW, although this is a release blocker in my and Luis' opinions,
patches need to go via the release team because they will break UI and
string freezes. And because it breaks string freeze, the sooner the
better since things need to be translated.
Comment 4 Mark Finlay 2003-01-04 13:03:24 UTC
* The install button being broken is bug 101695
* Custom theme should not dissapear: bug 102274
* Maybe details should be greyed out when an un-editable
theme is selected. ATM all it does it edit the custom theme.
I think that once custom theme is always there you can just 
select it and press details.

None of that would require string changes which is nice, but
is that enough? I think that it would make more sense with those
three changes.
Comment 5 Mark Finlay 2003-01-04 13:07:28 UTC
> *'details' apparently lets me edit the current theme, though the name
> 'details' doesn't indicate that at all.

Not really. AFAIK there is not way to edit the preinstalled themes 
through the applet. If you press details and what you select 
corresponds to a pre-installed theme then that theme will be 
selected otherwise Custom Theme will be selected. So it is really
only for editing the "Custom theme".
Comment 6 Andrew Sobala 2003-01-04 13:31:00 UTC
I think that "details" edits the currently selected theme but sets
your changes to the custom theme - so you don't overwrite preset
themes but
make a copy, with modifications, in the custom theme. I think?

And that's confusing.
Comment 7 Seth Nickell 2003-01-07 01:24:49 UTC
Combination of bugs and a confusing interaction model. The bugs should
be dead soon. I think the real problem stems from the idea of a custom
theme as being present "whenever your current settings don't match any
predetermined theme". jrb wanted to do this to neatly handle edge
cases where the user manually tweaked GConf and consequently the
current settings didn't match any of the themes. I think this exposes
confusing and unnecessary details about the theme system.

I would suggest the following instead, which handles the edge case
without modifying the typical interaction model in a confusing way:

  * Buttons on the right are (in order): "Install theme", "New theme",
vertical space of 12 pixels, "Theme Properties", "Delete"
  * Theme properties has one tab more than the current "details"
window (the first tab), which contains two text boxes for setting the
theme's name and its description
  * New theme creates a new theme using the currently selected theme
as its default settings for sub-themes, and brings up the theme
properties window
  * "Custom theme" only appears in the edge case that the user
manually tweaks GConf settings and the current sub-themes don't jive
with the current selected GNOME theme. In this case, the theme will no
longer be considered a "Custom theme" if the user renames it, and
should automatically be saved in the user's ~/.themes/ directory at
this point.
  * "Delete" is disabled for themes to which the user does not have
write access (system themes). They can bring up "Theme Properties",
but not change any of its settings (might be wise to have a label at
the bottom of the theme properties window when this is in effect).
Comment 8 Jonathan Blandford 2003-01-16 20:31:34 UTC
*** Bug 95306 has been marked as a duplicate of this bug. ***
Comment 9 Jonathan Blandford 2003-08-12 20:53:19 UTC
Any Theme dialog look/rework will have to happen for GNOME 2.6.  This
won't hit 2.4
Comment 10 Jonathan Blandford 2003-11-26 06:26:04 UTC
Seth's proposal seems pretty reasonable.  I'm a little concerned about
how 'Delete' will work, but we can start by making the other changes.
Comment 11 Luis Villa 2004-02-23 01:51:19 UTC
For 2.8, we mean. :/
Comment 12 Luis Villa 2004-12-08 17:41:08 UTC
Given that no one else seems to think this is a problem, dropping in priority.
I'd still like to see Seth's suggestions implemented, of course :)
Comment 13 Thomas Wood 2006-01-07 18:13:35 UTC
Created attachment 56923 [details]
Glade implementation of Seth's suggestions

Here is a glade file of Seth's suggestions. It also removes the drag to install text as per bug 99535.
Comment 14 Sebastien Bacher 2006-01-08 20:47:37 UTC
Using that .glade, the capplet crashes:

Backtrace was generated from '/usr/bin/gnome-theme-manager'

Using host libthread_db library "/lib/tls/i686/cmov/libthread_db.so.1".
[Thread debugging using libthread_db enabled]
[New Thread -1224739136 (LWP 17571)]
0xffffe410 in __kernel_vsyscall ()
  • #0 __kernel_vsyscall
  • #1 __waitpid_nocancel
    from /lib/tls/i686/cmov/libpthread.so.0
  • #2 libgnomeui_segv_handle
    at gnome-ui-init.c line 786
  • #3 <signal handler called>
  • #4 IA__gtk_widget_show
    at gtkwidget.c line 2044
  • #5 gnome_theme_details_reread_themes_from_disk
    at gnome-theme-details.c line 574
  • #6 gnome_theme_details_update_from_gconf
    at gnome-theme-details.c line 723
  • #7 window_settings_changed
    at gnome-theme-manager.c line 950
  • #8 IA__g_cclosure_marshal_VOID__VOID
    at gmarshal.c line 77
  • #9 IA__g_closure_invoke
    at gclosure.c line 490
  • #10 signal_emit_unlocked_R
    at gsignal.c line 2438
  • #11 IA__g_signal_emit_valist
    at gsignal.c line 2197
  • #12 IA__g_signal_emit
    at gsignal.c line 2241
  • #13 gnome_window_manager_settings_changed
    at gnome-window-manager.c line 235
  • #14 value_changed
    at metacity-window-manager.c line 69

Comment 15 Sebastien Bacher 2006-01-08 20:49:30 UTC
That is printed too:

(gnome-theme-manager:17619): Gtk-CRITICAL **: gtk_size_group_add_widget: assertion `GTK_IS_WIDGET (widget)' failed

(gnome-theme-manager:17619): Gtk-CRITICAL **: gtk_size_group_add_widget: assertion `GTK_IS_WIDGET (widget)' failed

(gnome-theme-manager:17619): Gtk-CRITICAL **: gtk_widget_set_sensitive: assertion `GTK_IS_WIDGET (widget)' failed

(gnome-theme-manager:17619): GLib-GObject-WARNING **: invalid (NULL) pointer instance

(gnome-theme-manager:17619): GLib-GObject-CRITICAL **: g_signal_connect_data: assertion `G_TYPE_CHECK_INSTANCE (instance)' failed

(gnome-theme-manager:17619): GLib-GObject-WARNING **: invalid (NULL) pointer instance

(gnome-theme-manager:17619): GLib-GObject-CRITICAL **: g_signal_connect_data: assertion `G_TYPE_CHECK_INSTANCE (instance)' failed

(gnome-theme-manager:17619): Gtk-CRITICAL **: gtk_widget_set_sensitive: assertion `GTK_IS_WIDGET (widget)' failed
Comment 16 Sebastien Bacher 2006-01-08 20:50:42 UTC
Out of that the changes looks fine from glade
Comment 17 Thomas Wood 2006-01-09 12:32:14 UTC
I haven't actually implemented the changes necassary to the code (which is why I didn't attach a patch - and why it doesn't work with the code). It was just a mockup of Seth's suggestions. If the problems with the UI mentioned in this bug are fixed by the new glade file, then I will go ahead and create a patch.
Comment 18 Sebastien Bacher 2006-01-09 13:05:43 UTC
The mockup looks fine to me, patch is welcome!
Comment 19 Calum Benson 2006-01-18 18:42:03 UTC
FWIW, I think the word "Theme" is redundant in a couple of places in the attached mockup:

- Main window: "Theme Properties" could just be "Properties"

- Details dialog, "Theme Name" and "Theme Description" could just be Name and Description (also, shouldn't be in bold, should end in a colon, and need mnemonics).  Also, shouldn't the dialog title now be "Theme Properties" (or better still, "<theme-name> Properties")?

Save dialog: hmm, doesn't look like it's sure whether it's an alert or a dialog; consequently, repetition of "Save Theme" at the top is a bit ugly.  Think I'd try and make it look more like the regular gtk Save dialog, i.e.:

+---------------------------------------------+
|               Save Theme As...              |
+---------------------------------------------+
|                                             |
| Theme name:   [                         ]   |
|                                             |
| Description   +--------------------------+  |
|               |                          |  |
|               |                          |  |
|               +--------------------------+  |
|                                             |
|                        [ Cancel ] [ Save ]  |
+---------------------------------------------+
Comment 20 Thomas Wood 2006-10-04 21:31:48 UTC
Just having another look at fixing this bug...

The buttons down the side of the theme manager could become: New, Install, Edit and Delete. The New and Edit buttons would then open the details window, with the extra name/description tab mentioned above. This would remove the need for a seperate Save Theme dialog, but I think the details/edit dialog would then have to become explicit apply, perhaps even with Save/Cancel buttons. Any one got any thoughts on this idea?
Comment 21 Jens Granseuer 2007-11-11 20:00:40 UTC
I suppose this is now fixed with the new appearance capplet? Please reopen if it's not...