gnome-shell-timer icon indicating copy to clipboard operation
gnome-shell-timer copied to clipboard

Design ideas like a full-screen ModalDialog option, among others

Open towolf opened this issue 13 years ago • 10 comments

Great thingie.

Can you add a ModalDialog option like in the pomodoro extension? This would allow me to see from afar that the timer has run out . And it allows me to make myself do something "now", since it’s modal. At least one signal color would be good in that dialog.

towolf avatar Oct 26 '11 21:10 towolf

image

I hacked a little but my time is up now too (and I’m a JS newbie). You could use a ComboBoxMenuItem, to toggle between notification types. I stopped while trying to make the ModalDialog themable with CSS.

towolf avatar Oct 26 '11 22:10 towolf

First step is done in implementing this, didn't mess with css though. Let me know if it works for you.

Cheers

olebowle avatar Oct 27 '11 22:10 olebowle

Yes, that’s a very good start. And also basically what I did yesterday, i.e., lift stuff from pomodoro applet.

I have some more ideas that go further than this issue report, but if you’ll indulge me ...

1st, I think the message "Preset %s finished!" is not a good message. For the big message just the name of the preset would be good. If, e.g. I want to be reminded to go downstairs to check my laundry, it should remind me with a bold "LAUNDRY", and not that some preset ran out. For the small notification it’s up to you. I used a different set_text() call, but somehow it didn’t allow UTF-8 in that string. Very odd.

2nd, when a preset was started and then adjusted with the sliders, because e.g., you figured that your casserole should bake for 30 min longer, it should keep the self.issuer label from the preset and not reset it. It’s still the same timer with just an adjusted time.

3rd, in general the menu could be cleaned up a little. Since I expect you’ll want to add a configurator GUI for the presets, sooner or later, you could think about moving all the visibility options into that separate dialog.

4th, if this external dialog takes shape, it might be worth it to move the presets into the top-level of the menu, without puttin them into a submenu, so they are accessible with a single click. The sliders can remain wrapped away. If you adopt this you might do away with the restart timer menu item, since clicking again on a preset would reset it. If you still would like a Restart function for the slider based timers, you could also move this item into that submenu.

5th, about styling and where I got stuck yesterday, the way that the pomodoro applet initializes the ModalDialog doesn’t allow styling. If you look at how ModalDialogs are created elsewhere in gnome-shell, they hook into the prototype and add a styleClass. Styling the dialog itself would be desirable to be able to scale the font. I got a little lost in this.

6th, I made the pie chart a little smaller, the 11 px radius was just a little too big. Also, you paint a white disk and then a dark arc over it, don’t you think a semi-opaque disk with a decreasing white arc would work better? Right now there’s a little alpha compositing glitch.

7th, an option to put the timer next to the clock in the center might makes sense.

towolf avatar Oct 27 '11 22:10 towolf

You got some valid points here. 1.1. Using a larger font for the preset name would be ok I guess. Although I'd stay at least with "finished" (in a smaller font). 1.2. Using the unicode codeposition e.g.\u00e4 instead of ä does the trick. 2. The sliders are intended to configure a manual timer, which you use only once. But they can probably adapted so that you can change a running preset. After the preset is finished, they will serve again for the manual timer. 3/4. Exactly that I thought, it's done now in the master branch. Although the GUI still looks a bit ugly (I'd be happy if someone could improve the look of it). I think the reset button should stay where it is (the manual timer can't be reset). 5/7. Haven't looked at this. 6. Ideally we would have a function to get the appropriate size. For now I chose the same diameter as the a11y symbol.

Your input is much appreciated.

Cheers

olebowle avatar Nov 02 '11 11:11 olebowle

I think you want a GtkGrid to align stuff right. And don’t make them expand into the avaiable space. The canonical spacing is 6px between elements. Whitespace can remain at the bottom if any.

Thinking about it, the Manual tab can be scrapped. Why have it? Just remember the last slider comnbination in Gsettings and be done with it. [It’s the Gnome 3 way, settings are evil. Hurr, hurr]

Notification should be a ComboBox with choices: Reminder: [None, Notification, Fullscreen]. And dont make two columns in that tab. Call it Options, not Ui.

Offering color selection for the Pie. No. Maybe in Gettings. This is overkill.

My overall idea would be: No tabs in the dialog. Just a single page dialog. Make a good entry mechanism for presets at the top and some checkboxes and a combobox below. That’s it. Simple and functional.

The preset manager is only halfway there, it needs proper humane time selection, not an entry field for seconds. Use the Gtk3 widget that’s used in places like the Gnome3 printer config, or the Gnome3 keyboard layout selector. A list on the left for preset names with [+|-] buttons on the bottom and on the right spin buttons for days, hours, minutes, seconds. Maybe put a «Default» entry in the list to hold the default slider values that are now in the Manual tab.

And put the checkboxes for the view options and the combobox below under a bold label »Options«, which is outdented by 6 px. Check the picture 8-4 here: http://developer.gnome.org/hig-book/unstable/design-window.html.en

I think that would look good.

towolf avatar Nov 02 '11 20:11 towolf

1.1. Using a larger font for the preset name would be ok I guess. Although I'd stay at least with "finished" (in a smaller font).

Think about it, what do you want to be reminded of? Is it always something that’s finished? The timer ran out and is finished, yes, but the point of being reminded might as well be that something is starting. Let’s say somone will pick you up in 1½ hours. Would you want to see »Mitfahrgelegenheit finished«?

  1. The sliders are intended to configure a manual timer, which you use only once. But they can probably adapted so that you can change a running preset. After the preset is finished, they will serve again for the manual timer.

That would be really good. The guy might have called to say that he’ll come later, in 2 hours.

towolf avatar Nov 02 '11 20:11 towolf

So, with my limited time I’ve created a proof-of-concept dialog as a GtkBuilder file using Glade.

image

There are some things that would have to be hooked up in code.

  • The preset list has to be pre-seeded; in particular with a «Default» item
  • The Reminder dropdown has [ silent | notification | full-screen], silent desensitizes the Message and Sound fields, and notification disables the Message field
  • The Show in Panel has [ Elapsed time | Remaining time | graphic only]

Also, there are some style tags that Glade destroys when you save the .ui file. In particular toolbar-inline and dim-label, which give special styling in GTK3

Get the file here http://www.alice-dsl.net/~towolf/timer-prefs.ui

towolf avatar Nov 10 '11 17:11 towolf

Just wanted to add that it’s possible to break apart the «Show in panel as» dropdown and put single checkboxes in an array below the whole treeview thing.

towolf avatar Nov 10 '11 17:11 towolf

Oh, I forgot to mention, that the point of putting the options into the right hand part was that it would be desirable to have preset-specific options (message, reminder and sound)

towolf avatar Nov 10 '11 17:11 towolf

Wow, great job. I'll have a look at it, when I have time (which is unfortunately quiet limited right now).

olebowle avatar Nov 10 '11 20:11 olebowle